Class: Serdee::Attributes::Nested

Inherits:
Object
  • Object
show all
Includes:
ClassMethods
Defined in:
lib/serdee/attributes.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ClassMethods

#attribute, #attributes, #from_json, #key_transform, #nested, #of_json, #serializers, #set_key_transform

Constructor Details

#initialize(attributes_class, key, serializers, &block) ⇒ Nested

Returns a new instance of Nested.



136
137
138
139
140
141
# File 'lib/serdee/attributes.rb', line 136

def initialize(attributes_class, key, serializers, &block)
  @attributes_class = attributes_class
  @key = key
  @serializers = serializers
  instance_eval(&block) if block_given?
end

Instance Attribute Details

#attributes_classObject (readonly)

Returns the value of attribute attributes_class.



135
136
137
# File 'lib/serdee/attributes.rb', line 135

def attributes_class
  @attributes_class
end

#keyObject (readonly)

Returns the value of attribute key.



135
136
137
# File 'lib/serdee/attributes.rb', line 135

def key
  @key
end

Instance Method Details

#extract_to(data, obj) ⇒ Object



143
144
145
146
# File 'lib/serdee/attributes.rb', line 143

def extract_to(data, obj)
  return if data.nil? || data[key].nil?
  super(data[key], obj)
end

#insert_to(obj, data) ⇒ Object



148
149
150
151
# File 'lib/serdee/attributes.rb', line 148

def insert_to(obj, data)
  data[key] = {}
  super(obj, data[key])
end