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