Class: Syto::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/syto.rb

Overview

Base class for filters implementation

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_class, result, params) ⇒ Base

Returns a new instance of Base.

Parameters:

  • base_class (Class)
  • result (ActiveRecord::Relation)
  • params (Hash)


90
91
92
93
94
95
# File 'lib/syto.rb', line 90

def initialize(base_class, result, params)
  @base_class = base_class
  @result     = result
  @params     = params
  @attrs_map  = (base_class.attrs_map || []) + (self.class.attrs_map || [])
end

Class Attribute Details

.attrs_mapObject (readonly)

Returns the value of attribute attrs_map.



110
111
112
# File 'lib/syto.rb', line 110

def attrs_map
  @attrs_map
end

Instance Attribute Details

#base_classObject

Returns the value of attribute base_class.



84
85
86
# File 'lib/syto.rb', line 84

def base_class
  @base_class
end

#paramsObject

Returns the value of attribute params.



84
85
86
# File 'lib/syto.rb', line 84

def params
  @params
end

#resultObject

Returns the value of attribute result.



84
85
86
# File 'lib/syto.rb', line 84

def result
  @result
end

Class Method Details

.filters_attrs_map(*attrs) ⇒ Object



112
113
114
# File 'lib/syto.rb', line 112

def filters_attrs_map(*attrs)
  @attrs_map = attrs
end

Instance Method Details

#extended_filtersObject



105
106
107
# File 'lib/syto.rb', line 105

def extended_filters
  puts "[WARNING] Syto filters not defined for #{self.class.name}"
end

#performObject



97
98
99
100
101
102
103
# File 'lib/syto.rb', line 97

def perform
  filter_by_attrs_map

  extended_filters

  result
end