2個のfailのうち1個倒せたので良かった

r7kamura/guideline がruby2.0.0-preview1でtestが2個failしてて、勉強してやっつけてやろうと思った。preview2はbundlerがコケるのでよくわかんないんだもん…

ruby 2.0 preview2 でbundlerいれてbundle installするとエラーな件 – CubicLouve
bundler1.2.3 => 1.3.0preすると行けるっぽい情報

1個倒せたっぽい。1.9.3-p327と2.0.0-preview1で”#{}”の}が返すイベントが変わってた(正しくなってた)。

guideline, contribution calendar #5 « 實松アウトプット

まずなんでコケてるかわからなかったので、コケてるテスト見たらshould have_error がtrueのはずなのにfalse。binding.pryしつつモゾモゾ見ていくと、どこでそれ見てるのかというと、パーサー。パーサー…。

LoveRubyNet Wiki: RipperTutorial
class Ripper

RipperというのがRuby自身が使ってるパーサーで、そいつに渡してパースする。syntax highlightが出来たり、irbみたいなことが出来たりする。ふむふむ。Ripper継承してそのイベントに? 紐付けてやると? やりたいことが出来る?
??? はてなマークがたくさん並ぶ
で、そのパース結果がどう違うのか見たい時には、でもドキュメント見てるとnewとparseしかなくて

parse(src, filename = ‘(ripper)’, lineno = 1) -> nil
指定された文字列を解析します。常に nil を返します。

そんな!

かなりめげかけたけど諦めきれなくて、ググったりいじったりしてたら、tokenizeとかlexとかあるようだ。そうしたら違いが出たー

http://www.ruby-doc.org/stdlib-1.9.3/libdoc/ripper/rdoc/Ripper.html

直し方があってるかは知らないけど、ひとつ倒した!

Bug #6211: Ripper lexes :on_rbrace when it should find :on_embexpr_end – ruby-trunk – Ruby Issue Tracking System
これだとおもうんだけど、なんで1.9.3-p327に入ってないのかはよくわからない。

もう1個のfailはFileUtilsのメソッドいくつかがpublic -> privateになったらしいことが原因ぽい?

rspec ./spec/guideline/runner_spec.rb:45 # Guideline::Runner.parse when given –init option when config file does not exist generates config file

expected SystemExit, got #<NoMethodError: private method `copy’ called for FileUtils:Module> with backtrace:

これと近いんかなーと思う。
FileUtils:Module

どうすれバインダー?

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中