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

Sign up to get free protection for your applications and to get access to all the features.
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