Module: Datagrid::Filters::InstanceMethods

Defined in:
lib/datagrid/filters.rb

Overview

ClassMethods

Instance Method Summary collapse

Instance Method Details

#assetsObject

:nodoc:



122
123
124
# File 'lib/datagrid/filters.rb', line 122

def assets # :nodoc:
  apply_filters(super, self.class.filters)
end

#filter_by(*filters) ⇒ Object

Returns assets filtered only by specified filters Allows partial filtering



154
155
156
# File 'lib/datagrid/filters.rb', line 154

def filter_by(*filters)
  apply_filters(scope, filters.map{|f| filter_by_name(f)})
end

#filter_by_name(name) ⇒ Object

Returns filter object with the given name



148
149
150
# File 'lib/datagrid/filters.rb', line 148

def filter_by_name(name)
  self.class.filter_by_name(name)
end

#filter_value(filter) ⇒ Object

Returns filter value for given filter definition



132
133
134
# File 'lib/datagrid/filters.rb', line 132

def filter_value(filter)
  self[filter.name]
end

#filter_value_as_string(name) ⇒ Object

Returns string representation of filter value



137
138
139
140
141
142
143
144
145
# File 'lib/datagrid/filters.rb', line 137

def filter_value_as_string(name)
  filter = filter_by_name(name)
  value = filter_value(filter)
  if value.is_a?(Array) 
    value.map {|v| filter.format(v) }.join(filter.separator)
  else
    filter.format(value)
  end
end

#filtersObject

Returns all defined filters Array



127
128
129
# File 'lib/datagrid/filters.rb', line 127

def filters
  self.class.filters
end

#initialize(*args, &block) ⇒ Object

:nodoc:



115
116
117
118
119
120
# File 'lib/datagrid/filters.rb', line 115

def initialize(*args, &block) # :nodoc:
  self.filters.each do |filter|
    self[filter.name] = filter.default
  end
  super(*args, &block)
end