Class: SwapiDev::AsyncStream

Inherits:
Object
  • Object
show all
Defined in:
lib/swapi_dev/client/async_stream.rb

Instance Method Summary collapse

Constructor Details

#initialize(enumerable) ⇒ AsyncStream

Returns a new instance of AsyncStream.



5
6
7
# File 'lib/swapi_dev/client/async_stream.rb', line 5

def initialize(enumerable)
  @enumerable = enumerable
end

Instance Method Details

#mapObject



9
10
11
12
13
# File 'lib/swapi_dev/client/async_stream.rb', line 9

def map
  enumerable.map do |item|
    Thread.new { yield(item) }
  end.map(&:value)
end

#sum(&block) ⇒ Object



15
16
17
# File 'lib/swapi_dev/client/async_stream.rb', line 15

def sum(&block)
  map(&block).inject(:+)
end