module PhilColumns::SeedUtils

Constants

SEED_REGEX

Public Instance Methods

archivist() click to toggle source
# File lib/phil_columns/seed_utils.rb, line 63
def archivist
  @archivist ||= PhilColumns::Archivist.new
end
discover_seed_class( filepath ) click to toggle source
# File lib/phil_columns/seed_utils.rb, line 53
def discover_seed_class( filepath )
  matches = SEED_REGEX.match( filepath )
  snakecased = matches[2]
  snakecased.camelize.constantize
end
discover_seed_timestamp( filepath ) click to toggle source
# File lib/phil_columns/seed_utils.rb, line 48
def discover_seed_timestamp( filepath )
  matches = SEED_REGEX.match( filepath )
  matches[1]
end
each_seed_meta_for_current_env( &block ) click to toggle source
# File lib/phil_columns/seed_utils.rb, line 38
def each_seed_meta_for_current_env( &block )
  seeds_for_current_env.each do |seed_meta|
    block.call( seed_meta )
  end
end
load_seeds() click to toggle source
# File lib/phil_columns/seed_utils.rb, line 6
def load_seeds
  seed_filepaths.each do |seed_filepath|
    load seed_filepath
  end
end
map_seeds() click to toggle source
# File lib/phil_columns/seed_utils.rb, line 12
def map_seeds
  seed_filepaths.map do |seed_filepath|
    klass = discover_seed_class( seed_filepath )

    Hashie::Mash.new( envs: klass._envs,
                      filepath: seed_filepath,
                      klass: klass,
                      name: File.basename( seed_filepath, '.rb' ),
                      tags: klass._tags,
                      timestamp: discover_seed_timestamp( seed_filepath ))
  end
end
seed_already_executed?( version ) click to toggle source
# File lib/phil_columns/seed_utils.rb, line 59
def seed_already_executed?( version )
  archivist.seed_already_executed?( version )
end
seed_filepaths() click to toggle source
# File lib/phil_columns/seed_utils.rb, line 25
def seed_filepaths
  seeds = Dir.glob( "#{seeds_path}/**/*.rb" )
  if config.down
    seeds.sort { |a,b| b <=> a }
  else
    seeds.sort
  end
end
seeds_for_current_env() click to toggle source
# File lib/phil_columns/seed_utils.rb, line 34
def seeds_for_current_env
  map_seeds.select { |seed_meta| seed_meta.envs.include?( config.env ) }
end
seeds_path() click to toggle source
# File lib/phil_columns/seed_utils.rb, line 44
def seeds_path
  config.seeds_path
end