idn-ruby 0.1.2 → 0.1.5

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: f2570c09d706246f8a0ca7371e0dfa865024e5d2d4e0749109c02ae22e19f2e7
4
- data.tar.gz: 31864ba33c666b02dc29f515602ba75b46d712246e06e4e9de9f29f8215c1071
3
+ metadata.gz: 2adb4d83908e191f088eb24930ba0b5abad1b1965196a358cd5ab937c50f347f
4
+ data.tar.gz: 024ce9f73c14ac9041b88d014dc3f1d5021ac2819190341bcd22f8ba10c34b79
5
5
  SHA512:
6
- metadata.gz: 6e0c1bb1b1bdd659a7d2abef20362053758121195ec42aec3f6a646db8a20e876e36438666aac0a626ea3f70c8f3aaee4db6f478d844a674311d1f4f286987de
7
- data.tar.gz: 42ebf3aed3ffb81249a01106a205b47d4488dbc16b312f2872dfff4deea857f54ea3788924a2bc6048abab6ae51808018179299367276cbbd7440c011805737e
6
+ metadata.gz: 27ae3f1953fb321d497d8024c4c23f3e3fa398180a3f5692821fc489056d29e5785d7efb4fb8ae7b7813505a059809bd5dda9e84ca475c809d7fd26a08f656c9
7
+ data.tar.gz: 229386ef58c08aebc05998d3871a3d0fbd15845426e99057046342b8b9b9affb2abb42f20143196552a6762e8c8b679177a1e5b7f3e3cf38ebe3396adaee02cc
data/CHANGES CHANGED
@@ -1,3 +1,16 @@
1
+ Changes with IDN 0.1.5 (2022-11-16)
2
+
3
+ * Minor updates to support compilation of M1 silicon.
4
+
5
+ Changes with IDN 0.1.4 (2021-11-02)
6
+
7
+ * nfkc_normalize raises ArgumentError instead of returning nil for
8
+ invalid utf-8 strings.
9
+
10
+ Changes with IDN 0.1.3 (2021-11-01)
11
+
12
+ * Fixed segv in latest ruby-head with bad utf-8
13
+
1
14
  Changes with IDN 0.1.2 (2021-06-10)
2
15
 
3
16
  * add missing includes
data/README.md CHANGED
@@ -52,24 +52,29 @@ Simply invoke the standard RubyGems commands (install, update, ...),
52
52
  for example:
53
53
 
54
54
  ```bash
55
- gem install --remote --test idn
55
+ gem install --remote idn-ruby
56
56
  ```
57
57
 
58
58
  or if the GNU LibIDN library can only be found in a non-standard location
59
59
 
60
60
  ```bash
61
- gem install --remote --test idn -- \
61
+ gem install --remote idn-ruby \
62
62
  --with-idn-dir=/path/to/non/standard/location
63
63
  ```
64
64
 
65
65
  or in an even more complex setup
66
66
 
67
67
  ```bash
68
- gem install --remote --test idn -- \
68
+ gem install --remote idn-ruby -- \
69
69
  --with-idn-lib=/path/to/non/standard/location/lib \
70
70
  --with-idn-include=/path/to/non/standard/location/include
71
71
  ```
72
72
 
73
+ #### Apple silicon
74
+ ```
75
+ gem install idn-ruby -- --with-idn-dir=$(brew --prefix libidn)
76
+ ```
77
+
73
78
  #### Semi-automatic installation with Rake
74
79
 
75
80
  If you are not able to or don't want to use RubyGems you can simply
data/ext/extconf.rb CHANGED
@@ -21,6 +21,8 @@
21
21
 
22
22
  require 'mkmf'
23
23
 
24
+ pkg_config 'libidn'
25
+
24
26
  @libs = ['idn']
25
27
  @headers = ['idna.h', 'punycode.h', 'stringprep.h']
26
28
 
data/ext/stringprep.c CHANGED
@@ -155,7 +155,10 @@ static VALUE nfkc_normalize(VALUE self, VALUE str)
155
155
 
156
156
  str = rb_check_convert_type(str, T_STRING, "String", "to_s");
157
157
  buf = stringprep_utf8_nfkc_normalize(RSTRING_PTR(str), RSTRING_LEN(str));
158
-
158
+ if (!buf) {
159
+ rb_raise(rb_eArgError, "Invalid string or encoding, normalize failed");
160
+ return Qnil;
161
+ }
159
162
  retv = rb_utf8_str_new_cstr(buf);
160
163
  idn_free(buf);
161
164
  return retv;
@@ -77,5 +77,9 @@ class Test_Stringprep < Test::Unit::TestCase
77
77
  rc = Stringprep.nfkc_normalize(val[0])
78
78
  assert_equal(val[1], rc, "TestCase #{key} failed")
79
79
  end
80
+
81
+ assert_raise(ArgumentError, "TestCase \xE8 failed") do
82
+ Stringprep.nfkc_normalize("\xE8")
83
+ end
80
84
  end
81
85
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: idn-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Abele
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-06-10 00:00:00.000000000 Z
12
+ date: 2021-11-01 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: "\n Ruby Bindings for the GNU LibIDN library, an implementation of
15
15
  the\n Stringprep, Punycode and IDNA specifications defined by the IETF\n Internationalized
@@ -58,8 +58,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
58
  - !ruby/object:Gem::Version
59
59
  version: '0'
60
60
  requirements: []
61
- rubyforge_project:
62
- rubygems_version: 2.7.6
61
+ rubygems_version: 3.2.19
63
62
  signing_key:
64
63
  specification_version: 3
65
64
  summary: LibIDN Ruby Bindings.