zarby 0.1.2 → 0.1.4

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: d0b346aa22187565e4dc560f912437f47de21d505809e6260bba82dab13e7ba1
4
- data.tar.gz: 051f4ae725e23e59d8cca88c3cdf6a3d070dd83445d35c3cca2b530129f7c403
3
+ metadata.gz: b77baffed4d87a5ea4f1b42a724ff83f437d2e8d8f5fee9188a826962797d954
4
+ data.tar.gz: 1fdf369f8e76f06dab6785ee54400aec28e730d391f4631891a4e50e628fc762
5
5
  SHA512:
6
- metadata.gz: 874cc0894c30afef80fb52356dec88598b2383633c6a3770a5325e0dd62a37ace0ffcc2a9fa8538580536143360a54a845c375ef523bbe314f22fadb090997d5
7
- data.tar.gz: 94d990a09c685429e812077b53dc66c26b4ae83705ce421251dfb9881070f7ec943d5ec2e87fb36505332ebf6aa7ac6121404231d1c2c9af47c9fe86ee7b1a90
6
+ metadata.gz: 4875f023186b998b527207b1e9c3b706c9c57eada03537050ba5f0d03e0f2f6fc273fe7c3622619fccfcf85e397ced4b236ef3327f07dabb2c01b66891ec9d01
7
+ data.tar.gz: 462fc6605506572793327457a9c3b84f145da2fbdb90fd2769b74ee5233c28d778e9e651b46bb34e412abc38e09f5a3375f11fa119339046d535229c17c90eb2
@@ -15,15 +15,15 @@ module Zarby
15
15
 
16
16
  def utf8
17
17
  output = @input if valid?
18
-
19
18
  COMMON_ENCODINGS.each do |encoding|
20
19
  output ||= convert { @input.encode(encoding) }
21
20
  output ||= convert { @input.force_encoding('UTF-8') } if encoding == 'UTF-8'
22
21
  end
23
22
 
23
+ output ||= unpack_pack { @input.unpack("C*").pack("U*") } if output.nil?
24
+
24
25
  # replace any unknown characters with a placeholder: �
25
26
  output ||= convert { @input.encode('UTF-8', invalid: :replace, undef: :replace) }
26
-
27
27
  output
28
28
  end
29
29
 
@@ -36,6 +36,13 @@ module Zarby
36
36
  nil
37
37
  end
38
38
 
39
+ def unpack_pack
40
+ string = yield
41
+ string if string.valid_encoding?
42
+ rescue Encoding::UndefinedConversionError, Encoding::InvalidByteSequenceError
43
+ nil
44
+ end
45
+
39
46
  def valid?
40
47
  @input.encoding.name == 'UTF-8' && @input.valid_encoding?
41
48
  end
data/lib/zarby/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Zarby
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.4"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zarby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - vianney.sonneville
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-20 00:00:00.000000000 Z
11
+ date: 2023-10-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: