ruby-japanize 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: []