Rubyについて Part 33
at TECH
1:デフォルトの名無しさん
08/10/11 16:10:50
オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。
Ruby Home Page
URLリンク(www.ruby-lang.org)
= 前スレ
Rubyについて Part 32
スレリンク(tech板)
過去スレ・関連スレは >>2-
2:デフォルトの名無しさん
08/10/11 16:13:00
Ruby 初心者スレッド Part 20
スレリンク(tech板)
【ActiveScript】RubyをWindowsで使うスレ【GUI】
スレリンク(tech板)
Rubyの宿題教えてください。2限目
スレリンク(tech板)
Ruby>>>>>Java
スレリンク(tech板)
【↓アンチ系】
Rubyについて(アンチ専用) Part003
スレリンク(tech板)
Rubyは難しすぎ
スレリンク(tech板)
【カルト】Ruby開発者Matz【モルモン】
スレリンク(prog板)
3:デフォルトの名無しさん
08/10/11 16:13:50
Rubyリファレンスマニュアル刷新計画
URLリンク(doc.loveruby.net)
ライブラリ一覧
URLリンク(doc.loveruby.net)
RubyExtensionProgrammingGuide
URLリンク(i.loveruby.net)
Ruby Hacking Guide
URLリンク(i.loveruby.net)
Symbol < Stringも止める。
URLリンク(www.rubyist.net)
クラスローカルインスタンス変数
URLリンク(www.rubyist.net)
クラス変数
URLリンク(www.rubyist.net)
ローカル変数
URLリンク(www.rubyist.net)
可視性メモ
URLリンク(www.rubyist.net)
URLリンク(blade.nagaokaut.ac.jp)
URLリンク(blade.nagaokaut.ac.jp)
YARV without 1.9
URLリンク(www.rubyist.net)
URLリンク(www.atdot.net)
URLリンク(i.loveruby.net)
JSON
URLリンク(json.rubyforge.org)
URLリンク(webos-goodies.jp)
URLリンク(webos-goodies.jp)
YAML
URLリンク(www.ruby-lang.org)
URLリンク(jp.rubyist.net)
URLリンク(www.namikilab.tuat.ac.jp)
4:デフォルトの名無しさん
08/10/11 16:14:28
Ruby/Gtk+
URLリンク(www.unixuser.org)
URLリンク(takeposo.sakura.ne.jp)
URLリンク(ruby-gnome.sourceforge.net)
URLリンク(ruby-gnome.sourceforge.net)
URLリンク(ruby-gnome2.sourceforge.jp)
URLリンク(psux1.kek.jp)
URLリンク(www.rubycgi.org)
URLリンク(ruby.gfd-dennou.org)
URLリンク(www.magicianmaster.jp)
5:デフォルトの名無しさん
08/10/11 16:15:00
Ruby on Rails
スレリンク(tech板)
URLリンク(jp.rubyist.net)
URLリンク(www.onlamp.com)
URLリンク(kyotosanga.com)
URLリンク(blog.hacklife.net)
URLリンク(www.metadata.co.jp)
URLリンク(japan.cnet.com)
URLリンク(japan.cnet.com)
URLリンク(journal.mycom.co.jp)
URLリンク(www.atmarkit.co.jp)
URLリンク(www.atmarkit.co.jp)
URLリンク(www-06.ibm.com)
URLリンク(itpro.nikkeibp.co.jp)
URLリンク(itpro.nikkeibp.co.jp)
6:デフォルトの名無しさん
08/10/11 16:19:31
テンプレ以上?
長っ
7:デフォルトの名無しさん
08/10/11 16:24:18
1乙
確かにテンプレ長いなw
8:デフォルトの名無しさん
08/10/11 16:28:00
GJ! AA(ry
9:デフォルトの名無しさん
08/10/11 16:39:56
GJ
10:デフォルトの名無しさん
08/10/11 16:54:38
そろそろ初心者スレ含めた2chのまとめwikiが欲しい所
11:デフォルトの名無しさん
08/10/11 17:20:55
>>10
なにかまとめることあるの?
初心者スレのまとめWikiは二つぐらい立ってたけど、どっちも動き止まってたような
12:デフォルトの名無しさん
08/10/11 17:28:21
・ インクリメント演算子が欲しいならMLへ
・ 現在のRubyをけっこう改変しないと実装できないのでうまい実装案を持った上で説得すること
・ 「よくわかんないけど便利だから」とか禁止
13:デフォルトの名無しさん
08/10/11 17:30:10
>>10
1スレでいいから自力でまとめてみ
まとめることが特に無いことに気づくから
やったことないと何かありそうに感じるだけだ
14:デフォルトの名無しさん
08/10/11 17:42:55
>>12
だからキチガイって言われるんだよ
15:デフォルトの名無しさん
08/10/11 17:59:29
>>14
そりゃあんたはRuby関連の場所が荒れたり揉めたりすりゃ奇声あげて喜ぶだろうけど、たいていの人はそうじゃないんで
16:デフォルトの名無しさん
08/10/11 18:16:05
スレ番号++
17:デフォルトの名無しさん
08/10/11 19:07:25
いい年して他にやることもなくただ2chで相手を否定することで寿命を削り続けてる惨めなオッサンばっかりだね
18:デフォルトの名無しさん
08/10/11 19:54:42
なんでそんな必死なの?
19:デフォルトの名無しさん
08/10/11 20:50:08
まあ荒らしもスレのにぎわいって言うし、話題ないよりいいんじゃね。
それより、ちょっと前から職場のSparc Solarisでcontinuationが落ちるように
なってしまった。
hogefuga@darkstar:~/Source/ruby$ ./ruby -I .ext/sparc-solaris2.9
require 'continuation'
puts callcc {|c| c.call :ok}
-:2: [BUG] Segmentation fault
ruby 1.9.0 (2008-10-08 revision 0) [sparc-solaris2.9]
-- control frame ----------
c:0004 p:---- s:0010 b:0010 l:000009 d:000009 CFUNC :callcc
c:0003 p:0022 s:0007 b:0006 l:000924 d:000924 TOP -:2
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH :inherited
c:0001 p:0000 s:0002 b:0002 l:0008c4 d:0008c4 TOP
---------------------------
DBG> : "-:2:in `callcc'"
DBG> : "-:2:in `<main>'"
異常終了
Sparc Solarisってもうサポートされないんだっけか?
20:デフォルトの名無しさん
08/10/11 21:23:54
Solaris自体はたぶん動くよね〜という扱いだったかと
SPARCはどうなんだろうか
URLリンク(blade.nagaokaut.ac.jp)
21:デフォルトの名無しさん
08/10/12 00:20:44
>>19
ruby-devかredmine.ruby-lang.orgへGO!
22:デフォルトの名無しさん
08/10/12 01:25:44
>>19
うちでは動いた。報告するなら環境を詳しく書いた方がいい。
$ ./ruby -v -rcontinuation -e 'puts callcc {|c| c.call :ok }'
ruby 1.9.0 (2008-10-11 revision 19759) [sparc-solaris2.9]
ok
23:デフォルトの名無しさん
08/10/12 06:50:54
言語内 DSL とかで、
class Hoge
def hoge; "hoge" end;
end
def foo(&block)
a = Hoge.new
a.instance_eval(&block)
end
foo { hoge }
# => "hoge"
みたいなのは良くあるけど、このやり方だと例えば Shell#transact みたいな、
instance_eval を使う method のブロック内では
foo { Shell.new.transact { hoge } }
# => NameError: undefined local variable or method `hoge' for #<Shell:0x7fea4b5e00c8>
となって期待通りに動いてくれない。こういう場合ってどう対処したら良いんでしょうか?
24:デフォルトの名無しさん
08/10/12 09:47:19
>>23
コードを見ても動きそうな要素が皆無なので
一体どう動けば期待通りなのか全く想像がつきません。
何が引数で何が返り値なのか、とかを考えてからコードを書き直して
初心者スレで質問し直すのがよろしいかと思います。
スレリンク(tech板)
25:デフォルトの名無しさん
08/10/12 09:55:44
質問。ほんのちょっとだけ違うメソッド定義を大量に定義したい場合。
「ハッシュやらブロックやら正規表現やら多用してメソッド定義をevalで作る処理を直に書く」
と
「メソッド定義を書き出すスクリプトを別途作ってできた大量の(代わり映えしない)メソッド定義をコピペする」
はどっちが妥当?
どうせRubyスクリプト遅いよね、とか厭世観をもって前者を使うべき?
26:デフォルトの名無しさん
08/10/12 10:04:38
%w(one two three four five).each do |str|
eval("def #{str}; puts \"#{str}\"; end")
end
と書くのと、スクリプトで出力させたのを
# generator
=begin
%w(one two three four five).each do |str|
puts "def #{str}; puts \"#{str}\"; end"
end
=end
def one; puts "one"; end
def two; puts "two"; end
def three; puts "three"; end
def four; puts "four"; end
def five; puts "five"; end
とコピペするのとどっちがいいかという話?
前者でいいんじゃないの。Rubyに文字列いじらせるのを躊躇ったら駄目
require の中身は eval だと 3回唱えて素直にわかりやすさ優先で eval 使え
27:デフォルトの名無しさん
08/10/12 12:03:18
「ほんのちょっとだけ違うメソッドを大量に定義したい」
って辺りで、設計がマズい気がヒシヒシするぜ。そもそも別メソッドにすべきなのか、それ。
28:デフォルトの名無しさん
08/10/12 12:07:59
クックブックでは前者のやり方が書いてあった気がする
29:デフォルトの名無しさん
08/10/12 13:23:27
まず大量のメソッドを定義しないといけない設計が変だと思う
分類したり、sendとか上手く使う構造にすべき。
30:デフォルトの名無しさん
08/10/12 14:18:50
evalを無闇に使うより、もうちょっと穏やかな方法はないかい?
class C
%w(a b c d e).each { |s| define_method(s) { |x| p s * x }
end
C.new.d 5 # => "ddddd"
31:デフォルトの名無しさん
08/10/12 14:43:34
統一メソッドと引数で区別するのは見栄えあるいは動作としてめんどくさいからこそ
単一のメソッドをたくさん定義するんじゃないかと思うんだがどうか
32:デフォルトの名無しさん
08/10/12 14:45:07
「たくさん」の量にもよるな…
10個くらいならevalで作りたくなる気はわからんでもない
100個ならたぶん何かが間違ってる
33:デフォルトの名無しさん
08/10/12 14:56:03
>>23
>foo { Shell.new.transact { hoge } }
># => NameError: undefined local variable or method `hoge' for #<Shell:0x7fea4b5e00c8>
foo { this = self; Shell.new.transact { this.hoge } }
とかではどうでしょうか。
たぶんお望みのものとは違うと思いますが。
self が変わってしまうとどうしようもないので、こんな方法ぐらいしか分かりません。
34:デフォルトの名無しさん
08/10/12 15:53:29
「バカが往く」ってめっちゃ上から目線だよな
他人がdisられてる時は対岸の火事というか、笑って読んでられるが、
いざ自分に矛先が向くと超ムカツクわ、あれ。
35:デフォルトの名無しさん
08/10/12 18:39:23
>>34も上から目線な件について
36:デフォルトの名無しさん
08/10/12 18:43:12
>>23
> となって期待通りに動いてくれない。
そんなもの期待するのが間違い。
env.instance_eval { ... } として用意したメソッドを中の環境で使わせるのは
DSLの文法を構成する機能を与えるため。
その中でどこでも使える便利関数を与えるためじゃない。
>>23は自分の実現したいものをDSLと考えない方がいいんじゃないか。
37:デフォルトの名無しさん
08/10/12 18:58:03
だから隠れたところでinstance_evalを使うなとあれほど何度も
38:デフォルトの名無しさん
08/10/12 19:18:55
まあまあ、そうえばるな。
39:デフォルトの名無しさん
08/10/12 20:14:57
>>38
ズコー
40:33
08/10/13 02:56:00
>>36
なるほど。すっきりした。ありがと。
僕が欲しいのはマクロだったんだな。
41:デフォルトの名無しさん
08/10/13 05:37:56
Ruby 1.9
> ARGF.class
=> ARGF.class
なんぞこれ・・・
けし忘れ?
complex.c:475: warning: ‘m_sqrt’ defined but not used
Ubutu 8.10βのgcc 4.3.1からだと、
io.c:5574: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
などのwarningが頻発。あと、parce.cのコンパイルが死ぬほど遅い。
42:デフォルトの名無しさん
08/10/13 09:57:41
>>41
> なんぞこれ・・・
気にすんな。
定数にもしたくないし、無名クラスのままってのも嫌だったってだけだから。
> Ubutu 8.10βのgcc 4.3.1からだと、
> io.c:5574: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
> などのwarningが頻発。あと、parce.cのコンパイルが死ぬほど遅い。
4.3.2だとどちらもない。
43:デフォルトの名無しさん
08/10/13 13:56:21
これってMatzが書いたんかいな?
The Ruby Programming Language: David Flanagan, Yukihiro Matsumoto: Books
URLリンク(www.amazon.com)
44:デフォルトの名無しさん
08/10/13 14:22:19
もちろん。邦訳の計画も一応あるらしい
しっかしレビュー高評価だなあ。やっぱりバイブル扱いされるんだろうか
45:デフォルトの名無しさん
08/10/13 14:38:58
巻末に /:|) と書き足すことで先生の仕事はおしまいです。
46:デフォルトの名無しさん
08/10/13 14:41:17
目次 URLリンク(oreilly.com)
プログラミングRubyとThe Ruby Wayを買ってしまっている自分にはいらなそうだ…
47:デフォルトの名無しさん
08/10/13 15:49:15
ていうか基本的にRuby本体に関する情報そのものは既に出揃ってるだろ
目新しいこと書かない限り重複は免れない
48:デフォルトの名無しさん
08/10/13 20:57:54
初期のruby本はrubyを無視していきなり
オブジェクト指向の話になるのが面白かったんだが。
そういうのは期待できないかな。
49:デフォルトの名無しさん
08/10/13 21:11:39
フラナガン本はwhileをイテレータで実装とか変態的なことも載ってるよ。
50:デフォルトの名無しさん
08/10/14 11:03:08
Visual Studioを使ってRails開発「Ruby In Steel Personal Edition 2008」
URLリンク(www.moongift.jp)
51:デフォルトの名無しさん
08/10/14 11:19:05
ホスト名見て積極的に読む気なくした
誰か別の人がレビューしてくれるまで待つ
52:デフォルトの名無しさん
08/10/14 16:38:21
moongift嫌いなのか
53:デフォルトの名無しさん
08/10/14 16:49:30
自分が使ってるソフトウェアが紹介されれば、あんまりアテにしてない人がいる理由が実感できるかも
週に曜日を決めて2回とか、そういう「量より質」の比較レビューにあのパワーを注ぐことを望みたいところだ
「そんなんreadme見てソフト名でググればわかるよ!」と言いたいことが何度か
54:デフォルトの名無しさん
08/10/14 16:55:19
Open Alexandriaは好きだった俺
55:デフォルトの名無しさん
08/10/14 17:15:47
質より量を望む人間にとっては、MOONGIFTのスピードと簡潔さはありがたい
知らなかったソフトウェアをいろいろ発見できるから
56:デフォルトの名無しさん
08/10/14 17:19:39
知ってる情報が役に立たなかったから知らない情報も読みたくない。
不思議な人もいるもんだ。
57:デフォルトの名無しさん
08/10/14 17:29:39
>>56
お前頭悪いって言われるだろ…
58:デフォルトの名無しさん
08/10/14 17:46:20
>>56
気にするな
柔軟性の足りない人、もしくは記事見る時間が惜しいくらい忙しい人なんだよきっと
59:デフォルトの名無しさん
08/10/15 08:39:40
外人さんが「1.9 compatibility デキタ!」 とかうるさい
うんうん Syntax Error 起こしてた場所は消えてるね
でも 1.9 互換を謳うなら $KCODE 依存のコピペコードは直そうね
128バイトで世界を表現できる住人はこれだから困る
60:デフォルトの名無しさん
08/10/15 13:03:41
>>59
おまえだって、右から左に書く言語のことなんか考慮したことないだろ
61:デフォルトの名無しさん
08/10/15 16:55:33
テキストファイルから例えば"a"という文字を検索して、マッチすれば
その前後に指定の文字列を挿入する方法はありますでしょうか。
62:デフォルトの名無しさん
08/10/15 17:04:06
>>61
初心者スレでつい最近そういう話題が出てた
63:デフォルトの名無しさん
08/10/15 17:06:46
#!ruby -pni.bak
BEGIN{
Prefix = "pre"
Suffix = "suf"
}
gsub(/a/, "#{Prefix}\\{Suffix}")
64:デフォルトの名無しさん
08/10/16 09:44:12
attr_reader :hoge?
と実質的に書けない件をこっちに振ってみるテスト
65:デフォルトの名無しさん
08/10/16 10:52:10
Module#bool_attr_reader を自分で定義して使えばよし
66:デフォルトの名無しさん
08/10/21 12:16:27
ぎゃー
このライブラリの次のバージョンから、動作もメソッドもめっちゃ変わるじゃん
gem update でアップデートした人でテクニカルな使い方してた人は警告山盛りで涙目
まあ、公開ライブラリ作る人は最初から素直な実装をしようね
(ライブラリが大きくなるとRubyでやれるオレカッコイイ独自実装は癌になる)
というお話でした
今のメンテナが引き受ける前の作者が作った部分だな、これ…
67:デフォルトの名無しさん
08/10/21 13:51:18
話の趣旨には大いに賛成だけど、
ここは自業自得っぽくね? >テクニカルな使い方してた
68:デフォルトの名無しさん
08/10/21 16:47:17
>>66
どのライブラリ?
69:デフォルトの名無しさん
08/10/21 16:59:55
外部ライブラリのメソッドをバグ回避目的以外で上書きするとか賭けだよね
70:デフォルトの名無しさん
08/10/21 17:06:03
バグ回避目的であってもモンキーパッチは賭けだよ。
71:デフォルトの名無しさん
08/10/21 19:53:10
式1 ? 式2 : 式3
式1の結果によって式2または式3を返します。
if 式1 then 式2 else 式3 end
とまったく同じです。
ってあるけどさ、これどういう事?
defined? String ? "OK" : "NG"
=> "expression"
if defined? String then "OK" else "NG" end
=> "OK"
以下で確認。
ruby 1.8.2 (2005-04-11) [i386-linux]
ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin]
72:デフォルトの名無しさん
08/10/21 20:02:33
>>71
優先順位の問題。
defined?(String ? "OK" : "NG")
(defined? String) ? "OK" : "NG"
73:デフォルトの名無しさん
08/10/21 20:03:26
>>71
演算子には優先順位というものがあるでな、式と書いてあったらとりあえず括弧でくくってみることじゃ。
74:デフォルトの名無しさん
08/10/21 20:10:08
>>72-73
なるほど、式の優先順位か!
おかげですっきりしたよ、ありがとう!
75:デフォルトの名無しさん
08/10/22 07:50:19
>>70
動作変更のメソッド上書きスクリプトを公開するより、バグ報告送ったほうが結局は手間がないことに最近やっと気づいた
バージョン1.1用からバージョン1.5用まで5種類くらい公開して、さすがにキレて1.6で修正入れてもらったとかそんな感じ
76:デフォルトの名無しさん
08/10/22 16:35:28
Matzの会社を財務分析してみたんだが。
URLリンク(d.hatena.ne.jp)
などと思わせぶりな言い方をするものだから覗いてみりゃ、
なんて事無い田舎の零細企業の財務諸表であって、面白くもなーんともなかったわけだ。
それにしても、この程度の収益で2007年度って、
あの会社にとっては多分空前絶後の景気のいい年だったはずだの
Rubyとゆー「鉱脈」があるだの言っているのは何なのだ。
Geekのヨタ話というのは、いつもこんなしょぼいスケールで行われているのか?
あそこの技術者の平均レベルは、他の普通の会社よりはずっと高いと思うって、
これじゃあ、技術なんてIT企業の収益とは何の関係も無いと証明しているようなもんじゃねえか。
そもそも、この会社が何をやっているのかがHPを見た限りではよく分からん。
要は受託開発だろ労働力を人月で売ってるだけだろマーケ屋がこねくりあげた横文字得意げに使ってなに悦に入ってやがんだコラ。
更には製品・サービス部門まであって、なにやら参考価格が書いてあるところを見ると、
多分にパッケージっぽい印象を受けるが、それでいて全体の粗利率が26%程度ではどうしようもないだろ。
あそこに入りたい人は、損益計算書も注意して見ておくといい。まぁこれはどんな会社でも同じだけど、
ここを見るといろんなことが見えて来る。株価指標を計算してみるのもいい(非公開会社でもね)。
77:デフォルトの名無しさん
08/10/22 16:37:02
それもう散々げっぷが出るほど既出
78:デフォルトの名無しさん
08/10/22 17:51:52
懐かしいコピペだね
79:デフォルトの名無しさん
08/10/22 20:17:00
定数探索の規則が謎なんだけど、これどういうこと?
module Foo
module Bar; end
end
module Foo
module Baz
p Bar # => Foo::Bar
end
end
module Foo::Baz
p Bar # => uninitialized constant Foo::Baz::Bar (NameError)
end
80:デフォルトの名無しさん
08/10/22 20:25:43
module式の1つ外側に探しに行ってるように見える
81:デフォルトの名無しさん
08/10/22 20:53:42
Foo::Baz のほうはネストの外側に Foo がないので探索にひっかからないのよ。
module Foo
module Bar; end
end
module Foo
module Baz
p Module.nesting # => [Foo::Baz, Foo]
end
end
module Foo::Baz
p Module.nesting # => [Foo::Baz]
end
82:デフォルトの名無しさん
08/10/22 20:59:15
それはModuleだからで、仕様?
83:デフォルトの名無しさん
08/10/23 02:05:01
classでも同じで、仕様。
84:デフォルトの名無しさん
08/10/23 09:49:27
日本語spam filterでrubyで書かれたものがあるそうなのですが
読みやすいコードになっているものなのでしょうか
85:デフォルトの名無しさん
08/10/23 09:51:51
あのへんはジャンル的に小難しいから、言語レベルはあまり影響しないんじゃないかな
理論を知ってるかどうかに依存すると思う
86:デフォルトの名無しさん
08/10/23 18:26:11
RubyでUnicodeの正規化(NFKDだとか)するにはどうすればいい?
ちょっとぐぐってみたけどこのライブラリのこの関数でできるよ!みたいのが
わからなかった。
1.9はきっと標準でできるのだろうけど、1.8でどうすればいいか知ってたら教えて。
87:デフォルトの名無しさん
08/10/23 20:15:48
$KCODE = 'u'
require 'active_support/multibyte'
ActiveSupport::Multibyte::Handlers::UTF8Handler.normalize("Python")
88:デフォルトの名無しさん
08/10/24 02:46:57
>>87
それは具体的には何をやってくれるわけ? normalizeというだけじゃ特定できんよ。
89:デフォルトの名無しさん
08/10/24 05:09:09
「UTF8に正規化」って言ったら特定できるだろ
あとはドキュメント
URLリンク(api.rubyonrails.org)
90:デフォルトの名無しさん
08/10/24 10:06:38
>>89
Unicodeの正規化は一種類じゃない
Unicode Normalization Forms
URLリンク(www.unicode.org)
91:デフォルトの名無しさん
08/10/24 10:09:16
ドキュメントを読まないバカは死ねばいいのに
92:デフォルトの名無しさん
08/10/24 15:48:38
>89
> 「UTF8に正規化」って言ったら特定できるだろ
何に特定できるって?
93:デフォルトの名無しさん
08/10/24 19:19:45
英語読めない人と英語読めるのにドキュメント読まない人がいるんでしょうか?
94:デフォルトの名無しさん
08/10/24 19:50:36
うっかり「特定できる」なんつってしまって引っ込みがつかないバカがいるだけ。
しかもわざわざ余計なこと書いて自分で傷口広げてる。
95:デフォルトの名無しさん
08/10/25 00:44:24
>>94
ドキュメント読めば特定できるけど,そういう意味じゃないんか?
Returns the KC normalization of the string by default.
まあ自分は88でも89でもないしどうでもいいんだけど
ただただ正規化メソッドが用意されてることに驚いた
96:デフォルトの名無しさん
08/10/25 01:03:01
オプションで正規化方法を指定できるんだな。
97:デフォルトの名無しさん
08/10/25 01:20:54
ファイル処理について質問です。
open(filename){|f|
puts f.readlines[1, 10]
puts f.readlines[20, 30]
}
とすると、readlines[20, 30]がnilになります。
原因は、readlinesメソッド終了時にブロック f が閉じられるからのようなんですが、
readlineメソッド呼出し後にブロックに戻ってくる方法はあるのでしょうか?
98:デフォルトの名無しさん
08/10/25 01:29:07
>>97
>IO が既に EOF に達していれば空配列 [] を返します。
というか、再利用しようよ。
open(filename){|f|
a = f.readlines
puts a[1, 10]
puts a[20, 30]
}
99:デフォルトの名無しさん
08/10/25 01:30:07
IOは読み込み位置を覚えていて、次はその続きから読もうとする。
readlinesは最後まで読んでしまうから、覚えてる位置は「最後」だ。
最初から読み直したいのなら、f.rewindを呼んで巻き戻す。
100:デフォルトの名無しさん
08/10/25 01:36:17
>>98-99
解決しました。助かりました^^
101:デフォルトの名無しさん
08/10/25 23:06:16
URLリンク(oshiete1.goo.ne.jp)
ヨドバシドットコムの大規模障害理由
質問者:timeout25 大手ECサイトのヨドバシドットコム( URLリンク(yodobashi.com) )が、10/21の
サイトリニューアルから大規模な障害を起こしています。
どうやら今回のヨドバシドットコムリニューアルはCMS導入が目的で、
キノトロープスリーイントという会社が請けたようですが、実際のところ
何が原因でこうなっていると推測されますでしょうか?
102:デフォルトの名無しさん
08/10/28 04:28:35
>複数行コメント
>#| から |# までがコメントです。ネストさせることが可能です。
いいなあ
103:デフォルトの名無しさん
08/10/28 11:28:49
rcairoのpango関係のメソッドはどの資料を見ればいいの?
rcairoにもruby/pangoにも記述なさそうなんだけど。
104:デフォルトの名無しさん
08/10/28 13:01:48
Ruby方面には資料がなさそうだったのでPango本体のドキュメントみてメソッド名を当て推量した。
105:デフォルトの名無しさん
08/10/28 13:07:49
よくわからんがソースは読めないのか?
106:デフォルトの名無しさん
08/10/28 16:34:07
Matzのお墨付き
プログラミング言語 Cyan
スレリンク(tech板)
107:デフォルトの名無しさん
08/10/28 16:43:15
Ruby 1.9.1 preview 1 アゲ
108:デフォルトの名無しさん
08/10/28 16:53:06
確かに筋は良さそうな感じはする
でもmatzってLisp系の強力なマクロには懐疑的じゃなかったっけ?
109:デフォルトの名無しさん
08/10/28 17:41:14
マクロはなんでも出来すぎるとか言ってたね。
でも昨今のDSLブームでRubyの文法の融通きかなぶりも認識してきた節もあるので
改宗したのかも。
110:デフォルトの名無しさん
08/10/28 17:44:48
Rubyはむしろ融通効き過ぎなぐらいだと思うが
111:デフォルトの名無しさん
08/10/28 19:42:32
札幌Ruby会議01 (2008-10-25)
URLリンク(www.nicovideo.jp)
112:デフォルトの名無しさん
08/10/28 19:45:43
マクロ最強!
#define ++ += 1
113:デフォルトの名無しさん
08/10/28 20:03:16
Lispは「融通がきく」
Rubyは「融通をきかせてる」
114:デフォルトの名無しさん
08/10/28 21:32:03
>>106
よお中村、元気か?
115:デフォルトの名無しさん
08/10/28 22:02:37
>>102
なにそれ?
116:デフォルトの名無しさん
08/10/29 02:37:54
Cyanのコメント
117:デフォルトの名無しさん
08/10/29 07:17:18
CLと同じでしょう。
=begin/=endでいいじゃんとは思うけど
118:デフォルトの名無しさん
08/10/29 08:07:57
>>110
そりゃプログラミング言語として与えられたままを使うだけに限った話。
DSLを考えるときには全然効かないんだよ。
119:デフォルトの名無しさん
08/10/29 08:12:19
>>116
さんきゅー
120:デフォルトの名無しさん
08/10/29 15:27:11
引数がStringだった場合はキーを付け足してHashにする(param = {:name => param} みたいな)
引数がHashだった場合はてきとーにキーを見てぶん回す
という最近よくある感じの処理をする場合、引数がStringかどうかみたいなのはどうやって判定すべき?
is_a? とか instance_of? とか
121:デフォルトの名無しさん
08/10/29 15:31:20
is_a? kind_of?
122:デフォルトの名無しさん
08/10/29 19:31:51
www.rubyist.netおつとる
123:デフォルトの名無しさん
08/10/29 20:06:37
>>120
最近では respond_to? で、必要なメソッドの有無を調べるのも流行らしいぞ
124:デフォルトの名無しさん
08/10/29 20:23:01
each の存在を調べて String#each の存在でハマるのはもうお約束の域
そして 1.9 対応で悩む
125:デフォルトの名無しさん
08/10/29 20:25:44
case arg
when String
when Hash
126:デフォルトの名無しさん
08/10/29 20:43:44
>>125
それは is_a? だ
127:デフォルトの名無しさん
08/10/29 21:00:35
実体が is_a? でも、そう書くか case-when で書くかは大きな違いだ
128:デフォルトの名無しさん
08/10/29 21:25:49
引数に(key => value)で特別扱いされるのはHashなんだから
is_a? 使うにしてもHashか、そうでないかっていう分岐にしたほうがよさげだと思う。
129:デフォルトの名無しさん
08/10/29 21:31:31
CodeZineにPythonカテゴリがないのっておかしくね?
お前らなんか妨害工作してるだろ。
130:デフォルトの名無しさん
08/10/29 21:35:25
URLリンク(codezine.jp)
131:デフォルトの名無しさん
08/10/29 21:38:42
実体は === だろ
StringとHashでそれぞれ違う処理するなら俺も>>125にするかな
でも>>120の場合ならこう書く
param = {:name=>param.to_s} unless param.kind_of?(Hash)
132:デフォルトの名無しさん
08/10/29 21:45:18
すまん、クラス、モジュールの === は kind_of?(つまり is_a?) と同じだった
133:デフォルトの名無しさん
08/10/30 21:48:24
スレリンク(operate板:657番)
強制ID実装を駄目元で頼み込んでみた。
もし賛同してくれる人がいたら同意のレスつけてください。
134:デフォルトの名無しさん
08/10/31 10:39:11
>>133
おまえがIDさらせや。
135:デフォルトの名無しさん
08/10/31 17:45:48
p 133.id
136:デフォルトの名無しさん
08/10/31 18:30:44
=> nil\(^o^)/nil
137:デフォルトの名無しさん
08/10/31 22:24:07
ext/dlのバグ修正、ruby-1.8.xにも入れてくれないかねえ。
138:デフォルトの名無しさん
08/10/31 22:56:29
どのrevision?
139:デフォルトの名無しさん
08/10/31 23:47:40
レポジトリでみてみたけど違いが生じたのがsubversionへの移行前らしくてリビジョンわかりません。
問題は1.9ではNUM2PTRになってるものが1.8.xの方はDLNUM2LONGのまま残ってて
アドレス等の値を符号つき整数として扱ってしまっているところです。
これがために1.8ではDL::Symbol.newなどに最上位ビットが1のアドレス値を直接渡せません。
140:デフォルトの名無しさん
08/11/01 01:13:22
1.9のってruby/dl2でしたっけ?
低レベルな書き方したら1.8と互換性無くて…
ruby -rdl -e "DL.dlopen('user32')['EnumWindows', '0PL'].call( DL.callback('IL'){|hwnd2| puts '%08x'%[hwnd2];-1}, 0 )"
みたいなの
あと、mingw32版のruby1.8だと上のが落ちるんですよね
mswin32版ruby1.8だと大丈夫なんですけど
141:デフォルトの名無しさん
08/11/01 01:35:20
1.9で1.8と違う添付ライブラリってリファレンスマニュアルとかドキュメントあるんですか?
142:デフォルトの名無しさん
08/11/01 02:18:00
Ruby会議での青木さんの話を聞くと、
来年のRuby会議までには標準ライブラリのリファレンスが完成しそうなんだとか
というわけで来年には手が回るんじゃ……
そういえば、Programming Rubyの第三版に1.9対応リファレンスが付くのかね?
143:デフォルトの名無しさん
08/11/01 11:54:12
ほんと青木さんとるりまチームには頭が下がるな。
頑張って欲しい。
144:デフォルトの名無しさん
08/11/01 18:31:41
なにさまだよ
145:デフォルトの名無しさん
08/11/01 19:24:52
るりまです
146:デフォルトの名無しさん
08/11/01 19:59:51
そっか、「がんばって欲しい」は「ご苦労さま」と同じか。
147:デフォルトの名無しさん
08/11/02 13:38:43
設計の基本ができてねぇなぁ!!!!!
よいツール教えたる
これでガンバリなぁ
URLリンク(www.digitalassist.co.jp)
148:ATOK
08/11/03 17:22:43
ジャストシステム、スクリプト言語で「ATOK 2008」を拡張できる開発キット
Perl/Ruby言語でプラグインを開発し、外部のソフトやWebの情報を直接利用可能に
URLリンク(www.forest.impress.co.jp)
開発キットには、サンプルスクリプトや簡易的なスクリプトデバッガーなどが含ま
れており、Perl/Ruby言語を一通り習得したユーザーならば、比較的容易に“ATOKダ
イレクト”用のプラグインを作成可能だ。スクリプトの実装方法も同梱のPDFファイ
ルや同社サイト上で参照できる。
ATOKダイレクト API for Perl/Ruby とは?
URLリンク(www.atok.com)
ATOKがRubyやPerlで拡張可能に − @IT
URLリンク(www.atmarkit.co.jp)
「ユーザー自作のプラグインを作り、」〜「入力・変換するだけで情報を表示できる。」参照
149:デフォルトの名無しさん
08/11/03 18:31:56
>>148
試み自体は面白いと思うんだが
実際にプラグインで、どんな楽しいことができるのかピンとこない
150:デフォルトの名無しさん
08/11/03 18:53:40
分野辞書をオンラインインストールとか
151:デフォルトの名無しさん
08/11/03 18:56:52
アドレス帳を叩いて名前の読みから住所とか引っ張れるのかな。
152:デフォルトの名無しさん
08/11/03 20:57:19
>>148
動作確認済みのPerl 、Ruby について
【Ruby】
Ruby 186-25
こんなバージョンのRubyは存在しないwwww
153:デフォルトの名無しさん
08/11/03 21:54:07
>>152
One-Click Ruby Installerのバージョンだね
perlもActivePerlなんだし、そう明記すれば問題ないのに
154:デフォルトの名無しさん
08/11/03 23:36:03
>>153
それはないだろwww
186-25なんて1.8.6がリリースされた直後のバージョンでまともに動かなかったはずwww
155:デフォルトの名無しさん
08/11/03 23:44:48
>>154
URLリンク(rubyforge.org)
55万ダウンロードで、歴代2位だ
pathlevel 0 と表示される Windows 版 Ruby 1.8.6 を使っている人はまだ多い
156:デフォルトの名無しさん
08/11/04 04:08:26
>>155が的確すぎてわろた
157:デフォルトの名無しさん
08/11/04 21:49:51
ruby 1.9.1 preview1が出たけどruby-langのニュースにはならないの?
なんでもいいから更新しないと停滞してると思われるよ
158:デフォルトの名無しさん
08/11/04 22:09:05
previewやRCは下手に話題にすると変な人が手を出してネガキャンになってしまうので…
159:デフォルトの名無しさん
08/11/04 22:21:41
しかしユーザーが増えないとバグが取れて安定しないような
160:デフォルトの名無しさん
08/11/04 22:28:36
変な人はバグ報告なんてしません
Firefoxのアルファやベータが一般人に広まっても一般人はバグ報告などしなかった
ある一定以上の経験と知見を持った人間が使ってくれないとバグ報告は増えないというのが悲しい事実
161:159
08/11/04 22:32:07
なるほど。失礼した
そういえばFirefoxも普通のソフトになっちゃって、
コミュニティが苦労してるなんて話を聞いたような聞かないような
162:デフォルトの名無しさん
08/11/05 02:19:20
1.8系列って1.8.7でディスコン?いつまで{メンテされる|新しいリリースが出る}の?
163:デフォルトの名無しさん
08/11/05 09:13:02
>>160
いいかげんな報告が増えるだけでも困るけどな
164:デフォルトの名無しさん
08/11/05 20:01:16
「自分の身に起こったことを、簡潔かつ客観的に説明する」
というのは、実のところ選ばれた一部の人間にしかできない行為だからな。
165:デフォルトの名無しさん
08/11/05 20:37:12
そのへんは学校で習わないから仕方がないねえ
大学でいいゼミやいい一般教養にぶち当たると訓練になるんだけど
166:デフォルトの名無しさん
08/11/06 02:32:11
見知らぬ人間に道を尋ねられて「私の家から北に100mです」って答えるみたいな説明を
本気でする奴がいるからな。
167:デフォルトの名無しさん
08/11/06 02:51:25
そんな極端な底辺を例えに出す奴もどうかと思うがな
168:デフォルトの名無しさん
08/11/06 08:51:26
>>167
「極端な底辺」ではなく、「まずあり得ないやりとり」としての例ね。
現実に居ることはまったく想定してない。
状況Aにおいて頻繁に見られる性質Bを、Bがまず起きない状況Cに置き換えて
「状況Cでいうなら、つまりこういう光景に等しいよね」と説明することで、
状況Aの中だけで語ってると、頻度が高すぎてそのダメさが大したことじゃないように思えてくる
ニュアンスを消したかった。
169:デフォルトの名無しさん
08/11/06 10:35:30
なんだ、いないのか。
ちょっと面白いと思ったのにw
170:デフォルトの名無しさん
08/11/06 14:07:45
バグレポートする際に
たとえ話はなんの役にも立たない
171:デフォルトの名無しさん
08/11/06 14:08:49
しかしつまらんスレだな
172:デフォルトの名無しさん
08/11/07 00:48:33
ActiveRecordってどんな基礎理論から出来てるの?
O/Rっていってもいくつか種類とか制約あってそれぞれ
違うようですが
173:デフォルトの名無しさん
08/11/07 02:56:36
>>171
Rubyがつまらないんだからしょうがない。
174:デフォルトの名無しさん
08/11/07 04:47:24
Ruby/Pangoって絶賛放置中?
175:デフォルトの名無しさん
08/11/07 11:35:05
>>172
マッパーそれ自体に理論ってあったっけ?
RDBとオブジェクト指向のモデルにはズレがあって・・・・・・ってな話は
オブジェクト指向データベースの書籍とかで取り扱われてたような記憶がある
176:デフォルトの名無しさん
08/11/07 12:29:00
>>172
基礎理論というほどではないが、ActiveRecordというそのものずばりなpatternもとにしている。
ちなみにDataMapper patternをもとにしたのがDataMapperというライブラリ。
URLリンク(datamapper.org)
ActiveRecord patternやDataMapper patternについては
URLリンク(capsctrl.que.jp)
URLリンク(capsctrl.que.jp)
をみるのがよかろう。
177:デフォルトの名無しさん
08/11/07 19:09:18
やっぱりこれファウラーさんが最初なの?
Railsの影響でPHPでもしばらく前にブームってたが、今ひとつわからんので放置
こればっかりではないが、連想配列のある言語と、Java等のオブジェクトでの
理論・概念の融合が今ひとつ上手く行ってない感じがして仕方がない
178:デフォルトの名無しさん
08/11/07 22:23:45
はいはい
179:デフォルトの名無しさん
08/11/08 00:56:10
Django使ってる人いますか?
180:デフォルトの名無しさん
08/11/08 12:42:18
ふつうGAE使うだろ
181:デフォルトの名無しさん
08/11/08 15:53:30
URLリンク(modruby.net)
mod_rubyの新しいのがリリースされてる
これ何ですか?
182:デフォルトの名無しさん
08/11/08 16:00:22
> これ何ですか?
大雑把な疑問だなオイ
書いてあるそのまんまだと思うぞ
自分の環境が該当するものでないのなら無理に導入しなくてもいい
1.9サポートって言っても文法エラー取り除いた程度だと予想
183:デフォルトの名無しさん
08/11/08 18:31:41
ついったーの様子だと、
とりあえず1.9で動くようにした程度かな。
twitter.com/shugomaeda
184:デフォルトの名無しさん
08/11/08 23:18:23
mod_ruby も、スクリプトごとにRubyインタプリタ起動すれば使う気になるのに。
185:デフォルトの名無しさん
08/11/09 00:11:15
>>182
> 1.9サポートって言っても文法エラー取り除いた程度だと予想
もっといろいろ大変だったんだよ
つーか昨夜リリースできたのは驚異的
186:デフォルトの名無しさん
08/11/09 00:14:36
>>184
MVMが実装されるまで待て。
187:デフォルトの名無しさん
08/11/09 01:22:56
RubyキモいよRuby www
188:デフォルトの名無しさん
08/11/09 01:35:22
>>184
mod_rubyの意味ないじゃんじゃん?
189:デフォルトの名無しさん
08/11/09 15:01:28
>>184
>mod_ruby も、スクリプトごとにRubyインタプリタ起動すれば使う気になるのに。
それはCGIのことか?
190:184
08/11/09 16:16:31
>>189
スクリプトというか、アプリケーションごと?
インタプリタはリクエストごとに起動するわけではなく、
Apacheとともに常駐するんだけど、
全部のスクリプトでそのインタプリタを共有するわけじゃなくて、
スクリプトごとに固有のインタプリタがあると良い。
191:デフォルトの名無しさん
08/11/09 16:28:55
グローバルな状態をアプリケーション単位で分けたいということですかね。
>>186が言うようにMVM待ちかなぁ。
192:デフォルトの名無しさん
08/11/09 16:42:41
FastCGI等のプロセス常駐じゃだめなの?
よくわからんけど
193:デフォルトの名無しさん
08/11/09 18:59:13
FastCGIはたしかにスクリプトごとにパーシステンスプロセスを起動するね。
CGIと違ってリクエストごとには起動しない。
>>184のやりたいことはこれかなあ。
194:デフォルトの名無しさん
08/11/09 20:09:18
Ruby 的には mod_ruby と FastCGI とどっちがおすすめなんでしょうか。
mod_ruby って実は mod_php や mod_perl とかと相性悪かったりしない?
195:デフォルトの名無しさん
08/11/09 21:07:16
rubyは汎用なんでおすすめApacheモジュールとか言われても困るんじゃないの。
オススメはwebrickかmongrel
196:184
08/11/09 22:10:00
うん、だからFCGIやmongrel使うことになって、
mod_ruby を使いたいんだけど使えないなあと。
ほんとは mod_wsgi みたいに mod_rack が欲しい。
197:デフォルトの名無しさん
08/11/09 22:49:25
Phusion Passengerってのが別名mod_rack/mod_railsらしいけど詳細は知らない
198:デフォルトの名無しさん
08/11/10 00:32:36
アプリがrackやrailsだったらpassengerが希望のものかと。
199:デフォルトの名無しさん
08/11/10 14:04:46
>>148
日本語SPAMフィルターでrubyのやつがあったね
そういえば
200:デフォルトの名無しさん
08/11/13 14:08:08
rubyのコードを書けるコマンドラインのリネーマーツールってない?
rren -recurse *.txt "$_.upcase!"
で
aaa.txt
bbb.txt
が
AAA.TXT
BBB.TXT
になるようなのでもっと至れり尽くせりなやつ。
201:デフォルトの名無しさん
08/11/13 14:13:02
>>200
> もっと至れり尽くせりなやつ。
単に ruby でワンライナー書くのが一番至れり尽くせり。
202:デフォルトの名無しさん
08/11/13 14:20:37
定型処理には、ワンライナーは不便かもしれない。
rename [-g "グロブ記述"] "正規表現"
くらいのインターフェイスでコマンドを書けばいいんじゃね?Rubyで。
203:デフォルトの名無しさん
08/11/13 14:55:57
for filename in *.txt; do echo $filename `mv $filename | ruby -n -e 'print $_.upcase'`; done
ファイル名に空白とか入ってておかしなことになっても知らん
204:デフォルトの名無しさん
08/11/13 14:56:49
あ、間違えた
for filename in *.txt; do mv $filename `echo $filename | ruby -n -e 'print $_.upcase'`; done
205:デフォルトの名無しさん
08/11/14 18:33:16
>>203 は、echo で一回テストしてみる慎重な人。
206:デフォルトの名無しさん
08/11/14 18:53:48
mv はよく痛い目に遭うから。
mv <パターン> <ディレクトリ> で、ディレクトリを入力し忘れたら、パターンに
マッチしたファイルが2つで、2つめのファイルが消えちゃったとか。
207:デフォルトの名無しさん
08/11/14 21:42:08
echo で試した後、ヒストリ戻って | sh と付けたりする。
208:デフォルトの名無しさん
08/11/15 07:04:10
1.9.1-preview1のバグ?
subの第二引数にSJISの文字列を渡すと、2バイト目の\に反応しちゃってる
>ruby19 -Ks -ve "puts 'test'.sub(/test/,'表0')"
ruby 1.9.1 (2008-10-28 revision 19983) [i386-mingw32]
付est
「+暗が gsub できない」のブログエントリを見て
そりゃあJISコードを直接扱うのは無理があるだろっ
でもSJISも2バイト目に\が来たら、-Ksとかでちゃんと$KCODEをSJISにしておかないと引っかかるよなぁ
だがしかし、1.9ならば文字列のエンコードさえしっかりしておけば無問題だぜ!
>ruby19 -Kn -e "puts 'test'.sub(/test/,%!\x95\x5c0!.force_encoding('SJIS'))"
付est
だめじゃんorz
209:デフォルトの名無しさん
08/11/15 08:09:14
Rangeに
x < first ? first : x > last ? last : x
なメソッドってないもんかね。あってもよさそうな気がするのだが。
210:デフォルトの名無しさん
08/11/15 09:31:27
いい名前がないからじゃないかな
ぴったりな名前ある?
211:デフォルトの名無しさん
08/11/15 13:02:14
limit か bound 辺りかな?
(1..10).limit(11) => 10
212:デフォルトの名無しさん
08/11/15 13:25:05
俺は以前、こんなメソッド定義してた
(1..10).fold(11) #=> 10
11.fold_in(1..10) #=> 10
213:デフォルトの名無しさん
08/11/15 14:27:05
なんか fold っていうと inject を思い出すな
214:デフォルトの名無しさん
08/11/15 16:59:52
>>209-213
自分はclampってのを使ってるけど、何故その名前を
使い始めたか思い出せない。合ってるのか?
215:デフォルトの名無しさん
08/11/15 20:21:02
>>214
いまいちな感じ
━ n., vt. 締め金(で締める); (駐車違反車を)車輪止め(wheel 〜)を掛けて動かせなくする.
* clamp down (on) (…を)押えつける; (…を)厳重に取締る.
* clamp・down 取締り.
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5368日前に更新/99 KB
担当:undef