fluent-plugin-uri-parser 0.0.1 → 0.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a55f51dbb0e385c958549ded9a66fcf809bffbb2
4
- data.tar.gz: fe62b1f8010f1d293c2ea4cd1bfec3456ff2c28d
3
+ metadata.gz: 3368e5f4c26d44387e7af1d2af08b8b17c462850
4
+ data.tar.gz: 2ccfdd58c2e3654470f1d0c486340e02815f765b
5
5
  SHA512:
6
- metadata.gz: bb7ca9cf114b0dd4ef080ae891f81b17d8ce91a2d450b17295b136324dcce259933a947a184e0da0ae9ead2dcfbb6c5d56df44ed69c8712ec6708da7dff9c80d
7
- data.tar.gz: 4e1eba24dead66bf039d056e3241dba725c682006c5c6aa8979f1f3688c06717662cba509c7657cdde0dff7d638fadd6587baf23b50f104cc6942248f67e1726
6
+ metadata.gz: eb30ccbb8b9390d44e884814360c14b0584e893f282def432e38848bdeaf1b3701cbf573ba1556658e2a16c37c7423dd8f590870a7e07e36ef2e52c5b27fbffe
7
+ data.tar.gz: fe07bb1ac57ac0b66329d83ba752a8a01ac2833eec9e99885d60df2d610a2ea6e3add1af839c5f1cd9dc750da061ba87d29541b756c81bf43d8d100a34f7a6f8
@@ -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-uri-parser"
7
- spec.version = "0.0.1"
7
+ spec.version = "0.0.2"
8
8
  spec.authors = ["Daichi HIRATA"]
9
9
  spec.email = ["bunny.hop.md@gmail.com"]
10
10
  spec.license = "Apache-2.0"
@@ -18,6 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.require_paths = ["lib"]
19
19
 
20
20
  spec.add_runtime_dependency "fluentd", "~> 0.12.0"
21
+ spec.add_runtime_dependency "addressable"
21
22
 
22
23
  spec.add_development_dependency "test-unit"
23
24
  spec.add_development_dependency "bundler", "~> 1.11"
@@ -1,11 +1,6 @@
1
1
  class Fluent::URIParserFilter < Fluent::Filter
2
2
  Fluent::Plugin.register_filter("uri_parser", self)
3
3
 
4
- DEFAULT_PORT_MAP = {
5
- "http" => 80,
6
- "https" => 443
7
- }
8
-
9
4
  config_param :key_name, :string
10
5
  config_param :hash_value_field, :string, default: nil
11
6
  config_param :inject_key_prefix, :string, default: nil
@@ -22,7 +17,7 @@ class Fluent::URIParserFilter < Fluent::Filter
22
17
 
23
18
  def initialize
24
19
  super
25
- require "uri"
20
+ require "addressable/uri"
26
21
  end
27
22
 
28
23
  def filter_stream(tag, es)
@@ -36,15 +31,15 @@ class Fluent::URIParserFilter < Fluent::Filter
36
31
  end
37
32
 
38
33
  begin
39
- scheme, host, port, path, query, fragment = parse_uri(raw_value)
34
+ uri = Addressable::URI.parse(raw_value)
40
35
 
41
36
  values = {}
42
- values[@out_key_scheme] = scheme if @out_key_scheme
43
- values[@out_key_host] = host if @out_key_host
44
- values[@out_key_port] = port if @out_key_port
45
- values[@out_key_path] = path if @out_key_path
46
- values[@out_key_query] = query if @out_key_query
47
- values[@out_key_fragment] = fragment if @out_key_fragment
37
+ values[@out_key_scheme] = uri.scheme if @out_key_scheme
38
+ values[@out_key_host] = uri.host if @out_key_host
39
+ values[@out_key_port] = uri.inferred_port if @out_key_port
40
+ values[@out_key_path] = uri.path if @out_key_path
41
+ values[@out_key_query] = uri.query if @out_key_query
42
+ values[@out_key_fragment] = uri.fragment if @out_key_fragment
48
43
  values.reject! {|_, v| v.nil? } if @ignore_nil
49
44
 
50
45
  unless values.empty?
@@ -63,14 +58,4 @@ class Fluent::URIParserFilter < Fluent::Filter
63
58
 
64
59
  new_es
65
60
  end
66
-
67
- private
68
-
69
- def parse_uri(uri)
70
- # URI.parse is useful, but it's very slow.
71
- scheme, _, host, port, _, path, _, query, fragment = URI.split(uri)
72
- port = port.nil? ? DEFAULT_PORT_MAP[scheme] : port.to_i
73
-
74
- [scheme, host, port, path, query, fragment]
75
- end
76
61
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-uri-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daichi HIRATA
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.12.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: addressable
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: test-unit
29
43
  requirement: !ruby/object:Gem::Requirement