unicode-age 1.1.0 → 2.2.0

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: '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