ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文

  メンテナンス 前画面に戻る

対象スレッド 件名: Ruby の require について
名前: lightbox
処理選択
パスワード

件名 Ruby の require について
名前 lightbox
コメント
	@C:green(>Ruby ライブラリ をロードします)
	要するに、ファイルを読み込んで Ruby として実行します
	( ※ 読み込むファイルのパーミッションが実行可能である必要はありません )
	
	@C:green(>拡張子補完を行い、同じファイルの複数回ロードはしません)
	これに関しては、以下の記述が参考になります


@DIV
[require と load の違いについて]

require は同じファイルは一度だけしかロードしませんが、 
load は無条件にロードします。また、require は拡張子 
.rb や .so を自動的に補完しますが、load は行いません。
require はライブラリのロード、load は設定ファイルの
読み込みなどに使うのが典型的な用途です。
@END

   [[パスに関しては以下のようにありますが、実際に検証したほうがいいと思います]]
@DIV
相対パスのときは組み込み変数 $: に示されるパスを順番に探し、
最初に見付かったファイルをロードします。このとき、$: の
要素文字列の先頭文字が `~' (チルダ) だと、環境変数 HOME 
の値に展開されます
@END
   http://r205.jf.land.to/ruby/ruby_path.rb($: は配列です。)
@DIV
#!/usr/local/bin/ruby
print "Content-type: text/html; Charset=shift_jis\n\n"

# 標準エラー出力の出力先を標準出力に変更
$stderr = $stdout

load "ruby_view_head.rb"

p $:

print "<br>"
print ($:).length

print "<br>"
print $:[0]
@END



   [[ruby_02.rb]]
@DIV
#!/usr/local/bin/ruby
print "Content-type: text/html; Charset=shift_jis\n\n"

# 標準エラー出力の出力先を標準出力に変更
$stderr = $stdout

load "ruby_view_head.rb"

if (ENV['REQUEST_METHOD']).downcase == 'get'
	print "初期画面です<br>"
else
	print "入力がありました<br>"
end
@END
   @C:red(if 文の then は書かなくても良いようです)


   [[ruby_view_head.rb]]
@DIV
print <<LABEL
<HTML>

<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=shift_jis" />

<style type="text/css">
* {
	margin: 0;
}
</style>
</HEAD>
<BODY>
LABEL
@END