Module: HasBrowser::BrowserMethods

Defined in:
lib/has_browser.rb

Instance Method Summary collapse

Instance Method Details

#browse(*args) ⇒ Object

Raises:



22
23
24
25
26
27
28
29
30
31
# File 'lib/has_browser.rb', line 22

def browse(*args)
  params = args.extract_options!.symbolize_keys
  
  invalid_finders = params.keys.reject { |k| has_browser_allowed_finders.values.inject(&:+).include?(k) }
  raise InvalidFinder.new(invalid_finders.join(', ').to_s) unless invalid_finders.empty?
  
  params.inject(args.first || self) do |proxy, finder|
    has_browser_allowed_finders[:with_args].include?(finder.first.to_sym) ? proxy.send(finder.first, finder.last) : proxy.send(finder.first)
  end
end