1 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 01:07:21 ] プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。 【Ruby1.9 は不安定な開発版であり初心者には全く向きません】 【最新安定版の Ruby1.8.7 の使用をお勧めします】 ※1.8.7 は1.8 と 1.9 の橋渡しをするためのリリースです。 1.9 の新機能の一部が利用可能なので初学者にお勧めです。 ※ただし十分安定しているとは言えないので プロダクション環境での利用にはお勧めしません。 関連スレやURLは>>2-8 あたりを見てください。Ruby on Railsの質問はRailsスレへ。 ■質問する人へ 質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。 ・モジュール名やエラーメッセージでググる ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/ ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ 質問には以下を書くこと。へたくそな質問は再提出を要求される。 ・詳しい内容(「動きません」「うまくできません」では回答しようがない) ・エラーメッセージ(自力で訳さずなるべくそのままで) ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる)) ・最終的にやりたいこと(もっとよい方法がある場合が多いので) 回答してくれた人には「ありがとう」のひとことをいってあげて。 ■回答する人へ 相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。 それができないならこないこと(だって初心者スレだもん)。 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
237 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 12:27:50 ] >>220 の通りで、Net::HTTPを利用している限りはソケットからfragment単位で読むからダウンロード負荷自体は問題にならない 「これまでのresponseをメモリ内で破棄しつつ最新のみIOに出力する」というダウンローダー芸はNet::HTTPではできないと思う 100MBのファイルを取得したら100MBのファイルはresponseの取得履歴としてメモリ内にどーしても一瞬保持されるはず
238 名前:232 mailto:sage [2008/08/24(日) 13:36:57 ] >>237 まぢで? だとすると、ブロック渡しする意味は進捗状況の確認ができるだけってこと? ちょっと net/http.rb の中見てみた限りでは、BufferedIO にも、ReadAdapter にも 読み込んだデータを保存しているような挙動は確認できなかった。 保存されるとしたら、どこに保存されてるんだろう。 実際、read_body にブロック渡した場合と渡さない場合で HTTPResponse#body の挙動が変わるようだ http = Net::HTTP.start("www.example.com", 80) p http.request_get("/index.html") {|req| req.read_body{} }.body # >> #<Net::ReadAdapter> http = Net::HTTP.start("www.example.com", 80) p http.request_get("/index.html") {|req| req.read_body }.body # >> "<html><head>...."
239 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 17:58:12 ] YAMLの Anchor, Aliase でノードを参照する時に、 別の.ymlファイルのノードを参照するのって どうすれば良いんでしょうか?
240 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 21:23:42 ] >>239 できない。 やるとしたら s = '' s << File.read('file1.yml') s << File.read('file2.yml') p YAML.load(s) とするしかない。
241 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 21:24:42 ] >>236 >読み込んだ部分ごとに出力に書き出してるように見えるけど 部分的に書き出しても、書き出し先がStringIOオブジェクトだから 結局は全部メモリに入る。
242 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 21:27:30 ] >>224 >現存するクラスを完全に上書きしたいです Rubyは既存クラスを自由に書き換え可能だから、「完全に上書き」する必要はないと思うけどなあ。 もしよければ、既存クラスを書き換えるのではなく完全に上書きしたい理由を語ってみてください。 なにか新しい発見があるかも。
243 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 22:58:02 ] module A def self.hoge puts 'Hoge' end end class B include A end これで A.hoge が B.hoge という形に mix-in されないのはどうしようもない? 継承だったらクラスメソッドも継承されるみたいなんだけど
244 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 23:30:15 ] >>243 こゆことがしたい? module A def hoge puts 'Hoge' end end class B extend A end
245 名前:243 mailto:sage [2008/08/24(日) 23:35:22 ] >>244 なるほど、そういうのもあるんですね。 ただ、A の中にインスタンスメソッドもたくさんあるんですが、何とかなりませんか?
246 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 00:30:26 ] 委譲の考え方の基本がなんとなくわかった気がする
247 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 00:40:24 ] >>245 ええっと、どういう風に書きたいってこと?
248 名前:243 mailto:sage [2008/08/25(月) 01:14:50 ] module A def self.hoge # クラスメソッド puts 'Hoge' end def fuga # インスタンスメソッド self.class.hoge # self がどのクラスのインスタンスかによって変えたい end end class B include A # B は hoge を再定義するかもしれないけど、しなくてもいいようにしたい end b = B.new b.fuga # B で再定義されていれば B.hoge、そうでなければ A.hoge が使われるようにしたい # もしくは、 class C include A hoge # こういうふうにclassのコンテキストで呼び出したり・・・ end だいたいこんな感じになってくれるとうれしいです。
249 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 04:31:05 ] こんちは はじめてRubyでスクリプト書いてみました 下記コードでうまいこと画像を保存できたのですが、なぜかアニメーションGIFがぶっ壊れてます RubyでアニメーションGIFを扱うことは不可能なんでしょうか もし可能であればライブラリや書き方など教えてほしーです require 'open-uri' def main # ニコニコ動画の画像があるパス url = 'www.nicovideo.jp/img/tpl/head/icon/nico/ ' # 画像のパスを全部いれておくための配列 image_url_list = [] # ローカルの保存先のパス savepath = "D:/Data/IMG/" # URLの生成 0.upto(10) do |i| image_url_list << url + "%03d" % i + ".gif" puts image_url_list end # 画像を保存 image_url_list.each do |image_url| filename = File.basename(image_url) File.open(savepath + filename, "w"){|output| open(image_url){|data| output.write(data.read) } puts("#{filename} has saved.") } end end main
250 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 05:21:27 ] "wb"
251 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 05:30:51 ] うお すげぇ 朝っぱらからありがとうございます バイナリモードっていうのがあったんですね あざーっす!
252 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 07:53:27 ] >>243 こんな話? irb(main):001:0> module M irb(main):002:1> def self.included(m) irb(main):003:2> m.module_eval do irb(main):004:3* def self.foo; p :foo; end irb(main):005:3> end irb(main):006:2> end irb(main):007:1> irb(main):008:1* def bar; p :bar; end irb(main):009:1> end => nil irb(main):010:0> class C irb(main):011:1> include M irb(main):012:1> end => C irb(main):013:0> C.foo :foo => nil irb(main):014:0> C.bar NoMethodError: undefined method `bar' for C:Class from (irb):14 from :0 irb(main):015:0> C.new.bar :bar => nil irb(main):016:0> class C irb(main):017:1> foo irb(main):018:1> end :foo => nil
253 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 08:16:45 ] Rubyって日本語のファイル名を開けるの?
254 名前:243 mailto:sage [2008/08/25(月) 09:11:30 ] >>252 おー!include されるごとにメソッドを定義するわけですか。 それでいけそうです。ありがとうございます。
255 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 09:50:20 ] open-uriでurlを開いたら自動的にbodyも読まれてテンポラリファイルができてしまいます headを読んで色々処理してからbodyを読むようにしたいんですけど そういうのってnet/httpとか使って自作しないといけないんでしょうか
256 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 20:35:17 ] def config_file=(path) h = YAML.load_file(path) @username ||= h[:user]||h[:username]||h[:id]||h['user']||h['username']||h['id'] @password ||= h[:pass]||h[:password]||h['pass']||h['password'] end 使うキーくらいマニュアルに書いておけよ俺 >>255 はい HEAD対応open-uriの改造をスクリプトの初めで上書きするモンキーパッチを誰かが作ってたと思ったが忘れた とここまで書いてHTTPヘッダのことかいなと思う まあどっちもたいして変わらんな open-uriはFile.openが思想のベースなのでファイル読み込みは避けられないよ
257 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 20:41:55 ] 「モンキーパッチ」ってそういう意味だったんだね。
258 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 20:52:07 ] >>257 Rubyではね 本来はゲリラパッチで、Rubyのようなシステム的に許されたなあなあのクラス上書きとはちょっと違う 代わりにduck punchingという言葉を使おうと言ってる人が一部にいるけど 本気でRailsの一部の人なので全く広まる気配はない
259 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 20:56:28 ] 変数に結果を代入したいんだけど、三項演算子と1行if文ってどっちがいいかな?
260 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 21:01:33 ] s = (cond ? 'yes' : 'no') s = if cond then 'yes' else 'no' end s = if cond then 'yes' else 'no' end if cond then s = 'yes' else s = 'no' end まあ好きにせえ 3番目は微妙に嫌われてるということは知っておくといい 「Rubyのif構造は値を返す!!」とか興奮した初心者が多用するが冷静に読むと面倒だ
261 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 21:48:19 ] >>259 あるJavaの有名人が『三項演算子は難しい機能だからif文を使いなさい』といってた。 だからif文のほうがいいよ。 だって有名人のいうことだからね!
262 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 21:55:44 ] よく以下のような文を見るのですが、何のためにしているのでしょうか? if __FILE__ == $0
263 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 22:02:40 ] >>262 そのif文の中はCで言うmainにあたるってとこかな そこより上で定義したclassのテスト的なコード書いて おいて、requireされた場合には実行させないための おまじない
264 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 22:06:41 ] >>263 なるほど、そういうことか d
265 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 22:07:34 ] >>264 >>263 の補足というか、googleで、そのまんま "__FILE__ == $0" で検索して トップに出てくるページを見ればいいと思うんだ。 初心者スレでググれ!って言うのは無し?
266 名前:デフォルトの名無しさん [2008/08/25(月) 23:28:23 ] >>262-263 それは知らなかった。 勉強になった。 機会をくれてありがとう。
267 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 00:29:10 ] if 文の返り値を変数に代入するのは性に会わない 似たような感覚として、 ・do 〜 end ブロック ・map と inject を除く {} ブロック の返り値を利用するのはなんかピンと来ない
268 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 00:39:09 ] rubyで日本語のファイル名使えるかどうか 速く回答しやがれ!
269 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 00:41:04 ] >>268 使ってみてから質問しろ。 あほか
270 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 00:49:51 ] まあ問題が起きてからその状況を質問してもらったほうがええな
271 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 00:53:35 ] 実際にやってみて日本語名が使えない、という話なのか? OS環境とか文字コードとか、状況を具体的に説明してごらん。
272 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 00:57:32 ] Perlで日本語のファイル名のファイルをopenできないから rubyだったら開発者がジャップだからネイティブで対応してるかと 思って質問してるんです!!!
273 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 00:59:40 ] dllからデータを読み込むプログラムを書こうとしているのですが、 dl/structモジュールで構造体を入れ子にできないのですかねぇ? そこの部分だけcharの配列で埋めて後で置き換えるしかないのでしょうか・・・
274 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 01:17:20 ] >>272 できる。 でもRubyよりも先に日本語の使い方と質問の仕方を勉強することをおすすめする。
275 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 07:20:54 ] 「♥.txt」を開こうとしたら無理だったんだけど
276 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 07:36:19 ] windowsなら、ユニコードのファイル名は無理
277 名前:デフォルトの名無しさん [2008/08/26(火) 08:03:16 ] Rubyをちょこちょこ最近書き始めた初学者です。 Excelの列番号をA1形式からR1C1形式へ変換するプログラムを書こうとしています。 A→1 AA→27 IV→256 てな感じで。 パッと思いついたコードとしては require 'jcode' num = 0 str = "IV" str.each_char{|char| num = num * 26 + char.to_i(36)-"A".to_i(36) + 1} p num #=>256 ですが、スマートじゃない気がしてなりません。 もっとスマートな書き方有りますでしょうか? 実行環境はWinXP、Ruby1.8.6です。
278 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 08:17:18 ] >>276 ユニコードは日本語じゃなとでも言いたいわけ?
279 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 08:28:52 ] inject(0) {|n, char| n * 26 + ... } くらいしか思いつかん。 あとは ('A'..'Z').to_a.index(char) で 0 .. 25 に変換とか。 # ところで require 'jcode' は全角アルファベット対応?
280 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 08:30:10 ] >>278 Windowsが異常なだけ。
281 名前:255 mailto:sage [2008/08/26(火) 08:31:03 ] >>256 そうっすか残念(・ω・) net/httpなんて使うなとか言う記事みた後なんでちょっと二の足を踏んでしまいます
282 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 08:38:59 ] 困ったことあったらpythonを使え
283 名前:デフォルトの名無しさん [2008/08/26(火) 09:11:19 ] >>279 単にString#each_charがjcodeで拡張されてるメソッドなので入れなきゃ使えないだけで・・・。 injectについてちょっと調べてみます。ありがとございます。
284 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 10:22:25 ] >>277 ('A'..'ZZ').to_a.index('IV') + 1 256
285 名前:デフォルトの名無しさん [2008/08/26(火) 10:47:07 ] >>284 これは目からウロコ。 'A'..'ZZ'がZからAAに繰り上げしてくれるとは知らなかったです。 有難う御座いました。
286 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 10:55:45 ] これってやっぱりあの変態さに定評のあるsuccがバックエンドになってるのかな?
287 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:00:17 ] >>281 初心者は自分の手で作ることを嫌がったら駄目だぞ だいたい、どんなことがなぜ望ましくないかなんて耳で聞いだだけじゃわからんじゃないか Net::HTTPでgetとheadとpostをするのは基本 ラッパーメソッドを作るのも基本 ヘッダやクッキーの処理にも手を出して、うわ何これめんどくせー、となった時点で既存の外部ライブラリを探す こうすれば、その外部ライブラリの中の挙動もある程度推測できるし、不足点やバグがあったときに対処もできる 最初から外部ライブラリだけを使ってしまったのではなかなかこうはいかない ということで、gemで "httpclient" をインストールすれ HEADリクエストにも対応している irb> require 'rubygems' irb> require 'httpclient' irb> client = HTTPClient.new irb> res = client.head('www.google.com/ ') irb> p res.header['Location'] ["www.google.co.jp/ "]
288 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:03:19 ] >>286 irb> p "Z".succ "AA" ___l___ /、`二//-‐''"´::l|::l l! ';!u ';/:::l ', ';::::::l ';:::::i::::: ノ l Jヽ レ/::/ /:イ:\/l:l l::l u !. l / ';:::l ', ';:::::l. ';::::l::::: ノヌ レ /:l l:::::lヽ|l l:l し !/ ';:l,、-‐、::::l ';::::l:::: / ヽ、_ /::l l:::::l l\l ヽ-' / ';!-ー 、';::ト、';::::l::: ム ヒ /::::l/l::::lニ‐-、`` / /;;;;;;;;;;;;;ヽ! i::::l::: 月 ヒ /i::/ l::l;;;;;ヽ \ i;;;;;;;;;;;;;;;;;;;l l::l::: ノ l ヽヽノ /:::l/:l /;;l:!;;;;;;;;;', ';;;;;;;;;;;;;;;;;ノ l:l::  ̄ ̄ /::::;ィ::l. l;;;;!;;;;;;;;;;;l `‐--‐'´.....:::::::::!l __|_ ヽヽ /イ//l::l ヽ、;;;;;;;ノ.... し :::::::::::::::::::::ヽ /!リ l | ー /::::l';!:::::::::::::::::::: u ', i ノ l | ヽー /イ';::l ’ し u. i l l | /';:';:!,.イ し 入 l l U | /,、-'´/ し / ヽ、 u し ,' ,' l | /l し _,.ノ `フ" ,' ,' ,ィ::/: | /::::::ヽ ヽ / し ,' ,' / l:: | /::::::::::::`‐、 し ', / u ,、-'´ l,、- | ``‐-、._::::::::::` ‐ 、 ',/ , -'´`'´ ,-'´ | _,、-‐'"´';:::::::::イ:l';:::` ‐ 、._____,、-‐'"´ u / | | | | \ l::/ l::::::/リ ';:::::lリ:::::l';:::l l:l:::::l\ u / | | | |
289 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:08:10 ] succ大人気w
290 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:12:54 ] 'z'.succ が "A" ではなく "aa" なのは変態でいいと思う まあ 9.succ が 0 ではなく 10 なんだから予想の範疇ではあるが '10'.succ が "11" なのも変態認定してよい
291 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:30:48 ] それは普通
292 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:43:37 ] '99'.succ が "100" になるのは変態 というか Ruby の succ への拘りは異常 succ を便利に使うのってどの言語由来?
293 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:50:38 ] perlの ++ -- 由来 rubyが異常なわけではない
294 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 14:29:46 ] 特定サイトへの頻繁なWebアクセスのキャッシュ管理をDB的にやってくれるライブラリってないすかね {URL => HTTPヘッダ} というハッシュを1個のpstoreに保存して、スクリプトの最初に完全に読み込んで使ってるんだけど、 もっといいのあるかな
295 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 14:41:59 ] >>294 初心者スレ的にはハッシュとPStoreでサイト用にカスタマイズするのが一番だと思う マルチスレッドでアクセスされてPStoreが壊れそうならsqlite3とかでデータベース使え Railsのどこかに何かあるような気もするが、たぶん超ごっついと思われ
296 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 20:29:54 ] alias suck succ
297 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 22:44:20 ] >>294 揮発してもかまわないなら memcached
298 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 02:07:50 ] ruby 1.8.7では [7,6,5].map.with_index{|x, i| x*i} ができないので、かわりに [7,6,5].each_with_index.map{|x, i| x*i} と、やるのを見かけました。 ならば inject.with_index 的な意味で [7,6,5].each_with_index.inject(0){|r, x, i| r+x*i} と、できるのでは!と思ってやったところ、 in `*': no implicit conversion from nil to integer (TypeError) というエラーがでます。 色々試したところ [7,6,5].each_with_index.inject(0){|r, x, i| p x} とやると [7, 0] [6, 1] [5, 2] と出力されました。 injectの第2ブロック引数 には [元配列の要素,インデックス] という配列が 渡されているようです。 (第3ブロック引数は何も渡されない) なーんか、違和感があるんですけど、そんなことないですか?
299 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 02:34:14 ] >>298 [7,6,5].each_with_index.inject(0){|r, (x, i)| r+x*i}
300 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 18:02:07 ] rails2.1の入門教えてください
301 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 18:12:11 ] アバウトだのう Rails初心者スレってないんだよね、そう言えば 需要が微妙だけど…
302 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 18:14:29 ] beginとendが予約語なので、範囲の開始と終了を表す変数名で困ってます Rubyで一般的な開始と終了の変数名のペアってありますか? 文法ミスにならないようにbeginとendを慎重に使うというのは勘弁してください
303 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 18:21:47 ] Rangeクラスではfirst、lastが使われている
304 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 18:36:52 ] beginning-ending opening-close(closing) beg ed
305 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 20:21:49 ] start finish
306 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 20:27:06 ] finishはないわー
307 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 20:27:28 ] a z
308 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 20:50:19 ] 仮引数では s と e をよく使う が、文字列の s と 配列要素の e と被るのが難点
309 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 21:00:29 ] start と stop @begin と @end
310 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 21:01:43 ] >>302 >範囲の開始と終了を表す変数名 from と to でいいような気がしてきた
311 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 21:12:25 ] from と to は変換が絡む処理に見える ファイルの移動とか 文字列の変換とか
312 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 21:19:30 ] _beginと_endで
313 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 23:40:10 ] >>311 そんなことないと思うけどなー 変換が絡む処理なら src と dst (source と destination) だよ
314 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 23:41:41 ] ほほう from,toじゃなくてsrc,dstかメモっとこ
315 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 23:52:09 ] srcとdstはC時代の遺物のような気もする いや、フルスペルで書くと長すぎるが
316 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 01:18:47 ] dstは躊躇うけどdestだと受け入れてしまう気がする
317 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 02:27:59 ] ええー
318 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 05:26:58 ] src に「開始地点」以外の意図が多すぎるから、src - dst はピンと来ないなあ dst と書かれていても何のことか悩んでググる自信がある
319 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 07:58:21 ] s(tart) - g(oal) in - out src -dst from - to begin - end ruby - ?
320 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 08:23:45 ] b(egin) e(nd) k(ey) v(alue) - ペア構造のキー値 r(et) e(lement) - reduce の 第一引数、第二引数 読んでもらおうという気が見えないコードが書けます
321 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 13:13:24 ] 使えるのが Ruby だけというのもよくないと思うので、PHP5 の勉強も始める うっひょーこの関数全部フラットでこのまま覚えるのクラスによるクラス分けとかないの 配列(ハッシュ)からペア取り除くのに unset($array['key']) って書かないといけないのね ずっと前にちょっとだけ齧った Perl4 を思い出した
322 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 17:20:00 ] 関数って普通フラットじゃね? メソッドならレシーバいるけど
323 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 17:47:36 ] パッケージとか、名前空間に入れられることもあると思う
324 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 17:53:45 ] 標準(添付・内部)ライブラリがRubyのように全部クラス構造になってて 配列は配列クラスのインスタンスで操作はメソッドを経由して行うとか言うことは確かにないな PHP5はクラスを作れるが、内部は普通にPHP関数での遣り取りだ インターフェースとしてのオブジェクト指向だね
325 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 18:18:09 ] 質問です。 #!/usr/local/bin/ruby print "Content-type: text/html\n\n" require "csv" csv = CSV.open('file.csv,'r') csv.each_with_index do |line,n| a[n] = line[0] b[n] = line[1] puts end print"<html><body>#[a]</body></html>" print"<html><body>#[b]</body></html>" csv.close このプログラムをうpしたのですが内部サーバーエラーが出てしまいます。 自分では間違っているところが見つけられませんでした どうすれば正常に作動するでしょうか。 回答お願いします。
326 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 18:32:58 ] ~$ ruby -c test.rb test.rb:5: syntax error, unexpected tIDENTIFIER, expecting ')' csv = CSV.open('file.csv,'r') ^ test.rb:5: unterminated string meets end of file
327 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 18:33:35 ] file.csvのところのクォーテーションが足りない aもbも初期化されていないので配列かハッシュを代入すると良い #[a]でなくて#{a} htmlタグは1度以上出力しないほうが良い 試してないけどぱっと見てこのぐらい あといきなりCGIよりも一度コマンドラインで試した方がエラーが見えてわかりやすい
328 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 19:38:00 ] expectationsっていいんですか? 何か場当り的な網羅性の無いテストを推奨するような作りに見えるんですが
329 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 20:05:50 ] >>320 俺は reduce は acc(mulator) e(lement) が好きだな。 あ、もちろんコードにあわせて sumとかにすることもあるけど。
330 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 20:35:27 ] >>328 それは「あんな実行速度の遅いRubyのどこがいいのかわからない」という主張と同質だぞ
331 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 22:36:41 ] >>326 ,>>327 回答ありがとうございました。 次からはコマンドラインで一度試してみます。
332 名前:デフォルトの名無しさん [2008/08/29(金) 06:33:27 ] 小林と申します。 メーリングリストの利用自体がはじめてで、安易な行動をとり 皆様に不快な思いをさせてしまいましたこと、心からお詫び申し上げます。 大変申し訳ございませんでした。
333 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 06:34:15 ] I'm sorry . This is Test Mail これはテストメールです。
334 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 08:52:27 ] 信者としては こんなバカでも使えるわかりやすいRuby♥ と、 宣伝材料にしたいところだ。
335 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 10:41:33 ] net/httpとWindowsのバージョンに関する質問です。 Ruby1.8.6+exerb最新版で固めたプログラム内でnet/httpを使用しています。 そのプログラムはVistaSP1とXPSP2では正常に動作しますが、XPSP3だと接続時に 「接続済みの呼び出し先が一定の時間を過、、、」と出て接続すらできない状態です。 なにかそのあたりの情報がありましたら、ぜひ教えてください。 宜しくお願いします。
336 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 15:27:37 ] >>335 rubyのせいとかOSのバージョンが違うせいとか考える前に、問題のマシンでちゃんとネットワークに繋がってるのか調べた方がいい。 プロクシなしで普通にブラウザで外が見えるのか、とか。
337 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:48:45 ] >>295 sqliteより、RubyレベルでまーしゃるしたHashのほうが速くて便利だと思う