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