Class: Filterameter::FilterFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/filterameter/filter_factory.rb

Overview

Filter Factory

Class FilterFactory builds a filter from a FilterDeclaration.

Instance Method Summary collapse

Constructor Details

#initialize(model_class) ⇒ FilterFactory

Returns a new instance of FilterFactory.



14
15
16
# File 'lib/filterameter/filter_factory.rb', line 14

def initialize(model_class)
  @model_class = model_class
end

Instance Method Details

#build(declaration) ⇒ Object



18
19
20
21
22
23
# File 'lib/filterameter/filter_factory.rb', line 18

def build(declaration)
  model = declaration.nested? ? model_from_association(declaration.association) : @model_class
  filter = build_filter(model, declaration)

  declaration.nested? ? Filterameter::Filters::NestedFilter.new(declaration.association, model, filter) : filter
end