Sha256: fc9dabf86e8aee7836df3c14dda42c0eaa2c3fc3bdad8bd0daf02e580a47f028

Contents?: true

Size: 982 Bytes

Versions: 16

Compression:

Stored size: 982 Bytes

Contents

require 'jsduck/util/os'
require 'parallel'

module JsDuck
  module Util

    # Wrapper around the parallel gem that falls back to simple
    # Array#map and Array#each when :in_processes => 0 specified.
    class Parallel
      @@in_processes = nil

      # Configures the logger to use as many processes as set in
      # command line options.  When in Windows, turns the parallel
      # processing off by default.
      def self.configure(opts)
        @@in_processes = 0 if Util::OS::windows?
        @@in_processes = opts.processes if opts.processes
      end

      def self.each(arr, &block)
        if @@in_processes == 0
          arr.each &block
        else
          ::Parallel.each(arr, {:in_processes => @@in_processes}, &block)
        end
      end

      def self.map(arr, &block)
        if @@in_processes == 0
          arr.map &block
        else
          ::Parallel.map(arr, {:in_processes => @@in_processes}, &block)
        end
      end
    end

  end
end

Version data entries

16 entries across 16 versions & 3 rubygems

Version Path
solvas-jsduck-6.0.0.30539 lib/jsduck/util/parallel.rb
solvas-jsduck-6.0.0.9571 lib/jsduck/util/parallel.rb
solvas-jsduck-6.0.0.6154 lib/jsduck/util/parallel.rb
solvas-jsduck-6.0.0.4021 lib/jsduck/util/parallel.rb
solvas-jsduck-6.0.0.2554 lib/jsduck/util/parallel.rb
solvas-jsduck-6.0.0.1891 lib/jsduck/util/parallel.rb
solvas-jsduck-6.0.0.beta.1888 lib/jsduck/util/parallel.rb
jsduck-troopjs-0.0.10 lib/jsduck/util/parallel.rb
jsduck-troopjs-0.0.9 lib/jsduck/util/parallel.rb
jsduck-troopjs-0.0.8 lib/jsduck/util/parallel.rb
jsduck-troopjs-0.0.7 lib/jsduck/util/parallel.rb
jsduck-troopjs-0.0.5 lib/jsduck/util/parallel.rb
jsduck-troopjs-0.0.4 lib/jsduck/util/parallel.rb
jsduck-troopjs-0.0.3 lib/jsduck/util/parallel.rb
jsduck-troopjs-0.0.1 lib/jsduck/util/parallel.rb
jsduck-6.0.0beta lib/jsduck/util/parallel.rb