Method: ElasticWeb::ResourceCollection#initialize
- Defined in:
- lib/elasticweb/resource_collection.rb
#initialize(original_data, options = {}) ⇒ ResourceCollection
Returns a new instance of ResourceCollection.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/elasticweb/resource_collection.rb', line 7 def initialize(original_data, = {}) original_data.merge!({ data: [] }) unless original_data.dig(:data).is_a?(Array) data = original_data.dig(:data) @collection = Array(data).map do |resource| Resource.new(data: resource) end if (pager = original_data.delete(:pager)) @pager = OpenStruct.new({ total: pager[:total], per_page: pager[:per_page], current_page: pager[:current_page], next_page_url: pager[:next_page_url], prev_page_url: pager[:prev_page_url] }) else @pager = nil end references = original_data.delete(:references) { Hash.new } @refs = references.present? ? OpenStruct.new(parse_references(references)) : nil @options = .with_indifferent_access end |