Sha256: c35ef21b051c5337ccb59f22da2e696ff037ec6f70ed4547eda12d78b70cb71b

Contents?: true

Size: 1.96 KB

Versions: 40

Compression:

Stored size: 1.96 KB

Contents

module Beaker
  module Shared
    # Methods for parsing options.
    module OptionsResolver
      # parses local and global options to determine if a particular mode should
      # be run in parallel. typically, local_options will specify a true/false 
      # value, while global_options will specify an array of mode names that should
      # be run in parallel. the value specified in local_options will take precedence
      # over the values specified in global_options. 
      # @param [Hash] local_options local options for running in parallel
      # @option local_options [Boolean] :run_in_parallel flag for running in parallel
      # @param [Hash] global_options global options for running in parallel
      # @option global_options [Array<String>] :run_in_parallel list of modes to run in parallel
      # @param [String] mode the mode we want to query global_options for
      # @return [Boolean] true if the specified mode is in global_options and :run_in_parallel in local_options is not false, 
      #   or if :run_in_parallel in local_options is true, false otherwise
      # @example
      #   run_in_parallel?({:run_in_parallel => true}) 
      #   -> will return true
      #
      #   run_in_parallel?({:run_in_parallel => true}, {:run_in_parallel => ['install','configure']}, 'install') 
      #   -> will return true
      #
      #   run_in_parallel?({:run_in_parallel => false}, {:run_in_parallel => ['install','configure']}, 'install') 
      #   -> will return false
      def run_in_parallel?(local_options=nil, global_options=nil, mode=nil)
        run_in_parallel = local_options[:run_in_parallel] unless local_options.nil?

        if !run_in_parallel.nil? && run_in_parallel.is_a?(Array)
          run_in_parallel = false
        end

        if run_in_parallel.nil? && global_options && global_options[:run_in_parallel].is_a?(Array)
          run_in_parallel = global_options[:run_in_parallel].include?(mode)
        end

        run_in_parallel
      end
    end
  end
end

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
beaker-3.34.0 lib/beaker/shared/options_resolver.rb
beaker-3.33.0 lib/beaker/shared/options_resolver.rb
beaker-3.32.0 lib/beaker/shared/options_resolver.rb
beaker-3.31.0 lib/beaker/shared/options_resolver.rb
beaker-3.30.0 lib/beaker/shared/options_resolver.rb
beaker-3.29.0 lib/beaker/shared/options_resolver.rb
beaker-3.28.0 lib/beaker/shared/options_resolver.rb
beaker-3.27.0 lib/beaker/shared/options_resolver.rb
beaker-3.26.0 lib/beaker/shared/options_resolver.rb
beaker-3.25.0 lib/beaker/shared/options_resolver.rb
beaker-3.24.0 lib/beaker/shared/options_resolver.rb
beaker-3.23.0 lib/beaker/shared/options_resolver.rb
beaker-3.22.0 lib/beaker/shared/options_resolver.rb
beaker-3.21.1 lib/beaker/shared/options_resolver.rb
beaker-3.21.0 lib/beaker/shared/options_resolver.rb
beaker-3.20.0 lib/beaker/shared/options_resolver.rb
beaker-3.19.0 lib/beaker/shared/options_resolver.rb
beaker-3.18.0 lib/beaker/shared/options_resolver.rb
beaker-3.17.0 lib/beaker/shared/options_resolver.rb
beaker-3.16.0 lib/beaker/shared/options_resolver.rb