Class: Tarantool::EMDB::Concatter

Inherits:
Object
  • Object
show all
Defined in:
lib/tarantool/em_db.rb

Instance Method Summary collapse

Constructor Details

#initialize(count, feed) ⇒ Concatter

Returns a new instance of Concatter.



140
141
142
143
144
# File 'lib/tarantool/em_db.rb', line 140

def initialize(count, feed)
  @result = []
  @count = count
  @feed = feed
end

Instance Method Details

#call(array) ⇒ Object



145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
# File 'lib/tarantool/em_db.rb', line 145

def call(array)
  if @count > 0
    case array
    when Array
      @result.concat array
    when Exception
      @result = array
      @count = 1
    else
      @result << array
    end
    if (@count -= 1) == 0
      if Array === @result && Integer === @result.first
        @feed.call @result.inject(0){|s, i| s + i}
      else
        @feed.call @result
      end
    end
  end
end