Module: RouteNGN::InstanceMethods
- Defined in:
- lib/routengn/mapper.rb
Overview
TODO perhaps we can add some of the goodies provided through relationships like ‘<<’
Instance Attribute Summary collapse
-
#saved ⇒ Object
Returns the value of attribute saved.
Instance Method Summary collapse
Instance Attribute Details
#saved ⇒ Object
Returns the value of attribute saved.
13 14 15 |
# File 'lib/routengn/mapper.rb', line 13 def saved @saved end |
Instance Method Details
#attr_params ⇒ Object
22 23 24 25 26 27 |
# File 'lib/routengn/mapper.rb', line 22 def attr_params self.attributes.inject({}) do |params, (k, v)| params["#{self.class.name.downcase}[#{k}]"] = v params end end |
#attributes ⇒ Object
15 16 17 18 19 20 |
# File 'lib/routengn/mapper.rb', line 15 def attributes self.class.fields.inject({}) do |_, field| _[field] = send field _ end end |
#destroy ⇒ Object
53 54 55 56 |
# File 'lib/routengn/mapper.rb', line 53 def destroy response = RouteNGN.delete self.class.base_url, :id => primary response.success? end |
#new? ⇒ Boolean
29 30 31 |
# File 'lib/routengn/mapper.rb', line 29 def new? !(@saved ||= false) end |
#save ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/routengn/mapper.rb', line 33 def save response = if new? RouteNGN.post self.class.base_url, attr_params else RouteNGN.put self.class.base_url, attr_params end return false if !response.success? @saved = true # populates fields with data that was sent back self.class.fields.each do |field| element = response['data'].first self.send :"#{field}=", element[field.to_s] if element[field.to_s] end true end |