abbreviato 0.8.5 → 0.8.8

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
- SHA1:
3
- metadata.gz: b85a792ee46a0c813008647a7d557d138b684d4a
4
- data.tar.gz: 1ca6c2cab6735f24f3187b2f7a756ef2bc261ec9
2
+ SHA256:
3
+ metadata.gz: 4b26ce55364c125faf5446912cfcf708bee335eb2e084179af383867b1e5e85d
4
+ data.tar.gz: 21ce5525a2c8d128348fdfd3b84523834b7d438c67a9e120bc44d1e42a7ddf9f
5
5
  SHA512:
6
- metadata.gz: d4f2b89203d175f7c95c75e65c8855968ed7e3723f212de347a84c481b910bdf74ef4b07814b2208f458b29a67623d5914434534ebd2835df03516239178bed0
7
- data.tar.gz: 2a3ccded4e518001192cc032c25dd9921db4d9f21f40b2ed23045cc0f361c87f85a484e4804af3d36e940ba15e4935c30347213ad60d6c21e5cb2a37d5117948
6
+ metadata.gz: a2fa25c5df52264aafde82a093684d176ccae3ce319e19e02ba35bece2c18ecf0a2458c2890a8d0304e20837d0984c863490df14ae0ce7d699d5aee03072aae9
7
+ data.tar.gz: b1d8cbcce4e066bf65a0bae35399e660eb08bfb8ce8076f0bba5b8739158160606d9444733aeffd1a73df8e81911e8037050ab83b314cde5576ec0962cfe9dfd
@@ -68,7 +68,7 @@ class TruncatedSaxDocument < Nokogiri::XML::SAX::Document
68
68
  encoded_string = @html_coder.encode(decoded_string, :named)
69
69
  string_to_append = if encoded_string.bytesize > remaining_length
70
70
  # This is the line which prevents HTML entities getting truncated - treat them as a single char
71
- str = @html_coder.encode(truncate_string(decoded_string), :named) || ''
71
+ str = truncate_string(decoded_string)
72
72
  str << tail if remaining_length - str.bytesize >= tail.bytesize
73
73
  str
74
74
  else
@@ -170,10 +170,18 @@ class TruncatedSaxDocument < Nokogiri::XML::SAX::Document
170
170
  @estimated_length >= max_length
171
171
  end
172
172
 
173
- def truncate_string(string)
173
+ def truncate_string(decoded_string)
174
174
  @truncated = true
175
175
  truncate_length = remaining_length - tail.bytesize
176
- (string.byteslice(0, truncate_length) || '').scrub('')
176
+ truncated_string = ''
177
+ decoded_string.split('').each do |char|
178
+ encoded_char = @html_coder.encode(char)
179
+ break if encoded_char.bytesize > truncate_length
180
+
181
+ truncated_string += encoded_char
182
+ truncate_length -= encoded_char.bytesize
183
+ end
184
+ truncated_string.scrub('')
177
185
  end
178
186
 
179
187
  def overridden_tag_length(tag_name, rendered_tag_with_attributes)
@@ -1,3 +1,3 @@
1
1
  module Abbreviato
2
- VERSION = '0.8.5'.freeze
2
+ VERSION = '0.8.8'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: abbreviato
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.5
4
+ version: 0.8.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jorge Manrubia
@@ -254,8 +254,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
254
254
  - !ruby/object:Gem::Version
255
255
  version: '0'
256
256
  requirements: []
257
- rubyforge_project:
258
- rubygems_version: 2.4.5.5
257
+ rubygems_version: 3.0.2
259
258
  signing_key:
260
259
  specification_version: 4
261
260
  summary: A tool for efficiently truncating HTML strings to a specific bytesize