class MongodbLogger::ServerModel::AdditionalFilter

Constants

FIXED_PARAMS_ON_FORM
FORM_NAME
VAR_TYPES
VAR_TYPE_CONDITIONS
VAR_TYPE_VALUES

Attributes

filter_model[R]
form_data[R]

Public Class Methods

get_type_index(type) click to toggle source
# File lib/mongodb_logger/server/model/additional_filter.rb, line 37
def self.get_type_index(type)
  type.nil? ? 0 : VAR_TYPES.index(type)
end
new(params, filter_model) click to toggle source
# File lib/mongodb_logger/server/model/additional_filter.rb, line 28
def initialize(params, filter_model)
  @filter_model = filter_model
  @params = params
  FIXED_PARAMS_ON_FORM.each do |key|
    create_variable(key, nil)
  end
  set_params_to_methods
end

Public Instance Methods

form_name() click to toggle source
# File lib/mongodb_logger/server/model/additional_filter.rb, line 53
def form_name
  "#{filter_model.form_name}[#{FORM_NAME}][]"
end
get_type_index() click to toggle source
# File lib/mongodb_logger/server/model/additional_filter.rb, line 41
def get_type_index
  @type.nil? ? 0 : VAR_TYPES.index(@type)
end
is_selected_values?() click to toggle source
# File lib/mongodb_logger/server/model/additional_filter.rb, line 49
def is_selected_values?
  !VAR_TYPE_VALUES[get_type_index].blank?
end
mongo_conditions() click to toggle source
# File lib/mongodb_logger/server/model/additional_filter.rb, line 57
def mongo_conditions
  data = Hash.new
  return data if self.key.blank?
  m_value = case self.type
  when "integer"
    self.value.to_i
  when "boolean"
    ("true" == self.value || "1" == self.value) ? true : false
  when "date"
    val_date = Date.parse(self.value) rescue nil
    Time.utc(val_date.year, val_date.month, val_date.day) unless val_date.nil?
  else
    self.value
  end
  data = case self.condition
  when "equals"
    {"#{self.key}" => m_value }
  when "not equals"
    {"#{self.key}" => { "$ne" => m_value }}
  when "exists"
    {"#{self.key}" => { "$exists" => m_value }}
  when "regexes"
    {"#{self.key}" => { "$regex" => m_value, "$options" => 'i' }}
  when "<"
    {"#{self.key}" => { "$lt" => m_value }}
  when "<="
    {"#{self.key}" => { "$lte" => m_value }}
  when ">"
    {"#{self.key}" => { "$gt" => m_value }}
  when ">="
    {"#{self.key}" => { "$gte" => m_value }}
  else
    Hash.new
  end
  data
end
selected_values() click to toggle source
# File lib/mongodb_logger/server/model/additional_filter.rb, line 45
def selected_values
  VAR_TYPE_VALUES[get_type_index]
end