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