Class: Falcor::Factory

Inherits:
Object
  • Object
show all
Includes:
ClassAttrs, DefineDsl
Defined in:
lib/falcor/factory.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from DefineDsl

included

Methods included from ClassAttrs

included

Constructor Details

#initialize(overrides) ⇒ Factory

Returns a new instance of Factory.



16
17
18
19
20
21
22
# File 'lib/falcor/factory.rb', line 16

def initialize(overrides)
  unless overrides.empty?
    overrides.each do |k,v|
      self.send(:"#{k}=", v)
    end
  end
end

Class Method Details

.create_methods(blk) ⇒ Object



11
12
13
# File 'lib/falcor/factory.rb', line 11

def create_methods(blk)
  instance_eval(&blk)
end

Instance Method Details

#associationsObject



28
29
30
# File 'lib/falcor/factory.rb', line 28

def associations
  self.class.associations || []
end

#fieldsObject



24
25
26
# File 'lib/falcor/factory.rb', line 24

def fields
  self.class.fields || []
end

#listsObject



32
33
34
# File 'lib/falcor/factory.rb', line 32

def lists
  self.class.lists || []
end

#to_jsonObject



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/falcor/factory.rb', line 36

def to_json
  json = {}

  fields.each do |field|
    value = self.send(field)
    unless value.nil?
      json[field.to_s] = self.send(field)
    end
  end

  associations.each do |field|
    json[field.to_js] = self.send(field).send(:to_json)
  end

  lists.each do |field|
    json[field.to_s] = self.send(field).map { |m| m.to_json }
  end

  json
end