module Remexify::Retrieve::Filter

Public Instance Methods

level(obj, options) click to toggle source
# File lib/remexify/remexify_retriever.rb, line 40
def level(obj, options)
  lvl_option = options[:level]
  if lvl_option
    lvl = lvl_option.gsub(/[^0-9]/, "")
    raise "Level must all be a number" if (lvl =~ /^[0-9]+$/).nil?

    if lvl_option =~ />=/
      obj = obj.where("level >= ?", lvl)
    elsif lvl_option =~ /<=/
      obj = obj.where("level <= ?", lvl)
    elsif lvl_option =~ />/
      obj = obj.where("level > ?", lvl)
    elsif lvl_option =~ /</
      obj = obj.where("level < ?", lvl)
    elsif lvl_option =~ /=/
      obj = obj.where("level = ?", lvl)
    else
      raise "Unknown operator for level"
    end
  end
  obj
end
order(obj, options) click to toggle source
# File lib/remexify/remexify_retriever.rb, line 33
def order(obj, options)
  if options[:order]
    obj = obj.order(options[:order])
  end
  obj
end
owned_by(options) click to toggle source
# File lib/remexify/remexify_retriever.rb, line 63
def owned_by(options)
  if options[:owned_by] || options[:owned_param1] || options[:owned_param2] || options[:owned_param3]
    if options[:owned_by]
      my_logs = Remexify.config.model_owner.where(identifier_id: options.fetch(:owned_by))
    else
      my_logs = Remexify.config.model_owner.all
    end
    opkeys = options.keys
    my_logs = my_logs.where(param1: options[:owned_param1]) if opkeys.include? :owned_param1
    my_logs = my_logs.where(param2: options[:owned_param2]) if opkeys.include? :owned_param2
    my_logs = my_logs.where(param3: options[:owned_param3]) if opkeys.include? :owned_param3
    my_logs = my_logs.pluck(:log_md5)
    owned_logs = Remexify.config.model.where(md5: my_logs).all
  else
    owned_logs = Remexify.config.model.all
  end
  owned_logs
end