class MongodbLogger::ServerModel::Filter

Constants

DEFAULT_LIMIT
FIXED_PARAMS_ON_FORM
FORM_NAME

dynamic filters

Attributes

mongo_conditions[R]
more_filters[RW]
params[R]

Public Class Methods

new(params) click to toggle source
# File lib/mongodb_logger/server/model/filter.rb, line 14
def initialize(params)
  FIXED_PARAMS_ON_FORM.each do |key|
    create_variable(key, nil)
  end
  @params = params
  set_params_to_methods
  # limits
  self.limit = DEFAULT_LIMIT.to_s if self.limit.nil?
  # dynamic filters
  create_dynamic_filters
  # build mongo conditions
  build_mongo_conditions
end

Public Instance Methods

build_mongo_conditions() click to toggle source
# File lib/mongodb_logger/server/model/filter.rb, line 35
def build_mongo_conditions
  @mongo_conditions = Hash.new
  FIXED_PARAMS_ON_FORM.each do |param_key|
    value = self.send param_key
    mkey_val = case param_key
    when 'is_exception'
      (value ? true : nil)
    when 'limit'
      nil # skip
    else
      value
    end
    @mongo_conditions[param_key.to_s] = mkey_val if !mkey_val.nil? && !mkey_val.blank?
  end

  self.more_filters.each do |m_filter|
    unless m_filter.mongo_conditions.blank?
      cond = m_filter.mongo_conditions
      if @mongo_conditions[m_filter.key] && @mongo_conditions[m_filter.key].is_a?(Hash)
        @mongo_conditions[m_filter.key].merge!(cond[m_filter.key])
      else
       @mongo_conditions.merge!(m_filter.mongo_conditions)
      end
    end
  end unless self.more_filters.blank?
end
create_dynamic_filters() click to toggle source
# File lib/mongodb_logger/server/model/filter.rb, line 28
def create_dynamic_filters
  self.more_filters = []
  @params[AdditionalFilter::FORM_NAME].each do |filter|
    self.more_filters << AdditionalFilter.new(filter, self)
  end if !@params.blank? && @params[AdditionalFilter::FORM_NAME] && !@params[AdditionalFilter::FORM_NAME].blank?
end
form_name() click to toggle source
# File lib/mongodb_logger/server/model/filter.rb, line 70
def form_name
  FORM_NAME
end
get_mongo_conditions() click to toggle source
# File lib/mongodb_logger/server/model/filter.rb, line 62
def get_mongo_conditions
  @mongo_conditions
end
get_mongo_limit() click to toggle source
# File lib/mongodb_logger/server/model/filter.rb, line 66
def get_mongo_limit
  self.limit.to_i
end