Thanks Driven Life

日々是感謝

Turnip 1.3.1 リリースしました (RSpec 3.3.0 対応)

Release Version 1.3.1 · jnicklas/turnip

テスト用に gemfiles/ 以下に RSpec 毎のファイルが増えてくると不安になる…

主な内容

掲題のとおり、RSpec 3.3.0 対応となります。

RSpec 3.3 has been released!

RSpec 3.3.0 の変更で Turnip に影響があったのは、テスト実行の際に行数が指定された時の挙動です。

どういうこと

つまり

$ rspec /path/to/foo.feature:12

みたいなやつです。RSpec 3.3.0 からは ↑ のような行数だけではなく

$ rspec /path/to/foo.feature[1:4]

このように書くことで

1番目の describe の中にある、4番目の it だけ(もしくは4番目の describe の中にあるやつ全部)を実行しなさい」

という指定が可能になります。

おそらくこれは手動で指定するものではなく、同じく RSpec 3.3.0 から導入された --only-failures--next-failure のための機能追加じゃないかなって思います。多分。

んでもって

この機能追加によって、Turnip 側から行数指定による Scenario の指定ができなくなっていたので

github.com

こんな感じで修正を行いました。instance_eval 万歳。

おまけ

今回のような、テストケースの指定の仕方は、Pure RSpec なテストケースであれば公式サイトを見ればわかりますが、 Turnip の場合はどのように使えるんだ?みたいな疑問がわくと思います。行数指定は前からありましたが、[1:4] みたいな ID 指定を feature ファイルに置き換えるとどうなるんだ?みたいな。

そんなわけで、せっかくなので wiki にまとめておきました。

How to identify scenario using Location (or IDs) · jnicklas/turnip Wiki · GitHub

参考になればと思います。

まとめ

RSpec どれかサポート切りたい。「RSpec 3.x + RSpec 3.(x-1) + RSpec 2.14」とかが落とし所かなー

YAPC::Asia Tokyo 2015 に参加します

そんなわけで私も応募してましたが、あえなく reject

残念ではありますが、代わりに見る聞くに専念できるようになりました。

yapcasia.org

採択倍率4倍という凄まじい応募数から選ばれたトーク軍。どれも面白そう。
当日を楽しみにしています。ビッグサイトで僕と握手!!


ちなみに応募したトークにも書いてるとおり、チームで行ってきたことを
イベント駆動でまとめていこうかなと思いましたが、それも無くなったので
あとはほそぼそとどこかに書いていけたらなと思います。


それでは当日よろしくお願い致します! 沖縄から上京して疲れきった人が居たら僕です。

vue.js 0.12-{beta,rc} から v-repeat="文字列 | filter" すると filter に辿り着く前に文字列が配列になってる

うまく説明できないタイトルになった。

例題

<html>
    <head>
        <meta charset="UTF-8">
        <script src="vue.0.11.min.js"></script>
        <!-- <script src="vue.0.12-rc.min.js"></script> -->
        <!-- <script src="vue.0.12-rc2.min.js"></script> -->
    </head>
    <body>
        <div id="demo">
            <ul>
                <li v-repeat="foo | split">
                    {{$value}}
                </li>
            </ul>
        </div>
        <script>
         var demo = new Vue({
             el: '#demo',
             data: {
                 foo: '11111'
             },
             filters: {
                 split: function(n) {
                     console.log(n); // <= ここをチェック!!!
                     return [1,2,3];
                 }
             }
         });
        </script>
    </body>
</html>

こういうのがあったとして

1) 0.11 の頃は

f:id:gongoZ:20150611223738p:plain

2) 0.12 からは

f:id:gongoZ:20150611223820p:plain

まとめ

filter で文字列受けとってよしなに分割して変換して返すってやってたところが動かなくてなんでだろうって思ってたら、こういう変更があったんだということに気づけました。前の状態でもいいのにーと思ったけど、まあ自分がやってたのは filtering じゃなくて transform だったんだなと思うと、特に問題は無かった。

そんなわけで pizza-figlet が無事 vue.0.12.-rc2 で動いた

適当な日本人の名前や住所をランダムに作れる gimei を emacs lisp に port した

経緯

mattn.kaoriya.net

ビッグウェーブに乗った

過去

人名をランダムに生成する emacs lisp fake-full-name.el - Thanks Driven Life

こんな記事を書いたこともありました。この elisp はちょくちょく仕事でも使っていて、ちゃんとリポジトリ作成しようかなーでもなーって悩んでたところ、gimei の話題が見えましたので、あらためてこちらの方を作成しました。

現在

github.com

Usage

https://github.com/gongo/emacs-gimei#usage

まずは人名:

(require 'gimei)

(setq name (gimei/new-name))   ;; [cl-struct-gimei:name]

(gimei/kanji-of name)          ;; "浅野 深桜"
(gimei/hiragana-of name)       ;; "あさの みお"
(gimei/katakana-of name)       ;; "アサノ ミオ"

(gimei/last:kanji-of name)     ;; "浅野"
(gimei/last:hiragana-of name)  ;; "あさの"
(gimei/last:katakana-of name)  ;; "アサノ"
(gimei/first:kanji-of name)    ;; "深桜"
(gimei/first:hiragana-of name) ;; "みお"
(gimei/first:katakana-of name) ;; "ミオ"

;; 男性名/女性名 を明示

(gimei/kanji-of (gimei:new-male))   ;; "篠田 繁夫"
(gimei/kanji-of (gimei:new-female)) ;; "稲葉 澪"

住所はこんな感じ:

(setq address (gimei/new-address))  ;; [cl-struct-gimei:address]

(gimei/address:kanji-of address)    ;; "山梨県杵築市宮浦"
(gimei/address:hiragana-of address) ;; "やまなしけんきつきしみやのうら"
(gimei/address:katakana-of address) ;; "ヤマナシケンキツキシミヤノウラ"

(gimei/address:prefecture:kanji-of address) ;; "山梨県"
(gimei/address:city:hiragana-of address)    ;;"きつきし"
(gimei/address:town:katakana-of address)    ;; "ミヤノウラ"

変数に受けずに直接呼び出すことも可能:

(gimei/kanji)    ;; "宮原敏也"
(gimei/hiragana) ;; "あだちてつ"
(gimei/katakana) ;; "キシモトコタロウ"

(gimei/address:kanji)    ;; "神奈川県河内長野市藤助新田"
(gimei/address:hiragana) ;; "みえけんわたりぐんやまもとちょうきたじゅう"
(gimei/address:katakana) ;; "オオサカフコユグンシントミチョウナカノバタチョウ"

使用例

(require 'cl-lib)

(cl-loop for i from 1 to 10
         do (let ((name (gimei/new-name))
                  (address (gimei/new-address)))
              (insert "\"" (gimei/kanji-of name) "\""
                  "," "\"" (gimei/katakana-of name) "\""
                  "," "\"" (gimei/address:kanji-of address) "\""
                  "\n")))

;; => "村井 建喜","ムライ タテヨシ","宮崎県稚内市平成"
;;    "樋口 一","ヒグチ ハジメ","岩手県遠賀郡遠賀町下川上"
;;    "森 寿英","モリ トシヒデ","静岡県八丈島八丈町上磯分内"
;;    "柏木 桃世","カシワギ モモヨ","山梨県比企郡嵐山町新町"
;;    "金田 充扇","カネダ ミオ","青森県吾妻郡草津町木島"
;;    "井口 静江","イグチ シズエ","長野県相楽郡精華町清尾"
;;    "多田 征蘭","タダ セイラ","岡山県雨竜郡沼田町金山沢"
;;    "松本 範人","マツモト ノリヒト","熊本県羽咋市西恋ケ窪"
;;    "渡辺 生夏","ワタナベ ミナツ","山口県霧島市引佐町栃窪"
;;    "川島 健郎","カワシマ タケオ","岐阜県東白川郡矢祭町猫田"

即席テストユーザ CSV ファイル

おまけ

Emacs Lisp って YAML parser 無いんですね。無かったので オリジナルデータ を alist に変換して gz で配置するなどして対処しました。

まとめ

これでテストデータもばっちりですね!テストしていこう!!(この elispちゃんとテスト書きました)

TravisCI で composer install のキャッシュを取る

目的

早く速くビルドしてくれ頼む 🙏

手順

  1. container-based でビルドが走るように設定する
  2. composer install がキャッシュ置く場所を .travis.yaml に書いとく

Use container-based stack and caching of TravisCI · gongo/merciful-polluter@91bffba

sudo: false
cache:
  directories:
    - $HOME/.composer/cache

簡単

結果

Job #28.1 - gongo/merciful-polluter - Travis CI

f:id:gongoZ:20150604131832p:plain

しっかりキャッシュ効いてるっぽい 💪

まとめ

そんなわけで PHP7 でも register_globals が再現できるようになった ので、安心して PHP7 にアップデートしましょう!!!

参考

Bye bye "twada-savannah"

f:id:gongoZ:20150519192734p:plain

半年ぐらい前に立ち上げた、カバレッジが低下するとライオンがコメントを書き残してくれる GitHub Webhook Service である twada-savannah ですが、本日 5/19 を持ちましてクローズさせていただきます。長年のご愛好ありがとうございました。

理由

_人人人人人人人_
> 使ってない <
 ̄YYYYYYY ̄

そんなわけで

使ってないし、Heroku の最近の価格のあれもあって残しててもしょうがないので削除しました。 なんかこう、いい感じのサービスの閉じ方みたいなのを調べてたんですが、気にせずまるっと消しました。お疲れ様でした。

まとめ

みんな!ライオンが見てなくてもサバンナのこと考えてカバレッジ大事にしてこうな!!

YAPC::Asia Tokyo 2015 トーク応募してみました

YAPC::Asia Tokyo 2015

今年でファイナルという YAPC::Asia Tokyo に初参加しようと思っており、せっかくなのでトークも応募してみました。

昔の「普通」から今の「普通」へ繋ぐ "安心の架け橋" - YAPC::Asia Tokyo 2015

トーク内容は ↑ にも書かれていますが、とりあえず Agile Japan 2015 サテライト<沖縄> の発表内容 に、インフラ整備やチーム態勢についても加えた内容にしようと考えています。

仕事内容も一区切りついたころなので、自分たちがやってきたことをどこかでまとめておきたいというのがありました。 それならばイベント駆動でやってみよう、といったところです。

なので内容としてはただの「やってみました」系のふりかえりみたいなものなので、 聞く人によっては少し物足りないかもしれませんが、もし御興味があれば!


現在集まってるトーク、どれも面白そうなので採択されるかかなり怪しいですが、もし採択されてもされなくても、当日はビッグサイトでお会いしましょう!