module Aquarium::Utils::OptionsUtils::ClassMethods

Public Instance Methods

add_exclude_options_for(option, options_hash) click to toggle source

Service method that adds a new canonical option and corresponding array with “exclude_” prepended to all values. The new options are added to the input hash.

# File lib/aquarium/utils/options_utils.rb, line 196
def add_exclude_options_for option, options_hash
  all_variants = options_hash[option].dup
  options_hash["exclude_#{option}"] = all_variants.map {|x| "exclude_#{x}"}
end
add_prepositional_option_variants_for(option, options_hash) click to toggle source

Service method that adds a new canonical option and corresponding array with “preposition” prefixes, e.g., “on_”, “for_”, etc. prepended to all values. The new options are added to the input hash.

# File lib/aquarium/utils/options_utils.rb, line 204
def add_prepositional_option_variants_for option, options_hash
  all_variants = options_hash[option].dup + [option]
  OptionsUtils.universal_prepositions.each do |prefix|
    all_variants.each do |variant|
      options_hash[option] << "#{prefix}_#{variant}" 
    end
  end
end
canonical_option_accessor(*canonical_option_key_list) click to toggle source
# File lib/aquarium/utils/options_utils.rb, line 174
def canonical_option_accessor *canonical_option_key_list
  canonical_option_reader *canonical_option_key_list
  canonical_option_writer *canonical_option_key_list
end
canonical_option_reader(*canonical_option_key_list) click to toggle source
# File lib/aquarium/utils/options_utils.rb, line 156
def canonical_option_reader *canonical_option_key_list
  return if canonical_option_key_list.nil? or canonical_option_key_list.empty?
  keys = determine_options_for_accessors canonical_option_key_list
  keys.each do |name|
    define_method(name) do 
      @specification[name]
    end
  end
end
canonical_option_writer(*canonical_option_key_list) click to toggle source
# File lib/aquarium/utils/options_utils.rb, line 165
def canonical_option_writer *canonical_option_key_list
  return if canonical_option_key_list.nil? or canonical_option_key_list.empty?
  keys = determine_options_for_accessors canonical_option_key_list
  keys.each do |name|
    define_method("#{name}=") do |value|
      @specification[name] = make_set(make_array(value))
    end
  end
end
canonical_options_given_methods(canonical_options) click to toggle source
# File lib/aquarium/utils/options_utils.rb, line 179
        def canonical_options_given_methods canonical_options
          keys = canonical_options.respond_to?(:keys) ? canonical_options.keys : canonical_options 
          (keys + OptionsUtils::universal_options).each do |name|
            module_eval("              def #{name}_given
                @specification[:#{name}]
              end
  
              def #{name}_given?
                not (#{name}_given.nil? or #{name}_given.empty?)
              end
", __FILE__, __LINE__)
          end
        end