Class: Plus2Seeder::Conductor

Inherits:
Object
  • Object
show all
Defined in:
lib/plus2_seeder/conductor.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.all_seedersObject



17
18
19
# File 'lib/plus2_seeder/conductor.rb', line 17

def self.all_seeders
  @seeders.values.flatten.uniq
end

.record(seeder_name) ⇒ Object



22
23
24
# File 'lib/plus2_seeder/conductor.rb', line 22

def self.record(seeder_name)
  @recorded << seeder_name
end

.reset?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/plus2_seeder/conductor.rb', line 57

def self.reset?
  @reset ||= (ENV['RESET'] == 'true')
end

.run(seeder_name) ⇒ Object

Runs a named seeder



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/plus2_seeder/conductor.rb', line 28

def self.run(seeder_name)
  return if @recorded.include? seeder_name

  klass = "#{seeder_name}_seeder".classify.constantize
  seeder = klass.new

  seeder.run_dependencies

  seeder.reset if reset? # Call the seeder's reset method if called with RESET=true

  seeder.before

  puts "Seeding #{seeder_name.pluralize}"
  seeder.seed

  record seeder_name

  seeder.after
end

.seedersObject



13
14
15
# File 'lib/plus2_seeder/conductor.rb', line 13

def self.seeders
  @seeders
end

.seeders=(val) ⇒ Object



9
10
11
# File 'lib/plus2_seeder/conductor.rb', line 9

def self.seeders=(val)
  @seeders = val
end

Instance Method Details

#seedObject

Will run all seeders



50
51
52
53
54
# File 'lib/plus2_seeder/conductor.rb', line 50

def seed
  self.class.seeders[Rails.env].each do |seeder|
    self.class.run(seeder)
  end
end