Class: PArray

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/parray.rb,
lib/parray/api.rb,
lib/parray/error.rb,
lib/parray/version.rb

Defined Under Namespace

Modules: API Classes: Error

Constant Summary collapse

DEFAULT_CONCURRENCY =
2
VERSION =
"0.1.0"

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(arr, in_threads:) ⇒ PArray

Returns a new instance of PArray.



18
19
20
21
22
23
24
# File 'lib/parray.rb', line 18

def initialize(arr, in_threads:)
  if !arr.respond_to?(:to_a)
    raise Error.new("#{arr} must respond to `#to_a`!")
  end
  @arr        = arr
  @in_threads = in_threads
end

Class Method Details

.parallelize(arr, in_threads: DEFAULT_CONCURRENCY) ⇒ Object



11
12
13
# File 'lib/parray.rb', line 11

def parallelize(arr, in_threads: DEFAULT_CONCURRENCY)
  PArray.new(arr, in_threads: in_threads)
end

Instance Method Details

#each(&block) ⇒ Object



30
31
32
# File 'lib/parray.rb', line 30

def each(&block)
  Parallel.each(@arr.to_a, in_threads: @in_threads) { |*args| yield *args }
end

#map(&block) ⇒ Object



26
27
28
# File 'lib/parray.rb', line 26

def map(&block)
  Parallel.map(@arr.to_a, in_threads: @in_threads) { |*args| yield *args }
end

#to_aObject



34
35
36
# File 'lib/parray.rb', line 34

def to_a
  @arr.to_a
end