Class: WebMock::Resources::ResourceBuilder
- Inherits:
-
Object
- Object
- WebMock::Resources::ResourceBuilder
- Defined in:
- lib/webmock-resources/resource_builder.rb
Instance Method Summary collapse
- #attributes ⇒ Object
- #build ⇒ Object
-
#initialize(schema, overwrited_attributes = {}) ⇒ ResourceBuilder
constructor
A new instance of ResourceBuilder.
- #overwrite_attributes ⇒ Object
- #process_dynamic_fields ⇒ Object
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
#attributes ⇒ Object
19 20 21 22 23 |
# File 'lib/webmock-resources/resource_builder.rb', line 19 def attributes process_dynamic_fields overwrite_attributes @fields end |
#build ⇒ Object
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_attributes ⇒ Object
31 32 33 |
# File 'lib/webmock-resources/resource_builder.rb', line 31 def overwrite_attributes @fields.merge!(@overwrited_attributes) end |
#process_dynamic_fields ⇒ Object
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 |