class Tarantool::EMDB::ConcatterReplace
Public Class Methods
new(count, feed)
click to toggle source
# File lib/tarantool/em_db.rb, line 168 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 173 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