fluent-plugin-fluent-plugin-json-size-limit 0.1.20 → 0.1.22

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: 3d87b8186fc912187f831bd13843de3454f7a32d8f2c5fbf35f430e017980aee
4
- data.tar.gz: 8b8960f7eefb451c022da96c7ab320056fec79520e3e5c975f031a5f0eaf4b23
3
+ metadata.gz: f8113de72521243b0a40d79166525582b0bbe0ab03e62a279a1f4a438e6e6cf9
4
+ data.tar.gz: e979523af4ae24a153bee176d7f3ba07dd5d98712d977f638b84171d875c955d
5
5
  SHA512:
6
- metadata.gz: 67899b2e70f0036cd26e3e1dad9a792ea66537e1a8952f8d3e6da84262e98eb0723fe4e1af5077b16e81c5323188ec073a50a597615a14d1ba06f6d334450633
7
- data.tar.gz: ab60dcec27150d14126949b57edb3c09bb2fd7a20eaf394bf530037bec6118bb00ba3872823497ecca5de1a9f3860ca9f69f0a7ab353f98528648a4f6435167d
6
+ metadata.gz: a4025bbda9bf50409b032244f0b50211ad2a3eb6d44d47c054af3804811f680f3b8998a8170f6065e4fc7b139dc39d0a610c1375dd11f4fd32c81c8999dc06d9
7
+ data.tar.gz: d4392c92ea0bae5a5904baa42d9d9f708d7accd2c9fffab9df3b57a3044bc9363083bff9ec6739a3058ef2d1173d063c80eee2fe0f66260bf597ddc6b403af94
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = "fluent-plugin-fluent-plugin-json-size-limit"
6
- spec.version = "0.1.20"
6
+ spec.version = "0.1.22"
7
7
  spec.authors = ["Mykola Panin"]
8
8
  spec.email = ["mykola.panin@creatoriq.com"]
9
9
 
@@ -39,23 +39,18 @@ module Fluent
39
39
  private
40
40
 
41
41
  def reduce_size(obj, target_size)
42
- json_str = obj.to_json
43
- return if json_str.bytesize <= target_size
42
+ return if obj.to_json.bytesize <= target_size
44
43
 
45
44
  if obj.is_a?(Hash)
46
- sorted_fields = obj.sort_by { |_, v| v.to_s.length }.reverse
47
- sorted_fields.each do |key, value|
48
- current_size = json_str.bytesize
49
- excess_size = current_size - target_size
45
+ obj.each do |key, value|
46
+ break if obj.to_json.bytesize <= target_size
50
47
 
51
- if value.is_a?(String) && value.length > 100
52
- new_length = [value.length - excess_size, 0].max
53
- obj[key] = value[0...new_length]
48
+ if value.is_a?(String)
49
+ new_length = [value.length / 2, 0].max
50
+ obj[key] = value[0...new_length]
54
51
  elsif value.is_a?(Hash) || value.is_a?(Array)
55
- reduce_size(value, target_size)
52
+ reduce_size(value, target_size)
56
53
  end
57
-
58
- break if obj.to_json.bytesize <= target_size
59
54
  end
60
55
  elsif obj.is_a?(Array)
61
56
  obj.each { |element| reduce_size(element, target_size) }
@@ -64,3 +59,4 @@ module Fluent
64
59
  end
65
60
  end
66
61
  end
62
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-fluent-plugin-json-size-limit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.20
4
+ version: 0.1.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mykola Panin