class Ratsit::Filter::RatsitFilter
Public Class Methods
new()
click to toggle source
# File lib/ratsit/filter/filter.rb, line 64 def initialize() @abstract_interface_msg = 'This interface is abstract. Implement method in subclass' if self.instance_of?(RatsitFilter) abstract end @active_filters = {} @filter_defaults = {} end
Public Instance Methods
abstract(msg=nil)
click to toggle source
# File lib/ratsit/filter/filter.rb, line 59 def abstract(msg=nil) _msg = msg || 'This class should not be used directly' raise RatsitAbstractError, _msg end
active_filters()
click to toggle source
# File lib/ratsit/filter/filter.rb, line 73 def active_filters return (@active_filters.nil?)? nil: @active_filters end
reset(filter_name='')
click to toggle source
# File lib/ratsit/filter/filter.rb, line 103 def reset(filter_name='') if !filter_name.is_a?(String) raise RatsitFilterError, 'Invalid filter key' end if !@filter_defaults.has_key?(filter_name) raise RatsitFilterError, 'Non-existent filter key' end @active_filters[filter_name] = @filter_defaults[filter_name][:default] end
to_json()
click to toggle source
# File lib/ratsit/filter/filter.rb, line 77 def to_json af = self.active_filters return '{}' if af.nil? af.to_json end
to_obj()
click to toggle source
# File lib/ratsit/filter/filter.rb, line 83 def to_obj @active_filters end
update(filter_key='', filter_value)
click to toggle source
# File lib/ratsit/filter/filter.rb, line 87 def update(filter_key='', filter_value) #puts "update #{filter_key}: #{filter_value}" if !filter_key.is_a?(String) raise RatsitFilterError, 'Invalid filter key' end if filter_value.nil? raise RatsitFilterError, 'Invalid filter value' end if !@active_filters.has_key?(filter_key) raise RatsitFilterError, 'Non-existent filter key' end @curr_filters = Marshal.load(Marshal.dump(@active_filters)) @curr_filters[filter_key] = filter_value @active_filters = validate_filters(@filter_defaults, @curr_filters) end