「RubyのTIPS」の版間の差分

提供: Eospedia
移動: 案内検索
(system()を使用する)
 
(同じ利用者による、間の6版が非表示)
行3: 行3:
  
 
== コード例 ==
 
== コード例 ==
 +
=== 変数名の注意事項 ===
 +
変数名の先頭文字は小文字を使用します。大文字で使用した場合は定数として扱われ、再代入するときにワーニングが出力されます。(但し、値は変わる)<br>
 +
<br>
 +
 +
=== 改行の文字列を取り扱うとき ===
 +
'''<<'(タグ名)' '''と'''(タグ名)'''で挟まれた文字列は改行も含めて使用することができます。ここで'''(タグ名)'''は文字列の開始と終了を判断する記号としてのみ機能しますので、中の文字列には出現しない名前にしましょう。<br>
 +
例えば下記の用途などで有効です。<br>
 +
 +
==== HTMLの一部を使いたいとき ====
 +
例えば、[[cgi]]をrubyで作成するときにある[[HTML]]ファイルの一部をコピーして使いたいときには下記のように記述します。<br>
 +
<pre>
 +
strHTML += <<'Block-HTML'
 +
<!DOCTYPE html>
 +
<html>
 +
<head>
 +
<title>Title</title>
 +
</head>
 +
<body>
 +
ABC<br>
 +
123<br>
 +
</body>
 +
</html>
 +
Block-HTML
 +
</pre>
 +
<br>
 +
 +
==== 改行込みの文字列をprintしたいとき ====
 +
printなどの文字列を関数の引数として'''()'''内に入れて使用するものは下記のように記述します。<br>
 +
<pre>
 +
print (<<"DDD")
 +
1
 +
2
 +
3
 +
4
 +
DDD
 +
</pre>
 +
<br>
 +
 +
実行結果<br>
 +
<pre>
 +
1
 +
2
 +
3
 +
4
 +
</pre>
 +
<br>
 +
 +
=== コメントアウト ===
 +
ブロックコメントには=beginと=endで挟んで使用します。<br>
 +
<pre>
 +
=begin
 +
require 'cgi'
 +
=end
 +
</pre>
 +
<br>
 +
 +
=== ruby内でシェルスクリプトを起動したいとき ===
 +
下記の方法でシェルスクリプトを実行することができます。<br>
 +
<br>
 +
 +
==== system()を使用する ====
 +
system()を使用する方法があります。<br>
 +
但し、lsなど標準出力のデータを得ることはできません。<br>
 +
<br>
 +
 +
<pre>
 +
system("mkdir dirname")
 +
</pre>
 +
<br>
 +
 +
==== open("| ")を使用する ====
 +
lsコマンドなどは下記のようにすると標準出力のデータを得ることができます。<br>
 +
<pre>
 +
result = open("| ls -lh")
 +
while !result.eof
 +
strHTML += result.gets
 +
end
 +
result.close
 +
</pre>
 
<br>
 
<br>
  

2015年1月6日 (火) 08:41時点における最新版

ここではRubyについてのTIPSを挙げていきます。

コード例

変数名の注意事項

変数名の先頭文字は小文字を使用します。大文字で使用した場合は定数として扱われ、再代入するときにワーニングが出力されます。(但し、値は変わる)

改行の文字列を取り扱うとき

<<'(タグ名)' (タグ名)で挟まれた文字列は改行も含めて使用することができます。ここで(タグ名)は文字列の開始と終了を判断する記号としてのみ機能しますので、中の文字列には出現しない名前にしましょう。
例えば下記の用途などで有効です。

HTMLの一部を使いたいとき

例えば、cgiをrubyで作成するときにあるHTMLファイルの一部をコピーして使いたいときには下記のように記述します。

strHTML += <<'Block-HTML'
<!DOCTYPE html>
<html>
	<head>
		<title>Title</title>
	</head>
	<body>
	ABC<br>
	123<br>
	</body>
</html>
Block-HTML


改行込みの文字列をprintしたいとき

printなどの文字列を関数の引数として()内に入れて使用するものは下記のように記述します。

print (<<"DDD")
1
2
3
4
DDD


実行結果

1
2
3
4


コメントアウト

ブロックコメントには=beginと=endで挟んで使用します。

=begin
require 'cgi'
=end


ruby内でシェルスクリプトを起動したいとき

下記の方法でシェルスクリプトを実行することができます。

system()を使用する

system()を使用する方法があります。
但し、lsなど標準出力のデータを得ることはできません。

system("mkdir dirname")


open("| ")を使用する

lsコマンドなどは下記のようにすると標準出力のデータを得ることができます。

result = open("| ls -lh")
while !result.eof
	strHTML += result.gets
end
result.close


Webページを作成する

Sinatraを利用することでWebページを簡単に作成することができます。

デバッグで使用するコマンド

irb

irbコマンドを実行するとインタラクティブにrubyコマンドを実行することができ、簡単な動作テストなどができる。

$ irb
irb(main):001:0> print "hello world!"
hello world!=> nil
irb(main):002:0>

exitと入力すると終了する。

インストールしたgemリスト

gem listコマンドを実行すると、インストールしたgemのリストで表示します。

$ gem list

*** LOCAL GEMS ***

bundler (1.7.7)
pione (0.4.2)