Top Level Namespace

Defined Under Namespace

Modules: Enumerable, Threadify Classes: Object, Thread

Instance Method Summary collapse

Instance Method Details

#Threadify(*args, &block) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/threadify.rb', line 21

def Threadify(*args, &block)
  # setup
  #
    opts = args.last.is_a?(Hash) ? args.pop : {}
    opts.keys.each{|key| opts[key.to_s.to_sym] = opts.delete(key)}
    opts[:threads] ||= (Numeric === args.first ? args.shift : Threadify.threads)
    opts[:strategy] ||= (args.empty? ? Threadify.strategy : args)

    threads = Integer(opts[:threads])

    array_of_blocks = Array.new(threads){ block }
    array_of_blocks.threadify(opts){|b| b.call()}
end