class MethodLog::API
Public Class Methods
new(repository)
click to toggle source
# File lib/method_log/api.rb, line 7 def initialize(repository) @repository = repository end
Public Instance Methods
diffs(method_identifier, options = {})
click to toggle source
# File lib/method_log/api.rb, line 30 def diffs(method_identifier, options = {}) Enumerator.new do |yielder| history(method_identifier, options).each_cons(2) do |(commit, parent)| diff = MethodDiff.new(parent, commit) unless diff.empty? yielder << [commit, diff] end end end end
history(method_identifier, options = {})
click to toggle source
# File lib/method_log/api.rb, line 11 def history(method_identifier, options = {}) options = { stop_at_latest_introduction_of_method: true }.merge(options) Enumerator.new do |yielder| last_method_commit = nil @repository.commits(options).each do |commit| last_source_file = last_method_commit && last_method_commit.source_file if last_source_file && commit.contains?(last_source_file) last_method_commit.update(commit) else method_definition = commit.find(method_identifier, last_source_file) yielder << last_method_commit if last_method_commit last_method_commit = MethodCommit.new(commit, method_definition) yielder << last_method_commit break if options[:stop_at_latest_introduction_of_method] && method_definition.nil? end end end end