[表示 : 全て 最新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を読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。

338 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 22:11:31 ]
質問です

Webブラウザのように実際的な短時間でサムネイル画像を取得したいです
1個ずつサムネ画像URLをアクセスしてると10秒くらいずっとだらだらアクセスしててなんか申し訳ないです
(「申し訳ないのでスクリプトで取得すること自体を止める」ということは考えてないですごめんなさい)
スレッドをいくつか生成してアクセスすれば同じように所要時間を短縮できますか?

339 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 22:20:59 ]
このへんは一意な答がないんだよな
「多くの場合必ずしも好ましくない」というアドバイスが多すぎる

昔からの有名なものに「サーバ負荷考えてファイルアクセスのたびにスリープ入れろ」というのがあるが、
Keep-Alive全盛の今となってはクライアント側でスリープされて数十KBの接続を引き伸ばされるくらいなら
複数接続してもらってとっとと完了してもらって手放してもらえたほうがまだ有難かったりする

340 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 22:53:53 ]
>>338
Rubyのスレッドってそういう動作時間縮める用途に使えたっけ?

341 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 23:00:46 ]
IO待ちの間は他のスレッドに切り替わる…かもしれない

342 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 23:34:35 ]
ttp://slashdot.jp/article.pl?sid=06/12/20/0854256 を思い出した

>>338
Net::HTTP.start(host, 80){|http|
# 各画像ファイルをこのブロックの中でGET
}
こんな感じで多分望みの挙動になると思う

343 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 23:42:39 ]
require 'open-uri'
require 'benchmark'
uris = %w(www.yahoo.co.jp/ pc11.2ch.net/tech/ www.yahoo.com/).map{|e| URI(e)}

Benchmark.bm(2) do |x|
x.report{
uris.each do |uri|
uri.read
end
}
end
sleep 2
Benchmark.bm(2) do |x|
x.report{
threads = Array.new
uris.each do |uri|
threads.push(Thread.new { uri.read })
end
threads.each{|thread| thread.join}
}
end

# 結果
user system total real
1.150000 0.080000 1.230000 ( 2.655373)
user system total real
1.210000 0.060000 1.270000 ( 1.583636)

344 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 23:52:01 ]
外部待ちがないぶん、スレッド使ったほうが全体としては速いな

345 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 00:21:01 ]
そろそろNet::HTTP.startの中でThread#joinして意味不明の挙動に悩んでる頃なんじゃないかと思う

346 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 01:55:11 ]
変数名::メソッド

という書き方に違和感を感じるとともに、Rubyらしさも感じます。



347 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 02:36:56 ]


348 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 07:31:27 ]
こういうのじゃね

html = uri.read
case uri.host
when /www.example.com/ then
parser = TableParser_www_example_com
when /www.example.jp/ then
parser = TableParser_www_example_jp
end
datatable = parser::parse(html)

最初は文字列として連結して eval("#{classname}.#{method}") するしかないよなと思ってたんだが
普通にメソッド呼び出しのドットがくっついたときはさすがに参った

349 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 10:14:30 ]
てゆーか実はダラダラしてるほうが行儀正しいって突っ込みは無いのかよ

350 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 12:13:35 ]
>>349
あなたの使ってるWebサーバの設定を見直してみることをお勧めする

351 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 17:51:26 ]
java使いなんですがrubyに興味あって調べてます。
それで、rubyのホームにあるAPIは読みにくいので、どこかお勧めないでしょうか。
英語のサイトを探してもないみたいなんで・・

rubyはリテラルが多いので、少し使わないとすぐ忘れちゃうんですよね。

352 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 18:06:25 ]
刷新中の新リファレンスマニュアルはどう?
ttp://doc.loveruby.net/refm/api/

353 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 18:08:17 ]
と思ったけどリテラル一覧はないか。

これが見づらいということなんだよねぇ?
ttp://www.ruby-lang.org/ja/man/html/_A5EAA5C6A5E9A5EB.html

354 名前:デフォルトの名無しさん [2008/08/30(土) 18:21:25 ]
APIはいつもみるんで、MSDNみたいにリンクが多いよりは、Java docみたいな単純なテキスト(とページ内参照 a.htm#ref)のほうがいいと使いやすいと思います。

1.9のそれも使いやすそうですね。
文章多めで説明長・解説つきなら英語でやった方がいいんじゃないですか。
で、日本語のは短い説明だけで、よくアクセスされる必要な記事・解説は、英語の翻訳で済ますと効率的な設計かなと思います。

もしjavascriptでfile i/oができるなら、rubyじゃなくて、jsつかうんで。なぜなら、言語の機能よりも、文章がまとまってるって事が大事じゃないでしょうか。

ルビリストとかモルモンぽいんじゃなく、まともな人なら、コレが妥当なところでしょうか。
www.ruby-doc.org/core-1.8.7/index.html



355 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 18:29:33 ]
と、ここで提案してもしょうがないですし
JavaScript使いたいならJavaScript使ってくださいとしか

356 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 18:30:55 ]
C#とかDとかrubyはリテラル多すぎw

単純な制御とか処理はいちいちAPI探すの面倒だし、イテレーターつかわないんでwhile/forでいいよ。

OOも魅力的だけど、制御とか処理とかと関係ないし、肝心なOOのライブラリがないじゃんw



357 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 20:53:45 ]
昔VB5を少しだけやったときウィンドウに表示されてたんですけど
rubyは違うんですか?

プログラムは全くの初心者です・・・

358 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 20:57:09 ]
ウィンドウはプログラム言語がわざわざ出力先として敢えて作っているだけです
プログラムの基本は入力(と処理と以下略)と出力であって、
Rubyは入力だけを受け取って出力だけを行います

てか何か解説とか入門とか読んで試してるんではないん?

359 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 21:04:41 ]
>>358
Rubyの場合は出力先を指定しなければいけないのですか?
メモ帳とか・・・?

>>1のたのしいRubyをこの前買って 疑問に思ったから書き込みました

360 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 21:49:51 ]
増えていく可能性のある配列を再帰的に処理する場合ってどうすればいいですか?
以下のような感じのやつで2を表示させたいですが1で繰り返しが終わります。

#!/usr/bin/ruby -Ku

@i=[1]

@i.each{|a|
p a
b=2
@i << b
@i.delete(a) if b != nil
}

361 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 22:41:54 ]
>>360
挿入して削除したら、増えてないじゃん

362 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 22:46:38 ]
イテレータの中で要素数を増減させるのはあんまりよろしくないよなあ
javaだと例外飛んで怒られるくらいだし

363 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 23:15:09 ]
再帰的に、というのがわからんが、
単純に、

a = 0
while a < @i.size do
 ...
 a += 1
end

と書けば?

364 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 23:31:23 ]
>299
遠くからすみません。
そんな書き方できるんですね。
ありがとうございました。

でも、何で括弧がいるんだという辺りは
よく理解できませんでした。
勉強します。

365 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 23:42:04 ]
>>361
書き方へんなのでごめんなさい
回している配列が途中で条件によって増えていって
そうじゃない場合は増えなくなるので最後には
配列がなくなってほしかったんです。
って書いてて意味が分からなく。。

>>362
何となく駄目ってのは分かるのですが
今作ってるやつだと
それ以外思いつかなったので。

>>363
ありがとう
最後にretryつけたらそれでもいけたので
駄目だったらその方法試してみます。


366 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 00:26:55 ]
ああ、配列の要素の値を元にした処理の結果で、配列の要素が増えたり減ったりするんだな
で、新たに増えた配列の要素も、要素増減の処理に使うんだ

…なんかどっか設計が間違ってるような気もするが…



367 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 00:43:19 ]
スタックとかキューとか知ったら幸せになれそうなんだが違うのかな

368 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 01:25:17 ]
よくよく考えると反復処理とは言えないようなことを、イテレータでやっちゃうもんだから
ややこしいんじゃないか

369 名前:360 mailto:sage [2008/08/31(日) 01:39:14 ]
>>366,367,368
精進します。
とりあえず動くっぽいので動いてから
設計見直してみます。

370 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 02:18:00 ]
>>368
なんかそんなかんじするね

arr = [1]
while !arr.empty?
 elem = arr.shift
 value = somefunc(elem)
 unless value.nil?
  arr << value
 end
end

わかんねーや

371 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 03:32:49 ]
設計とか言う言葉を使うレベルじゃないと思うんだけど?

372 名前:デフォルトの名無しさん [2008/08/31(日) 07:06:42 ]
#! ruby -Ks

s1="あいう"
p s1.length

ar=s1.split (//)
p ar.length

日本語文字数を計算するのはコレしかないんですか?

それと、size/lengthは何か違いがあるんですか。
内部の実装で、sizeの方がsizeof (byte) * count
lengthの方が自動で str.split(//).size みたいな遅延評価
とかになってないんでしょうか?

373 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 07:57:05 ]
>>372
jcodeをrequireしてjsize/jlength
内部の実装は知らんがsize/lengthは同じだろ

374 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 14:23:42 ]
ruby-1.8.7-p72/string.c
rb_define_method(rb_cString, "length", rb_str_length, 0);
rb_define_method(rb_cString, "size", rb_str_length, 0);

再定義しない限り、Cのレベルで実体は同じ処理って事だ。


375 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 15:16:59 ]
includeのたびに新しく定義しなおすのはイケてない。
module A
 module ClassMethods
  def hoge
   puts 'Hoge'
  end
 end
 extend ClassMethods
 def self.included(m)
  super
  m.extend(ClassMethods)
 end
end
というのが定番。


376 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 15:26:16 ]
%w[A Z AA IV].map {|s| s.downcase.succ.tr("a-z", "1-9a-z").to_i(26)} # => [1, 26, 27, 256]



377 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 15:31:10 ]
すまん、アンカーつけ忘れた。
>>375>>252
>>376>>277


378 名前:デフォルトの名無しさん [2008/08/31(日) 21:31:49 ]
初心者なんですが質問です

処理を書くとき、classにした方が素敵ですか?

イテレータはeachの繰り返しにしか使ってないのですが
他に便利な使い方はありますか?


379 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 21:46:40 ]
> classにした方が素敵ですか?
メソッドにしないと非常にかっこ悪い

オブジェクト指向におけるクラスの概念はわりと高潔なものだが、
Rubyでは「処理をまとめてnewメソッドでスタートさせるもの」でもいいと思う
特に初心者のうちはクラスの使用条件というものについてうだうだ悩むのは無駄
てきとーにまとめて便利に使いながら自分で考え方見つければいい

あと、eachは基本だが、mapとfind_allの使用頻度と便利度は異常なので、
EnumerableやArrayクラスのメソッドはなるべく早く把握して適宜調べて使えるようになるといい

380 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:08:58 ]
>>378
>処理を書くとき、classにした方が素敵ですか?
基本的にはclassにした方が素敵
どこからどこまでをclassにするかは、プログラムの目的や個人の趣向などによる

慣れないうちは設計が難しいので
分かりやすいデータのまとまりを、class化することから始めるのがオススメ
掲示板の1記事をArticleクラスにするとか

381 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:15:48 ]
irb> def h(*p) ; p p.class; end
irb> h(1)
Array
irb> h(1=>2,3=>4)
Array

うわー困るうううっていうかめんどくさいいいい

382 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:20:13 ]
>>378
繰り返しじゃないから厳密にはイテレータの話じゃなくなるけど
IO#openみたいに後始末を自動でしたいときにも便利

383 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:22:21 ]
>>382
それ関係ないだろ
単にensure節の効果だ

384 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:22:48 ]
メソッドもクラスもしくはクラスもメソッドだったらいいのに

385 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:32:32 ]
たかがメソッド実行するたびに new する言語なんて遅くてやってられねえぞ

386 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:40:10 ]
>>381
def method(*para) は引数がまず配列になるからな
キーワード引数風ハッシュの処理するのもけっこうめんどくさい
なんかうまいライブラリとかないもんかね



387 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:55:49 ]
>>381
def h(a, *b) でいいんじゃないの?

388 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 23:52:11 ]
>>386
ActiveSupportを使うと、*argsで受けて、options = args.extract_options!


389 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 01:48:09 ]
feed-normalizerってどうですか?
検索してもほとんど情報が出てこないんですが

390 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 02:41:35 ]
perlおぼえたあと、
PHPとRubyでは、
どっちを学んだら相性いいですか?

391 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 03:52:48 ]
>>390
そりゃここじゃなくてperlのスレで聞きなよ
その時は「相性」という言葉を、どういう意味で使ってるのかも添えといた方がいい

392 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 06:55:48 ]
perlおぼえたら、perlを使うんじゃないの?まずはプログラムやりたいみたいだし、簡単だからVB.NETやるといいよ。

393 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 08:21:08 ]
んなもんなんのためにPerl覚えたかによると思うが。
趣味だってんなら好きにしろ

394 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 08:47:10 ]
>>390
WebやりたいならPHP、小物アプリならRuby
本格的アプリならJavaやC#

395 名前:デフォルトの名無しさん [2008/09/01(月) 10:32:08 ]
それ、全部VBでいいんでない?

396 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 10:46:23 ]
全部common lispでできるよ



397 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 10:58:01 ]
>>390
順番に意味はない。

398 名前:デフォルトの名無しさん [2008/09/01(月) 11:11:56 ]
>>394
ぜんぼ覚えるの大変だなw
C++は習得できなかったからないの?
JRubyがあるから、今のうちにJavaかな。

399 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 19:05:30 ]
サーバーサイドC++ってごっつすぎだろ

400 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 20:47:46 ]
>>390
結論からいうとPythonを覚ればそれでなんでも出来る。
軽くて速くてソースが美しいPython。文書も豊富でライブラリも充実してるPython。
仕様はかっちり、世界規模で開発されているPython(Google, MS, Yahoo!, etc.)

オープンソース系ならほぼもうPythonが事実上の標準言語になってる。

日本だけで閉じこもってて、遅くてソースが汚くて開発もいい加減なRubyとかやっても
無駄に終わる可能性があるよ


401 名前:デフォルトの名無しさん [2008/09/01(月) 21:36:57 ]
ソースが美しい・汚いとは、例えばどういうソースのことだ

402 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:39:56 ]
読み難い、読み辛いって読み替えればいいんじゃね?

403 名前:デフォルトの名無しさん [2008/09/01(月) 21:54:31 ]
どうしても分からないことがあります。

hash = Hash.new([])
array_a = [1, 2, 3]
array_b = [:a, :b, :c]
array_one.each do |a|
  array_two.each do |b|
    hash[b] << a
  end
end
hash # => {}

でhashに値が入らないのは何故でしょうか?
{:a=>[1,2,3], :b=>[1,2,3], :c=>[1,2,3]}
となってほしいのですが。一方、下はOKです。

hash = Hash.new(0)
array_a = [1, 2, 3]
array_b = [:a, :b, :c]
array_one.each do |a|
  array_two.each do |b|
    hash[b] += 1
  end
end
hash # => {:a=>3, :b=>3, :c=>3}

404 名前:デフォルトの名無しさん [2008/09/01(月) 21:57:34 ]
あーしまった。変数書き間違った。訂正します。

hash = Hash.new([])
array_a = [1, 2, 3]
array_b = [:a, :b, :c]
array_a.each do |a|
  array_b.each do |b|
    hash[b] << a
  end
end
hash # => {}

hash = Hash.new(0)
array_a = [1, 2, 3]
array_b = [:a, :b, :c]
array_a.each do |a|
  array_b.each do |b|
    hash[b] += 1
  end
end
hash # => {:a=>3, :b=>3, :c=>3}

???

405 名前:デフォルトの名無しさん [2008/09/01(月) 21:59:23 ]
読みやすいかどうかなら、記号が多いよりもJavaやC#のように長いメソッド名のほうが読みやすいんじゃないの?
もう、パイソンと関係ないけおd

406 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:08:05 ]
 [:a, :b, :c] 
は何か意味あるの?



407 名前:デフォルトの名無しさん [2008/09/01(月) 22:10:44 ]
>>406
ないです。単にシンボルの方がタイプ数が少ないという理由です。

408 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:13:16 ]
>>404
カッコ付きのHash.newは、該当キーがなかったときにその引数オブジェクト
自体を返す。つまり、

x = []
hash = Hash.new(x)
each/each
if hash.has_key?(b)
hash[b] << a # ここには絶対来ない
else
x << a
end
end/end
みたいな感じ。

たぶんやりたいことは、ブロック付きのnewで
hash = Hash.new {|h, k| h[k] = [] }
じゃないかな。該当キーがなかったときに、
新しく空の配列を作って hash に代入する。


409 名前:403 [2008/09/01(月) 22:29:06 ]
> たぶんやりたいことは、ブロック付きのnewで
> hash = Hash.new {|h, k| h[k] = [] }
> じゃないかな。該当キーがなかったときに、
> 新しく空の配列を作って hash に代入する。

その通りなんですが、
x = Hash.new([])
x[:a] << 1
x[:b] << 2
x # => [1, 2]
これは大丈夫なのに、何でだろうと思って。


410 名前:404 [2008/09/01(月) 22:32:02 ]
あーすみません。また書き間違った上に、なんか根本的に誤解してる>自分
出直してきます。

411 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:41:51 ]
>>407
タイプ数が少ないって何のこと?

412 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:42:16 ]
x = Hash.new([]) # だいたい x = Hash.new; x.default = [] に同義
>> x[:a] << 1
=> [1]
>> x
=> {}
>> x[:b] << 2
=> [1, 2]
>> x
=> {}
>> x.default
=> [1, 2]


413 名前:403 [2008/09/01(月) 22:50:04 ]
ほんといろいろすみません。

>411
文字列じゃなくシンボルを使った理由を聞かれているものと勘違いしました。

>412
なるほどやっと分かりました。
というか、探したらちゃんと書いてあった・・・orz
www.ruby-lang.org/ja/man/html/trap_Hash.html

414 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 23:22:22 ]
>>413
rubyのhtml help入れれ

415 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 03:07:58 ]
パイトンはやったことないからわからんなぁ。

416 名前:デフォルトの名無しさん [2008/09/02(火) 17:09:52 ]
Loggerでログファイルを毎日Rotateさせようと思ったんだけど

>> require "logger"
=> true
>> log = Logger.new("foo.log", 'dairy')
=> #<Logger:0x33fe50 ...以下略>
>> log.info "foo"
=> true
>> log.info "foo"
Logger::ShiftingError: Shifting failed. 'foo.log.20080902' already exists.
>> log.info "foo"
Logger::ShiftingError: Shifting failed. 'foo.log.20080902' already exists.

ログを出力しようとするたびに ShiftingError が出るんだけどこれって何の冗談?


うちの環境は↓
$ ruby -v
ruby 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0]




417 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:11:21 ]
infoってメソッド名がおかしいんだよ
writeに改名しろ

418 名前:416 mailto:sage [2008/09/02(火) 17:17:46 ]
logger.rbを見たら 'dairy' じゃなくて 'daily' だった.あー恥ずかしい.
しかし引数間違っててもスルーって不親切だよなあ


419 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:21:31 ]
ruby厨きめえwwwwww
これからはpythonの時代だろks
うぇwっうぇwwwww

420 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:33:45 ]
Rubyだけ使ってるとでも思ってるのかね

421 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:34:42 ]
煽っているようでちゃんとsageているところに
育ちの良さがにじみ出てしまっているな

422 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:37:31 ]
>>420
そうじゃないと都合悪すぎるだろ
やろうと思えば複数言語の比較検討ができるとか断じてあってはならない

423 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:41:19 ]
釣れますか?

424 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:47:22 ]
結局rubyなんてwebProgでしかないし、pythonのほうが将来がある

425 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 18:27:19 ]
ルビみたいにメインストリームの横に張り付いているちっぽけな貧乳は今後成長する可能性も2.3%くらいあるが、
醜く大きくなったおっぱいそんは後は垂れるだけ。

426 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 18:43:07 ]
だっておwwwwww



427 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 18:57:20 ]
どうでもいいけど最近貧乳の良さが分かってきた

428 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 20:16:15 ]
俺は最初から貧乳が好き

429 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 20:36:26 ]

もともと巨乳好きだが最近貧乳にも興味あり

430 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 21:07:59 ]
何つうか、適材適所を知らない奴はPythonあたりでもダメなんだろうな。

431 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 21:13:21 ]
Pythonの威を借るDQN

432 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 21:31:36 ]
虎ってか蛇か

433 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 22:32:23 ]
恋するプログラムを読み始めたんだけど、2−2最初のサンプルからつまづいた・・・
「ワンツー」と日本語が入力できないんですが、どうしたらいいですか?
半角英数しか使えないよ

434 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 22:35:35 ]
コマンドプロンプトならAltを押しながら、半/全キーだったかな

435 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 23:04:50 ]
企業や学校の場合はconime対策でそもそも日本語入力機能が無効にされてることも稀にあるので注意だ

ちなみにタイトルバーを右クリックすると編集用のショートカットキーコンボがわかるので利用するといい

436 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:17:02 ]
下手に最初から日本語使って予期せぬエラー増やすよりも
慣れるまでは全部半角英数でやるのが無難



437 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:17:24 ]
>434
ありがとう。解決しました。
>435
よくわからない。
範囲指定(K)ってあるけどシフト、ctrl、altと組み合わせても発動しないし

というかセーブする方法がまだ出てきてなくてこの先生きのこれるか心配です

438 名前:デフォルトの名無しさん [2008/09/03(水) 00:20:43 ]
俺たちの先生は、キノコだったのか!!






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

前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