[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 17:32 / Filesize : 211 KB / Number-of Response : 864
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Ruby 初心者スレッド Part 21



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のほうが速くて便利だと思う






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<211KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef