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