module SimpleFilter::Filter

Attributes

filters[RW]

Public Instance Methods

filter(name, options = {}) click to toggle source
# File lib/simple_filter/filter.rb, line 5
    def filter(name, options = {})
      method_module = ModuleHelper.module_for 'Filter', name, self
      value_param = options.fetch :value_param, false

      method_module.module_eval <<-CODE, __FILE__, __LINE__ + 1
        def #{name}
          return if !params[:#{name}] || params[:#{name}].to_s.blank?

          args = [:#{name}]
          args << params[:#{name}] if #{value_param}

          scope.send *args
        end
      CODE

      add_filter name
    end

Private Instance Methods

add_filter(name) click to toggle source
# File lib/simple_filter/filter.rb, line 25
def add_filter(name)
  @filters ||= []
  @filters << name
end