Class: Datory::Attributes::Serialization::ServiceBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/datory/attributes/serialization/service_builder.rb

Constant Summary collapse

SERVICE_CLASS_NAME =
"SBuilder"

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(context, model, collection_of_attributes) ⇒ ServiceBuilder

Returns a new instance of ServiceBuilder.



13
14
15
16
17
# File 'lib/datory/attributes/serialization/service_builder.rb', line 13

def initialize(context, model, collection_of_attributes)
  @context = context
  @model = model
  @collection_of_attributes = collection_of_attributes
end

Class Method Details

.build!Object



9
10
11
# File 'lib/datory/attributes/serialization/service_builder.rb', line 9

def self.build!(...)
  new(...).build!
end

Instance Method Details

#build!Object



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/datory/attributes/serialization/service_builder.rb', line 19

def build!
  ServiceFactory.create(@context.class, @collection_of_attributes)

  attributes = Datory::Attributes::Serialization::Model.to_hash(@model)

  unnecessary_attributes = attributes.keys.difference(@collection_of_attributes.internal_names)

  unnecessary_attributes.each do |key|
    attributes.delete(key)
  end

  builder_class.call!(**attributes)
end