読者です 読者をやめる 読者になる 読者になる

yard diff が素敵すぎる

ruby

パーフェクトRuby (PERFECT SERIES 6)

パーフェクトRuby (PERFECT SERIES 6)


14章より。

rdoc の代わりとして yard を試したことはあるのですが
知らないコマンドがありました。
 
gem install すると以下の実行ファイルが install されます。

yard, yardoc, yri

yardoc は html で document を出力してくれてありがたやーな訳なんですが
yard にはいろいろサブコマンドが定義されており
中でも yard diff が強力であることを知りました。
(他にも server とか graph とかあります)

やってみる

$ yard diff activesupport-4.2.5 activesupport-4.2.6
Added objects:

  ActiveSupport::Logger#add (lib/active_support/logger.rb:50)
  ActiveSupport::SecurityUtils#variable_size_secure_compare (lib/active_support/security_utils.rb:22)
  ActiveSupport::SecurityUtils.variable_size_secure_compare (lib/active_support/security_utils.rb:22)
  LoggerSilence#after_initialize (lib/active_support/logger_silence.rb:14)
  LoggerSilence#level (lib/active_support/logger_silence.rb:22)
  LoggerSilence#local_log_id (lib/active_support/logger_silence.rb:18)

Modified objects:

  ActiveSupport::Callbacks::ClassMethods#define_callbacks (lib/active_support/callbacks.rb:769)
  ActiveSupport::Logger#initialize (lib/active_support/logger.rb:44)
  ActiveSupport::VERSION::TINY (lib/active_support/gem_version.rb:10)
  LoggerSilence#silence (lib/active_support/logger_silence.rb:12)

なんと、local にその version が install されてなくてもできちゃう。
あなたが神か。
 
gem 開発者であれば、gem の更新とか行うと思いますが
これでどこに変更があったのかざっくり把握できます。
これは非常に良いです。