Class: FactorySeeder::SeedBuilder

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

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ SeedBuilder

Returns a new instance of SeedBuilder.



5
6
7
8
9
10
# File 'lib/factory_seeder/seed_builder.rb', line 5

def initialize(name)
  @name = name
  @description = nil
  @parameters = {}
  @metadata = {}
end

Instance Method Details

#build(&block) ⇒ Object



39
40
41
42
43
44
45
46
47
# File 'lib/factory_seeder/seed_builder.rb', line 39

def build(&block)
  Seed.new(
    @name,
    description: @description,
    parameters: @parameters,
    metadata: @metadata,
    &block
  )
end

#description(text) ⇒ Object



12
13
14
15
# File 'lib/factory_seeder/seed_builder.rb', line 12

def description(text)
  @description = text
  self
end

#metadata(key, value) ⇒ Object



34
35
36
37
# File 'lib/factory_seeder/seed_builder.rb', line 34

def (key, value)
  @metadata[key.to_sym] = value
  self
end

#parameter(name, type: :string, required: false, default: nil, allowed_values: nil, min: nil, max: nil, description: nil) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/factory_seeder/seed_builder.rb', line 17

def parameter(name, type: :string, required: false, default: nil, allowed_values: nil, min: nil, max: nil,
              description: nil)
  # Validation des paramètres selon le type
  validate_parameter_options(type, allowed_values: allowed_values, min: min, max: max)

  @parameters[name.to_sym] = {
    type: type,
    required: required,
    default: default,
    allowed_values: allowed_values,
    min: min,
    max: max,
    description: description
  }
  self
end