>Ruby ライブラリ をロードします 要するに、ファイルを読み込んで Ruby として実行します ( ※ 読み込むファイルのパーミッションが実行可能である必要はありません ) >拡張子補完を行い、同じファイルの複数回ロードはしません これに関しては、以下の記述が参考になります 拡張子:txtvbswsfjsphpjavahtmlutf8sjis [require と load の違いについて] require は同じファイルは一度だけしかロードしませんが、 load は無条件にロードします。また、require は拡張子 .rb や .so を自動的に補完しますが、load は行いません。 require はライブラリのロード、load は設定ファイルの 読み込みなどに使うのが典型的な用途です。 パスに関しては以下のようにありますが、実際に検証したほうがいいと思います 拡張子:txtvbswsfjsphpjavahtmlutf8sjis 相対パスのときは組み込み変数 $: に示されるパスを順番に探し、 最初に見付かったファイルをロードします。このとき、$: の 要素文字列の先頭文字が `~' (チルダ) だと、環境変数 HOME の値に展開されます $: は配列です。 拡張子:txtvbswsfjsphpjavahtmlutf8sjis #!/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] ruby_02.rb 拡張子:txtvbswsfjsphpjavahtmlutf8sjis #!/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 if 文の then は書かなくても良いようです ruby_view_head.rb 拡張子:txtvbswsfjsphpjavahtmlutf8sjis 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
[require と load の違いについて] require は同じファイルは一度だけしかロードしませんが、 load は無条件にロードします。また、require は拡張子 .rb や .so を自動的に補完しますが、load は行いません。 require はライブラリのロード、load は設定ファイルの 読み込みなどに使うのが典型的な用途です。
相対パスのときは組み込み変数 $: に示されるパスを順番に探し、 最初に見付かったファイルをロードします。このとき、$: の 要素文字列の先頭文字が `~' (チルダ) だと、環境変数 HOME の値に展開されます
#!/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]
#!/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
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