Parent

Methods

Files

Class/Module Index [+]

Quicksearch

Tarantool::EMDB::ConcatterReplace

Public Class Methods

new(count, feed) click to toggle source
# File lib/tarantool/em_db.rb, line 162
def initialize(count, feed)
  @result = []
  @count = count
  @feed = feed
end

Public Instance Methods

call(array) click to toggle source
# File lib/tarantool/em_db.rb, line 167
def call(array)
  if @count > 0
    case array
    when Array
      @result.concat array
    when ::Tarantool::TupleDoesntExists
      @result << array
    when Exception
      @result = array
      @count = 1
    else
      @result << array
    end
    if (@count -= 1) == 0
      if Exception === @result
        @feed.call @result
      elsif @result.all?{|r| ::Tarantool::TupleDoesntExists === r}
        @feed.call @result.first
      else
        @result.delete_if{|r| ::Tarantool::TupleDoesntExists === r}
        if Integer === @result.first
          @feed.call @result.inject(0){|s, i| s + i}
        else
          @feed.call @result
        end
      end
    end
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.