class Omise::List

Public Class Methods

new(attributes = {}, options = {}) click to toggle source
Calls superclass method
# File lib/omise/list.rb, line 8
def initialize(attributes = {}, options = {})
  super(attributes, options)
  setup_data
end

Public Instance Methods

each(*args, &block) click to toggle source
# File lib/omise/list.rb, line 51
def each(*args, &block)
  to_a.each(*args, &block)
end
first_page?() click to toggle source
# File lib/omise/list.rb, line 23
def first_page?
  offset == 0
end
jump_to_page(page) click to toggle source
# File lib/omise/list.rb, line 47
def jump_to_page(page)
  self.class.new(@attributes, @options).send(:jump_to_page!, page)
end
last() click to toggle source
# File lib/omise/list.rb, line 59
def last
  to_a.last
end
last_page?() click to toggle source
# File lib/omise/list.rb, line 27
def last_page?
  offset + limit >= total
end
next_page() click to toggle source
# File lib/omise/list.rb, line 39
def next_page
  self.class.new(@attributes, @options).send(:next_page!)
end
page() click to toggle source
# File lib/omise/list.rb, line 31
def page
  1 + (offset / limit)
end
parent() click to toggle source
# File lib/omise/list.rb, line 19
def parent
  @options[:parent]
end
previous_page() click to toggle source
# File lib/omise/list.rb, line 43
def previous_page
  self.class.new(@attributes, @options).send(:previous_page!)
end
reload(attributes = {}) click to toggle source
# File lib/omise/list.rb, line 13
def reload(attributes = {})
  assign_attributes resource(attributes).get(attributes) do
    setup_data
  end
end
to_a() click to toggle source
# File lib/omise/list.rb, line 55
def to_a
  @data
end
total_pages() click to toggle source
# File lib/omise/list.rb, line 35
def total_pages
  (total.to_f / limit).ceil
end

Private Instance Methods

jump_to_page!(page) click to toggle source
# File lib/omise/list.rb, line 65
def jump_to_page!(page)
  new_offset = ((page - 1) * limit)
  return nil if new_offset >= total
  reload(offset: new_offset, limit: limit)
  self
end
next_page!() click to toggle source
# File lib/omise/list.rb, line 72
def next_page!
  return nil if (offset + limit) >= total
  reload(offset: offset + limit, limit: limit)
  self
end
previous_page!() click to toggle source
# File lib/omise/list.rb, line 78
def previous_page!
  return nil if (offset - limit) < 0
  reload(offset: offset - limit, limit: limit)
  self
end
setup_data() click to toggle source
# File lib/omise/list.rb, line 84
def setup_data
  @data = @attributes["data"].map { |o| Omise::Util.typecast(o) }
end