class Logster::Pattern
Public Class Methods
child_classes()
click to toggle source
# File lib/logster/pattern.rb, line 14 def self.child_classes @child_classes end
find(pattern, store: Logster.store)
click to toggle source
# File lib/logster/pattern.rb, line 46 def self.find(pattern, store: Logster.store) pattern = parse_pattern(pattern).inspect return nil unless pattern pattern = find_all(raw: true, store: store).find { |p| p == pattern } return nil unless pattern new(pattern) end
find_all(raw: false, store: Logster.store)
click to toggle source
# File lib/logster/pattern.rb, line 35 def self.find_all(raw: false, store: Logster.store) patterns = store.get_patterns(set_name) || [] unless raw patterns.map! do |p| parse_pattern(p) end end patterns.compact! patterns end
inherited(subclass)
click to toggle source
Calls superclass method
# File lib/logster/pattern.rb, line 9 def self.inherited(subclass) @child_classes << subclass super end
new(pattern, store: Logster.store)
click to toggle source
# File lib/logster/pattern.rb, line 60 def initialize(pattern, store: Logster.store) self.pattern = pattern @store = store end
parse_pattern(string)
click to toggle source
# File lib/logster/pattern.rb, line 22 def self.parse_pattern(string) return string if Regexp === string return unless String === string if string[0] == "/" return unless string =~ /\/(.+)\/(.*)/ string = $1 flag = Regexp::IGNORECASE if $2 && $2.include?("i") end Regexp.new(string, flag) rescue RegexpError nil end
set_name()
click to toggle source
# File lib/logster/pattern.rb, line 18 def self.set_name raise "Please override the `set_name` method and specify and a name for this set" end
valid?(pattern)
click to toggle source
# File lib/logster/pattern.rb, line 54 def self.valid?(pattern) return false unless Regexp === pattern pattern_size = pattern.inspect.size pattern_size > 3 && pattern_size < 500 end
Public Instance Methods
destroy()
click to toggle source
# File lib/logster/pattern.rb, line 86 def destroy @store.remove_pattern(set_name, self.to_s) end
modify(new_pattern)
click to toggle source
# File lib/logster/pattern.rb, line 78 def modify(new_pattern) new_pattern = self.class.parse_pattern(new_pattern) raise PatternError.new unless self.class.valid?(new_pattern) destroy self.pattern = new_pattern save end
pattern()
click to toggle source
# File lib/logster/pattern.rb, line 90 def pattern @pattern end
save(args = {})
click to toggle source
# File lib/logster/pattern.rb, line 73 def save(args = {}) ensure_valid! @store.insert_pattern(set_name, self.to_s) end
to_s()
click to toggle source
# File lib/logster/pattern.rb, line 69 def to_s pattern.inspect end
valid?()
click to toggle source
# File lib/logster/pattern.rb, line 65 def valid? self.class.valid?(pattern) end
Private Instance Methods
ensure_valid!()
click to toggle source
# File lib/logster/pattern.rb, line 104 def ensure_valid! raise PatternError.new("Invalid pattern") unless valid? end
pattern=(new_pattern)
click to toggle source
# File lib/logster/pattern.rb, line 96 def pattern=(new_pattern) @pattern = self.class.parse_pattern(new_pattern) end
set_name()
click to toggle source
# File lib/logster/pattern.rb, line 100 def set_name self.class.set_name end