class Queryko::Feature

Attributes

filter_names[R]
name[R]
query_object[R]

Public Class Methods

new(name, query_object) click to toggle source
# File lib/queryko/feature.rb, line 3
def initialize(name, query_object)
  @name = name
  @query_object = query_object
  @filter_names = {}
end

Public Instance Methods

add_filter(filter_name, options = {}) click to toggle source
# File lib/queryko/feature.rb, line 9
def add_filter(filter_name, options = {})
  self.filter_names[filter_name] = create_filter(filter_name, options)
end
create_filter(filter_name, options = {}) click to toggle source
# File lib/queryko/feature.rb, line 13
def create_filter(filter_name, options = {})
  if filter_class = filter_class_for(filter_name)
    result = filter_class.new(options, self)
  else
    raise "Filter class for #{filter_name} not found"
  end
  result
end
filter_class_for(filter_name) click to toggle source
# File lib/queryko/feature.rb, line 22
def filter_class_for(filter_name)
  filter_class = self.query_object.filters.fetch(filter_name.to_sym)
  return filter_class.constantize if filter_class.class == String
  return filter_class
end