unicode-types 1.1.1 → 1.1.2

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
  SHA1:
3
- metadata.gz: 0f30aed70893363dcf284d94fb14e78a7b97cc6e
4
- data.tar.gz: 8c4d3ade7a56cd84bbe7e2637fd1a68477f2655a
3
+ metadata.gz: e9488ebcd84e5ca6243a189ba0424afa3793c565
4
+ data.tar.gz: 2df94931f98452e6d948f5bf9fe300d752ddc9a4
5
5
  SHA512:
6
- metadata.gz: 293afcc57dfba9325c74d2cf85fd6bf164140712c47eb90224ff3d9ddd9fc14e5c0d92e197f82957356505756bcf710555235ab97e2a7a2680a10e43239483d6
7
- data.tar.gz: c8984c80a34da22f5d4662961974a0616d5c814b7a4f01f8be18a07df892d59c5288fdc38d414d60b2f5db46ced53c4271c1791da4663c3accac91ed279ae7e0
6
+ metadata.gz: 2589173a6bbb02749b23c7f82fa136c7c7380a552095e08aebd4479ad0d07ff0e8aa92bdfa671960103ea359b9b1efa3a59637cf943588dbad2cd6bc102339b5
7
+ data.tar.gz: af68eea885a8bc4b22e6eff8863c5b9f2c93e888feda6dd352dfe895220ed31e8c27d96757aa6b8f580ae60b1b2f964b66a3d1ea99f3fc3e1fdf6f2f6c41887c
@@ -1,8 +1,13 @@
1
1
  ## CHANGELOG
2
2
 
3
+ ### 1.1.2
4
+
5
+ * Fix that surrogates were detected in UTF-8 (regression of 1.1.1)
6
+ * Fix bug in index compression scheme
7
+
3
8
  ### 1.1.1
4
9
 
5
- * Fix bug that prevented non-UTF-8 encodings from workin
10
+ * Fix bug that prevented non-UTF-8 encodings from working
6
11
 
7
12
  ### 1.1.0
8
13
 
Binary file
@@ -14,8 +14,7 @@ module Unicode
14
14
 
15
15
  def self.type(char)
16
16
  require_relative 'types/index' unless defined? ::Unicode::Types::INDEX
17
- codepoint_depth_offset = char.ord or
18
- raise(ArgumentError, "Unicode::Types.type must be given a valid char")
17
+ codepoint_depth_offset = get_codepoint_value(char)
19
18
  index_or_value = INDEX[:TYPES]
20
19
  [0x10000, 0x1000, 0x100, 0x10].each{ |depth|
21
20
  index_or_value = index_or_value[codepoint_depth_offset / depth]
@@ -31,5 +30,28 @@ module Unicode
31
30
  require_relative 'types/index' unless defined? ::Unicode::Types::INDEX
32
31
  INDEX[:TYPE_NAMES].dup
33
32
  end
33
+
34
+ def self.get_codepoint_value(char)
35
+ ord = nil
36
+
37
+ if char.valid_encoding?
38
+ ord = char.ord
39
+ elsif char.encoding.name == "UTF-8"
40
+ begin
41
+ ord = char.unpack("U*")[0]
42
+ rescue ArgumentError
43
+ end
44
+ end
45
+
46
+ if ord
47
+ ord
48
+ else
49
+ raise(ArgumentError, "Unicode::Types.type must be given a valid char")
50
+ end
51
+ end
52
+
53
+ class << self
54
+ private :get_codepoint_value
55
+ end
34
56
  end
35
57
  end
@@ -1,6 +1,6 @@
1
1
  module Unicode
2
2
  module Types
3
- VERSION = "1.1.1".freeze
3
+ VERSION = "1.1.2".freeze
4
4
  UNICODE_VERSION = "9.0.0".freeze
5
5
  DATA_DIRECTORY = File.expand_path(File.dirname(__FILE__) + '/../../../data/').freeze
6
6
  INDEX_FILENAME = (DATA_DIRECTORY + '/types.marshal.gz').freeze
@@ -40,6 +40,10 @@ describe Unicode::Types do
40
40
  assert_equal "Reserved", Unicode::Types.type("\u{10c50}")
41
41
  assert_equal "Reserved", Unicode::Types.type("\u{c03a6}")
42
42
  end
43
+
44
+ it "will work with invalid surrogate values" do
45
+ assert_equal "Surrogate", Unicode::Types.type("\xED\xA0\x80")
46
+ end
43
47
  end
44
48
 
45
49
  describe ".names" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unicode-types
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Lelis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-08 00:00:00.000000000 Z
11
+ date: 2017-03-19 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: "[Unicode 9.0.0] Determine the basic type of codepoints (Graphic, Format,
14
14
  Control, Private-use, Surrogate, Noncharacter, Reserved)"
@@ -31,6 +31,7 @@ files:
31
31
  - lib/unicode/types/constants.rb
32
32
  - lib/unicode/types/index.rb
33
33
  - lib/unicode/types/string_ext.rb
34
+ - spec/.unicode_types_spec.rb.swp
34
35
  - spec/unicode_types_spec.rb
35
36
  - unicode-types.gemspec
36
37
  homepage: https://github.com/janlelis/unicode-types
@@ -58,4 +59,5 @@ signing_key:
58
59
  specification_version: 4
59
60
  summary: Determine the basic type of codepoints.
60
61
  test_files:
62
+ - spec/.unicode_types_spec.rb.swp
61
63
  - spec/unicode_types_spec.rb