Class: JetSet::EntityBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/jet_set/entity_builder.rb

Overview

A converter of a pure Ruby object to JetSet trackable object.

Instance Method Summary collapse

Constructor Details

#initialize(mapping) ⇒ EntityBuilder

Parameters:

+mapping+:: an instance of +JetSet::Mapping+


11
12
13
# File 'lib/jet_set/entity_builder.rb', line 11

def initialize(mapping)
  @mapping = mapping
end

Instance Method Details

#create(object) ⇒ Object

Makes passed object to be trackable.

object

pure Ruby object



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/jet_set/entity_builder.rb', line 17

def create(object)
  object.instance_variable_set('@__attributes', {})
  object.instance_variable_set('@__references', {})
  object.instance_variable_set('@__collections', {})
  object.instance_variable_set('@__mapping', @mapping)
  object.instance_variable_set('@__factory', self)

  object.extend(Identity)
  object.extend(Entity)
  object.extend(Validations)
end