Class: GrokConverter
- Inherits:
-
Object
- Object
- GrokConverter
- Defined in:
- lib/grok_converter.rb
Instance Method Summary collapse
Instance Method Details
#convert_to_regexp(pattern) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/grok_converter.rb', line 17 def convert_to_regexp(pattern) limit = 100 = pattern.dup while m = .match(/%{(.*?)(?::(.*?))?}/) # %{key:name} or #{key} all, key, name = *m if name = .gsub(all, "(?<#{name}>#{@patterns[key]})") else = .gsub(all, @patterns[key]) end limit -= 1 break if limit == 0 end Regexp.new end |
#load_patterns(dir = nil) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/grok_converter.rb', line 2 def load_patterns(dir = nil) @patterns = {} dir ||= Rails.root.join("vendor/patterns") Dir.glob("#{dir}/*").each do |file| File.read(file).split("\n").each do |line| line.strip! next if line == "" next if line.start_with?("#") name, pattern = line.split(/\s+/, 2) next unless pattern @patterns[name] = pattern end end end |