Class: Kamaze::Project::Tools::Git

Inherits:
BaseTool show all
Defined in:
lib/kamaze/project/tools/git.rb,
lib/kamaze/project/tools/git.rb

Overview

Provide a wrapper based on rugged (libgit2}

Defined Under Namespace

Classes: Hooks, Status, Util

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

This class inherits a constructor from Kamaze::Project::Tools::BaseTool

Instance Attribute Details

#base_dir::Pathname

Get base directory

Returns:

  • (::Pathname)


55
56
57
# File 'lib/kamaze/project/tools/git.rb', line 55

def base_dir
  ::Pathname.new(@base_dir)
end

#observer_peersHash|nil (readonly, protected) Originally defined in module Concern::Observable

Returns:

  • (Hash|nil)

#repositoryRugged::Repository (readonly)

Returns:

  • (Rugged::Repository)

See Also:



43
44
45
# File 'lib/kamaze/project/tools/git.rb', line 43

def repository
  @repository
end

Instance Method Details

#hooksHooks

Get hooks

Returns:



62
63
64
# File 'lib/kamaze/project/tools/git.rb', line 62

def hooks
  Hooks.new(self)
end

#mutable_attributesArray<Symbol>

Instance attributes altered during initialization

Returns:

  • (Array<Symbol>)


48
49
50
# File 'lib/kamaze/project/tools/git.rb', line 48

def mutable_attributes
  [:base_dir]
end

#repository?Boolean

Denote is a repository

Returns:

  • (Boolean)


79
80
81
# File 'lib/kamaze/project/tools/git.rb', line 79

def repository?
  !!repository
end

#setupObject (protected)



85
86
87
88
89
90
91
92
93
94
# File 'lib/kamaze/project/tools/git.rb', line 85

def setup
  @base_dir ||= Dir.pwd
  begin
    require 'rugged'
    @repository = Rugged::Repository.new(base_dir.to_s)
  rescue LoadError, Rugged::RepositoryError
    # @todo Load error SHOULD be stored (as a boolean?)
    @repository = nil
  end
end

#statusHash

Get status

Returns:

  • (Hash)


69
70
71
72
73
74
# File 'lib/kamaze/project/tools/git.rb', line 69

def status
  status = {}
  repository.status { |file, data| status[file] = data }

  Status.new(status)
end