Sha256: 3ffc53121091265a437af58ce438a26f443aa92aa805ead9c78001659ab83827
Contents?: true
Size: 1.28 KB
Versions: 1
Compression:
Stored size: 1.28 KB
Contents
module Conekta class List < ConektaObject attr_reader :elements_type, :params, :has_more, :total def initialize(elements_type, params) super() @elements_type = elements_type @params = (params || {}) @total = 0 end def add_element(element) element = Conekta::Util.convert_to_conekta_object(element['object'], element) self[@total] = element self.values[@total] = element @total = @total + 1 self end def next(options={}) if self.size > 0 @params["next"] = self.last.id end @params["previous"] = nil move_cursor(options[:limit]) end def previous(options={}) if self.size > 0 @params["previous"] = self.first.id end @params["next"] = nil move_cursor(options[:limit]) end def load_from(response) @has_more = response["has_more"] self.map{|key, _| self.unset_key(key) } super(response["data"]) end private def move_cursor(limit) @params["limit"] = limit if !limit.nil? && !limit.to_s.empty? _url = Util.types[@elements_type.downcase]._url response = Requestor.new.request(:get, _url, @params) self.load_from(response) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
conekta-2.6.0 | lib/conekta/list.rb |