fluent-plugin-fluent-plugin-json-size-limit 0.1.21 → 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: 70cafa53e5a0c3acb4627e9e3b0627ea72951ec7021fbb657900faa24d0ffb82
4
- data.tar.gz: 1ee3281c1469dda3a9d8cac37879bce135fd4225f8478d560d8abdccc2451a73
3
+ metadata.gz: 4b4d094242ef2410fa297a2fadb82c44807935689eadf364a8940ba7e7a140e8
4
+ data.tar.gz: f4e3e2f1b7876e722eadfaafc5263c219cd187976cd28e07ced5ec40e72e31e1
5
5
  SHA512:
6
- metadata.gz: 8cecb0dfa3ec2d9e2ee9b0e97ca6d3e9da529d5d282cdd0311556fde9392ce96056d7120099664c27d97e71596fb140e54466d7546610e8903523aeded39f1c0
7
- data.tar.gz: 23f24c705eb2659eec56704a679ac2ed7eb5ff146571cdca4bffedd6f469415f62b48be407980c2910f272db157cabef9db330b672e8b0583a74c1dd51482676
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.21"
6
+ spec.version = "0.1.23"
7
7
  spec.authors = ["Mykola Panin"]
8
8
  spec.email = ["mykola.panin@creatoriq.com"]
9
9
 
@@ -38,23 +38,22 @@ 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
- excess_size = obj.to_json.bytesize - target_size
47
46
  if value.is_a?(String)
48
- new_length = [value.length - excess_size, 0].max
49
- obj[key] = value[0...new_length]
47
+ new_length = [value.length * (0.5 - depth * 0.05), 0].max
48
+ obj[key] = value[0...new_length]
50
49
  elsif value.is_a?(Hash) || value.is_a?(Array)
51
- reduce_size(value, target_size)
50
+ reduce_size(value, target_size, depth + 1)
52
51
  end
53
52
 
54
53
  break if obj.to_json.bytesize <= target_size
55
54
  end
56
55
  elsif obj.is_a?(Array)
57
- obj.each { |element| reduce_size(element, target_size) }
56
+ obj.each { |element| reduce_size(element, target_size, depth + 1) }
58
57
  end
59
58
  end
60
59
  end
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.21
4
+ version: 0.1.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mykola Panin