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