class Elmas::ResultSet
Attributes
records[R]
Public Class Methods
new(parsed_response)
click to toggle source
# File lib/elmas/result_set.rb, line 7 def initialize(parsed_response) @parsed_response = parsed_response @records = if @parsed_response.results @parsed_response.results.map do |attributes| resource_class.send(:new, attributes) end else [resource_class.send(:new, @parsed_response.result)] end end
Public Instance Methods
first()
click to toggle source
# File lib/elmas/result_set.rb, line 28 def first records.first end
next_page()
click to toggle source
# File lib/elmas/result_set.rb, line 19 def next_page return unless next_page_url next_page = Elmas.get(next_page_url, use_raw_path: true) return unless next_page response = Elmas::Response.new(next_page) response.results end
Protected Instance Methods
next_page_url()
click to toggle source
# File lib/elmas/result_set.rb, line 34 def next_page_url @parsed_response.next_page_url end
resource_class()
click to toggle source
# File lib/elmas/result_set.rb, line 47 def resource_class @resource_class ||= begin constant_name = type.classify raise NameError unless constant_name =~ /\A[a-zA-Z0-9]+\z/ klass = Elmas.const_get(constant_name, false) raise NameError unless klass.included_modules.include?(Elmas::Resource) klass rescue NameError Elmas.info("Unknown resource encountered, proceed as usual but further resource details might have to be implemented") Class.new { include Elmas::Resource } end end
type()
click to toggle source
# File lib/elmas/result_set.rb, line 38 def type if @parsed_response.metadata c_type = @parsed_response.metadata["type"] elsif @parsed_response.results.any? c_type = @parsed_response.results.first["__metadata"]["type"] end c_type.split(".").last end