From 71c2c0408e57de5dfbff32095978cd2d87530269 Mon Sep 17 00:00:00 2001 From: Steven Daniels Date: Wed, 1 Apr 2020 22:15:20 -0400 Subject: [PATCH 01/10] Bump rake version --- zhongwen_tools.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zhongwen_tools.gemspec b/zhongwen_tools.gemspec index 3dddf68..ef6c92d 100644 --- a/zhongwen_tools.gemspec +++ b/zhongwen_tools.gemspec @@ -18,7 +18,7 @@ Gem::Specification.new do |s| s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) } s.require_paths = ['lib'] - s.add_development_dependency('rake', '~> 10.1') + s.add_development_dependency "rake", ">= 12.3.3" if RUBY_VERSION >= '1.9' s.add_development_dependency('simplecov', '~> 0.16', '>= 0.16.0') s.add_development_dependency('simplecov-gem-adapter', '~> 1.0', '>= 1.0.1') From fedc1208cf45438e58933c98a1fa5bafc3f450b0 Mon Sep 17 00:00:00 2001 From: Steven Daniels Date: Wed, 1 Apr 2020 22:15:52 -0400 Subject: [PATCH 02/10] Remove deprecated spec option RIP rubyforge --- zhongwen_tools.gemspec | 2 -- 1 file changed, 2 deletions(-) diff --git a/zhongwen_tools.gemspec b/zhongwen_tools.gemspec index ef6c92d..59e931f 100644 --- a/zhongwen_tools.gemspec +++ b/zhongwen_tools.gemspec @@ -11,8 +11,6 @@ Gem::Specification.new do |s| s.homepage = 'https://github.com/stevendaniels/zhongwen_tools' s.summary = %q{Zhongwen Tools provide romanization conversions and helper methods for Chinese.} s.description = %q{Chinese tools for romanization conversions and other helpful string functions for Chinese.} - s.rubyforge_project = 'zhongwen_tools' - s.files = `git ls-files`.split("\n") s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) } From d28b006f49499bfef4720d94b7e2742d0f7e1753 Mon Sep 17 00:00:00 2001 From: Steven Daniels Date: Wed, 1 Apr 2020 22:20:16 -0400 Subject: [PATCH 03/10] Fixed regex warnings Several composed regexp had duplicated ranges --- lib/zhongwen_tools/number.rb | 2 +- lib/zhongwen_tools/romanization/pinyin.rb | 2 +- lib/zhongwen_tools/romanization/zhuyin_fuhao.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/zhongwen_tools/number.rb b/lib/zhongwen_tools/number.rb index f02d7af..eb9be5e 100644 --- a/lib/zhongwen_tools/number.rb +++ b/lib/zhongwen_tools/number.rb @@ -211,7 +211,7 @@ def self.finalize_number(number, separator = '') # FIXME: is finalize_number the best name you can think of? # NOTE: Figuring out usage of "liang" vs. "er" is pretty # difficult, so always use "er" instead. - number.join(separator).gsub(/零[#{ Regex.zh_number_multiple }]*/u, '') + number.join(separator).gsub(/零#{ Regex.zh_number_multiple }*/u, '') end end end diff --git a/lib/zhongwen_tools/romanization/pinyin.rb b/lib/zhongwen_tools/romanization/pinyin.rb index b45c13e..d86c308 100644 --- a/lib/zhongwen_tools/romanization/pinyin.rb +++ b/lib/zhongwen_tools/romanization/pinyin.rb @@ -153,7 +153,7 @@ def self.normalize_n_g(pinyin) def self.normalize_n(pinyin) # Special Case split_py("yìnián") # => ["yì" + "nián"] # split_py("Xīní") # => ["Xī", "ní"] - regex = /([#{ Regex.only_tones }])(n(#{Regex.py_tones['v']}|#{Regex.py_tones['i']}|[iu]|#{Regex.py_tones['e']}|[#{Regex.py_tones['a']}]))/ + regex = /#{Regex.only_tones}(n(#{Regex.py_tones['v']}|#{Regex.py_tones['i']}|[iu]|#{Regex.py_tones['e']}|[#{Regex.py_tones['a']}]))/ pinyin.gsub(regex) { "#{$1}-#{$2}" } end diff --git a/lib/zhongwen_tools/romanization/zhuyin_fuhao.rb b/lib/zhongwen_tools/romanization/zhuyin_fuhao.rb index 04abee5..65d0fc4 100644 --- a/lib/zhongwen_tools/romanization/zhuyin_fuhao.rb +++ b/lib/zhongwen_tools/romanization/zhuyin_fuhao.rb @@ -15,7 +15,7 @@ def self.bpmf?(str) end def self.split(str) - regex = /([#{ZhongwenTools::Regex.bopomofo}]*)/ + regex = /(#{ZhongwenTools::Regex.bopomofo}*)/ ZhongwenTools::Romanization.split_romanization(str, regex) end From e3dec657f736072c0ddbed77fc964126d3d007cb Mon Sep 17 00:00:00 2001 From: Steven Daniels Date: Wed, 1 Apr 2020 22:36:11 -0400 Subject: [PATCH 04/10] Fix deprecation warnings --- lib/zhongwen_tools/number.rb | 13 ++++++++++--- test/test_script.rb | 7 ++++--- test/test_string_extension.rb | 1 - 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/lib/zhongwen_tools/number.rb b/lib/zhongwen_tools/number.rb index eb9be5e..99630bd 100644 --- a/lib/zhongwen_tools/number.rb +++ b/lib/zhongwen_tools/number.rb @@ -6,13 +6,20 @@ module ZhongwenTools # Number.to_pyn, to_i, to_zhs, etc. + if RUBY_VERSION >= "2.4.0" + CONVERTIBLE_OBJECTS = [String, Integer] + NUMBER_CLASSES = [Integer] + else + CONVERTIBLE_OBJECTS = [String, Integer, Fixnum, Bignum] + NUMBER_CLASSES = [Fixnum, Integer, Bignum] + end module Number def self.number?(obj) case obj when String regex = /([\d]|#{ZhongwenTools::Regex.zh_numbers}){1,}/ "#{obj}".gsub(regex, '') == '' - when Integer, Fixnum, Float + when Integer, Float true end end @@ -39,7 +46,7 @@ def self.to_zh(obj, type = :zhs, from = nil) def self.convert(obj, to, from, separator = '') fail ArgumentError unless [:zhs, :zht, :i, :pyn].include?(to.to_sym) - fail ArgumentError unless [String, Integer, Fixnum, Bignum].include?(obj.class) + fail ArgumentError unless CONVERTIBLE_OBJECTS.include?(obj.class) number = convert_from from, to, obj @@ -56,7 +63,7 @@ def self.convert(obj, to, from, separator = '') def self.number_type(obj) klass = obj.class - if [Fixnum, Integer, Bignum].include?(klass) + if NUMBER_CLASSES.include?(klass) :i else if ZhongwenTools::Zhongwen.zh?(obj) diff --git a/test/test_script.rb b/test/test_script.rb index 82dfc0b..09ab873 100644 --- a/test/test_script.rb +++ b/test/test_script.rb @@ -2,9 +2,10 @@ $:.unshift File.join(File.dirname(__FILE__),'..','lib') require './test/test_helper' +require 'zhongwen_tools/script' + class TestScript < Minitest::Test def setup - load 'zhongwen_tools/script.rb' @strings = [ { :zhs => '干部一干人等干事不干不净', @@ -116,5 +117,5 @@ def test_zht? assert ZhongwenTools::Script.zht?(hash[:zhtw]) assert ZhongwenTools::Script.zht?(hash[:zhhk]) end - end -end + end +end diff --git a/test/test_string_extension.rb b/test/test_string_extension.rb index fd95184..157c769 100644 --- a/test/test_string_extension.rb +++ b/test/test_string_extension.rb @@ -72,7 +72,6 @@ def test_methods assert_equal @rom[:pyn].romanization?, :pyn # script.rb - load 'zhongwen_tools/script.rb'# unless ZhongwenTools.const_defined?(:Script) assert_equal @zh[:zht], @zh[:zhs].to_zht assert_equal @zh[:zhs], @zh[:zht].to_zhs assert_equal @zh[:zhcn], @zh[:zhhk].to_zhcn From eb5f748cc44d5c7bb00ab7a6a213781d2bee1979 Mon Sep 17 00:00:00 2001 From: Steven Daniels Date: Wed, 1 Apr 2020 22:36:31 -0400 Subject: [PATCH 05/10] Update development gem pry --- zhongwen_tools.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zhongwen_tools.gemspec b/zhongwen_tools.gemspec index 59e931f..51b538a 100644 --- a/zhongwen_tools.gemspec +++ b/zhongwen_tools.gemspec @@ -22,7 +22,7 @@ Gem::Specification.new do |s| s.add_development_dependency('simplecov-gem-adapter', '~> 1.0', '>= 1.0.1') s.add_development_dependency('coveralls', '~> 0.8', '>= 0.8.1') s.add_development_dependency('minitest', '~> 5.5', '>= 5.5.1') - s.add_development_dependency('pry', '~> 0.10', '>= 0.10.1') + s.add_development_dependency('pry', '~> 0.13', '>= 0.13.0') s.add_development_dependency('minitest-reporters', '~> 1.0', '>= 1.0.10') end From 46b8f7614fa7bbad626076546ba306a0d5829379 Mon Sep 17 00:00:00 2001 From: Steven Daniels Date: Wed, 1 Apr 2020 22:40:46 -0400 Subject: [PATCH 06/10] pry gem isn't supported by ruby 1.9 --- zhongwen_tools.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zhongwen_tools.gemspec b/zhongwen_tools.gemspec index 51b538a..6746920 100644 --- a/zhongwen_tools.gemspec +++ b/zhongwen_tools.gemspec @@ -22,11 +22,11 @@ Gem::Specification.new do |s| s.add_development_dependency('simplecov-gem-adapter', '~> 1.0', '>= 1.0.1') s.add_development_dependency('coveralls', '~> 0.8', '>= 0.8.1') s.add_development_dependency('minitest', '~> 5.5', '>= 5.5.1') - s.add_development_dependency('pry', '~> 0.13', '>= 0.13.0') s.add_development_dependency('minitest-reporters', '~> 1.0', '>= 1.0.10') end if RUBY_VERSION >= '2.1' + s.add_development_dependency('pry', '~> 0.13', '>= 0.13.0') s.add_development_dependency('memory_profiler', '0.0.4') end end From 6d0e8f175c2d7efde48b07efdf4cbe2da5c2ea91 Mon Sep 17 00:00:00 2001 From: Steven Daniels Date: Wed, 1 Apr 2020 22:41:15 -0400 Subject: [PATCH 07/10] Add modern ruby to travis --- .travis.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 72706ba..0406e44 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,8 +2,9 @@ language: ruby rvm: - 1.9.3 - 2.0.0 - - 2.1 - - 2.2.0 + - 2.4 + - 2.6 + - 2.7.0 - ruby-head - jruby-19mode - rbx-2 @@ -12,3 +13,4 @@ matrix: - rvm: ruby-head - rvm: jruby-19mode - rvm: rbx-2 + - rvm: 2.4 From c6a511d5f9ca8b787d6d43e2a92e3f749ef1759c Mon Sep 17 00:00:00 2001 From: Steven Daniels Date: Wed, 1 Apr 2020 22:47:57 -0400 Subject: [PATCH 08/10] Fix flakey tests Test were failing because of the order of the core test. It removes a module from the object, which broke things. Reloading the module after the test runs should fix things. --- test/test_core.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/test_core.rb b/test/test_core.rb index 636f760..53ac80c 100644 --- a/test/test_core.rb +++ b/test/test_core.rb @@ -4,10 +4,13 @@ require './test/test_helper' class TestCore < Minitest::Test + def test_core_ext_does_not_have_script_functions load 'test_helpers/unload_zhongwen_tools_script.rb' require 'zhongwen_tools/core' require 'zhongwen_tools/core_ext/string' assert_raises(NoMethodError){ '你们'.to_zht } + # NOTE: restoring ZhongwenTools::Script + load 'zhongwen_tools/script.rb' end end From 6633b929a7930aeb29b1f7b781e996752880fdd1 Mon Sep 17 00:00:00 2001 From: Steven Daniels Date: Wed, 1 Apr 2020 22:55:29 -0400 Subject: [PATCH 09/10] Fix gemspec for ruby 1.9 --- zhongwen_tools.gemspec | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/zhongwen_tools.gemspec b/zhongwen_tools.gemspec index 6746920..d2c3ae4 100644 --- a/zhongwen_tools.gemspec +++ b/zhongwen_tools.gemspec @@ -16,17 +16,16 @@ Gem::Specification.new do |s| s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) } s.require_paths = ['lib'] - s.add_development_dependency "rake", ">= 12.3.3" - if RUBY_VERSION >= '1.9' + if RUBY_VERSION >= '2.1' s.add_development_dependency('simplecov', '~> 0.16', '>= 0.16.0') s.add_development_dependency('simplecov-gem-adapter', '~> 1.0', '>= 1.0.1') s.add_development_dependency('coveralls', '~> 0.8', '>= 0.8.1') s.add_development_dependency('minitest', '~> 5.5', '>= 5.5.1') s.add_development_dependency('minitest-reporters', '~> 1.0', '>= 1.0.10') - end - - if RUBY_VERSION >= '2.1' + s.add_development_dependency "rake", ">= 12.3.3" s.add_development_dependency('pry', '~> 0.13', '>= 0.13.0') s.add_development_dependency('memory_profiler', '0.0.4') + else + s.add_development_dependency('rake', '~> 10.1') end end From d028f30990570898d670c33c6401123db4ea4716 Mon Sep 17 00:00:00 2001 From: Steven Daniels Date: Wed, 1 Apr 2020 22:56:41 -0400 Subject: [PATCH 10/10] Update rubinius --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0406e44..f66088c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,10 +7,10 @@ rvm: - 2.7.0 - ruby-head - jruby-19mode - - rbx-2 + - rbx-4 matrix: allow_failures: - rvm: ruby-head - rvm: jruby-19mode - - rvm: rbx-2 + - rvm: rbx-4 - rvm: 2.4