Sha256: 72cb28407e207231fedd6e8564aeba881c8c215ba9fd888f80f1a21d0d6745b7
Contents?: true
Size: 1.25 KB
Versions: 19
Compression:
Stored size: 1.25 KB
Contents
module RemoteResource class Collection include Enumerable attr_reader :resource_klass, :resources_collection attr_accessor :last_request, :last_response, :meta delegate :[], :at, :reverse, :size, to: :to_a def initialize(resource_klass, resources_collection, options = {}) @resource_klass = resource_klass @resources_collection = resources_collection @options = options end def each(&block) return nil if !resources_collection.is_a?(Array) if defined?(@collection) @collection.each(&block) else @collection = [] resources_collection.each do |element| record = resource_klass.new(element.merge(@options)) @collection.push(record) end @collection.each(&block) end end def empty? resources_collection.blank? end def success? last_response.success? end def last_request @last_request ||= @options[:last_request] end def last_response @last_response ||= @options[:last_response] end def meta @meta ||= @options[:meta] end def _response warn '[DEPRECATION] `._response` is deprecated. Please use `.last_response` instead.' end end end
Version data entries
19 entries across 19 versions & 1 rubygems