ruby-japanize 0.1.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.
Files changed (53) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/Gemfile +13 -0
  4. data/LICENSE.txt +21 -0
  5. data/README.md +1459 -0
  6. data/Rakefile +88 -0
  7. data/bin/console +14 -0
  8. data/bin/setup +8 -0
  9. data/lib/japanize/base.rb +652 -0
  10. data/lib/japanize/container.rb +213 -0
  11. data/lib/japanize/core.rb +194 -0
  12. data/lib/japanize/enum.rb +127 -0
  13. data/lib/japanize/errors.rb +79 -0
  14. data/lib/japanize/globals.rb +109 -0
  15. data/lib/japanize/io.rb +388 -0
  16. data/lib/japanize/names.rb +213 -0
  17. data/lib/japanize/num.rb +319 -0
  18. data/lib/japanize/process.rb +318 -0
  19. data/lib/japanize/string.rb +257 -0
  20. data/lib/japanize/syntax.rb +805 -0
  21. data/lib/japanize/sys.rb +174 -0
  22. data/lib/japanize/test_unit.rb +99 -0
  23. data/lib/japanize/thread.rb +143 -0
  24. data/lib/japanize/time.rb +82 -0
  25. data/lib/japanize/version.rb +12 -0
  26. data/lib/japanize.rb +24 -0
  27. data/ruby-japanize.gemspec +41 -0
  28. data/sample/README.md +33 -0
  29. data/sample/dir.rb +15 -0
  30. data/sample/eval.rb +48 -0
  31. data/sample/export.rb +44 -0
  32. data/sample/fact.rb +17 -0
  33. data/sample/fib.rb +13 -0
  34. data/sample/freq.rb +17 -0
  35. data/sample/fullpath.rb +29 -0
  36. data/sample/less.rb +19 -0
  37. data/sample/list.rb +86 -0
  38. data/sample/list2.rb +22 -0
  39. data/sample/list3.rb +23 -0
  40. data/sample/mine.rb +204 -0
  41. data/sample/mkproto.rb +33 -0
  42. data/sample/mpart.rb +48 -0
  43. data/sample/occur.rb +17 -0
  44. data/sample/occur2.rb +17 -0
  45. data/sample/philos.rb +57 -0
  46. data/sample/pi.rb +20 -0
  47. data/sample/rcs.dat +17 -0
  48. data/sample/rcs.rb +45 -0
  49. data/sample/sieve.rb +17 -0
  50. data/sample/time.rb +14 -0
  51. data/sample/trojan.rb +18 -0
  52. data/sample/uumerge.rb +47 -0
  53. metadata +164 -0
data/sample/rcs.dat ADDED
@@ -0,0 +1,17 @@
1
+ 0000000000000000220000000000000000
2
+ 0000000000000111221110000000000000
3
+ 0000000000111112222111110000000000
4
+ 0000000111111112222111111110000000
5
+ 0000111111111122222211111111110000
6
+ 0111111111111222222221111111111110
7
+ 2222222222222222222222222222222222
8
+ 1122222222222222222222222222222211
9
+ 0111122222222222222222222222211110
10
+ 0011111122222222222222222211111100
11
+ 0001111111222222222222221111111000
12
+ 0000111112222222222222222111110000
13
+ 0000011122222222112222222211100000
14
+ 0000001122222221111222222211000000
15
+ 0000000122221111111111222210000000
16
+ 0000000221111111111111111220000000
17
+ 0000000000000000000000000000000000
data/sample/rcs.rb ADDED
@@ -0,0 +1,45 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ require 'japanize'
4
+
5
+ # ばらばらな点々で描く立体画像
6
+ # 使い方: rcs.rb rcs.dat
7
+
8
+ 元の幅 = 40.0 # 元のパターンの幅
9
+ 生成後の幅 = 78.0 # 生成する立体画像の幅
10
+ 生成後の半幅 = 生成後の幅 / 2.0
11
+ 眼の間隔 = 20.0 # 二つの眼の間の間隔
12
+ 基準距離 = 1.0 # 画面と基準平面の距離(平行法なら深さ、交差法なら高さ)
13
+ 単位距離 = 0.2 # z値の単位
14
+ 文字表 = "abcdefghijklmnopqrstuvwxyz0123456789#!$%^&*()-=\\[];'`,./"
15
+ _種 = 乱数の種を設定() # 実際はRubyでは必要ない - 乱数を最初に
16
+ # 呼ぶときに乱数の種を自動的に設定する
17
+
18
+ この条件なら{ 行を取得() }.繰り返す{
19
+ # 印字($_)
20
+ 右側の横座標 = -生成後の半幅; 奥行座標 = 基準距離 * 1.0; 左側の横座標の最大値 = -999
21
+ 出力行 = ""
22
+ この条件なら{ 右側の横座標 < 生成後の半幅 }.繰り返す{
23
+ 横座標 = 右側の横座標 * (1 + 奥行座標) - 奥行座標 * 眼の間隔 / 2
24
+ 位置 = (横座標 / (1 + 基準距離) + 元の幅 / 2)
25
+ 等級 = 無値 # 肯否分岐がスコープを作るので、あらかじめ局所変数を初期化しておく
26
+ もし条件が{ 1 < 位置 && 位置 < $_.長さ }.であるなら{
27
+ 等級 = $_[位置, 1].整数に変換
28
+ }.でなければ{
29
+ 等級 = 0
30
+ }.である
31
+ 奥行座標 = 基準距離 - 単位距離 * 等級
32
+ 左側の横座標 = 右側の横座標 - 眼の間隔 * 奥行座標 / (1 + 奥行座標)
33
+ 文字 = 無値 # 肯否分岐がスコープを作るので、あらかじめ局所変数を初期化しておく
34
+ もし条件が{ 左側の横座標 < -生成後の半幅 || 左側の横座標 >= 生成後の半幅 || 左側の横座標 <= 左側の横座標の最大値 }.であるなら{
35
+ 乱数値 = 乱数(文字表.長さ)
36
+ 文字 = 文字表[乱数値, 1]
37
+ }.でなければ{
38
+ 文字 = 出力行[左側の横座標 + 生成後の半幅, 1]
39
+ 左側の横座標の最大値 = 左側の横座標
40
+ }.である
41
+ 出力行 += 文字
42
+ 右側の横座標 += 1
43
+ }
44
+ 印字(出力行, "\n")
45
+ }
data/sample/sieve.rb ADDED
@@ -0,0 +1,17 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ require 'japanize'
4
+
5
+ 最大値 = 整数(スクリプトの引数.先頭から取り出す || 100)
6
+ 篩 = []
7
+ (2..最大値).個別に{|数|
8
+ 篩[数] = 数
9
+ }
10
+
11
+ (2..数学.平方根(最大値)).個別に.繰り返す{|制御, 数|
12
+ もし条件が{ 篩[数] }.でなければ{ 制御.次へ進む }.である
13
+ (数 * 数).間を進む(最大値, 数) {|倍数|
14
+ 篩[倍数] = 無値
15
+ }
16
+ }
17
+ 行を出力 篩.詰める.結合(", ")
data/sample/time.rb ADDED
@@ -0,0 +1,14 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ require 'japanize'
4
+
5
+ 開始 = 時刻.現在
6
+ 外部のコマンドを実行する(*スクリプトの引数)
7
+ 終了 = 時刻.現在
8
+
9
+ 積算時間 = プロセス.積算時間を取得
10
+ 実時間 = 終了 - 開始
11
+ ユーザCPU時間 = 積算時間.子プロセスのユーザCPU時間
12
+ システムCPU時間 = 積算時間.子プロセスのシステムCPU時間
13
+
14
+ 標準エラー出力.整形して印字("%11.1f 実時間 %11.1f ユーザ %11.1f システム\n", 実時間, ユーザCPU時間, システムCPU時間)
data/sample/trojan.rb ADDED
@@ -0,0 +1,18 @@
1
+ #! /usr/local/bin/ruby
2
+ # -*- coding: utf-8 -*-
3
+
4
+ require 'japanize'
5
+
6
+ 実行ファイルの探索経路 = 環境変数['PATH'].分割(ファイル::実行ファイルの探索経路の区切り文字)
7
+
8
+ 実行ファイルの探索経路.個別に{|ある経路|
9
+ もし条件が{ ファイル.ディレクトリか? ある経路 }.であるなら{
10
+ (あるディレクトリ = ディレクトリ.開く(ある経路)).個別に{|ファイル名|
11
+ ファイルへの経路 = ファイル.結合(ある経路, ファイル名)
12
+ もし条件が{ ファイル.ファイルか?(ファイルへの経路) && (ファイル.状態を取得(ファイルへの経路).操作許可 & 022) != 0 }.であるなら{
13
+ 整形して印字("ファイル %s は他のユーザから更新され得る状態です\n", ファイルへの経路)
14
+ }.である
15
+ }
16
+ あるディレクトリ.閉じる
17
+ }.である
18
+ }
data/sample/uumerge.rb ADDED
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+
4
+ require 'japanize'
5
+
6
+ 標準出力へ書く = 無値 # 肯否分岐がスコープを作るので、あらかじめ局所変数を初期化しておく
7
+ もし条件が{ スクリプトの引数[0] == "-c" }.であるなら{
8
+ 標準出力へ書く = 1
9
+ スクリプトの引数.先頭から取り出す
10
+ }.である
11
+
12
+ $開始を見た数 = 0
13
+ $終了を見た数 = 0
14
+
15
+ 行 = 無値 # 肯否分岐がスコープを作るので、あらかじめ局所変数を初期化しておく
16
+ 出力先 = 無値 # 肯否分岐がスコープを作るので、あらかじめ局所変数を初期化しておく
17
+ この条件なら{ 行 = 行を取得() }.繰り返す{|制御|
18
+ もし条件が{ /^begin\s*(\d*)\s*(\S*)/ =~ 行 }.であるなら{
19
+ $操作許可, $ファイル = $1, $2
20
+ $開始を見た数 += 1
21
+ もし条件が{ 標準出力へ書く }.であるなら{
22
+ 出力先 = 標準出力
23
+ }.でなければ{
24
+ もし条件が{ $ファイル != "" }.であるなら{ 出力先 = ファイルを開く($ファイル, "w") }.である
25
+ }.である
26
+ 制御.終わる
27
+ }.である
28
+ }
29
+
30
+ もし条件が{ $開始を見た数 > 0 }.でなければ{ 例外を発生 "beginが見つかりません" }.である
31
+
32
+ 出力先.バイナリ形式
33
+ この条件なら{ 行 = 行を取得 }.繰り返す{|制御|
34
+ もし条件が{ /^end/ =~ 行 }.であるなら{
35
+ $終了を見た数 += 1
36
+ もし条件が{ 標準出力へ書く }.でなければ{ 出力先.閉じる }.である
37
+ もし条件が{ 標準出力へ書く }.でなければ{ ファイル.操作許可を変更($操作許可.八進数, $ファイル) }.である
38
+ }.である
39
+ 行.置換!(/[a-z]+$/, "") # 冗長な行末の小文字を削除
40
+ もし条件が{ /[a-z]/ =~ 行 }.であるなら{ 制御.次へ進む }.である
41
+ もし条件が{ ! (行.アスキー文字のみか? && (((行.バイト値を取得(0) - 32) & 077) + 2) / 3 == 行.長さ / 4) }.であるなら{ 制御.次へ進む }.である
42
+ もし条件が{ $開始を見た数 > $終了を見た数 }.であるなら{ 出力先 << 行.一個の情報を開梱("u") }.である
43
+ }
44
+
45
+ もし条件が{ $開始を見た数 > $終了を見た数 }.であるなら{ 例外を発生 "endが見つかりません" }.である
46
+ もし条件が{ $開始を見た数 > 0 }.でなければ{ 例外を発生 "beginが見つかりません" }.である
47
+ 終了 0
metadata ADDED
@@ -0,0 +1,164 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby-japanize
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - TOKI Yoshinori
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-10-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.17'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.17'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: test-unit
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rdoc
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'
69
+ - !ruby/object:Gem::Dependency
70
+ name: irb
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: " 日本語の別名や構文を定義してRubyを日本語で書けるようにする。\n"
84
+ email:
85
+ - toki@freedom.ne.jp
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - ".gitignore"
91
+ - Gemfile
92
+ - LICENSE.txt
93
+ - README.md
94
+ - Rakefile
95
+ - bin/console
96
+ - bin/setup
97
+ - lib/japanize.rb
98
+ - lib/japanize/base.rb
99
+ - lib/japanize/container.rb
100
+ - lib/japanize/core.rb
101
+ - lib/japanize/enum.rb
102
+ - lib/japanize/errors.rb
103
+ - lib/japanize/globals.rb
104
+ - lib/japanize/io.rb
105
+ - lib/japanize/names.rb
106
+ - lib/japanize/num.rb
107
+ - lib/japanize/process.rb
108
+ - lib/japanize/string.rb
109
+ - lib/japanize/syntax.rb
110
+ - lib/japanize/sys.rb
111
+ - lib/japanize/test_unit.rb
112
+ - lib/japanize/thread.rb
113
+ - lib/japanize/time.rb
114
+ - lib/japanize/version.rb
115
+ - ruby-japanize.gemspec
116
+ - sample/README.md
117
+ - sample/dir.rb
118
+ - sample/eval.rb
119
+ - sample/export.rb
120
+ - sample/fact.rb
121
+ - sample/fib.rb
122
+ - sample/freq.rb
123
+ - sample/fullpath.rb
124
+ - sample/less.rb
125
+ - sample/list.rb
126
+ - sample/list2.rb
127
+ - sample/list3.rb
128
+ - sample/mine.rb
129
+ - sample/mkproto.rb
130
+ - sample/mpart.rb
131
+ - sample/occur.rb
132
+ - sample/occur2.rb
133
+ - sample/philos.rb
134
+ - sample/pi.rb
135
+ - sample/rcs.dat
136
+ - sample/rcs.rb
137
+ - sample/sieve.rb
138
+ - sample/time.rb
139
+ - sample/trojan.rb
140
+ - sample/uumerge.rb
141
+ homepage: https://github.com/y10k/ruby-japanize
142
+ licenses:
143
+ - MIT
144
+ metadata: {}
145
+ post_install_message:
146
+ rdoc_options: []
147
+ require_paths:
148
+ - lib
149
+ required_ruby_version: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '2.6'
154
+ required_rubygems_version: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ requirements: []
160
+ rubygems_version: 3.0.3
161
+ signing_key:
162
+ specification_version: 4
163
+ summary: Rubyを日本語化する
164
+ test_files: []