Module: Shoulda::Private

Included in:
Macros
Defined in:
lib/shoulda/private_helpers.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#get_options!(args, *wanted) ⇒ Object

Returns the values for the entries in the args hash who's keys are listed in the wanted array. Will raise if there are keys in the args hash that aren't listed.

Raises:

  • (ArgumentError)

5
6
7
8
9
10
11
# File 'lib/shoulda/private_helpers.rb', line 5

def get_options!(args, *wanted)
  ret  = []
  opts = (args.last.is_a?(Hash) ? args.pop : {})
  wanted.each {|w| ret << opts.delete(w)}
  raise ArgumentError, "Unsupported options given: #{opts.keys.join(', ')}" unless opts.keys.empty?
  return wanted.size == 1 ? ret.first : ret
end