Class: FactorySeeder::Seeder

Inherits:
Object
  • Object
show all
Defined in:
lib/factory_seeder/seeder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSeeder

Returns a new instance of Seeder.



7
8
9
# File 'lib/factory_seeder/seeder.rb', line 7

def initialize
  @seeds = {}
end

Instance Attribute Details

#seedsObject (readonly)

Returns the value of attribute seeds.



5
6
7
# File 'lib/factory_seeder/seeder.rb', line 5

def seeds
  @seeds
end

Instance Method Details

#run(name, **kwargs) ⇒ Object

Raises:

  • (ArgumentError)


15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/factory_seeder/seeder.rb', line 15

def run(name, **kwargs)
  name = to_sym(name)
  seed = @seeds[name]

  raise ArgumentError, "Seed #{name} not defined" unless seed

  result = @seeds[name].call(**kwargs)
  if result
    puts "🌱 Seed #{name} generated successfully"
    true
  else
    puts "⚠️  Seed #{name} failed"
    false
  end
end

#seed(name, &block) ⇒ Object



11
12
13
# File 'lib/factory_seeder/seeder.rb', line 11

def seed(name, &block)
  @seeds[name.to_sym] = block
end