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

yard diff が素敵すぎる

パーフェクト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 の更新とか行うと思いますが
これでどこに変更があったのかざっくり把握できます。
これは非常に良いです。