このページの概要
- Ruby でさまざまな "Hello, world!" を。
- とりあえずコンソール(コマンドプロンプト)上に何か表示する、世界一有名なプログラムを書いてみます。
- puts "ほげほげ" と書けば、ほげほげがコンソールに表示される、というのが基本です。
- このページの後半は変数代入、条件分岐、オブジェクトの拡張等と「基本をかなり逸脱」していますが、わからなくても気にしないでください
- 動作確認環境 : Ruby 1.8.4
.rb ファイル無しの Hello, world!
Ruby は、1行スクリプトを -e オプション付きで直接実行させることができます。
- for Windows
C:\> ruby.exe -e 'puts("Hello, world!")'
Hello, world!
C:\> _
- for Zaurus
$ ruby -e 'puts("Hello, world!")'
Hello, world!
$ _
環境依存しない上に表示結果が変わらないので、以下、for Zaurus の書式で出力結果省略に統一。
そして、別解。
- かっこ無し
$ ruby.exe -e 'puts "Hello, world!"'
- printf版
$ ruby -e 'printf("Hello, world!")'
- display版
$ ruby -e '"Hello, world!".display'
- p 版 (変数に格納しないと使えないっぽいです)
$ ruby -e 'hello = "Hello, world!"; p hello'
hello.rb ファイルを作る
0
1
| | puts("Hello, world!")
|
これを、以下の通りにすれば動きます。Zaurus なら実行属性を与えて(chmod a+x ./hello.rb) ./hello.rb で実行可能です。
$ ruby hello.rb
hellojpn.rb ファイルを作る
表示メッセージを「はろー、わーるど!」に書き換えてみます。
Zaurus なら EUC コードで、Windows なら Shift-JIS コードで作成すれば、ちゃんと「はろー、わーるど!」が表示できます。
文字コードを間違えてしまうと動きませんが、ちょっと手を加えてやれば動くようになります。
kconv を使って、tosjis (ShiftJIS変換)や toeuc (EUC変換) を行えるようにします。
- Windows版
- tosjis使用です。
0
1
2
| | require 'kconv'
puts("はろー、わーるど!".tosjis)
|
- Zaurus版
- toeuc使用です。
0
1
2
| | require 'kconv'
puts("はろー、わーるど!".toeuc)
|
- Windows / Zaurus 両方に対応してみる (手続き型的解決方法)
- プラットフォームを格納している定数 RUBY_PLATFORM*1 で
win があったら Windows と見なしています。 mswin などの文字列がある場合は Windows と見なしています*2。Mac OS X の環境は持ち合わせていないため未確認です。申し訳ないm_ _m
0
1
2
3
4
5
6
7
8
9
10
| | require 'kconv'
hello = "はろー、わーるど!"
platform = RUBY_PLATFORM.downcase
if(platform =~ /mswin(?!ce)|mingw|cygwin|bccwin/)
hello = hello.tosjis
else
hello = hello.toeuc
end
puts(hello)
|
- Windows / Zaurus 両方に対応してみる (オブジェクト指向的解決方法)
- String 型に topf (プラットフォームごとの文字列変換) メソッドを追加した解決法。
- ここまでくるとマルチプラットフォームな「はろー」スクリプトですが、シンプルさは相当失われています
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| | require 'kconv'
class String
def topf
platform = RUBY_PLATFORM.downcase
if(platform =~ /mswin(?!ce)|mingw|cygwin|bccwin/)
return self.tosjis
else
return self.toeuc
end
end
end
begin
hello = "はろー、わーるど!"
puts(hello.topf)
end
|