class PhilColumns::Seeder

Attributes

config[R]
unsatisfieds[R]

Public Class Methods

new( config ) click to toggle source
# File lib/phil_columns/seeder.rb, line 7
def initialize( config )
  @config = config
end

Public Instance Methods

execute() click to toggle source
# File lib/phil_columns/seeder.rb, line 11
def execute
  seeds.each do |seed_meta|
    confirm "Executing seed: #{seed_meta.name} ... ", :cyan do
      unless dependencies_satisfied?( seed_meta.klass.depends_on )
        raise PhilColumns::Error, failed_dependencies_message( seed_meta )
      end

      instance = seed_meta.klass.new( config )
      instance.send( method_name )
      record_seed( seed_meta )
    end
  end
end

Protected Instance Methods

dependencies_satisfied?( dependencies ) click to toggle source
# File lib/phil_columns/seeder.rb, line 38
def dependencies_satisfied?( dependencies )
  @unsatisfieds = dependencies.select { |version| !seed_already_executed?( version ) }
  unsatisfieds.blank?
end
down?() click to toggle source
# File lib/phil_columns/seeder.rb, line 56
def down?
  config.down
end
failed_dependencies_message( seed_meta ) click to toggle source
# File lib/phil_columns/seeder.rb, line 60
def failed_dependencies_message( seed_meta )
  "Cannot execute seed #{seed_meta.name} due to unsatisfied dependencies: #{unsatisfieds.join ', '}.  Please adjust " +
    "the specified tags (#{config.tags.join ', '}) to resolve the failed dependencies."
end
filter() click to toggle source
# File lib/phil_columns/seeder.rb, line 47
def filter
  @filter ||= Filter.new( config )
end
method_name() click to toggle source
# File lib/phil_columns/seeder.rb, line 51
def method_name
  return :down if down?
  :up
end
record_seed( seed_meta ) click to toggle source
# File lib/phil_columns/seeder.rb, line 30
def record_seed( seed_meta )
  if method_name == :up
    archivist.record_seed( seed_meta.timestamp )
  else
    archivist.remove_seed( seed_meta.timestamp )
  end
end
seeds() click to toggle source
# File lib/phil_columns/seeder.rb, line 43
def seeds
  @seeds ||= filter.seeds
end