lib/infoblox/resource.rb in infoblox-0.4.1 vs lib/infoblox/resource.rb in infoblox-0.5.0

- old
+ new

@@ -123,21 +123,11 @@ def self.resource_map @@resource_map ||= {} end def initialize(attrs={}) - attrs.each do |k,v| - # Some things have specialized writers, - # like Host - if respond_to?("#{k}=") - send("#{k}=", v) - - # Some things don't have writers (i.e. remote_attr_reader fields) - else - instance_variable_set("@#{k}", v) - end - end + load_attributes(attrs) end def post self._ref = unquote(connection.post(resource_uri, remote_attribute_hash(write = true, post = true)).body) true @@ -146,12 +136,14 @@ def delete connection.delete(resource_uri).status == 200 end - def get(params={}) - connection.get(resource_uri, params) + def get(params=self.class.default_params) + response = connection.get(resource_uri, params).body + load_attributes(JSON.parse(response)) + self end def put self._ref = unquote(connection.put(resource_uri, remote_attribute_hash(write = true)).body) true @@ -176,9 +168,23 @@ end private def unquote(str) str.gsub(/\A['"]+|['"]+\Z/, "") + end + + def load_attributes(attrs) + attrs.each do |k,v| + # Some things have specialized writers, + # like Host + if respond_to?("#{k}=") + send("#{k}=", v) + + # Some things don't have writers (i.e. remote_attr_reader fields) + else + instance_variable_set("@#{k}", v) + end + end end end end