Module: ReeDto::DtoClassMethods

Includes:
Ree::Contracts::ArgContracts, Ree::Contracts::Core
Defined in:
lib/ree_lib/packages/ree_dto/package/ree_dto/dto/dto_class_methods.rb

Instance Method Summary collapse

Instance Method Details

#build(attrs = nil, **kwargs) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/ree_lib/packages/ree_dto/package/ree_dto/dto/dto_class_methods.rb', line 23

def build(attrs = nil, **kwargs)
  dto_obj = new(attrs || kwargs)
  set_attrs = attrs ? attrs.keys : kwargs.keys
  fields_to_set = fields_with_default.reject{ set_attrs.include?(_1.name) }

  fields_to_set.each do |field|
    dto_obj.set_attr(field.name, field.default)      
  end

  dto_obj
end

#collectionsObject



19
20
21
# File 'lib/ree_lib/packages/ree_dto/package/ree_dto/dto/dto_class_methods.rb', line 19

def collections
  @collections ||= []
end

#fieldsObject



9
10
11
# File 'lib/ree_lib/packages/ree_dto/package/ree_dto/dto/dto_class_methods.rb', line 9

def fields
  @fields ||= []
end

#fields_with_defaultObject



14
15
16
# File 'lib/ree_lib/packages/ree_dto/package/ree_dto/dto/dto_class_methods.rb', line 14

def fields_with_default
  @fields_with_default ||= []
end