Class: Resourceful::OptionsInterpretation::OptionsInterpreter
- Defined in:
- lib/resourceful/options_interpretation.rb
Instance Method Summary collapse
-
#extract(name, interpreter_opts = {}, &blk) ⇒ Object
Extract a particular option.
-
#initialize(options_hash) ⇒ OptionsInterpreter
constructor
A new instance of OptionsInterpreter.
Constructor Details
#initialize(options_hash) ⇒ OptionsInterpreter
Returns a new instance of OptionsInterpreter.
33 34 35 |
# File 'lib/resourceful/options_interpretation.rb', line 33 def initialize() @options_hash = end |
Instance Method Details
#extract(name, interpreter_opts = {}, &blk) ⇒ Object
Extract a particular option.
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/resourceful/options_interpretation.rb', line 48 def extract(name, interpreter_opts = {}, &blk) option_required = !interpreter_opts.has_key?(:default) option_required = interpreter_opts[:required] if interpreter_opts.has_key?(:required) raise ArgumentError, "Required option #{name} not provided" if option_required && !@options_hash.has_key?(name) # We have the option we need orig_val = @options_hash.delete(name) if block_given? yield orig_val elsif orig_val orig_val elsif interpreter_opts[:default] && interpreter_opts[:default].respond_to?(:call) interpreter_opts[:default].call() elsif interpreter_opts[:default] interpreter_opts[:default] end end |