Class: Filterameter::Registries::Registry

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

Overview

Registry

Class Registry records declarations and allows resulting filters and sorts to be fetched from sub-registries.

Instance Method Summary collapse

Constructor Details

#initialize(model_class) ⇒ Registry

Returns a new instance of Registry.



11
12
13
14
# File 'lib/filterameter/registries/registry.rb', line 11

def initialize(model_class)
  @filter_registry = Filterameter::Registries::FilterRegistry.new(Filterameter::FilterFactory.new(model_class))
  @sort_registry = Filterameter::Registries::SortRegistry.new(Filterameter::SortFactory.new(model_class))
end

Instance Method Details

#add_filter(parameter_name, options) ⇒ Object



16
17
18
19
# File 'lib/filterameter/registries/registry.rb', line 16

def add_filter(parameter_name, options)
  declaration = @filter_registry.add(parameter_name, options)
  add_sort(parameter_name, options.slice(:name, :association)) if declaration.sortable?
end

#add_sort(parameter_name, options) ⇒ Object



25
26
27
# File 'lib/filterameter/registries/registry.rb', line 25

def add_sort(parameter_name, options)
  @sort_registry.add(parameter_name, options)
end

#fetch_filter(parameter_name) ⇒ Object



21
22
23
# File 'lib/filterameter/registries/registry.rb', line 21

def fetch_filter(parameter_name)
  @filter_registry.fetch(parameter_name)
end

#fetch_sort(parameter_name) ⇒ Object



29
30
31
# File 'lib/filterameter/registries/registry.rb', line 29

def fetch_sort(parameter_name)
  @sort_registry.fetch(parameter_name)
end