Module: Queryko::Able::ClassMethods

Defined in:
lib/queryko/able.rb

Instance Method Summary collapse

Instance Method Details

#default_param(sym, value) ⇒ Object



28
29
30
# File 'lib/queryko/able.rb', line 28

def default_param(sym, value)
  self.default_params[sym] = value
end

#feature(feature_name, filter, options = {}) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/queryko/able.rb', line 14

def feature(feature_name, filter, options = {})
  # returns the feature if it exists
  feat = self.features[feature_name.to_sym] ||= Queryko::Feature.new feature_name, self
  self.defined_filters[filter] ||= Array.new

  # creates a filter
  filt = feat.add_filter filter, options
  self.defined_filters[filter].push(filt)

  # appends new field
  self.fields[filt.field.to_sym] ||= Array.new
  self.fields[filt.field.to_sym].push(filt)
end

#inherited(subclass) ⇒ Object



32
33
34
35
36
37
# File 'lib/queryko/able.rb', line 32

def inherited(subclass)
  subclass.defined_filters = self.defined_filters.clone || {}
  subclass.features = self.features.clone || {}
  subclass.fields = self.fields.clone || {}
  subclass.default_params = self.default_params.clone || {}
end