Module: Beaker::Shared::OptionsResolver

Included in:
Beaker::Shared
Defined in:
lib/beaker/shared/options_resolver.rb

Overview

Methods for parsing options.

Instance Method Summary collapse

Instance Method Details

#run_in_parallel?(local_options = nil, global_options = nil, mode = nil) ⇒ Boolean

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.

Examples:

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

Parameters:

  • local_options (Hash) (defaults to: nil)

    local options for running in parallel

  • global_options (Hash) (defaults to: nil)

    global options for running in parallel

  • mode (String) (defaults to: nil)

    the mode we want to query global_options for

Options Hash (local_options):

  • :run_in_parallel (Boolean)

    flag for running in parallel

Options Hash (global_options):

  • :run_in_parallel (Array<String>)

    list of modes to run in parallel

Returns:

  • (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



26
27
28
29
30
31
32
33
34
# File 'lib/beaker/shared/options_resolver.rb', line 26

def run_in_parallel?(local_options = nil, global_options = nil, mode = nil)
  run_in_parallel = local_options[:run_in_parallel] unless local_options.nil?

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

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

  run_in_parallel
end