Sha256: 2e44e7326773996f33070208a8b391437c953f70548cb2e4c77fcd7afe94a5e5

Contents?: true

Size: 1.27 KB

Versions: 1

Compression:

Stored size: 1.27 KB

Contents

#!/usr/bin/env ruby

require 'method_log'
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

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
  puts
  if options[:patch]
    puts method_diff.to_s(:color)
    puts
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
method_log-0.1.1 bin/method_log