charwidth 0.2.0 → 0.2.1
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 +4 -4
- data/CHANGELOG.md +8 -0
- data/charwidth.gemspec +13 -8
- data/{bin → exe}/charwidth +0 -0
- data/lib/charwidth/version.rb +1 -1
- metadata +9 -14
- data/spec/charwidth/active_model_spec.rb +0 -44
- data/spec/charwidth_spec.rb +0 -87
- data/spec/spec_helper.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 133819f5ab71a842c32836111306f610641d82cfd4a77c00bbcec383ac981ea7
|
4
|
+
data.tar.gz: a6b8a19034123788ae3954034d71fa3b58f25debf9e5501868b23fd6b9df1030
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3aaa79d412eb608c15d546c1b30e86b640ca9f3958665a656ca109fed36597879695d01dc39076088165ad00af307bfadd0a2f976edb502e23ad5b708b3ac1f
|
7
|
+
data.tar.gz: e02b783ac3c5b8d17488f2df375770232ad31b22c5bb43d7da0a946268a5a59b6188c34ca22ee310a144fb83405ec7ed1aa04c181ad5bdc84771162fa59fb7db
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
### v0.2.1
|
2
|
+
|
3
|
+
- Exclude dependency executables (rspec, rubocop). (Thank you @ta1kt0me for reporting an issue)
|
4
|
+
|
5
|
+
### v0.2.0
|
6
|
+
|
7
|
+
- Add `normalize_charwidth` method instead of problematic ActiveRecord integration.
|
8
|
+
|
1
9
|
### v0.1.5
|
2
10
|
|
3
11
|
- Fix active_record.rb to follow the change of AR after 5.2.
|
data/charwidth.gemspec
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
require "charwidth/version"
|
1
|
+
require_relative "lib/charwidth/version"
|
4
2
|
|
5
3
|
Gem::Specification.new do |spec|
|
6
4
|
spec.name = "charwidth"
|
@@ -11,11 +9,18 @@ Gem::Specification.new do |spec|
|
|
11
9
|
spec.summary = "Normalize Japanese / Korean fullwidth (zenkaku) and halfwidth (hankaku) characters"
|
12
10
|
spec.homepage = "https://github.com/labocho/charwidth"
|
13
11
|
spec.license = "MIT"
|
12
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
|
14
13
|
|
15
|
-
spec.
|
16
|
-
spec.
|
17
|
-
spec.
|
18
|
-
spec.require_paths = ["lib"]
|
14
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
15
|
+
spec.metadata["source_code_uri"] = spec.homepage
|
16
|
+
spec.metadata["changelog_uri"] = "https://github.com/labocho/charwidth/blob/master/CHANGELOG.md"
|
19
17
|
|
20
|
-
|
18
|
+
# Specify which files should be added to the gem when it is released.
|
19
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
20
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
21
|
+
`git ls-files -z`.split("\x0").reject {|f| f.match(%r{^(test|spec|features)/}) }
|
22
|
+
end
|
23
|
+
spec.bindir = "exe"
|
24
|
+
spec.executables = spec.files.grep(%r(^exe/)) {|f| File.basename(f) }
|
25
|
+
spec.require_paths = ["lib"]
|
21
26
|
end
|
data/{bin → exe}/charwidth
RENAMED
File without changes
|
data/lib/charwidth/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: charwidth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- labocho
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-06-15 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Normalize Japanese / Korean fullwidth (zenkaku) and halfwidth (hankaku)
|
14
14
|
characters
|
@@ -16,8 +16,6 @@ email:
|
|
16
16
|
- labocho@penguinlab.jp
|
17
17
|
executables:
|
18
18
|
- charwidth
|
19
|
-
- rspec
|
20
|
-
- rubocop
|
21
19
|
extensions: []
|
22
20
|
extra_rdoc_files: []
|
23
21
|
files:
|
@@ -32,23 +30,23 @@ files:
|
|
32
30
|
- LICENSE.txt
|
33
31
|
- README.md
|
34
32
|
- Rakefile
|
35
|
-
- bin/charwidth
|
36
33
|
- bin/rspec
|
37
34
|
- bin/rubocop
|
38
35
|
- charwidth.gemspec
|
36
|
+
- exe/charwidth
|
39
37
|
- lib/charwidth.rb
|
40
38
|
- lib/charwidth/active_model.rb
|
41
39
|
- lib/charwidth/characters.rb
|
42
40
|
- lib/charwidth/cli.rb
|
43
41
|
- lib/charwidth/string.rb
|
44
42
|
- lib/charwidth/version.rb
|
45
|
-
- spec/charwidth/active_model_spec.rb
|
46
|
-
- spec/charwidth_spec.rb
|
47
|
-
- spec/spec_helper.rb
|
48
43
|
homepage: https://github.com/labocho/charwidth
|
49
44
|
licenses:
|
50
45
|
- MIT
|
51
|
-
metadata:
|
46
|
+
metadata:
|
47
|
+
homepage_uri: https://github.com/labocho/charwidth
|
48
|
+
source_code_uri: https://github.com/labocho/charwidth
|
49
|
+
changelog_uri: https://github.com/labocho/charwidth/blob/master/CHANGELOG.md
|
52
50
|
post_install_message:
|
53
51
|
rdoc_options: []
|
54
52
|
require_paths:
|
@@ -68,7 +66,4 @@ rubygems_version: 3.1.2
|
|
68
66
|
signing_key:
|
69
67
|
specification_version: 4
|
70
68
|
summary: Normalize Japanese / Korean fullwidth (zenkaku) and halfwidth (hankaku) characters
|
71
|
-
test_files:
|
72
|
-
- spec/charwidth/active_model_spec.rb
|
73
|
-
- spec/charwidth_spec.rb
|
74
|
-
- spec/spec_helper.rb
|
69
|
+
test_files: []
|
@@ -1,44 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
require "active_model"
|
3
|
-
require "charwidth/active_model"
|
4
|
-
|
5
|
-
describe Charwidth::ActiveModel do
|
6
|
-
before(:all) do
|
7
|
-
# rubocop:disable Lint/ConstantDefinitionInBlock
|
8
|
-
class User
|
9
|
-
include ActiveModel::Attributes
|
10
|
-
include Charwidth::ActiveModel
|
11
|
-
|
12
|
-
attribute :name, :string
|
13
|
-
normalize_charwidth :name
|
14
|
-
|
15
|
-
def initialize(name: nil)
|
16
|
-
super()
|
17
|
-
self.name = name
|
18
|
-
end
|
19
|
-
end
|
20
|
-
# rubocop:enable Lint/ConstantDefinitionInBlock
|
21
|
-
end
|
22
|
-
|
23
|
-
after(:all) do
|
24
|
-
Object.send(:remove_const, :User)
|
25
|
-
end
|
26
|
-
|
27
|
-
subject { User.new }
|
28
|
-
context "assign unnormalized valud" do
|
29
|
-
before(:each) do
|
30
|
-
subject.name = "ABCアイウ"
|
31
|
-
end
|
32
|
-
its(:name) { should == "ABCアイウ" }
|
33
|
-
end
|
34
|
-
context "assign nil" do
|
35
|
-
before(:each) do
|
36
|
-
subject.name = nil
|
37
|
-
end
|
38
|
-
its(:name) { should.nil? }
|
39
|
-
end
|
40
|
-
context "mass assignment" do
|
41
|
-
subject { User.new(name: "ABCアイウ") }
|
42
|
-
its(:name) { should == "ABCアイウ" }
|
43
|
-
end
|
44
|
-
end
|
data/spec/charwidth_spec.rb
DELETED
@@ -1,87 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "Charwidth" do
|
4
|
-
describe ".normalize" do
|
5
|
-
it "should convert full-width alphabet to half-width" do
|
6
|
-
expect(Charwidth.normalize("ABCabc")).to eq("ABCabc")
|
7
|
-
end
|
8
|
-
it "should convert full-width number to half-width" do
|
9
|
-
expect(Charwidth.normalize("123")).to eq("123")
|
10
|
-
end
|
11
|
-
it "should convert full-width ASCII symbol before numbers to half-width" do
|
12
|
-
expect(Charwidth.normalize("!"#")).to eq("!\"#")
|
13
|
-
end
|
14
|
-
it "should convert full-width ASCII symbol between numbers and upper-case to half-width" do
|
15
|
-
expect(Charwidth.normalize(":;")).to eq(":;")
|
16
|
-
end
|
17
|
-
it "should convert full-width ASCII symbol between upper-case and lower-case to half-width" do
|
18
|
-
expect(Charwidth.normalize("[\]")).to eq("[\\]")
|
19
|
-
end
|
20
|
-
it "should convert full-width ASCII symbol after lower-case to half-width" do
|
21
|
-
expect(Charwidth.normalize("{|}")).to eq("{|}")
|
22
|
-
end
|
23
|
-
|
24
|
-
it "should convert half-width CJK punctuation to full-width" do
|
25
|
-
expect(Charwidth.normalize("、。「」")).to eq("、。「」")
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should convert half-width katakana to full-width" do
|
29
|
-
expect(Charwidth.normalize("アカサタナハマヤラワヲンァャッー・")).to eq("アカサタナハマヤラワヲンァャッー・")
|
30
|
-
expect(Charwidth.normalize("タチツテトナニヌネノ")).to eq("タチツテトナニヌネノ")
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should unify half-width (semi) voiced katakana with dakuon to full-width" do
|
34
|
-
expect(Charwidth.normalize("ガザダバパ")).to eq("ガザダバパ")
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should convert half-width hangul to full-width" do
|
38
|
-
expect(Charwidth.normalize("アカサタナハマヤラワヲンァャッー・")).to eq("アカサタナハマヤラワヲンァャッー・")
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should convert IDIOGRAPHIC-SPACE to SPACE" do
|
42
|
-
expect(Charwidth.normalize("\u3000")).to eq(" ")
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
describe ".to_full_width" do
|
47
|
-
it "should convert half-width alphabet to full-width" do
|
48
|
-
expect(Charwidth.to_full_width("ABCabc")).to eq("ABCabc")
|
49
|
-
end
|
50
|
-
it "should convert half-width number to full-width" do
|
51
|
-
expect(Charwidth.to_full_width("123")).to eq("123")
|
52
|
-
end
|
53
|
-
it "should convert half-width ASCII symbol before numbers to full-width" do
|
54
|
-
expect(Charwidth.to_full_width("!\"#")).to eq("!"#")
|
55
|
-
end
|
56
|
-
it "should convert half-width ASCII symbol between numbers and upper-case to full-width" do
|
57
|
-
expect(Charwidth.to_full_width(":;")).to eq(":;")
|
58
|
-
end
|
59
|
-
it "should convert half-width ASCII symbol between upper-case and lower-case to full-width" do
|
60
|
-
expect(Charwidth.to_full_width("[\\]")).to eq("[\]")
|
61
|
-
end
|
62
|
-
it "should convert half-width ASCII symbol after lower-case to full-width" do
|
63
|
-
expect(Charwidth.to_full_width("{|}")).to eq("{|}")
|
64
|
-
end
|
65
|
-
|
66
|
-
it "should convert half-width CJK punctuation to full-width" do
|
67
|
-
expect(Charwidth.to_full_width("、。「」")).to eq("、。「」")
|
68
|
-
end
|
69
|
-
|
70
|
-
it "should convert half-width katakana to full-width" do
|
71
|
-
expect(Charwidth.to_full_width("アカサタナハマヤラワヲンァャッー・")).to eq("アカサタナハマヤラワヲンァャッー・")
|
72
|
-
expect(Charwidth.to_full_width("タチツテトナニヌネノ")).to eq("タチツテトナニヌネノ")
|
73
|
-
end
|
74
|
-
|
75
|
-
it "should unify half-width (semi) voiced katakana with dakuon to full-width" do
|
76
|
-
expect(Charwidth.to_full_width("ガザダバパ")).to eq("ガザダバパ")
|
77
|
-
end
|
78
|
-
|
79
|
-
it "should convert half-width hangul to full-width" do
|
80
|
-
expect(Charwidth.to_full_width("アカサタナハマヤラワヲンァャッー・")).to eq("アカサタナハマヤラワヲンァャッー・")
|
81
|
-
end
|
82
|
-
|
83
|
-
it "should convert SPACE to IDIOGRAPHIC-SPACE" do
|
84
|
-
expect(Charwidth.to_full_width(" ")).to eq("\u3000")
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
2
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
|
-
require "rspec"
|
4
|
-
require "rspec/its"
|
5
|
-
require "charwidth"
|
6
|
-
require "byebug"
|
7
|
-
|
8
|
-
# Requires supporting files with custom matchers and macros, etc,
|
9
|
-
# in ./support/ and its subdirectories.
|
10
|
-
Dir["#{__dir__}/support/**/*.rb"].sort.each {|f| require f }
|
11
|
-
|
12
|
-
RSpec.configure do |config|
|
13
|
-
# noop
|
14
|
-
end
|