22
23
24
25
26
27
28
29
30
31
|
# File 'lib/has_browser.rb', line 22
def browse(*args)
params = args..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
|