lib/method_log/repository.rb in method_log-0.0.5 vs lib/method_log/repository.rb in method_log-0.0.6

- old
+ new

@@ -2,29 +2,35 @@ require 'method_log/commit' module MethodLog class Repository - def initialize(path: nil) + def initialize(path) @repository = Rugged::Repository.new(path) @commits = [] end - def build_commit(sha: nil) - Commit.new(repository: @repository, sha: sha) + def build_commit(sha = nil) + Commit.new(sha, @repository) end - def add(commit) - commit.apply - @commits << commit + def commit(*source_files) + options = source_files.pop if source_files.last.is_a?(Hash) + options ||= {} + options = { user: { email: 'test@example.com', name: 'test', time: Time.now }, message: 'commit-message' }.merge(options) + build_commit.tap do |commit| + source_files.each { |sf| commit.add(sf) } + commit.apply(options) + @commits << commit + end end - def commits(max_count: nil) + def commits(options = {}) Enumerator.new do |yielder| if @repository.ref('refs/heads/master') @repository.walk(@repository.last_commit).with_index do |commit, index| - break if max_count && index >= max_count - 1 - yielder << build_commit(sha: commit.oid) + break if options[:max_count] && index >= options[:max_count] - 1 + yielder << build_commit(commit.oid) end end end end end \ No newline at end of file