Class: Logster::Pattern
- Inherits:
-
Object
- Object
- Logster::Pattern
- Defined in:
- lib/logster/pattern.rb
Direct Known Subclasses
Defined Under Namespace
Classes: PatternError
Class Method Summary collapse
- .find(pattern, store: Logster.store) ⇒ Object
- .find_all(raw: false, store: Logster.store) ⇒ Object
- .parse_pattern(string) ⇒ Object
- .set_name ⇒ Object
- .valid?(pattern) ⇒ Boolean
Instance Method Summary collapse
- #destroy ⇒ Object
-
#initialize(pattern, store: Logster.store) ⇒ Pattern
constructor
A new instance of Pattern.
- #modify(new_pattern) ⇒ Object
- #pattern ⇒ Object
- #save ⇒ Object
- #to_s ⇒ Object
- #valid? ⇒ Boolean
Constructor Details
Class Method Details
.find(pattern, store: Logster.store) ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/logster/pattern.rb', line 33 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) ⇒ Object
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/logster/pattern.rb', line 22 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 |
.parse_pattern(string) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/logster/pattern.rb', line 9 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 ⇒ Object
5 6 7 |
# File 'lib/logster/pattern.rb', line 5 def self.set_name raise "Please override the `set_name` method and specify and a name for this set" end |
.valid?(pattern) ⇒ Boolean
41 42 43 44 45 |
# File 'lib/logster/pattern.rb', line 41 def self.valid?(pattern) return false unless Regexp === pattern pattern_size = pattern.inspect.size pattern_size > 3 && pattern_size < 500 end |
Instance Method Details
#destroy ⇒ Object
73 74 75 |
# File 'lib/logster/pattern.rb', line 73 def destroy @store.remove_pattern(set_name, self.to_s) end |
#modify(new_pattern) ⇒ Object
65 66 67 68 69 70 71 |
# File 'lib/logster/pattern.rb', line 65 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 ⇒ Object
77 78 79 |
# File 'lib/logster/pattern.rb', line 77 def pattern @pattern end |
#save ⇒ Object
60 61 62 63 |
# File 'lib/logster/pattern.rb', line 60 def save ensure_valid! @store.insert_pattern(set_name, self.to_s) end |
#to_s ⇒ Object
56 57 58 |
# File 'lib/logster/pattern.rb', line 56 def to_s pattern.inspect end |
#valid? ⇒ Boolean
52 53 54 |
# File 'lib/logster/pattern.rb', line 52 def valid? self.class.valid?(pattern) end |