module Fluent::TextParser::TypeConverter
Constants
- Converters
Public Class Methods
included(klass)
click to toggle source
# File lib/fluent/parser.rb, line 113 def self.included(klass) klass.instance_eval { config_param :types, :string, :default => nil config_param :types_delimiter, :string, :default => ',' config_param :types_label_delimiter, :string, :default => ':' } end
Public Instance Methods
configure(conf)
click to toggle source
Calls superclass method
# File lib/fluent/parser.rb, line 121 def configure(conf) super @type_converters = parse_types_parameter unless @types.nil? end
Private Instance Methods
convert_type(name, value)
click to toggle source
# File lib/fluent/parser.rb, line 129 def convert_type(name, value) converter = @type_converters[name] converter.nil? ? value : converter.call(value) end
parse_types_parameter()
click to toggle source
# File lib/fluent/parser.rb, line 134 def parse_types_parameter converters = {} @types.split(@types_delimiter).each { |pattern_name| name, type, format = pattern_name.split(@types_label_delimiter, 3) raise ConfigError, "Type is needed" if type.nil? case type when 'time' t_parser = TimeParser.new(format) converters[name] = lambda { |v| Converters[type].call(v, t_parser) } when 'array' delimiter = format || ',' converters[name] = lambda { |v| Converters[type].call(v, delimiter) } else converters[name] = Converters[type] end } converters end