Module: CastAboutFor::Search

Included in:
Base::ClassMethods
Defined in:
lib/cast_about_for/search.rb

Instance Method Summary collapse

Instance Method Details

#cast_about_for(*args, &block) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/cast_about_for/search.rb', line 3

def cast_about_for *args, &block
  cast_about_params = class_variable_get(:@@cast_about_for_params).dup
  options = args.dup
  options = options.extract_options!

  jsonapi = options[:jsonapi] || false
  params = jsonapi ? args[0][:filter] : args[0]
  
  seach_model = self.all
  cast_about_params.each do |key, value|
    seach_model = send("cast_about_for_by_#{key}", value, params, seach_model)
  end

  seach_model = yield(seach_model, params) if block_given?

  return seach_model
end