| Module | Aquarium::Utils::OptionsUtils::ClassMethods |
| In: |
lib/aquarium/utils/options_utils.rb
|
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 197
197: def add_exclude_options_for option, options_hash
198: all_variants = options_hash[option].dup
199: options_hash["exclude_#{option}"] = all_variants.map {|x| "exclude_#{x}"}
200: end
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 205
205: def add_prepositional_option_variants_for option, options_hash
206: all_variants = options_hash[option].dup + [option]
207: OptionsUtils.universal_prepositions.each do |prefix|
208: all_variants.each do |variant|
209: options_hash[option] << "#{prefix}_#{variant}"
210: end
211: end
212: end
# File lib/aquarium/utils/options_utils.rb, line 174
174: def canonical_option_accessor *canonical_option_key_list
175: canonical_option_reader *canonical_option_key_list
176: canonical_option_writer *canonical_option_key_list
177: end
# File lib/aquarium/utils/options_utils.rb, line 156
156: def canonical_option_reader *canonical_option_key_list
157: return if canonical_option_key_list.nil? or canonical_option_key_list.empty?
158: keys = determine_options_for_accessors canonical_option_key_list
159: keys.each do |name|
160: define_method(name) do
161: @specification[name]
162: end
163: end
164: end
# File lib/aquarium/utils/options_utils.rb, line 165
165: def canonical_option_writer *canonical_option_key_list
166: return if canonical_option_key_list.nil? or canonical_option_key_list.empty?
167: keys = determine_options_for_accessors canonical_option_key_list
168: keys.each do |name|
169: define_method("#{name}=") do |value|
170: @specification[name] = make_set(make_array(value))
171: end
172: end
173: end
# File lib/aquarium/utils/options_utils.rb, line 179
179: def canonical_options_given_methods canonical_options
180: keys = canonical_options.respond_to?(:keys) ? canonical_options.keys : canonical_options
181: (keys + OptionsUtils::universal_options).each do |name|
182: module_eval("def \#{name}_given\n@specification[:\#{name}]\nend\n\ndef \#{name}_given?\nnot (\#{name}_given.nil? or \#{name}_given.empty?)\nend\n", __FILE__, __LINE__)
183: end
184: end