Class: StarfleetSeeder
- Inherits:
-
Object
- Object
- StarfleetSeeder
- Defined in:
- lib/super/test_support/starfleet_seeder.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize ⇒ StarfleetSeeder
constructor
A new instance of StarfleetSeeder.
- #seed(basename, key, klass, value) ⇒ Object
- #seed_from_fixture(basename, klass) ⇒ Object
Constructor Details
#initialize ⇒ StarfleetSeeder
Returns a new instance of StarfleetSeeder.
8 9 10 11 |
# File 'lib/super/test_support/starfleet_seeder.rb', line 8 def initialize @seeded = {} @association_reflections = {} end |
Class Method Details
.seed ⇒ Object
2 3 4 5 6 |
# File 'lib/super/test_support/starfleet_seeder.rb', line 2 def self.seed seeder = StarfleetSeeder.new seeder.seed_from_fixture("ships", Ship) seeder.seed_from_fixture("members", Member) end |
Instance Method Details
#seed(basename, key, klass, value) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/super/test_support/starfleet_seeder.rb', line 13 def seed(basename, key, klass, value) @seeded[basename] ||= {} puts "--> #{key} (#{value})" @association_reflections[klass] ||= klass.reflect_on_all_associations @association_reflections[klass].each do |ar| ar_name = ar.name.to_s ar_plural_name = ar.plural_name.to_s if value.key?(ar_name) value[ar_name] = @seeded.fetch(ar_plural_name).fetch(value[ar_name]) end end @seeded[basename][key] = klass.find_or_create_by(value) puts " success!" rescue => e puts " failure (#{e.message})" end |
#seed_from_fixture(basename, klass) ⇒ Object
33 34 35 36 37 38 39 40 |
# File 'lib/super/test_support/starfleet_seeder.rb', line 33 def seed_from_fixture(basename, klass) puts "==> #{basename}" fixtures(basename).each do |key, value| seed(basename, key, klass, value) end nil end |