【Ruby】RubyでCGI
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。
2001/05/04(金) 12:57ID:c4hRtzGY関連リンクは>>2-3
0002名無しさん@お腹いっぱい。
2001/05/04(金) 12:57ID:c4hRtzGYRuby Home Page http://www.ruby-lang.org/ja/ (公式ホームページ)
Ruby Ring http://kahori.com/ruby/ring/ (WebRing。ここをたどればいろいろあるはず)
0003名無しさん@お腹いっぱい。
2001/05/04(金) 12:58ID:c4hRtzGYruby http://tako.2ch.net/test/read.cgi?bbs=perl&key=969198148
PerlよりRubyがいいらしいぞ http://tako.2ch.net/test/read.cgi?bbs=perl&key=974680215
Rubyで掲示板スクリプト http://tako.2ch.net/test/read.cgi?bbs=perl&key=972938974
0004白痴な疑問でスマソ
2001/05/04(金) 16:10ID:fcczG5h.rubyが使える無料サーバーってありますか?
0005名無しさん@お腹いっぱい。
2001/05/04(金) 17:23ID:c4hRtzGY有料鯖・ISPに関しては、ここを参照。
Rubyが使えるISPリスト http://www.jin.gr.jp/%7Enahi/Ruby/anywhere.html
0006名無しさん@お腹いっぱい。
2001/05/04(金) 17:26ID:???http://www.users.yun.co.jp/
00074
2001/05/05(土) 02:36ID:???有難うございました。試しに無料鯖で色々するってワケにはいかない
んですね(perlやPHPと両方使える有料鯖を借りるしかないかー)
ところでRubyのウリってなんでしょう?
というかオブジェクト指向ってどういう意味なんでしょう・・・
0008名無しさん@お腹いっぱい。
2001/05/05(土) 03:28ID:???0009名無しさん@お腹いっぱい。
2001/05/05(土) 10:59ID:???http://fantasien.cup.com/link/feature_rentalserver.html
(e-SITE、サービス終了しちゃったね…残念)
0010名無しさん@お腹いっぱい。
2001/05/06(日) 10:36ID:???オブジェクト指向スクリプト言語Ruby part2
http://piza.2ch.net/test/read.cgi?bbs=tech&key=987231068
0011名無しさん@お腹いっぱい。
2001/05/06(日) 19:08ID:???有料鯖でも色々(実験とか)したらダメだろ。
0012名無しさん@お腹いっぱい。
2001/05/10(木) 01:37ID:???1. Ruby 自体普及してない。
2. Ruby 使いは CGI に興味が無い人が多い(?)。
3. いろんな意味で Perl の方が向いている。
4. 作者に悪いが cgi.rb があまり嬉しくない。
すぐに沈むのでage....
0013名無しさん@お腹いっぱい。
2001/05/10(木) 02:53ID:7PDMmFLYそれとも根本的に何かまずい所でもある?
cgi.rbを使ったCGIを作って使っているので、
そこんところとても興味あります。
0014名無しさん@お腹いっぱい。
2001/05/10(木) 09:18ID:???0015名無しさん@お腹いっぱい。
2001/05/10(木) 10:08ID:???cgi.rb には私もお世話になってます。とても有難いです。
ただ、Perl で CGI を書いてる人をやる気にさせる程の
ものじゃないかなってこと。他のライブラリもそうなんだけど
日本人がターゲットなのに(勘違い?)日本語の説明が無いのも
よくないと思います。
あと不満じゃないけど、タグの出力機能は必要無いでしょう。
Ruby 使いで初めて CGI を書く人、暇な人、固い人
以外は使わないような気がする。
0016名無しさん@お腹いっぱい。
2001/05/10(木) 10:15ID:???>Ruby はウェブプログラミング向きではない。
というよりも、ウェブプログラミング入門に向いてない、の方が正しくないかな。
0017名無しさん@お腹いっぱい。
2001/05/10(木) 11:16ID:???私はタグ出力機能、重宝してます。
文法レベルでタグの閉じ忘れがチェックされるのと、
HTMLの規格に準拠したタグが強制されるのが有難い。
あと日本語の解説は
http://www.ruby-lang.org/ja/man-1.6/index.cgi?cmd=view;name=Ruby%A5%EA%A5%D5%A5%A1%A5%EC%A5%F3%A5%B9%A5%DE%A5%CB%A5%E5%A5%A2%A5%EB
から
添付ライブラリ→CGI
で見られます。
すげー大雑把な解説ではありますが。
ターゲットはむしろ日本人限定じゃないと思います。
日本人が作者なんで日本語の取り回しに長けてる面はありますが。
最近は北米でのユーザーもがんがん増えてるようです。
0018名無しさん@お腹いっぱい。
2001/05/10(木) 13:16ID:???タグ出力機能はソースの見通しが悪くなる。
ということでおれはeRuby使ってるよ。
0019名無しさん@お腹いっぱい。
2001/05/10(木) 22:23ID:7PDMmFLYヒアドキュメントが嫌いってのがあって、
cgi.rbは重宝しました。
とはいえ、最近になってERbを使い始めている(^^;)。
0020名無しさん@お腹いっぱい。
2001/05/12(土) 00:01ID:hPIXpPE6使っている。だからcgi.rbも使うなぁ。
0021名無しさん
2001/06/21(木) 04:52ID:fZd90uYUread_multipartの中で無限ループするんだけど……。
しかも、NT4.0だとタスクマネージャからRubyを終了出来なかったよ。
Win2000だと終了出来たけど。
Apacheの設定か何かで、無限ループを阻止出来る方法無いの?
一定時間経ったら、自動的にプロセスを殺すとか。
0022名無しさん
2001/06/21(木) 04:59ID:fZd90uYUWin32なApacheじゃ、素で動かなかったぞ。
0023名無しさん
2001/06/21(木) 11:18ID:???(UNIX版もね)
うまくいかなかったらバージョン戻してみるのもいいかも
0024名無しさん
2001/06/22(金) 02:11ID:E9i/qXegmultipartの各パートをそれぞれ全部一時ファイルに書き出す仕様もなんだかなぁ。
中見てみたけど、eval多用してたりして、厨房な漏れには訳分からん。効率の為なのか?
もっとシンプルに書けるんじゃないの? いや、漏れは書けないけど。
Web検索してみたら、このライブラリに不満持ってる人は少なくないみたいだし、
CGI本出しちゃったし、Perl代替を狙うならCGIは欠かせない訳だし、
誰か他の人が書き直してくれないかなぁ、3つ目(?)のCGIライブラリを。
0025名無しさん@お腹いっぱい。
2001/07/03(火) 23:17ID:hGnmL6gMどんな用途で使ってんの?
0026名無しさん@お腹いっぱい。
2001/07/03(火) 23:27ID:Z6/vpDDM0027名無しさん@お腹いっぱい。
2001/07/04(水) 10:49ID:???CGIにRubyを使ってるほうが少数派でしょ。RAAを見ても明らか。
0028名無しさん@お腹いっぱい。
2001/07/05(木) 12:53ID:EtKdHoqM0029名無しさん@お腹いっぱい。
2001/07/05(木) 23:43ID:???Ruby Application Archive
http://www.ruby-lang.org/ja/raa.html
0030名無しさん@お腹いっぱい。
2001/07/06(金) 00:55ID:???0031名無しさん@お腹いっぱい。
2001/07/06(金) 02:35ID:P7VWVoDE0032名無しさん@お腹いっぱい。
2001/07/09(月) 00:36ID:XKA0nNxs0033名無しさん@お腹いっぱい。
2001/07/12(木) 23:12ID:.ANFtm8Icgi = CGI.new したとして
cgi['hoge'] じゃなくて
cgi['hoge'][0].read しないと値を得られない。
multipart じゃない form からデータがくると
read なんつうメソッドはないってエラーが出てしまう。
なんで同じにしなかったんだろう?
0034名無しさん@お腹いっぱい。
2001/07/14(土) 16:34ID:gnTS0OVs変なURLに見えるけど内容は確か。
ttp://members.tripod.co.jp/casinoA1/
0035名無しさん@お腹いっぱい。
2001/07/14(土) 18:43ID:???氏ね。
0036名無しさん@お腹いっぱい。
2001/07/25(水) 18:21ID:???http://www.ruby-lang.org/ja/compar.html
0037tempfile.rb
2001/07/29(日) 23:25ID:jUN2xdtU>あと、cgi.rbの中で呼んでるtempfile.rbって、なんかUNIX依存っぽくないか?
>Win32なApacheじゃ、素で動かなかったぞ。
僕もそんな気がしました。結局、
tempfile.rb[line31]
> def initialize(basename, tmpdir=ENV['TMPDIR']||ENV['TMP']||ENV['TEMP']||'/tmp')
を次のようにいじったところ動くようになりました(?)。
→ def initialize(basename, tmpdir=ENV['TMPDIR']||ENV['TMP']||ENV['TEMP']||'c:/tmp')
かっこ悪い修正ですが、悩んでいる人がいたら助けになるかも。
0038名無しさん@お腹いっぱい。
2001/07/30(月) 19:55ID:???ドライブの / (C:\とか) に tmp ディレクトリ作れば動いたよ。
003937
2001/07/30(月) 23:40ID:nDJaYIZIほんとはそれでいいらしいんですよね。
こちらの環境ではなぜかうまく動作せず、
(Win2000+Appatch、アドミニストレータで動作)
思考錯誤の結果ああいうかたちになりました。
今度もう一度確かめてみます.
0040名無しさん@お腹いっぱい。
01/09/25 01:51ID:jG.IKxsA変なURLに見えるけど内容は確か。
http://www.ruby-lang.org/ja/compar.html
0041るびちゅう
01/09/25 23:30ID:???0042名無しさん@お腹いっぱい。
01/09/26 19:44ID:???http://nmgm.s2.xrea.com/2ch.htm
0043名無しさん@お腹いっぱい。
01/09/26 20:19ID:???これRubyで作ったの?
0044名無しさん@お腹いっぱい。
01/09/26 21:30ID:Y.kwk7Okちょっと便利かも
とりあえずブクマークしとくわ
0045名無しさん@お腹いっぱい。
01/09/27 08:33ID:???一流CGIプログラマーの間ではこれが定説なんだってね。
俺も最初聞いた時はそんな馬鹿な!?って驚きを
隠せなかったよ。でも良く調べてみたら確かにその通りだなって納得したよ。
0046名無しさん@お腹いっぱい。
01/10/07 23:58ID:???0047名無しさん@お腹いっぱい。
01/10/08 14:28ID:???======終了======
0048名無しさん@お腹いっぱい。
01/10/11 02:45ID:???OOの勉強には良いと思うよ
ただ実用面だとPerlにはかなわん、こっちはこれでもかって位モジュールが有るからねー
0049名無しさん@お腹いっぱい。
01/10/11 10:19ID:???こんな順位つけてるヤツは所詮2流です。
適材適所が1流の仕事です。
0050名無しさん@お腹いっぱい。
01/12/05 09:58ID:xi2isyGi0051名無しさん@お腹いっぱい。
01/12/05 18:45ID:acrdgRBF0052名無しさん@お腹いっぱい。
02/01/10 14:32ID:pG5s4nbd次のようなエラーメッセージが出るだけだ。
ERROR
ruby: No such file or directory - "" (Errno::ENOENT)
内容はこれ
<% print "Content-type: text/html\n\n"
print "Hello, ruby!\n"
puts "hoge?"
puts "hoge?" %>
AN httpdを使ってるんだが
どうすればいいんだ?
005352
02/01/10 15:29ID:SCRJRkGLAPACHEをインストールして
やってみたら解決したYO!!
やはり鯖はAPACHEですな。
0054名無しさん@お腹いっぱい。
02/01/12 09:20ID:3v4I3+AiCGI::Sessionをちゃんとupdateしてくれるとか(これはまった)、
例外拾ってくれてあの派手なエラー画面(+ソース丸見え)
が出ないようになってるとか、ページ間の状態遷移を楽に
記述できるとか。
自分で書いててよくわかんないけど、
皆さんどうしてますか。
0055名無しさん@お腹いっぱい。
02/01/17 01:37ID:eUnOdGnGさん!一人で解決しないで!APACHEインストールしたけど動かないよ!
たぶん設定だと思うんだけど・・・Perlは設定にすごく詳しいページ
http://www2j.biglobe.ne.jp/~apollo/server/server.html
があるのにRubyにそういうページが不足してると思う・・・
何で動かないんじゃー。Meにアパッチバイナリインストールが無謀だったのか。
0056名無しさん@お腹いっぱい。
02/01/17 13:12ID:???0057名無しさん@お腹いっぱい。
02/01/18 02:13ID:ElgNfh5Rzlibインストールしてみたけどまだ良く解らなくて・・・
くだらん質問でスイマセン。
0058名無しさん@お腹いっぱい。
02/01/23 10:39ID:???Rubyに興味があるけど、実際に作りたいプログラムが思い浮かばない。
本に書いてあるスクリプトを丸写ししていても、勉強にならないし。
で、ちょっとでも自分にとって需要があるものと言うと、CGIなんだけど
如何せん、参考に出来るソースが少ない。
ソースが少ないと、CGIの種類が少ないってことだし、
絶対量が少ないと、結果として話題性に乏しくなる。
そうすると、情報量が少なくなる。=> Poorな製作者は作りづらい
作りづらいとCGIが増えないし、公開されるソースも減る。
この循環があるかと、思うのですが。
0059名無しさん@お腹いっぱい。
02/01/24 22:05ID:C7eIKAZ/初めて使ってみたけどなかなかよかった
0060名無しさん@お腹いっぱい。
02/01/25 00:33ID:???JSPとかColdFusionもそうだけど、あの手のHTMLに埋め込む
タイプのやつ苦手だ。プログラムの可読性下がる。
Rubyの良さ半減て感じ。
0061名無しさん@お腹いっぱい。
02/01/25 00:50ID:???禿げしく同意。短いコードならいいんだがな。
0062名無しさん@お腹いっぱい。
02/01/25 01:01ID:???0063名無しさん@お腹いっぱい。
02/01/25 04:33ID:pTuOifZD0064名無しさん@お腹いっぱい。
02/01/25 06:15ID:???>>58
そういう話になるともう数の問題になってしまうので、
誰かがばりばりCGIを書いて増やすしかない、ってことに
なってしまいそう。地道でよいので徐々に頑張っていく方向で。
>>59
ERbつかってます。良いですね。
>>60
埋め込む量とか程度の問題、と僕は考えてます。
他にはWARLUSとかは違う手法ですね。
ruby-listにでも紹介されてましたが、以下の2ch風(?)BBSで
使われています。
匿名掲示板(仮)
ttp://210.155.146.159/bbs/
>>63
ヘタレなCGIであれば書いてますが、何か?
0065名無しさん@お腹いっぱい。
02/01/26 03:25ID:???データ処理のロジックの部分は普通のスクリプトで書いて表示部分だけerubyで書くと、
処理と出力の分離もできて一石二鳥だと思う。
0066名無しさん@お腹いっぱい。
02/01/26 03:50ID:YLXIwbR+0067名無しさん@お腹いっぱい。
02/01/26 16:00ID:???たしかに重いんだけど、mod_rubyを使えば我慢できないこともない。
なんでrubyを使ったかというと、たんに新しいものが使いたかったって
だけだけど。
0068名無しさん@お腹いっぱい。
02/02/02 10:04ID:???それって、内部処理を埋め込みスクリプトからrequireしちゃうってこと?
0069名無しさん@お腹いっぱい。
02/02/02 11:01ID:5I8PZ1VP使ってるよ。>>68 のいうとおり、erubyスクリプトでは require した後は
ほとんど結果を繰り返し出力するくらいの小さいことしかしてない。
ただうまくいかないのは、結局 rhtml も html なので、
例えば何枚かhtml素片があって好きな部分を表示するには
ロジックを入れて選択するしかないんだよね。
つうわけで、rhtmlがcase when... だらけになったりしてしまい、
あまり美しくならない。結局動的に html 生成するなら、eruby に1発任せるんじゃなくて、
むしろ rhtml は唯のテンプレートと開き直り、
ERb 等で生成ロジックまで自分でコントロールするのが
正しいのかも。
例外拾うのも必須だけど(でないとエラーの時にソースコード丸見え…)
rhtmlにいちいち begin rescue end とか入れたくないよね?
みんなどうしてる?
0070名無しさん@お腹いっぱい。
02/02/04 16:47ID:C5lTY9nrhttp://210.155.146.159/bbs/s194/
0071名無しさん@お腹いっぱい。
02/02/06 08:52ID:???そこ見てコソーリ勉強中
0072名無しさん@お腹いっぱい。
02/02/12 10:15ID:iISjt4Rm更新されてたよ。でも、いつになったら出来ることやら(藁
http://210.155.146.159/news.html
0073nobodyさん
02/03/21 07:38ID:+PRed0xw0074nobodyさん
02/04/03 13:31ID:E16D60IvApacheでerbを使う時はhttpd.confに
どう設定すればいんでしょうか?
eRubyはこれで動くんですが・・・。
AddType application/x-httpd-eruby .rhtml
Action application/x-httpd-eruby /cgi-bin/eruby
0075nobodyさん
02/04/03 17:58ID:ToPFq2v00076あぼーん
NGNG0077nobodyさん
02/04/06 01:04ID:???ERbLightしか使ったことないけど、単にrequireするだけ。
irb(main):001:0> require "erb/erbl"
true
irb(main):002:0> p ERbLight.new("<%= 1 + 2 %>").result(binding)
"3"
nil
ってこういう意味じゃなかったらスマソ。
それとも、erbのほかのクラスとかはまた違うのかな。
0079nobodyさん
02/04/15 10:05ID:9IRZyByHリモートからサーバ上のCGIを動かそうとしたら
こんなエラーが出たんだけど、なにかhttpd.confに設定を
加えなきゃならないんでしょうか?
0080nobodyさん
02/04/15 22:59ID:???0081nobodyさん
02/04/15 23:56ID:???0082nobodyさん
02/04/26 03:58ID:XnUMsLyBhost "hoge.com"
sock = TCPSocket.open(host,80)
sock.print "GET / HTTP/1.0\r\n\r\n"
while line = sock.gets
if....
ここで"http://aaa.com/"など
HTMLソースの中にアドレスが入ってたりしたら
引っ張ってきたいです。
if文の書き方教えてください。
0083nobodyさん
02/04/29 23:23ID:???Rubyについて
http://pc.2ch.net/test/read.cgi/tech/1012096319/
rubyを語るスレッド
http://pc.2ch.net/test/read.cgi/unix/1018967064/
0084nobodyさん
02/05/04 13:13ID:uTJWVRnZ私は1です。
0085nobodyさん
02/05/13 02:54ID:rVFo8O8l俺もCGIモジュールのデフォルト(だっけか)1。
0086nobodyさん
02/05/21 11:54ID:KgEr4A1phttp://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-06472-7
0087narucy56 ◆wMOjCT4s
02/06/01 14:21ID:2HMrwkAKWEBrick
http://www.notwork.org/ipr/webrick/
Java でいうところの Tomcat みたいなもんで、Ruby で実装された Web Server。
100% Pure Ruby で、カスタマイズも Ruby スクリプトを書くだけで簡単にできる。
XML で設定だのはしなくてもいい。
複雑なシステムを作るときは、Apache だけじゃだめだね。
ちゃんとしたコンテナが作られていないと。柔軟性が確保できない。
0089nobodyさん
02/06/06 15:45ID:pZjuhwXZhttp://www.jin.gr.jp/~nahi/RWiki/?cmd=view;name=Tofu
0090nobodyさん
02/06/08 07:13ID:MAfvlHozRubyでWebアプリケーションは作りたいけど、
HTML作ってくれるだけでよくて、
Web serverまではして欲しくないんですが。
こういう使い方もできるのか?
0092narucy56 ◆wMOjCT4s
02/06/10 17:53ID:jfQB0Rffhttp://www.jin.gr.jp/~nahi/RWiki/index.cgi?cmd=view;name=Div
これぞ、究極の MVC を実現するものじゃないかと思った。
とにかく使ってみそ。
0093nobodyさん
02/06/16 08:59ID:sIr0rq50そう、フレームワークがほしいんです。
eRubyだけでちゃんとしたWebアプリケーション書くのはつらいよね。
HTMLとコード(ロジック)が混じっちゃう。
Warlusは開発体制大丈夫なのかなーと不安だし。
Div、読んでみたけど結構面白そう。やってみます。
でもWEBrick必須なんだよね。
0094nobodyさん
02/06/17 04:11ID:???禿同。箱入り娘は驚愕。なんでこんな発想が出来るのか。
これを見たあとだと、他のアプ鯖なんてオブジェクト指向でもなんでもない
単なるサブルーチン集に見えるね。
0095nobodyさん
02/07/06 01:29ID:???なんで以下の構文がエラーになるんだ?
<%
foo = "bar"
"#{foo}"
%>
undefined local variable or method `foo' for #<Object:0x4027bce0>
0096nobodyさん
02/07/06 17:19ID:???% irb
irb(main):001:0> require 'erb/erb'
true
irb(main):002:0> erb = ERb.new('<% foo="bar"; #{foo} %>')
#<ERb:0x80d7c18 @src=" foo=\"bar\"; #{foo} \n", @safe_level=nil>
irb(main):003:0> erb.run
"bar"
% cat erb.html
<%
foo = "bar"
"#{foo}"
%>
% ruby /usr/local/lib/ruby/site_ruby/1.6/erb/erb.rb erb.html
%
通りますが、何か? 他のところに問題があるとか。
009795
02/07/06 22:08ID:4tjyHIalわざわざ試してくれてありがとう。
同じようにテストしたら問題なかったけどこれだとエラーになる。
ruby -r 'erb/erb' -e 'p ERb.new(%(<% foo="bar"; "#{foo}" %>))'
こっちだと動く
ruby -r 'erb/erb' -e 'p ERb.new(%(<% foo="bar"; "#{Time.now}" %>))'
なんじゃこりゃもう。。。
一応環境を書いときます
% ruby -r 'erb/erb' -e 'p ERb.version'
"erb.rb [1.4.3 2002/03/28]"
% ruby -v
ruby 1.6.7 (2002-03-19) [i386-linux]
009995
02/07/06 22:40ID:???うっかり書き込むボタンを押してしまいました。ゴメソ。
% ruby -rerb/erb -e "p ERb.version"
"erb.rb [1.4.3 2002/03/28]"
% ruby -v
ruby 1.6.7 (2002-05-23) [i386-freebsd4]
OSはFreeBSD、rubyはportsからインストールしているので、
パッチが当たっていて日付が新しくなってます。
0100nobodyさん
02/07/07 00:36ID:xCJ1zwrA,,.-‐''""""'''ー-.、
,ィ" \ やったオレ様が100ゲットだ!
/ `、 ボケ共がオレ様にひれ伏せ!!
,illlllllllllll i
r'-=ニ;'_ー-、___,,.ィ‐‐-,,_ _| >>101遅いんだよ、チンカス
| r,i ~`'ー-l;l : : : `l-r'"メ、 >>102アホすぎる、言葉もない。
ヾ、 `ー‐'": i!_,l_ノ` >>103人間辞めろ。
| ,:(,..、 ;:|/ >>104なにやってんだよ、この包茎ちんちん
| ,,,..lllllll,/ >>105あらら、ご愁傷さま。死ね
/ `::;;. '"`ニ二ソ >>106うっさいハゲ。
/7 ゙゙:`-、;:;:;;;:;:;:;;/ >>107ビルから飛び降りて死ね。
,,.ィ"`:、 "/;:`ー-:、.._ >>108ネットワークすんなゴミが!。
‐'":;:;:;:;:;:;:;:\ . : :;: . ;/;:;:;:;:;:;:;:;:;:~`'''ー--:、,,_ >>109お前はクビを吊れ
0101nobodyさん
02/07/07 10:32ID:???0102名無しさん@カラアゲうまうま
02/07/17 18:59ID:???bindingの問題かな。
0103名無しさん@カラアゲうまうま
02/07/17 20:05ID:???だまされるとこだった(w
> ruby -r 'erb/erb' -e 'p ERb.new(%(<% foo="bar"; "#{foo}" %>))'
%(<% foo="bar"; "#{foo}" %>)を評価するときに#{foo}が展開されるからそりゃ当然エラーになるわな。
ruby -rerb/erb -e 'foo="hoge";p ERb.new(%(<% foo="bar"; "#{foo}" %>))'
を試してみりゃ意味が分かるだろ。
結論としちゃ#をエスケープか、%qにしる。
ruby -rerb/erb -e 'foo="hoge";p ERb.new(%(<% foo="bar"; "\#{foo}" %>))'
ruby -rerb/erb -e 'foo="hoge";p ERb.new(%q(<% foo="bar"; "#{foo}" %>))'
010497
02/07/17 23:43ID:???外側からいきなり展開されていたとはね。
いや、参りました(w
0105名無しさん
02/07/31 04:40ID:???0106nobodyさん
02/07/31 10:54ID:p4UQxNW6#!/usr/bin/env ruby
keyword_file = ARGV.shift
suffix_file = ARGV.shift
# 正規表現生成
re = /日本語のページから(.*)を検索しました。/
re2 = /(\d+)件中(\d+) - (\d+)件目/
re3 = /検索にかかった時間(\d\.\d\d)秒/
File.foreach(keyword_file) do |kw|
File.foreach(suffix_file) do |sf|
w3m = IO.popen("w3m -dump 'http://www.google.com/search?ie=euc-jp&oe=euc-jp&hl=ja&meta=lr=lang_ja&num=10&q=#{kw}+#{sf}'","r")
pat=/件中/
w3m.each_line do |line|
if pat =~ line
re.match(line)
key = $1
re2.match(line)
cnt,from,to = $1,$2,$3
re3.match(line)
second = $1
printf("%16s %10s => %5d件 %10s 秒 \n",kw.chop,sf.chop,cnt,second)
end
end
w3m.close
end
end
0107106
02/07/31 11:52ID:p4UQxNW6w3mでパイプしている奴を
Net::HTTPで高速化させたいですが、正規表現で
引っかかります。
require 'net/http'
host = 'www.google.co.jp'
path = '/search?num=10&lr=lang_ja&q=hoge'
http = Net::HTTP.new(host)
page=http.get(path)[1].delete("\n")
print page.scan(%r|ffffff><b>日本語.*秒</font>|i)[0].gsub(%r|<.*?>|,'')
scanの部分を間違っていますか?
なお、ほしい部分の周辺は
以下のようなHTMLです。
<b>日本語</b>のページから<b>hoge</b>を検索しました。 </font></td>
<td bgcolor=#3366cc align=right nowrap>
<font size=-1 color=#ffffff>約<b>37,500</b>件中<b>1</b> - <b>10</b>件目 ・検索にかかった時間<b>0.54</b>秒</font></td></tr></table>
0108106
02/07/31 11:55ID:p4UQxNW6------------------------------
<table width=100% border=0 cellpa dding=1 cellspacing=0 bgcolor=#3366cc><tr><td bgcolor=#3366cc nowrap><font size=-1 color=#ffffff>
<b>日本語</b>のページから<b>hoge</b>を検索しました。 </font></td>
<td bgcolor=#3366cc align=right nowrap>
<font size=-1 color=#ffffff>約<b>37,500</b>件中<b>1</b> - <b>10</b>件目 ・検索にかかった時間<b>0.54</b>秒</font></td></tr></table>
---------------------------
#!/usr/bin/env ruby
require 'net/http'
host = 'www.google.co.jp'
path = '/search?num=10&lr=lang_ja&q=hoge'
http = Net::HTTP.new(host)
page=http.get(path)[1].delete("\n")
print page.scan(%r|ffffff><b>日本語.*秒</font>|i)[0].gsub(%r|<.*?>|,'')
0109名無しさん
02/08/01 02:18ID:???----
$ ruby 106.rb
ffffff>日本語のページからhogeを検索しました。 約34,800件中1 - 10件目 ・検索にかかった時間0.07秒
----
後は切ったり張ったりすればいいんじゃないかなあ。
あ、もしかして日本語コードがおかしいってことない?$KCODE を設定すれ。
0110nobodyさん
02/08/02 15:12ID:???正規表現リテラルを使ってるから、#!/usr/bin/env ruby -Keとするか、eオプ
ションをつけてやるかしないといけないと思われ。
0111管王里人042
02/08/03 03:02ID:???とのマルチポストです。
速やかに回線を切って首を吊って下さい。
0112nobodyさん
02/08/04 22:52ID:KEtgQdUNerubyで現在処理しているファイル名を出力するのって、
どうやればいいんでしょうか?
対象のerubyファイルに<%print $0%>
と記述してもダメで、往生しております。
mod_ruby-0.9.7-0vl2、eruby-0.9.7-0vl1、ruby-1.6.7-0vl5
OSはVineLinuxっていう環境です。
0113nobodyさん
02/08/05 01:04ID:gkrXoXeMerubyを使うことによって
rubyのある機能が使えない
なんていうことはありますか?
0115自己レス
02/08/05 03:02ID:???<%print File.atime(Apache.request.filename.untaint)%>
faqに書いてあるっすね。。。
>>113
メーリングリストでたまに話題になるっす
0116nobodyさん
02/08/09 19:27ID:???IEからgetメソッドでurlをVMware内のアパッチに送り、Redhatのw3mにIEが表示中のページを開かせるスクリプトを書いてます。
アパッチ素人なので、cgiから別プロセスを起動させれません。で、cgiそのものにexecさせるてもこれまたエラーになります。
どこがおかしいのでしょうか?見てください。
% cat w3mclient.cgi
#!/usr/bin/ruby -w
DEFAULT_WINDOW = "w3m"
print "Content-type: text/html\r\n\r\n"
puts "<html><head><title>test.rb</title></head><body><pre><h2>REQUEST</h2>"
require "cgi-lib"
input = CGI.new
# テスト用
#url='http://localhost/'
url = input["url"]
print "#{url}が妥当ではない。<BR>" if url == ""
puts "OK!<BR>"
print "<html><body>inputdata = #{url}</body></html>"
string = "U#{url}^M"
#return 0
if string.empty?
$stderr.puts "must be one argument!"
exit 1
else
cmds = [ "select #{DEFAULT_WINDOW}", "stuff #{string}" ]
cmds << "other"
exec "screen", "-X", "eval", *cmds
end
0117116
02/08/09 19:32ID:???url='http://localhost/'
#url = input["url"]
として、コマンドラインからだとうまくいくのに.....
0118nobodyさん
02/08/16 15:19ID:???CGIだとsafeモードになっててexecできないとかじゃ?
url = input["url"].untaint
でどうよ。
0119nobodyさん
02/08/21 14:58ID:zHeqvt2WPstoreは一気にダンプできるけど、データがでかくなると遅いんでない??
他から読めないし。
csvは細かい制御ができるけどめんどいし。
オブジェクト指向の利点を生かすならならPstoreかなぁ。
0120nobodyさん
02/08/21 14:59ID:zHeqvt2W0121nobodyさん
02/08/21 17:53ID:???CGIでPStoreとcsvの速度的の差ってそんなに気になるかなあ?
50〜100個のオブジェクトから成る木構造をした
オブジェクトをPStoreで保存するスクリプトを書いたことがあるけど、
速度的な問題はあまりなかった。
csvは単純なデータ構造なら良いけど、
こういうものを保存しようとすると、かなり手間がかかるので、
csvが細かい制御に向くということには同意できない。
PStoreの問題は保存形式がバイナリで他から参照できないこと、
Marshalのバージョンによって互換性がなくなることの2点。
キャッシュに使う場合などにはPStoreは便利だが、
きちんと使いどころ決めないと、ひどい目に遭う。
0122nobodyさん
02/08/27 12:00ID:+xL6Nd0DGETメソッドでキーワードを渡すようなCGIを仲介させたいのですが、
可能でしょうか?
味の素のサイトのようなものをブラウザのgetメソッドから簡単に
呼び出したいのれす
0124nobodyさん
02/09/04 00:38ID:???これはどうよ?
0125nobodyさん
02/09/04 02:12ID:???バインディングファイルがちょっとうっとおしい気がする。
ドキュメントがないので、CGIライブラリとしてはnarf-cgiに負けそう。
http://narf-lib.sourceforge.net/doc/
CGIKitは国際化できるのがポイントかな。
0126nobodyさん
02/09/06 23:04ID:4WN6nHTUamritaのコンポーネント使えば
バインディングファイルはフォーム関連だけですむよ
http://kari.to/amrita/cgi-bin/Examples/Examples.cgi
0127nobodyさん
02/09/07 12:02ID:/XosvvbD0128nobodyさん
02/09/09 03:11ID:yJUi7eZXで画像や外部スタイルシートって使えてる人いますか?
DivでWebアプリーケーション開発してるんですけど、そろそろテキスト
だけじゃつらくなってきたので画像表示させたいんです。
上のページでは絶対URLで書くといいらしいと書いてあるんですが、自サバ
の画像は表示されません。(外部の鯖の画像を指定した場合は表示されます)
解決方法がありましたらご教授お願いします。
0129
02/09/09 03:16ID:OJG0XMU8助けてやって下さい
0130nobodyさん
02/09/12 10:56ID:7yXLjx7bそんな複雑なこと、可能でしょうか。
0133はげ夫
02/09/21 01:43ID:C/seqkZ5CGI.pretty(
cgi.html{
cgi.body{
cgi.form{
cgi.popup_menu("selLink",["#{value_array[0]}","#{key_array[0]}"],["#{value_array[1]}","#{key_array[1]}"],
["#{value_array[2]}","#{key_array[2]}"],["#{value_array[3]}","#{key_array[3]}"])
}
}
}
)
}
0134はげ夫
02/09/21 01:44ID:C/seqkZ5もっと綺麗に書きたいです。
cgi.popup_menu("selLink",["#{value_array[0]}","#{key_array[0]}"],["#{value_array[1]}","#{key_array[1]}"],
["#{value_array[2]}","#{key_array[2]}"],["#{value_array[3]}","#{key_array[3]}"])
のところをイテレーターで処理したいのですが、どのような
書き方がかのうでしょか.
なお、
while gets
chomp
value,key = split(/\s/)
value_array.push value
key_array.push key
end
てな感じで、arrayに格納してある値を使いたいです。
0135はげ夫
02/09/21 02:24ID:C/seqkZ5予め、文字列を作っておいて、それを使うようにするため
以下のようにしました。
でも
value_key=`mmm`
がうまくいきません。原因わかる方いらしたら、アドバイスお願いします。
def mmm
(1..9).each do |i|
print "[\"value_array[#{i}], key_array[#{i}]\"]"
print " , "
end
end
value_key=`mmm`
cgi.out{
CGI.pretty(
cgi.html{
cgi.body{
cgi.form{
cgi.popup_menu("selLink", "#{value_key}")
}
}
}
)
}
0136nobodyさん
02/09/21 11:34ID:???何をしたいのか微妙に分からないが、`mmm`というのはmmmという外部コマンドを実行展開だよ。
やるなら、こんな感じでうまく行くかな?
なお、"#{hoge}"はhoge.to_sと同等のハズ。
a = []
4.times do |i|
a.push([value_array[i].to_s, key_array[i].to_s])
end
cgi.popup_menu("selLink", *a)
0137はげ夫です。
02/09/21 16:31ID:C/seqkZ5神!!!!!
-----
求めていたことが出来ました。
--HageO
0138nobodyさん
02/09/23 18:32ID:es3jINy/に使われているCGIってどこでインストールできますか?
どこにあるのでしょうか?
0139nobodyさん
02/09/23 19:47ID:???rubyのマニュアルに使用しているCGIはRWiki。
もし、wikiとして使いたいだけならRWikiはお勧めしない。
自分でサーバーを持たない限り使用できる可能性がかなり低い。
RDでwikiが使いたいというのなら別だが、
そうでないならTikiを使うほうが良い。
もちろん別のwikiでも良いが。
RWiki http://www.ruby-lang.org/en/raa-list.rhtml?name=RWiki
Tiki http://todo.org/cgi-bin/jp/tiki.cgi?c=v&p=Tiki
0140138
02/09/25 11:59ID:XZD0oBt/refe String#scan
とするのとNetscapeやw3mで
http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=String#scan
とするのと同じマニュアルがよめますが、
refe String#scan の入力を再利用して、
wwwrefe String#scan とか打つと
w3mが起動するようにしたいのです。
ローカルに単なるHTMLとして落としても
これらのことってできるのですよね。
0141nobodyさん
02/09/25 12:47ID:???他にruby使えるFreeSpace知ってるかい?
0142eruby ア
02/09/26 06:22ID:C/mv8j8O<TITLE>hogehoge</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<script language=JScript defer>
function setvalue() {
str = clipboardData.getData("Text");
document.f.<%=query%> = str;
document.f.submit();
}
</script></head>
<body onload="setvalue();">
<% action_url=ARGV.shift %>
<form name=f method=post action="<%= action_url%>">
<% query=ARGV.shift %>
<% ARGV.each do | name, value| %>
<input type="HIDDEN" NAME=<%=name%> VALUE=<%=value%>>
<% end %>
<input type="text" name=<%=query %> style="visibility:hidden">
</form></body>
0143eruby ア
02/09/26 06:37ID:C/mv8j8Oコマンドラインから
% makeform.rb get www.google.co.jp/search q lr lang_ja
のように実行するか
/var/www/cgi-bin/eruby /var/www/html/makeform.rhtml post http://www.ajinomoto.com/A-Kitchen/cnavi/condition/index.asp \
txt_freeword hid_hyouji_ku 2 hid_log_menu_title_ku R
のように実行すると、クリップボードを検索キーとしたフォームを自動submit
してくれるHTMLファイルを大量に作りたくなったのですが、
うまく動きません。142 みたいなHTMLが簡単に作れればなというイメージです。
一体、erubyかcgiかどちらがいいのでしょか。
もう少し頑張ってみますが……。
0144nobodyさん
02/09/28 16:21ID:9nQPxW7p0145nobodyさん
02/10/01 21:36ID:WSHJwoNi現在cgi-bin下に置いて正常に動作してるrubyCGIのhoge2が
mod_rubyで動かそうとするとエラーになってしまいます
apacheのerrorlogでは
/usr/lib/hoge/hoge1.rb:9: uninitialized constant TOARU_DIR (NameError)
from /home/httpd/cgi-bin/hoge2:8:in `require'
from /home/httpd/cgi-bin/hoge2:8
from /usr/lib/ruby/1.6/apache/ruby-run.rb:70:in `load'
from /usr/lib/ruby/1.6/apache/ruby-run.rb:70:in `handler'
from ruby:0
という感じです
hoge2内でhoge1.rbをrequireした時が問題みたいですが
hoge2内で最初にTOARU_DIRは定義されてます
んでhoge1.rbではそのままTOARU_DIRを使ってるわけですが
mod_rubyではこの使い方では駄目なんでしょうか?
ruby 1.6.7
mod_ruby 0.9.8
です
0146nobodyさん
02/10/02 15:17ID:???mod_rubyは詳しく知らないけど、requireするものはライブラリとして完結していないとマズイと思う。
少なくとも呼ばれ方によって、エラーがでるような作りではマズイかと。
依存関係が相互だとややこしいから。(なるべく、一方から一方って言う作りの法がメンテがしやすいでしょ。)
mod_rubyではrequireはかなり特殊な動きをするみたいなのでその影響だと思う。
一度requireされると、Apacheを再起動するまでrequireされないとか、、、(時々されるらしいけど)
実際requireしているのはmod_ruby自体であって、requireが書かれているスクリプトではないのかな?
loadにしてみたら、うまくいくかもしれない。
それとも、グローバル変数を使うと動くかも知れない。
でも、作りを変えた方がいいでしょう。たぶん。
0147144
02/10/03 21:02ID:???どうもです
結局hoge1.rb内でもTOARU_DIRを書いたら
一応動作してるっぽくなりました
でもキャッシュが効いてるとかの関係で
前のデータが表示されたりして正常動作は無理みたいです
rubyをまだあまり勉強してないので
ライブラリの書き方ってのは良くわからない
というかw3mlっていうスクリプトなんですが
http://www.tmtm.org/ruby/w3ml/
中身見てもサッパリで
直すにも知識がない…
つーわけで
グローバル変数などについても調べてみます
ありがとうございました
0148nobodyさん
02/10/03 21:03ID:???145でした
0149るびきち
02/10/07 13:01ID:eeOopUgIやっほ〜☆るびきちだよ〜☆
http://enya-mp3.tripod.com
0151るびきち
02/10/07 13:34ID:???http://www.geocities.co.jp/MusicStar-Keyboard/4089/test/ruby3.jpg
0152nobodyさん
02/10/07 13:38ID:???rd, rtシリーズ使わせてもらってます。ありがとござます。
TeXへの変換もTodoに入ってましたが、どうなってますか。
0153るびきち
02/10/11 00:12ID:???0154るびきち
02/10/11 15:41ID:???彼にネット荒らしの前科があるのは一部では有名ですしね
http://www.geocities.co.jp/MusicStar-Keyboard/4089/omake.htm
0156るびきち
02/10/13 00:55ID:???0157るびきち
02/10/13 02:39ID:???0158るびきち
02/10/13 02:54ID:???掲示板巡回スクリプトを使ってる身には時計は死活問題なのです(^^;;
またかい るびきち 2001/01/10 [01時21分42秒]
時計遅れてるぞ!ってここの管理人に言ってもしょうがないんだよね(苦笑)
ちうことは るびきち 2001/01/02 [02時18分13秒]
日付が違うだけかな。
3日過去に戻ったってことだね、candyは(笑)
タイムスリップ(≧m≦)プッ♪
時計狂ってるぞ。 るびきち 2001/01/02 [02時15分45秒]
時計が狂ってます。現在 Fri Jan 5 02:15:33 JST 2001。
あれれ るびきち 2000/11/28 [08時32分41秒]
時計が「一日」ずれてません?
時計 るびきち 2000/11/21 [22時38分36秒]
candyの時計1時間ほど遅れてます!!!!!
下のカキコ消してください。
rubikitch 2000/11/21 [22時36分32秒]
candy、ホサ・D蕁授償エヨト・謄襦‡Ε法▲蓮◆◆▲漫▲院▲・・・eM#ス
0159るひきち
02/10/13 16:20ID:???追い出されたものだとばかり..............^^
0160るびきち
02/10/13 16:49ID:???Drb/Erbを作った咳さんの本「dRubyによる分散オブジェクトプログラミング」
買った。最後の一章はDivの説明で、CGI::sessionの使い方がのってて
面白かったよ。
0161るびきち
02/10/16 04:15ID:???0162nobodyさん
02/10/19 01:01ID:ETzV66Awhttp://amrita.s14.xrea.com/amrita-bbs/bbsmain.cgi?&template=board&board=amrita-bbs
テーマ切りかえという機能があって同じ掲示板の見ためがスラドになったりする
http://amrita.s14.xrea.com/amrita-bbs/bbsmain.cgi?&theme=slash_en&template=board&board=amrita-bbs
0163るびきち
02/10/27 03:30ID:???http://www.geocities.co.jp/MusicStar-Keyboard/4089/ruby.yuki.jpg
0164るびきち
02/10/27 06:22ID:???Ruby で weblog やるなら何がいいのかな?
0165nobodyさん
02/10/27 13:22ID:???tDiaryかblogatari。日本人なら素直にtDiaryが良いと思う。
tDiary http://www.tdiary.net/
blogatari http://www.jamesbritt.com/articles/blogatari.html
どうでも良いがるびきちは止めてくれ。
0166nobodyさん
02/10/28 01:15ID:???とかも参考にしてるんですが、
localでrubyマニュアル見るにはどの(CGIも含めて)システムが
いいでしょうか?
refe,riでことが足りてしまうかもしれませんが、
みなさんはマニュアル環境、どうやってますか?
0167名無しさん@xyzzy
02/10/28 07:27ID:???0168nobodyさん
02/10/28 09:17ID:ORWKLNV5, ' /V ヽ ヽ
! i iノノ)ノリ)〉 ! ♪ / ̄ ̄ ̄ ̄ ̄
|| |i ´Д`)!リ < るびきち〜
|| /´LX」\| \_____
||<__/<∧>i_/ヽ
|/ ス, || / \ \_
/ / / || | | V、⊂´
〔,ァ,》/j/ || | リ
く__ _||_!
! ̄| |
! |i
/ ! | (((()))
/`‐!-‐| ( ´Д`)キモイヨー!
/ /! | ( つ つ
〈 f《 ! f|L 人 ヽ
\_ノ |__) し(_)
0169nobodyさん
02/10/28 10:00ID:eeSwvoos| :::..ヽ
| |; | | | ,/|;; |ヽ__,yr''"~";、
| |; | | | / | ;| |人illl^lll|゙l!;
|ノ___ノ__,ノ__,ノノノ ノ___ノ__ノl| lll゙ ,;ll゙.,l|;;´
|-=・=- -=・=-'.::i ゙!iフア゙リリノ
|::... __ .::::::::i ゙゙^''''″
|::::.. / | ::i' るびきち大好き!
|::::::::... / | /
|:::::::::::.. ̄ ̄ ̄ ̄ ...:/
/ ̄ ̄ ̄ ̄ ヽ
| |
\_____ |
0170nobodyさん
02/10/28 10:05ID:???/\ /\ < ほれ食え
/ \ / \ |
/ \_/ \ \_______
/ \
/ ヽ___ ___
/ / ヽ__/ \ / ゙Y" \
| │ / / \
| 丶/ / \
\ / ̄ ̄ ̄ ̄) * ( ̄ ̄ ̄ ̄)
ヽ_____| ─< |\ >─ (
| ) / (|ミ;\ ( )
ヽ  ̄ ̄) /(___人|,iミ'=;\ (  ̄ ̄ )
/" ̄ ̄ ̄ ̄ / 《v厂リiy\  ̄ ̄ ̄ ̄\
/ / ゙|,/'' v:,,、.¨)z,_ \
0171るびきち
02/11/12 00:59ID:4RUh699Phttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/36312
恥さらしage
>>750
ガハハ、まだあのオッサンんな事やってんだ。
女子中学生とかのネット恋愛相談にノルのがこの人の趣味なのよ。
ネット上ですらも女の子に好きになって貰えないるびきちタンは
その女の子が好きな男のこのことで「相談に乗るよ」と持ちかけ
偽善行為に明け暮れてるのよ。
「この2人がダメになった時俺が横から頂く。さらば彼女いない暦25年!」
けど最期は、相談持ちかけてくれた女の子にまで「偽善者ウザい」「エロ爺」とか言われるというオチ
0172名無しさん@Emacs
02/12/17 08:48ID:M9UVeCJF2ch の AA は Shift_JIS(MS932?)じゃないと時々化ける文字とか
あるんだけど、Perl で Shift_JIS 使うのはしんどい。正規表現とか。
だから Ruby やろうと思った。
というわけ。
0173名無しさん@Emacs
02/12/17 10:13ID:???間違ってしまいました
0174木田
02/12/18 00:11ID:???http://www.diohosting.com/jp
0175nobodyさん
02/12/18 01:51ID:???それともマルチ?
0176nobodyさん
03/01/06 19:04ID:abYGXX0Gサーバーが Ruby には対応していないと言っているところで、
スペースに十分な余裕がある場合、
自分で Ruby を入れて CGI 用に使うことができるでしょうか?
もしできるとしたら、その方法は?
私は Windows を使っています。
0177nobodyさん
03/01/06 19:49ID:kYnbuqVv多分そうでないので無理
0178nobodyさん
03/01/06 20:06ID:???鯖側でコンパイラが開放されていれば、たぶん可能。
開放されていなくても、無理矢理バイナリパッケージを置けば出来るかも知れないが、
色んな所で無理が来ると思う。
というより、そんな糞鯖止めて、Ruby対応している鯖に乗り換えた方が早いかも。
Rubyが使えるスペース
http://www.jin.gr.jp/~nahi/Ruby/anywhere.html
でも、プロバイダのだったら乗り換えは無理か…。
0179176
03/01/07 01:30ID:???やっぱ、無理っぽいですね。
レスありがとうございました。
0180nobodyさん
03/01/08 16:37ID:???なんでみんなPerlやPHPばっかり使おうとしてんの?
もう呆れるわ。どうにかしてくれ。
0181nobodyさん
03/01/08 18:57ID:???順番が変わることはありうる?
0182nobodyさん
03/01/08 18:58ID:???& space
0183nobodyさん
03/01/08 19:16ID:???まだまだマイナーって事が原因だと思う。
少しずつ広めるしかないかと。
>>181
ない。必ずインデックス順。
でも、Hash#eachは順不定。
0184nobodyさん
03/01/08 19:32ID:7OFYGy2+よくわからんけど、
OOでCGI書いてもインスタンスが1セッションで死んじゃうと思うんだけどどうなん?
せっかく生成しても全然使わないプロパティーとかメソッドがあったりしないの?
0185nobodyさん
03/01/08 20:56ID:???0190nobodyさん
03/01/09 09:11ID:???0192nobodyさん
03/01/09 19:00ID:lEC2F1+pRubyが入っている鯖を使っているのですが、amritaは入ってないようです。
それで、cgiディレクトリの下にamritaディレクトリを作って、
ファイルをコピーしました。
ですが、cgiディレクトリ中の、tako.cgiで
require './amrita/template'をすると、
Script Error が出てしまいます。
template.rbを見てみると、この中でも、
require 'amrita/node.rb' などしているので、
これが原因だろうと思っています。
こういう場合、どういう設定をするとうまく行くのでしょうか?
tako.cgiに $: << File.expand_path(".")を付け加える、
amritaディレクトリのスクリプトのamrita/を取り除く、
などしてみましたが駄目でした。
cgi/tako.cgi
require './amrita/template'
cgi/amrita/template.rb
require 'amrita/node.rb'
....
0194nobodyさん
03/01/10 01:22ID:???amritaディレクトリが入っているディレクトリへの
絶対パスを$:に入れるのが一番いいかと。
/virtual/pokemon/lib/ruby/amrita
とあるとすれば、こんな感じ。
$: << "/virtual/pokemon/lib/ruby"
require "amrita/template"
相対パスでもいいけど、
カレントディレクトリがどこであるかに注意しなくちゃいけない。
たぶん、これでうまく逝くと思うけど…。
0195192
03/01/10 06:19ID:???amritaはstrscan.rbが必要で、strscan.rbはrscan.rbが必要だ、
というところではまっていました。
0196nobodyさん
03/01/14 19:06ID:???0197山崎渉
03/01/15 13:35ID:???0198nobodyさん
03/01/16 14:32ID:???RuBBSはどうですか。
ttp://www.spc.gr.jp/bbs/RuBBS.html
すごく楽に入れられました。
0199nobodyさん
03/01/23 19:20ID:vbxMrxnNeucでかかれている文字を、jisに変換するには
どうすればできるのでしょうか?
0200nobodyさん
03/01/24 05:17ID:???http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=NKF
0201nobodyさん
03/01/28 17:39ID:zukHx9730203nobodyさん?
03/02/07 16:01ID:???0204nobodyさん
03/02/07 17:59ID:???0205nobodyさん
03/02/07 19:11ID:???特殊文字って何よ、特殊文字って?
@みたいにマックでは読めない機種依存文字のこと?
それだとShift_JIS自体の問題になると思うんだけど…。
(ただのhtmlでも問題起きるわけだし…)
0206nobodyさん
03/02/07 20:28ID:???0207nobodyさん
03/02/14 11:45ID:S51j/Le3amritaについてきたサンプルを実行してみたのですが、
どういう時に使うと嬉しいのかが、いまいちぴんと来ません。
こう使うと便利だっ、という例ありますか。
0208nobodyさん
03/02/17 03:23ID:???フォームから送られたデータを勝手に処理してくれるのは楽。
まだぽこぽこバグがあるみたいだけど。
ただ、フレームワークだから慣れるのに時間がかかると思う。
コンポーネント指向のWebアプリ開発も同じく。
cgi.rbやeRubyに特に不満がなければ無理に使うこともないかと。
0209207
03/02/17 05:27ID:???レスどうも。
どうやら、今の私には必要ないようです。
0210nobodyさん
03/02/22 02:08ID:???Perl,PHP→Ruby移植をやってほすぃ。
0211nobodyさん
03/02/23 01:26ID:???ショボイのしか作れなくて悪かったね!
つか、言語自体のスタイルが違うから移植するより、
新しく構築した方が早いし、メンテが楽。
0213nobodyさん
03/02/28 14:15ID:Zmsc8h96なんかidがそのままHTMLに出力されてしまう。
どんな原因が考えられる?
0214nobodyさん
03/03/06 22:18ID:???FLASHの画像サイズを取得できなくて困っています。
rubyで扱える方法ってあります?
0215nobodyさん
03/03/07 03:08ID:???http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/freemovie/freemovie/
0216nobodyさん
03/03/08 01:07ID:???perlかPHPを読むしかないか...
0217nobodyさん
03/03/11 11:05ID:1APakuZe下記のように書いても、シグナルを捕らえられないようです。
mod_rubyではSIGPIPEは発生しないのでしょうか?
それともなにか勘違いしてますか?
#! /usr/bin/ruby
require "cgi"
trap("PIPE") {STDERR.puts 'PIPE'}
print_http_header #httpのヘッダーを吐くルーチン
#10秒かけてデータを出力
for i in 0...100
print i,"<br>\n"
sleep(0.1)
end
0218217
03/03/11 14:11ID:???中断してもシグナルは飛んでこないようです。
0219nobodyさん
03/03/13 14:09ID:ZqR/jItiだれか使いませんか?
ttp://xx.homelinux.net/~ruby/flexbbs/
0220山崎渉
03/03/13 16:55ID:???0221nobodyさん
03/03/13 22:00ID:???mod_ruby環境下だと$stdoutがIOじゃなくApache::Requestに
なるのでprintしてもSIGPIPEは発生しません。
$stdout.connection.aborted?でクライアントが接続しているか調べられる。
if $stdout.connection.aborted?
STDERR.puts "aborted"
end
0222nobodyさん
03/03/15 09:09ID:77D9QknZ0223nobodyさん
03/03/15 09:10ID:???ここの1の動画にゾクゾクきた。
0224217
03/03/15 14:43ID:???> なるのでprintしてもSIGPIPEは発生しません。
そうですか。
クライアントが読み込みを中断して、処理が中断すると
まずいので、mod_rubyの仕様はむしろ都合がよいです。
> $stdout.connection.aborted?でクライアントが接続しているか調べられる。
勉強になります。
0225nobodyさん
03/03/18 11:02ID:s+XgHl7g0226nobodyさん
03/03/18 14:10ID:???0227nobodyさん
03/03/19 13:18ID:???同じことをするなら CPU usage は Perl よりちょい多いかなくらいだよ。
むしろ PHP はかなり CPU を食う。
http://www.bagley.org/~doug/shootout/craps.shtml
ただ、OOP ゆえにライブラリ使いまくりで重くなっている可能性はあるね。
0228nobodyさん
03/03/19 15:00ID:???全く工夫せずにそのままラップしてあるのも潔よい
0229nobodyさん
03/03/20 05:03ID:???一度requireしたらリセットできないなど、
レンタル鯖では使い辛いような気がしますが、
気のせい?
0230nobodyさん
03/03/20 05:22ID:???ならmod_rubyを使わなければ良いのでは
寿命が長いから顧客向けじゃないと思う
0232nobodyさん
03/03/21 17:51ID:???0233nobodyさん
03/04/11 04:13ID:EmBndhA4http://www.daifukuya.com/photoxp/
0234nobodyさん
03/04/11 09:37ID:???普通のプログラマには嬉しい言語なのにな。悲しい現実だよ。
0235nobodyさん
03/04/11 16:40ID:???普通のプログラマが嬉しければ流行る。
なぜなら厨プログラマは上層の反応に素直に反応するから。
という事はRubyに何か痛い点がある。それはね・・・。 つづく。
0236nobodyさん
03/04/13 21:21ID:???痛い点って???すげぇ気になる&age
0237山崎渉
03/04/17 12:03ID:???0238山崎渉
03/04/20 06:26ID:???( ^^ )< ぬるぽ(^^)
0240nobodyさん
03/05/03 10:48ID:???http://21c.ath.cx/program/ruby/cgi/bbs/flexbbs/
0241nobodyさん
03/05/04 07:47ID:c2Xx7eHEテンプレートコンパイラ機能を使いたいです。
0242nobodyさん
03/05/04 13:08ID:???ファイル名を空にして送信したときに
Tempファイルが残ったままになることが、たまにあるんだがどうして?
0243nobodyさん
03/05/06 15:00ID:???0245nobodyさん
03/05/07 09:22ID:???Warning がいくつか出たけど、とりあえずコンパイルできました。
0246nobodyさん
03/05/07 10:26ID:QZ929xpM0247nobodyさん
03/05/08 21:06ID:???テーマ機能つかって、css で制御するんじゃない?
0248nobodyさん
03/05/09 15:05ID:???ってな感じに、部分的にフォントを変えたいのだけど、
タグを使えるような抜け道が用意されているのかなと思って。
0250山崎渉
03/05/22 02:04ID:???0251山崎渉
03/05/28 17:18ID:???ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0252るびきち
03/06/11 04:39ID:???ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ rubikitch
0253nobodyさん
03/06/17 10:18ID:CDKrfOSa0254nobodyさん
03/06/17 11:43ID:???http://www.pragmaticprogrammer.com/ruby/index.html
0255あぼーん
NGNG0256nobodyさん
03/06/19 21:56ID:c0HjpDNQどちらも行うスクリプトを書く時、
どのライブラリをrequireしてどのメソッドを使うのが効率がいいですか?
0258nobodyさん
03/06/20 20:09ID:???足りないノウハウ等がありましたら、どうかご教授ください。
以下にコードを挙げます。
ちなみに、複数選択可能なselectは考慮してませんし、使う気がございません。
0259258
03/06/20 20:12ID:???FNAME = {}
CONTENT_TYPE = {}
def CGITool.getForm()
if ENV['CONTENT_TYPE'] =~ /^multipart/
return getFormMultipart()
end
data = ""
if(ENV['REQUEST_METHOD'] == 'POST')
data = $stdin.read(ENV['CONTENT_LENGTH'].to_i)
else
data = ENV['QUERY_STRING']
end
form = {}
if(data != nil)
data.split(/&/).each{|pair|
key, value = pair.split(/=/, 2)
key = unescape(key)
value = unescape(value)
if(form.include?(key))
form[key] += " " + value
else
form[key] = value
end
}
end
form
end
0260258
03/06/20 20:12ID:???s.tr('+', ' ').gsub(/((?:%[0-9a-fA-F]{2})+)/n) do
fconv([$1.delete('%')].pack('H*'))
end
end
def CGITool.fconv(s)
s
end
def CGITool.getFormMultipart(data = getMultipartData())
data =~ /^\-+(\w+)\r?\n/
word = $1
array = data.split(/\r?\n?\-+#{word}\-*\r?\n/); array.shift
form = {}
array.each do |c|
c.sub!(/^Content-Disposition: form-data; name="(.*?)"(?:; filename="(.*)")?\r?\n/, '')
key = $1; filename = $2
if filename
FNAME[key] = filename.sub(/^.*[\\\/\:](?:.*)[\\\/\:]/, '')
end
cLength = c.length; c.sub!(/^\r?\n?/, '')
if cLength != c.length
form[key] = fconv(c)
else
c.sub!(/^Content-Type: (.*)\r?\n\r?\n/, '')
CONTENT_TYPE[key] = $1
form[key] = c
end
end
form
end
0261258
03/06/20 20:12ID:???$stdin.binmode
$stdin.read(ENV['CONTENT_LENGTH'].to_i)
end
end
0262あぼーん
NGNG0263本7 ◆uPD9aFm9hI
03/06/21 02:13ID:???0265258
03/06/21 23:32ID:???それはさておき、
危惧していることは、
1.windows9xでgetMultipartData()の内容は問題ないのであろうか?また問題あるのであれば、どうすべきか?
2.getFormMultipart()のarray.eachの内容で想定していないデータが来るケースがあるであろうか?
です。大丈夫でしょうか‥?
0266nobodyさん
03/06/25 00:21ID:xZOuwnMzperlスクリプトの区別を付けるため、rubyのスクリプトは.rbとしているのですが、アパッチのほうは
AddHandler cgi-script .rb
こうやっています。なにかまずいことはありますでしょうか?
あと、rubyのモジュールとはいったいどういうものなのでしょうか?
0267nobodyさん
03/06/25 08:55ID:???class C
def to_s
"[an instance of class C in module M]"
end
end
end
p M::C.new
include M
p C.new
0268nobodyさん
03/06/28 17:06ID:???Apacheはそれで良いと思う。
モジュールとは端的に言うとインスタンスが作れないクラス。
Rubyは単一継承だからクラスは一つのスーパークラスしか持てないが、
モジュールであれば複数取り入れることが出来る。
class C0
#...
end
module M0
#...
end
module M1
#...
end
class C1 < C0 # スーパークラスは一つのみ
include M0
include M1 # モジュールはいくつでも取り込める
#...
end
これでC1はC0、M0、M1で定義されたメソッドを継承することになる。
また、モジュールの中でクラスや他のモジュールを入れ子にすることで
名前空間を作るのにも使用する。
267はその例。
0269265
03/06/28 17:58ID:t6ndrw6Wなるほど、、まぁ、はじめたばっかりの私にとってはクラスとかあんまりあからないので、大丈夫かなぁ・・・
ありがとうございました。
0270nobodyさん
03/06/28 17:59ID:t6ndrw6W0271nobodyさん
03/07/08 12:15ID:cQ+4nOpScgi.rbを使ってあぷろだを作っているのですが、マルチパートの扱いがよく分かりません。
FORMのENCTYPEがmultipart/formdataのとき
values = cgi['field_name'] # <== field_nameの配列
values[0].read # <== values[0]の本文
values[0].local_path # <== values[0]のローカルファイルのパス
values[0].original_filename # <== values[0]の元の名前
values[0].content_type # <== values[0]のcontent_type
でアップロードしたファイルのデータが取得できるのでしょうか?
0272nobodyさん
03/07/14 19:21ID:???0273山崎 渉
03/07/15 11:06ID:???__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0274nobodyさん
03/07/20 18:39ID:MTCslCJPservlet+JSPより好きなので、age。
0275nobodyさん
03/07/21 05:15ID:???0276nobodyさん
03/07/21 14:33ID:???今回の流れで色々と複雑な事情があるのだなあと知りました。
陰ながら応援sage。
0277nobodyさん
03/07/21 23:32ID:???<% か <%= のどっちかだけ。
0278nobodyさん
03/07/26 01:58ID:aoovL48qRubyに標準で添付されているCGI.rbというライブラリでは、
タグを生成するときの大文字は変更できないんでしょうか?
最近ではxmlの関係もあって小文字で出力したいと思うんですが・・・
例)大文字 → <HTML><H1>
小文字 → <html><h1>
0279nobodyさん
03/07/26 02:32ID:???RubyでPerlでいう↓のやつできませんか?
print << 'EOS';
<html>
<body>パパの特盛</body>
</html>
EOS
>>278
タグの内部だけ?相当むずかしいんじゃないの?
タグ内のデータとかは大文字のままじゃないといけないんでしょ?
例:<INPUT NAME=OOMOJI> ⇒ <input name=OOMOJI>
たぶん、それはないと思う。変換機能がついたHTMLエディタとかどぞ
0280nobodyさん
03/07/26 03:02ID:???cgi.rb のかわりにこれの出力を require してみたらどうなる?
print(File.read($:.map{|i|i+"/cgi.rb"}.find{|i|File.readable?(i)}).gsub(/element\.upcase/,"element.downcase"))
>>279
×print << 'EOS';
○print <<'EOS';
0282278
03/07/27 00:09ID:zQkWZE8hご教示ありがとうございました。
結局、cgi.rbの中身を解析し、何箇所か修正を加えることで、
目的を達成することができたみたいです。
0283278
03/07/27 00:15ID:zQkWZE8h>>280さんの方法では、私の環境ではエラーになってしまいました。
0284nobodyさん
03/07/27 01:41ID:???0286nobodyさん
03/07/27 04:47ID:???0287279
03/07/27 17:47ID:???print "pl rb pl rb".gsub( /(pl|rb)/, ($1=='pl') ? 'Perl': 'Ruby')
これだと ($1=='pl') がかならず false になってしまい、
Ruby Ruby Ruby Ruby になってしまいます
なにゆえでしょう?
0289279
03/07/27 18:32ID:???勇者にロトと名づける裏技、見つかりました
print "pl rb pl rb".gsub(/pl|rb/) {|m|
m = (m=='pl')? 'Perl' : 'Ruby'
}
これでやったらできました。 |m| あたりが良くわからんけど。
ruby-lang.orgのgsubのリファレンスマニュアルみたらすぐ見つかりました。すみません
rubyの後方参照($1とか\1とか)はあんま柔軟なことできないみたいですね
ありがとうございました
0292nobodyさん
03/07/28 00:51ID:???puts "pl rb pl rb".gsub(/(pl|rb)/) { ($1 == 'pl') ? 'Perl' : 'Ruby' }
0293nobodyさん
03/07/28 01:38ID:???pattern = Regexp.compile(table.keys.join('|'))
puts("pl rb pl rb".gsub(pattern){table[$&]})
0294279
03/07/28 02:04ID:???そっちの方がカコイイ!!ありがとう
>>293
最適化されてしまった...
table.keys.join('|')って汎用的でおもしろいアイデアですね。ワラタ
おもしろいなRuby
0295nobodyさん
03/07/28 22:58ID:???キーが正規表現含むとおかしくなるから
quoteしたほうがいい
pattern = Regexp.compile(table.keys.collect {|key| Regexp.quote(key) }.join('|'))
0296279
03/07/29 00:45ID:???いやぁ、やりたかったことはRubyでPHPみたいなファイルを実行するものなんですけどね。
↓こんな感じ。検索でヒットするパターンが多いからちょっと連想配列は使えないかも。
んで昨日、ERBというライブラリがあることを知ってこれは無駄になりました(´・ω・`)ショボーン
class EzRubyServerPage < Object
@@boundary = '__BOUNDARY_EZ_RHP__'
def eval( arg = "" )
Kernel::eval "$_ = <<"+@@boundary+";\n" + arg.gsub( Regexp.compile('[<%][%>]=?') ){
($&=='<%' ) ? "\n"+@@boundary+"\nchop;print;":
($&=='<%=') ? "\n"+@@boundary+"\nchop;print;print ":
($&=='%>' ) ? "\n$_ = <<"+@@boundary+";\n":
$&
} + "\n"+@@boundary+"\nchop;print;"
end
end
$tokumori = "パパの特盛"
EzRubyServerPage.new.eval("<html><body>ようこそ <%=$tokumori%>へ</body></html>\n")
0297279
03/07/29 00:53ID:???検索速度がorでつなげるより速そうだから [<%][%>]=? なんてしてるんですが
よく考えたらパターンは <%、%>、<%=、%>=、>%、%<、>%=、%<= の8通りだけだから連想配列の方が良いか
まあいいや、ERBとかいうのを使おう...。スレ汚しすんまそん。ハァ
0298nobodyさん
03/07/29 00:57ID:???0300nobodyさん
03/07/29 23:02ID:SXyppRH6利用しなくなったセッションファイルを自動で消去することは
できないんでしょうか?
ある本をよんだら、CGI::Session.sweep()を使うと書いてあった
のですが、エラーが出て使えません。
0301nobodyさん
03/07/30 03:09ID:???> ある本をよんだら、CGI::Session.sweep()を使うと書いてあった
sweepの定義はその本に書いあるのだと思われ。
利用しなくなったかどうかの判断基準は利用者によって異なる。
だから、一般的な方法は存在しない。
0302nobodyさん
03/07/30 04:42ID:???0303nobodyさん
03/08/05 00:21ID:???るびきち著『Rubyシェルプログラミング−irb&irbsh徹底活用−』8月4日発売です
http://www.gihyo.co.jp/books/syoseki.php/4-7741-1798-6
基本的にこの人は他人との意思疎通が不可能な引き篭り星人な為、
何を言っているのか、何を伝えたいのかが全く見えません。故に専門書としては全く使えません
ではこの本のウリは何か?それは「他人をムカつかせるにはどうすればいいのか?」という厨房必修のスキル養成本としての価値に
他ならないでしょう。礼儀をわきまえない砕けすぎた態度から始まり、徐々に高圧的な態度へ、最後は相手を全否定し卑下し、自分が
相手に比べ、如何に優れた人間であるかを延々と語り続けるその試合運びに、各地厨房サイトから歓声が上がっております
なんとあの、2ちゃんねるネトヲチ板の皆様からも「掲示板のレスが反感を買うための例文集のようだ」とのお墨付きを得ております
そして「絶対零度つまらなギャグ集」としての機能も持ち合わせております。
なぜ、ウケ狙いの小ネタが、そこまでつまらないのか?スベろうと努力したってそこまでつまらない発言できるものではありません
正に天が与え給った才能だNe!! 合コンで思いっきりスベッて周りからジト目で見られてみたいソコのあなた!必読です。
参考文献 Rubyを256倍使うための本 魔道編
0304nobodyさん
03/08/06 19:53ID:???0305山崎 渉
03/08/15 22:44ID:???│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0306nobodyさん
03/08/23 03:43ID:???できません。
MLをみたら $DEBUG = true
にするとありますが、そうしても変化がありません。。。
どうすればいいんですか?
0307nobodyさん
03/08/23 19:08ID:???eruby 自体が起動されてないんじゃないの?
サーバーの設定を確認した方がいいような。
サーバーのエラーログが見れるのならそこを見るべし。
0308nobodyさん
03/08/23 21:49ID:Ba5Hz+Nk面倒くさいだけなんです。
作っている時だけブラウザにエラーを表示してくれると助かるんですが。
eruby + mod_ruby で使ってます。
手元に環境がないんでversionがわかんないんですが、どちらも最新のものだと思います。
0309nobodyさん
03/08/23 22:32ID:???コマンドラインで実行してみれ。
0310nobodyさん
03/08/24 00:59ID:???ruby の parse error は apacheのログには表示されますので、
それをブラウザに表示できる設定がないかなと思ったんです。
stderrはerubyでは拾えないということですか?
0311nobodyさん
03/08/24 02:40ID:???0312nobodyさん
03/08/24 05:41ID:???なんでブラウザで見たいのかがさっぱり分からん
0313nobodyさん
03/08/24 06:34ID:3TVF6TbnCGIの引数渡すのがめんどくさいんだろ
0314312
03/08/24 10:00ID:???めんどくさいていうか、わかんないんです。
コマンドラインでPOSTデータやcookieデータを渡す方法が。
0315あぼーん
NGNG0316nobodyさん
03/08/24 20:16ID:???0317312
03/08/25 00:38ID:???例外が発生しても Internal server errorになるわけで。
できないんなら、できないでいいんだけど。
煽られるのって楽しいね。
0318nobodyさん
03/08/25 01:25ID:???つーか、311=312なの??
0319nobodyさん
03/08/25 09:27ID:???実行時の例外は $DEBUG=true しとけばブラウザで確認できるはずだから
インタプリタがコンパイルできるかどうかだけはコマンドラインでeruby実行して
調べれっていわれてるんでしょ。
0320nobodyさん
03/08/25 14:17ID:IWdWlewI0321nobodyさん
03/08/25 15:13ID:???0322nobodyさん
03/08/25 18:59ID:???ソース丸見えになるのでデフォルトでこれは勘弁と思ったものだ。
0323nobodyさん
03/08/26 01:50ID:???mod_ruby を外したらブラウザに表示できました。
mod_ruby + eruby だと表示できないようです。
--
mod_ruby 1.0.5
ruby 1.6.8 (2003-03-26)
eRuby version 1.0.3
0324nobodyさん
03/08/26 11:26ID:???なるほど、と思ってソースのあたりをいろいろ探して見た
httpd.conf で
RubyRequire apache/eruby-run -> RubyRequire apache/eruby-debug
RubyHandler Apache::ERubyRun.instance -> RubyHandler Apache::ERubyDebug.instance
に変更したらparse error もブラウザに出た
しかし、HTTPサーバごとデバッグ環境にしなけりゃならんのだなあ・・・
0325nobodyさん
03/08/26 22:36ID:???http://raa.ruby-lang.org/list.rhtml?name=html-template2
他の環境(オブジェクト、DB)を変更する副作用が一切ないから
思う存分プレゼンテーションロジックのデバッグが出来る
ビジネスロジックはTest::Unitできちんとテスト書きましょう
0326nobodyさん
03/08/31 13:41ID:???0328nobodyさん
03/09/02 06:02ID:jo93f+PB0329nobodyさん
03/09/03 02:26ID:???0330nobodyさん
03/09/03 02:41ID:6XWfASQRhtml-template.rdだけじゃ、複雑なことしたいときどーすりゃいいか分からん
0331nobodyさん
03/09/03 22:54ID:???ENV[]から代入した文字列は変更不可だった
とりあえずひっかかったのはいまのとここれだけ
0332nobodyさん
03/09/04 02:16ID:???変数にアサインしてもStringオブジェクト自体はかわらんからね。
dup すれ。
0333nobodyさん
03/09/04 10:48ID:???Rubyの使用が最も少ないサーバ(ほとんどphpとPerl)を選んで
入れたのに、いきなり出たんでちょっと別のサーバに持ってくのは
慎重にならざるをえないな・・
0334nobodyさん
03/09/07 18:35ID:90cSPk+Wが、サーバから動かない時って、どんな可能性があるでしょうか?
INTERNAL_SERVER_ERRORになってしまいます。
以下のことは確認しました。何か理由思いつかないでしょうか?
実行可能になっています。
そのディレクトリにwwwがファイルを作れるようになってます。
Apacheの設定でCGIを使えるようにしています。
#!/usr/local/bin/rubyを文頭に書いてます。
print "Content-type: text/html"はあります。
0335nobodyさん
03/09/07 18:46ID:???apacheのエラーログには何か出てない?
suEXEC関連のエラーなら、そっちのログも(ディレクトリがグループ書き込みできると実行できない)
0336334
03/09/07 19:18ID:90cSPk+Wやっと、できました!!
あーよかった。もうちょっとで一日が無駄になるところでした(^^;)
Apacheのログみてたら、book1~ に対してPermission deniedとか書いてあったので、
book1~を削除したら、動いてくれました。
PStoreの保存するファイルの名前がbook1で、コマンドラインから実行していた時に
book1やbook1~が作られていました。
book1の方は消していたのですが、book1~は気にせず残したままでした。
ありがとうございました。これからは、CGIが動かない時、Apacheのログもよむことにします。
ちなみに、他にでてたエラーのキーワードは、こんな感じです。
同じようなエラーが出た時に検索にかかるように、載せておきます。
Premature end of script headers: wook.cgi, referer: http://localhost/cgi-bin/***.html
/usr/local/lib/ruby/1.8/ftools.rb:23:in `initialize': Permission denied - ./book1~ (Errno::EACCES), referer: http://localhost/cgi-bin/***.html
/usr/local/lib/ruby/1.8/ftools.rb:23:in `open', referer: http://localhost/cgi-bin/***.html
from /usr/local/lib/ru
by/1.8/ftools.rb:23:in `syscopy', referer: http://localhost/cgi-bin/***.html
from /usr/local/lib/ruby/1.8/ftools.rb:43:in `copy', referer: http://localhost/cgi-bin/***.html
などでした。
ホントありがとうございました!
0337nobodyさん
03/09/08 00:50ID:???URLエンコードってどうすればよいんでしょ‥?
0339337
03/09/08 01:57ID:???どうやら、IEが返してくるENV['HTTP_COOKIE']の値が想定していたのと違うみたい
writeから始まって、値のみがカンマ区切りで入っているデータが返ってくるようで
キーはどこいったの??って感じです
値を変えてみてしてみたのですが、返ってくるENV['HTTP_COOKIE']の値が変わらず‥
path指定を消して、再度値を変えてみてしてみたのですが、変わらず‥
以下のメソッドの結果をそのままプリントしているのですが、なにかまずいでしょうか?
def mkCookie(recipe, expiryDate = 30, path = nil)
t = (Time.new.to_i + (expiryDate * 86400)).to_i
t = Time.at(t).gmtime.strftime("%a, %d-%b-%Y %H:%M:%S GMT")
text = ''
recipe.each do |key, value|
text << "Set-Cookie: #{escape(key)}=#{escape(value)}; expires=#{t};" + (path ? " path=#{path};" : '') + "\n"
end
text
end
ひょっとして、クッキー使用前に使ってた
IE Powertoys Plus!のどこでもクッキーが???
0340337
03/09/08 08:54ID:???関係のあるCookieを全て削除したらどうやらスクリプト側で受け取るものは正常になっていました
Cookieのファイルを見た感じの違いはキー・値のペアの区切りが改行になっているか「*」になっているかの違いでした
どうしてそうなったのか、Cookieはなぜ上書きされなかったのかは不明‥
0341nobodyさん
03/09/08 10:36ID:???具体的になにがしたいんだ?
HTML::Templateでは、テンプレート側では複雑なことはできない。
複雑なこと(例えば複雑な条件式など)は、ぜんぶメインプログラム側で行う。
0342nobodyさん
03/09/09 01:02ID:64dJm4LW使われてないとエラーになんの?
0344nobodyさん
03/09/09 10:23ID:64dJm4LWtempl = HTML::Template.new('hogehoge.html');
templ.param({'test'=>true});
array = [{'host'=>'book.2ch.net','board'=>'bizplus'},
{'host'=>'news5.2ch.net','board'=>'newsplus'},
{'host'=>'news4.2ch.net','board'=>'news'}];
templ.param({'array'=>array});
print(templ.output);
------------------
----hogehoge.html----
<!begin:test>
<!begin:array>
HOST:<!var:host>
BOARD:<!var:board>
<!end:array>
<!end:test>
---------------------
----error message----
./template.rb:78:in `node': node array not found (ArgumentError)
from ./template.rb:62:in `param'
from ./template.rb:61:in `each'
from ./template.rb:61:in `param'
from ./template.rb:59:in `each'
from ./template.rb:59:in `param'
from ./hogehoge.rb:9
--------------------
0345nobodyさん
03/09/10 19:14ID:???これって、どのHTML::Templateを使っている?
おれが使っているのは
http://raa.ruby-lang.org/list.rhtml?name=html-template2
なんだけど、テンプレートの書き方がなんか違うね。
それはそうとエラーの原因は、
(1)テンプレートで記述している木構造と
(2)テンプレートに与えているデータの木構造
が異なることが原因だろ。
(1)では test の下に array があるが、
(2)では test と array が兄弟になってないか?
0346345
03/09/10 20:46ID:???おれの勘違いだったかも。
ループのまわりをif文で囲むと、どうもうまくいかないみたい。
表示する/しないをif文で制御するのではなく、
ループするデータがある/ないで表示を制御するとうまくいく。
------- sample.html ------
<TMPL_LOOP NAME="list">
HOST: <TMPL_VAR NAME="host">
BOARD: <TMPL_VAR NAME="board">
</TMPL_LOOP>
--------------------------
0347345
03/09/10 20:47ID:???-------- sample.rb -------
#!/usr/bin/ruby
require 'html/template'
test = true # or false
list = [
{ 'host' => 'book.2ch.net', 'board' => 'bizplus', },
{ 'host' => 'news5.2ch.net', 'board' => 'newsplus', },
{ 'host' => 'news4.2ch.net', 'board' => 'news', },
]
param = {}
if test then
param['list'] = list
else
param['list'] = []
end
template = HTML::Template.new('filename' => 'sample.html')
template.param(param)
print template.output
--------------------------
0348nobodyさん
03/09/10 21:02ID:sTBsqDi+そっちもループをifで囲めないんですか?
0350nobodyさん
03/09/11 17:30ID:???直したから試してみて(20030911 version)
<TMPL_IF NAME="list">
<TMPL_LOOP NAME="list">
HOST: <TMPL_VAR NAME="host">
BOARD: <TMPL_VAR NAME="board">
</TMPL_LOOP>
</TMPL_IF>
こんなのも、ちゃんと動くようになった。
0352nobodyさん
03/09/13 02:53ID:???見事に直ってた。さすが作者。
-------- sample.html --------------
<TMPL_IF NAME="flag">
<TMPL_LOOP NAME="list">
HOST: <TMPL_VAR NAME="host">
BOARD: <TMPL_VAR NAME="board">
</TMPL_LOOP>
</TMPL_IF>
-----------------------------------
------------ sample.rb ------------
#!/usr/bin/ruby
require 'html/template'
list = [
{ 'host' => 'book.2ch.net', 'board' => 'bizplus', },
{ 'host' => 'news5.2ch.net', 'board' => 'newsplus', },
{ 'host' => 'news4.2ch.net', 'board' => 'news', },
]
param = {}
param['flag'] = true
param['list'] = list
template = HTML::Template.new('filename' => 'sample.html')
template.param(param)
print template.output;
-----------------------------------
0353nobodyさん
03/09/13 02:55ID:???HOST: book.2ch.net
BOARD: bizplus
HOST: news5.2ch.net
BOARD: newsplus
HOST: news4.2ch.net
BOARD: news
>>348
ちゃんと作者に感謝しとけよ。
0354nobodyさん
03/09/13 12:06ID:???0356nobodyさん
03/09/15 08:44ID:???ページあたりにオブジェクトを割り当てるってのはまどころっこしいだけ。
(これはWebObject / Struts あたりの方法)
eRubyやPHPのようにページとロジックを直接結びつけるアプローチが
どれだけ正しいのかということがわかる。(MVCは向かないね)
0357nobodyさん
03/09/15 08:47ID:4+LfvYPmamrita のように出力するためだけにあるものならいいけど、
値の受け取り、処理、までやるとなると、複雑さが増すだけ。
むしろ、1処理/1オブジェクトというアプローチをとるべきだ。
ページの抽象化なんて Hash オブジェクトで十分
0358nobodyさん
03/09/15 08:49ID:???0360nobodyさん
03/09/15 10:42ID:???eRubyやPHPではロジックとビューとが分離できないじゃん。
友達いないやつなら一人でロジックとビューをやるしかないけど
そうでないなら分担して作業したほうがいいよ。
0363nobodyさん
03/09/18 01:57ID:???0364nobodyさん
03/09/18 11:16ID:???みたけど、専用のフレームワークじゃん。それはずるいだろ。
そんなの持ち出していいんなら、なんだってロジックとビューの分離は可能だよ。
逆にいえば、そういうのを持ち出さないと分離できないってことじゃないか?
#まあPHPでは include() 使えば分離できるんだけどね。
つーか、もとの発言
>>356
では、
> eRubyやPHPのようにページとロジックを直接結びつけるアプローチが
> どれだけ正しいのかということがわかる。(MVCは向かないね)
なんてことをいってたので、それは違うだろ!というツッコミで
「ロジックとビューの分離」をあげてみた。
文章が悪かったかもしれんが、分離ができる/できないという話よりも、
分離をすべきか否かという話をしたい。
おれは分離したい。そのための手段として、CGIKitはいいと思う。
0365nobodyさん
03/09/19 20:30ID:Z56dowS1<TMPL_LOOP NAME='list1'>
<TMPL_VAR NAME='hoge'>
<TMPL_VAR NAME='foo'>
</TMPL_LOOP>
<TMPL_LOOP NAME='list2'>
<TMPL_VAR NAME='hoge'>
<TMPL_VAR NAME='bar'>
</TMPL_LOOP>
ってなった場合、
list1=[{'hoge'=>a,'foo'=>b1},{'hoge'=>a,'foo'=>b2},...]
list2=[{'hoge'=>a,'bar'=>c1},{'hoge'=>a,'bar'=>c2},...]
template.param({'list1'=>list1,'list2'=>list2})
みたいに配列の全要素にhogeを定義しないといけないんですか?
0366nobodyさん
03/09/20 02:02ID:???> 分離をすべきか否かという話をしたい。
どれを選ぶかは目的、規模、開発形態によるんじゃねーの?
(0) コードにHTMLを埋め込む
(1) HTMLを抽象化する(CGI::Html*)
(2) HTMLにコードを埋め込む(eruby)
(3) 別々に書く(amrita)
(4) 複数のセッションに対応する(div)
(3)はすごく良さげに見えるが、ID属性を利用するツールを
使ってるデザイナさんとファイルをやりとりする場合は
そのツールの挙動をよく知る必要がある。
PHP慣れしたデザイナさんと組む場合は(2)だと話がはやい。
(1)は画面内を部品化する場合に割と良いことがある。
別の例だと、Javascriptでサイズ変更不能な窓にする場合、
後からサイズの仕様が変わるのに備えるならprettyprintを
使って(0)でレイアウトを組むとか。
0367nobodyさん
03/09/20 09:45ID:???param["hoge"]が未定義だとnilが返ってくるから
IFで判定できるよ。
<TMPL_IF NAME='hoge'>
<TMPL_VAR NAME='hoge'>
<TMPL_ELSE>
hogeなし
</TMPL_IF>
0368nobodyさん
03/09/20 13:46ID:YAOMW6mt<TMPL_LOOP NAME='list'>
HOGE:<TMPL_VAR NAME='hoge'>
PIYO:<TMPL_VAR NAME='piyo'>
</TMPL_LOOP>
---------------
#!/usr/bin/env ruby
require 'html/template'
template=HTML::Template.new('filename'=>'hoge.html')
#template.param({'hoge'=>'x'})
#list=[{'piyo'=>'a'},{'piyo'=>'b'},{'piyo'=>'c'}]
list=[{'piyo'=>'a','hoge'=>'x'},{'piyo'=>'b','hoge'=>'x'},{'piyo'=>'c','hoge'=>'x'}]
template.param({'list'=>list})
print(template.output)
↑はコメント外して6行目をコメントにするとエラーになります。
---- error ----
(eval):10:in `<<': failed to convert nil into String (TypeError)
from (eval):10:in `initialize'
from (eval):8:in `each'
from (eval):8:in `initialize'
from (eval):1:in `call'
from ./html/template.rb:67:in `output'
from ./hoge.rb:8
---------------
'hoge'は'piyo'と同じ階層で定義しないといけないのですか?
0369nobodyさん
03/09/20 18:41ID:4MmeVqhGファイルオープンして、文字列を書き込むとき、SJISで書き込むにはどうしたらいいでしょうか?
0370nobodyさん
03/09/20 18:45ID:???君はRubyのIOをPerlIOか何かのように考えているのかね。
Shift_JISを書き込みたきゃNKFなりIconvなりで変換して書き込みたまえ。
0371nobodyさん
03/09/20 18:52ID:4MmeVqhG出来ました、どうもです。
0373nobodyさん
03/09/21 20:59ID:???>'hoge'は'piyo'と同じ階層で定義しないといけないのですか?
基本的にはそうです。
内部的には
out << param['piyo']
out << param['hoge']
という処理なので
Hashのデフォルト値を指定するという手もあります。
Hash+Arrayなインターフェースを持った親をたどれるツリーのようなparamを作ってやれば上位階層の
'hoge'を取ってくるとかもできるでしょう。
0374nobodyさん
03/09/25 21:27ID:???0375nobodyさん
03/09/26 09:05ID:???0376nobodyさん
03/09/26 18:16ID:???おれもCGIスクリプト配布するのにな。
0377nobodyさん
03/09/27 16:13ID:???ttp://linux-life.net/program/ruby/doc/chapter08/
を適当に改造して使ってる。
0378nobodyさん
03/09/28 01:23ID:CG0BaKABそうでもないんだよね、これが。
単純にオブジェクト指向が壁になっているんだろうか?
WebProg版のPerlerの人、Ruby勉強してみな。便利だから。
一度使ったらやめられない止まらない。
0380nobodyさん
03/09/28 12:41ID:???まだまだ一般的にサーバーに入ってない場合が多いからねぇ。
これが改善されることがRuby普及の為の近道のような気がするけど。
いくら初心者を取り込もうと思って本とかサイトとか作ったって、
サーバーに入ってないからやらないって人は多いと思う。
みんなで大手プロバイダ、レンタルサーバーにお願いしましょう!
テンプレは次の人が考えたもので↓
0381nobodyさん
03/09/28 21:59ID:???>NAME=○× △
>POST=zzz-zzzz
>ADR=×××県 ×××市 ×××町 ××××
>TEL=0123-45-6789
>BIRTH=19xx-yy-zz
>M_ADR=mail@●◆▼.ne.jp
>CATEGORY=その他
>MESSAGE=
> いつもお世話になります。
>
> 会員のCGIサービスについて要望いたします。
>
> スクリプト言語に Ruby を追加願います。
> Ruby は、日本人が日本で開発したオブジェクト指向スクリプト言語です。
> 記号の羅列のような Perl よりも読みやすく、親しみやすいと言う特徴がありま
>す。
> 最近は、各種解説書などが発行されるなど、盛り上がりを見せています。
> しかし、CGIなどでこの Ruby を活用できる環境は非常に限られています。
> この日本発のすばらしい言語の普及に御社もご協力いただけませんでしょうか。
>
>Ruby のホームページ
>http://www.ruby-lang.org/
>
> なにとぞ、よろしくお願いいたします。
>
>
0382nobodyさん
03/09/28 21:59ID:???平素は「●◆▼」をご愛顧いただき、誠にありがとうございます。
x月y日付のメールでのお問い合わせの件につきまして、ご案内させて
いただきます。
この度は、「ホームページサービス」に関する貴重なご意見を
いただき、誠にありがとうございました。
○×様のご意見は、今後のサービス内容に反映できるよう、検討課題と
させていただきたく存じます。
お気付きの点や至らない点等ございましたら、ご意見ご指摘いただければ
幸いです。
今後とも「●◆▼」をよろしくお願いいたします。
お問い合わせ、ありがとうございました。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
株式会社●◆▼ネットワーク
●◆▼ダイヤル 担当:××(super@●◆▼.ne.jp)
サポートホームページ
http://www.●◆▼.ne.jp/support/
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
0383nobodyさん
03/09/28 22:05ID:???382のサポート担当用気のない返事テンプレは使いやすい
0384返事自動処理用erbテンプレート
03/09/28 22:11ID:???平素は「●◆▼」をご愛顧いただき、誠にありがとうございます。
<%=mail.month%>月<%=mail.day%>日付のメールでのお問い合わせの件につきまして、ご案内させて
いただきます。
この度は、「ホームページサービス」に関する貴重なご意見を
いただき、誠にありがとうございました。
<%= mail.name %>のご意見は、今後のサービス内容に反映できるよう、検討課題と
させていただきたく存じます。
お気付きの点や至らない点等ございましたら、ご意見ご指摘いただければ
幸いです。
今後とも「●◆▼」をよろしくお願いいたします。
お問い合わせ、ありがとうございました。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
株式会社●◆▼ネットワーク
●◆▼ダイヤル 担当:<%= mail.tantou.name %>(<%= mail.tantou.email %>)
サポートホームページ
http://www.●◆▼.ne.jp/support/
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
0386nobodyさん
03/09/28 22:54ID:???そこで担当者は気づくの。ruby(・∀・)イイ!
そしてrubyがインストールされる。
384はこんな方向に持っていくためのテンプレート
0387nobodyさん
03/09/29 00:05ID:???使えるようにしてたけど、頻繁なバージョンアップと互換性の無さで
フォローが大変だった。今はもう安定してきてるとは思うが・・・
0388nobodyさん
03/09/29 09:32ID:???肝心の1.8.0はstableとは名ばかりのバグバグバージョン。
こりゃ、Rubyを入れるのを躊躇うのも仕方ないだろうな。
0389nobodyさん
03/09/29 14:44ID:???current = 新機能をいろいろ試してみる枝
なんじゃねーの?
つーか自分でインタプリタが設置できないような鯖で
無理にRuby使わなくてもいいじゃん。
0390nobodyさん
03/09/29 23:55ID:???0392nobodyさん
03/10/01 12:27ID:???0393nobodyさん
03/10/01 23:14ID:???1.6.7あたりが境目かなあ
ライブラリがあるバージョン以上を要求するんだが
むやみに上げるとcgi周りがこけるという状況に・・・
自分用だったらどうにでもなるんだけど
0394nobodyさん
03/10/02 14:39ID:???0395nobodyさん
03/10/02 23:10ID:???0396nobodyさん
03/10/02 23:19ID:???CGIクラスはフォームデータ受け取るくらいしか使ってない
0398nobodyさん
03/10/03 10:24ID:???クッキーの読み書きにも使ってる
0399nobodyさん
03/10/03 12:27ID:???0401nobodyさん
03/10/03 14:14ID:???ML で話題になってた「基礎から学ぶWebデータベースプログラミング」ってどう?
あれだけ誉め殺されてるところをみると、
かなりアヤシイ本なのではないかと推測しているんですが。 (←ひねくれ小僧)
0402nobodyさん
03/10/04 15:06ID:???0403nobodyさん
03/10/04 18:53ID:???明日違う本屋にいくよ。
0404nobodyさん
03/10/05 20:55ID:???0405nobodyさん
03/10/05 20:57ID:???0406nobodyさん
03/10/05 23:32ID:???名前の最初の一文字を小文字に変えるのじゃ!!
0407nobodyさん
03/10/06 08:41ID:BTATtbkaこれはどう?
class A; TEST = 1; end
class B < A; end
class C < A; TEST = 5; end
p A::TEST, B::TEST, C::TEST
0408nobodyさん
03/10/06 08:44ID:BTATtbkaclass A; TEST = 1; end
class B < A; end
p B::TEST
class B < A; TEST = 5; end
p B::TEST
0410nobodyさん
03/10/11 11:04ID:???0411nobodyさん
03/10/11 13:19ID:???0412nobodyさん
03/10/11 19:58ID:???0413nobodyさん
03/10/12 02:07ID:???それとも未定義だけど評価できるのかな?
0414nobodyさん
03/10/12 02:39ID:???yes. try below
ruby -e 'a = [p a]'
ruby -e 'if false then a = 1 end ; p a'
0415nobodyさん
03/10/21 08:13ID:SnhWYpxu0416nobodyさん
03/10/24 17:30ID:cS8OCSw0ttp://webpub.narucy.com
>ライバルは PHP!
ですってよ。
0417nobodyさん
03/11/02 11:56ID:???DBI + Amrita でデータベースの情報を表示する CGI を良く作るので
これはと思って会社で使おうとしたがプレビューができなかった。
0418nobodyさん
03/11/03 22:00ID:a8+MLyNB0419nobodyさん
03/11/03 22:36ID:c9cmQMPl0420nobodyさん
03/11/04 05:04ID:???ちょっと手間取ったが普通に使えている。
0421hn ◆iKwMOjCT4s
03/11/04 14:07ID:nVQycvvtその設定がうまくいってなくてもユーザに通知するとか一切無いので、この辺なんとかしなきゃと思ってます。
0422nobodyさん
03/11/12 17:36ID:???もしかして作者さんですか?
ぢゃぁ、質問させてください。
あるホームページの管理を任されました。
楽をしようと思ってWebPublisherをインストールしました。
そのページのソースをWPに読み込ませたのですが、
「Missing end tag for 'A' (got "TD")」
となってプレビュー表示出来ません。
問題になっているところはおそらく下記のようなところだと思います。
<TD>
<A href="http://www.xxx.ne.jp/" class="LinkTitle2">Link</A>
</TD>
そこで、A タグを[Source]−[Edit Tag]すると、・・・・・ href以外の属性は編集出来ないんですか?
WPは0.5.2、Rubyは1.8.0 Cygwin、Eclipsは2.1.2です。
Simpleなどではきちんと動作を確認しています。
なお元の作者が何のツールを使っていたのかは不明です。
ちなみに彼は開発に疲れてヨガの眠りに就きました。
0423nobodyさん
03/11/17 19:15ID:???cgi.form("method"=>"post","action"=>"xxxx.cgi","ENCTYPE"=>"multipart/form-data"){
cgi.input("type"=>"file","name"=>"send_data") +
cgi.submit("value"=>"upload") +
cgi.input("type"=>"hidden","value"=>"#{other_data}","name"=>"other_data")
なことをやると思うんですが、受け側のxxxx.cgi(もちろんrbファイル)では
これらのデータはどう扱われているのですか?
つまり
・upしたファイル
・他に必要なデータ
はどのように扱われているのか教えて下さい。
ちなみに
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/25399
見たけどサパーリです。
0424nobodyさん
03/11/17 19:35ID:???cgi.rb の使い方、でいいのかな?
通常、foo['bar'][0] で取得するところが
multipart/ form-data の時は foo['bar'][0].read になるくらい、かな
0425nobodyさん
03/11/17 19:40ID:???何年も前に書いたコードを見てるのでもしかしたら変更があったかもしれん
0427nobodyさん
03/11/18 11:28ID:???Internal Server Error じゃなく、ブラウザにエラーコード吐き出すこと
って出来ますか?
apacheのログ見に行くのが面倒臭いもので…
0428nobodyさん
03/11/18 11:54ID:???例外捕まえるのがいいかもね
rescue StandardError
rescue ScriptError
の時にContentヘッダと$!を出力、とか
0429428
03/11/18 12:05ID:???もしも、mod_ruby を使ってるなら、httpd.conf の中で
RubyRequire apache/ruby-run -> RubyRequire apache/ruby-debug
RubyHandler Apache::RubyRun.instance -> RubyHandler Apache::RubyDebug.instance
の変更でエラーが補足できるよ
0430nobodyさん
03/11/18 12:16ID:???0431nobodyさん
03/11/18 12:48ID:???これは右辺を左辺に変更でいいんですよね?
とりあえずコメント部とeruby部を削除したhttpd.confですけど
# BEGIN_MOD_RUBY
<IfModule mod_ruby.c>
RubyRequire apache/ruby-debug
<Location /ruby>
SetHandler ruby-object
RubyHandler Apache::RubyDebug.instance
Options ExecCGI
</Location>
<Files *.rbx>
SetHandler ruby-object
RubyHandler Apache::RubyDebug.instance
</Files>
RubyRequire auto-reload
</IfModule>
# END_MOD_RUBY
これでOKですよね?
でも表示されません…(´Д⊂グスン
0432nobodyさん
03/11/18 13:01ID:???0433nobodyさん
03/11/18 14:00ID:???おっと(;・∀・)
…でも
<Files *.cgi>
SetHandler ruby-object
RubyHandler Apache::RubyDebug.instance
</Files>
を追加しましたが駄目でした。゚(゚´Д`゚)゚。
0434nobodyさん
03/11/18 17:20ID:???VirtualHostでRubyのデバッグ専用の設定を作るのが
よさそうな気がしてきた・・・
いつもApacheのエラーファイル使ってるが
0435nobodyさん
03/11/20 07:10ID:???0436nobodyさん
03/11/20 09:57ID:???PerlとPHPどっちがいいか?ってのと似てる・・・
0437nobodyさん
03/11/20 10:35ID:???cgi.rbのHTML関連の機能を使ってるやつなんているのか?
0438nobodyさん
03/11/20 11:11ID:???0439nobodyさん
03/11/20 11:30ID:???0440nobodyさん
03/11/20 14:05ID:???使うときでもパラメタ取得等にcgi.rbも併用してる・・・
0441nobodyさん
03/11/20 14:44ID:???でもそれ以外…
0442nobodyさん
03/11/20 15:02ID:???0443初心者
03/11/20 17:27ID:???遅レスですが、mod_rubyの方の設定でブラウザにエラーコードを
吐き出すことが出来ました!
なんとhttpd.confでmod_rubyをロードしてなかったという恥ずべきミスを
していた自分…(/ω\)
で、追加質問なんですがw、
eRubyも使えるように設定しようとしてるのですが、
<Files *.rhtml>
SetHandler ruby-object
RubyHandler Apache::ERubyRun.instance
</Files>
これをhttpd.confに書けば *.rhtmlはeRubyを介してくれるんですか?
rhtmlファイルを読み込むとダウンロードさせようとするもんで…
0444nobodyさん
03/11/20 18:15ID:???0445初心者
03/11/21 09:45ID:???もうすでにインストされてる場合、
mod_rubyのフォルダで
% make clean
% ./configure.rb --enable-eruby
% make
% make install
でOKですか?
0446nobodyさん
03/11/21 11:02ID:???私は、Apache2->Ruby->eRuby->mod_ruby の順番で
インストールして、滞りなく使えてるけど
0447初心者
03/11/21 13:41ID:???の順でインストール済みなんですけど…
apacheが古いとか関係ないですよね?
0448nobodyさん
03/11/21 14:31ID:???Files が使えないってことはあるのかな・・・
AddType application/x-httpd-eruby .rhtml
を追加するというのはどう?
0449初心者
03/11/21 15:08ID:???実はそれも付け加えてあるんですよねw
AddType application/x-httpd-eruby .rhtml
Action application/x-httpd-eruby /cgi-bin/eruby
↑上記をです
ちなみに/cgi-bin/は
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/var/www/cgi-bin">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
とされてます
もちろんその下にはerubyをコピーしてあります
0450nobodyさん
03/11/21 15:19ID:???ん、、、
mod_ruby の場合、cgi-binの下にerubyを置く必要は無いので、
>Action application/x-httpd-eruby /cgi-bin/eruby
この行も、cgi-bin/eruby もいりません。
ついでに定義もどっちかひとつにした方がいい
0451初心者
03/11/21 15:45ID:???なるほどメモメモ.._〆(゚▽゚*)
という訳で<Files>〜を全てコメントアウトして、AddTypeのみにしましたけど
まだ駄目です…(´Д⊂
ダウンロードしろという奴をダウンしてきて、エディタで開くとそのまんまだし…
0453初心者
03/11/21 16:38ID:???今までrestartでしてました
stop -> startしても変わりません…
ご迷惑おかけして申し訳ないです
まだ他に何か考えられるとこ無いですかね?
0454初心者
03/11/21 16:54ID:???とりあえずAddType〜をコメントアウトして、
もう一度<File *.rhtml>でやってみたら何故か出来た…Σ(´Д`lll)
昨日までと同じなのに…
他に変えたとこは
RubyRequire auto-reload
をコメントアウトした位なんだけど、関係あるのかな〜?
0455nobodyさん
03/11/21 18:18ID:???<File>を使うなんて的外れもいいとこ
httpd.confについてよく勉強すれ
0457nobodyさん
03/11/21 19:08ID:???書いていないわけだが…
0459nobodyさん
03/11/29 18:53ID:???でerubyを動かしたいんですが、
apacheを動かす際、
Starting httpd: Syntax error on line 250 of /etc/httpd/conf/httpd.conf:
Cannot load /usr/libexec/apache/mod_ruby.so into server: libruby.so.1.6:
cannot open shared object file: No such file or directory
と出て起動してくれません。
この前にruby1.6がrpmで入ってたのですが、アンインストールはしてあります。
ちなみに、libruby.so.1.8が/usr/local/libフォルダに入っていますが、mod_ruby.so
の方でなぜか1.6を探しているみたいです。
これはmod_rubyのconfigureの際のオプションで直るのでしょうか?
ご教授願います。
0460nobodyさん
03/11/29 19:34ID:???ldd してみたらどう?どれかが古いままなんだろう
0461nobodyさん
03/11/29 19:49ID:???lddなんてのがあるんだ(;゚∀゚)
lddしてみたら、libruby.so.1.6がNot Foundになってたから、
/usr/lib/見たらやっぱり無かったよ
という訳で/usr/local/lib/libruby.so.1.8を無理やり/usr/lib/libruby.so.1.6
ってしたら上手くいっちゃったけど、なんでmod_rubyは1.6を探そうとするの?
configure時の設定ですか?
とりあえず(TдT) アリガトウ
0463初心者
03/11/30 22:44ID:???あれからeRubyでCGI書いてるのですが、
フォームでファイルをアップロードするとこで困ってます。
>>424のようにやってみたのですが、
undefined method `read' for nil:NilClass
readが無いって言われます。
他にもoriginal_filenameとかも無理です。
ちなみに、これをRubyでやると上手くいきます。
なぜなんですか?
0464nobodyさん
03/11/30 22:58ID:???ついでに、オレも1.8にして気がついたが、
cgi.params['bar'][0] にしないとアクセスできんかった気がする
0466初心者
03/12/01 00:19ID:???paramsなんて無いって言われるわ
ファイル開こうとするとInsecure Operationって出るわ
Rubyなら出来ることがeRubyで出来ない…
0467nobodyさん
03/12/01 01:11ID:???適時、untaint をするとよろし
基本的に、外からもらう文字列にはuntaintが必要
0468初心者
03/12/01 10:35ID:???file関係はまさにセーフレベルでした!
eRubyのデフォルトのセーフレベルっていくつですか?…て
これ位は自分で調べられますねw
ただ、multipart/form-dataの方が全く駄目です。
なんでreadが無いって言われるんですか…?
0469nobodyさん
03/12/01 15:11ID:crZKm9cCに表示されるのですが、アドレスに引数を付けて表示させると
なぜか Internal Server Error: premature end of script headers
と出て表示されません。
apache のエラーログには
/usr/local/bin/eruby: missing required file to process
と出ていました。
もともと Windows + AnHTTPd + ruby1.6.8 できちんと動作
していた .rhtml を、 Linux + apache2.0.40 + ruby1.8.0 + eRuby 1.0.4
に持ってきたのですが引数を付けると動かなくなってしまって困ってます。
どなたかアドバイスいただけないでしょうか。
0470nobodyさん
03/12/01 16:29ID:???引数って例えばどこにどんなのをつけたのか?
0471nobodyさん
03/12/01 17:24ID:???していました。以下はテストのために書いたものです。
---test.cgi-------------------
#! /usr/local/bin/eruby
<html><body>
<%
require 'cgi'
p CGI.new.params
%>
</body></html>
------------------------------
普通に 'http://xxxxxxx/test.cgi?AAA' とすると
{"AAA"=>[nil]}
と出るのですが 'http://xxxxxxx/test.cgi?AAA=' と
'=' を付けると(というか記号をつけると)Internal Error
になります。
# require 'cgi' しなくても引数に '=' を付けるとエラーになります。
# これは普通でしょうか?
0472nobodyさん
03/12/01 18:19ID:???あと、
begin
require 'cgi'
p CGI.new.params
rescue
puts $!
end
とかできるかのう
0473nobodyさん
03/12/01 19:04ID:???eRubyがreadlineと相性悪いのは発見したが・・・(x86Solaris9)
0474469(471)
03/12/01 19:09ID:???eRuby version 1.0.4
ruby 1.8.0 (2003-08-04) [i686-linux]
Server version: Apache/2.0.40
Server built: Jul 31 2003 11:36:14
です。
ruby/eruby ともに公式サイトで安定版として公開
されている最新のものだと思います。
それから begin 〜 resuce 〜 end は実行出来ませんでした。
Internal Server Error、要するに今までと同じエラーが
出てしまいます。
今のところ先頭行に #! を付けて .cgi として CGI として
動かしていますが、httpd.conf の AddType + Action で
.rhtml としても同じ状況になってしまいます。
相変わらずアパッチのログには missing required file
to process. と出てます・・・
0475469
03/12/01 19:16ID:???それはそうと、わざわざ試していただいてありがとうございました。
# あー、Windows に戻すのはやだなぁ・・・
0476nobodyさん
03/12/02 15:01ID:???それで先頭の#!/・・・を使わないで起動してるってことは
/cgi-bin/ あたりにeruby 入れてるのね。
ちょっとその環境で試してみるわ。なんかあやしそうだ・・
0477469
03/12/02 19:33ID:???0478nobodyさん
03/12/03 01:48ID:???そういえば、、lib の 1.6だったかを挿してて無理やり1.8をリネームしたのも
>>477 だっけ?
1.6.xのとっ中までcgi.rbがパラメタの=の両端がそろって無いとエラー出す
バグがあったのを思い出したよ。あやしいバイナリ全部作り直せ
0479nobodyさん
03/12/03 13:55ID:???ちなみに僕はそのリネームした人ではないですが、
一応バイナリ make しなおしてみます。
# cvs 最新版で試したりと、もういろいろやってはいるのですが^^;
0480nobodyさん
03/12/04 19:27ID:???0481nobodyさん
03/12/05 19:22ID:???簡単なタイムアウトエラースクリプトを組んだのですが、
require "timeout"
begin
timeout(1) do
loop{}
end
rescue TimeoutError
print "timeout\n"
end
これをシェルから eruby | ruby でやるとちゃんと動作するのに、
CGIで動かそうとするとtimeoutしてくれません。
ちなみにruby1.8.0 eruby-1.0.4です。
よろしくお願いします。
0482nobodyさん
03/12/06 04:31ID:???1行目に
#!/usr/local/bin/ruby18
print の前に
print "content-type: text/plain\r\n\r\n"
を付け加えて481.cgiとして保存して試したら、timeoutって返ってきたよ。
0483nobodyさん
03/12/06 10:09ID:???これでやったけど
#!/usr/local/bin/ruby18
print "content-type: text/plain\r\n\r\n"
require "/usr/local/lib/ruby/1.8/timeout.rb"
begin
timeout(1) do
loop{}
end
rescue TimeoutError
print "timeout\n"
end
駄目ぽ…。タイムアウト反応してくれない…。
0484nobodyさん
03/12/06 15:05ID:???0485nobodyさん
03/12/06 18:31ID:???ん?どういうことですか?
printの出力先をファイルにしても、timeoutが反応してくれないので
無限ループから抜け出せないから見れないんですが…
それとも俺が青二才なのかな…?
0486nobodyさん
03/12/06 20:06ID:???0487nobodyさん
03/12/06 20:52ID:???以下勝手に引用
>一つの ruby のプリミティブで実行してしまうので、スレッド切り替えポイントがないので
>タイムアウトにならない
>Ruby のスレッド切り替えについて、大分誤解してて、SIGALRM が来たら即切り替え、
>だと思っていたら、大抵の場合そうではなく、pending しておいて、切り替えポイントで
> pending が true なら切り替える、みたいなことをしているんだと思う。
関係あるかな?
0488nobodyさん
03/12/07 06:00ID:???CGIとそうじゃないほうで p [RUBY_PLATFORM, RUBY_RELEASE_DATE, RUBY_VERSION]
したら何になるの?
0491nobodyさん
03/12/27 06:11ID:???0492nobodyさん
04/01/06 01:54ID:xw1q3uSMなんでだろう?
0493nobodyさん
04/01/12 02:39ID:???TimeoutErrorやSyntaxErrorだけ察知してくれないのは何が考えられるのでしょう?
0495nobodyさん
04/01/12 11:18ID:???むぅ、読んだけど間違ってない気が…
簡単な例を書くと、
begin
…code
rescue NameError
print "NameError!!"
rescue SyntaxError
print "SyntaxError!!"
end
codeの部分を、
a = 1
print b
とするとちゃんとNameErrorが補足されNameError!!が出力されるのに、
a = 1
print a:
とするとSyntaxErrorの例外処理が適用されず、Ruby側でエラーをキャッチして
強制終了されてしまいます。
ちなみに動かしているのはeRuby1.0.4のデバッグモードなんですが、
それと関係ありますか?
0496nobodyさん
04/01/12 16:58ID:???0498nobodyさん
04/01/18 16:50ID:???0499nobodyさん
04/01/20 20:11ID:???画像として保存し、ブラウザで表示させたいと思っています。
http://psux1.kek.jp/~thitoshi/ruby/
で配布されてたGnuplotクラスを利用して、データをファイルに
保存させ読み込む形式にしたいのですが、
gp = Gnuplot.new
gp.set("term","png color")
gp.set("output","\"graph.png\"")
gp.plot("\"foo.dat\" with lines")
gp.close
ローカルで動かすとちゃんとgraph.pngを生成してくれるのですが、
CGIを通すと動いてくれません。
原因がわかる方いらっしゃいますか?
0501nobodyさん
04/01/20 21:41ID:???あっ、それか!
とりあえずcgi-binディレクトリを777にすると色々うるさく
言われたので、その下に777のtmpディレクトリを作成し、
そこで作業をしたら出来てました!
ありがとうございました(=゚ω゚)ノ
0502nobodyさん
04/02/10 02:03ID:???いいライブラリとかありますか?
0504nobodyさん
04/02/11 21:02ID:???webrickのMLのログも知らなかった。
0507nobodyさん
04/02/24 02:31ID:xNGflriR$ cat ng2.cgi
<%
require 'cgi'
def text; puts "ng2.cgi"; end
class Hoge;def view
text
end;end
%><html>
<BODY>
<%
Hoge.new.view
%>
</BODY></HTML>
$ echo aaa|eruby ng2.cgi
<html>
<BODY>
ng2.cgi
</BODY></HTML>
ちゃんと動くのに
apache,mod-rubyで動かすとエラーになる
[Tue Feb 24 02:27:43 2004] [error] mod_ruby: error in ruby
/tmp/ng2.cgi.17966.0:10:in `view': undefined local variable or method `text' for #<#<Module:0x41744d5c>::Hoge:0x40a41410> (NameError)
from /tmp/ng2.cgi.17966.0:17
from /usr/lib/ruby/1.8/apache/eruby-run.rb:113:in `load'
from /usr/lib/ruby/1.8/apache/eruby-run.rb:113:in `run'
from /usr/lib/ruby/1.8/apache/eruby-run.rb:78:in `handler'
0508nobodyさん
04/02/24 02:40ID:???ruby-1.8.1-0vl6
eruby-1.0.5-0vl1
mod_ruby-1.0.7-0vl1
apache-1.3.29-0vl1
require 'cgi'を外すとか
RubyRequire cgiをつけるとかすると上手く動くけど
なんで〜?Ruby1.6辺りの環境では問題なかったんだけどなぁ
0509nobodyさん
04/02/25 01:34ID:???ものってありますか?
0512nobodyさん
04/02/25 06:29ID:???mod_ruby使ったことないんだけど
textって、mod_ruby下でもほんとにトップレベルにある?
その変な無名モジュールに包まれてるみたいだけど。
0513nobodyさん
04/02/25 16:51ID:???require 'cgi'
cgi.out({'status' => 'NOT_FOUND'})
てなことをすると、
cgi.rb:561:in `out': no block given (LocalJumpError)
と怒られます。
cgi.out({'status' => 'NOT_FOUND'}){}
は
cgi.rb:578:in `out': undefined method `length' for nil (NameError)
です。
cgi.out({'status' => 'NOT_FOUND'}){''}
ならオッケイなんですが、これで正しいの?
ボディはいつも返さないといけないのかな?
0516507
04/02/26 01:23ID:???レスどうも
無名モジュールとかの用語がわからんのでググってみましたが
まだよくわかってないです
http://www.google.co.jp/search?q=ruby+%96%B3%96%BC%83%82%83W%83%85%81%5B%83%8B+%83g%83b%83v%83%8C%83x%83%8B&num=50&hl=ja&ie=Shift_JIS
>トップレベルで定義されたクラスやメソッドなどはObjectの下に定義される代りに、
>その無名モジュールの下に定義されます。
とあるけど???です
1.6の頃とどう変わったんだろう?
ruby-1.6.7-0vl5
eruby-0.9.8-0vl2
mod_ruby-0.9.7-0vl1
apache-1.3.27-0vl3
だと問題ないんだけどなぁ
0517nobodyさん
04/02/26 02:49ID:???Kernel.module_eval {
def text
p "text"
end
module_function :text
}
「トップレベル(に見える場所)で def する癖はやめましょう」が
一番の正解だと思います。main での def は特殊な予感。
0518nobodyさん
04/02/26 10:06ID:???Kernel.module_eval {
def text
p "text"
end
}
0520nobodyさん
04/02/28 08:06ID:???ぐぐった中で見つけてますね。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/29112
http://slashdot.jp/journal.pl?op=display&uid=7790&id=151929
mod_rubyの仕様のようですが、>>517に同意です。
せっかく名前空間を汚染しないための措置なのに、
むりやり>>518みたいなことを全部のスクリプトでやるのは
気持ち悪いし、後で見たときわけわからなくならない?
0521nobodyさん
04/02/28 08:19ID:???Ruby 1.8.0 に添付されてた yaml なんだけど、
自己参照の多い、ちょっと複雑なArrayとかがまともに保存できなかったので
使うのをyamlことにしたんだけど、新しいのが出てるのかな?
0522nobodyさん
04/02/28 09:13ID:???mod_ruby だと高速化のためにプロセスを使い回すわけだから、
タイミングによっては def text してないスクリプトで text が
呼べてしまう現象が起きてしまうかも。
こういうのは不可解なバグにつながる危険があるから、
本当におすすめできません。
>>521
まともって??
とりあえず 1.8.1 使いましょう。
0524nobodyさん
04/02/28 23:47ID:???CGIスクリプトの一行目は
#!usr/local/bin/rubyでいいのでしょうか?
0525nobodyさん
04/02/29 00:11ID:???なにをどうインストールしたのでしょう?
もし ruby-1.8.1-i386-mswin32.zip を C:\ に展開したのでしたら、
c:\bin\ruby なので #!/bin/ruby になります。
0527507
04/03/02 00:09ID:???あーKernel.module_eval は駄目なんですか
うーん、最初のRubyRequire cgiに戻しました
mainでdefしない、は正直厳しいんです。
1.6->1.8変更の
>Module#include [change]
>トップレベルの include は、第二引数に true を指定した load でロードされるスクリプトのもとでは
>モジュールの機能を self に extend するように変更されました。
ってのが原因?
load(file,true)自体の説明は1.6,1.8とも変わってないんで
0528nobodyさん
04/03/02 00:43ID:???mod_ruby 側でない?
書き換え量が気にならないなら、こうするのがベターです。
module Func
def text
p "text"
end
extend self # おまじない
end
Func.text
0530nobodyさん
04/03/02 10:31ID:???module_function は private と同じで、指定したものだけか、
もしくはそれ以後に def されたものだけ公開します。
それに対して extend self は全て公開します。
関数群の名前空間に使うのならこちらのほうがお手軽です。
0531nobodyさん
04/03/04 02:10ID:???recent_list.rb で表示されるタイトルが
a.rb を使って <%= a %> の形式で書いていると
そのままで変換されません。
どこをどう変えれば良いのでしょうか?
Ruby が全然読めない私にも救いの手を・・・
0532nobodyさん
04/03/04 04:36ID:???0535nobodyさん
04/03/06 17:37ID:C+c5xFRdApache: 1.3.29
mod-ruby: 1.0.7
ruby : 1.6.7(fink)
スクリプト中でアーキテクチャ依存のモジュールをrequireすると
エラーになります。
例えば
#!/sw/bin/ruby
require 'nkf' # for test
require 'cgi'
cgi = CGI::new
cgi.out() {
"<html><body>test</body></html>"
}
をhoge.rbxとして保存してアクセスすると
0536nobodyさん
04/03/06 17:39ID:C+c5xFRd/Users/hoge/Sites/honesty/hoge.rbx:3:in `require': (null) - /sw/lib/ruby/1.6/pow
erpc-darwin6.6/nkf.bundle (LoadError)
from /Users/hoge/Sites/honesty/hoge.rbx:3
from /sw/lib/ruby/1.6/apache/ruby-run.rb:70:in `load'
from /sw/lib/ruby/1.6/apache/ruby-run.rb:70:in `handler'
from ruby:0
と怒られます。
なお、同じスクリプトをhoge.cgiとして保存してCGI経由でアクセスすると
エラーは起こりません。
0537nobodyさん
04/03/06 23:59ID:???mod_ruby の場合は apache ので動くからね。
0538535=536
04/03/07 08:34ID:xKL6fKn7同じ字面のスクリプトがCGIで動くので大丈夫だと思います。
hoge.rbxは755, nkf.bundleは555(ownerはroot)です。
あと、*.rbのモジュールは問題なくrequireできますし、
同じスクリプトをLinuxに持っていっても問題なく動きます。
0540nobodyさん
04/03/12 10:37ID:XHgrIkQVhttp://www.starware.one.pl/software/sws/index.html
http://www.starware.one.pl/software/sws/doc/docbook/index.html
だれか使ってみて。
0542nobodyさん
04/03/12 17:59ID:???EOFにあたるDBライブラリもリンクしときます。
http://www.starware.one.pl/software/sds/
まだ試してはいないんだが、DBライブラリのほうはコンパクトにまとめてあるみたいだね。
SWSと組み合わせて使うのが前提なのかもしれないな。
0543541
04/03/12 19:58ID:???0544nobodyさん
04/03/12 20:34ID:lAf/ivCVくだらないと思った。
Javaじゃないんだからそんなフレームワークとかなんとかってやめようよ。
普通に組むのが一番いいんだよ。
0545nobodyさん
04/03/12 22:17ID:???0546nobodyさん
04/03/12 23:16ID:???それですむ場合も多いとは思うけど、やっぱり仕事とかで大量のページ遷移を
作らなきゃいかんときは、フレームワークあったほうが便利だわな。
究極的には自分用(もしくは会社用)フレームワークを自作すればいいんだが。
0547nobodyさん
04/03/13 07:00ID:???0548nobodyさん
04/03/13 14:52ID:???CGIKIT見りゃ分かるけど、ウェブ用のフレームワークって手間かかるだけで無意味
作るものに合わせて土台を作っていくのが普通だよ あらかじめ作るフレームワークは無駄なだけ
0550nobodyさん
04/03/14 14:14ID:VM4bxA2x過去ログに車輪の再発明とかでてるけど、
Strutsやらなにやらは古タイヤの再利用くらいだとおもう。
ほしい物に似てるけどちょっと違うんだなあ。
だから車体を古タイヤに合わせて設計してみました、みたいな。
似たようなもの毎回作っちゃってもいいんじゃないの?
設計の再利用ってもう流行ってないのかな。
実装なんて再利用しようとても毎回しっくりこないんじゃない?
これ、JBossというかEJBのときにも思った。
既存の道具生かすためになんか本体側で無駄な苦労してるなあと。
0551nobodyさん
04/03/14 17:50ID:???そのあたりはそれこそ、その時々の事情や状況によるものなので、
フレームワークが役立つときもあれば、役立たないときもあるのは当たり前なので、
使う人が勝手にすればいいじゃん。
なので、>>544 よ、君の意見は確かに君にとってはもっともかもしれないが、
「くだらない」かどうかは人によって違うので、他の人に対して「やめよう」と言う必要は
無いんじゃないかな? もちろん、何言おうが君の勝手だけれど。
で、この話は終わりだと思うのだが。
0552nobodyさん
04/03/14 22:44ID:???0553nobodyさん
04/03/15 06:15ID:???EOFの真似というのでかなり興味をそそられるのだが、
この手のもので、どれが一番広まりそうかな。
大きいアプリ作っている人は、皆たいてい「自分用フレームワーク」を持ってると
思うし、この手の共通フレームワークに移行できたら楽かなと思うんだろうけど、
いざ移行するとなると、こいつとなら心中しても悔いなしという決心が要るよなあ。
0554nobodyさん
04/03/15 08:53ID:???J2EE をお手本にしたアプリケーションサーバ( + フレームワーク)。
0555nobodyさん
04/03/15 09:34ID:???EOF って、Enterprise Object Frameworks っていうやつなのかな?
ググってみたけど、あんまり分かりやすく説明しているところが無かったな。
誰か簡単に説明してくれ。もしくは、良いページを紹介してくれ。
0556nobodyさん
04/03/19 14:28ID:???結局作者しか使えないフレームワークになりそう。(数年後にははっきりすると思うけど)
rwikiの実装見ると、drubyでさらっと作ってる印象。
実はこれが正しいエンタープライズなシステムの作り方だと思うよ。
0558nobodyさん
04/03/20 12:47ID:???いちいち手で書くのが好きならいいんだけど、車輪の再発明だもんなあ。
0559nobodyさん
04/03/21 01:38ID:???るびきちさんの言動
0561nobodyさん
04/03/21 14:01ID:???0562nobodyさん
04/03/22 13:17ID:???漏れはウェブシステムのインターフェースとしては一番意味があるフレームワークだと思うんだけど。
(他のフレームワークは申し訳ないけど、手間かかるだけであまり意味がない)
0563nobodyさん
04/03/22 14:35ID:???ドキュメント (チュートリアル的なもの) が見当たんないので手が出せないでいます。
0564nobodyさん
04/03/22 15:20ID:???意味がある、ないを具体的にお願いします。
煽りじゃないよ。何を求めるかによってフレームワークにも合う合わないがあるからさ。
0566nobodyさん
04/03/23 15:16ID:h4hJAwq6rubyでcgiを勉強するのにおすすめの本ってありますか?
今のところ候補としては
・Ruby de CGI オーム社 堀川 久
・RubyによるCGIプログラミング SCC books 三並 慶佐
です。
0567nobodyさん
04/03/23 16:53ID:???どっちも薦めん。tDiary とか読め。
それか、オライリーのCGI本、もしくは Rubyアプリケーション何とか、とか。
それよりも、大学ではどんな風にRubyを教えてるのか、それを教えてくれ。
0568nobodyさん
04/03/23 19:31ID:???0569nobodyさん
04/03/24 04:59ID:???Tofuは使ったことがありますが、RWikiでの説明などで大体わかりました。
Divについては実際に使われているもののソースを読むのはいかがでしょうか。
たとえばdivipとか。
divip - Div IP Messenger
http://divip.sourceforge.jp/
で、divipのMLを読んだらUNIX USERのバックナンバーに
Divの解説記事があるとのこと。
[divip-list:7] UNIX USER2003-09
http://lists.sourceforge.jp/mailman/archives/divip-list/2003-August/000006.html
0570nobodyさん
04/03/24 20:00ID:???dRuby 本は積ん読になってました。読まんと。
divip と UNIX USER もチェックしてみます。
あと、ついでといってはなんですが、
Webrick のドキュメント (チュートリアル的なもの) で良さそうなのありますか?
webrick.org にいくつか使用例がありますが、
フォーム (HTTP POST) を使う例が無いのでそこらへんからつまずいてます。
0572nobodyさん
04/03/29 09:30ID:3mAZfbN2ちょっと勉強してみようと思うんだけど、お薦めの本とかあります?
拙者はC言語が分かる程度です。
0573nobodyさん
04/03/29 14:03ID:JHAif1f9たのしいRuby
0574nobodyさん
04/03/30 02:15ID:???Rubyのソースにある sample/webrick/demo-app.rb とか。
GETとPOSTのサンプルだと思います。
0575nobodyさん
04/03/30 02:40ID:???おおお!ありがとうございます。私の目は節穴でした。
言い訳ですが、FreeBSD の ports で入れると、
こういう Ruby 標準添付になった物のサンプルやドキュメントが
ごっそり無くなってる (インストールされない) んですよね。
まだ標準添付にならずに独立してた頃の方が、
そのへんがインストールされる分、良かった。
0576nobodyさん
04/03/30 03:09ID:???sample/webrick以下のファイルは、1.8.1リリース後に[ruby-list:39029]が
きっかけとなって追加されたみたいです。
http://rrr.jin.gr.jp/rwiki?cmd=view;name=ruby-cvs-2004-01-07#a21.3a22.3a19
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/39029
今後portsのrubyが更新されればこの辺のファイルもインストールされる、
と思います。多分。
0578nobodyさん
04/04/11 02:08ID:???perl CGI同様格好のセキュリティホール(攻撃対象)になりそうな予感。
0579nobodyさん
04/04/11 02:33ID:???“perlのCGI並に「動けば正義」みたいだなあ。”
という意味かな?
言語は何を使っても、きちんとプログラムを作らなければ
穴が出来るのは同じだと思うのですが。
0580nobodyさん
04/04/11 03:58ID:???なんとなく人と違うことをしたがるけどほぼ同じ事やってるプチあまのじゃくな人が好む言語ですか?
それならperlでいいじゃないかと正直思う。
0581nobodyさん
04/04/11 04:22ID:???0582nobodyさん
04/04/11 04:56ID:???穴が出来るかどうかと、出来やすいかどうかとは違う話です。
rubyの方が出来にくいと私自身は感じますが、rubyに親しんで無い人が作れば簡単に穴は出来ます。
それはどの言語でも一緒でしょ。
っていうか、そう思うなら自分で「CGIで穴bェ出来にくい」血セ語を作れよ。
どれだけ実用性とバランスが取れた言語が出来るか、見ものだな。
0583nobodyさん
04/04/11 19:08ID:???メリットないならrubyでCGIやる必要ないし。
0584nobodyさん
04/04/11 20:36ID:???0585nobodyさん
04/04/11 21:58ID:???0586nobodyさん
04/04/11 23:04ID:???0587nobodyさん
04/04/12 01:50ID:???ポイントにエサ垂らしてみて食いついてきたらキターって感じ。
デバックしてるときのブレークポイントでうまく捕まえられたときの嬉しさに通じるところがある。
最近は魚も賢くなってあきらかにエサ垂らしても食いついてこないので戦略的に釣りをするところが楽しい。
0588nobodyさん
04/04/12 05:59ID:???Perl使い続ける人は偉いと思うですよ。
Perl使う人は、仕事人という感じがしてる。
歴史が長いから、ユーザが多いからという理由だけてであれを使いつづけられるのは凄い。
コードに好き嫌いは無いというか、いい仕事をする、いいコードを書くというエゴから解放されていると思う。
Ruby使う人は激しく怠け者。
0589nobodyさん
04/04/13 22:38ID:???農作業なんかも得意だと思うね。
0590nobodyさん
04/04/20 15:47ID:Ea+/kdHDで書かれている内容はWindows+Cygwinの環境で試すことができますか?
0591nobodyさん
04/04/20 23:30ID:???Cygwin 上の DB がパフォーマンス悪いくらいのもので。
0592nobodyさん
04/04/21 01:08ID:???0593nobodyさん
04/04/21 09:39ID:???cygwinの方が私には良さそうです。
ttp://pcweb.mycom.co.jp/special/2004/sfu/
0594nobodyさん
04/05/06 00:28ID:wtWitys7この構文で warning: escaped terminator '"' inside string interpolation
と、エラーがでるんですが、原因はなんですか?
0595nobodyさん
04/05/07 22:30ID:OJ0mxpcsわしは、 TapKit に期待してます。
http://www.spice-of-life.net/tapkit/index_ja.html
0596nobodyさん
04/05/08 01:50ID:???お使いのRubyが1.8.0以降でしたら、以下のページの記述が当てはまるかも。
ttp://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=changes.1.8.0.ja
以下引用。適当に改行してます。
文字列の式展開 (expression interpolation in strings)
Now arbitrary statements are allowed inside #{} interpolation without escapes.
In other hand, they can no longer access to variables defined in eval.
#{} の中で、任意の文がエスケープなしで記述できるようになりました。
一方、evalの中で定義された変数にはアクセスできないようになりました。
0597nobodyさん
04/05/08 13:41ID:???PerlとJavaを比べたらPerlのほうがいいと思うよ。しかし、PerlとRubyでは、漏れの場合はRubyのほうがいい。
0598nobodyさん
04/05/13 14:13ID:???ここに色々なtemplateが紹介されてますけど、
皆さんはどれを使ってますか?
使った感想やお勧めがあったら教えてください。
出来れば理由も。
私はtempuraを使って見ようかなと思ってます。
理由は
http://www.imasy.or.jp/~hisa/tempura/tempura.ja.html
を読んで納得が出来たので。
0599nobodyさん
04/05/14 16:45ID:???0600nobodyさん
04/05/14 17:07ID:???0602nobodyさん
04/05/20 12:28ID:NShBOzWM@Perlでは別インストールで多くの人が知らないデーターベース利用を標準で使用できるようにし、「データーベースが簡単に取り扱える」というイメージを特に強く植えつけた。
Aウェブサイト作成への特化。例えば、セッション管理がそうだ。
Bソースの隠蔽による著作権保護を可能にした。
データーベースを使いたいが、使い方がわからない。そこに、PHPなら使えるという情報が先に入る。これで、PHPに入った人もかなり多いはず。
PHPの言語仕様はZendに大きく左右される。
二年ほど前、PHPが出始めた頃には、変数のスコープがPerlとまったく同じ仕様だった。
もともと、Perlのソースコードを改編して作成されたPHP。
↓PHPの歴史
http://php.planetmirror.com/manual/ja/history.php
PHPには、Perlコードの退行による高速化の意図が言語のいたるところに見える。
マイクロソフトは、オブジェクト指向への対応というのが大義にVB6.0からVB.NETに言語仕様を大幅に変えた。
今後も大きく言語仕様が変わることはないのか?
オープンソースとは言っても、Zend社の
http://www.zend.com/management.php
の数人のスタップによって大きく左右される。
再帰的定義とされる「PHP:Hypertext Preprocessor」という名前にも理由がある。これは、要するに、正確には、「Perl Hypertext Preprocessor」としたいところだが、GNUの「GNU is Not UNIX」という再帰的な定義をもじったものだ。
要するに、「GPLのフリーソフトのライセンスには違反していませんよ!」と一つには主張し、また、一つには、「PHP is Not Perl」とでも言って、Zendの社としての姿勢を、先人の「Perl開発者たち」から擁護する意図があったのだろう。
Nではなく、Hなのが、そのための味噌だ!Perl開発者たちは、当然、面白くないはずだ。
PHP信奉者は、六芒星(hexagram)マークのユダヤ教にでも、入信せよ!
0603nobodyさん
04/05/20 16:28ID:cgjPprlDマルチぼけがぁああああああああああああ!!
0604nobodyさん
04/05/23 23:41ID:???def con(str1, str2)
str1+str2
end
普通のRubyだと、
puts con(con("h","o"),"ge") #=>"hoge"
とメソッド内の引数にメソッドを書いてもOKですが、
hikiで{{con(con("h","o"),"ge")}}を書くと、
Hiki::PluginException(wrong number of arguments(3 for 2)): con
が出ます。
0605nobodyさん
04/05/24 01:05ID:???Hikiのプラグインの引数は単に「,」で適当にちぎって
渡すだけで式として評価されるわけではない。ただし
数っぽく見えるものは数に変換したり、"..."や'...'
は外側の「"」「'」をはぎとったりはしてくれたかな。
0607nobodyさん
04/05/24 08:42ID:???うかつに用意するとセキュリティホールになりそうだが。
0608nobodyさん
04/05/24 08:55ID:???0609nobodyさん
04/05/24 15:45ID:Nhm51QmvRuby本体はruby-1.8.1-i386-mswin32.zipを利用しています。
0610nobodyさん
04/05/30 15:58ID:???【オフィシャル】Rubyはこのまま消えていく言語にノミネートされました 【サイト消滅】
http://pc5.2ch.net/test/read.cgi/prog/1085829204/
0611nobodyさん
04/06/28 21:24ID:???0612nobodyさん
04/06/28 21:39ID:???0613nobodyさん
04/07/05 05:17ID:???0614nobodyさん
04/07/05 07:05ID:8NRD/g5jほんとだよ。だれか知らないか。
0615nobodyさん
04/07/25 10:20ID:lhtgOqn2http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/104977
> he is working on restoring the web pages.
ってあるからそのうち復活するんじゃないすかね、きっと。
0616nobodyさん
04/09/06 20:32ID:yBVAikae0617nobodyさん
04/10/08 03:24:16ID:???Ruby人口って激減してるの?
0618nobodyさん
04/10/08 11:01:15ID:???CGIならPerl、というのが結局定着してるし。
0619nobodyさん
04/10/12 14:03:12ID:???0620nobodyさん
04/10/12 20:39:31ID:???0621nobodyさん
04/10/18 04:58:49ID:???単なるフォームの場合はわかるんですけども。
0622MoonWolf ◆BwMoonWLvE
04/10/18 21:46:47ID:???ソースをアップしてくれたらアドバイス出来るかもしれない。
普通はLocationヘッダを吐くか、<meta http-equiv="Refresh" content="10;URL=http://example.com/">
みたいなHTML吐いてリダイレクトさせる。
0623nobodyさん
04/10/18 22:01:58ID:MFPrIGvPCGIKitの場合は
response.set_redirect(飛び先のURL)
ですよ。
ちなみにファイルアップロードの時って違いあるんだっけ?
0624nobodyさん
04/10/19 01:06:57ID:???お答えいただいた内容をもとに解決することができました。
0625nobodyさん
04/11/11 16:59:35ID:???CGIKitはWebObjects風に<CGIKIT>タグをtemplateに埋め込むが、
SWSは通常のHTMLタグにsws属性で指示を埋め込めるらしい(Tapestry風か)。
通常タグの方が、templateのデザインにHTMLエディタが使えていいんだが、
CGIKitとしては「プリプロセッサでやってくれ」という立場のようだ。
http://www.freeml.com/message/cgikit@freeml.com/0000480
というわけで、SWSの方が筋が良さそうなんだが、誰か使ってる奴いる?
0626nobodyさん
04/11/11 23:34:30ID:???やっぱりTemplateEngineは自作でしょ
0627nobodyさん
04/11/12 11:58:22ID:???0628nobodyさん
04/11/12 23:41:20ID:???割と簡単だったので今書いてるプログラムに使う予定。
ruby-listのがちょっとアレだけど、まあ。
0629nobodyさん
04/11/13 01:24:13ID:a20D0PWxどこのサイトか誰か知りませんか?
0631nobodyさん
04/11/22 04:45:41ID:???print "content-type: text/html\r\n\r\n"
# htmlをプリント
のようなcgiがまともに動きます.
ttp://arika.org/doc/debuan.mod_ruby.html.ja
ここを見る限り,
print "HTTP/1.1 200 OK\r\n"
などを書いてからじゃないと駄目くさいですが,
これはmod_rubyが使われていないって事でしょうか…?
0632nobodyさん
04/11/22 06:06:28ID:???サンプルのhttpd.confのままだと/rubyにrubyスクリプト置かなきゃ駄目なんですね…
恥ずかしい…
0633nobodyさん
04/12/09 01:38:09ID:???0634nobodyさん
04/12/11 01:20:49ID:???ちょっと感動した。
っても、BTS使おうよ!!とこれから会社の連中に頼み込まねばならんのだがorz
# どうせならDB、Firebirdにも対応させたいなぁ
0635nobodyさん
04/12/11 09:19:02ID:???なかなか便利だ。
っても、おれのToDoがバグ呼ばわりされてしまうのがorz
# 最初の報告者の表示を消したいなぁ
0636nobodyさん
04/12/15 22:22:22ID:GHNVBmM130歳を超えたサラリーマンの日曜プログラマは作りかけのスクリプトを一ヶ月ぶりに開くなんてザラ。
この歳になると記憶力も相当に落ちているので、コードが読みやすいことは切にありがたいのです。
0637nobodyさん
04/12/31 22:25:51ID:???来年はCGIクラスが使いやすくならないかな。
0638637
04/12/31 22:35:02ID:???などと思っていたら……
RAA - cgi_adjuster
http://raa.ruby-lang.org/project/cgi_adjuster/
というのがありました。
http://www.nslabs.jp/rubycgi-18compat.rhtmlを読むと「とぼけた失敗」
「Ruby 1.8.1でもRuby 1.8.0と非互換な変更が入っている(ふざけているの?)」
などと、そうとうお怒りのご様子。
0639nobodyさん
04/12/31 23:46:34ID:???これは開発者のメンタリティの問題だが。
0640nobodyさん
05/01/01 00:46:57ID:???いつまでも cgi.rb なんか使い続けてる方が間違いでしょう。
0641nobodyさん
05/01/01 14:50:38ID:???標準添付のがまともだと言う気はさらさらないが。
0642nobodyさん
05/01/01 18:47:11ID:???0643nobodyさん
05/01/01 21:09:57ID:???とか言うと荒れそうなのでやめとく。
0644nobodyさん
05/01/02 06:43:52ID:???WEBrickのServletとしてもすぐに使えるように作れるし。
0645nobodyさん
05/01/02 15:28:22ID:???え、標準添付? ……うぉっ、ほんまや。
たまにはmake installしたあとlib以下ものぞいてみるもんですなorz
つらつら眺めてみるです。さんくー
0646nobodyさん
05/01/03 09:59:01ID:???0647nobodyさん
05/01/03 15:10:16ID:???1.8.3が出る事には改善されていると思いますよ。
……などと他人事のように書いているのが間違いなのか。
0648nobodyさん
05/01/04 08:17:56ID:Y50UuVB0他に乗り換えなきゃいけないくらい深刻?
0649nobodyさん
05/01/05 00:21:46ID:???あるとしたらどんな点ですか?
0650nobodyさん
05/01/05 01:27:35ID:???638で出てる辺りは結構イヤソな気も。
0651648
05/01/05 07:58:47ID:ZQKhbklSたしかにそれはある。
>>649
CGIがRubyの書式で気持ちよく書けることでしょ。
またいったん覚えたらRubyの方がいろいろと他の用途にもつぶしがきく。
でもウェブ技術に限定すれば、ユーザーも多く高速なうえサーバー負担も軽いときているPHPには到底及ばん罠。
0652nobodyさん
05/01/05 15:29:45ID:???0653nobodyさん
05/01/05 22:26:57ID:???PHP使うときは99%mod_phpで動かすからなぁ。
mod_perlやmod_ruby使えば……むー、どうなんだろう? いいベンチの取り方ないかなぁ。
(っても、まずmod_php、mod_ruby(とついでにmod_perl)使えるようにして
各言語でカリカリにチューニングしたコード書かなきゃならんよなぁ。マンドクセ)
0654nobodyさん
05/01/06 00:27:16ID:???ウェブ用途で使いたい奴の大半は共用鯖で使うこと考えてるわけだしなぁ
0655nobodyさん
05/01/06 00:42:36ID:???0656nobodyさん
05/01/06 19:27:54ID:???ウェブに特化して設計してあるから、仮にあっても汎用的なスクリプト言語としてはまだまだ非力だと思うがなぁ。
0657nobodyさん
05/01/06 20:24:46ID:???あるよ。
ちょこっとテストしたいときとかに、コマンドラインで、
% php hoge.php
みたいに試せるので便利。
ただ、それ単体で実用しようという気にはなれないけど。
0658nobodyさん
05/01/07 22:10:24ID:???CLI(Command Line Interpreter(?))ってのがあって、ソースからコンパイルするとそれが/usr/local/binとかにインストールされる。
それとは別にCGI実行用のコマンドも作れるのだが、コマンドラインからスクリプトを実行しただけで必ずHTTPヘッダが出力されるからいやーん。
Webプログラミングから入った人が簡単なコマンドラインスクリプトを書くには、やっぱりCLI版のPHPがいい。おれはよく使う。
0659656
05/01/08 12:13:44ID:???結構何でもできるとなるとユーザー多いから結構なコミュニティに発展しそうだね。
ピーエイチピーはスルーしない方がいいね。
0660nobodyさん
05/01/08 12:43:12ID:???0661nobodyさん
05/01/08 12:56:05ID:???0662nobodyさん
05/01/08 13:58:42ID:???ところで mob とか perl_mob とかって一体何?
0663nobodyさん
05/01/08 14:12:10ID:???apachのモジュールとして動いてるって事。>mob
0664nobodyさん
05/01/08 14:14:51ID:???0665nobodyさん
05/01/08 14:16:31ID:???moduleでしたな。。
0666nobodyさん
05/01/08 16:15:18ID:???もうちょっとマシなのは ないんすかね。
あ、WEBrick::CGI使うのを想定してます。
0667nobodyさん
05/01/09 09:10:41ID:???Tofuが常道とは思いませんが、他にセッション管理のみを扱うライブラリは
見当たらなかったような。もしくはフレームワーク(CGIKitとかrailsなど)を使うとか。
ところでTofuだと何か問題がありました?
0668nobodyさん
05/01/09 20:50:59ID:???Tofu::sessionクラスを継承したセッションオブジェクトの中に
全てをくるまないといけないので、自前のクラス設計とコンフリクトしそうで嫌なんです。
あとからセッション管理を追加するときに大幅にクラス設計見直す必要がありそうだし。
cgi/sessionみたいに軽くつかえる奴が欲しい。
0669nobodyさん
05/01/10 09:17:19ID:???http://moonrock.jp/~don/ruby/webrick/session.rb
やっつけですが、CGI::Sessionを移植しました。
WEBrick::Session#updateを明示的に呼び出さないと
セッション情報が更新されないという中途半端な状態ですみません。
http://moonrock.jp/~don/ruby/#WEBrick3a3aSession
に動作サンプルもあります。
0671666 = 668
05/01/11 03:03:29ID:???おおー。こういうのが欲しかったんです。
ありがとございますん。
さらに欲をいうと、こいつを、WEBrick::CGIだけじゃなくてServletでも使いたいな、と
思うわけですが、それは無謀?
ファイナライザがそのまま使われているようなので、
そのままじゃ使えないとは思いますが。
0672669
05/01/11 06:42:23ID:???ファイナライザの代わりに、WEBrick::Session#close(またはupdate)を
明示的に呼び出すことでデータを更新できます。
http://moonrock.jp/~don/ruby/#WEBrick3a3aSession
にサンプルを増やしました。
0673nobodyさん
05/01/11 17:22:13ID:lK4o2i8Pセッションって確立しないとどうなるの?
0674nobodyさん
05/01/11 23:05:52ID:???0675nobodyさん
05/01/11 23:21:34ID:???0678nobodyさん
05/01/12 15:16:06ID:???あるHTTPリクエストと、別のHTTPリクエストが、同一のユーザによる一連の操作であるかどうかがわからない。
ただそれだけ。
0679nobodyさん
05/01/12 18:15:05ID:+NFabzw5>>677
>>678
ありがとうです。
ショッピングカートとかならまだしもですが、ただの掲示板には要らなさそうですね・・・。
0680nobodyさん
05/01/12 22:07:09ID:???0681nobodyさん
05/01/12 23:33:50ID:???0683nobodyさん
05/01/13 08:14:30ID:a5QOCrWy一連の操作で使う共通の変数とかもそれ用のログファイル作ってそれに保管しとけばそれらしい挙動しそう。
0684nobodyさん
05/01/13 08:17:05ID:???セッションが必要ならセッションを実現すればよい。
結局、セッションもどきなど必要ない。
0685nobodyさん
05/01/13 08:50:59ID:a5QOCrWy0686nobodyさん
05/01/13 09:15:31ID:???セッションの確立にはリクエストを横断した固有情報があればよく、それはURLに埋め込んでも、
フォームの隠しフィールドに入れても構わない。
ただその場合はHTMLの動的生成能力が必要になる。
0689nobodyさん
05/01/14 17:22:14ID:2UhA1iN00691nobodyさん
05/01/14 17:48:34ID:2UhA1iN00692nobodyさん
05/01/14 18:22:52ID:???0693nobodyさん
05/01/14 18:42:15ID:2UhA1iN0時代は変わったんだし、メモリはケチらず使うことにするよ。
たしかに20年前のマシンのメモリは2キロバイトとかザラだったなあ。
0694nobodyさん
05/01/14 19:05:07ID:???「任意の行だけ」 「その行だけ」ってあたりが
ストリームで順次読み込んで該当行のみ処理して操作みたいなフィルタ的な事が
したいようにみえて CGIで んな事いってもなぁって思っただけw
0695nobodyさん
05/01/14 19:19:05ID:???これでファイルをメモリにmapするとか。
0696nobodyさん
05/01/17 17:17:54ID:LAuXubNJ掲示板とかでログの各行を配列に読み込むより効率的と思ったんだが。
0697nobodyさん
05/01/17 17:20:46ID:???taintできないから
0698nobodyさん
05/01/17 20:20:14ID:???追記するにもファイルの中身全部読んで
要素を追加した上で全部書きださないといけないし
0699nobodyさん
05/01/18 08:04:09ID:azVqGT4+0700nobodyさん
05/01/18 13:42:37ID:???ちと taint っていうのを知らなかったのですが、
AAA でなら Marshal は使えましたよ。
解析を行った結果をシリアライズして保存しておけば、
次読み込む時はスクリプトレベルでの解析を実行しない分高速化できますよ。
掲示板でいうならテンプレート部分とか。
0701nobodyさん
05/01/18 13:52:57ID:???taint できないというのはどういう問題?
たとえばテキストファイルに保存する場合は taint できて Marshal だとできない?
0702nobodyさん
05/01/20 17:28:23ID:???railsでセッション管理をやってみたいと思っています。上の資料だと、
DRb Store かActiveReco Storeがよさげです。
どちらかの実際のコードを示した資料はあるでしょうか?
0703nobodyさん
05/01/21 10:38:11ID:???そのベンチマーク自体はElite Journalを使って行われたものみたいだから、
それのコードを読んでみるとか。
ttp://elitejournal.rubyforge.org/
あと、Rails使った事ないので適当だけど、
RailsのWikiにも参考になりそうページがあるよ。
ttp://wiki.rubyonrails.com/rails/show/HowtoSetupDistributedRuby
ttp://wiki.rubyonrails.com/rails/show/HowtoChangeSessionOptions
で、何か会得したらどこか(RWikiとか?)にまとめてもらえると嬉しいな。
0704nobodyさん
05/01/21 17:06:59ID:???Elite JournalというのはBlogシステムであり、Railsを使って作って
いるんですね。とても参考になりました。EJで調べます。
ありがとうございました。
==================
rails-0.9.4.1だと、EJのINSTALLに書かれている手順では動きませんね。
(No such file to load -- application.rb)
rails-0.8でないといけないかも。
0705nobodyさん
05/01/27 14:23:39ID:D1xpGaFb0706nobodyさん
05/01/27 14:58:51ID:???0707nobodyさん
05/01/27 15:23:08ID:???http://www2.w-shokokai.or.jp/yuasa/kankou/sannsaku/sio/sio.html
0708nobodyさん
05/01/27 16:36:45ID:???http://dev.rakusui.jp/diary/?date=20050124#c03
0709nobodyさん
05/01/28 00:17:00ID:???文字列しかセットできないの?
簡単なコードを書いたけど、うまく渡せたり渡せなかったりです。
1. ShoppingCart.rb
2. @session[:cart] = cart (in controller/application.rb)
3. うまく渡せたり渡せなかったり。。
0710nobodyさん
05/01/28 00:23:23ID:???ほぼ何でも入ります。」とのこと。
(CGIKitを調べはじめていた(^^; 失礼しました。
0711nobodyさん
05/01/29 23:15:15ID:???require "cgi"
cgi = CGI.new
file = cgi.params["file"][0]
で受け取ったファイルを"gazou.jpg"という名前でサーバーに置きたいんだが、
fh = open("gazou.jpg","w")
fh.print file
fh.close
ってやっても、できたgazou.jpgは空っぽ。
なぜだー!
初心者ですまそ。
0713nobodyさん
05/01/30 01:31:36ID:???> file = cgi.params["file"][0]
multipart の場合は、この file は TempFile クラスか StringIO クラスのオブジェクトです。
0714713
05/01/30 01:48:09ID:???0715711
05/01/31 00:34:13ID:???ちゃんと本見てるので、そこは押さえてまつ。
その本には送られてきたテキストファイルの内容をそのまま表示する方法しか載ってなかったもんで。
>>713
fhにfileの内容を出力するのにprintメソッドじゃダメってこと?
0717nobodyさん
05/01/31 02:09:28ID:???CGIパラメータの取得方法は、Ruby1.8系から変わってる。
もしもrubyのバージョンが1.8以降なら、ちょっとリファレンスを読んでみ。
0718nobodyさん
05/01/31 03:08:48ID:???0719711
05/01/31 07:51:50ID:jhetKWRLfile.readってやるのね。
激しくサンクスです。
0720711
05/02/02 07:41:41ID:+oua1U51サーバエラーにはならないけど、.readのあたりでスクリプトが止まります。
バージョンは1.6.8です。
もうcgiライブラリを使う方法はあきらめ、直接ARGF.readで得たバイト列からJPGファイルを生成しようかと考え中。
0721nobodyさん
05/02/02 10:23:32ID:???0722711
05/02/02 18:12:23ID:+oua1U51オープン時に"wb"ってやってますが・・・。
0723721
05/02/02 22:11:33ID:???file = cgi.params["file"][0]
を
file = cgi["file"][0]
に変えて試してみそ。
# それにしても、この辺の仕組みややこしすぎ。
0724711
05/02/04 08:49:40ID:rvzKvXg/params抜いてためしてみましたがやっぱりダメでした。
とほほ・・・
ルビー挫折しそう。
0725nobodyさん
05/02/04 09:05:33ID:???あと考えられるのはHTMLの間違いくらいしか無い……
ここで諦めるなら、無理に押しつけるつもりもないけれど
まだ挑戦する気力があるなら以下のことを書いてくれ。
・readのところで止まるとき、どんなエラーが出るか
・現時点でのソースコードはどうなっているか
・フォームを生成するHTMLはどうなっているか
0726nobodyさん
05/02/04 19:00:38ID:???部分的にでもコード晒せばいいのでは?
あとその昔のサンプルコードだけど今でも有効なはず。
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/25399
降ってくるのはMIMEヘッダが付いたバイナリ列であり、POSTのデータは普通のCGIなら(mod-rubyは知らん)
標準入力から来るから、こんなんで
#!/usr/local/bin/ruby
print "Content-type: text/plain\n\n";
print ARGF.readlines.join
こんなの
-----------------------------20164375627006
Content-Disposition: form-data; name="filename"; filename="nspr4.dll"
Content-Type: application/x-msdownload
MZ……
が見えないならどっかおかしい。
0727726
05/02/04 19:01:51ID:???<html>
<head>
<title>upload</title>
</head>
<body>
<form action="/cgi-bin/print.rb" method="post" enctype="multipart/form-data">
<input type="file" name="filename" size="32" maxlength="256"></input>
<input type="submit" value="submit">
</form>
</body></html>
0729728
05/02/04 19:32:50ID:???0730711
05/02/05 09:18:52ID:???今現在は、こんな感じです。
#!/usr/local/bin/ruby
print "Content-type: text/html\n\n"
require "cgi"
cgi = CGI.new
file = cgi["file"][0]
fh = open("test.jpg","wb")
fh.write file.read
fh.close
print <<EOF
<html><head><title>test</title></head><body>
<img src="test.jpg" alt="test"><br>
<form action="test.cgi" method="post" enctype="multipart/form-data">
<input type="file" name="file" size="70">
<input type="submit" value="upload">
</form></body></html>
EOF
0731711
05/02/05 09:24:19ID:???で、ブラウザが真っ白な画面を出力して終わります。
なぜか.readをはずすとHTML出力まで行ってくれますが、
そのフォームを利用してファイルを送信するとまた真っ白な画面になります。
>>726
print ARGF.readではちゃんとそんなのが出てきます。
それを使えばjpgファイルへのデコードも可能ではないかと考えました。
みんな親切(涙)
0732nobodyさん
05/02/05 11:17:52ID:???おそらくは、パラメータに値(ファイル)が入っているかどうかを判定していないのが原因。
つまり、最初にCGIを呼び出したときには
file = cgi["file"][0]には空文字列しか入っていなくて
その空文字列に対してreadを送ったために、エラーで出力が止まった。
標準出力と標準エラー出力を、適当なテキストファイルに設定して確かめてみるといいかも。
$stdout = open('./output.txt', 'w')
$stderr = open('./error.txt' , 'w')
0733nobodyさん
05/02/05 15:52:29ID:???一緒にせずにUP用のHTMLファイルと受け付け用のスクリプトファイルにするのが普通だろ。
切り分けができないとテストにならないじゃないか。
0734nobodyさん
05/02/05 16:07:42ID:???cgi = CGI.new
file = cgi["file"]
if file.respond_to?(:read)
fh = open("test.jpg","wb")
fh.write file.read
fh.close
end
# やっぱり cgi.rb は捨てた方が・・・
0737nobodyさん
05/02/05 21:41:39ID:???0739nobodyさん
05/02/05 23:34:56ID:???自分用のcgi.rbラッパーを作った方が良い。
コア部分は歴史を重ねて、それなりに堅牢に出来てるんだから
そのまま捨ててしまうのはもったいない希ガス。
0740nobodyさん
05/02/06 00:36:37ID:???0741nobodyさん
05/02/06 10:05:55ID:???その方法だと、ファイルを送りたいときが問題になる。
……と思ってたら、ファイルを送ってもちゃんとparamsで受け取れるのか。
さっそくリファレンスマニュアルに書いてこよう。
0742711
05/02/06 11:03:41ID:???HTML部とCGI部とを切り分け、CGI部にbegin〜rescue〜endを入れてエラーの内容を出力させたところ、
RuntimeError
cannot generate tempfile `/tmp/CGI2732.9'
C:/usr/local/lib/ruby/1.6/tempfile.rb:46:in `initialize'
C:/usr/local/lib/ruby/1.6/cgi.rb:805:in `new'
C:/usr/local/lib/ruby/1.6/cgi.rb:805:in `read_multipart'
C:/usr/local/lib/ruby/1.6/cgi.rb:918:in `initialize_query'
C:/usr/local/lib/ruby/1.6/cgi.rb:1916:in `initialize'
C:/homepage/public_html/test.cgi:7:in `new'
C:/homepage/public_html/test.cgi:7
と出てきました。
test.cgiの7行目はなんと"cgi = CGI.new"文。
これってひょっとしてバグ・・・?
0743nobodyさん
05/02/06 11:30:17ID:???> cannot generate tempfile `/tmp/CGI2732.9'
Windowsで使うことを考慮してないみたいですね>cgi.rb
0744nobodyさん
05/02/06 11:52:16ID:???そこまでくると、今度こそrubyインタープリタの問題か……。
mswin版の1.6.8で試してみることをお薦めします。
ちなみに俺の環境では、mswin版1.6.8(正式版)を An HTTP Daemonで走らせている。
0745711
05/02/06 12:42:46ID:???0746nobodyさん
05/02/06 19:21:18ID:???CGIじゃなくて、tempdir.rbの仕様。
def initialize(basename, tmpdir=ENV['TMPDIR']||ENV['TMP']||ENV['TEMP']||'/tmp')
ソース見りゃわかるが、上記なので環境変数TMPDIR,TMP,TEMPと見ていって、無ければ/tmpが採用される。
なので環境変数で適当な存在するディレクトリを指定すべし。
0747711
05/02/06 23:58:49ID:???で、できましたーーーーーーーーーーーーー!!!!!!
/tmpがないんだったら/tmpを作っちゃえばということで、
c:\にtmpっていうフォルダ作ったら解決しちゃいました!
みなさん親切にどうもありがとうございました!
0748nobodyさん
05/02/07 14:00:14ID:???環境変数をいじっているかそれとも An HTTP Daemon がうまいことやってくれてるの?
0749711
05/02/07 14:31:14ID:???レンタルサーバのルートにtmpディレクトリがなかったらアウト。
さすがにレンタルサーバの環境変数とかをスクリプトでいじったら怒られるよな・・・orz
0750nobodyさん
05/02/07 14:34:54ID:???0751nobodyさん
05/02/07 15:07:32ID:???ていうか711は2chで人に聞いて場当たり的に解決しようとする前に、
本などでもっと体系的に勉強した方がいいですね。
環境変数とかの理解が間違ってるよ。
0753nobodyさん
05/02/07 16:32:58ID:???C:\tmp つくるよなーふつー (´ー`)y─┛~~
0755nobodyさん
05/02/07 17:17:27ID:???プラットフォーム非依存なライブラリに埋め込んでるのがおかしいんだけどな。
Windowsにも標準のディレクトリあるんだから、Rubyがそれをちゃんと使えば済む話。
0756nobodyさん
05/02/07 17:26:08ID:???0757711
05/02/07 18:44:17ID:???ほんとうに何から何までありがとうございました。
まだまだご指摘のとおり勉強不足なのでこれを励みにまた修行にいそしみます。
0758nobodyさん
05/02/08 18:41:54ID:???0760nobodyさん
05/02/08 20:36:40ID:???「%なんたら%」って何?
つーか、 1.8 と同じように tmpdir.rb を使えばいいんじゃないの?
shim に入ってるよね。
0761nobodyさん
05/02/08 21:16:54ID:???0762nobodyさん
05/02/09 01:34:18ID:???0763762
05/02/09 01:36:57ID:???回線切って(ry
0764nobodyさん
05/02/09 18:27:14ID:???都合で、画像のアップロードのスクリプトを作成していたのですが
http://www.geocities.co.jp/Playtown-Knight/9224/sinku-2.jpg
http://www.geocities.co.jp/Playtown-Knight/9224/sinku-2-2.png
という風に、画像のサイズが64kを越えると、そこから先が表示されないようになっているのですが
この仕様に突いて、原因や対処法をご存じの方はいらっしゃらないでしょうか?
マルチ臭いことしてすいません…orz
実行環境はWin2K+Apache2+Ruby1.8.1
ブラウザはFirefox、IEとも同じ症状が出るので、関係無いかと…
http://www.geocities.co.jp/Playtown-Knight/9224/imgup.zip
0765nobodyさん
05/02/09 19:44:01ID:???同じ状況で試せなくて参考にならないかもしれませんが、
OSX10.3、Safari、Ruby 1.8.2という組み合わせでは
64キロバイト以上のファイルもうまく動きました。
環境かRubyのバージョンに依存した問題かな、
と適当に言ってみる。
0766nobodyさん
05/02/09 19:54:13ID:???Windows + Ruby1.8.1 + AN HTTPDaemon
「ファイルを書き込むパスに問題がある」節を提案(論拠なし)
0767nobodyさん
05/02/09 19:56:27ID:???うちでも動いてる。
WinXP+Apache2+Ruby1.8.2
動いてるというか動くように修正したら表示されてるし保存ディレクトリに問題なく保存されてる。
0768nobodyさん
05/02/09 20:10:39ID:???回答ありがとうございます!
となると、OS依存かRubyのバージョン依存の問題のようですね
一応、Helpに書き足して置いて、後に回そうかな…
0769nobodyさん
05/02/13 16:08:07ID:7Ta9le/gルビーでないとできないことでもあるの?
0770nobodyさん
05/02/13 19:44:01ID:???ピーエイチピーやパールでないとできないことでもあるの?
0771769
05/02/14 08:18:39ID:???スレ汚してごめそ。
0772nobodyさん
05/02/14 08:57:01ID:???なにが解決したのかすげー気になる
0773769
05/02/16 15:57:36ID:???ルビー使いにはルビーでシージーアイが書けることがすでにメリットなんだろうなーって勝手に納得しちゃいました。
0775nobodyさん
05/02/17 09:26:14ID:???0776nobodyさん
05/02/18 21:21:04ID:???0777nobodyさん
05/02/19 01:29:20ID:???http://amrita.s14.xrea.com/d/?date=20041217#p02
>amrita2 は二種類のAPIをサポートします。
> ・アクティブレンプレートAPI(これは基本的にはamrita 1.0.x互換)
> ・パッシブテンプレートAPI(柔軟性に富んだ新しいAPI)
0778nobodyさん
05/02/19 02:30:26ID:???0779SikiTemplate作者
05/02/19 02:56:09ID:???変換速度を測定しました。
○測定内容
http://rubyforge.org/cgi-bin/viewcvs.cgi/amrita2/sample/hello/conditional.rb
のテンプレートを100倍の長さにしたものをベースにして、
それぞれのテンプレートエンジンでパース&コンパイル
したときの時間を測定。
○結果
"ERB: 0.202999999999999"
"Amrita: 5.047"
"Amrita2
Push: 2.453"
Pull: 2.344"
"XTemplate: 1.359"
"Web::Template: 0.172000000000004"
"misen: 0.108999999999995"
"SikiTemplate
Memory: 0.390000000000001"
NoCache: 0.359999999999999"
Cache: 0.297000000000004"
結果がなかなか安定しないので、参考程度に……
misenの速さが目立ますな。何やっているんだろう?
Amrita2もそこそこ速くなっていますね。
0780nobodyさん
05/02/19 03:42:17ID:???おつ
パース&コンパイルの時間ということですが、実際の出力を生成する時間は含まれてる?
実際に使うときには、そこも結構問題になると思うんだけど。
たとえば ERB のようにコンパイル後の結果を保存できるなら、コンパイル時間はそれほど問題にならない。
Ruby のスレでは amrita の問題点として、コンパイルした結果に値をバインドするところが遅いという話も出てたし。
amrita の処理時間の感じでは、含まれた結果なのかな・・・
0781779
05/02/19 03:49:56ID:???>パース&コンパイルの時間ということですが、実際の出力を
>生成する時間は含まれてる?
含まれます。
Amritaだと、この部分のutimeを測定しています。
time = Process.times.utime
Amrita::TemplateText.new(amritatmpl).expand(r, { :groups=>model_data })
p "Amrita: " + (Process.times.utime - time).to_s
0782nobodyさん
05/02/19 03:54:17ID:???そうすると速度が欲しいなら misen が良さそうだね〜
0783nobodyさん
05/02/19 10:59:16ID:FeDqIee/Ruby製のいいお手本がありましたらどこにあるか教えていただけますか?
Perlのはたくさん出回ってるけど、私には読めないので・・・orz
本文とレスの区別のないBBSはRubyCGI.orgでマスターしましたが、
レス機能をつける場合のスクリプトの書き方が思い浮かばないんです。
0784nobodyさん
05/02/19 13:12:09ID:???確かに見付からんね……
ただ、
・発言ごとに発言IDを付ける
・レスの場合は書きこみと一緒に発言IDをpostするようにeditページを作る
ぐらいで対応できるんじゃない?
0785nobodyさん
05/02/19 13:28:17ID:???たださんみたいな人がもうちょっといないとRubyの将来は(ry
0787783
05/02/19 17:51:17ID:FeDqIee/なるほど。ありがとうございます。
(1)レス送信時に、どの本文へのレスであるかの情報(ID)も同時に送信。
(2)受け取ったIDからその本文のログのある場所を特定。
(3)そのログの次の行にレスを挿入。
こんなアルゴリズムでオッケーでしょうか?
ほかにも効率的な本文&レスを区別するログ管理の方法がありましたら伝授ください。
Ruby以前の問題なので、スレ違いかも・・・orz
0788nobodyさん
05/02/19 18:22:49ID:???0789783
05/02/19 19:52:09ID:???0790779
05/02/19 20:43:07ID:???>amrita2の解説
>http://amrita.s14.xrea.com/d/?date=20041217#p02
テーブルの処理は面白そうだなぁ
良くある「シマシマテーブル」もこれでできるようになるかな?
自分のテンプレートエンジン(SikiTemplate)でも「シマシマテーブル」
できるような仕組み作ってみました。
……テンプレート側で指定できるのと、ロジック側でいじくるの、
どっちが嬉しいのかな?
require 'xml/simple-template'
# その指定が現れるごとに、[]の中に指定された
# テキストを順番に埋め込みます。
t = Template.new( '<r b="$n" c="@m|RotateValue[t1, t2, t3]"/>' )
p t.parse( {:n => [ true, true, true ] })
# =><r c="t1"></r><r c="t2"></r><r c="t3"></r>
0791nobodyさん
05/02/20 06:53:58ID:???Tofu & WEBRick についての、英語の情報がほしいとさ。
神降臨キボン
0792nobodyさん
05/02/20 08:07:28ID:???「表示のためのロジック」なので、プレゼンテーション側で行うべき。
ただしHTMLを汚したくないなら、Rubyプログラムのほうに書く方法でもよい。
どっちにでも対応しているのが理想。
0793nobodyさん
05/02/20 18:19:16ID:???> #ページのタイトルと大見出しを同じにするとか
異なるID属性に同じ値を割り当てれば済む話。
もしくは、ID以外の属性を使用する。
そもそも、『ID属性が重複してしまうことがある(名前の衝突を気にしないといけない)』、
だから『重複が簡単にチェックできるID属性が逆に好ましい』という話の流れだ。
そこに『複数箇所に同じデータを代入できない』というのは、ID属性つながりではあるが論点が違う話だろ。
そもそもこんなのは、異なるID属性に同じ値を設定できないようなテンプレートシステム自体が悪いのであって、
ID属性を使うこと自体はまったく悪くない。
> それはプログラム側で対応しろということかな?Kwartzには無いよね?
方法1:
#title {
value: str;
}
#h1 {
value: str;
}
方法2:
<title kd="value:str">ヘッダタイトル</title>
<h1 kd="value:str">本文タイトル</h1>
0794nobodyさん
05/02/22 23:30:21ID:Tjgj+8tnhttp://www.geocities.co.jp/Playtown-Knight/9224/pack.zip
自分のサイトの更新用スクリプトを継ぎ足して、簡単なブログツールを作ってみました
REXMLで指定したidの場所に記事を埋め込むだけのローテクなアイテムで
さっきまで話題だったKwartzとかのテンプレートエンジンに喧嘩売っていますけど
自分環境の1.8.1+Apache2では動いていますが、動かなかったらごめんなさい
0795794
05/02/23 17:59:57ID:PD4NA/SPhttp://www.geocities.co.jp/Playtown-Knight/9224/pack.zip
すいません、これで動くはずです…orz
0796nobodyさん
05/02/24 22:20:50ID:LIVjVx8+http://rubyforge.org/projects/amrita2/
0797nobodyさん
05/02/24 22:56:23ID:???0798の
05/02/26 15:44:54ID:???http://www.fiercewinds.net/siki/cgi/index.cgi?Command=Show;Target=Ruby%2FApplication%2FSikiTemplate%2F%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%AB%E3%82%88%E3%82%8B%E8%A7%A3%E8%AA%AC
よろしければコメントちょうだい
0799nobodyさん
05/03/03 02:04:33ID:???$$@とか覚えられそうにないなぁ、というのが感想。
あと、SikiTemplate::Executeのサンプルコードが分かりにくい。
"sample".to_s の結果が展開されるっていわれてもうれしくないし、
というか最初なにをやっているのか理解できなかったです。
で、ためしに実行してみると動かないし。
> ruby test.rb
./siki-template.rb:622: warning: character class has `]' without escape
test.rb:4: uninitialized constant Template (NameError)
サンプルはこういうのの方がいいんじゃないかなぁ。
t = Template.new( "<r class=\"$m.iso8601\"/>" )
Template.use_execute = true
r = t.parse( { :m => Execute.create( Time.now ) } )
p r # => "<r>2005-03-03T01:55:55+09:00</r>"
0800の
05/03/04 01:18:35ID:???さんくす
>$$@とか覚えられそうにないなぁ、というのが感想。
やっぱり難しいかね……
いっそのこと
1.<!--++変数++-->で弟タグに変数名を埋め込むのが
普通の使い方
2.$$@とかはタイプ量を減らすための略記法
とかにしたほうが良いかしらん……
>あと、SikiTemplate::Executeのサンプルコードが分かりにくい。
確かにそうですね。修正しました。
ついでに変なWarning出ているのを修正しますた。
0801798
05/03/04 14:47:01ID:???ついでにコメントタグも、 <!--__title__--> に変更して
見やすくしますた。
0802799とは別
05/03/06 12:52:51ID:???覚えにくいというよりは理解しにくい。表記法は二の次。
説明がへたでわかりにくいのか、そもそもの設計がわかりにくいのかはしらん。
0803798
05/03/06 14:50:51ID:???説明がへたでわかりにくい、つうのはあるわな……
今作っている英語版をベースに書き直しマスタ。
0805nobodyさん
05/03/21 00:46:10ID:???0806nobodyさん
2005/04/02(土) 23:54:30ID:???ttp://amrita.s14.xrea.com/d/?date=20050401#p01
0807nobodyさん
2005/04/03(日) 01:35:37ID:???CGIを洗練したものかしらん?
0808nobodyさん
2005/04/03(日) 11:49:58ID:???モックアップの作成に使えそう。
0809の
2005/04/03(日) 14:07:10ID:???と言ってもerbとのギャップはいかんともしがたいなぁ
ヘルパーツールを強化してみるか……
0810nobodyさん
2005/04/10(日) 08:35:01ID:???どう設定していいのかわからん。
0811の
2005/04/10(日) 15:58:39ID:mwz/LZVrSikiTemplateのモデルデータ構築方法を改造しました。
従来のHash/Arrayを使った方法以外に [], []=, <<を使った方法を追加シマスタ。
こんな感じ
t = Template.new('<r><a t="$n">Test<a class="$m" attr="m">case</a></a></r>')
t = Template.new('<r><!--__n__--><a>Test<a class="$m" attr="m">case</a></a></r>')
t.modeldata[:n][:m] = "C1"
t.modeldata[:n] << "test2"
t.modeldata[:n] << "test3"
assert_equal( t.parse, '<r><a>Test<a attr="m">C1</a></a><a>test2</a><a>test3</a></r>')
これでモデルデータを構築するときの違和感が減ると思うけど、どうよ?
0813nobodyさん
2005/04/26(火) 22:18:49ID:???0814nobodyさん
2005/04/27(水) 00:47:58ID:???2のサンプルについてきたCKWikiのソースを追っかけていてかなり迷子になった。
cssを読めてないんでなぜかと思ったらApplication#document_root他の設定が足りなかったのと
WikiPage#cssでちょいと手を入れてやらないといけなかった(これはディレクトリを奇天烈な構成に
したせいだがorz
ともあれ、今後自分でRubyコード書くときは引数のないメソッドを呼ぶときも()付けようと決意した一日だった。
0815nobodyさん
2005/04/27(水) 21:55:19ID:???亀レスですまんが・・・
Rubyには強力なオブジェクト指向があるのだから
単純にこうすればいいのでは?
class ParentArticle < Article
attr_accessor :childs
end
class ChildArticle < Article
end
で、記事の保存にはYAMLを使えばオーケー
0816nobodyさん
2005/04/27(水) 22:51:52ID:???本気で言ってる?
文字コード変換しなきゃいけないし、データ全体で読み書きするしかできないから、
こういう用途としては最低な部類に入るデータフォーマットだと思うのだが。
0817nobodyさん
2005/04/28(木) 09:27:40ID:???ruby の大規模での実績例とかありますか?
ruby を使っている商用巨大サイトの URL だけでも構いません。
よろしくお願いします ( ruby-lang や RAA しか思いつかなくて )。
0818nobodyさん
2005/04/28(木) 15:16:22ID:???データ全体を読み込まなくてはならない問題は、親記事ごとにファイルを分ければ解決できる。
あるいは記事保存用のファイルを別に作るとか。
(articles_info.yaml, article001.txt, article002.txt, ...)
文字コードの問題は確かにあるな・・・
Unicodeへの変換って、なかなか簡単には行かないみたいだし。
とすると、YAMLよりもPStoreか。
0821nobodyさん
2005/04/30(土) 10:33:39ID:???>>818
初心者のようなので念のため書いておくと、
通常、文字コード変換はデータの入口、CGIならばPOSTメソッドのparameterをdecode
した時点でする。生のままストレージに書き込むことはしない。
メールなんかは電子署名等の都合があるので変換せずに保存するが、CGIでそういうことはしない。
0824nobodyさん
2005/04/30(土) 19:39:11ID:???rubyでブロックとローカル変数が作れなくて困っています。
どこかにruby-lang.org以外で
変数のスコープとブロックについて書かれた資料は無いでしょうか?
0825nobodyさん
2005/04/30(土) 20:14:28ID:???0826nobodyさん
2005/04/30(土) 21:14:07ID:???Ruby初心者質問スレPart2
http://pc8.2ch.net/test/read.cgi/tech/1107799347/
> 最近perlからrubyに移ってきた者ですが、
変数の頭に$を付けたローカル変数を作ろうとしてたりして。
0827nobodyさん
2005/05/01(日) 02:40:06ID:???http://www.rubyist.net/~matz/20031121.html#p02
http://ruby-lang.org/ja/man/?cmd=view;name=FAQ%3A%3A%CA%D1%BF%F4%A1%A2%C4%EA%BF%F4%A1%A2%B0%FA%BF%F4
0828nobodyさん
2005/05/01(日) 09:44:24ID:???いや、たぶん820の言ってるのはそういう事ではなくて
yaml.rbがUTF-8限定だからといって、アプリケーション全体でUTF-8を扱うようにするのは
あまり良くない考え方ではないか、ということだと思う。
諸々の理由でSHIFT-JISを使わなくてはならないとき
(またはどう考えてもSHIFT-JISの方に軍配があがるとき)
どうするんだ、って話。
0829nobodyさん
2005/05/01(日) 10:52:21ID:???0830nobodyさん
2005/05/01(日) 12:00:02ID:???0831nobodyさん
2005/05/01(日) 23:39:35ID:???面倒な事をするくらいなら最初から決めておいたらどうでしょう、
最初から作るなら決めうち出来るのではないか、という意図でしたが、
話の前提から勘違いしてましたね、すみません。
0832nobodyさん
2005/05/04(水) 13:29:45ID:GxxcKWgPCGIでブラウザにHTMLデータを返すときにprintを使っているのですが、
そこで「表示」とか「申し」と入れると、
「侮ヲ」とか「垂オ」に文字化けしてブラウザに返しちゃうんです。
そこで、kconvライブラリを取り込んで
print "表示申し".tosjis
ってやってみたけどダメでした。=> 侮ヲ垂オ
これの解消方法ってないですか?
不思議とフォームに「表示申し」と書いて送信するとそれは正しく受け取ってくれて
ブラウザにもきちんと「表示申し」と出てきます。
ふつうのひらがなや簡単な漢字とかだとこうはならないんだけど・・・
バージョンは1.6.8、OSはWINXP、ブラウザはIE6です。
まだローカルなパソコンで試している段階で、サーバはApache2.0です。
0833nobodyさん
2005/05/04(水) 13:38:06ID:???CGI のソースにリテラル文字列で Shift_JIS で "表示" とか "申し" とか書いてるの?
であれば、スクリプトの冒頭で #! ruby -Ks とかする。
0834832
2005/05/04(水) 14:10:28ID:GxxcKWgPありがとうございます。
一行目に入れてみましたが、Internal Server Errorとなってしまいました。
そこで一行目は元のパスに戻して、今度は二行目に入れてやってみましたが、それでも症状は治りませんでした。
しくしく・・・
0835nobodyさん
2005/05/04(水) 15:00:06ID:???んー、もしかして伝わってなかった?
#!/usr/bin/ruby
だったら
#!/usr/bin/ruby -Ks
みたいに -Ks オプションを付ける、という意味なんだけど・・・
0836nobodyさん
2005/05/04(水) 15:03:10ID:RNwfWiBH/usr/local/bin/rubyとかフルパスじゃナイからってことじゃないよね。念のため
0837832
2005/05/04(水) 16:38:32ID:GxxcKWgPありがd!
#!/usr/bin/ruby -Ks
で直ったー!!うれしい。
#!ruby -Ks
#!/usr/local/bin/ruby
のことだと思ってました。ははは・・・。
0838nobodyさん
2005/05/05(木) 04:23:07ID:???この部分はUnixの文化ですからな。
http://www.faqs.org/faqs/unix-faq/faq/part4/section-7.html
http://www.nurs.or.jp/~asada/FAQ/UNIX/section4.7.html
0839nobodyさん
2005/05/05(木) 17:23:25ID:9E2Z1NIHENV["HTTP_ACCEPT"]が"*/*"だったときにはカウンターを回さない、ってやるのは乱暴かなあ。
0840nobodyさん
2005/05/05(木) 21:41:19ID:???過去一定時間(例えば1時間)分のアクセス者のIPアドレスを残しておいて、
そのログに含まれているものと同じIPアドレスからのアクセスはカウントしない、
とか。
0841839
2005/05/05(木) 22:28:15ID:???なるほど。ありがとう。
でもそうすると1時間以内だったら更新ボタン以外で再来訪してくれたのもノーカウントになっちゃうね・・・。
逆に一時間待てば更新ボタンでもカウントされてしまう・・・。
連打でカウントを不必要に回されるのだけは防げるからそれもよしか。
うまく「更新ボタンで来ました!」ってのを拾う方法ないかなあ。
0842nobodyさん
2005/05/05(木) 22:36:32ID:???0843nobodyさん
2005/05/05(木) 23:24:19ID:???0844nobodyさん
2005/05/07(土) 21:42:42ID:sZVuGBZqサーバに保存するときのファイル名の拡張子としてその文字列を使いたいのですが・・・。
0845nobodyさん
2005/05/07(土) 22:11:15ID:???0846844
2005/05/07(土) 23:56:55ID:sZVuGBZqありがとうございました。
0847nobodyさん
2005/05/08(日) 00:49:55ID:Dhx+t1nVwwwwwwwwwwwwwwwwwwwwwうぇwww
wっうぇ
うぇwwwwwwっ
wwwwwwっうぇ
www
うはっwwwうぇwwwうはっwwww
0848nobodyさん
2005/05/08(日) 22:27:52ID:sbu4QGJH0849nobodyさん
2005/05/08(日) 22:54:01ID:???0850nobodyさん
2005/05/09(月) 01:38:52ID:???仕事でやったことあるけど、流用はまずいので一から作ろうかな・・・
0851nobodyさん
2005/05/09(月) 02:08:17ID:???0853nobodyさん
2005/05/10(火) 08:10:14ID:???CGI関連はこの辺り。
CGIKit2.x を用いたアルバム CGI/Web アプリケーション
http://jp.rubyist.net/magazine/?0006-CGIKit-2.x
RubyOnRails を使ってみる 第 3 回 ActiveRecord
http://jp.rubyist.net/magazine/?0006-RubyOnRails
0854nobodyさん
2005/05/10(火) 22:51:13ID:???1 送信方法はPOST
2 ページの移動は常にSUBMITボタンで
3 送信先CGIのURLは常に自分自身
4 送られてきたデータにより読み込むテキストファイルを変える
5 読み込んだテキストをCGIスクリプトとしてevalで実行
クッキーもURLも使えない場合はこの方法しか残されていない希ガス。
0856854
2005/05/11(水) 00:49:43ID:???例えば書き込みを行う場合は、書き込みを行うスクリプトが保存してあるテキストファイルを読み込み、一行ずつevalするっていうイメージだったんですが・・。
ほかにもあるのねorz
逝ってきます。
0857nobodyさん
2005/05/11(水) 10:37:14ID:???0858nobodyさん
2005/05/11(水) 14:24:42ID:???あらかじめ同じファイルに含めてしまうとか、
requireとかloadとか。
あと、>>854の手法ってどの状態が「途中」であるかということに
触れられていないような気がしますが、
その辺も含めて書いてもらえると嬉しいです。
0859854
2005/05/11(水) 15:49:20ID:???そういやrequireがあったね。ありがとん。
0860nobodyさん
2005/05/11(水) 17:25:38ID:???0861nobodyさん
2005/05/11(水) 17:31:54ID:???途中に入られるのもそうだけど、
エージェントでこまかくわけてたからなー
0862nobodyさん
2005/05/11(水) 18:10:17ID:???0863854
2005/05/11(水) 21:38:25ID:???ドメインが違うページ間を行き来するセッションには使えないし、
クライアント様のパソコンを出来るだけ汚したくないってのもあるし、
クッキー非対応にブラウザを設定している人たちもいるだろうし、
・・・
ということです。
0864nobodyさん
2005/05/11(水) 22:41:20ID:???0865nobodyさん
2005/05/12(木) 19:47:15ID:???case〜when〜end使って似たようなことやってる。
ふつうにテキストファイルを置くとページは見れなくてもURLが合ってたらスクリプトが丸見えになるからね。
ブラウザが読めないように拡張子変えて偽装すればいいんだろうけど・・・
テキストファイルの拡張子を.JPGとかにして置いとくのは見え見えかなあ。
0866nobodyさん
2005/05/12(木) 21:32:27ID:???>URLが合ってたらスクリプトが丸見え
……それは流石にまずWebサーバの設定で弾いておくところじゃないか? (汗)
0867nobodyさん
2005/05/13(金) 02:46:10ID:???0869nobodyさん
2005/05/13(金) 10:07:26ID:???.htaccess 使ってもいいし、
直接呼ばれたかわかるようにしてエラーなりフォワードなり
送ってもいいし
0870nobodyさん
2005/05/13(金) 10:53:35ID:???レンタルサーバってなんか特別なんすか?
例えば~/public_html以下にしかファイルを置けないとか、
ホームディレクトリ以下がwebで公開されているとか。
そうではなくて、web公開用ディレクトリ(例えば~/public_htmlとか)と
その他のディレクトリ(例えば~/dataとか)を使えるのであれば、
CGIスクリプトは前者、そうでないスクリプトは後者に置く事で
うっかり見られてしまう自体を防げるのではないでしょうか。
0872848
2005/05/15(日) 18:09:04ID:???質問を変えます。
考えているのはこういう工程です。
(1)ユーザーは、あるメールアドレスに件名、本文、添付画像をケータイから送信します。
(2)管理人は随時、そのメールサーバにアクセスして、送られてきているデータを収集します。
(3)そのデータをひとつひとつ掲示板にアップロードしていきます。
(もちろん利用規約で、ケータイメールによる書き込みはタイムリーに行われないことはユーザに知らせておきます。)
この作業は当然ローカルパソコンで手作業すれば可能なんだけれど、(2)(3)のあたりはCGIプログラムで自動処理できないものかと。
出先からでもケータイでそのCGIにアクセスすれば溜まってる書き込みメールが自動でアップロードされるようにしたいのです。
0874nobodyさん
2005/05/16(月) 01:58:19ID:???0876nobodyさん
2005/05/16(月) 15:02:14ID:???とりあえず(2)でPOP3クライアントを作りたいなら
以下のページが参考になりそう。使用例として
メールの受信のサンプルがある。
Rubyリファレンスマニュアル - net/pop.rb
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=net%2Fpop.rb;em=POP3
net/imap.rbの方はサンプル無しなので難しいかも。
Rubyリファレンスマニュアル - net/imap.rb
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=net%2Fimap.rb;em=imap
(3)のアップロードはnet/httpあたりを使うのかな。よくしらない。
0877nobodyさん
2005/05/16(月) 16:32:29ID:???0879nobodyさん
2005/05/17(火) 22:42:44ID:???自分でGETとPOSTのデータを受け取る部分(ファイルアップロード含む)とクッキー操作の部分そしてセッション管理の部分まで書いたのが、1-2年前のことです。
しかしそれからCGIには全然手を出していませんでいた。
最近になって、ふとCGIを公開するHPでも作ろうかなと思い、自分で作ったcgi.rb相当のものを使おうかなと思っていたのですが、
よくよく考えると、CGIしか考慮していませんでした。
Rubyist Magazine に Nora というものの説明があって、CGI/mod_ruby/FastCGIに対応と書いてありました。
このライブラリでも使ってみようかなと思い、DLしようとしたのですが、作者のHPにもRAAにもないようです。
もう配布はしていないのでしょうか?
他にシンプルでCGI/mod_ruby/FastCGIに対応したものはないでしょうか?
0881879
2005/05/17(火) 22:59:58ID:???DLできました。
ありがとうございます。
0882nobodyさん
2005/05/19(木) 06:52:38ID:???私は今ログファイルのマネジメントができるクラスを開発中ですが、rubyのスキルがまだまだしょぼく、いいものができません。
インターフェイスとしては、最初に
log = Log.new(ファイル名)
としとけば、以後
log.put(行,列,値)
でファイル(テーブル構造)の任意の場所に値を書き込むことができ、書き込み時にはファイルのロック、アンロックも自動でやってくれるという至極モノグサなクラスなんですが・・・(他にもフィールド定義等多数メソッドあり)
もしこれに類似したクラスライブラリがすでにあるのであればその場所をご教示いただければ幸いです。
0883nobodyさん
2005/05/19(木) 10:00:28ID:???0884nobodyさん
2005/05/19(木) 12:01:53ID:???0885nobodyさん
2005/05/19(木) 12:10:49ID:???本来の意味のログファイルの管理クラスなら RAA に devel-logger があるぞ。
ttp://raa.ruby-lang.org/project/devel-logger/
0886nobodyさん
2005/05/19(木) 12:52:36ID:???0887nobodyさん
2005/05/19(木) 13:36:13ID:???0888882
2005/05/19(木) 16:09:49ID:???CGIで扱うデータファイルは全部ログと思っていました。
要はこういうクラスを使って掲示板、日記、プロフィール、お気に入りリンク集、アクセスカウンタ、更新履歴といったコンテンツをテーブル化して貯めておくテキストファイル(なんていえばいいんだろう)を編集できたら便利だろうなとおもったのです。
出直してきます・・・。
0889nobodyさん
2005/05/19(木) 20:08:13ID:???不定長なデータ全てをひとつのテキストファイル(なんていえばいいんだろう)に
突っ込んで管理してしまおうということなのかな。
そういうのは別々のファイルにバラして持っておいた方が良いと思うけどなあ。
漏れなら迷わず SQLite3 だが・・・ (しつこい)
0890nobodyさん
2005/05/19(木) 20:54:29ID:???ランダムアクセスでファイル操作するやつで、
レコード毎のカラム以外に、ヘッダ部分にも型を宣言して領域を確保できるようになっていて、
他に掲示板とかに便利だろうと双方向リスト型なんてのも作ったよ。
0891nobodyさん
2005/05/19(木) 22:11:14ID:???cgi.rb の ::CGI よりはかなり良いと思う。
標準添付だし。
http://www.ruby-lang.org/ja/man/?cmd=view;name=webrick%2Fcgi.rb
0892nobodyさん
2005/05/19(木) 22:41:00ID:???静的コンテンツをマネジメントするのによさげなフレームワークなんてありますかね?
0893nobodyさん
2005/05/19(木) 23:43:24ID:???0894888
2005/05/20(金) 19:11:14ID:???あ、それはさすがにないです。テーブルはコンテンツごとに作成し、1ファイル1テーブルです。
・・・たしかにこのクラスを継承すれば簡易DBのようなものが作れるかもしれません。
素直にDB勉強しようかな・・・
0896nobodyさん
2005/05/21(土) 00:22:25ID:???0898882
2005/05/22(日) 08:23:00ID:???DBを使わなくても気軽にテーブル(csvファイルなど)の任意の行や列やセルが読み書きできるクラスです。
table = Table.new(ファイル名,区切り符)
で、以後そのファイルは
table.〜
で、ロック/アンロック、レコードやフィールドの挿入/削除、といったあらゆる操作が可能となります。
・・・てか、誰でも思いつきそうなクラスなんだけど、ほんとに既存のものはないのかなー。
unixな人たちはosに標準でついてるDBMがあるから需要ないのかな?
まあ、これくらい自分で作ったとこでRubyの練習にはちょうどいいんだけど・・・。
0900882
2005/05/22(日) 09:27:32ID:???ありがとうございます!1.8系から標準添付なんですね。
しかし使わせてもらってるサーバーのRubyはまだ1.6系・・・orz
0901890
2005/05/22(日) 10:39:03ID:???詳細キボンといわれても、どういうこと書けばいいんだか;
どこにも公開はしていないですよ。
ただ、どこかにそれを使った掲示板はあます。
ちょっといろいろ難点があって再構築しようと思っているところです。
カラム名を指定するのを、文字列ではなく、シンボルにしようかなーとか。
0902nobodyさん
2005/05/22(日) 19:32:00ID:???(1) http://raa.ruby-lang.org/project/csv/ からアーカイブをダウンロードする。
(2) アーカイブに含まれるcsv.rbを取り出して、自分のスクリプトと同じディレクトリに置く。
(3) require 'csv'する。
ライブラリ自体は1.6.xでも使えるはずなので、
この手順で使えるようになると思う。
0903nobodyさん
2005/05/23(月) 08:02:36ID:???どんなメソッドがあって、それぞれどんな動きをするのか、とか、使用例とか。
ぜひ参考にしたいので。よろしければおながいします。
>>902
ありがとうございます。
まだ挙動の研究中ですがこのクラスがあればかなりラクになりそうです。
0904903
2005/05/23(月) 22:25:46ID:???>>902
うむむ・・・ひょっとしてcsv.rbってcsvをパースするだけ?
.add_rowで追加したいデータを渡してみたけどもとのファイルには変化なし・・・orz
最後にgenerateするまでファイルの更新はしないようです。
欲しかったのとはちょっと違いました。ごめんなさい・・・。
僕がほしいのは、掲示板の書き込み内容を
ary = ["2005/05/23","903",">>902<br>うむむ・・・ひょっとして(略)","sage"]
と配列にしておけば、
Table.insert_row(5,ary)
でログファイルの6行目にaryの各要素がカンマでつながった文字列が直接挿入されるといった感じです。
メソッドの実行と同時にファイルのロック、オープン、書き換え、クローズ、ロック解除を行うものです。
やっぱ自分で作るか・・・
0905nobodyさん
2005/05/24(火) 10:59:07ID:???0906nobodyさん
2005/05/24(火) 12:13:19ID:???csv.rbで出力は出来るけど、入力と出力の処理が分離しているので、
それでよかったら出来る。
RAAのgonzuiでcsv.rbに含まれるサンプルを参照できる。
http://raa.ruby-lang.org/gonzui/markup/csv/lib/csv.rb#l180
http://raa.ruby-lang.org/gonzui/markup/csv/lib/csv.rb#l513
CSV.open、CSV::Writerあたりを読むと良いだろう。
>メソッドの実行と同時にファイルのロック、オープン、書き換え、クローズ、ロック解除を行うものです。
それそのものはcsv.rbには含まれていないので、
その外回り(open close flockなど)のみを自分で作れば良いと思う。
0908nobodyさん
2005/05/25(水) 04:50:01ID:???バカ?
0909nobodyさん
2005/05/25(水) 07:50:13ID:???スクリプトと一緒に置いとけば使えるようものならいいんですが、サーバーにインストールしないといけないのはちょっと・・・自鯖じゃないもんで。
0911nobodyさん
2005/05/25(水) 11:15:13ID:???0912nobodyさん
2005/05/25(水) 11:31:29ID:???0913nobodyさん
2005/05/25(水) 12:43:16ID:???0914nobodyさん
2005/05/25(水) 12:44:48ID:???0916nobodyさん
2005/05/25(水) 15:58:52ID:???0917nobodyさん
2005/05/25(水) 17:52:24ID:???0918nobodyさん
2005/05/25(水) 18:03:59ID:???0919nobodyさん
2005/05/25(水) 21:34:35ID:???0920nobodyさん
2005/05/26(木) 14:03:42ID:???0922nobodyさん
2005/05/26(木) 21:16:24ID:???0923nobodyさん
2005/05/27(金) 00:48:25ID:???0924nobodyさん
2005/05/27(金) 19:34:43ID:???このスレッドなら断然 AAA、XREA、lolipop で使用可能な MySQL のほうがお勧めなんじゃないのか?
0925nobodyさん
2005/05/28(土) 19:32:36ID:???0926nobodyさん
2005/05/29(日) 09:19:35ID:???0927nobodyさん
2005/05/29(日) 23:14:44ID:???Ruby使いにはそういった類の人間が比較的多い希ガス。
きっとDBよりも独自スキーマでごちゃごちゃと訳わからんことすることの方が好きなんだと思う。
0928nobodyさん
2005/05/29(日) 23:35:24ID:???いったい何の説明してるんだ?
MySQL じゃなくSQLite の話じゃないし、SQLite スルーの話でもないしな。
cgi.rbが1.6と1.8で挙動が違うなら、cgi.rbの代替が必要になってくるのは当然だし、
どこのレンタルサーバでも動くようにするには、標準ライブラリか、Pure Rubyなライブラリ使うのは当然だしな。
0929nobodyさん
2005/05/30(月) 00:10:08ID:???0931nobodyさん
2005/05/30(月) 09:28:29ID:???SQLiteはいいものだが板違い。
db板にスレがあるから行ってこい。
DBI-sqliteについての話だったらム板へ。
0932nobodyさん
2005/05/30(月) 20:26:39ID:???cgi.params["name"][0]
ってやればどっちでも大丈夫なんでしょ?
0933nobodyさん
2005/05/30(月) 20:36:02ID:???つttp://www.nslabs.jp/rubycgi-18compat.rhtml
0934932
2005/05/31(火) 22:15:56ID:???ありがd
読んだけどよくわからんかった;
挙動が違うのはcgi["name"]って書いたときの話ですよね。
しかし、「1.6と1.8両方で動くスクリプトが書けない」っていうくだりは本当ですか?
レシピブックにはcgi.params["name"][0]って書けばオッケーって書いてあったんだけど・・・
0935nobodyさん
2005/06/02(木) 14:07:03ID:???「1.6と1.8両方で動くスクリプトが書けない」というのは
リンク先にもあるようにCGI#[]を使うときの話。
>cgi.params["name"][0]って書けばオッケー
言い方を変えれば「CGI#paramsを使わなければダメ」。
あと既存のスクリプトがCGI#[]を使ってたりすると、
いちいち修正したりするのも億劫だよね。
そこのところを気に入らない人はいるんじゃないかと。
0936nobodyさん
2005/06/03(金) 13:33:14ID:???しかしcgi[]の[]ってメソッドなのな。
Rubyは奥が深い・・・
どんなメソッド定義してるのか今度みてみよっと。
0937nobodyさん
2005/06/05(日) 11:59:22ID:???いちいち修正して億劫というのが、あちこち修正という意味なら、
1.6の方に CGI#[] を定義すればいいだけじゃねー?
0938nobodyさん
2005/06/09(木) 06:33:46ID:???http://www.rubycgi.org/cgi_explanation/3-5.htm から
一部コメントを付け加えて抜粋。
#書き込みがあったら
if senddata
begin
#ファイルロック設定
lockd = fillock.lock(LOCKFILENAME)
unless lockd
print <<EOF;
<html><body>
他の人が書き込み中です。しばらく待ってからもう一度書いて下さい。
</body></html>
EOF
end #unless end
#ログファイルの書き込み関数を呼び出し
write_log_file(senddata)
ensure
#ファイルロック解除
fillock.unlock(LOCKFILENAME) if lockd
end #begin end
end
これ、正しくファイルロック出来てるんでしょうか?
このままだとロックの状態に関わらず書き込み関数を呼び出して
ファイルをいじってしまうように思うんですが・・・。
0939nobodyさん
2005/06/10(金) 08:02:01ID:???このプログラムは無理にクラスとかメソッドを定義しててわかりにくいね。
手続き型で書いてもRubyはきれいに書けるんだけどな。
0940938
2005/06/10(金) 08:56:02ID:???そっか、自分でディレクトリ作ればいいんですよね。
何でそんな単純なこと思いつかなかったんだか・・・。
ありがとうございます。
で、実際にやってみたところ
やっぱり正しくファイルロックできてないみたいで、
ディレクトリの有無に関わらずガンガン書き込んでます・・・。
unless lockd
今は書き込めませんメッセージ
else
write_log_file(senddata)
end
多分こんな風に、書き込み関数をunless elseの中に入れちゃえば
正しく動くんじゃないかと思います。(試してませんが)
クラスや関数を作りまくってるのは
「作り方を学ばせるためにあえて」
ってことだと僕は思っているんですが・・・、
人によっては「これが良い書き方なんだ」って勘違いしちゃいそうですよねえ。
0941nobodyさん
2005/06/10(金) 11:42:39ID:???そのコードはダメポ。
せっかく全体をbeginで囲っているんだから、例外的事象(ロック失敗)に対応する
コードはrescueブロックに配置すべき。
そのためには、FileLockDir::lock の中で、ロックに失敗したら例外を投げる
ような仕様にするのがいいと思う。
FileLockDir自体、initialize(ファイル名) にして、lock/unlock に引数が
いらないようにしないと、わざわざインスタンスを生成する意味がないし。
0942940
2005/06/10(金) 12:14:40ID:???アドバイスありがとうございます。
>コードだめぽ
これは
「お前の書いたコードじゃ正しく動かねーわ」って意味ですか?
それとも
「そもそもサイトのサンプルコードからしてゴチャゴチャしてるから
そっから考え直して、まとめた方がいんじゃね」
って意味でしょうか?
0944942
2005/06/10(金) 12:38:31ID:???確かにサンプルコードを基本にして手を加えていくと、
どうもきれいにまとまってくれません・・・。
構造から考え直してみます。
0945nobodyさん
2005/06/10(金) 22:30:12ID:???漏れもそのページから入ったクチなんだけど、最初はクラスとかメソッドとかわからんからとりあえず部品を全部ばらしてみたもんだ。
表面上のRubyらしさをムリヤリ加味するとこんなコードになるという生きた見本。いろんな意味で価値あるサンプル。
漏れはこのサンプルに感謝しているよ。
0946nobodyさん
2005/06/11(土) 16:43:30ID:???しかも大体古くて、今はもう更新されて無いようなところばかり。
さすがにこの現状は切なすぎる・・・。
誰か新しく入門サイト作ってくれないかな。
(・・・と、他人に期待するばかり)
0948nobodyさん
2005/06/11(土) 23:19:24ID:???本スレで出てた気がするが、
Rubyの入門としてはこれを押す。
tp://www1.tf.chiba-u.jp/~shin/tutorial/
これ自体は CGI スクリプトみたいだが。
0951nobodyさん
2005/06/12(日) 17:16:57ID:???サイトが増えると、サンプルが増える。
あと、ユーザーのレベル・好みでサイトを選べる。
(プログラム初心者ってわけでなければ
『一時間で覚えるRuby』でもいいわけで)
俺が思い付くのはこれくらいかなー。
もちろん「質より量だ!」なんて言うつもりはないけど
数は多いに越したことないと思うよ。
0952nobodyさん
2005/06/12(日) 19:35:57ID:???http://jp.rubyist.net/?RubyDocument
0953nobodyさん
2005/06/12(日) 21:58:26ID:???分類されていないから、
どれが入門用ドキュメントで、
どれが特定の話題に特化したドキュメントなのか
分かりにくい。
個人的には下のが良さげ
http://ruby.mirror.easynet.be/ja/uguide/uguide00.html
http://ns.wisdom.co.jp/~ono/programming/ruby/intro/intro_01.htm
http://homepage1.nifty.com/~tetsu/ruby/intro/
http://www1.tf.chiba-u.jp/~shin/tutorial/
http://linux-life.net/program/ruby/
http://www.namaraii.com/rubytips/
0954nobodyさん
2005/06/17(金) 01:12:56ID:???0955nobodyさん
2005/06/17(金) 18:36:09ID:???0957nobodyさん
2005/06/19(日) 13:13:02ID:Le0SqOYOどうもCGIの処理が完了してから纏めて全部出力しているようです。
これって少しずつ逐次出力することはできないでしょうか?
帯域を制御してストリーミングがしたいのですが。
0958nobodyさん
2005/06/20(月) 02:28:39ID:???0959nobodyさん
2005/06/20(月) 14:53:07ID:???帯域制限はCGI 側で行うので、httpdは即座にデータを送出してくれれば
それで十分なのですが。
それと、出力全体がバッファされると言うことは、送るデータのサイズと
同じだけメモリを消費するわけですよね。
これでは実質数十MBくらいが限度です。
どうにかならないものでしょうか。
0960nobodyさん
2005/06/20(月) 15:01:12ID:???IO から少しずつ body を返すようになる気がする。
webrick/httpresponse.rb の WEBrick::HTTPResponse の
send_body とか send_body_io とか見てみると良いかも。
0961nobodyさん
2005/06/21(火) 10:04:08ID:???どうもありがとうございました。
ちなみに最初は単に IO.pipe の入力側を渡してでマルチスレッドに
するつもりだったのですが、先に入力待ちするとデッドロックします。
pi, po = IO.pipe
t = Thread.start {
print while (Thread.stop or pi.gets)
}
po.puts "first"
t.wakeup # OK
t.wakeup # dead lock
po.puts "second"
これはこういうものなのでしょうか?
IO.popen('-', 'r') も動かないし、windows版の制限なのかな。
WindowsXP SP2, Ruby 1.8.2 (ActiveScriptRuby 1.8.2.0)
0962nobodyさん
2005/06/21(火) 10:57:54ID:???これでどちらもデッドロックするようです。
t.wakeup # OK
sleep 1
t.wakeup # dead lock
0963nobodyさん
2005/07/03(日) 10:37:19ID:???ruby (1.8.2)に対応したみたいで・・いいことなのですが、
なぜかそれ以降動かなくなったCGIが出ました;
ローカルでのテスト環境は 1.8.1 で、それで動いているのですが動きません。
一番上のパスが違うのかなと思ったら、他のRubyで作ったものは動いていました。
何らかの実行時のエラーで落ちてるのかと思い、全体を
begin
# 全体の処理
rescue Exception
File.open("erorrlog/#{Time.new.to_i.to_s}.err", 'w'){|f| f << "#{$!}(#{$!.class})\n#{$@}"}
end
ってな感じでログを残そうとしても、ログが残りませんでした;;
かなりお手上げです。詳しい方、教えていただけたら幸いです。
0965963
2005/07/04(月) 01:28:46ID:???ローカルでも 1.8.2 で試したけど動きましたが・・OSによって違うのかな・;
0966nobodyさん
2005/07/04(月) 09:14:56ID:???ロリポップにログくれって言えないの?
少なくとも同じバージョンなら違うマシンでも文法は同じはずなので
同じバージョンでテストしてますよというのを伝えた上で、ロリポップにその辺聞いて見れ。
0967963
2005/07/04(月) 23:58:18ID:???#!/usr/local/bin/ruby -Ks -Ilib
↑の1行目のオプション -Ilib がまずいっぽい・・ような・?
やはりこれもローカル(windows)では動いてます;
ちなみにロリポップにはまだ聞いてません。すまん。
0968nobodyさん
2005/07/05(火) 00:39:22ID:???思い切って別PCにLinux入れてみるとか、あるいはcoLinux入れてみるとかして
UN*Xな環境作って試してみるのはどうか。
0970nobodyさん
2005/07/05(火) 22:29:14ID:???#!/bin/sh
exec リネーム後のCGI > ログ.txt 2>&1
CGI実行後に ログ.txt を見る。
0971963
2005/07/06(水) 00:09:55ID:???>>970 さんのものも試してみましたが、500エラーというのが出て、ログは残りませんでした。
どうして、-Ilib が使えないのかはわからないままです;
0972nobodyさん
2005/07/06(水) 14:05:13ID:???0973nobodyさん
2005/07/18(月) 02:45:10ID:???CGI.new
のところで
in `read_multipart': no content body (EOFError)
というエラーが出ますが、これは何ですか。
環境は WindowsXP + Apache + Ruby 1.8.2 です。
0974973
2005/07/18(月) 17:27:49ID:???原因究明のために cgi.rb の 976 行目付近
status = stdinput.read(boundary_size)
if nil == status
raise EOFError, "no content body"
elsif boundary + EOL != status
raise EOFError, "bad content body"
end
での、status 変数について調べました。
if 文で評価される前の status は String で、
"malformed header from script. Bad header=-----------------------------7: index.cgi"
という値でした。
しかし,条件文にさしかかったところで status 変数の中身が nil になってしまうようです。
print 文で status 変数の中身を表示させてみましたが、一回目の print 文で上記の文が出るものの、二回目以降は何も表示されませんでした。
どなたか原因と解決策をご存知の方、ご教授ください。
0975nobodyさん
2005/07/18(月) 18:01:01ID:???0976973
2005/07/18(月) 18:19:41ID:???最小再現になるようにコードを追っかけていたところ、
エラーの発生箇所が思っていたのと違う箇所だということがわかりました。
エラーが発生したときのエラー表示のために
CGI クラスを使っていたのですが、
もう一度 CGI.new したときに、上記のエラーが発生していました。
因みに、このとき最初に rescue していたエラーは
cannot convert StringIO into String
で、まったく別物でした…
出直してきます…
0977nobodyさん
2005/08/09(火) 20:04:29ID:3fd1ZKC+open-uriによってカウンターがついているウェブページの中に、カウンターを更新させないページがあることに気づきました。
どなたか理由と、どうすれば反応するようになるか教えていただけますでしょうか?
よろしくお願い致します。
0978nobodyさん
2005/08/09(火) 21:35:54ID:???* HTTP はコンテンツ単位で送受信を行うプロトコル
* 一URL一コンテンツ
* ウェブブラウザは HTML ページに含まれるCSS、Javasript、画像、Flash などのコンテンツを
自動的に受信して処理/表示/実行する
* open-uri は一度の open で一つのコンテンツを受信する
* CGI 方式のカウンタは、HTML ページとは別の CGI プログラムの
URL にアクセスがあるとカウントアップし画像を出力する
* SSI 方式のカウンタは、HTML ページへのアクセスと同時に、
プログラムを実行しカウントアップする
0979nobodyさん
2005/08/10(水) 03:58:40ID:???具体的にどのカウンタか URL を示すか、
ソースコードや動作の仕様が公開されてるならそれを見た方が早いんじゃないかね。
0980nobodyさん
2005/08/10(水) 04:10:13ID:???それだけじゃよくわかんないよ。「open-uriによってカウンターがついているウェブページ」ってなに?おれの理解力じゃあんたの質問がさっぱりわからん。
>>978
親切なんだか意地悪なんだかわからんな。
0981nobodyさん
2005/08/10(水) 09:02:24ID:???カウンタがjavascriptやcgiで実装されている場合にそうなることがある。
カウンタは、そのページがアクセスされた回数をカウントしているんじゃ
ない(ものがある)。ページに埋め込まれた画像(cgi)等が表示された回数を
カウントしている(ものがある)。
0982nobodyさん
2005/08/10(水) 15:13:46ID:7+cbQsD8HTMLファイルとは別のファイルをアクセスしたときにだけカウンターが回るため、open-uriで取得しただけでは回らないんですね。ありがとうございました。
>>979
はい、いくつかのカウンターを試してみたのですが、反応するものしないものがありました。具体的にどこが違うのかまだ勉強中です。
>>980
失礼しました。open-uriライブラリでウェブページを取得したとき、カウンターによっては反応しないものがあるのは何故か、という質問でした。
>>981
画像の場合もあるんですか!なるほど、ありがとうございました。
みなさんご回答ありがとうございました。
レス数が950を超えています。1000を超えると書き込みができなくなります。