class Releasecop::Checker

Attributes

envs[RW]
name[RW]
working_dir[RW]

Public Class Methods

new(name, envs, working_dir = Releasecop::CONFIG_DIR) click to toggle source
# File lib/releasecop/checker.rb, line 5
def initialize(name, envs, working_dir = Releasecop::CONFIG_DIR)
  self.name = name
  self.envs = envs.map { |e| Releasecop::ManifestItem.new(name, e) }
  self.working_dir = working_dir
end

Public Instance Methods

check() click to toggle source
# File lib/releasecop/checker.rb, line 11
def check
  Dir.chdir(working_dir) do
    `git clone #{envs.first.git} #{'--bare' if envs.all?(&:bare_clone?)} #{name} > /dev/null 2>&1`

    Dir.chdir(name) do
      envs.each do |env|
        `git remote add #{env.name} #{env.git} > /dev/null 2>&1`
        `git fetch #{env.name} > /dev/null 2>&1`
      end

      comparisons = []
      envs.each_cons(2) do |ahead, behind|
        comparisons << Releasecop::Comparison.new(ahead, behind)
      end

      comparisons.each &:check
      @result = Releasecop::Result.new(name, comparisons)
    end
  end
end
puts_message(verbose_flag) click to toggle source
# File lib/releasecop/checker.rb, line 32
def puts_message(verbose_flag)
  @result.puts_message(verbose_flag)
end
unreleased() click to toggle source
# File lib/releasecop/checker.rb, line 36
def unreleased
  @result.unreleased
end