Class: WebMock::Resources::ResourceBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/webmock-resources/resource_builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(schema, overwrited_attributes = {}) ⇒ ResourceBuilder

Returns a new instance of ResourceBuilder.



4
5
6
7
8
9
# File 'lib/webmock-resources/resource_builder.rb', line 4

def initialize schema, overwrited_attributes = {}
  @schema = schema
  @fields = schema.fields.dup
  @overwrited_attributes = overwrited_attributes
  @resources = ResourceStorages.instance
end

Instance Method Details

#attributesObject



19
20
21
22
23
# File 'lib/webmock-resources/resource_builder.rb', line 19

def attributes
  process_dynamic_fields
  overwrite_attributes
  @fields
end

#buildObject



11
12
13
14
15
16
17
# File 'lib/webmock-resources/resource_builder.rb', line 11

def build
  resource = Resource.new
  resource.id = @schema.sequence.next
  resource.attributes = attributes
  @resources[@schema.type] << resource
  @schema.object ? @schema.object.new(resource.to_hash) : resource.to_hash
end

#overwrite_attributesObject



31
32
33
# File 'lib/webmock-resources/resource_builder.rb', line 31

def overwrite_attributes
  @fields.merge!(@overwrited_attributes)
end

#process_dynamic_fieldsObject



25
26
27
28
29
# File 'lib/webmock-resources/resource_builder.rb', line 25

def process_dynamic_fields
  @fields.each do |k,v|
    @fields[k] = v.call(@schema.sequence.curr) if v.is_a?(Proc)
  end
end