fluent-plugin-parse_request_body 0.0.2 → 0.0.3

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
  SHA256:
3
- metadata.gz: 7f84d2eb1c750300849c9a9e93855842808becd960a01042053d00a638955263
4
- data.tar.gz: 1c4bf6cfd22795b1aa9ca4d39007cddd772e82b610040037d9e0d61a252ca0f7
3
+ metadata.gz: 2cc0622663b91fa8a7aede85fbdf798eacc58dbe81f18e1a21cdcef66b69c5a2
4
+ data.tar.gz: a846ee373ff8510dbd9235639da7ab4281cce7f3bfa814531728ef40f796df27
5
5
  SHA512:
6
- metadata.gz: 7ef5d744d14b31db185827a0072c4966ac7aa57bc536a66f581c3ad32b09aacf30aec73ab11317654edd577179b1ac3d80166a47ab90442fe495e9ee9cc00638
7
- data.tar.gz: b7036d87e881b1996e6009131e01d09fffff1be9a1861adba5068cb47b0ef0df0059c80073444294aa9f692ad60103d1bdbc192c34ae835569370e21b2f12aff
6
+ metadata.gz: b4c2141c17e80ec7949c68893c2bf4aca7350887b0b733ff94aac26ce70fa9941e86b8326cfda3e2d937e171ad26306689e22bc54e46f76ec65addba6f021e2d
7
+ data.tar.gz: dc52d36cc29cff81f1ca8cede224585afb969483bf52146577a95cd100d34c9d2f42af74af85674ff5c9a84c00eb8ac2281a16d7c80fe3c2073e6e201f493215
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |gem|
2
2
  gem.name = 'fluent-plugin-parse_request_body'
3
- gem.version = '0.0.2'
3
+ gem.version = '0.0.3'
4
4
  gem.authors = ['EkiSong']
5
5
  gem.email = ['yifriday0614@gmail.com']
6
6
  gem.homepage = 'https://github.com/yifriday/fluent-plugin-parse_request_body.git'
@@ -36,6 +36,35 @@ module Fluent::Plugin
36
36
  hash
37
37
  end
38
38
  end
39
+
40
+ @map = {}
41
+ # <record></record> directive
42
+ conf.elements.select { |element| element.name == 'record' }.each { |element|
43
+ element.each_pair { |k, v|
44
+ element.has_key?(k) # to suppress unread configuration warning
45
+ v = v[1..v.size-2] if quoted_value?(v)
46
+ @map[k] = v
47
+ validate_json = Proc.new {
48
+ begin
49
+ dummy_text = Yajl::Encoder.encode('dummy_text')
50
+ Yajl::Parser.parse(v.gsub(REGEXP_PLACEHOLDER_SCAN, dummy_text))
51
+ rescue Yajl::ParseError => e
52
+ message = "parse_body: failed to parse '#{v}' as json."
53
+ log.error message, error: e
54
+ raise Fluent::ConfigError, message
55
+ end
56
+ }
57
+ validate_json.call if json?(v.tr('\'"\\', ''))
58
+ }
59
+ }
60
+ end
61
+
62
+ def add_record_field(record)
63
+ return record if @map.values.first.nil?
64
+ @map.each do |record_key, value|
65
+ record[record_key] = value
66
+ end
67
+ record
39
68
  end
40
69
 
41
70
  def add_query_params_field(record)
@@ -86,6 +115,7 @@ module Fluent::Plugin
86
115
  else
87
116
  record[new_key] = value
88
117
  end
118
+ add_record_field(record)
89
119
  end
90
120
  end
91
121
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-parse_request_body
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - EkiSong