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