Class: Gitdocs::Repository::Committer
- Inherits:
-
Object
- Object
- Gitdocs::Repository::Committer
- Defined in:
- lib/gitdocs/repository/committer.rb
Instance Method Summary collapse
- #commit ⇒ Boolean
-
#initialize(root_dirname) ⇒ Committer
constructor
A new instance of Committer.
- #write_commit_message(message) ⇒ void
Constructor Details
#initialize(root_dirname) ⇒ Committer
Returns a new instance of Committer.
6 7 8 9 10 11 12 13 14 15 |
# File 'lib/gitdocs/repository/committer.rb', line 6 def initialize(root_dirname) @root_dirname = root_dirname @rugged = Rugged::Repository.new(root_dirname) @grit = Grit::Repo.new(root_dirname) @commit_message_path = File.('.gitmessage~', root_dirname) rescue Rugged::OSError raise(Gitdocs::Repository::InvalidError, 'No directory') rescue Rugged::RepositoryError raise(Gitdocs::Repository::InvalidError, 'Not a repository') end |
Instance Method Details
#commit ⇒ Boolean
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/gitdocs/repository/committer.rb', line 18 def commit # Do this first to allow the message file to be deleted, if it exists. = mark_empty_directories # FIXME: Consider a more appropriate location for the dirty check. return false unless Gitdocs::Repository.new(@root_dirname).dirty? Gitdocs.log_debug("Repo #{@root_dirname} is dirty") # Commit any changes in the working directory. Dir.chdir(@root_dirname) do @rugged.index.add_all @rugged.index.update_all end @rugged.index.write Gitdocs.log_debug("Index to be committed #{@rugged.index}") commit_result = @grit.commit_index() Gitdocs.log_debug("Commit result: <#{commit_result.inspect}>") true end |
#write_commit_message(message) ⇒ void
This method returns an undefined value.
44 45 46 47 48 49 |
# File 'lib/gitdocs/repository/committer.rb', line 44 def () return unless return if .empty? File.open(@commit_message_path, 'w') { |f| f.print() } end |