ruby-japanize 0.1.0 → 0.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 +4 -4
- data/.gitignore +2 -0
- data/README.md +55 -49
- data/Rakefile +23 -1
- data/lib/japanize/base.rb +221 -100
- data/lib/japanize/container.rb +96 -79
- data/lib/japanize/core.rb +26 -18
- data/lib/japanize/enum.rb +18 -0
- data/lib/japanize/names.rb +11 -2
- data/lib/japanize/num.rb +8 -1
- data/lib/japanize/process.rb +6 -0
- data/lib/japanize/sys.rb +36 -22
- data/lib/japanize/thread.rb +6 -1
- data/lib/japanize/time.rb +26 -10
- data/lib/japanize/version.rb +1 -1
- data/misc/dump_lib.rb +150 -0
- data/ruby-japanize.gemspec +1 -0
- metadata +17 -2
data/misc/dump_lib.rb
ADDED
@@ -0,0 +1,150 @@
|
|
1
|
+
#!/usr/local/bin/ruby
|
2
|
+
# -*- coding: utf-8 -*
|
3
|
+
|
4
|
+
require 'japanize'
|
5
|
+
|
6
|
+
要求 'optparse'
|
7
|
+
要求 'yaml'
|
8
|
+
|
9
|
+
日本語の別名が未定義 = 偽値
|
10
|
+
選択肢 = OptionParser.新規
|
11
|
+
選択肢.on('--not-defined-ja', '日本語の別名が未定義の操作だけを抽出') {
|
12
|
+
日本語の別名が未定義 = 真値
|
13
|
+
}
|
14
|
+
選択肢.parse!
|
15
|
+
|
16
|
+
組の表 = {}
|
17
|
+
部の表 = {}
|
18
|
+
例外の表 = {}
|
19
|
+
|
20
|
+
名前の付いた組や部に一致する正規表現 = /\A [A-Z]/x
|
21
|
+
組み込みではない組や部に一致する正規表現の一覧 = [
|
22
|
+
'Bundler',
|
23
|
+
'CGI',
|
24
|
+
'Delegator',
|
25
|
+
'DidYouMean',
|
26
|
+
'Etc',
|
27
|
+
'Forwardable',
|
28
|
+
'Gem',
|
29
|
+
'JA',
|
30
|
+
'Monitor',
|
31
|
+
'MonitorMixin',
|
32
|
+
'OptionParser',
|
33
|
+
'Pathname',
|
34
|
+
'Psych',
|
35
|
+
'RbConfig',
|
36
|
+
'Readline',
|
37
|
+
'Set',
|
38
|
+
'SimpleDelegator',
|
39
|
+
'SingleForwardable',
|
40
|
+
'SortedSet',
|
41
|
+
'StringIO',
|
42
|
+
'StringScanner',
|
43
|
+
'TSort',
|
44
|
+
'URI',
|
45
|
+
].対応させる{|ある文字列| 正規表現.翻訳("\\A #{ある文字列} \\b", 正規表現::空白を無視) }
|
46
|
+
|
47
|
+
物の空間.物毎に.繰り返す{|制御, ある物|
|
48
|
+
もし条件が{ ある物.一種か? 部 }.でなければ{ 制御.次へ進む }.である
|
49
|
+
もし条件が{ ある物.名前 =~ 名前の付いた組や部に一致する正規表現 }.でなければ{ 制御.次へ進む }.である
|
50
|
+
もし条件が{
|
51
|
+
組み込みではない組や部に一致する正規表現の一覧.何れかが成り立つか?{|ある正規表現| ある物.名前 =~ ある正規表現 }
|
52
|
+
}.であるなら{
|
53
|
+
制御.次へ進む
|
54
|
+
}
|
55
|
+
|
56
|
+
もし条件が{ ある物.一種か? 組 }.であるなら{
|
57
|
+
もし条件が{ ある物 <= 例外 }.であるなら{
|
58
|
+
例外の表[ある物] = 真値
|
59
|
+
}.でなければ{
|
60
|
+
組の表[ある物] = 真値
|
61
|
+
}.である
|
62
|
+
}.でなければ{
|
63
|
+
部の表[ある物] = 真値
|
64
|
+
}.である
|
65
|
+
}
|
66
|
+
|
67
|
+
日本語の操作に一致する正規表現 = /[^_A-Za-z0-9!?]/
|
68
|
+
組み込みではない操作に一致する正規表現の一覧 = (
|
69
|
+
%w[
|
70
|
+
yaml
|
71
|
+
gem
|
72
|
+
].対応させる{|名前| "(?:\\b|_) #{名前} (?:\\b|_)" } +
|
73
|
+
%w[
|
74
|
+
pathconf
|
75
|
+
to_set
|
76
|
+
URI
|
77
|
+
].対応させる{|名前| "\\A #{名前} \\z" }
|
78
|
+
).対応させる{|ある文字列| 正規表現.翻訳(ある文字列, 正規表現::空白を無視) }
|
79
|
+
物で定義済みの操作の表 = [
|
80
|
+
:eql?,
|
81
|
+
:hash,
|
82
|
+
:clone,
|
83
|
+
:dup,
|
84
|
+
:inspect,
|
85
|
+
:to_s
|
86
|
+
].対応させる{|名前| [ 名前, 真値 ] }.連想配列に変換
|
87
|
+
|
88
|
+
組と操作の名前の表 = {}
|
89
|
+
部と操作の名前の表 = {}
|
90
|
+
例外と操作の名前の表 = {}
|
91
|
+
|
92
|
+
[ [ 組と操作の名前の表, 組の表 ],
|
93
|
+
[ 部と操作の名前の表, 部の表 ],
|
94
|
+
[ 例外と操作の名前の表, 例外の表 ]
|
95
|
+
].個別に{|名前の表, 組または部の表|
|
96
|
+
組または部の一覧 = 組または部の表.キーの一覧
|
97
|
+
組または部の一覧.この条件で整列!{|甲| 甲.名前 }
|
98
|
+
組または部の一覧.個別に{|組または部|
|
99
|
+
操作の名前の表 = {}
|
100
|
+
[ [ '特異操作', '.', 組または部.公開された操作の一覧(偽値) -
|
101
|
+
[ 部, 組 ].対応させる{|甲| 甲.生成物が持つ公開された操作の一覧(偽値) }.畳み込む(:+)
|
102
|
+
],
|
103
|
+
[ '生成物が持つ公開された操作', '#', 組または部.生成物が持つ公開された操作の一覧(偽値) ],
|
104
|
+
[ '生成物が持つ保護された操作', '#', 組または部.生成物が持つ保護された操作の一覧(偽値) ],
|
105
|
+
[ '生成物が持つ秘密の操作', '#', 組または部.生成物が持つ秘密の操作の一覧(偽値) ]
|
106
|
+
].個別に{|種別, 区切り, 操作の一覧|
|
107
|
+
操作の一覧 = 操作の一覧.除く{|名前|
|
108
|
+
組み込みではない操作に一致する正規表現の一覧.何れかが成り立つか?{|ある正規表現| 名前 =~ ある正規表現 }
|
109
|
+
}
|
110
|
+
もし条件が{ 日本語の別名が未定義 }.であるなら{
|
111
|
+
日本語の別名の一覧 = 操作の一覧.選択する{|名前|
|
112
|
+
名前 =~ 日本語の操作に一致する正規表現
|
113
|
+
}.対応させる{|名前|
|
114
|
+
この値が{
|
115
|
+
区切り
|
116
|
+
}.もし{ '.' }.であるなら{
|
117
|
+
組または部.操作を取得(名前)
|
118
|
+
}.もし{ '#' }.であるなら{
|
119
|
+
組または部.生成物が持つ操作を取得(名前)
|
120
|
+
}.でなければ{
|
121
|
+
例外を発生 "不正な区切り: #{区切り}"
|
122
|
+
}.である
|
123
|
+
}.除く{|ある操作|
|
124
|
+
ある操作.名前 == ある操作.元の名前 || ある操作.元の名前 =~ 日本語の操作に一致する正規表現
|
125
|
+
}
|
126
|
+
|
127
|
+
日本語の別名を持つ操作の表 = 日本語の別名の一覧.
|
128
|
+
対応させる{|ある操作| [ ある操作.元の名前, ある操作 ] }.
|
129
|
+
連想配列に変換
|
130
|
+
|
131
|
+
操作の一覧 = 操作の一覧.
|
132
|
+
除く{|名前| 日本語の別名を持つ操作の表.含むか? 名前 }.
|
133
|
+
除く{|名前| 物で定義済みの操作の表.含むか? 名前 }
|
134
|
+
}.である
|
135
|
+
操作の名前の表[種別] = 操作の一覧.
|
136
|
+
除く{|名前| 名前 =~ 日本語の操作に一致する正規表現 }.
|
137
|
+
整列.
|
138
|
+
対応させる{|名前| "#{組または部.名前}#{区切り}#{名前}" }
|
139
|
+
}
|
140
|
+
名前の表[組または部.名前] = 操作の名前の表
|
141
|
+
}
|
142
|
+
}
|
143
|
+
|
144
|
+
組み込みライブラリの表 = {
|
145
|
+
'組' => 組と操作の名前の表,
|
146
|
+
'部' => 部と操作の名前の表,
|
147
|
+
'例外' => 例外と操作の名前の表
|
148
|
+
}
|
149
|
+
|
150
|
+
行を出力 組み込みライブラリの表.to_yaml
|
data/ruby-japanize.gemspec
CHANGED
@@ -31,6 +31,7 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.add_development_dependency 'bundler', '~> 1.17'
|
32
32
|
spec.add_development_dependency 'rake', '~> 10.0'
|
33
33
|
spec.add_development_dependency 'test-unit'
|
34
|
+
spec.add_development_dependency 'warning'
|
34
35
|
spec.add_development_dependency 'rdoc'
|
35
36
|
spec.add_development_dependency 'irb'
|
36
37
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-japanize
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TOKI Yoshinori
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: warning
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rdoc
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,6 +126,7 @@ files:
|
|
112
126
|
- lib/japanize/thread.rb
|
113
127
|
- lib/japanize/time.rb
|
114
128
|
- lib/japanize/version.rb
|
129
|
+
- misc/dump_lib.rb
|
115
130
|
- ruby-japanize.gemspec
|
116
131
|
- sample/README.md
|
117
132
|
- sample/dir.rb
|