【Ruby】RubyでCGI
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2001/05/04(金) 12:57ID:c4hRtzGY関連リンクは>>2-3
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のモジュールとはいったいどういうものなのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています