Sha256: 819f616bc7f4f9a6712e85f257970dadb4f7f423a08856ee9def03976ce5b92a
Contents?: true
Size: 1.09 KB
Versions: 86
Compression:
Stored size: 1.09 KB
Contents
module Alula class ListObject include Enumerable attr_reader :items, :type, :meta attr_accessor :rate_limit def initialize list_type @type = list_type @items = [] end def length items.length end def each items.each { |i| yield i } end def[] index @items[index] end def first @items.first end def last @items.last end def << item @items << item end def set_meta(meta) @meta = meta end def pagination meta.page end def self.construct_from_response klass, response, opts list = ListObject.new(klass) response.data['data'].each do |item| list << klass.new(item['id']).construct_from(item) end list.set_meta Meta.new(response.data['meta']) list.rate_limit = response.rate_limit list end def self.construct_from_array klass, collection list = ListObject.new(klass) collection.each do |item| list << klass.new(item['id']).construct_from(item) end list end end end
Version data entries
86 entries across 86 versions & 1 rubygems