class ActiveRestClient::ResultIterator

Attributes

_headers[R]
_status[RW]
items[R]

Public Class Methods

new(response = nil) click to toggle source
# File lib/active_rest_client/result_iterator.rb, line 8
def initialize(response = nil)
  @_status  = response.try :status
  @_headers = response.try :response_headers
  @items = []
end

Public Instance Methods

<<(item) click to toggle source
# File lib/active_rest_client/result_iterator.rb, line 14
def <<(item)
  @items << item
end
[](key) click to toggle source
# File lib/active_rest_client/result_iterator.rb, line 44
def [](key)
  @items[key]
end
each() { |el| ... } click to toggle source
# File lib/active_rest_client/result_iterator.rb, line 34
def each
  @items.each do |el|
    yield el
  end
end
empty?() click to toggle source
# File lib/active_rest_client/result_iterator.rb, line 26
def empty?
  size == 0
end
index(value) click to toggle source
# File lib/active_rest_client/result_iterator.rb, line 22
def index(value)
  @items.index(value)
end
last() click to toggle source
# File lib/active_rest_client/result_iterator.rb, line 40
def last
  @items.last
end
paginate(options = {}) click to toggle source
# File lib/active_rest_client/result_iterator.rb, line 70
def paginate(options = {})
  raise WillPaginateNotAvailableException.new unless Object.constants.include?(:WillPaginate)

  page     = options[:page] || 1
  per_page = options[:per_page] || WillPaginate.per_page
  total    = options[:total_entries] || @items.length

  WillPaginate::Collection.create(page, per_page, total) do |pager|
    pager.replace @items[pager.offset, pager.per_page].to_a
  end
end
parallelise(method=nil) { |item| ... } click to toggle source
# File lib/active_rest_client/result_iterator.rb, line 53
def parallelise(method=nil)
  collected_responses = []
  threads = []
  @items.each do |item|
    threads << Thread.new do
      ret = item.send(method) if method
      ret = yield(item) if block_given?
      Thread.current[:response] = ret
    end
  end
  threads.each do |t|
    t.join
    collected_responses << t[:response]
  end
  collected_responses
end
reverse() click to toggle source
# File lib/active_rest_client/result_iterator.rb, line 30
def reverse
  @reversed_items ||= @items.reverse
end
shuffle() click to toggle source
# File lib/active_rest_client/result_iterator.rb, line 48
def shuffle
  @items = @items.shuffle
  self
end
size() click to toggle source
# File lib/active_rest_client/result_iterator.rb, line 18
def size
  @items.size
end