class Flexirest::ResultIterator

Attributes

_headers[R]
_parent[RW]
_parent_attribute_name[RW]
_status[RW]
items[RW]

Public Class Methods

new(response = nil) click to toggle source
# File lib/flexirest/result_iterator.rb, line 10
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/flexirest/result_iterator.rb, line 16
def <<(item)
  @items << item
end
[](key) click to toggle source
# File lib/flexirest/result_iterator.rb, line 58
def [](key)
  @items[key]
end
[]=(key, value) click to toggle source
# File lib/flexirest/result_iterator.rb, line 62
def []=(key, value)
  @items[key] = value
end
_clean!() click to toggle source
# File lib/flexirest/result_iterator.rb, line 20
def _clean!
  @items.map(&:_clean!)
end
delete_if(&block) click to toggle source
# File lib/flexirest/result_iterator.rb, line 71
def delete_if(&block)
  @items = @items.delete_if &block
  self
end
each() { |el| ... } click to toggle source
# File lib/flexirest/result_iterator.rb, line 48
def each
  @items.each do |el|
    yield el
  end
end
empty?() click to toggle source
# File lib/flexirest/result_iterator.rb, line 40
def empty?
  size == 0
end
index(...) click to toggle source
# File lib/flexirest/result_iterator.rb, line 36
def index(...)
  @items.index(...)
end
join(*args) click to toggle source
# File lib/flexirest/result_iterator.rb, line 32
def join(*args)
  @items.join(*args)
end
last() click to toggle source
# File lib/flexirest/result_iterator.rb, line 54
def last
  @items.last
end
paginate(options = {}) click to toggle source
# File lib/flexirest/result_iterator.rb, line 107
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/flexirest/result_iterator.rb, line 90
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/flexirest/result_iterator.rb, line 44
def reverse
  @reversed_items ||= @items.reverse
end
shuffle() click to toggle source
# File lib/flexirest/result_iterator.rb, line 66
def shuffle
  @items = @items.shuffle
  self
end
size() click to toggle source
# File lib/flexirest/result_iterator.rb, line 24
def size
  @items.size
end
to_a() click to toggle source
# File lib/flexirest/result_iterator.rb, line 28
def to_a
  @items
end
where(criteria={}) click to toggle source
# File lib/flexirest/result_iterator.rb, line 76
def where(criteria={})
  @items.select do |object|
    select = true
    criteria.each do |k, v|
      if v.is_a?(Regexp)
        select = false if !object[k][v]
      else
        select = false if object[k] != v
      end
    end
    select
  end
end