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