Method: Fluent::Compat::TextParser.lookup

Defined in:
lib/fluent/compat/parser.rb

.lookup(format) ⇒ Object



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'lib/fluent/compat/parser.rb', line 95

def self.lookup(format)
  # TODO: warn when deprecated to use Plugin.new_parser or RegexpParser.new directly
  if format.nil?
    raise ConfigError, "'format' parameter is required"
  end

  if format[0] == ?/ && format[format.length-1] == ?/
    # regexp
    begin
      regexp = Regexp.new(format[1..-2])
      if regexp.named_captures.empty?
        raise "No named captures"
      end
    rescue
      raise ConfigError, "Invalid regexp '#{format[1..-2]}': #{$!}"
    end

    RegexpParser.new(regexp)
  else
    # built-in template
    begin
      Fluent::Plugin.new_parser(format)
    rescue ConfigError # keep same error message
      raise ConfigError, "Unknown format template '#{format}'"
    end
  end
end