Cucumber 用の小さなモンキー パッチを作成しました。これにより、ファイル パスを別の方法で出力できるようになり、OSX ターミナルで Cmd キーを押しながらダブルクリックして、TextMate でファイルを直接開くことができます。
module Cucumber
module Ast
class Scenario
alias_method :old_file_colon_line, :file_colon_line
def file_colon_line(*arg)
self.class.textmate_colon_line(old_file_colon_line)
end
def self.textmate_colon_line(file_colon_line)
file, line = file_colon_line.split(':')
'txmt://open?url=file://' + File.expand_path(File.dirname(__FILE__) + '/../../') + '/' + file + '&line=' + line
end
end
end
end
class Proc
alias_method :old_file_colon_line, :file_colon_line
def file_colon_line
Cucumber::Ast::Scenario::textmate_colon_line(old_file_colon_line)
end
end
私のチームの全員が TextMate を使用しているわけではないので、Cucumber を呼び出すときにカスタム --txmt 引数を使用してこのモンキー パッチを有効にしたいと思います。
cucumber features/create_task.feature --txmt
これにより、次の結果が得られます。
invalid option: --txmt (OptionParser::InvalidOption)
だから私はこのようにCucumberにモンキーパッチを当てようとしています:
module Cucumber
module Cli
class Options
def self.parse!(args)
# Do some stuff
end
end
end
end
しかし、悲しいことに、これは機能しません。Cucumber::Cli::Options.parse!
メソッドはこのアプローチで上書きされていないようですがCucumber::Ast::Scenario
、同じアプローチでは機能しているようです。
理由はありますか?どうもありがとう。