bin/method_log in method_log-0.0.5 vs bin/method_log in method_log-0.0.6
- old
+ new
@@ -1,20 +1,36 @@
#!/usr/bin/env ruby
require 'bundler/setup'
-require 'method_log'
-require 'method_log/repository'
-require 'method_log/api'
require 'trollop'
options = Trollop::options do
opt :patch, 'Generate patch.', short: 'p'
+ opt :ruby_version, 'Parser Ruby version (18, 19, 20, 21)', default: 'current'
opt :max_count, 'Limit the number of commits to output.', type: :integer, short: 'n'
+ opt :stop_at_latest_introduction_of_method, 'Stop at lastest introduction of method.', default: true
end
-repository = MethodLog::Repository.new(path: Dir.pwd)
-api = MethodLog::API.new(repository: repository)
-api.diffs(ARGV[0], max_count: options[:max_count]).each do |method_commit, method_diff|
+case ruby_version = options[:ruby_version]
+when 'current'
+ require 'parser/current'
+when '18', '19', '20', '21'
+ require 'parser/ruby18'
+ require 'parser/ruby19'
+ require 'parser/ruby20'
+ require 'parser/ruby21'
+ Parser::CurrentRuby = Parser.const_get("Ruby#{ruby_version}")
+else
+ raise "Ruby version not supported: #{ruby_version}"
+end
+
+require 'method_log'
+require 'method_log/repository'
+require 'method_log/api'
+
+repository = MethodLog::Repository.new(Dir.pwd)
+api = MethodLog::API.new(repository)
+api.diffs(ARGV[0], options).each do |method_commit, method_diff|
puts "commit #{method_commit.sha}"
puts "Author: #{method_commit.author[:name]} <#{method_commit.author[:email]}>"
puts "Date: #{method_commit.author[:time].strftime('%a %b %-e %T %Y %z')}"
puts
puts method_commit.message