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

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: f8113de72521243b0a40d79166525582b0bbe0ab03e62a279a1f4a438e6e6cf9
4
- data.tar.gz: e979523af4ae24a153bee176d7f3ba07dd5d98712d977f638b84171d875c955d
3
+ metadata.gz: 4b4d094242ef2410fa297a2fadb82c44807935689eadf364a8940ba7e7a140e8
4
+ data.tar.gz: f4e3e2f1b7876e722eadfaafc5263c219cd187976cd28e07ced5ec40e72e31e1
5
5
  SHA512:
6
- metadata.gz: a4025bbda9bf50409b032244f0b50211ad2a3eb6d44d47c054af3804811f680f3b8998a8170f6065e4fc7b139dc39d0a610c1375dd11f4fd32c81c8999dc06d9
7
- data.tar.gz: d4392c92ea0bae5a5904baa42d9d9f708d7accd2c9fffab9df3b57a3044bc9363083bff9ec6739a3058ef2d1173d063c80eee2fe0f66260bf597ddc6b403af94
6
+ metadata.gz: 874c65a8b41398c2f0a1aac400a3db41010dcbd80faacdfe0e9c95ea126bb851973aa023243e071119931706c78fa45d1b4a04738326933961665d1b87d6fff2
7
+ data.tar.gz: 3fa3adb2888eee31e26d8c3c03c70a7287aa11af61347eaa8f9f763f48505a4d19423697b0e8dfbc342127dc311220cb1e57d4447065450c3edc6de622557371
@@ -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.22"
6
+ spec.version = "0.1.23"
7
7
  spec.authors = ["Mykola Panin"]
8
8
  spec.email = ["mykola.panin@creatoriq.com"]
9
9
 
@@ -38,25 +38,24 @@ module Fluent
38
38
 
39
39
  private
40
40
 
41
- def reduce_size(obj, target_size)
42
- return if obj.to_json.bytesize <= target_size
41
+ def reduce_size(obj, target_size, depth = 0)
42
+ return if obj.to_json.bytesize <= target_size || depth > 20
43
43
 
44
44
  if obj.is_a?(Hash)
45
45
  obj.each do |key, value|
46
- break if obj.to_json.bytesize <= target_size
47
-
48
46
  if value.is_a?(String)
49
- new_length = [value.length / 2, 0].max
47
+ new_length = [value.length * (0.5 - depth * 0.05), 0].max
50
48
  obj[key] = value[0...new_length]
51
49
  elsif value.is_a?(Hash) || value.is_a?(Array)
52
- reduce_size(value, target_size)
50
+ reduce_size(value, target_size, depth + 1)
53
51
  end
52
+
53
+ break if obj.to_json.bytesize <= target_size
54
54
  end
55
55
  elsif obj.is_a?(Array)
56
- obj.each { |element| reduce_size(element, target_size) }
56
+ obj.each { |element| reduce_size(element, target_size, depth + 1) }
57
57
  end
58
58
  end
59
59
  end
60
60
  end
61
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.22
4
+ version: 0.1.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mykola Panin