module Finix::Resource::ClassMethods
Public Instance Methods
construct_from_response(payload)
click to toggle source
this is class method, not callable from instance
# File lib/finix/resources/resource.rb, line 106 def construct_from_response(payload) payload = Finix::Utils.indifferent_read_access payload links = payload.delete('_links') || {} instance = self.new payload instance.hydrate(links) instance end
fetch(*arguments)
click to toggle source
# File lib/finix/resources/resource.rb, line 114 def fetch(*arguments) if arguments.nil? or arguments.empty? or arguments[0].nil? or arguments[0].to_s.empty? href = Finix.get_href self # href = Finix.hypermedia_registry.key(self) return Finix::Utils.eval_class(self, Pagination).new :href => href end options = arguments.slice!(0) or {} if options.is_a? String and options =~ URI::regexp href = options else href = Finix.get_href(self) or Finix.get_href(self.class) if options.is_a? Hash options = Finix::Utils.indifferent_read_access options id = options.delete('id') elsif options.is_a? String id = options end href = "#{href}/#{id}" unless id.nil? end response = Finix.get href construct_from_response response.body end
Also aliased as: find
pagination(*args)
click to toggle source
# File lib/finix/resources/resource.rb, line 139 def pagination(*args) href = Finix.get_href self # href = Finix.hypermedia_registry.key(self) opts = args.slice!(0) || {} opts[:href] = href Finix::Utils.eval_class(self, Pagination).new opts end
retrieve(*args)
click to toggle source
# File lib/finix/resources/resource.rb, line 149 def retrieve(*args) pager_or_resource = fetch *args if pager_or_resource.is_a? Pagination pager_or_resource.load! unless pager_or_resource.loaded end pager_or_resource end