unicode-age 1.1.0 → 2.2.0

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
- SHA1:
3
- metadata.gz: '09dd3604fde1d681ba8ba3bdb5e04e4fd1b5b9c5'
4
- data.tar.gz: 328c4825cb65b85e186b864808da5f69271e8b2a
2
+ SHA256:
3
+ metadata.gz: '044887cc2a5f310d1c29a083a78e88e9c43ae818abe113a84b861edef7f8e36e'
4
+ data.tar.gz: f9d3cf944fa4ed27440371dce5094463b77303b0245989007a7b9eac8222e277
5
5
  SHA512:
6
- metadata.gz: 6015fe2ebcc4c195fc2c98f9ba594c70d913aef8b90924ccadf8f352a6098738ae96495674dd37a586cdd5a0b5b2ebbaf81f1b27d69bc17ace4ba5959026c8ef
7
- data.tar.gz: 456299e5e0ecf1f43cdc77c755c8ec22cf74c3432ce81407707af92b195a4f9547452df526a4abb5071999283a81f96153fe31afbb4e9d975d4c64809c63ed14
6
+ metadata.gz: da21861d6834b9fb68f4c399fe8a07c6b1101f88f1afd03713f3b92f34bea838e79f7888f464b3c43ba7dafd8a2c09bb4b9ee807ebb07a929f09e36b4d36bb88
7
+ data.tar.gz: 0a1bcae0b8c5fae2fda9622d07ac3edd865ed7170b0527a719fdf36aa243415422ae422a58c1c400b0b2ef3516e687570ba8a4c9b275b843fc597e9c4f99a0f3
@@ -1,5 +1,27 @@
1
1
  ## CHANGELOG
2
2
 
3
+ ### 2.2.0
4
+
5
+ * Support Ruby 3.0
6
+
7
+ ### 2.1.0
8
+
9
+ * Support Unicode 12.0 (Ruby 2.6.2), Unicode 12.1 (Ruby 2.6.3)
10
+
11
+ ### 2.0.1
12
+
13
+ * Support Unicode 11 (Ruby 2.6.1, 2.6.0)
14
+
15
+ ### 2.0.0
16
+
17
+ #### Breaking change
18
+
19
+ Strings which contain unassigned codepoints (general category of **Cn**), will raise a `Unicode::Age::UnknownAge` exception.
20
+
21
+ #### Unicode update
22
+
23
+ Add Unicode 10 to list of known Unicode versions
24
+
3
25
  ### 1.1.0
4
26
 
5
27
  * Detect Unicode 9.0 (Ruby 2.4)
data/Gemfile CHANGED
@@ -3,3 +3,4 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  gem 'minitest'
6
+ gem 'rake'
@@ -1,4 +1,4 @@
1
- Copyright (c) 2016-2017 Jan Lelis, mail@janlelis.de
1
+ Copyright (c) 2016-2020 Jan Lelis, https://janlelis.com
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Unicode::Age [![[version]](https://badge.fury.io/rb/unicode-age.svg)](http://badge.fury.io/rb/unicode-age) [![[travis]](https://travis-ci.org/janlelis/unicode-age.svg)](https://travis-ci.org/janlelis/unicode-age)
1
+ # Unicode::Age [![[version]](https://badge.fury.io/rb/unicode-age.svg)](https://badge.fury.io/rb/unicode-age) [![[ci]](https://github.com/janlelis/unicode-age/workflows/Test/badge.svg)](https://github.com/janlelis/unicode-age/actions?query=workflow%3ATest)
2
2
 
3
3
  A micromodule to detect which Unicode version is required to display a string.
4
4
 
@@ -10,21 +10,17 @@ Unicode::Age.of "🚡" # => 6.0
10
10
  Unicode::Age.of "🛲" # => 7.0
11
11
  Unicode::Age.of "🌮 " # => 8.0
12
12
  Unicode::Age.of "🛒" # => 9.0
13
+ Unicode::Age.of "🛷" # => 10.0
13
14
  Unicode::Age.of "\u{10FFFF}" # => nil
14
15
  Unicode::Age.of "\u{10FFFD}" # => 2.0
15
16
  ```
16
17
 
17
- Characters of status "Unassigned" (Unicode General Category of **Cn**) will return `nil`.
18
+ Characters of status "Unassigned" (Unicode General Category of **Cn**) will raise a `Unicode::Age::UnknownAge` exception.
18
19
 
19
20
  ## Supported Ruby/Unicode versions
20
21
 
21
- Ruby version | Unicode version
22
- -------------|----------------
23
- **2.4** | **9.0.0**
24
- **2.3** | **8.0.0**
25
- **2.2** | **7.0.0**
26
- **2.1** | **6.1.0**
22
+ See the [Unicode — Ruby version table at Idiosyncratic Ruby](https://idiosyncratic-ruby.com/73-unicode-version-mapping.html)
27
23
 
28
24
  ## MIT License
29
25
 
30
- Copyright (C) 2016-2017 Jan Lelis <http://janlelis.com>. Released under the MIT license.
26
+ Copyright (C) 2016-2020 Jan Lelis <https://janlelis.com>. Released under the MIT license.
data/Rakefile CHANGED
@@ -28,3 +28,17 @@ desc "#{gemspec.name} | IRB"
28
28
  task :irb do
29
29
  sh "irb -I ./lib -r #{gemspec.name.gsub '-','/'}"
30
30
  end
31
+
32
+ # # #
33
+ # Run Specs
34
+
35
+ desc "#{gemspec.name} | Spec"
36
+ task :spec do
37
+ if RbConfig::CONFIG['host_os'] =~ /mswin|mingw/
38
+ sh "for %f in (spec/\*.rb) do ruby spec/%f"
39
+ else
40
+ sh "for file in spec/*.rb; do ruby $file; done"
41
+ end
42
+ end
43
+ task default: :spec
44
+
@@ -2,6 +2,8 @@ require_relative "age/version"
2
2
 
3
3
  module Unicode
4
4
  module Age
5
+ class UnknownAge < StandardError; end
6
+
5
7
  KNOWN_UNICODE_VERSIONS = [
6
8
  1.1,
7
9
  2.0,
@@ -21,6 +23,10 @@ module Unicode
21
23
  7.0,
22
24
  8.0,
23
25
  9.0,
26
+ 10.0,
27
+ 11.0,
28
+ 12.0,
29
+ 12.1,
24
30
  ].freeze
25
31
 
26
32
  KNOWN_UNICODE_REGEXES = KNOWN_UNICODE_VERSIONS.map{ |uv|
@@ -31,7 +37,7 @@ module Unicode
31
37
  }.compact.freeze
32
38
 
33
39
  def self.of(string)
34
- return nil if string =~ /\A\p{Unassigned}*\z/
40
+ raise(UnknownAge, "The string contains unassigned codepoints, so the Unicode version required cannot be determined. This gem version supports Unicode upto version #{UNICODE_VERSION}.") if string =~ /\A\p{Unassigned}*\z/
35
41
  KNOWN_UNICODE_VERSIONS.find.with_index{ |uv, index|
36
42
  string =~ KNOWN_UNICODE_REGEXES[index]
37
43
  }
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Unicode
2
4
  module Age
3
- VERSION = "1.1.0".freeze
4
- UNICODE_VERSION = "9.0.0".freeze
5
+ VERSION = "2.2.0"
6
+ UNICODE_VERSION = "12.1.0"
5
7
  end
6
8
  end
7
9
 
@@ -11,10 +11,13 @@ describe Unicode::Age do
11
11
  assert_equal 7.0, Unicode::Age.of("🛲 ") if RUBY_VERSION >= "2.2.0"
12
12
  assert_equal 8.0, Unicode::Age.of("🌮 ") if RUBY_VERSION >= "2.3.0"
13
13
  assert_equal 9.0, Unicode::Age.of("🛒 ") if RUBY_VERSION >= "2.4.0"
14
+ assert_equal 10.0, Unicode::Age.of("🛷 ") if RUBY_VERSION >= "2.5.0"
14
15
  end
15
16
 
16
- it "returns nil for unassigned codepoints" do
17
- assert_equal nil, Unicode::Age.of("\u{10FFFF}")
17
+ it "will raise Unicode::Age::UnknownAge exception for unassigned characters" do
18
+ assert_raises Unicode::Age::UnknownAge do
19
+ assert_equal nil, Unicode::Age.of("\u{10FFFF}")
20
+ end
18
21
  end
19
22
  end
20
23
 
@@ -8,7 +8,7 @@ Gem::Specification.new do |gem|
8
8
  gem.summary = "Determine required Unicode version of a string."
9
9
  gem.description = "[Unicode #{Unicode::Age::UNICODE_VERSION}] A micromodule to detect which Unicode version is required to display a string."
10
10
  gem.authors = ["Jan Lelis"]
11
- gem.email = ["mail@janlelis.de"]
11
+ gem.email = ["hi@ruby.consulting"]
12
12
  gem.homepage = "https://github.com/janlelis/unicode-age"
13
13
  gem.license = "MIT"
14
14
 
@@ -17,5 +17,5 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
19
19
 
20
- gem.required_ruby_version = "~> 2.0"
20
+ gem.required_ruby_version = ">= 2.0", "< 4.0"
21
21
  end
metadata CHANGED
@@ -1,29 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unicode-age
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 2.2.0
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-02-22 00:00:00.000000000 Z
11
+ date: 2020-12-30 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: "[Unicode 9.0.0] A micromodule to detect which Unicode version is required
13
+ description: "[Unicode 12.1.0] A micromodule to detect which Unicode version is required
14
14
  to display a string."
15
15
  email:
16
- - mail@janlelis.de
16
+ - hi@ruby.consulting
17
17
  executables: []
18
18
  extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
- - ".README.md.swp"
22
21
  - ".gitignore"
23
- - ".travis.yml"
24
22
  - CHANGELOG.md
25
23
  - CODE_OF_CONDUCT.md
26
24
  - Gemfile
25
+ - Gemfile.lock
27
26
  - MIT-LICENSE.txt
28
27
  - README.md
29
28
  - Rakefile
@@ -42,17 +41,19 @@ require_paths:
42
41
  - lib
43
42
  required_ruby_version: !ruby/object:Gem::Requirement
44
43
  requirements:
45
- - - "~>"
44
+ - - ">="
46
45
  - !ruby/object:Gem::Version
47
46
  version: '2.0'
47
+ - - "<"
48
+ - !ruby/object:Gem::Version
49
+ version: '4.0'
48
50
  required_rubygems_version: !ruby/object:Gem::Requirement
49
51
  requirements:
50
52
  - - ">="
51
53
  - !ruby/object:Gem::Version
52
54
  version: '0'
53
55
  requirements: []
54
- rubyforge_project:
55
- rubygems_version: 2.6.8
56
+ rubygems_version: 3.2.3
56
57
  signing_key:
57
58
  specification_version: 4
58
59
  summary: Determine required Unicode version of a string.
Binary file
@@ -1,21 +0,0 @@
1
- sudo: false
2
- language: ruby
3
-
4
- script: bundle exec ruby spec/unicode_age_spec.rb
5
-
6
- rvm:
7
- - 2.4.0
8
- - 2.3.3
9
- - 2.2
10
- - 2.1
11
- - ruby-head
12
- - jruby-head
13
- - jruby-9.1.7.0
14
-
15
- cache:
16
- - bundler
17
-
18
- matrix:
19
- allow_failures:
20
- - rvm: jruby-head
21
- - rvm: jruby-9.1.7.0