class Icalia::ModelBase

Attributes

serialization_context[R]

Public Class Methods

has_many(*associations) click to toggle source
# File lib/icalia-sdk-event-core/models/model_base.rb, line 34
def has_many(*associations)
  associations.each do |association|
    attr_reader association
    associated_resource_collections << association
  end
end
has_one(*associations) click to toggle source
# File lib/icalia-sdk-event-core/models/model_base.rb, line 27
def has_one(*associations)
  associations.each do |association|
    attr_reader association
    associated_resources << association
  end
end
new(object_attributes = {}) click to toggle source
# File lib/icalia-sdk-event-core/models/model_base.rb, line 15
def initialize(object_attributes = {})
  @serialization_context = object_attributes.delete :serialization_context
  
  object_attributes.each do |key, value|
    attribute_name = "#{key}".underscore
    next register_stand_in(attribute_name, value) if value.is_a? ModelProxy
    next register_collection(attribute_name, value) if value.is_a? Array
    instance_variable_set("@#{attribute_name}", value)
  end
end

Private Instance Methods

register_collection(association, collection) click to toggle source
# File lib/icalia-sdk-event-core/models/model_base.rb, line 44
def register_collection(association, collection)
  instance_variable_set("@#{association}", collection)
  collection.each_with_index do |item, index|
    next unless item.is_a? ModelProxy
    serialization_context.register_stand_in model: self,
                                            index: index,
                                            stand_in: item,
                                            association: association
  end
end
register_stand_in(association, stand_in) click to toggle source
# File lib/icalia-sdk-event-core/models/model_base.rb, line 55
def register_stand_in(association, stand_in)
  instance_variable_set("@#{association}", stand_in)
  serialization_context.register_stand_in model: self,
                                          stand_in: stand_in,
                                          association: association
end