class Sherlog::Filter

Public Class Methods

category(expression) click to toggle source
# File lib/sherlog_holmes/filter.rb, line 82
def self.category(expression)
  Filter::new do |entry|
    expression(expression).accept? entry.category
  end
end
custom_attribute(attribute_name, expression) click to toggle source
# File lib/sherlog_holmes/filter.rb, line 114
def self.custom_attribute(attribute_name, expression)
  Filter::new do |entry|
    expression(expression).accept? entry[attribute_name]
  end
end
exception(expression) click to toggle source
# File lib/sherlog_holmes/filter.rb, line 100
def self.exception(expression)
  Filter::new do |entry|
    entry.exceptions.find do |exception|
      expression(expression).accept? exception
    end
  end
end
exceptions() click to toggle source
# File lib/sherlog_holmes/filter.rb, line 108
def self.exceptions
  Filter::new do |entry|
    entry.exception?
  end
end
expression(expression) click to toggle source
# File lib/sherlog_holmes/filter.rb, line 59
def self.expression(expression)
  expression = expression.to_s
  Filter::new do |object|
    wildcard_at_start = expression.start_with? '*'
    wildcard_at_end = expression.end_with? '*'
    if wildcard_at_start and wildcard_at_end
      object.to_s.index expression[1...-1]
    elsif wildcard_at_start
      object.to_s.end_with? expression[1..-1]
    elsif wildcard_at_end
      object.to_s.start_with? expression[0...-1]
    else
      object.to_s == expression.to_s
    end
  end
end
level(expression) click to toggle source
# File lib/sherlog_holmes/filter.rb, line 76
def self.level(expression)
  Filter::new do |entry|
    entry.level.to_s == expression.to_s
  end
end
message(expression) click to toggle source
# File lib/sherlog_holmes/filter.rb, line 94
def self.message(expression)
  Filter::new do |entry|
    expression(expression).accept? entry.message
  end
end
new(&block) click to toggle source
# File lib/sherlog_holmes/filter.rb, line 27
def initialize(&block)
  @block = block
end
origin(expression) click to toggle source
# File lib/sherlog_holmes/filter.rb, line 88
def self.origin(expression)
  Filter::new do |entry|
    expression(expression).accept? entry.origin
  end
end

Public Instance Methods

accept?(object) click to toggle source
# File lib/sherlog_holmes/filter.rb, line 35
def accept?(object)
  @block.call object
end
and(other_filter = nil, &other_block) click to toggle source
# File lib/sherlog_holmes/filter.rb, line 39
def and(other_filter = nil, &other_block)
  other_filter ||= Filter::new &other_block
  Filter::new do |entry|
    self.accept?(entry) && other_filter.accept?(entry)
  end
end
call(object) click to toggle source
# File lib/sherlog_holmes/filter.rb, line 31
def call(object)
  accept? object
end
negate() click to toggle source
# File lib/sherlog_holmes/filter.rb, line 53
def negate
  Filter::new do |entry|
    !self.accept?(entry)
  end
end
or(other_filter = nil, &other_block) click to toggle source
# File lib/sherlog_holmes/filter.rb, line 46
def or(other_filter = nil, &other_block)
  other_filter ||= Filter::new &other_block
  Filter::new do |entry|
    self.accept?(entry) || other_filter.accept?(entry)
  end
end