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


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

Ruby 初心者スレッド Part 24



1 名前: 【大吉】 mailto:sage [2009/01/01(木) 13:13:22 ]
プログラミング言語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を読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。

809 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 20:43:13 ]
unko

810 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 21:52:42 ]
久しぶりにスレみたら>>747で吹いた。
男じゃん。と思って検索したら、こんなに可愛い子が女の子なわけないじゃないか

811 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 22:18:03 ]
ググってしまったじゃないかww

812 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 23:26:45 ]
調べたらショタアイドル。ぐぐr必要なし

813 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 23:38:45 ]
>>812
ぐぐってしまったじゃないか

814 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 23:45:15 ]
密林で注文したじゃないかw

815 名前:デフォルトの名無しさん [2009/01/26(月) 03:25:48 ]
puts "文字"
puts "文字"
puts "\n"
srand
require 'readline'
def try_answer(prompt)
while buf = Readline.readline(prompt, true)
yield buf
end
end
difficulty = ($*[0] || 1).to_i
difficulty >= 1 or raise "#{difficulty}: Invalid difficulty direction"
answer = rand(30 * difficulty + 1)
judge_table = ["文字1","文字2","文字3"]
try_answer("文字 > ") do |line|
try = line.to_i
result = try <=> answer
puts "#{try}#{judge_table[result]}"
break if result.zero?
end

プログラミングに興味が出て、いろいろさがしてたら
学校の過去の資料にこんなプログラムがありました。
これはどんなプログラムなんでしょうか?
一文一文の意味を教えていただけないでしょうか?よろしく
おねがいします。

816 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 03:31:54 ]
マルチは感心しないな

817 名前:デフォルトの名無しさん [2009/01/26(月) 03:32:21 ]
ruby経由でwgetしつつ出力を表示しつつ、log.txtにもはきつつってことをやりたいのですが、上手くいきません。
画面には表示されますが、log.txtには何も書き込まれないという・・・
これは何がおかしいものなんでしょう

Dir::chdir("/work") do
 system("wget example.com/ | tee log.txt")
 puts "read log.txt"
 puts File.read("log.txt")
end




818 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 03:45:55 ]
>>817
wget の出力は標準エラー出力に表示する
tee は標準出力を取り込むことしかできないから、そもそも log.txt にはなにも書き込まれない
wget localhost/ 2>&1 | tee log.txt
Ruby あんま関係ないな

819 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 03:57:25 ]
>>818
いけた!そっかwgetエラー出力だったのか・・・
基本的なところをうたがうべきなのにすっかり忘れてた

820 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 04:00:33 ]
これを意識してる人はまずいないよ
これはむしろ wget の欠陥だと思う

821 名前:デフォルトの名無しさん [2009/01/26(月) 05:47:44 ]
Rubyでwebサーバーにアクセスしたとき
そのサイトにどんなファイルがあるか調べる方法はありますか?

822 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 06:03:15 ]
index許可してあればリスト取り出せるけど
そうじゃなければ_

823 名前:デフォルトの名無しさん [2009/01/26(月) 09:16:34 ]
robotでも作るつもりなのかな

824 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 11:26:53 ]
>>820
wget の場合、標準出力は -O - で取ってきたものを出力するためにあるので
(他のツールにパイプで直接流し込んだりとか)、そういう時にも一貫性を保てる
ように、メッセージは標準エラー出力というのは理にかなっている。
メッセージをファイルに取りたいなら -o filename オプションを使うという手もあるが。

Ruby 関係ないな。

825 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 11:30:37 ]
>>822
Ruby関係ないよね
っていうか、HTMLやHTTPの勉強はしてもらってるのかね
Rubyは魔法じゃねえぞ

826 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 11:39:31 ]
Ruby関係ないということがわかるだけでも勉強としては前進だから、どんどん聞くだけ聞いてもらってもいいけどな
回答としても「ちげーよRuby関係ねーよ」と答えるだけでいいから楽だし

Ruby内でwget使ってログ管理しようとして嵌るというのは順調なテンプレの範囲だと思う

827 名前:817 mailto:sage [2009/01/26(月) 12:24:18 ]
そもそも、コマンドラインで
 wget example.com/ | tee log.txt
ってやってみてRubyの問題なのか、そうじゃないのか切り分けるべきでしたね

なにあれ、解決したので助かりました。



828 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 13:40:37 ]
Ruby 1.8でDir.globに複数のパターン(というか拡張子)を指定する方法は
ありませんでしょうか?

(Dir.glob("**/*.css") + Dir.glob("**/*.html")).each do |file|
 :
end
のようにするしかない?


829 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 13:44:36 ]
>>828
マニュアルに初心者お断りな感じできちんとわかりにくく書いてあんじゃんよ
irb> Dir.glob("*")
["002.txt", "001.txt", "aaa.jpg", "bbb.jpg"]
irb> Dir.glob("*.txt")
["002.txt", "001.txt"]
irb> Dir.glob("*.txt\0*.jpg")
["002.txt", "001.txt", "aaa.jpg", "bbb.jpg"]



830 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 13:49:16 ]
あれわかりにくいよね
素直に第一引数は配列受け取るようにすればよかったのに

831 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 15:37:35 ]
ネットワーク上にあるExcelファイルを、
open-uriを使わずにnet/httpを使ってFileオブジェクトに格納する方法はあるでしょうか

832 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 15:52:09 ]
>>831
bodyをそのままwriteするだけじゃダメなんだっけ?

833 名前:828 mailto:sage [2009/01/26(月) 15:52:40 ]
>>829
本当だ!

> パターンを "\0" で区切って 1 度に複数のパターンを指定することもできます。
>
> p Dir.glob("f*\0b*")
> => ["foo", "bar"]

マニュアルみたつもりで見落としていました。
ありがとうございました。

834 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 15:57:50 ]
>>832
bodyメソッドを実行すると「string contains null byte」とエラーが出てしまいます・・

835 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 16:05:54 ]
めんどくへえ
イントラ限定のサーバかなんかで変な形式で送られてきてると予想
ヘッダはなんて言ってる?

836 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 16:10:15 ]
レスポンスのヘッダでしょうか?

HTTP/1.1 200 OK
Date: Mon, 26 Jan 2009 07:08:59 GMT
Server: Apache/1.3.27 (Unix) (Red-Hat/Linux) mod_ssl/2.8.12 OpenSSL/0.9.6b DAV/1.0.3 PHP/4.1.2 mod_perl/1.26
Last-Modified: Mon, 26 Jan 2009 00:11:23 GMT
ETag: "3f1629-48000-497cffab"
Accept-Ranges: bytes
Content-Length: 294912
Content-Type: application/vnd.ms-excel

こんな感じです

837 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 16:10:22 ]
>>834
エラー箇所どこ?
win32なのにバイナリモードでFile.openしてないとかいうオチはない?



838 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 16:14:04 ]
>>837
さすがにそれはないと思いたい

839 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 16:23:08 ]
>>837
orz おさわがせしました

840 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 16:29:17 ]
>>838-839
初心者スレだしこんなミスもいいんじゃね?w
解決したならなによりだし(あのエラーを見たことは無いから自信はなかった)
騒がせたと懲りてるようなら、もう同じミスをしてもすぐ自分で気づくだろうから。

841 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 17:16:29 ]
>>833
glob 構文だけを純粋に使って、*.{css,html} これでもいんじゃない。

842 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 17:29:56 ]
>>833
・{ } コンマで区切られた文字列の組合せに展開します。

Dir.glob("**/*.{css,html}") do |file|
puts file
end


1.9だと配列で複数のパターンを渡せるようになった


843 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 17:39:27 ]
あらら、かぶっちゃった

Dir[pattern] 形式だと1.8でも複数のパターンを指定できるよ

Dir["**/*.html","**/*.css"].each do |file|
puts file
end


844 名前:828 mailto:sage [2009/01/26(月) 17:40:13 ]
>>841-842
おお、便利だ!

> { } コンマで区切られた文字列の組合せに展開します。
> 例えば、 foo{a,b,c}はfooa, foob, foocに展開されそれぞれに対してマッチ判定を行います。

> 括弧は入れ子にすることができます。例えば、 {foo,bar{foo,bar}} は
> foo, barfoo, barbar のそれぞれにマッチします。

これですね。ありがとうございました。


845 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 20:20:17 ]
>>843
完全に単なるエイリアスだと思い込んでた…
glob構文めんどいから

["**/*.html","**/*.css"].inject([]){|r, i| r.concat Dir.glob(i) }

こんなことしてたぜ…横から感謝

846 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 22:36:34 ]
>>843
すげー。知らんかったわw globとは別なのね

847 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 23:20:28 ]
>>843はオレも知らんかったので助かるんだけど、でもこれっておかしいよね。
ほんとはglob()と同じにすべきだよな。わざわざこんなふうにしている意味が分からん。




848 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 23:24:54 ]
> ほんとはglob()と同じにすべきだよな
いまさらglobを変えるわけにいかないからせめて関数的メソッドDir[]は配列を受け取るようにしたという流れだと思った
よく覚えてない

849 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 02:16:31 ]
Dir[]とDir.globの違いはなんだろ(引数以外)
Dir[]全部列挙で、Dir.globはブロック渡すと逐一処理可能ってことか?

850 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 03:32:53 ]
glob2とか作ってコンパチ目指したほうが。
なんか先に作った香具師の実装がアレでみんな迷惑してるの多いよね。cgiとかwww



Content-Transfer-Encoding: base64とか付いてるとか?

851 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 09:23:26 ]
>なんか先に作った香具師の実装がアレでみんな迷惑してるの多いよね。cgiとかw
あほか
それは事実だが結果的にそうなった
つまりそういう開発ポリシーだからそうなる必然
文句云うな

852 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 09:25:48 ]
日本語でおk

853 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 09:37:46 ]
まぁ文句あるならもっと良いもの自分で作れってことだろ
そうやってMatzんは煽って北

854 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 11:11:36 ]
「開発ポリシー」で互換性を残したままにするから、
結果的に古いのが残っているってことでしょ

855 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 11:36:22 ]
Rubyのコアライブラリ近辺って「1つ目」を作る人は大量にいるけど「2つ目」を作る人がいないんだ
全部自前でクラスやメソッド改造してしまうから

Ruby1.2くらいで「このライブラリの存在は大きいので、では本格的なものを添付しましょう」という流れにならないのがRuby

856 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 13:16:40 ]
cgi2chとかいうライブラリができたら楽しいなw

857 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 14:00:45 ]
>>844
シェルのワイルドカード展開と一緒だよ。コマンドラインで多用しない?
diff -c nagainamaenofairumeiwonandomoutitakunai.rb{.orig,}とか。



858 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 14:16:40 ]
確か次世代cgi.rbは、候補はあるけど決定的なものがないという理由で今のままなんだよね


859 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 14:24:55 ]
cgi.rbをとりあえずな感じで添付したらそのまま数年維持されて癌になったという経験が尾を引いてるな

860 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:40:24 ]
互換性なんかどこに残ってんだよ

861 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:26:19 ]
クラス CGI2ch::BBS
クラスメソッド
CGI2ch::BBS.new([index])
最新の板一覧取得用URL(複数候補可)を指定

インスタンスメソッド
menu()
板一覧を取得
戻値 (cat, host(FQDN), board, name) のリスト
例:
[('', 'www.2ch.net', '', '2chの入り口'),
('', 'info.2ch.net', 'guide', '2ch総合案内'), ...,
('ニュース', 'mamono.2ch.net', 'newsplus', 'ニュース速報+'), ...,
('PC等', 'pc11.2ch.net', 'unix', 'UNIX'), ...
('PC等', 'pc11.2ch.net', 'tech', 'プログラム技術'), ...]

board(name)
CGI2ch::Boardのインスタンスを生成



862 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:26:43 ]
クラス CGI2ch::Board
クラスメソッド
CGI2ch::Board.new(host, board)

インスタンスメソッド
subject()
スレ一覧を取得
戻値 (key, title, res) のリスト(スレッドキー, タイトル, レス数)
例:
[(1223709050, 'Rubyについて Part 33', 624),
(1233033091, '愛国Ruby', 14), ...]

thread(key)
CGI2ch::Threadのインスタンスを生成



863 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:27:07 ]
クラス CGI2ch::Thread
クラスメソッド
CGI2ch::Thread.new(key)

CGI2ch::Thread.create(name, email, body)
新スレを立ててインスタンスを生成

インスタンスメソッド
read(key)

write(name, email, body)



864 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:27:32 ]
>>856
こんな感じで計画中だけど
どう?

865 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:32:48 ]
クラスメソッド
CGI2ch::Thread.new(board, key)

CGI2ch::Thread.create(board, name, email, body)
新スレを立ててインスタンスを生成

boardが必要かな

866 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:42:18 ]
>[(1223709050, 'Rubyについて Part 33', 624),
> (1233033091, '愛国Ruby', 14), ...]

なにこれ

867 名前:710 mailto:sage [2009/01/27(火) 17:22:38 ]
>>711
Railsのスレあったんですね。
気づきませんでした。

>>715
コメントありがとう。
結局原因がわからなかったので、rjsの中でhtml(<option></option>)を組み立てて、selectボックスに
対してreplace_htmlしたら回避できました。





868 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 17:29:56 ]
>>864
計画倒れにならんようにがんがれ

869 名前:デフォルトの名無しさん [2009/01/27(火) 17:42:31 ]
2chの仕様なんて面倒だぞ。
専用ブラウザ開発者はマゾヒストとしか思えない。

870 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 18:00:13 ]
>>864
スレ違い
2ch専用ブラウザの作り方
ttp://pc11.2ch.net/test/read.cgi/tech/1180406037/

871 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 18:14:12 ]
>>862
愛国はかんべんw

872 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 18:17:05 ]
>>871
はいはい面白いね至高のギャグだね

873 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 19:18:57 ]
リファレンスマニュアルの使いにくさをどうにかしてください。
例えば、タイムアウトさせたい処理について調べたい場合、目次を見てもどこを見ていいのかさっぱりわかりません。

874 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 19:26:10 ]
あ、オフィシャルサイトは検索休止中なんだっけ
timeoutで全文検索すると出てくるぞ

875 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 19:35:31 ]
「Ruby マニュアル」でぐぐると「ruby マニュアル 検索」が関連で出てくる現状はどうにかしたほうがよい
ttp://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=Ruby+%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB&num=10

876 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:08:35 ]
ttp://doc.loveruby.net/refm/api/view/search?q=timeout

るりまはいつになったら公式化するのだろうか

877 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:22:00 ]
>>876
MLいわく、静的HTMLを吐くツールが整備されてから



878 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 23:59:46 ]
>>864
期待してます

879 名前:デフォルトの名無しさん [2009/01/28(水) 00:01:28 ]
>>864
そんなことしてる暇あるんなら
Rubyのリファレンスマニュアルを検索出来るようにしてくれさい

880 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 03:16:09 ]
つ refe2

881 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 04:26:03 ]
Rubyラブじゃ☆

882 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 05:49:46 ]
>>879
さっさとchm版を使ってください

883 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 11:53:50 ]
require "active_support" すると、
あらゆるオブジェクトに daemonize というメソッドが付いてくるんですが、
これって ActiveSupport が意図してやってるんでしょうかね?
こうするメリットが良くわからないんですけれども。

884 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 12:03:24 ]
Kernel や Object クラスのようなものに外部モジュールがメソッドを追加するというのは議論を呼ぶ設計なのは確か
ActiveSupport::Daemon.daemonize(obj) みたいなのでいいじゃんというのも指摘としては真っ当
そこで笑ってこっち見てる YAML 君もこっち来なさい

885 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:25:11 ]
require "active_support"を使わなければ問題ない

886 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:45:39 ]
String#each_line(sep) って、中で事前に巨大な配列作ってますか?
「ちょっとずつ」改行まで読み込んで返している動作ですか?

887 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:47:17 ]
フラッグ型に保ち合ってきた。どっちかにブレイクするかもな。



888 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:50:12 ]
誤爆・・・

889 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:55:36 ]
>>886
String#each_lineだから「読み込んで」は不適当な気がするが、
改行を探しては1行作ってyieldし、という挙動ではある。

890 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:59:42 ]
str.split(/sep/).each do |line|

str.scan(/\G#{sep}/){|line|
なら、String#each_line は後者のイメージに近いと思われ
「str が 大きかったら each_line 1回のためだけにでっかい配列ができて胃が痛い」とか考える必要はないかと

891 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 14:06:07 ]
やっぱ str.to_a.each_with_index do …はあんまりよくないのか
each_line_with_index って each がえにゅめらぼーウンタラの関連でどっかのバージョンで登場してたりする?

892 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 14:19:37 ]
>>891
行番号が知りたいんだろうけど、each_lineは行ごとにループ呼ばれるから
自分でカウントアップすればいいんじゃない?

893 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 15:05:28 ]
str.each_with_indexじゃダメなん?

894 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 15:21:04 ]
String から呼ぶ Enumerable のメソッドって String をどう扱うかイマイチわからん

895 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 15:29:55 ]
>>892
> 自分でカウントアップすればいいんじゃない?
なにそのwith_indexの存在意義自体を土足で踏みにじる暴言

896 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 15:36:40 ]
>>893,895
1.9のStringってeachがなくなってEnumerable非対応に
なるんじゃなかったっけ?

>>894
Enumerableのメソッドは全てeachに依存してるから、eachに準ずる。
直観的じゃないという話なら同意。


897 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 15:37:02 ]
Rubyには放っておいても増える隠し定数のループカウンタとかないの



898 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 15:43:37 ]
>放っておいても増える

そんなもんあったら問題だw

899 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 16:59:30 ]
1.8.7以降限定ならstr.each_line.with_indexでいいんじゃないの。
それより前だったらstr.each_with_indexでいいし。

900 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 17:02:23 ]
each_with_index自体あんまり使わないから正直どうでも良い

901 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 17:06:36 ]
行志向のファイルを処理するスクリプトを書かない人には無用の長物だな

902 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 17:15:11 ]
全機能使って書いてるのはRubyを作ってるモルモンくらいでしょ

903 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 17:20:55 ]
昔どのメソッドが何するもんかは覚えても実際使わないと忘れて逝くのが人類です

904 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 17:55:08 ]
>>894
1.9でString#eachがなくなって Enumerableじゃなくなったのはそれが理由だよね
バイト単位なのか、文字単位なのか、行単位なのか一般的には決まらないので
自分で明示して each_byte か each_char か each_line を使えと

でも自分スクリプトで
Stringが行単位のEnumerableなのを利用して
いきなり文字列の sort とかuniqとかしてたんだよね

で、1.8.6以前と1.9以降の両方で動くようにスクリプトの頭で
unless String.method_defined?(:each)
class String
alias each each_line
include Enumerable
end
end


905 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 18:31:47 ]
>897-898
$.

906 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 23:19:41 ]
よいまとめがあったんでシェア

Ruby1.9をこれから使う人のためのM17Nまとめ - 福島でRailsを使って仕事を頑張る計画
d.hatena.ne.jp/xibbar/20090126/1232946944

>>887
市況2?w

907 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 03:47:31 ]
>>864
wktk



908 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 04:19:58 ]
1.9なら
str.each_line.with_index {|line, idx| ... }
でFA。でかい配列を作ったりもしない。

909 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 10:32:14 ]
1.9知りたきゃ、これ見ろってことっすかね?

日本Rubyの会 公式Wiki - 1.9 Links
jp.rubyist.net/?1.9+Links






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

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

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