class Wordpress::Object::MetaObject
Public Class Methods
attr_meta_object(params)
click to toggle source
# File lib/wordpress/object/meta_object.rb, line 14 def attr_meta_object(params) self.meta_objects = (meta_objects || {}).merge(Hash[params.map{ |k, v| [k.to_s, v] }]) end
inherited(base)
click to toggle source
# File lib/wordpress/object/meta_object.rb, line 8 def inherited(base) base.class_eval do attr_parameter :meta end end
Public Instance Methods
assign(response)
click to toggle source
Calls superclass method
Wordpress::Object::Base#assign
# File lib/wordpress/object/meta_object.rb, line 19 def assign(response) @cached_objects = {} super end
delete()
click to toggle source
# File lib/wordpress/object/meta_object.rb, line 37 def delete raise NotImplementedError end
reload()
click to toggle source
# File lib/wordpress/object/meta_object.rb, line 24 def reload if meta && meta.links && meta.links.self request = Wordpress::Request.new(:get, meta.links.self) client.exec_api(request) do |json| self.assign(json) end end end
save()
click to toggle source
# File lib/wordpress/object/meta_object.rb, line 33 def save raise NotImplementedError end
Private Instance Methods
associated_object?(name)
click to toggle source
# File lib/wordpress/object/meta_object.rb, line 43 def associated_object?(name) name = name.to_s @response['meta'] && @response['meta']['links'] && @response['meta']['links'].include?(name) && meta_objects.include?(name) end
available_object?(name)
click to toggle source
Calls superclass method
Wordpress::Object::Base#available_object?
# File lib/wordpress/object/meta_object.rb, line 48 def available_object?(name) associated_object?(name) || super end
get_object(name)
click to toggle source
Calls superclass method
Wordpress::Object::Base#get_object
# File lib/wordpress/object/meta_object.rb, line 52 def get_object(name) name = name.to_s if associated_object?(name) @cached_objects[name] ||= begin request = Wordpress::Request.new(:get, meta.links.send(name)) json = client.call(request) Wordpress::Object.const_get(meta_objects[name]).new(client, json) end else super end end