Class: Fixturizer::Engines::Models

Inherits:
Object
  • Object
show all
Defined in:
lib/fixturizer/engines/models.rb

Constant Summary collapse

ADAPTERS =
{ mongoid: ::Fixturizer::Adapters::Mongoid }.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeModels

Returns a new instance of Models.



10
11
12
13
14
15
16
17
# File 'lib/fixturizer/engines/models.rb', line 10

def initialize
  @configuration = Fixturizer::Services.get.configuration
  @models = @configuration.models
  @order = @configuration.models_order
  @type = @configuration.models_type
  @generated = {}
  extend ADAPTERS[@type]
end

Instance Attribute Details

#generatedObject (readonly)

Returns the value of attribute generated.



8
9
10
# File 'lib/fixturizer/engines/models.rb', line 8

def generated
  @generated
end

#modelsObject (readonly)

Returns the value of attribute models.



8
9
10
# File 'lib/fixturizer/engines/models.rb', line 8

def models
  @models
end

#orderObject (readonly)

Returns the value of attribute order.



8
9
10
# File 'lib/fixturizer/engines/models.rb', line 8

def order
  @order
end

Instance Method Details

#generateObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/fixturizer/engines/models.rb', line 25

def generate
  @generated.clear
  raise 'Order field format missmatch, not an array' unless @order.nil? || @order.is_a?(Array)

  if @order
    raise 'Order field size missmatch for configurate definitions' unless @order.size == @models.size

    @order.each do |item|
      raise "Definition #{item} not found in models definitions" unless @models.include?(item)
      @generated[item]  = generate_collection(name: item)
    end
  else
    @models.each_key do |item|
      @generated[item] = generate_collection(name: item)
    end

  end
end

#injectObject



44
45
46
47
# File 'lib/fixturizer/engines/models.rb', line 44

def inject
  raise 'Data not generated' if @generated.empty?
  inject_data
end

#populateObject



19
20
21
22
23
# File 'lib/fixturizer/engines/models.rb', line 19

def populate
  generate
  inject
  true
end