class R10K::Module::Git

Attributes

repo[R]

@!attribute [r] repo

@api private
@return [R10K::Git::StatefulRepository]

Public Class Methods

implement?(name, args) click to toggle source
# File lib/r10k/module/git.rb, line 10
def self.implement?(name, args)
  args.is_a? Hash and args.has_key?(:git)
rescue
  false
end
new(title, dirname, args) click to toggle source
Calls superclass method R10K::Module::Base.new
# File lib/r10k/module/git.rb, line 21
def initialize(title, dirname, args)
  super
  parse_options(@args)
  @repo = R10K::Git::StatefulRepository.new(@ref, @remote, @dirname, @name)
end

Public Instance Methods

properties() click to toggle source
# File lib/r10k/module/git.rb, line 31
def properties
  {
    :expected => @ref,
    :actual   => (@repo.head || "(unresolvable)"),
    :type     => :git,
  }
end
version() click to toggle source
# File lib/r10k/module/git.rb, line 27
def version
  @ref
end

Private Instance Methods

parse_options(options) click to toggle source
# File lib/r10k/module/git.rb, line 45
def parse_options(options)
  @remote = options.delete(:git)

  if options[:branch]
    @ref = options.delete(:branch)
  end

  if options[:tag]
    @ref = options.delete(:tag)
  end

  if options[:commit]
    @ref = options.delete(:commit)
  end

  if options[:ref]
    @ref = options.delete(:ref)
  end

  @ref ||= 'master'

  unless options.empty?
    raise ArgumentError, "Unhandled options #{options.keys.inspect} specified for #{self.class}"
  end
end