fluent-plugin-kvp-parser 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/fluent-plugin-kvp-parser.gemspec +1 -1
- data/lib/fluent/plugin/parser_kvp.rb +6 -5
- data/test/test_kvp_parser.rb +4 -3
- metadata +1 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 843d6092683665ce9588bc3c1da61e0bca6001dc
         | 
| 4 | 
            +
              data.tar.gz: 21975d2887a0e3864e76ee78b708345c6e07ddbd
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 1759ac967e1fad058a5667935521088c2c0d8dcf74f24d71125ab04105f902bb5a134eb87e84960f1e1c4bae8031c100947d3843edd8627746efdb80883938f4
         | 
| 7 | 
            +
              data.tar.gz: 9c152c5351402d73280d7f05dff0c6fb29d4ed3001759843aecae002f93a59fb25165e208dd6469de4205a7e73d0b098ab7409649606f22dd21be491319a636e
         | 
| @@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) | |
| 4 4 |  | 
| 5 5 | 
             
            Gem::Specification.new do |spec|
         | 
| 6 6 | 
             
              spec.name          = "fluent-plugin-kvp-parser"
         | 
| 7 | 
            -
              spec.version       = "0.0. | 
| 7 | 
            +
              spec.version       = "0.0.5"
         | 
| 8 8 | 
             
              spec.description   = 'Fluentd parser plugin to parse key value pairs'
         | 
| 9 9 | 
             
              spec.authors       = ["mosuka"]
         | 
| 10 10 | 
             
              spec.email         = ["minoru.osuka@gmail.com"]
         | 
| @@ -6,18 +6,19 @@ module Fluent | |
| 6 6 |  | 
| 7 7 | 
             
                  Plugin.register_parser('kvp', self)
         | 
| 8 8 |  | 
| 9 | 
            +
                  config_param :key_char, :string, :default => '\w.-'
         | 
| 9 10 | 
             
                  config_param :key_prefix, :string, :default => ''
         | 
| 10 | 
            -
                  config_param : | 
| 11 | 
            -
                  config_param : | 
| 11 | 
            +
                  config_param :key_value_pair_delimiter, :string, :default => '\t\s'
         | 
| 12 | 
            +
                  config_param :key_value_delimiter, :string, :default => '='
         | 
| 12 13 | 
             
                  config_param :time_key, :string, :default => 'time'
         | 
| 13 14 |  | 
| 14 15 | 
             
                  def configure(conf={})
         | 
| 15 16 | 
             
                    super
         | 
| 16 | 
            -
                    if @ | 
| 17 | 
            -
                      @kv_delimiter =  | 
| 17 | 
            +
                    if @key_value_pair_delimiter[0] == '/' and @key_value_pair_delimiter[-1] == '/'
         | 
| 18 | 
            +
                      @kv_delimiter = @key_value_pair_delimiter[1..-2]
         | 
| 18 19 | 
             
                    end
         | 
| 19 20 |  | 
| 20 | 
            -
                    @kv_regex_str = '(?:(?:([ | 
| 21 | 
            +
                    @kv_regex_str = '(?:(?:([' + @key_char + ']+)\s*[' + @key_value_delimiter + ']\s*("(?:(?:\\\.|[^"])*)"|(?:[^"' + @key_value_pair_delimiter + ']*)))(?:|[' + @key_value_pair_delimiter + ']*))'
         | 
| 21 22 | 
             
                    @kv_regex = Regexp.new(@kv_regex_str)
         | 
| 22 23 | 
             
                  end
         | 
| 23 24 |  | 
    
        data/test/test_kvp_parser.rb
    CHANGED
    
    | @@ -15,6 +15,7 @@ module ParserTest | |
| 15 15 | 
             
                def test_basic
         | 
| 16 16 | 
             
                  d = create_driver({})
         | 
| 17 17 | 
             
                  d.instance.parse("k1=v1 k2=v2") {|_, v| assert_equal({"k1"=>"v1", "k2"=>"v2"}, v)}
         | 
| 18 | 
            +
                  d.instance.parse("k.1=v1 k.2=v2") {|_, v| assert_equal({"k.1"=>"v1", "k.2"=>"v2"}, v)}
         | 
| 18 19 | 
             
                  d.instance.parse("k1=v1    k2=v2") {|_, v| assert_equal({"k1"=>"v1", "k2"=>"v2"}, v)}
         | 
| 19 20 | 
             
                  d.instance.parse("k2=v2 k1=v1") {|_, v| assert_equal({"k1"=>"v1", "k2"=>"v2"}, v)}
         | 
| 20 21 | 
             
                  d.instance.parse("k2=v2\tk1=v1") {|_, v| assert_equal({"k1"=>"v1", "k2"=>"v2"}, v)}
         | 
| @@ -47,18 +48,18 @@ module ParserTest | |
| 47 48 | 
             
                end
         | 
| 48 49 |  | 
| 49 50 | 
             
                def test_custom_delimiter
         | 
| 50 | 
            -
                  d = create_driver({" | 
| 51 | 
            +
                  d = create_driver({"key_value_pair_delimiter" => "|"})
         | 
| 51 52 | 
             
                  d.instance.parse("k1=v1|k2=v2") {|_, v| assert_equal({"k1"=>"v1", "k2"=>"v2"}, v)}
         | 
| 52 53 | 
             
                  d.instance.parse("k1=v1||k2=v2") {|_, v| assert_equal({"k1"=>"v1", "k2"=>"v2"}, v)}
         | 
| 53 54 |  | 
| 54 | 
            -
                  d = create_driver({" | 
| 55 | 
            +
                  d = create_driver({"key_value_pair_delimiter" => "@ "})
         | 
| 55 56 | 
             
                  d.instance.parse("k1=v1@k2=v2 k3=v3") {|_, v|
         | 
| 56 57 | 
             
                    assert_equal({"k1"=>"v1", "k2"=>"v2", "k3"=>"v3"}, v)
         | 
| 57 58 | 
             
                  }
         | 
| 58 59 | 
             
                end
         | 
| 59 60 |  | 
| 60 61 | 
             
                def test_custom_kv_char
         | 
| 61 | 
            -
                  d = create_driver({" | 
| 62 | 
            +
                  d = create_driver({"key_value_delimiter" => "#"})
         | 
| 62 63 | 
             
                  d.instance.parse("k1#v1 k2#v2") {|_, v| assert_equal({"k1"=>"v1", "k2"=>"v2"}, v)}
         | 
| 63 64 | 
             
                end
         | 
| 64 65 |  |