「RubyのTIPS」の版間の差分

提供: Eospedia
移動: 案内検索
(ruby内でシェルスクリプトを起動したいとき)
(system()を使用する)
 
(同じ利用者による、間の1版が非表示)
行66: 行66:
 
system()を使用する方法があります。<br>
 
system()を使用する方法があります。<br>
 
但し、lsなど標準出力のデータを得ることはできません。<br>
 
但し、lsなど標準出力のデータを得ることはできません。<br>
 +
<br>
 +
 +
<pre>
 +
system("mkdir dirname")
 +
</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)