ruby-japanize 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -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.1.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-10-14 00:00:00.000000000 Z
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