Rubyについて Part 15

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。

Ruby Home Page
http://www.ruby-lang.org/ja/

= 前スレ
: Rubyについて Part 14
http://pc5.2ch.net/test/read.cgi/tech/1103997158/
2デフォルトの名無しさん:05/02/12 06:59:47
3デフォルトの名無しさん:05/02/12 07:08:58
= 関連リンク
: ruby-doc
http://www.ruby-doc.org/
: リファレンスマニュアル
http://www.ruby-lang.org/ja/man/
: Ruby hotlinks
http://www.rubyist.net/~kazu/samidare/
: 日本Rubyの会
http://jp.rubyist.net/
: Rubyist Magazine
http://jp.rubyist.net/magazine/
: RCRchive
http://www.rcrchive.net/
: RAA - Ruby Application Archive
http://raa.ruby-lang.org/
: RubyForge
http://rubyforge.org/
: Ruby Garden Wiki
http://www.rubygarden.org/ruby
: Matzにっき
http://www.rubyist.net/~matz/
: Matz 日記(linux.com分室)
http://japan.linux.com/~matz/diary/
4デフォルトの名無しさん:05/02/12 07:11:20
= 関連スレ
: Ruby初心者質問スレPart2
http://pc5.2ch.net/test/read.cgi/tech/1107799347/
: 【Ruby】RubyでCGI(WebProg板)
http://pc5.2ch.net/test/read.cgi/php/988948655/
: 【最高言語】 Rubyist Magazine創刊 【ルビま!】
http://pc5.2ch.net/test/read.cgi/tech/1094825807/
: Python厨とRuby厨が仲直りするスレッド
http://pc5.2ch.net/test/read.cgi/tech/1099804004/
: Jython、Groovy、JRuby - どれが一番効率的?
http://pc5.2ch.net/test/read.cgi/tech/1100563765/
: 【因縁の】DelphiVSHSPVSRuby【対決】
http://pc5.2ch.net/test/read.cgi/tech/1101498622/
51:05/02/12 07:17:06
他、テンプレに追加するべきURLはありますか?
6デフォルトの名無しさん:05/02/12 07:25:18
乙です。
7デフォルトの名無しさん:05/02/12 08:44:23
8デフォルトの名無しさん:05/02/12 09:34:31
おつかれーしょん
9デフォルトの名無しさん:05/02/12 09:58:09
>>5
=関連リンク
Ruby のバグ(勝手に)トラッカー
http://mput.dip.jp/rubybugs/

=関連スレ
RUBYの宿題教えてください。
http://pc5.2ch.net/test/read.cgi/tech/1106572657/
10デフォルトの名無しさん:05/02/12 10:02:23
(>>9の続き)
=Windows版バイナリ
: One-Click Ruby Installer
http://rubyinstaller.rubyforge.org/wiki/wiki.pl
: cygwin, djgpp, mingw
http://ftp.ruby-lang.org/pub/ruby/binaries/
: Ruby-mswin32 (ja)
http://www.garbagecollect.jp/ruby/mswin32/ja/
: ActiveScriptRuby
http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/

#今「Microsoft Windows版のビルト環境による違い」を見に行ったら全文削除されていた…
http://www.ruby-lang.org/ja/install.cgi?cmd=view;name=Microsoft+Windows%C8%C7%A4%CE%A5%D3%A5%EB%A5%C8%B4%C4%B6%AD%A4%CB%A4%E8%A4%EB%B0%E3%A4%A4
11デフォルトの名無しさん:05/02/12 10:05:31
で前スレからの続きで、「Ruby関連(の書籍)はやはり一時期の乱発&共倒れのせいで
すっかり各出版社の扱いが冷えきってしまっている」(by ムトゥ神)件について。
12デフォルトの名無しさん:05/02/12 10:09:26
むーん氏をいれろよ。おつ
13デフォルトの名無しさん:05/02/12 10:23:59
スレ立て乙。あのまま1000越えするんじゃないかと思ったよ。

>>11
実務で使われそうに無い言語の解説書だから、出版社サイドも、けっきょくオタクの余暇を紛らわせる程度の暇つぶし本扱いしかしなかったんだろうな...。
んで、イカもの扱いがヒートアップした、と。
14デフォルトの名無しさん:05/02/12 10:31:45
でも別にいらないんじゃないかと。本は。
どっちかというとウェブ上のリファレンスが
充実していけば充分だろう。
(公式じゃなくても構わない)
ttp://www1.tf.chiba-u.jp/~shin/tutorial/とかもあるけど

あとは、フリーで配布されるCGIを需要を無視して過剰供給して、
さも「RubyでCGIはナウい、つーか当たり前な」感じを醸し出す。
女子が食いつくキャッチーなビジュアルは大事ですぞ。
15デフォルトの名無しさん:05/02/12 10:33:06
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/40616
白井さん、おつかれさまです!
16デフォルトの名無しさん:05/02/12 10:34:00
このスレみている女子、いらっしゃいましたら挙手願います。
17デフォルトの名無しさん:05/02/12 11:13:28
日経BPが夢想本をだして一人前
18デフォルトの名無しさん:05/02/12 11:15:12
  / ̄ ̄ ̄ ̄\
  | ┌──┐ |
  | ┝┛┗┥ |
  |  |(・)..(・) |  |
  |  | =   = |  |
  /  |ヽ、3 ノ  |
  |  | | ̄ ̄| i |
 ノ(⌒| ノV~V| |⌒)
 | |^|| | ノ◎i | ||^|
 | | .|| |ノ ◎ i| || .|
┌┤├┐.∧ | || |
└┴┴┘ノ i | |〇、
 | λ Vノ ∧iVノ |
ノ ノ | ノ ノ i i‘  |
X .LL...L....LL......l
    | | | |
  (⌒  )( ⌒)
     ̄ ̄  ̄ ̄
参考
ttp://www3.nhk.or.jp/anime/ojaru/charactor/chara/usui.html
19デフォルトの名無しさん:05/02/12 11:21:35
amritaで、<dl><dt><dd>の繰り返しってどうやるの?
<dl>
<dt id="text">foo</dt>
<dd id="desc">bar</dd>
</dl>
これで<dt>と<dd>だけ繰り返したい。ダミータグでも使うのかな。
20デフォルトの名無しさん:05/02/12 12:00:52
じゃあruby書籍でおすすめはどれ?
21デフォルトの名無しさん:05/02/12 12:03:54
ピカチュウ本と抹茶本
どっちも外人orz
22デフォルトの名無しさん:05/02/12 12:19:59
話を突きつめていくと出版業界の体質の問題に帰結しそうな悪寒
23デフォルトの名無しさん:05/02/12 12:55:03
24デフォルトの名無しさん:05/02/12 14:11:11
>19
ダミータグだろうねぇ
テンプレートがHTMLに準拠しなくなるけど。
25デフォルトの名無しさん:05/02/12 14:36:50
>>19
<dl id="list">
<dt id="text">foo</dt>
<dd id="desc">bar</dd>
</dl>

として、

model[:list] = []
model[:list] << {:text=>'foo', :desk=>'bar'}
model[:list] << {:text=>'foo', :desk=>'bar'}...

とするのが正解。
26デフォルトの名無しさん:05/02/12 14:39:40
>>20
オブジェクト指向言語Ruby
たのしいRuby
Rubyソースコード完全解説
ぐらいかなぁ。安心して勧められるのは。
27928:05/02/12 15:12:31
>26
ウソツクナ
よりによって「オブジェクト指向言語Ruby 」かよ……
28デフォルトの名無しさん:05/02/12 15:17:34
>25
<dl> <dt>foo1</dt><dd>bar1</dd> </dl>
<dl> <dt>foo2</dt><dd>bar2</dd> </dl>
となりますな……
29デフォルトの名無しさん:05/02/12 15:41:17
>>26
RHGはrubyの本じゃないよ。Cとかインタプリタの本じゃん
おすすめは256本の極道編と言ってみるテスト(XPだけに)
30前スレ928:05/02/12 15:55:24
>19
そう言えばそんなのもあったなぁ
オレテンプレートでもWeb::Templateみたいに
独自マークアップを使えるようにしとくかな
31デフォルトの名無しさん:05/02/12 16:45:47
>>30
それでそのオレテンプレートはいつ公開されるんですか
32デフォルトの名無しさん:05/02/12 17:57:07
IPAや地元ではIT活性化の振りをして素人にLinux/Ruby使わせたり、推進のポーズ。
しかし本音はわかるやつだけ使えればいいような発言。
その辺りが出版にも現れてるのかも
33デフォルトの名無しさん:05/02/12 18:11:52
>>31
名前欄 (の元レス) にばっちり書かれてるような気がするのは俺の気のせいか?
34前928:05/02/12 20:57:49
35デフォルトの名無しさん:05/02/12 21:31:24
>>34
thx。すでに公開してたのね

>>33
そんなとこみてなかったよ ヽ(`Д´)ノウワーン
36デフォルトの名無しさん:05/02/12 21:58:35
>>32
属性値の命名規則がややこしくて書く気がおこりません…
3736:05/02/12 21:59:22
>>34 の間違い
siki-templateへのコメントです。
38デフォルトの名無しさん:05/02/12 22:05:33
>>29
いや、RHGはRubyの本としてこれ以上のものは無いくらい良い本だよ。
39前928:05/02/12 22:28:29
>36
確かになぁ。ただAmritaでサポートしていない
・XHTML、XMLに準拠(id属性以外を使用して指定できる)
・デフォルト値を指定できる
・要素と属性を等価に処理する
・テンプレートからのフィルター処理指定をサポート
 :
 :
とか高度化してったら、あんな風になっちゃった。

……まあ、あれでも「良くあのルールであの機能を押し込めたなぁ」と
自分で感心しているぐらいだしね……

でも、簡単に使うのなら、
・要素を変更するときは、適当な属性の値を“$(Rubyで指定するラベル)”にする
・属性を変更するときは、その属性の値を“@(Rubyで指定するラベル)”にする
・それ以外はオマケ
ぐらいで大丈夫だよ。
40デフォルトの名無しさん:05/02/12 23:09:19
>>39
Amritaでも
テンプレート内のマーキングを"id"以外に変更することは可能
Amrita alteredなら
要素と属性を等価に処理することも可能
41デフォルトの名無しさん:05/02/12 23:13:23
>>38
いいというか、定数のスコープの話とかちゃんと書いてあるのって RHG くら
いな気がするね。特異メソッドとか特異クラスの話もそう。
でも Ruby の本として、というとちょっと違うよな。やっぱり C についての本だと思う。
42前928:05/02/12 23:28:56
>40
へぇ、どうやるの?……というか、ドキュメントどこよ……
http://amrita.sourceforge.jp/docs/Tour.ja.html
には大したこと書いていないし。

Amrita alteredはここですな。
http://www.nslabs.jp/amrita-altered.rhtml
43デフォルトの名無しさん:05/02/13 00:48:51
>>42
amrita_id
44前928:05/02/13 01:25:50
>43
なんだ……テンプレートごとに1つだけか……
class, title属性で指定できるのは進歩だけど、痛し痒しだなぁ
45デフォルトの名無しさん:05/02/13 02:04:53
>>44
テンプレートに複数指定できてなにかメリットがあるの?
そもそも、classやtitleとか正規な属性を使っちゃうのはまずいと思うんだが
46前928:05/02/13 02:42:26
>45
>テンプレートに複数指定できてなにかメリットがあるの?

全てのタグで(必要に応じて)デフォルト値を設定できる、とかかな。
あと、(validにこだわるなら)要素の種類によって使える属性が違うから、
複数指定できると柔軟性が上がるよね。
#まあ、class, title, idあたりなら、ほとんど全ての要素にあるけどね……


>そもそも、classやtitleとか正規な属性を使っちゃうのはまずいと思うんだが

まあねぇ。

ただ、テンプレートをvalidなものにすることにこだわるなら、これぐらいしか使えないのよ。
#classはelementの属するクラスを、titleはelementの付加情報を示すための
#ものだから、idよりはまだ安全に使えるよね。
47デフォルトの名無しさん:05/02/13 05:35:45
>>34
リンク先より。

> <span class="$$@title@$id" />
> <span class="$$title@title" />
> <title id="test_title" class="test_title"></title>

これがよくわからん。
#技術的じゃなくマーケティング的な意見ですまんが、
#紹介ページに載せる例は、もっとわかりやすいものにしたほうがいいぞ。
#じゃないと、これをみただけだと使う気をなくす。


> t = Template.new("オレは<span id="@type">リンゴ</span>が食べたい" )
> t.parse({ :target => 'food' })
> # => "オレは<span id="food">リンゴ</span>が食べたい"

@typeと:targetがどうつながるのかわからん。:typeの間違い?
48デフォルトの名無しさん:05/02/13 07:55:29
なんだよー、おもしろいネタやってるじゃんか。

>>45
> そもそも、classやtitleとか正規な属性を使っちゃうのはまずいと思うんだが

しょうがねーだろ、HTMLじゃあ「ツールが自由に使ってよい属性」がないんだから。
XHTMLが普及してnamespace使えるようになるまでは、idとかclassとか使ってしのぐしかないんだよ。
しかも使いたい属性が人によってidだったりclassだったり独自の属性だったりするんだから、
「ツールが解釈する属性名」を指定できるのはいいことだろ。

>>46
> #まあ、class, title, idあたりなら、ほとんど全ての要素にあるけどね……

あとはstyleな。styleにCSSではない記述をするとブラウザでは単に無視されるだけだから、デザイン上問題なく使える。
あとは「CSSの設定をぜんぶclass属性とタグ名とCSSファイルで設定する」ということに、デザイナーが納得してくれるかどうか。

でもtitleという技があったのな。参考になった。さんくす。
4945:05/02/13 08:58:40
>>48
>HTMLじゃあ「ツールが自由に使ってよい属性」がない
んなら、テンプレート用のマーカーなんて埋める時点で、
validなHTMLではないか、validであっても変なHTMLにはなっちゃうわけだろ?
じゃあ、どのへんに落としどころを作るのが現実的なのか、ってのが気になってる。

ひとつの現実的な基準はブラウザで正常に表示されるかどうかだと思うんだが、、
適当にくっつけた変な属性(例えばhogeとか)がはいってるだけで、変になっちゃうもん?
idやらclassやらに記述するほうがよほどまずいことが起こりそう。
styleだと、まずい処理は起こらなくてもstyle属性を使えなくなるデメリット結構でかいでしょ。
HTML規格外の適当な属性値でっちあげて一つ決め打つほうがすっきりしそーなもんだけど。

で、そーゆーこと考えてると、>>46
>あと、(validにこだわるなら)要素の種類によって使える属性が違うから、
>複数指定できると柔軟性が上がるよね。
の柔軟性ってほんとに使いどころあんのか?という疑問もわくんだよね。

ブラウザの挙動とかオーサリングツールの挙動とかに詳しくないんで、
おかしなこと言ってるかもしれんが、どうよ?
50デフォルトの名無しさん:05/02/13 10:29:55
自然言語処理系の海外の学会に参加した時に、スペイン人と、ドイツ人から
Rubyを薦められました。わたしはOSX10.3.7ユーザーですが、最初からRuby
がインストールされているのにも、驚きました。

初歩的な質問で恐縮ですが、Rubyの言語自体を開発、保守している中心的な
メンバーは、何人程度なのでしょうか? 中心となるような研究機関などはご
ざいますか?
51デフォルトの名無しさん:05/02/13 10:49:41
研究機関で開発、保守される実用的な言語ってどんな言語があるの?
52デフォルトの名無しさん:05/02/13 11:12:04
ruby-list に投げようかと思ったけど、微妙に場違いな気がしたからやっぱりやめた。

Just Another RD Site http://www2.pos.to/~tosh/ruby/rdtool/ja/ って今でも管理されてるの?
"rd ruby" で検索すると google で先頭に出てくるんだけど、
リンク切れだらけでどうなっているのか分からない。
53デフォルトの名無しさん:05/02/13 12:48:42
へーirbに
irb(main)000:0> help :inject
なんてのがあるのか、便利になったものだなあ〜と思ってやってみたら、
それ以降のエコーバックが消えちゃうんですが、どうすりゃいいんだろ。
rdoc/ri/rI_display.rbがpopenとreopenで端末制御やってんのはわかるけど、そのへん詳しく知らないんだよね。
誰かわかる人いる?

54前928:05/02/13 13:07:42
>47
>これがよくわからん。

確かに……これはわからんな……ちょっとバラして&コメント入れて書くと、
<span class="$$@title@$id" /> #弟タグのid属性にtitleというキーを指定
<span class="$$title" />     #弟タグの要素にtitleというキーを指定
<span class="$$@title" />    #弟タグのclass属性にtitleというキーを指定
<title id="test_title" class="test_title"></title>

ということです。
#いいかげん推敲しないとなぁ

>@typeと:targetがどうつながるのかわからん。:typeの間違い?
間違いです。修正しました。

55デフォルトの名無しさん:05/02/13 13:25:27
                |
                |>>50
                |
                |
     /V\        ,J
    /◎;;;,;,,,,ヽ
 _ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'
56デフォルトの名無しさん:05/02/13 13:29:53
>>51
OCamlとか言ってみるテスト(実用的かなぁ)。
57デフォルトの名無しさん:05/02/13 13:38:36
sikiって、AmritaのAmrita::ExpandByMemberみたいに
Hashじゃないオブジェクトをモデルデータにすることはできるの?
58前928:05/02/13 13:40:31
>48
そういやXHTMLだとnamespaceが使えるね。
XHTML前提にしているならnamespace使えばいいのか
……DTDが使いものにならなくなるけど

>49
落としどころは難しいよね。

結局、デザイナーの使うブラウザとかオーサリングツールによって
決まってくる話で、ライブラリ実装者(プログラマ)が決めることは
できないんだよね。
ある程度妥協せざるをえないけど、できるだけ決定する自由を
デザイナーに残しとかないとね。

ちなみにSikiTemplateでは独自タグを実装して
[[[{{{ class="$$@title@$id" /}}}]]]
[[[{{{ class="$$title" /}}}]]]
[[[{{{ class="$$@title" /}}}]]]
  #^スペース重要
<title id="test_title" class="test_title"></title>

とすりゃ良くなったので、どうでも良くなったけどね。


59前928:05/02/13 13:58:52
>57
Template.use_execute = true
とすることで、Executeというクラスデータを使えるようになります。
ただ、セキュリティの問題があるので、
・モデルデータでは、Hashで明示的に指定する必要がある
・テンプレートでは、「キー.コマンド」というように指定する必要がある
というふうにAmritaよりも制限が強いです。

60デフォルトの名無しさん:05/02/13 14:33:13
>>50

1. http://www.ruby-lang.org/
2. ruby-dev にはいる
3. 同じ質問を投げる
6148:05/02/13 15:59:56
>>49
> んなら、テンプレート用のマーカーなんて埋める時点で、
> validなHTMLではないか、validであっても変なHTMLにはなっちゃうわけだろ?

だからamritaが人気なんだろ。

> 適当にくっつけた変な属性(例えばhogeとか)がはいってるだけで、変になっちゃうもん?
> idやらclassやらに記述するほうがよほどまずいことが起こりそう。

だからid属性だけですむamritaが人気なんだろ。あとはHTMLコメントを使う方式かどっちか。

> HTML規格外の適当な属性値でっちあげて一つ決め打つほうがすっきりしそーなもんだけど。

それはプログラマーの都合をデザイナーに押し付けてるだけ。
自分でプログラムもHTMLも両方書くなら、規格外の属性つかおうが何しようがだれも文句いわねーよ。
でもそんなものを使うとブーたれるやつらと一緒だから困ってんじゃねーか。

規格外の適当な属性をでっちあげてDWとかGLが使えなくなると、大変問題なの。
Java使いからEclipse取り上げるようなもん。

> の柔軟性ってほんとに使いどころあんのか?という疑問もわくんだよね。

自分が使わん機能をとやかくいうな。
独自属性つかうくらいならidやclassやstyleを選ぶ人間もいるんだよ。
そんなときは属性名を切り替える機能は必要。

> ブラウザの挙動とかオーサリングツールの挙動とかに詳しくないんで、
> おかしなこと言ってるかもしれんが、どうよ?

おかしいとはいわんが、考察が浅い。
つーかそんなにいうなら、デザイナーが文句たれないすばらしいテンプレートエンジンをおまえがつくってくれ。
62デフォルトの名無しさん:05/02/13 17:22:45
中心的なメンバーというか、ChangeLog を書いた回数が多い人のリストを
どっかの日記で見たんだけど、どこだったっけ?

リストが見たきゃ
$ ruby -e 'ARGF.inject(Hash.new(0)){|r,j| r[$1]+=1 if j.match(/\A\w.*<(.*@.*)>/); r}.collect{|a| a.reverse}.sort.each{|a| puts a.join("\t")}' ChangeLog doc/ChangeLog-1.8.0
とでもすればすむんだけど。
63デフォルトの名無しさん:05/02/13 19:12:18
>>62
日記つうか matz 氏が ruby-dev に。
6445:05/02/13 19:14:34
>>61
>>規格外の適当な属性をでっちあげてDWとかGLが使えなくなると、大変問題なの。
そういうオーサリングツールやブラウザの挙動に詳しくないので、
なにをするとどう使えなくなるのか具体的なところが知りたい。
デザイナーがどこに文句いうか、でもいいや。

つまり正規属性をテンプレートにつかって変な文字列つっこんじゃうのと、
hoge属性をテンプレートに使うのと、どちらのほうがオーサリングツールに優しいのか。

あ、そんなのオーサリングツール依存なんだから、選択肢ふやしとけよってだけの話?
だれもそのへん真面目に検証してないの?
深い考察をキボンヌ
6563:05/02/13 19:31:34
66デフォルトの名無しさん:05/02/13 19:52:22
>>64
HTMLの仕様書よめ。それにはんするものはエラーがでる。それだけだ。
・id属性やclass属性に「@」とか記号いれる → エラー
・style属性に記号 → セーフ
・独自属性→とうぜんエラー
・独自タグ→とうぜんエラー

ただしDWはPHPやJSPに対応しているので、そのモードでやれば<?php ... ?>や${...}がエラーにならん。くやしい。
つか、DWの体験版ダウンロードして自分で検証しろ。
67デフォルトの名無しさん:05/02/13 19:59:48
>>66
> ・独自属性→とうぜんエラー
> ・独自タグ→とうぜんエラー
このへんは単に無視されるってのは最近のHTMLでは成り立たなくなったの?
68デフォルトの名無しさん:05/02/13 20:07:58
DW って何?オーサリングツールのことを DW っていうの?
69前928:05/02/13 20:25:12
>66
class属性はCDATAじゃなかったっけ?
id属性は確かに記号が使えないな……
http://www.w3.org/TR/html401/index/attributes.html
70デフォルトの名無しさん:05/02/13 22:13:58
>>67
そりゃブラウザのはなしだろ。デザインツールは違うわい。
71デフォルトの名無しさん:05/02/13 22:37:59
つまりホームページビルダーとかでテンプレート作るってことだよね。

学生で趣味プログラマの僕から見ると、なんかすごく不安。
72デフォルトの名無しさん:05/02/13 22:50:11
ナニが不安やねん。
73デフォルトの名無しさん:05/02/13 23:04:31
予想外のテンプレートとか与えられそうで。
テキストレベルで予想できないというか。
74前928:05/02/13 23:07:30
>61
>あとはHTMLコメントを使う方式かどっちか。

それいいね。
[[[{{{タグ}}}]]]だけじゃなくて<!--[[[{{{タグ}}}]]]-->にも対応するようにしました。
75デフォルトの名無しさん:05/02/13 23:59:27
>>68
Macromedia Dreamweaverのことかな?
76デフォルトの名無しさん:05/02/14 00:00:10
質問です。
vmware で socket 関数が使えないことって
ありますか?
エラーメッセージが
`initialize': getaddrinfo: Name or service not known (SocketError)
と出ます。
77デフォルトの名無しさん:05/02/14 00:01:44
あとGLというのはAdobe GoLiveのことだと思ふ。
78デフォルトの名無しさん:05/02/14 01:16:57
>>76
ゲストOSが何かしらんが、うちのFreeBSD5.3-STABLEでは使えてるよ。
79デフォルトの名無しさん:05/02/14 01:20:24
WEBrickすげーな。なんかasahi-netが規制受けてるんで、
シェルアカウント持ってる別のところにこいつでproxy作ってやったらすぐに動いた。
こんなに簡単にできちゃうのね。

うちのIPからしかリクエスト受け付けないからopen proxyでもないし、便利便利。
80デフォルトの名無しさん:05/02/14 01:25:07
>>79
スクリプト希望
81デフォルトの名無しさん:05/02/14 02:14:39
>>80
殆どるびまに載ったまんまなんだけど、IP見て例外を上げるようにしたのと、
proxy特有のヘッダを出さないようにしたところが違うくらい。
こんなもん。すげー簡単。

CLIENT_HOST='your.ip.address.here'

auth_proc = Proc.new do |req, res|
raise WEBrick::HTTPStatus::Unauthorized unless req.peeraddr.include?(CLIENT_HOST)
end

s = WEBrick::HTTPProxyServer.new({
:Port => 8080,
:ProxyAuthProc => auth_proc,
:ProxyVia => false
})
Signal.trap('INT') do
s.shutdown
end

s.start
82デフォルトの名無しさん:05/02/14 03:43:14
へー。簡単なんだね。
さんくす。
83デフォルトの名無しさん:05/02/14 06:31:13
setup.rb で、インストール時にシンボリックリンクをはることはできますか。
つまり、
/usr/bin/foo_1.2.3
/usr/bin/foo -> foo_1.2.3
みたいなこと。
setup.rbに手をいれないとだめ?
84デフォルトの名無しさん:05/02/14 17:42:30
Amritaのドキュメントの無さはどうにかしてほしい。
というかリファレンスマニュアルが欲しい。切実に。
未知のメソッドがあまりにも多すぎる。

過去にリファレンスがあったような形跡はあるのに……
85デフォルトの名無しさん:05/02/14 18:18:38
まずRDoc使うところから。
86デフォルトの名無しさん:05/02/14 20:19:38
Kwartz はどうですか
個人的にはプレゼンテーションロジックが独自言語じゃなかったら理想に近い気がする

独自言語で萎えるんでオレは試してないが、試した人いる?
8784:05/02/14 23:55:44
>>85
もちろん使ってはみたが、せいぜいメソッドの一覧止まり。
解説が少なすぎて、クラスやメソッドの把握にはほとんど役に立たなかった(安定版で確認)。

もしかして「ソースがドキュメントだ。バグも完全に記述されている」の体現なのか

>>86
ロジックが(見た目)CSSっぽいな。
ちょっと興味がわいたので、これから試してみます。
8876:05/02/15 00:55:09
>>78
redhat9 です。
89デフォルトの名無しさん:05/02/15 01:35:08
>86
「オレはRubyで加工したいんだ!!」とか言いたくなるよね……

Kwartzのどのへんが気に入った?
90デフォルトの名無しさん:05/02/15 01:43:40
>>88
何動かしてる?ソース晒したら?

とりあえず考えついた可能性を確率高そうな順に並べると、
1. スクリプトに問題がある
2. VMWareかゲストOSの設定に問題がある
3. rubyのSocketライブラリがバグってる
4. ruby本体がバグってる
5. VMWareかゲストOSがバグってる

少なくともVMWareであるがゆえにrubyが動かないってことは
あんまないんじゃないかな。
91デフォルトの名無しさん:05/02/15 04:44:48
Mac OS XのRubyが1.6.8から1.8に上がるのって、やっぱりTigerからなんだろうか。
まあソースから入れりゃいいんだけど。
92デフォルトの名無しさん:05/02/15 05:59:57
ウワァァ━━━━━。゚(゚´Д`゚)゚。━━━━━ン!!!!
http://www.itmedia.co.jp/enterprise/articles/0502/14/news016.html
Rubyの名前がないよぉう
93デフォルトの名無しさん:05/02/15 06:10:54
>>86
正直すまんかった。
独自言語やめてJavaScriptライクな文法にしたバージョンを、ちょうどきのうリリースした。
つーか、タイミングよすぎる。ジサクジエンかと思った。

>>89
プレゼンテーションロジックをRubyで書けるバージョンも作っていたが、ポリシーにあわんと判断してやめた。

> Kwartzのどのへんが気に入った?
そりゃこっちがききたい質問じゃ。

>>91
Finkとかのパッケージなら、すでに1.8はあったと思う。
94デフォルトの名無しさん:05/02/15 06:15:48
>>91
これだ
http://fink.sourceforge.net/pdb/package.php/ruby
ほかのパッケージはしらん。

そういや、MacOS Xはgccが入っていなくて、DeveloperKitをいれないとだめなんだっけ。
じゃあ一般人に「ソースからコンパイルしろ」とはいいにくいな。
95デフォルトの名無しさん:05/02/15 08:48:05
>>94
> そういや、MacOS Xはgccが入っていなくて、DeveloperKitをいれないとだめなんだっけ。
インストーラがハードディスクに入ってるし、パッケージ版OSの
CDにも収録されているから、ダブルクリック一発で入りますよ。
96デフォルトの名無しさん:05/02/15 12:38:08
一般人のレベルに対する意識の相違だな
9786:05/02/15 14:28:37
>>93
なんてタイミングだ!
98デフォルトの名無しさん:05/02/15 15:08:40
>>96
コンパイルといってもキーボード打つだけじゃん。
打たなくても展開先に移動してから./configure && make && make installをコピペしてくれでもいいし。
別にソース読めと言っているわけじゃなし。
まあインストーラがあるに越したことはない気はするが。

でもインストーラがあってもDLLのバージョンせいで動かないとか辛すぎ。
MinGWのデフォルトランタイムライブラリがmsvcr71になれば直るが、今のone-click installerと
ebanさんとこの拡張ライブラリに互換性がないのはちょっと気が遠くなるな。
99デフォルトの名無しさん:05/02/15 16:56:45
一般人のレベルに対する意識の相違だな
100デフォルトの名無しさん:05/02/15 17:23:14
なんだRubyってDLLHell問題抱えてるのかウンコだな
101デフォルトの名無しさん:05/02/15 18:03:08
それっていわゆるDLLHell問題とは別物のような。
102デフォルトの名無しさん:05/02/15 18:25:09
単に憶えたての単語「DLLHell問題」を使いたかっただけでしょ。
103デフォルトの名無しさん:05/02/15 18:37:42
>>99
甘やかしすぎだ。

だいたいconfigure && make installも出来ないのにone-click installerでRubyをインストールしたところで
Ruby製のアプリケーションを使えるとは全く思えないのだが。
104デフォルトの名無しさん:05/02/15 18:40:53
なんだまたbot厨か
10586:05/02/15 21:09:58
>>93
> 独自言語やめてJavaScriptライクな文法にしたバージョンを、ちょうどきのうリリースした。
> つーか、タイミングよすぎる。ジサクジエンかと思った。

いや新しいバージョンが RAA に登録されてたので見に行って、独自言語か〜と思った。
最近ここでテンプレートライブラリが話題になってたしね。

以前のバージョンでも良さそうだけど独自言語が・・・と思った記憶はある。
新しいバージョンは、いわれてみれば確かに Javascript ライクだけど、どうせなら Ruby で完結して欲しい。


> >>89
> プレゼンテーションロジックをRubyで書けるバージョンも作っていたが、ポリシーにあわんと判断してやめた。
>
> > Kwartzのどのへんが気に入った?
> そりゃこっちがききたい質問じゃ。

RubyでWebアプリを書いてる視点から見て Kwartz の良さそうなところは、テンプレートが eruby 形式に展開されるので
それなりの速度が期待できるところとか、ドキュメントが整備されているところとか、テンプレートとプレゼンテーションロジック
を容易に分けれるところとかかなあ。
10686:05/02/15 21:10:21
つづき。

テンプレートとプレゼンテーションロジックの分離は意識すれば自分でできるけど、あらかじめその仕組みが
用意されているのは嬉しい。Presentation Pattern Catalog なんかがまとめられているのも素晴らしい。まあ、
コンテキストとか適用範囲とかの説明がないのでパターンというよりイディオムっぽい気もするが。

プレゼンテーションロジックを独自言語でやってるのは、いくつかの点でメリットがあるのは確かだと思う。
でも、Ruby で Web アプリを作っていて、Java や PHP を使う予定のない俺からすれば、独自言語を使う
のは余計なコストでしかない。いや、独自言語といっても十分すぎるほど簡単だけど、頭のモードを切り替え
ないといけないからね・・・
コロンとかつけ忘れそうだし。

Java とか PHP で Web アプリを作る人も同じように感じるんじゃないかな。
107デフォルトの名無しさん:05/02/15 22:33:54
>86
俺は独自言語でもいいと思っているけど。
テンプレートに特化してるなら覚えなければならないことはたかが知れてるし。
それにKwarzの場合はJava版やPHP版もあるから、独自言語にしておけば例えば
PHPからJavaに乗り換えるなんて場合にコストがかからなくて済むでしょ。

話は変わるけどRubyist Magazine 0005号出てるね。
108デフォルトの名無しさん:05/02/15 22:50:20
* 巻頭言
* Rubyist Hotlinks 第 5 回 増井俊之さん
* Ruby ではじめるプログラミング 第 4 回
* Rubyist が知りたいかもしれない RGSS の世界
* CGIKit、TapKit を利用した Web アプリケーションの作成
* 続・RubyOnRails を使ってみる
* Ruby Library Report 第 4 回 win32utils 日本語版 (英語版)
* lily でブログカスタマイズ 第 3 回
* Win32OLE 活用法 第 3 回
* RubyNews
* RubyEventCheck
* 編集後記
109デフォルトの名無しさん:05/02/15 23:05:29
増井さんのインタビュー記事中にakrさんが出ている件について
11086:05/02/15 23:27:46
>>107
> それにKwarzの場合はJava版やPHP版もあるから、独自言語にしておけば例えば
> PHPからJavaに乗り換えるなんて場合にコストがかからなくて済むでしょ。

そういったメリットがあることは確かだし、それを否定するつもりはないよ。
ただ、その乗り換えがどの程度発生するのかかなり疑問でもある。

独自言語のほかに、Ruby や Java や PHP でプレゼンテーションロジックが
書けるといいんだけど。そうすれば、1つの言語で閉じたいやつはその言語
を使えばいいし、将来の乗換えを気にするやつは独自言語を使えばいい。

たとえば、Ruby でプロトタイピングして、製品は Java で作る場合とかなら
独自言語は嬉しいかもしれない。でも、それ以外なら YAGNI ってこと
111デフォルトの名無しさん:05/02/15 23:56:11
>>91
[ruby-list:40616]
112前928:05/02/16 00:42:53
>107, 110
XSLTチックなのはどうなのかな……
まあ、イビツだと思うけどね。
113デフォルトの名無しさん:05/02/16 00:45:24
>>109
出てこない方が気味が悪い気がするけど?
114前928:05/02/16 01:06:33
そういえば、Kwartzってこういうイメージでいいのかな?

Kwartz
−デザイン−− |−−ロジック−−|−−データ
プレゼンデータ |プレゼンロジック |  コード

プログラム側にデータしか任せないのは珍しいよね。

115デフォルトの名無しさん:05/02/16 01:13:04
nilぽ
116デフォルトの名無しさん:05/02/16 01:28:15
>>109
拝見しましたがMWさんのインパクトには到底敵いませんな。
117前928:05/02/16 01:38:12
Kwartzがらみでもうひとつ。
プレゼンロジックとデータが(テンプレートの仕組みとして)
分離しているのって便利だと思う? > ALL

SikiWikiでも仕組みを用意しようかねぇ……
118デフォルトの名無しさん:05/02/16 02:37:47
119デフォルトの名無しさん:05/02/16 07:05:07
>>105
なんだ、内部関係者かと思ったのだが違うようだな。

> 独自言語を使うのは余計なコストでしかない。
> いや、独自言語といっても十分すぎるほど簡単だけど、頭のモードを切り替えないといけないからね・・・

おまえはRDBを使うか?もし使うなら、SQLを使うだろ。あれこそ本当に頭のモードを切り替えなきゃいけないぐらい
まったく違う言語だ。あれを使いこなせるなら、プレゼンテーションロジックが独自言語でも問題なく使えるはず。

SQLの宣伝文句のひとつに、「プログラミング言語が変わってもデータにアクセスする部分は変える必要がない」
というのがある。しかしこれは逆にインピーダンスミスマッチを引き起こしている原因でもあり、OODB主義者が
批判するネタでもある。OODBならメインプログラムで使っている言語でデータアクセスとデータの保存ができるからね。

86がRDBを使わずOODBのみを使うのであれば、86の主張はよくわかる。おまえは正しい。
しかしRDBを使ってSQLを書いているのであれば、プレゼンテーション層でだけ独自言語を否定するのはおかしい。
独自言語なら「プログラミング言語が変わってもプレゼンテーション層は変える必要がない」からな。


>>106
> Java とか PHP で Web アプリを作る人も同じように感じるんじゃないかな。

そうでもない。JavaでもVelocityやJSTLがあるが、あれだって十分な独自言語だ。
PHPでもSmartyが使われるが、それも独自言語だ。
独自言語でも、メジャーになれば使われる。Kwartzはマイナーだから使われない。それだけだ。
120デフォルトの名無しさん:05/02/16 07:15:50
つづき:

それからJavaScriptじゃなくてRubyやPHPで書きたいというのは、プログラマーの発想。
でもKwartzが目指しているのはデザイナーにとって使いやすいテンプレートシステム。
デザイナーからしてみれば、RubyやPHPで書くのはたいへん苦痛なんだよ。100歩譲ってJavaScript。
Ruby使いがRuby以外で書くのを嫌がるように、デザイナーも自分が知ってる言語以外で書くのは嫌なの。

またプログラマーはたいてい1つか2つの言語を知っていれば間に合うし、ほかの言語の仕事なら断るだろうが、
デザイナーはそうもいかず、PHPを使うプロジェクトならPHPを使わなくちゃいけないし、
Javaを使うプロジェクトならVelocityやJSP、最近ならStrutsのカスタムタグを覚えなくちゃいけない。

これってバカバカしくないか?なんでプログラマーの都合にデザイナーが合わせなきゃいけないんだよ。
amritaのように素のHTMLが使えるテンプレートシステムを使ってくれりゃいいのに、プログラマーの都合で
やれ<?php ... ?>を埋め込んでくれだとか、やれ#foreach()を使ってくれだとか、そんなのばっか。
しかもそれがプロジェクトごとにバラバラで、せっかく使い方を覚えたころにはもう終わり、
別のプロジェクトが始まればまた新しいやり方を押し付けられる。んなもんやっとれるかい。

そんなプログラマーの都合を押し付けるようなことはやめて、プログラマーとデザイナーとが
ほんとうに気持ちよく共同作業できるような仕組みが必要なはずなんだよ。
そしてそのためには、プログラマーがちょっとだけ歩み寄ってJavaScriptなり独自言語を受け入れるだけでよい。
デザイナーがRubyやPHPをマスターするより、プログラマーがJavaScriptをマスターするほうが
圧倒的にコストが低いからな。
またJavaScriptにしてやればデザイナーが自分でプレゼンテーションロジックを書いたり変更したり
してくれるから、実はプログラマーの負担も減るんだよ。あまり気づかれていないけど。
121デフォルトの名無しさん:05/02/16 07:16:58
つづき:

だた、デザイナーとの共同作業なんかしないであろう86のためにいっておくと、
KwartzではRubyコードやPHPコードを直接埋め込む機能がある(というかあった)。
以前のバージョンなら
:element(members)
 ::: members.each_with_index { |member, i|
  @stag
  @etag
  @cont
 ::: }
:end
みたいに書くことができた。けどだれも使わんかったので削った。
122デフォルトの名無しさん:05/02/16 07:35:30
>>110
> 独自言語のほかに、Ruby や Java や PHP でプレゼンテーションロジックが
> 書けるといいんだけど。そうすれば、1つの言語で閉じたいやつはその言語
> を使えばいいし、将来の乗換えを気にするやつは独自言語を使えばいい。

その考えは間違ってない。実際、PHP版ではそれをやった。プレゼンテーションロジックを、
独自言語とPHPとを混在させて書けるようにしていて、「:」で始まる文は独自言語、
そうでなければPHPのコードとみなして処理をしていた。
ttp://www.kuwata-lab.com/kwartz-php/reference.ja.html
でも実際にやってみると、コードとドキュメントがかなり複雑になるのに比べて、得られるメリットが少ないんだよ。
これでメリットがあるのはプログラマーだけで、デザイナーからみればこんなのメリットでもなんでもない。
デザイナーにしてみればRubyやPHPで書けるよりも、JavaScriptで書けるほうがずっとうれしい。
#このことを去年のうちに気づいていればよかったんだが。

プレゼンテーションロジックなんて、しょせん条件分岐と繰り返しと代入ぐらいしかないんだから、
そのくらいJavaScriptだろうと独自言語だろうと書けるだろ、おまえらプログラマーならそのくらいできるだろ、
ということにしといてくれ。


> たとえば、Ruby でプロトタイピングして、製品は Java で作る場合とかなら
> 独自言語は嬉しいかもしれない。

おれはまさにこのパターンなんだよ。
自分のアイデアを説明するためのプロトタイプはRubyでサクッと作るんだけど、
それをチームで開発しましょうとなると、Javaを使わないといけない。シクシク。
123デフォルトの名無しさん:05/02/16 07:42:13
つづき:

「Rubyでプレゼンテーションロジックが書ける」といったとき、86は
(a) Rubyのプログラムをパースする。出力先に応じてPHPやJSPに変換してやる。
(b) Rubyのプログラムはパースせず、そのまま出力するだけ。PHPやJSPへの変換はあきらめる。
のどっちを意識している?
はっきりいって、Rubyの文法は複雑すぎるから(a)はムリ。Rubyのサブセットにするしかないけど、
そうなると(a)のメリットはあまりない。

(b)ははっきりいって楽。>>121で書いた機能はまさにそのまんま。
しかしこれだと、複雑なプレゼンテーションロジックだと文法エラーが非常に見つけにくくなる。
というのも、Kwartzではテンプレートを出力用スクリプトに変換するから、(b)の場合だと
変換したあとの出力用スクリプト(例えばeRubyスクリプト)でデバッグしなきゃいけない。
複雑なeRubyスクリプトで文法エラーがあると、原因を見つけるのはかなり困難。
(やってみればわかる。というか、楽な方法があったら教えてほしい)。
これは、Kwartzに限らず、トランスレータ一般につきまとう問題。
例えばJSPもそう。Servletに変換されたあとでコンパイルエラーが報告されても、
もとのJSPの何行目でエラーになっているのかわからん。

これを防ぐには、やはりプレゼンテーションロジックをちゃんとパースして、文法エラーが
あればプレゼンテーションロジックのレベルでエラーを指摘するしかないと思ってる。
そしてちゃんとパースするには、Rubyの文法は複雑すぎ、というかバリエーションありすぎ、
ついでにいうと、プレゼンテーションロジックごときではRubyの文法はオーバースペック。
JavaScriptとかPHPぐらいSyntaxが簡単なら、パースできるんだけどね。
124デフォルトの名無しさん:05/02/16 07:42:31
Kwartzの人の言ってることには共感するだけどなぜ喧嘩腰?
125デフォルトの名無しさん:05/02/16 07:55:46
さいご:

あとプレゼンテーションロジックをまじめにパースすると、いろんな小細工ができる。
例えば「グローバル変数とローカル変数を解析する」機能とか。
ttp://www.kuwata-lab.com/kwartz/users-guide.ja.04.html#topics-analyze

ほかには「ローカル変数の名前を "_var" のように変えちまう」機能とか。
これは、プレゼンテーションロジックで定義した変数名が、メインプログラムで使っている
変数名とかぶってしまうと、メインプログラムのデータを意図せずに変更してしまうという
問題を解決するための方法。まだ未実装だけと、「グローバル変数とローカル変数を解析する」
という機能がすでにあるから、そんなに難しくはない。たぶん次のリリースぐらいでは載るはず。

もちろん、いろんな言語の出力用スクリプトが生成できるというメリットもある。
Rubyしか使ってないとわからんかもしれんが、複数のプロジェクトを相手にしなきゃいけない
弱小デザイン会社だと、これは泣けるほどありがたい。
#というかStruts死んでほしい。カスタムタグなんて、デザイナーをばかにしてるとしか思えん。



というわけで、Rubyを直接記述することのデメリットと、独自言語をまじめにパースすることの
利点を挙げてみたのだが、どうっすか。
それでもRubyを使いたいというのはあるかもしれんが、そこをちょっと我慢するだけで
いろんな利点があることだけは知っといて。

早朝から長いかきこみですまん。
126デフォルトの名無しさん:05/02/16 08:00:48
>>124
けんかにみえたらすまん。知り合いのデザイナーの愚痴がうつっただけだ。というか、デザイナーの気持ちの代弁?
127デフォルトの名無しさん:05/02/16 08:06:40
>>126
ですます調にして、語尾をたまに伸ばすと
受ける印象が柔らかくなりますよー。
128デフォルトの名無しさん:05/02/16 09:31:34
個人的にいろいろと苦労があるようですね
129デフォルトの名無しさん:05/02/16 09:44:19
>>126
rubyスレだと共感は得られにくいのは仕方ない。
基本的にここ(というかruby界隈全部なんだけど)は他の言語と比べても信者の割合が高いからね。

どうでもいいけど、
kwartz -l eruby -p example1.plogic example1.html > example1.rhtml
これをするのがめんどくさい。なんとかならん?
130デフォルトの名無しさん:05/02/16 11:57:04
>>126
力説乙。こーいう本気汁たっぷりなのは大歓迎だ。
自分が知らん現場での様子が観れて楽しいしな。(御苦労は察するに余りあるが)
131デフォルトの名無しさん:05/02/16 13:23:05
>>129
make
132デフォルトの名無しさん:05/02/16 14:24:19
>>129
ant
133デフォルトの名無しさん:05/02/16 14:54:26
>>129
ほのぼのrake
134デフォルトの名無しさん:05/02/16 16:02:16
ロジック内に書けるのが@stag, @cont, @etag, @elementだけみたいだけど、
外部のplogicファイルが指定できたら便利じゃないかな。

たとえば<html><head>...</head>と
<address>...</address></html>の部分なんかは
title以外全てのファイルで共通にしたいとかあるわけで。

header_and_footer.html
<html><head><title id='title' /></head><body id='body /><address>hoge@tare</address></html>

に対して

plogic: {
@include('header_and_footer.html', 'header_and_footer.plogic', {'title' => 'hoge', 'body' => @cont})
}

みたいな。文法カッコワルイ。
135デフォルトの名無しさん:05/02/16 17:08:48
Gemをはじめて使ってみようと思ったのだけど、
--remote でインストールしようとすると
Updating Gem source index for: http://gems.rubyforge.org
から先に進んでくれません。

何が起こっているのでしょうか?

一度、Ctrl-C したときは
yaml/baseemitter.rb:175:in `map' : Interruput ....
てなことになりました。
13686:05/02/16 20:23:44
んー、kwartz の中の人は、使いたくないなら使うなって思ってるかもしれませんが。

>>119
SQLは使うけど、それはしかたないから使ってるのであって好きで使ってるわけでもない。
本当は PStore ですむならそれだけにしておきたいよ。
目的を達成するのに必要なら SQL でも Java でも PHP でも C++ でも C# でも使う。
そんなのあたりまえだよね。kwartz の独自言語も kwartz が必要なら使うと思う。
でも、それが嬉しいかというと、嬉しくないといってるだけ。

> 独自言語でも、メジャーになれば使われる。
だから独自言語でもいい、というのはおかしいと思うけど。
Velocity や JSTL や Smarty を使ってるプログラマな人たちは、みんな喜んで使ってるの?
HTML を直接出力するのに比べればはるかに楽だけど、もっと楽な方法を求めてははだめなの?
よく使われてるというのと、使ってて気持ちがいいのとは違うんじゃないかな。
メジャーだっていうのを選択基準にするなら、そもそも Ruby は使ってないよ。
13786:05/02/16 20:24:47
> これってバカバカしくないか?なんでプログラマーの都合にデザイナーが合わせなきゃいけないんだよ。
まったくだね。
でもそんなことを言われると、なんでデザイナの都合にプログラマがあわせないといけないんだよ、っていいたくなるよ。
そんな対立こそバカバカしいんだから、kwartz の良さをアピールしたいなら、そんな言いかたは避けたほうがいいような気がする。
未踏でやったからしかたなく公開してるっていうならともかく。

プログラマがあわせるほうがコストが低いというのは現実的な解だと思うよ。
でも、あわせる必要がないときまであわせなくてもいいという選択肢を用意するのも、現実的な解の1つじゃないかな。
難しいから無理っていうわけでもないみたいだし。

> amritaのように素のHTMLが使えるテンプレートシステムを使ってくれりゃいいのに
amrita を使う場合はプレゼンテーションロジックは Ruby で書くことになるよね。ここで amrita を
引き合いに出すなら、それこそ、プレゼンテーションロジックは Ruby でいいじゃんって思ってしまうわけですが。

もちろん、amrita はプレゼンテーションロジックのコードをビジネスロジックのコードと簡単に
混ぜることができるので、そのへんはいまいち。テンプレートと、>121 みたいな不自然なコードじゃなくて、
普通の *.rb から eruby 形式を生成できるのが理想なんだけど。
eruby 形式を生成できれば、オーサリングツールでテンプレートを作って Ruby on Rails とかでも使える嬉しさがあるしね。
13886:05/02/16 20:25:25
前にも書いたけど、kwartz のように独自言語を使うのにもメリットがあると思ってるし、それは最初から否定してないよ。
ただ、俺にはそのメリットの大半はいらないから Ruby で書ければなってだけで。

まあ、kwartz の中の人がいろいろ書いてくれたおかげで、少なくとも、kwartz はデザイナ優先で
プログラマは妥協しないとだめっていうポリシーだというのはわかった。それはそれでありだと思う。
独自言語を気にしない人とか、妥協の結果得られるものが嬉しい人も少なからずいると思うし。

個人的には、デザイナ優先だけじゃなくて、デザイナとプログラマの両方が妥協せずに
もっと幸せになれる方法はないのかなって思うけどね。
139デフォルトの名無しさん:05/02/16 20:30:55
>>135
はじめて gems で何かをインストールしたときは、かなり待たされた記憶がある。
マシンのスペックとかにもよるのかもしれないけど。
140前928:05/02/16 20:33:23
>126
Application-Oriented Languageの利点はわかるけど……


−デザイン−− |−−ロジック−−|−−データ
プレゼンデータ |プレゼンロジック |  コード
デザイナー    |       プログラマー

という守備範囲のうちは、ロジックとデータを別の言語体系で
扱うのは面倒だなぁ


−デザイン−− |−−ロジック−−|−−データ
プレゼンデータ |プレゼンロジック |  コード
   デザイナー     |     プログラマー

というのなら、ロジックを扱うのにシンプルな言語体系を採用しても
仕方無いかな、と思う。

いっそのこと全然雰囲気の違う(&XMLベースの)XSLTチックな
方が使う気になるけど、デザイナーはXSLTよりもJavaScriptの
方が慣れてるかな……
141デフォルトの名無しさん:05/02/16 20:45:40
>>139
One-Click Ruby Installerの最新版が出たばかりの頃にダウソして、
gemを使ったことがあるけど、特に問題はなかったよ。
142デフォルトの名無しさん:05/02/16 20:56:27
> 俺にはそのメリットの大半はいらないから Ruby で書ければなってだけで。

> 俺には

これが全てを物語ってる気がした。

俺には、この話題は興味ないからどうでも良いけど。
143デフォルトの名無しさん:05/02/16 21:08:05
>>142
kwartz が提供するといっているメリットをすべての人が欲しいわけじゃないってだけだろ
144デフォルトの名無しさん:05/02/16 21:22:39
お前にはな
145デフォルトの名無しさん:05/02/16 22:16:24
86のいいたいことはわかった。
>>136
> だから独自言語でもいい、というのはおかしいと思うけど。
>>137
> でも、あわせる必要がないときまであわせなくてもいいという選択肢を用意するのも、現実的な解の1つじゃないかな。

↑ ここらへんはちゃんと筋が通ってるし、いってることは正しい。

おれは「プレゼンテーションロジックをRubyやPHPで直接書く」という方法をPHP版で実験してみて
思ったようなメリットが出せなかったし、もう気力もないから、今の仕様が変わることはない。
もし86が理想に燃えるなら、ぜひ作ってみてくれ。

ちなみに、途中まで実装して捨てたバージョンでは、プレゼンテーションロジックファイルを次のような感じで記述するはずだった。

module members ## element declaration

 def initialize()
  @value = member
  @attr = { "bgcolor" => color }
 end
 
 def plogic()
  member_list.each do |member|
   @stag
   @body
   @etag
  end
 end

end

最初はすばらしいアイデアだと思ったが、デザイナーのことを考えて結局やめた。
146デフォルトの名無しさん:05/02/16 22:20:16
つづき:

もし今の仕様のままで、Rubyでもプレゼンテーションロジックを書けるようにするとなると、たぶんこんな感じになる。

#members {
plogic: {
<% member_list.each do |member| %>
@stag;
@cont;
@etag;
<% end %>
}
}

これはPHP版でもやってた仕様。こんな仕様でよければ実装は難しくない。
これで86が満足するかはしらんが。
147デフォルトの名無しさん:05/02/16 22:24:10
さいご:

あと、これは誤解だから訂正させてくれ。

>>137
> amrita を使う場合はプレゼンテーションロジックは Ruby で書くことになるよね。ここで amrita を
> 引き合いに出すなら、それこそ、プレゼンテーションロジックは Ruby でいいじゃんって思ってしまうわけですが。

amritaは「素のHTMLが使えるテンプレート」の例としてだしたのであって、ここではプレゼンテーションロジックのことは関係ない。
「amritaやXMLCのように」と書けばよかったか。


> そんな言いかたは避けたほうがいいような気がする。

いや、2ちゃんでそんなこといわれても・・・

>>134
おもしろい。Zope PageTemplateのmetalみたいなものか。
実はその機能はDreamweaverにはあって、テンプレートシステム側ではなくてHTML作成時にDreamweaverにやらせることができるんだよね。
だから今まで困ってなかったのか。
ちょっと考えてみる。
14886:05/02/16 23:08:55
>>145
> 最初はすばらしいアイデアだと思ったが、デザイナーのことを考えて結局やめた。
素晴らしいアイディアだったのに (´Д⊂ヽ

別に理想に燃えてはいないが、気がむいたらやってみるよ
149デフォルトの名無しさん:05/02/17 02:20:44
要は「デザイナーは馬鹿だからプログラマの都合を押しつけるわけにはいかない」
ということですよね。なんかそういう考えもちょっとどうかなあと思うけど。
150デフォルトの名無しさん:05/02/17 03:38:00
編集ツールしか使えなくてHTML自体理解してないデザイナーなんかも多いぞ。
151デフォルトの名無しさん:05/02/17 04:26:29
>>149
どうやったらそんなまとめになるのか。
「デザイナーはプログラマーの都合を押し付けられて困ってる」とか
「デザイナーはRubyやPHPを使いたがらない。それはプログラマーがJavaScript使いたがらないのと同じ」とかは書いているが。
馬鹿がいるとしたら勝手な解釈するやつのことだろ。
152デフォルトの名無しさん:05/02/17 09:44:54
>>147
> いや、2ちゃんでそんなこといわれても・・・
「便所の落書き」だからといって、どんな口調(論調?)でもいいというわけではない
丁寧語を使えとは言わないが、見る人間のことを考えた書き方は大事だよ。
153デフォルトの名無しさん:05/02/17 10:00:58
いや、それは便所の落書きだと思ってないからだろ。
154デフォルトの名無しさん:05/02/17 22:36:33
いいえ、それはお便所の落書きだと思ってらっしゃらないからでしょう。
155デフォルトの名無しさん:05/02/17 23:23:34
いえいえ、それこそはお便所様のお落書きだと思わしであそばせないからでござりますことでしょう。
156デフォルトの名無しさん:05/02/17 23:31:47
>>134
仕様を考えてみた。

まずページ全体のデザインを担当するテンプレートを用意する。

page.html:
  <html lang="ja">
   <head><title id="value:title">...</title></head>
   <body>
    メニュー:
    <div id="replace:menu">
     ・メニュー1<br>
     ・メニュー2<br>
    </div>
   </body>
  </html>
157デフォルトの名無しさん:05/02/17 23:33:08
つづき:

コンテンツデータを表すテンプレートを用意する。

contents.html:
  <html><body>
   <ol id="menus">
    <li id="value:menu">メール</li>
   </ol>
  </body></html>

contents.plogic:
  #menus {
   plogic: {
    @stag;
    foreach (menu in menu_list) {
     @cont;
    }
    @etag;
   }
  }
158デフォルトの名無しさん:05/02/17 23:36:03
つづき:

これを、こんなかんじでコンパイルする。
$ kwartz -c contents.html -p contents.plogic page.html > page.rhtml

contents.htmlのうち、id="..." がついたエレメントだけが使われ、<html><body></body></html>は捨てられる。

出力用スクリプトはこれ。

page.rhtml:
  <html lang="ja">
   <head><title><%= title %></title></head>
   <body>
    メニュー:
    <ol id="menus">
  <% for menu in menu_list do %>
     <li><%= menu %></li>
  <% end %>
    </ol>
   </body>
  </html>

これでいけるんじゃないかと思うが、どうだろう。
実装するのはまだ先になるけど。
159デフォルトの名無しさん:05/02/18 00:25:38
>156
プレゼンテーションデータの統合なら、SSIを真似して

<!--#include kwartz_file="パス" -->

とかの方が理解しやすいと思います。
160デフォルトの名無しさん:05/02/18 01:48:46
161134:05/02/18 05:33:41
>>156
<div id="replace:menu">は<div id="replace:menus">のミス?
その仕様だと多重に埋め込めなくないかな。

たとえばサイトの構造が
<サイト全体><コンテンツ種別><コンテンツ /></コンテンツ種別></サイト全体>
みたいになってる場合は

page.html
<html><head>...</head><body><div id="replace:content_type" /></body></html>
content_type.html
<html>...<body><div id="content_type">...<div id="replace:content" />...</div></body></html>
content.html
<html>...<body><div id="content">...</div></body></html>

とかやりたいと僕は思う。
idのマッチングをするのはデザイナー向けっぽくてまた賛否両論かも。でもおもしろい。
replace:...のidがマッチされずに残った場合警告でも出るんですかね。

ただ、デザイナーさんがオーサリングツール使って全種のテンプレートを
作ってくれちゃうシチュエーションをメインターゲットにして、
趣味プログラマが個人サイト作るのに使うのを意図しないのであればそもそも不要な機能かもね。

>>159
ネタかもしらんが今回の目的にそれは全く意味ない。

そろそろスレ違いだと叩かれそうだ。ゴメソ
162デフォルトの名無しさん:05/02/18 07:13:14
>>161
> <div id="replace:menu">は<div id="replace:menus">のミス?
そのとおり。すまん。

> その仕様だと多重に埋め込めなくないかな。
できると思う。頭の中にある設計なら、これでいけるはず。
kwartz -c content_type.html,content.html page.html > page.rhtml

> replace:...のidがマッチされずに残った場合警告でも出るんですかね。
でる。現バージョンでも出るはず。

>ネタかもしらんが今回の目的にそれは全く意味ない。
その通りだが、>>159のいう機能は、これはこれで需要がある。今回も正式リリース時には実装しているはず。
ただ前のバージョンではプレゼンテーションデータファイルとプレゼンテーションロジックファイルの両方を読み込めたんだけど、
今回のバージョンでは仕組みが変わったのでプレゼンテーションデータファイルしか読み込めないと思う。

強引に2/14にリリースしたから、未実装の機能がけっこう残ってる。すまない。
updateしても特にアナウンスはしないから、RAAをチェックしといてくれ。
163デフォルトの名無しさん:05/02/18 07:32:44
今気づいたのだが、もしかして>>86はRailsユーザか?ならRubyで書くことにこだわるのはわかるような気がする。

Railsはまだ試してないが、eRubyを使うんじゃなかったっけ?
そして、もしテンプレートに複雑なRubyコードを埋め込まないといけないのなら、もしかしたら現行のKwartzでは力不足なのかもしれん。

おれには、86はただのRubyユーザではなくて「デザインのわかるRubyユーザ」のようにみえたのだが、
それにしてはJavaScriptを拒絶してたから、なんか違和感があった。
自分でデザインもやる人間ならJavaScriptぐらいできるはずで、そんなやつが「Rubyで書きたい」というのは
むりやりクレームをつけようとしているのかと思った。
しかし、もしRailsユーザだとすれば、その要求は理解できる。謎はとけた?

もしこの仮説が正しいとして、そうならそうといってほしかった。
「Rubyで書きたい」というのと「Rubyで書けないと困る」というのでは、議論の前提条件がまったく違うからな。

ちょっと時間をとってRailsを勉強してみる(とれるのか?)
164デフォルトの名無しさん:05/02/18 08:23:56
独自にテンプレート言語をつくるのが楽しいのはわかるんだけど、
実務上はDWの吐いたライブラリとテンプレートも読み込めないと使いにくい。

あと、id属性は使わないほうがいいんじゃないかな。
オーサリングツールがJavaScriptを吐くことがあるから名前の衝突を気にしないといけない。
DOMはクライアントサイドが扱うけど、テンプレート適用はサーバーサイドの出来事だし、
テンプレート言語はコメントにおくのが無難のような。
165デフォルトの名無しさん:05/02/18 21:39:20
amrita2はどうよ
166デフォルトの名無しさん:05/02/18 22:00:01
>>164
過去ログ読め。それらの意見に対する返答は一通り書かれた。
kwartzはDWとかの吐いたテンプレートを使う状況を
主なターゲットにしてる(んだと思う)。

しかしスレタイ変えた方がいいな。
167デフォルトの名無しさん:05/02/18 22:39:13
>>163
Jamisタソ(Needleとかやってる人)がRails-Amritaブリッジを作ったらしい。
ttp://dev.rakusui.jp/diary/?date=20050217#p03
168前928:05/02/18 23:16:58
>166
>164の内容は新たな指摘だと思うけど……


>164
SikiTemplateでこんなの実装したナリよ。どう?
かっこがウザいのは仕様です。(これなら重複しないだろう……どうにかしたいけど)

require 'xml/siki-template'
t = Template.new(
'<!--[[[{{{dummy class="$$title_text" /}}}]]]-->'+  #弟タグの要素にtitle_textというキーを指定
'<!--[[[{{{dummy class="$$@title@$id" /}}}]]]-->'+ #弟タグのid属性にtitleというキーを指定
'<!--[[[{{{dummy class="$$@title" /}}}]]]-->'+   #弟タグのclass属性にtitleというキーを指定
'<title id="test_title" class="test_title"></title>' )

#dummyはなくても可

r = t.parse( { :title => 'Title', :title_text => 'Text' } )
p r #<title class="Title" id="Title">Text</title>

>165
もうリリースされたっけ?
169デフォルトの名無しさん:05/02/18 23:39:36
170前928:05/02/18 23:59:52
>169
来週か……プログラムの構造はHackしやすくなっているかな?

passive template APIはおもしろそうだね。
171デフォルトの名無しさん:05/02/19 00:26:35
VisualuRuby使いたいんだけど、
最新版は自分でswin.soをコンパイルしないといけないっぽい。

だれか、コンパイルしてアップしてくださいm( __ __ )m
172デフォルトの名無しさん:05/02/19 00:52:00
Amrita2がRubyForgeに登録されてますた。
http://rubyforge.org/projects/amrita2/
173デフォルトの名無しさん:05/02/19 01:15:31
amrita2 って何が変わったの?
174デフォルトの名無しさん:05/02/19 01:21:23
>>164
> 独自にテンプレート言語をつくるのが楽しいのはわかるんだけど、
> 実務上はDWの吐いたライブラリとテンプレートも読み込めないと使いにくい。
それも検討したのだが、必ずしも必要ではなくて「できたらいいね」ぐらいの要求であることと、
今の実装だとタグとコメントの両方を解析するのが面倒なため、パスしてる。
ちなみに、DWのテンプレートを解釈するようなテンプレートエンジンは今までみたことないんだが、あったら教えてくれ。

> あと、id属性は使わないほうがいいんじゃないかな。
> オーサリングツールがJavaScriptを吐くことがあるから名前の衝突を気にしないといけない。
id属性は「HTMLファイルで重複してはいけない」から、オーサリングツールで容易にチェックできるため、かえって向いていると思うのだが。
どうしてもいやなら、使用する属性を設定またはコマンドオプションで変更してくれ。

> DOMはクライアントサイドが扱うけど、テンプレート適用はサーバーサイドの出来事だし、
> テンプレート言語はコメントにおくのが無難のような。
前半と後半とのつながりがわからん。コメントを使う方式では、ほんとうにHTMLタグをコメントするときに困る(HTMLではコメントのネストができないから)。

>>166
> kwartzはDWとかの吐いたテンプレートを使う状況を主なターゲットにしてる(んだと思う)。

んなことはない。

とりあえず、こっちで議論しないか。amrita2やRailsの話題も含めて。
【Ruby】RubyでCGI
http://pc5.2ch.net/test/read.cgi/php/988948655/
175前928:05/02/19 01:43:57
>174
おお、そういうスレあったのね。

では皆さん、さようなら〜
Amrita2のベンチは向こうに貼り付けます。
176デフォルトの名無しさん:05/02/19 02:35:08
>>119
>おまえはRDBを使うか?もし使うなら、SQLを使うだろ。あれこそ本当に頭のモードを切り替えなきゃいけないぐらい

Kwartzを独自言語じゃなくてSQLにしろってことね。




>独自言語でも、メジャーになれば使われる。Kwartzはマイナーだから使われない。それだけだ。
177デフォルトの名無しさん:05/02/19 11:10:04
>独自言語でも、メジャーになれば使われる。Kwartzはマイナーだから使われない。それだけだ。

こういう怠惰な現状肯定を認めてしまうと、
技術者は予め与えられた道具を黙って使っていればいい
ということになって、イノベーションの可能性を阻害する。
178デフォルトの名無しさん:05/02/19 12:53:44
まあRubyも安定期に入ったってことだ
いつまで創業期黎明期じゃまずいだろ

179デフォルトの名無しさん:05/02/20 00:39:34
Hikiにはユーザー用のMLってないの?
180デフォルトの名無しさん:05/02/20 03:01:18
>>179
ないみたいだねえ






ユーザML なら自分で作るという手もある
181デフォルトの名無しさん:05/02/20 07:30:07
少し前にこのスレでも話題になっていたが、変数に関数オブジェクトを入れて
そのまま () をつけたら関数呼び出しになる変更を検討中だそうだ。

ttp://www.rubyist.net/~matz/20050218.html#p01
182デフォルトの名無しさん:05/02/20 08:04:47
>>177

現状を述べたまで。努力を放棄したとはどこにも書いてないだろ。
しかしどうやったらこんな解釈をするのか。
183デフォルトの名無しさん:05/02/20 13:32:34
>>181は以前試したが、標準添付の中でも動かなくなるのがあったり、
かなり影響大きそう。
ところで、ツッコミにもある野分さんの案はどうよ?
ruby的にはこっちのほうが合ってるような気もするんだが…
184前928:05/02/20 13:51:12
>174, 177, 182
なんだよ、こっちに戻ってきてるの?
誘導するならサマリの作成&誘導をちゃんとやりなさい。

>174
>id属性は「HTMLファイルで重複してはいけない」から、オーサリングツールで
>容易にチェックできるため、かえって向いていると思うのだが。

複数箇所に同じデータを代入するようなケースに対応できませんが……
#ページのタイトルと大見出しを同じにするとか

>コメントを使う方式では、ほんとうにHTMLタグをコメントするときに困る

タグのコメントもリスク高いですな(合法だけど)
HTMLタグをコメントするケースって多いのかしらん?

>177
>こういう怠惰な現状肯定を認めてしまうと、

手間をかける以上のイノベーションがあるのが前提だけどね。
JavaScriptライクなの作成中とのことだけど、そっちの方がデザイナーの
学習コストが少なくていいかもね。繰り返しになるけど、XSLTもいいと思う
#デザイナーにロジックをいじらせるつもりならだけど
185デフォルトの名無しさん:05/02/20 13:53:43
>>184
|複数箇所に同じデータを代入するようなケースに対応できませんが……
|#ページのタイトルと大見出しを同じにするとか
alias
186:05/02/20 13:55:46
>183
前にruby-devに投稿したときは
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/24302
あまり芳しい反応はなかったからなぁ。
ClosureとObjectを等価に扱えるようになって便利なんだけどね。

RubyからProcを修正できるけど、Quick Hackの感は否めないし……
187前928:05/02/20 14:01:52
>185
それはプログラム側で対応しろということかな?Kwartzには無いよね?
「同じデータを使いたい」というのは、デザイン側の問題であることが
多々あるので(上記の例とか)、プレゼンテーションデータ側で処理したい
ケースとかあると思うけど。
188デフォルトの名無しさん:05/02/20 15:29:51
>>186
lambdaに対して何らかのメソッド呼び出しするのが違和感あるんだよね。
「.callだから嫌」というわけじゃないと思う。

でも、
>関数的呼出しの関数名部分がローカル変数のときには、そのローカル変数の値に「call」メソッドを適用する
って解決はすごくださいなぁ…。
189デフォルトの名無しさん:05/02/20 18:08:55
>>184

テンプレートシステムと関係ない点へのつっこみだから、こっちに書いたまでだ。よくよめ。
190デフォルトの名無しさん:05/02/20 20:09:04
>>186
[ruby-dev:24313]でまつもとさんも書いてるように、
単純だけどすごく強力そうだしねぇ。
影響がどの程度になるか予想しがたい。

ちなみに、Module.newはブロックを受け取るから、sendを使う必要はない。
特異メソッドでも可。
 super()
 (class << self; self; end).class_eval {
  method_name.each {|i| alias_method i, :call}
 }
 self
191デフォルトの名無しさん:05/02/20 20:36:19
>>188
schemeなんかだと変数と呼び出しは構文的に分かれてるからいいけど、
rubyじゃそうもいかないし。

どういう感じがいいわけ?
192デフォルトの名無しさん:05/02/21 00:42:39
だからこういう感じ。
f = lambda{|x| p x}
f(12)
どういうアプローチで実現するのが綺麗かは思いつかない。
()を[]同様メソッドにするのがいいと思うんだけど、
引数無しメソッドの扱いが困るのもわかる。
193デフォルトの名無しさん:05/02/21 01:21:37
メソッド呼び出しで()を省略できないようにすれば
何とかなるんだろうが仕様変更が大きすぎるだろうね。
194デフォルトの名無しさん:05/02/21 02:10:26
2.0で変えりゃいいじゃん
195デフォルトの名無しさん:05/02/21 03:44:45
Rubyでは、こういう時は、こういう風に書くっていうのを勉強したくて、
いくつか、プログラムのソースを読もうと思うのですが、
Rubyらしく書いてあるプログラムって、どんなのがありますか?

webrickとか、tDiaryとか、どうなんでしょうか?
196デフォルトの名無しさん:05/02/21 05:37:09
>>195
レシピブック。
著者の青木さんのWikiも漁ってみんさい。ttp://i.loveruby.net/w/RubyPages.html
197デフォルトの名無しさん:05/02/21 06:41:28
「あおきにっき」でぐぐれ
198デフォルトの名無しさん:05/02/21 06:49:56
みてどうするの?
199デフォルトの名無しさん:05/02/21 12:02:31
>>198
アルゴリズムをパクる、、,じゃ無くて、真似る(学ぶ)。

この人のソースも結構きれいだとおもうんだけど。
http://cgi.2lbox.org/

各種言語(RubyをはじめPerl,PHPなど)のBBSプログラムを比較検討したりと、けっこう私は勉強させてもらっています。

あれ、既出?
200デフォルトの名無しさん:05/02/21 13:33:00
>>199
なんか特に見るところもないソースだな
つーか配布するならライセンスくらい書こうぜ
201195:05/02/21 16:25:36
レシピブックって、
初心者が、リファレンスみたいに使うのかと思ったら、
よく考えたら、これをサラッと書けるようになれば、
中級者くらいになれそうですね。

レシピブックやってみます。

ありがとうございました。
202デフォルトの名無しさん:05/02/21 16:38:23
あんなので中級者なのか? (´Д`)
203デフォルトの名無しさん:05/02/21 16:49:25
まあ初級中級上級のクラス分けなんて相対的なもんやし。
204デフォルトの名無しさん:05/02/21 18:19:05
>>193
それはattr_readerで困る。
205デフォルトの名無しさん:05/02/21 19:37:24
>>192 みたいな変更ってそんなに影響範囲大きいの?
既存のコードが動かなくなったりする?
206デフォルトの名無しさん:05/02/21 20:33:08
>>204
Perlからtieを借りてくればいい。
207デフォルトの名無しさん:05/02/21 23:02:09
>>199
全体的に良くまとまってて、きれいなソースだとは思う
だが、parse_tagtokatext(タグとかテキスト)というメソッドの命名はどうなんだ
208デフォルトの名無しさん:05/02/22 01:16:54
>>207
...........まぁ、いいんじゃなかろか。わかりやすいし。
209デフォルトの名無しさん:05/02/22 01:18:35
>207
どうせなら
yomotoru_tagu_toka_tekisuto
くらいテッテ的にやってもらいたい
210デフォルトの名無しさん:05/02/22 02:07:57
>>209
みんな忘れてると思うが、Ruby は日本語の識別子が使える
だから、

def タグとかテキストを解析(文字列)
end

でいこうぜ
211デフォルトの名無しさん:05/02/22 02:24:21
>>210
やだ。
212デフォルトの名無しさん:05/02/22 02:27:35
日本語の文字って大文字と見做されるんじゃなかったっけ?
だから漢字とかで識別子をはじめると定数扱いになったような。
213デフォルトの名無しさん:05/02/22 02:36:34
>> 210
きもち悪いことに、本当にできた。試してみるもんだ。

#!/usr/bin/ruby -Ke
def こんな場合の気分って(こんなとき)
case こんなとき
when "恋したとき"
return "もんもん"
when "デスマーチ","阪神が負けた"
return "てんぱってる"
when "猫にそっぽを向かれた"
return "それはないよね"
end
end

print こんな場合の気分って('阪神が負けた')
exit

なにもここまで自由度が高く無くても(*_*;;)、と。
呆れるやら、..待て、なんかこれ結構使い道あるんじゃねぇか?と企ててみたり。
214デフォルトの名無しさん:05/02/22 02:48:35
>>212
ちゃうよ。小文字と同じ。だから直接こういうのはできない。
class くらす; end
215デフォルトの名無しさん:05/02/22 03:02:10
識別子に日本語が使えるのは別にrubyの特権でもなかろう。
VBでもJavaでも使えるぞ。
216デフォルトの名無しさん:05/02/22 03:50:49
>>214
逆だったか。サンキュー。

とは覚えていても使わない豆知識だなこれはw
217デフォルトの名無しさん:05/02/22 03:51:48
>>213
printもaliasしようよー
218デフォルトの名無しさん:05/02/22 10:31:11
>>205
動かなくなるのもある。
method = method(arg)
みたいなの。

添付ライブラリにも2,3ヵ所あるが、一般にどの程度影響があるかまでは調べてない。
219デフォルトの名無しさん:05/02/22 12:08:07
>>206
本末転倒のような。
220デフォルトの名無しさん:05/02/22 12:34:22
>>218
うーん、それで既存のコードが動かなくなることは無いように思えるのですが、
添付ライブラリの2,3ヶ所ってどこらへんでしょうか?
221192:05/02/22 13:46:58
俺が言ってたのは、
class << foo
 def bar(*a); yield a; end
 def baz; [3,2,1]; end
end

foo.bar 1, 2, 3 do |a| p a; end #=> [1,2,3] これはOK
foo.baz.sort #=> NoMethodError: undefined method `sort' for #<Proc:...>
なんてことになりそうなこと。

これだけでも多くの既存のコードが動かなくなると思うが、
>>193はすべてのメソッド呼び出しでカッコ省略不可にしようと言ってるのかな。
だとしたら上のfoo.barも通らなくなってさらに多くの既存コードが動かなくなるね。

attr_readerで困るのはカッコ完全省略不可の場合?
method = method(arg)はそれはそれで困るが、互換性という意味では上記の問題の方が大きいと思う。
222デフォルトの名無しさん:05/02/22 20:33:28
IORCC(International Obfuscated Ruby Code Contest)
ttp://iorcc.dyndns.org/
223デフォルトの名無しさん:05/02/23 00:53:25
>>220
代入の左辺でmethodという変数ができるから、右辺のmethod()はその変数への
呼び出しと見なされてしまう。

> 添付ライブラリの2,3ヶ所ってどこらへんでしょうか?
sample/test.rbとtest/ruby/test_iterator.rbの
lambda = lambda{44} とか marity_test あたり。
224デフォルトの名無しさん:05/02/23 02:40:05
f.(2)とかかれたら
f.call(2)と同義とするとかで、いいんじゃないか
にんげんだもの
225初心者:05/02/23 10:23:36
文字列を作るときに、%Qとか、%qって使ってる人いるんですか??

なんか、微妙に使いにくいというか、何をエスケープしたら十分なのかよくわからん。

%Q(abc(def)はエラーで、%q(abc(def))は通るんですよね。
なんか、不思議だ。
226& ◆RdmUjfVKqQ :05/02/23 10:38:15
改行っていうのと、行末$の関係がよくわからないので、以下のようにしてみたら
どちらも同じ結果になってしまいました。
改行と$って、違う概念なんでしょうか??

test = "abc\ndef\nghi\n\n"
test.each{|line|
p line =~ /$\n/
}
でも
test = "abc\ndef\nghi\n\n"
test.each{|line|
p line =~ /\n$/
}
227デフォルトの名無しさん:05/02/23 11:03:28
>>225
"や'や#{}が混ざってる時に使う。
そうじゃなけりゃ""や''で十分。

225の例のように括弧を含む文字列をわざわざ%Q()や%q()で書こうとするのは
はっきり言って無意味。
228デフォルトの名無しさん:05/02/23 11:21:54
>>226
p "s" =~ /\n/
p "s" =~ /$/
229デフォルトの名無しさん:05/02/23 11:51:35
「行末」は「位置」で、「改行」は「(「改行」という) 文字」、っていう違いかな。
230デフォルトの名無しさん:05/02/23 13:00:39
229に補足すると、行末は文字列の最後か改行の前。幅をもたない。
231デフォルトの名無しさん:05/02/23 15:44:32
>>225
%Q(abc(def))はエラーにならんのだけど。
カッコの対応が取れてないのはtypoではなくソースでもそう書いたのか?

>何をエスケープしたら十分なのかよくわからん。
気持ちわかる。俺もあまり自信ないが、
%qはシングルクォートを書きたいとき\'ではなく'と書く(書かなくてはならない)、ほかは''と同じ、
\Qはダブルクォートを書きたいとき\"ではなく"と書ける(\記法が有効なので\"と書いてもいい)、ほかは""と同じ、
じゃないかな。

>>227
#{}って関係ある?
>>227
下記のような違いがあるということかな?
%Q( #{ Time.now } ) # => " Wed Feb 23 15:48:08 JST 2005 "
%q( #{ Time.now } ) # => " \#{ Time.now } "
>>232
あ、これは"〜"と'〜'の違いっていうだけか。
良く分かってませんでした。失礼しました...。
234デフォルトの名無しさん:05/02/23 16:12:09
ただ単に文字列中に ' を入れたいなら " でくくればいいし、
ただ単に文字列中に " を入れたいなら ' でくくればいいのだが、
文字列中に #{} と " の両方を入れたいなら " でくくるのはちょっと、
という話ではないだろうか。
235デフォルトの名無しさん:05/02/23 16:26:33
>>231
%Q(abc(def) が通らないっていうのはすごくヘンだと思うぞ。なんで文字列の
中でカッコのマッチングをわざわざ取ってるんだ?
%Q|abc(def| とか、他の記号を使うとオーケーなのにね。
%記法をつかうなら中に入らない文字を使えってことかな。
236デフォルトの名無しさん:05/02/23 16:33:46
ヘンとか言われてもそういう仕様なので・・・

つーか、
> %記法をつかうなら中に入らない文字を使えってことかな。
という認識は、きっと逆で、
中でかぶらない任意の文字を区切り文字として使いたい、
という場合に%記法を使うのが正しい使い方と思われ。
237231:05/02/23 18:09:39
>>235
確かに不思議な仕様ではあるね。
なんとなく%Q(()) => "()"としたかったのかな。
他の言語(Perlとか)からごっそり取り込んだだけの仕様だったりする?

ところでもし>>225==>>235なら、
>%Q(abc(def)はエラーで、%q(abc(def))は通るんですよね。
でわざわざ%Qと%qを使った理由を教えてくれ。
238226:05/02/23 18:34:01
>>228-230
$が、改行の前か、文字列の最後ってことは、色々調べて書いてあったんですが、
その上で、226を実行すると、/\n$/っていうのがabc\nにマッチしてしまう理由がわからないのです。
$が改行の前なら、マッチして欲しくないんですが。
239225:05/02/23 18:37:54
225!=235
あ、今知ったんですが、%qとか%Qって、括弧()じゃなくてもつかえるんですね!!
これなら、便利かも。

ところで、やっぱり、変な仕様である気はしますね。%q(()のエラー。
240デフォルトの名無しさん:05/02/23 18:56:47
>>238
/\n$/ は「\n の後に行末(または文字列の末尾)が来るもの」という意味になるよね。
"abc\n"は \n の後に文字列の末尾が来るから問題ないじゃん。

ちょっと見てみるとこれは 1.8 からの仕様変更で、 Perl の挙動に合わせたものらしい。
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=trap%3A%3ARegexp
241デフォルトの名無しさん:05/02/23 19:00:45
>>239
それを知らなかったのなら仕方ないか。
%記法は、括弧のときだけ特別に中身の対応をチェックするようになっている。
親切なような、余計なお世話のような。

%Q'文字列中に"をエスケープなしで'
%q"文字列中に'をエスケープなしで"

とか書いたりもするなあ。
242225:05/02/23 19:32:26
>>240
なるほど。わかりました。
243デフォルトの名無しさん:05/02/23 19:41:51
でもさ
# Perl では $ は改行の前と文字列末尾にマッチする

とあるけど

print "true\n" if "\n" =~ /$\n/;

はperlでマッチしないのね。
でもrubyだとマッチする。
244デフォルトの名無しさん:05/02/23 20:06:46
245デフォルトの名無しさん:05/02/23 20:15:27
>>243
Perlでは$は、改行文字そのものとマッチするが後方参照しても文字列が取り
出せないもの、としているということなのかな。

perl -e 'print "true\n" if "\na" =~ /$a/;' # => 改行の後にaだから真
ruby -e 'print "true\n" if "\na" =~ /$a/;' # => 改行の直前の後にaだから偽

となるね。

"\na" =~ /^a/ が Perl では成立しないが Ruby では成立するとか、この辺はいろいろ面倒だな。
246デフォルトの名無しさん:05/02/23 20:21:12
質問です。
["a", "b"] → "["a", "b"]" のように
Array クラスを String クラスにしたいんですが、どうすればいいでしょうか?
247デフォルトの名無しさん:05/02/23 20:26:19
>>245
"\na" =~ /^a/は複数行モードの問題じゃね?
"\na" =~ /^a/mにすればperlもrubyもマッチする
248デフォルトの名無しさん:05/02/23 20:28:51
>>246
["a", "b"].inspect
249デフォルトの名無しさん:05/02/23 20:32:49
>>247
Ruby はデフォルトで複数行モードがセットされてるってこと?
250246:05/02/23 20:33:06
>>248
サンクス。inspect覚えておきまつ。
251デフォルトの名無しさん:05/02/23 20:43:39
252デフォルトの名無しさん:05/02/23 20:59:02
>>251
マジで?

Ruby には s なんて無い (Shift_JIS モードになるオプションに当てられてる) わけだけど、
どうやって単行モードにするの?
253デフォルトの名無しさん:05/02/23 21:15:45
make test-all は make install が済んだことが前提でしょうか?
/usr/local/bin/ruby が存在しなくてエラーになりまくりなのですが。
254デフォルトの名無しさん:05/02/23 21:37:47
>>248
日本語は?
255デフォルトの名無しさん:05/02/23 21:39:10
>>254
-K オプションを指定すれば?
256デフォルトの名無しさん:05/02/23 21:47:12
>>255
・・・知らなかった、サンクスorz
$KCODE= = 'SJIS'にしてみた
257デフォルトの名無しさん:05/02/23 21:55:23
res256.gsub!(/\$KCODE= = 'SJIS'/,"$KCODE = 'SJIS'") # orz
258デフォルトの名無しさん:05/02/23 23:16:33
>>252
そんなモードいらん
259226:05/02/24 00:05:30
p "abc\n" =~ /$\n$/ #=> 3
p "abc\n" =~ /$$$\n$$$/ #=> 3
なるほど。
260デフォルトの名無しさん:05/02/24 00:59:19
Rubyの初心者スレとかあるけど。
http://pc5.2ch.net/test/read.cgi/tech/1107799347/
261デフォルトの名無しさん:05/02/24 01:10:19
>258
むしろNオプションでネコミミモード
……どんなモードやねん、と自分で突っ込んでおく
262デフォルトの名無しさん:05/02/24 01:11:56
いまRuby-listにも主催者(でいいんだよね)Todd NathanからPOSTされた。
http://www.rubyist.net/~matz/20050222.html#p01
これ、だれかやるの?
263デフォルトの名無しさん:05/02/24 09:49:34
>>262
されてないんだけど、ruby-talk の間違い?
264デフォルトの名無しさん:05/02/24 10:33:09
265デフォルトの名無しさん:05/02/24 11:18:14
spam判定されてた。スマソ OTL
266デフォルトの名無しさん:05/02/24 11:45:27
Railsを使ってみようと思って、Ruby one click installer 1.8.2final(windows)
をインストールして、ruby gemsを使ってみたんですが、
indexをupdateするってところで、とまってしまいます。
どうしても無理みたいなので、

ActiveScriptRubyをインストールして、gemsもインストールして使うことにしました
ruby install.rbでインストールは成功したのですが、
実際使おうとすると、

C:\Documents and Settings\Toshihiro>gem
ruby: No such file or directory -- C:/Program (LoadError)

ってなります。
このエラーって、どのレベルのエラーでしょう。。
どうもパスにスペースが入ってるところに問題があるみたいです。
実は、gemsって、Windowsではそのまま使えなかったりするんでしょうか??

ところで、one click installerでみなさん、使えてるのでしょうか??
267266:05/02/24 11:53:06
ActiveScriptRubyを、c:\rubyにインストールして解決です。
やはり、パスにスペースが入ってるとうまくいかないようです。>gems

デフォルトで、RubyGems添付になって、
RAAに登録されているのは、Gem形式で配布されればいいのに。。
268266:05/02/24 12:00:09
Gems動くようになったけど、
updating gem source index for: http://gems.rubyforge.org
ってところから進まないぞぉー
269266:05/02/24 13:17:41
誰か、gems使わないrailsのインストール方法教えてください。
るびま見たら、actionmailとか必要みたいなので、インストールしようと思ったら、
RAAにないし。。

RAAからrailsだけとってきて、インストールしたらいいのかな??
270デフォルトの名無しさん:05/02/24 13:43:37
>>266
updating gem source index for: http://gems.rubyforge.org
と表示されてから完了するまでかなりの時間(2、3分)かかるので、
すぐにやめずに少し待ってみては。
271266:05/02/24 19:18:53
ちょっと、気になったんですけど
僕のインストール方法は、
ruby setup.rb を実行しただけなんですよ。
それで、同じフォルダに
post-install.rb ってあって、それを実行したら、
C:/Documents and Settings/Toshihiro/デスクトップ/rubygems-0.8.4/rubygems-0.8.4/post-install.rb:40:in `install_windows_batch_files': uninitialized constant Config (NameError)
from C:/Documents and Settings/Toshihiro/デスクトップ/rubygems-0.8.4/rubygems-0.8.4/post-install.rb:72
Completed(1)
こう出てしまいます。ここに問題があるんでしょうか。。


あと、ruby gemsのインストールマニュアルって見つからないんですが、どこかにあります??
http://rubygems.rubyforge.org/wiki/wiki.pl?RubyGems

それと、updating gem source ..... って出た後、10分くらい待ってみたけどだめでした。
272デフォルトの名無しさん:05/02/24 20:29:56
(???: ??????????? ??) <-- translated online

翻訳してくれ。
273デフォルトの名無しさん:05/02/24 20:52:02
(これ: 文字化け ?) <-- translated online
274デフォルトの名無しさん:05/02/24 22:16:41
Amrita2 initial releaseキタ━━━━━━(゚∀゚)━━━━━━!!
http://one.textdrive.com/pipermail/rails/2005-February/003444.html
275デフォルトの名無しさん:05/02/24 22:18:55
>>271
インストールマニュアルというか、
http://rubygems.rubyforge.org/wiki/wiki.pl?UserGuide
の「Installing the RubyGems library」がインストール作業の全説明だと思う。
post-install.rbはsetup.rbから呼び出されるもので、直接呼び出す必要はないから、
そのエラーは気にしなくてもよいです。

あと、手元のCygwinでgem list --remoteを試したら50秒弱で終わりました。
276デフォルトの名無しさん:05/02/24 22:59:38
質問です。
[1, a, 2, b, 3, c] → [[1, a], [2, b], [3, c]]
としたいのですが、何かイイ方法ありませんか?
初心者でスマソ。
277デフォルトの名無しさん:05/02/24 23:05:10
効率とか考えずに。
Hash[*[1, a, 2, b, 3, c]).to_a
278デフォルトの名無しさん:05/02/24 23:07:15
ary = [1, a, 2, b, 3, c]
Hash[*ary].to_a # => [[1, a], [2, b], [3, c]]
279277:05/02/24 23:07:52
あ、これじゃあ順番が保存されない可能性があるか。ゴメン。
280278:05/02/24 23:12:14
負けた……orz

もういっちょ。
ary = [1, a, 2, b, 3, c]
ary2 = Array.new(ary.length/2)
ary2.length.times { |i| ary2[i] = [ary[i*2], ary[i*2+1]]}

美しくないですが。
281277:05/02/24 23:20:51
ary2, a = [], nil
ary2 << [a, ary.shift] while a = ary.shift
282276:05/02/25 01:00:55
>>277, >>278
ありがとうございました。Rubyならwhileやfor文を使わなくても
きれいに書けるかなと思ったんですが、なかなか難しいみたいですね。
283デフォルトの名無しさん:05/02/25 01:06:56
欝になるほど汚いコードコンテストの会場はここですか?
284デフォルトの名無しさん:05/02/25 01:16:47
>>282
> Rubyならwhileやfor文を使わなくても
そーいや、ここしばらくイテレータ以外で繰り返し処理かけてないな。
285Py厨:05/02/25 01:42:31
>>> ary = [1, 'a', 2, 'b', 3, 'c']
>>> zip(ary[::2], ary[1::2])
[(1, 'a'), (2, 'b'), (3, 'c')]
286デフォルトの名無しさん:05/02/25 01:43:53
もうRubyだめだな
汚すぎる
287デフォルトの名無しさん:05/02/25 08:14:11
そこだけ見て判断するのはどうかと思うが、Pythonのスライスは便利だよな。rangeと共に重宝してます
Pythonだと a[1:] とかけるのが、Rubyでは a[1,a.size-1] と書かなければいけない、など
細かい事言えば、どちらも得意/不得意な事はあるんだけど

(0...a.length/2).map{|i| a.values_at i*2,i*2+1 }
(0...a.length/2).map{|i| a[i*2,2] }

Rubyの場合、特異クラスでメソッド追加出来るので、汚い部分はメソッドのなかに閉じ込めて、
288デフォルトの名無しさん:05/02/25 08:27:37
>>287
>Rubyでは a[1,a.size-1] と書かなければいけない
a[1..-1]
289デフォルトの名無しさん:05/02/25 18:12:10
Rubyで "[a,b]" を [a, b] と評価する関数ってあったっけ?
290デフォルトの名無しさん:05/02/25 18:39:52
Proc オブジェクトをそのまま文字列にマーシャリングしたいんですが、
うまいやり方とかあるでしょうか。

proc = Proc.new do |foo|
...
end

みたいな proc があったとき、

proc.to_s
#=> "Proc.new do |foo|
...
end

みたいにソースコードをそのまま取り出したいんですが・・・
291デフォルトの名無しさん:05/02/25 19:25:12
292290:05/02/25 20:37:59
無理なのか・・・
>>291
どうもありがd
293デフォルトの名無しさん:05/02/25 21:20:53
> 276
ary.values_at(*(0..ary.length-1).select{|a| a%2==0}).
zip(ary.values_at(*(0..ary.length-1).select{|a| a%2!=0}))
294デフォルトの名無しさん:05/02/26 02:01:24
ぱっと見て何をやってるかわからない1行よりは、素直な5行のほうがいいコード
5行がいやならメソッドに切り出せばいいし
295デフォルトの名無しさん:05/02/26 02:16:04
RubyにCとかで言うところのマクロはありますか?
296デフォルトの名無しさん:05/02/26 02:20:18
プリプロセッサに直接対応するものはない。
でもプリプロセッサの個々の機能に対応するRubyの機能はないとは限らない。
297デフォルトの名無しさん:05/02/26 02:47:51
>>294 と、素直な5行のコードも書けない奴がほざいております。
298294:05/02/26 03:54:04
じゃあ5行で。

array = [1, 'a', 2, 'b', 3, 'c']
result = []
while e = array.shift do
result << [e, array.shift]
end

まあ、やってることは >281 とかわらんが。
299デフォルトの名無しさん:05/02/26 03:58:06
どうでもいいが、インデント修正。

array = [1, 'a', 2, 'b', 3, 'c']
result = []
while e = array.shift do
 result << [e, array.shift]
end
300デフォルトの名無しさん:05/02/26 10:52:59
>>298
>>299
Nice post!!

トリッキーなのも
「一行書き捨て、今後もう使わんだろー」っていうスクリプトならいいけど、
プログラムとして継続的につかい、しかも他人との共同作業であればなおさら、
ちょっとわかりやすすぎるし、ちょっと長いけど、単純な記述のほうが
あとあとうれしいもんだ〜ね。

........聞いてるかっ福沢!<だれやねん。
301デフォルトの名無しさん:05/02/26 10:54:58
ソースが仕様書 なRubyなのになにをいまさら.
302デフォルトの名無しさん:05/02/26 11:09:34
>>300
自分突っ込みは痛いんで、もう死んだほうがいいと思うよ?
303デフォルトの名無しさん:05/02/26 12:01:09
Rubyでヘンだと思うところは
empty_array = []
empty_hash = {}
みたいな空データを作ってから、そのあと
<< で要素を追加していくところ。
304デフォルトの名無しさん:05/02/26 12:16:13
副作用を利用したコードって、わかりやすい?
305デフォルトの名無しさん:05/02/26 12:31:47
ary = [1, a, 2, b, 3, c]
ary2 = ([[,]])ary
306デフォルトの名無しさん:05/02/26 12:42:31
http://www02.so-net.ne.jp/~greentea/pre.html

バカが往くのひとはどこの誰に切れたんですか?
307デフォルトの名無しさん:05/02/26 12:49:41
>>304
def mkpair(cs)
if cs.nil? || cs.length < 2; []
else ; [[cs[0],cs[1]]] + mkpair(cs[2..-1]) ; end
end
p mkpair([1, 'a', 2, 'b', 3, 'c'])

副作用もループもなしで
308デフォルトの名無しさん:05/02/26 13:27:26
tail recursionきたー
309デフォルトの名無しさん:05/02/26 13:44:13
しかしRubyの汚く詰めて書いたほうが勝ちって風潮はいったいどこから来てるんだろう
310デフォルトの名無しさん:05/02/26 13:53:35
Matzが1行プログラム好きだから
311デフォルトの名無しさん:05/02/26 13:58:15
>>309
それはあなたの思い込みでしょう。
そもそもそんな風潮なんてないし、
そもそも詰めて書いたら汚いなんてこともないし、
そもそも勝ち負けなんてないし。
312デフォルトの名無しさん:05/02/26 14:45:55
>>308

def mkpairs(cs)
def loop(rs,cs); (cs.nil? || cs.length<2) ? rs : loop(rs+[[cs[0],cs[1]]], cs[2..-1]); end
loop([],cs)
end
p mkpairs([1, 'a', 2, 'b', 3, 'c', 4])

>>307 は tail recursion じゃないと思われ。こっちの方がシンプルか?

def mkpair(cs)
(cs.nil? || cs.length<2) ? [] : [[cs[0],cs[1]]] + mkpair(cs[2..-1])
end
p mkpair([1, 'a', 2, 'b', 3, 'c', 4])
313デフォルトの名無しさん:05/02/26 14:56:50
>>307
>>312
どちらも
[[[1, 'a']], [[2, 'b']], [[3, 'c']]]
こうなってしまいませんか?
314デフォルトの名無しさん:05/02/26 16:15:01
>>313
実行してみると、きちんと [[1, "a"], [2, "b"], [3, "c"]] が出てくるけど。
315デフォルトの名無しさん:05/02/26 20:26:37
>>300
祥子お姉さま、お呼びになりましたか?
316デフォルトの名無しさん:05/02/26 21:59:35
ruby/tkの使い方がよくわからず、こまっとります
たとえば変数aを1秒間に10回監視しa=1の時、正方形の中身を赤
2の時は青、それ以外の時黒に塗るというのはどう書けばいいのでしょうか?
317デフォルトの名無しさん:05/02/27 00:52:28
>315
ごきげんよう。
318デフォルトの名無しさん:05/02/27 05:37:53
>>285
pythonやyorickの添え字増分は便利だねえ。rubyでまねるならこうかな。

class Array
alias_method(:aref, :[])

def [](*a)
range, by = *a;
return aref(*a) unless a.size == 2 and range.is_a?(Range)
tmp = aref(range)
tmp.values_at(*(0..(tmp.size-1)/by).map{|i| i*by})
end
end

ary = [1, 'a', 2, 'b', 3, 'c']
p ary[0..-1, 2].zip(ary[1..-1, 2])
319デフォルトの名無しさん:05/02/27 05:53:49
>>316
tkに限らず、1秒に10回と正確に指定するのは無理だと思う。
ためしに sleep 0.1 のループを別の忙しいループと並べて走らせたら、
100回で1割程度の遅れがでた。
320デフォルトの名無しさん:05/02/27 06:21:06
>正確に
論点はそこではないだろ
321デフォルトの名無しさん:05/02/27 07:51:59
誰が見てもわかりやすい、メンテしやすいコーディングという面から考察した場合
イテレータを使うというのはどうなんだろう・・

rubyらしいコーディング・・ かぁ・・・・ むーん
322デフォルトの名無しさん:05/02/27 09:32:29
とりあえず、何でrubyが読みやすい言語ってことに
なっている(売りにしている)のかがよくわからん。
慣れれば書きやすいとは思うが読みやすいとは全然思わない。
323デフォルトの名無しさん:05/02/27 10:52:07
perlより、というプリフィックスをつけるんだ!
324デフォルトの名無しさん:05/02/27 12:27:24
無駄にいろんな機能を使いこなそうとせずに
普通に書いてる分にはきれいで読みやすいと思うけどね。
325デフォルトの名無しさん:05/02/27 13:31:17
>>321
イテレータって問題なの?
Rubyを知らない人にはわからんだろうけど。

>>322
じゃあ例えば何なら読みやすい?
326デフォルトの名無しさん:05/02/27 13:34:03
lisp
327デフォルトの名無しさん:05/02/27 14:51:25
んー、確かにRubyがよくわかってる人なら問題ないのかもしれないけれど

「ん、 なんだ この識別子は・・」 ->defってるところを探す
「ふむ・・ ここか・・ なになに?・・」

ここで思考停止になるパターン多そうな気がしない?

yield、イテレータの引数、渡されるブロック、ブロックパラメータ・・・
「んん?? これが・・ こうなって・・あれれ?」
328デフォルトの名無しさん:05/02/27 15:12:46
インタフェイスを複雑にしない
適切な名前をつける
329デフォルトの名無しさん:05/02/27 15:43:04
>>328
例えば、String型のデータを作るとき。

str_test01 = ""

とせずに、

str_test02 = String.new("")

とすると、大量な文字の羅列が積み重なるファイルの中では
ひとつひとつの行では、一見わずかな効果しか無いようだが、
積み重なったとき、実感できるほどに「見通し」が良くなるような気がする。

タイプの量は増えるけど、後々を考えると、どうだろう。
330デフォルトの名無しさん:05/02/27 15:49:55
イテレータの使い方とか表面的なことすらわかってない人を
「Rubyをちょっとはわかっている人」と言えるのか?
いや、イテレータの理論とかは俺も知らないが。

他の有名な言語ではあまり見ないfeatureだから
他の言語を知っている(特に手続き型な言語しか知らない)Ruby初学者には
直感が働かないところかもしれないけどね。

しかしそんなやつにRubyのソースをメンテさせたりするな。
Cしか知らないやつにC++のソースをメンテさせるのと同じくらい無茶だ。
331デフォルトの名無しさん:05/02/27 16:00:26
>>329
言いたいことが全然伝わってこない。
例が""じゃString.newを書き足しても冗長なだけに見える。
さらに変数名がstr_だったら普通Stringだと伝わるだろう。
これはまさに>>328の言うとおり。

多分例が悪いんだと思う。それともまた型の話か?
332デフォルトの名無しさん:05/02/27 16:22:21
>>303
> 名前: デフォルトの名無しさん Mail: sage 投稿日: 05/02/26 12:01:09
> Rubyでヘンだと思うところは
> empty_array = []
> empty_hash = {}
> みたいな空データを作ってから、そのあと
> << で要素を追加していくところ。

え? Hashって、<< で要素を追加できたっけ?
333デフォルトの名無しさん:05/02/27 18:58:35
[]=といいたいんだろう。たぶん。
334デフォルトの名無しさん:05/02/27 19:47:28
>303
ケースによるけど、Array の場合は
* ブロック付きの Array.new
* Enumerable#collect
などで、空データに追加していく形式を避けることができるかもしれない。

Hash の方は
enum.inject({}){|h,k| h[k] = yield(k); h}
とか
enum.inject({}){|h,args| k, v = *yield(*args); h[k]=v; h}
みたいなことをしてくれる初期化メソッドが用意されててもいい気がする。

--
というか、>>303がヘンじゃないと思うのがどういう書き方なのか
教えてもらえるとありがたい。
335デフォルトの名無しさん:05/02/27 20:27:24
コレクションを新しく作ったら中が空なのは自然だと思うが。

Java で
ArrayList arrayList = new ArrayList();
arrayList.add("java");
とやるのが変じゃないと思うなら、
[] とか << を使うのが変ってことなんだろうね。
336デフォルトの名無しさん:05/02/27 21:02:17
337デフォルトの名無しさん:05/02/27 21:34:49
>>334
純関数型言語的書き方でない?
338デフォルトの名無しさん:05/02/27 22:10:30
>>321
お前もうずっとCOBOL使っとけ。
「お前の望むような形での誰が見てもわかりやすい」言語だぞ。


まともなプログラマは吐き気を覚えるけど。
339デフォルトの名無しさん:05/02/27 22:26:01
イリテータを使うのは、むかつく
340デフォルトの名無しさん:05/02/27 23:13:29
array = [1, 'a', 2, 'b', 3, 'c']

require 'enumerator'
p array.enum_for(:each_slice,2).to_a
# => [[1, "a"], [2, "b"], [3, "c"]]
341デフォルトの名無しさん:05/02/27 23:21:17
>339
まぁ、いらいらするだろうなぁ。
http://dictionary.goo.ne.jp/search.php?MT=irritate&kind=ej
342デフォルトの名無しさん:05/02/28 00:53:11
ヤボだなあ
343デフォルトの名無しさん:05/02/28 01:04:01
>>338
COBOL-Rubyのブリッジを作ったら松江の会社に雇ってもらえるかも。
344デフォルトの名無しさん:05/02/28 02:25:07
>>338
イテレータの使用はわかりやすいとして
定義は わかりやすい、見やすい書式だ と思うか?
345デフォルトの名無しさん:05/02/28 02:39:37
通りすがりだけど、
yieldというキーワードがちょっとわかりにくいのをのぞけば、
十分わかりやすいと思うよ。
346デフォルトの名無しさん:05/02/28 02:41:27
ルビオタにそんなこと聞いたら答えは明らかだろ。
Rubyに初心者が寄り付かないのはHSPが大盛況である理由と正反対の理由だから。
347デフォルトの名無しさん:05/02/28 02:47:18
HSP みたいな普及はしなくていいよ。
348デフォルトの名無しさん:05/02/28 04:22:53
そうか、 yield のおかげで初心者が寄り付かなくなってくれていたのか。
yield 様様だな。
349デフォルトの名無しさん:05/02/28 08:19:22
yieldがいやなら、&blockで受けて、block.callしとけ。
350デフォルトの名無しさん:05/02/28 10:42:43
イテレータってメソッド毎に最大1つしか渡せず、
変数のスコープがちょっと変な無名高階関数だと思ってるけど間違ってる?

手続き型言語と関数型言語のいいとこどりをめざした感じで
個人的には結構好き。この2つの制限がなければもっと嬉しいけど。
351デフォルトの名無しさん:05/02/28 13:41:26
> メソッド毎に最大1つ
これは文法的に動かないだろうな。

> 変数のスコープ
こっちはたぶんRuby2で変わるはず。
352デフォルトの名無しさん:05/02/28 14:24:28
最近、イテレータブロックを複数渡すようにする話があったようななかったような。
353デフォルトの名無しさん:05/02/28 15:17:25
素直にlambdaにすりゃいいのに
354デフォルトの名無しさん:05/02/28 15:20:20
クロージャネストさせるとデバッグできないって某shiroさんも言ってたぞ
355デフォルトの名無しさん:05/02/28 15:30:45
>>352
ポインタきぼん。
どう渡してどう区別するんだ?

hoge() foo:{...} bar:{...}
def hoge
foo:yield
end
356デフォルトの名無しさん:05/02/28 15:38:26
メッセージパッシングモデルのOOPがレシーバ1つに特化したのと同じで、
クロージャ1つに特化したイテレータ文法はそれなりに成功してると思うけどなあ。
複数わたすなら明示的に普通の引数の一つとした方がよいだろうね。
ブロックとProcオブジェクトの微妙過ぎな違いもなくして統一し、
{ |a,b| ... } をRubyにおけるlambda式の表現としてどこにでも書けるように
するのがいいと思う。
357デフォルトの名無しさん:05/02/28 17:59:33
その場合、|引数|を必須にするってこと?
今のparse.yで実装できるかなぁ。
358デフォルトの名無しさん:05/02/28 18:12:16
Ruby2って今のparse.yを使うの?
359デフォルトの名無しさん:05/02/28 18:58:30
イテレータって名前がいやらしいよね
360デフォルトの名無しさん:05/02/28 22:24:08
>>358
ん? >>356は1.9じゃなくてRuby2での話?
361デフォルトの名無しさん:05/02/28 23:05:35
イレテーナ?
362デフォルトの名無しさん:05/02/28 23:40:20
>>361
アリゲータ
              ヴッ!
363デフォルトの名無しさん:05/03/01 09:47:22
>>360
>>356>>356の意見でしょ。ロードマップにあるわけではなく。
>>358は「Ruby2で全部書き直すならそれもありじゃん?」ってことじゃないかな。

んで、Ruby2って全部書き直すんだっけ。大幅な改造だと思ってた。
だって1.9が2の実験版だとしたら、
1.9から1.8に頻繁にバックポートされてるのがちょっと不思議だし。
364デフォルトの名無しさん:05/03/01 11:10:46
バックポートされてんのは、だいたいバグフィックスでない?
>>356は以外と簡単だな。パッチで100行もいかなかった。
365デフォルトの名無しさん:05/03/01 23:01:34
>>364
なかださん?
366デフォルトの名無しさん:05/03/01 23:12:56
>>365
そういうこと聞かないの。
367デフォルトの名無しさん:05/03/01 23:14:22
>>365
聞かなくても分かることは聞かないの。
368デフォルトの名無しさん:05/03/01 23:19:25
1.10マダー?
369デフォルトの名無しさん:05/03/01 23:45:47
>>368
次は 1.a.0 になります。
370デフォルトの名無しさん:05/03/02 14:22:46
>>365-367
100行越えてたぞ。
371デフォルトの名無しさん:05/03/03 12:15:58
pack と unpack で「レシーバの型はどっちだったっけ?」と毎回リファレンスマニュアルを引いてるのは漏れだけ?
372デフォルトの名無しさん:05/03/03 15:50:28
packとunpackはテンプレート文字列が覚えられないので自らは使わない。
あんなのはPerlの悪習さ!(負け惜しみ)
373デフォルトの名無しさん:05/03/03 15:52:51
互換性のない型への型変換を行うほぼ唯一の方法だったりするわけだが。
しかし、packとunpackでレシーバの型を悩む理由がよくわからん…
374デフォルトの名無しさん:05/03/03 16:01:39
型変換に使うもんなのか。
バイナリ文字列の生成/パースと簡易Marshalくらいの用途しか考えてなかった。
素人でスマソ
375デフォルトの名無しさん:05/03/03 17:21:19
もちろん普通はそういう用途に使うわけだけどね
376デフォルトの名無しさん:05/03/03 17:26:47
Array#pack => String, String#unpack => Array

だっけ。
どうしてpackがArrayのメソッドなんだろうって、変換する要素がひとつの時に悩む。

>>374
自分も同じ。型ってこの場合chatとかbyteの事だと思う。

データ構造定義するときに一度wrapper method定義してしまえば、
あとは、pack/unpackを直接呼ぶ事は少ないけどね。
377デフォルトの名無しさん:05/03/03 19:39:11
Time.parse("aaaaa") とかが例外にならないのって意図された動作なの?
378デフォルトの名無しさん:05/03/03 19:59:21
>>377
意図された動作だと思う。例外を出すコードも見当たらないし。
Time.parseはParseDate.parsedateの結果を元にTimeオブジェクトを
用意するけど、足りない部分は第二引数(省略時はTime.now)で補われる。

ParseDate.parsedate("aaaaa")
# => [nil, nil, nil, nil, nil, nil, nil, nil]

この結果から、結局Time.nowと同じ結果が得られる。

これが望まれた動作かどうかは別の話だけど。
379278:05/03/03 20:20:22
>>377
"aaaa".to_i が 0 になったりするあたり、 Ruby ではこのテのメソッドは原
則的に「パースできるとこまでパースして、その結果をもとに値を決定する」
というポリシなのでは。
380デフォルトの名無しさん:05/03/03 20:29:40
単に C の atoi() や strtol() の仕様を継承してるだけのような。
381デフォルトの名無しさん:05/03/03 20:40:28
nkf を捨てる時期に来ていることに気づく人がそろそろ出て来てもいいんですよ。
382デフォルトの名無しさん:05/03/03 20:46:19
>>379
Integer("aaaa")
# => ArgumentError: invalid value for Integer: "aaaa"
383デフォルトの名無しさん:05/03/03 20:53:50
aString.to_i と Integer(aString) は別物なんだよね。
384デフォルトの名無しさん:05/03/03 21:44:03
TimeとDateとDateTimeとrequire "time"したあとのTimeで
いつも悩む。rfc2822メソッドはどれだっけとか。
385デフォルトの名無しさん:05/03/03 22:59:07
>381
基本的に同意。まるで外部プロセスを起動するかのような使い方がもにょって仕方がない。
こないだから半分冗談でJcode.pmをRubyにベタ移植したらどうだろうとかやってるが
仕事がしんどくて10%の進捗のまま半月放置中さ´`,、(´∀`)´`,、
……誰かがんがってくれぇ(つ´д`;)
386デフォルトの名無しさん:05/03/03 23:09:11
>>385
いや、界面の設計は割とどうでもいいと思ってるのよ。
問題はもっと別のところにあるわけなのだが・・・
387デフォルトの名無しさん:05/03/03 23:49:33
ruby-icu キボンヌ
388デフォルトの名無しさん:05/03/03 23:59:59
>386
そうなのか。ヘタレな同意でスマンカッタ
389デフォルトの名無しさん:05/03/04 00:52:39
>>386
どんな問題?
個人的にはインタフェース(と動作)がまともなら中身はどうだっていいんだが

・・・いや、nkf のインタフェースがいけてるという意味じゃないよ?
390デフォルトの名無しさん:05/03/04 01:46:25
PerlIOみたいな文字コード変換はどうよ
391デフォルトの名無しさん:05/03/04 04:13:16
>>376
chat型 ハァハァ
392デフォルトの名無しさん:05/03/04 09:31:36
インターフェースも動作もいけてない、それで中身がまともならよかったけど
中身もまともじゃない、ということでは。

念のために言うと、nkfをライブラリとして使ってることによる問題なのであって、
コマンドとしてのnkfがどうこう、という話ではないよ。
393デフォルトの名無しさん:05/03/04 10:53:23
syckとnkfは読む気にならんな。
394デフォルトの名無しさん:05/03/04 19:15:56
YAML は仕様からして糞なので。 spec 読んだら XML の方がマシと思えるよ。マジで。
395デフォルトの名無しさん:05/03/04 19:18:39
>>394
YAML::StoreみたいなXML::Storeってあったっけ?
あるならそちらに乗り換えたい。
396デフォルトの名無しさん:05/03/04 20:35:14
spec とか読まずにフィーリングでさくさく書いてるやつ (=俺) には
YAML のほうがあってるってことかな。
Rubyist はこういうやつが多いと思ってたけどそうでもないんだな。

個人的には結構 YAML 使ってるけどまだ妙な仕様にはまったことはない。
使い方が足りないだけか。
397デフォルトの名無しさん:05/03/04 20:53:33
他言語間でデータやりとりし始めると死にたくなってくるから。マジで。
398デフォルトの名無しさん:05/03/04 21:33:18
>>396
俺も使っているし自分で書いたりもするけど、
Ruby 1.8.2までに少しずつ出力結果や入力時の解釈が変わってきているので、
YAML(syck)のバージョンを跨いで同じデータを扱う時には
注意が必要だった。なかなか気付けない事が多いけどorz
399デフォルトの名無しさん:05/03/04 22:18:53
>>397
具体的にきぼん。
400デフォルトの名無しさん:05/03/05 03:49:46
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/40644
これ見て思ったんですが、
__FILE__

File.expand_path(__FILE__)
これって、違いってあります??

どちらも、絶対pathの気がするんでうすが。
401デフォルトの名無しさん:05/03/05 04:41:55
違う。
__FILE__の仕様読み返せヴォケ。
402デフォルトの名無しさん:05/03/05 13:15:59
るbyさいこう
403デフォルトの名無しさん:05/03/05 14:15:13
Ruby再考!!!!!!
>>400
実際に試しましたか?
カレントディレクトリに下記のスクリプトをtest.rbとして置いて、
カレントディレクトリで"ruby test.rb"を実行すると分かるのでは?

puts( __FILE__ )
puts( File.expand_path( __FILE__ ) )

下記のリファレンスマニュアルには該当する記述がないんですね。
ttp://www.ruby-lang.org/ja/man/?cmd=view;name=%CA%D1%BF%F4%A4%C8%C4%EA%BF%F4
405デフォルトの名無しさん:05/03/05 21:36:14
marshalに格納されているデータを更新日順に並べることってできませんか?
例えば5万件以上含まれているとき、古い方から1万件削除、とかそういうことをやりたいのですが

marshal使うのやめてテキストにはき出して処理するしか方法がないんですかね
406デフォルトの名無しさん:05/03/05 22:24:18
>>405
テキストかmarshalかは関係ないと思うけど?
更新した時刻のデータが入ってるならそれ見ればいいし、入ってないなら無理だ。

具体的にmarshalをどんな使い方してるのかが分からないと何とも。
407デフォルトの名無しさん:05/03/05 22:48:32
>>406
hashに単語の登場回数を1対1で記録しています

処理させるデータの変遷によって、最近は見なくなったな〜
というような単語に関しては古い方に回していって消えてくれる
といった処理をさせたいのですが。

どうしたものでしょ
408デフォルトの名無しさん:05/03/05 23:13:48
marshalどこ?
409デフォルトの名無しさん:05/03/05 23:17:05
>>408
hashをmarshalにdumpしてるのです
410デフォルトの名無しさん:05/03/05 23:20:33
marshal はまったく関係ないような気がするんだけど、気のせいかな。
411デフォルトの名無しさん:05/03/05 23:31:06
ttp://raa.ruby-lang.org/announce20050304.html

> In reaction to a discussion on ruby-talk ML, raa-admin checked links of
> whole RAA projects today (Mar 4 2005). In what follows, you can see the
> result. Please find your project and check the result.
412デフォルトの名無しさん:05/03/05 23:36:37
ところで、なんでわざわざ英語で書くんだろうね。
馬鹿?
413デフォルトの名無しさん:05/03/05 23:38:51
…?
414デフォルトの名無しさん:05/03/05 23:42:01
米礼讃主義だからだ。
所詮戦争に負けた国だ。
415デフォルトの名無しさん:05/03/05 23:52:36
日本人にフィードバックしても得るところがないからだよ。戦争とかは関係ない。
416デフォルトの名無しさん:05/03/05 23:54:39
まつもとが日本人嫌いだからに決まってんじゃん
417デフォルトの名無しさん:05/03/06 00:06:00
ていうか英語で書けば世界中の人が読めるのに
わざわざ日本語で書く理由が分からない
418デフォルトの名無しさん:05/03/06 00:12:14
>ていうか英語で書けば世界中の人が読めるのに
ちゃんと読める英語を書ければね。
もはやネタに近いが、お米の国の人との交渉の席で
「マイ・フェイス、ドント・スタンド!!」
とのたまったお役人が居たそうで……
419デフォルトの名無しさん:05/03/06 00:20:37
で、その役人と何の関係があるんだい?低脳君
420デフォルトの名無しさん:05/03/06 00:23:28
最近、米語が世の中で一番単純な言葉のような気がしてきた。
三単現は理不尽だから止めて欲しいけど……
421デフォルトの名無しさん:05/03/06 00:28:22
オタ向けの貧相な技術文書だけ読んでればそう勘違いしてしまっても不思議ではない
422デフォルトの名無しさん:05/03/06 00:31:23
>419
ん。だから、藻前さんのように、ちゃんと読める英語を書ける香具師なんて
日本にそうそういねーよ、って話。
423デフォルトの名無しさん:05/03/06 00:36:30
だから何?
424デフォルトの名無しさん:05/03/06 00:57:25
もうラテン語で書けばええやん
425デフォルトの名無しさん:05/03/06 01:15:09
Rubyを勉強しようと思うんですが、おすすめの本はありますか?
426デフォルトの名無しさん:05/03/06 01:28:08
世界宝石百科
427デフォルトの名無しさん:05/03/06 01:30:00
428デフォルトの名無しさん:05/03/06 01:32:59
429デフォルトの名無しさん:05/03/06 01:36:11
Ruby のどんなことを勉強したいのか書かないと。
とりあえず気楽に読み書きできるようになりたいだけなら、
ある程度 C とか他言語の知識があれば Web で十分じゃないかな。
430デフォルトの名無しさん:05/03/06 01:38:02
日本語訳は http://www.pearsoned.co.jp/washo/prog/wa_pro44-j.html ね。
256本では遂に出なかった「王道編」ですな。
431デフォルトの名無しさん:05/03/06 01:38:34
たけーよ
432425:05/03/06 01:40:20
まったくの初心者なのでわかりません。
おすすめの言語みたいなので勉強しようと。
433デフォルトの名無しさん:05/03/06 01:40:33
この手の本としては普通くらいじゃね?
434430:05/03/06 01:40:43
>431
>428ならフリーだぞ。
435デフォルトの名無しさん:05/03/06 01:57:39
256倍を乱発してこけまくったせいで
各出版社がRubyに関する本を出すのに躊躇するようになったって話だ
436デフォルトの名無しさん:05/03/06 01:57:41
言い返せない>>431に萌え
437デフォルトの名無しさん:05/03/06 03:09:53
>>412-424
たくさん釣れてよかったね。>>412
438デフォルトの名無しさん:05/03/06 04:04:44
仕事でネットワーク管理やっているんだけど,net/ipaddr が非常に使いづらい。
で,RAA を探したら net/netmask なんてものがあった。

RAA - netmask
http://raa.ruby-lang.org/project/netmask/

これが異常に使いやすくて,必要な機能が全部入っている (IPv4 だけだけど)。
個人的には net/netmask が標準ライブラリになってほしいんだけど,
なんで net/ipaddr が標準ライブラリになっているの?

This library is deprecated if you are using 1.8.0,
which includes the much more complete 'ipaddr' library.

とか書かれているけど,ipaddr は全然 complete じゃないよなあ。
439デフォルトの名無しさん:05/03/06 05:27:23
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/50946
で2002/09にnetmask.rbが公開されるも、激しく放置。
そうこうしてるうちに2002/12にipaddr.rbが登場。
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/19009
最初から標準ライブラリ入りが決定気味で、実際同月に取り込まれた。

どうも比較検討されたわけじゃないっぽいね。存在が知られてなかっただけ?
確かにnetmask.rbのほうがかなり使いやすそう。Danタンショボーン。
440デフォルトの名無しさん:05/03/06 07:59:10
>>420 >>424
エスペラントという選択肢もあるぞ

>>425
プログラミングに馴染みがないなら、とりあえず「たのしいRuby」で。
他には上で挙がってた「プログラミングRuby」なんかもお薦め。

256倍シリーズはお薦めできない。いい本と悪い本がごちゃ混ぜになってるから
441デフォルトの名無しさん:05/03/06 10:17:17
>>440
ありがとうございます。プログラミングRubyでやってみます。
442デフォルトの名無しさん:05/03/06 12:32:12
rubyごときで本買う気が起きない。
443442:05/03/06 12:47:23
Perl様の為なら喜んで大人買いするがな。
444デフォルトの名無しさん:05/03/06 12:54:04
静的なスコープってなに?
445デフォルトの名無しさん:05/03/06 13:18:40
Perlはラクダ本がオライリージャパンお得意の分冊になったのがショボーン
446デフォルトの名無しさん:05/03/06 13:43:14
>>437
それを釣りというならお前も釣られてんな
447デフォルトの名無しさん:05/03/06 14:47:40
>>444
変数と値の対応関係とか(スコープ)が実行時ではなく、コンパイル時に決定さ
れていること。 Lisp の話だけど、
http://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/comparison.html
の中程で動的スコープと静的スコープの説明をしているのがわかりやすいかも。

Ruby で説明すると、
a = 10
l = lambda { a }
def m(a, l)
l.call()
end
m(30, l) # => 静的なら10、動的なら30になる

つまり、コンパイルする段階で、 l の中の a が何を指しているか決まってい
るので、どこで実行しても参照先が変わることはない。これが静的スコープ。
動的なら、実行時にaの対応先を調べることになり、mの第一引数が該当するか
ら結果が30になる。
448デフォルトの名無しさん:05/03/06 15:57:30
>変数と値の対応関係とか(スコープ)が実行時ではなく、コンパイル時に決定さ
>れていること。
この説明ってよく見るけど不正確じゃない?
動的スコープの言語がコンパイルできないみたいな印象を受けるよ。
449444:05/03/06 20:10:00
>>447
すごいよくわかった。さんくす。
つまり、Procオブジェクトlの中で変数aが現れたとき、それがコンパイル時点で決まっていれば静的スコープ、コンパイル時には決まっていなくて実行時に探索するのが動的スコープなのね。

447の説明ではlambdaというかProcオブジェクトを使っていて、この話はブロックでも同じことだとおもうけど、メソッド定義内でのローカル変数でも似たような話になるのかな。
あと、静的スコープと動的スコープはどっちがいいの?直感的には、動的スコープはわかりづらくデバッグしにくいように思うんだけど。
450438:05/03/06 23:29:45
>>439
情報ありがd。ちょと不透明だね。
しかし Dan タンの放置っぷりはすさまじいな……。合掌。
451447:05/03/07 00:10:45
>>449
メソッド定義内でも同じように議論もできるんだけど、 Ruby の現在の実装だ
とメソッド内は完全に別世界だから例として上手くないかな、と思ったので
Proc にした。たとえば、
a = 10
def x()
a
end
っていう時の a は Ruby だとエラーになっちゃうからね。 Scheme みたいな
レキシカルスコープな言語で似たようなことを書くと、 a は 10 を指してエ
ラーにならない。とはいえ、後ろの m をメソッドじゃなくて Proc にした方
が簡単だったかな。

ちなみに、動的スコープだと、たとえば再帰関数で毎回同じ引数を渡したりと
かいったことを省略して大域的に書いたり、ということを比較的容易に書ける
らしい。実は漏れもよくは知らない。でも、現状で動的スコープ言語が今では
ほとんどないということからして、やっぱりわかりづらいんだと思う。
452デフォルトの名無しさん:05/03/07 04:28:45
EmacsLispが動的スコープだっけ。
453デフォルトの名無しさん:05/03/07 04:47:39
あと Perl の local かな、有名所では。

>>448 でも指摘されているが
>>447 の説明と >>449 の理解は間違っていると思うぞ。
コンパイルがどうこうは定義じゃない。
そういう実装が多い (気がする) だけ。

今更だがこういう話をするのに Ruby は不適切じゃないか?
そもそもかなりのスレ違いだと思うが…。
454449:05/03/07 07:48:40
>>453
じゃあ正しく説明してくれ。「コンパイル時」を「構文解釈時」にすりゃOKなんて逃げはなしで。

>そもそもかなりのスレ違いだと思うが…。
某松日記にでてたんで。
455デフォルトの名無しさん:05/03/07 14:27:03
>>453じゃないですが。
例をあげられるくらいには理解できてるつもりだけど、
人に説明できるほど理解できてないので参照だけ。
http://ja.wikipedia.org/wiki/%E9%9D%99%E7%9A%84%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97
http://ja.wikipedia.org/wiki/%E5%8B%95%E7%9A%84%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97
ここもほとんど例だけだけどね。

本質はあってるんだからいい過ぎじゃない?>>453
知ったかを責められて開き直るのかこわるい>>454
などといいつつちゃんと説明できない漏れ
456デフォルトの名無しさん:05/03/07 14:31:04
動的スコープってキモイな・・・
457デフォルトの名無しさん:05/03/07 14:49:16
たまーに便利なこともあるよ。
458デフォルトの名無しさん:05/03/07 15:04:17
文脈依存スコープと呼べば無問題
459デフォルトの名無しさん:05/03/07 16:16:55
言葉の定義については、実行時か実行前程度でいいんじゃない?それはともかく

>>451
mをprocにすると結果が変わってくる。
メソッドないのブロックではスコープが隔離されてるだけなので
これを以て動的/静的スコープと判断するのは不適切なのでは?
>>447の場合、aの値が伝搬されてないだけとも言える。

a = 10
l = lambda{|b| eval "a", b}
def m(a,l)
l.call binding
end
m 30, l

もっと単純に

a = 10
l = lambda { a }
a = 20
l.call

> でも、現状で動的スコープ言語が今ではほとんどないということからして、
Pythonも動的スコープ, rubyも動的スコープだと思ってたんだけど?
静的だとしたら上のコードの実行結果と矛盾しませんか?

>>449
有効な利用方法は、クロージャ、遅延評価。
460デフォルトの名無しさん:05/03/07 16:39:50
書いてから勘違いにきがついた。
>>459はスルーよろしく
461デフォルトの名無しさん:05/03/07 18:22:37
matzって、なんて読むの?
462デフォルトの名無しさん:05/03/07 21:05:09
魔ッ
463デフォルトの名無しさん:05/03/07 21:48:38
orz
464デフォルトの名無しさん:05/03/07 22:39:52
魔ッ蔵?
465デフォルトの名無しさん:05/03/07 23:21:06
ま゛
466デフォルトの名無しさん:05/03/08 00:14:53
マットゼット
467デフォルトの名無しさん:05/03/08 00:30:14
ザット
468デフォルトの名無しさん:05/03/08 02:45:54
まっつん
469デフォルトの名無しさん:05/03/08 07:28:54
[ruby-talk:127803]
> Matz once told me that "matz" is Japanese for "pine"!
470デフォルトの名無しさん:05/03/08 08:49:19
パイン?
471デフォルトの名無しさん:05/03/08 09:22:03
>>470
辞書ひけ無脳。
472デフォルトの名無しさん:05/03/08 10:16:10
トミーと
473デフォルトの名無しさん:05/03/08 11:02:42
クロノと
474デフォルトの名無しさん:05/03/08 12:40:37
ケンサンバ
475デフォルトの名無しさん:05/03/08 12:40:56
ゆうべからeval.cが要C99になってる。
あと、pp.rbのInspectKeyが古いまんま。

つーか、スレッドローカル変数いじっただけで[BUG]ってのは、
厳しすぎるんでは。
476デフォルトの名無しさん:05/03/08 12:52:16
> ゆうべからeval.cが要C99になってる。
いろんな環境でコンパイルできなくなると思うが、なんか意味あんの?
477デフォルトの名無しさん:05/03/08 14:00:15
>>475,476
eval.cについては、そういうことじゃなくて、単なるバグでは。
もう直されたみたいだけどね。
478デフォルトの名無しさん:05/03/08 16:11:38
>>475
関係ないけど、関数定義(の引数)のスタイルはいい加減、C89にならんもんかいね。1.9とかで。
何かにつけては結局規格を頼りにしてんのだから、そろそろやめません?
479デフォルトの名無しさん:05/03/08 16:13:12
Cは可読性低いからLispかHaskellで書き直して欲しいよ。
480デフォルトの名無しさん:05/03/08 16:16:03
そんな事より[ruby-list:40650]の意図をつかみかねて夜も眠れないのは漏れだけですか、そうですか。
481デフォルトの名無しさん:05/03/08 16:17:30
>>480
Rubyネタの振りをしたspamだと思えばよいかと
482デフォルトの名無しさん:05/03/08 16:35:09
単に実行するだけでいいんだから随分質の低い募集だな。
483デフォルトの名無しさん:05/03/08 17:07:16
あのセンスがわかるかどうかが一次選考の決め手なのかな。
484デフォルトの名無しさん:05/03/08 17:14:26
あのプログラムの可読性はどうよ?
485デフォルトの名無しさん:05/03/08 18:14:02
取り立てて良くも悪くもないんじゃない?
486デフォルトの名無しさん:05/03/08 18:32:20
俺は105点だった。実行はしてないけど。
487デフォルトの名無しさん:05/03/08 20:27:28
必要とするスキルをお持ちで無いようです。
488デフォルトの名無しさん:05/03/08 21:29:24
>>478
規格を頼りにするのと関数定義スタイルを変えるのになんの関係が。
K&Rスタイルが規格違反になったわけでもないのに。
489デフォルトの名無しさん:05/03/08 22:11:12
>>488
ANSI-Cを頼りにする→処理系の前提としてANSI-Cがある→K&Rスタイルを貫くことに互換性の面では意味がない→ANSIスタイルにしたってええやん

ってつもりでした。
490デフォルトの名無しさん:05/03/08 22:16:43
互換性のためにやってるんじゃなくて、単に作者の好み
491デフォルトの名無しさん:05/03/09 01:20:10
[ruby-core:3518] (From: Matz)
> | What is holding back a conversion of the K&R code
> | to use prototypes ?
>
> My preference. I like prototypes. But I dislike the new style
> argument list, especially when the list becomes large with type
> names.


# blade で ruby-core は検索できないのね……。
492デフォルトの名無しさん:05/03/09 13:04:53
規格をベースに考えるというのと、規格(の一部)以外は無視する
というのは違う。

規格非対応処理系ってのは、結構あるわけで。
現にまた一つ-devに出てるとこだし。
493デフォルトの名無しさん:05/03/09 18:54:26
ハァ?
何がチミの心の琴線に触れて瞬間沸騰してしまったのかは知らないが
ちっとは落ち着けよwwwwwww

何に対して具体的事例を示して欲しいんだい?
こうやって「僕は頭が悪くないんです!」と言いたいだけなのは分かるが
指針もロクに示さずに「低能」「脳ミソの内部がショート」「薄っぺらな知識」
「現実を無視して揚げ足取り」と罵詈雑言を弄してるだけじゃ「頭が悪い」と思われても仕方が無いぞワラ
494デフォルトの名無しさん:05/03/09 19:37:10
>>493
誤爆どんまい…
495デフォルトの名無しさん:05/03/09 19:58:41
すとやんって日本人なん?
496デフォルトの名無しさん:05/03/09 21:23:50
>>493
ハァ?
何がチミの心の琴線に触れて瞬間沸騰してしまったのかは知らないが
ちっとは落ち着けよwwwwwww
497デフォルトの名無しさん:05/03/09 22:26:47
誰でも良いから心の琴線で何かが瞬間沸騰したところを見せてくれ(−−;
498デフォルトの名無しさん:05/03/10 01:10:09
今日の使えるフレーズ

「何がチミの心の琴線に触れて瞬間沸騰してしまったのかは知らないが
 ちっとは落ち着けよ」 ――― 493
499デフォルトの名無しさん:05/03/10 01:45:52
-talk:133197に日本人がいないことについて
500デフォルトの名無しさん:05/03/10 01:53:24
日本人は絶滅しますた
501デフォルトの名無しさん:05/03/10 10:40:51
思えば少子化が酷かったしね
502デフォルトの名無しさん:05/03/10 11:43:27
子供のときに川でねずみ食べてる日本人を見たことあるよ
503デフォルトの名無しさん:05/03/10 11:50:04
504デフォルトの名無しさん:05/03/10 20:16:57
>>503
w
505デフォルトの名無しさん:05/03/11 23:54:16
506デフォルトの名無しさん:05/03/12 02:05:13
Ruby2.0のブロックローカル変数の書き方があんまりきれいじゃない件について
507デフォルトの名無しさん:05/03/12 02:43:56
ブロックのパラメータ変数って、なんで||で囲む必要があるの??
2.0から、()で囲むようにすればいいじゃん。
508デフォルトの名無しさん:05/03/12 03:25:10
>>507
こんなかんじ?
foo do (bar, baz)
...
end
foo {(bar, baz) ... }
509デフォルトの名無しさん:05/03/12 07:51:35
>>507
Smalltalkからアレンジした書き方じゃなかったかな。
510デフォルトの名無しさん:05/03/12 11:39:39
>>507
式はカッコで括れるから、引数一個の時にコンフリクトするんじゃね?
511デフォルトの名無しさん:05/03/12 18:52:52
Windows CEでrubyやりたいんだけど、CE版 ruby見当たらないよ。
512デフォルトの名無しさん:05/03/12 19:05:55
1.8以降ではwinceディレクトリがあるだろ。
バイナリなら……シラネ。
513デフォルトの名無しさん:05/03/13 05:14:52
URI で infoseek なんかでよくあるアンダースコアが付いたホスト名でエラーになるのはどうにかならないかなあ?
514デフォルトの名無しさん:05/03/13 05:51:47
それで正常だと思うが。

どうしてもそういうのを処理する必要があるならuri/common.rbをコピって
アンダースコアを追加して、先にrequireするようにしたらいいんじゃない?
515デフォルトの名無しさん:05/03/13 11:46:33
URI といえば。以下は仕様なのかな。バグなのかな。

URI.extract("http://") #=> ["http//"]
URI.parse("http://") #=> URI::InvalidURIError: bad URI(absolute but no path): http//

気持ち的には extract で返される uri は必ず parse が通って欲しいんだけど。

a = []
URI.extract($_).each { |u| a.push(URI.parse(u)) } while io.gets

みたいのではまるんだよね。
516デフォルトの名無しさん:05/03/13 11:59:25
>アンダースコアが付いたホスト名
RFC違反だからinfoseekに通報白
517デフォルトの名無しさん:05/03/13 12:07:07
>>510
ブロックのパラメータ変数を||で括ってると、
|を含んだ式が中に書けないっていうのは、
そこでブロックのパラメータ変数部分が終わってしまうように見えるからじゃないの?

式の中で出てくる括弧は、(で始まって、)で終わるから、パラメータの終わりと間違うことはない。

つまり、始まりと終了で、違う記号(対応する記号)な記号を使えば、
問題ないと思うけど。
518デフォルトの名無しさん:05/03/13 12:19:39
k「phルウィyvフィvlヴィyvlんんぃうlgんぅgんぅgんぃうgんぅgflgぃうfぅ
519デフォルトの名無しさん:05/03/13 12:51:49
>>517
> 式はカッコで括れる
a = 1
(a) => # 1

> 引数一個
block{(a)} # => パラメータ変数? カッコでくくった式?
520デフォルトの名無しさん:05/03/13 15:23:34
>>519
なるほど。
521デフォルトの名無しさん:05/03/13 20:52:48
こうしてRubyは無計画な構文を作りまくってグダグダになった
522デフォルトの名無しさん:05/03/13 21:12:09
はい、ジャンガジャンガジャンガジャンガ〜
523デフォルトの名無しさん:05/03/13 22:32:11
WebアプリケーションフレームワークのDivって使いたいんですけど、
これって、ドキュメントないみたいですね。

使い方の書いたページも探したけど見つからないんですけど、
どこかにあれば教えてください。
524デフォルトの名無しさん:05/03/13 22:41:33
>>523
↓こっちのスレに多少情報がある

【Ruby】RubyでCGI
http://pc5.2ch.net/test/read.cgi/php/988948655/
525デフォルトの名無しさん:05/03/14 02:21:37
rubyって構文だけじゃなくて意味論も無計画だよね…。

[ruby-list:40519] What is singletonclass.superclass ?や
[ruby-dev:25808] break & retry in blockや
[ruby-dev:25866] Re: conflict method and local variableあたりを見てると、
「オブジェクト指向の中心に近い意味論をそんなフィーリングで実装してたのっ!?」とか
「深遠だと言われていたイテレータの理論もそんなフィーリングでっ!?」とか叫びたくなってくる。

確かに、理論的なモデルそのままに実装したら今以上に遅くなるし、
理論を極めようとしたらHaskellみたいになって一般人には使えなくなるから
どこかで折り合いつけるのは必要なんだろうけど…。

そろそろRuby10年の経験を元に、新しい言語を再設計する神に期待。
526523:05/03/14 02:23:08
>>524
サンクス。
dRuby本か、divipのソース、付属のサンプル読むくらいみたいですね。
2003-9のUNIX USERと。古いなぁ〜
527デフォルトの名無しさん:05/03/14 04:31:28
528デフォルトの名無しさん:05/03/14 04:47:49
↑ブラクラ
529デフォルトの名無しさん:05/03/14 10:11:20
↑大嘘書くな。
しかし、URLを見たときは、alangという人の日記かと思ってしまった。
530デフォルトの名無しさん:05/03/14 13:44:21
↑グロ
531デフォルトの名無しさん:05/03/14 14:09:01
↑春厨
532デフォルトの名無しさん:05/03/14 18:49:53
            /;;;::::---,::::::::::::::::::::::::::::::ヽ
           /:/    ヽ;;;;;;:::::::::::::::::__:::::ヽ
.          {/  ,..---_   ヽ:::;:-'"r''ヾ、:ヽ  ,_._   
           l   r=''"     `'   }= ノ.l:::::', {.'ヽi __
           ,!,,、  '          ´ ,..ノ:::::::l,.>-‐!l `` ヽ、
.          i r,i  ヽ.._        `'"  l;:-'''ll ,.- !l ヽ--._ヽ,....,
           〉~l  =..ノ`ヽ、     _....-'ニ-t-l"il...--''-.| _,...ニ--'‐''''
.          i ヽイ r、ゥマフ`     '''""´ /-!、/;;;;;;;;;;;;;Y
           ヽ ヽ`f_/ ノ     ,.....,/rァ 〃-、;;;_;;;;;;;`、
            \ヽ  /     /r'ア/ / /| .:::/ |\::::`、
              \       /〃//,..-‐''!::::`、. ヽ ヽ:::::`、
               ヽ .,_    ノ// /   ,..`、‐l  `、 ヽ'"`、
    -==ニ二二二二二二二二二二二二二ニ二 ``'''ー-、-`-‐`'''l'''''"
       `'''''''''''''''ー―==、--...  ______.....>---‐~''=、-....二> [■
  -==三三三三ニニニニニ''-`=-`=-、  ,ニ、'''ー-ニニ=--`'  `ー―┴―
        `~~~''''''''''''ーニニニニー=- ,,,,,,ヽ三三ゝヽ 二二 ̄ ̄~ヾヽ
             ,.../ f;;;;;|  `~~""'''ー、;;;;;;;;;;;;;;;;;`~"'''ー--....-<"ヾ
           /    l;;;;;;;l         `~"ー-:::::__;ヘ;;;;;::::::::::二二
         r'''"     l;;;;;;;l                `ー'    `、
        /        l;;;;;;;l   
533デフォルトの名無しさん:05/03/14 20:50:13
↑だれ?
534デフォルトの名無しさん:05/03/14 21:44:50
↑おまえ
535デフォルトの名無しさん:05/03/14 22:13:00
↑だるだ?
536デフォルトの名無しさん:05/03/14 22:24:30
      //
    / .人
    /  (__)
   / ∩(____)  
   / .|( ・∀・)_
  // |   ヽ/
  " ̄ ̄ ̄"∪
537デフォルトの名無しさん:05/03/14 22:27:42
   ∩∩                 人            V∩              
  (7ヌ) 人       人      (_ )     人    (/ /              
 / / (_ )     (_ )    (__)    (_ )    ||              
/ /  (__)     (__)  _(・∀・ )   (__)   ||              
\ \( ・∀・)―--( ・∀・ ) ̄      ⌒ヽ(・∀・ ) //              
  \       /⌒   ⌒ ̄ヽ、    /~⌒    ⌒ /                
   |      |ー、      / ̄|    //`i     /                  
    |     | |     / (ミ   ミ)  |    |                  
   |    | |     | /      \ |    |                  
   |    |  )    /   /\   \|       ヽ                 
   /   ノ | /  ヽ ヽ、_/)  (\    ) ゝ  |                 
   |  |  | /   /|   / レ   \`ー ' |  |  /                  
538デフォルトの名無しさん:05/03/14 22:29:38
        人      +                                      
       (__)                                            
.  +   (__∧_∧                                        
      (  (     )                                      
    /⌒'/⌒'   ~ `)     +                               
. +  (  く(  く ノ | イ                                       
    ヽ,_'ァヽ,_'ァ   , .|    +                                  
 +    .ノヽ.ノヽ ._λ_ )      +                               
     ./ ./   ノ|  ノ                                      
     (  ( -く  |ー(                                      
     \ \ └,.| .)   +                                  
      / /,┘/ (__)                                      
539デフォルトの名無しさん:05/03/14 22:31:23
         n    人     人     n                        
       (ヨ )  (_ )   (_ )   ( E)                       
       / |  (__)   (__)   | ヽ                      
       \人/( ・∀・)∩(・∀・ )ヽ/  人                      
   _n    (_ )u    ( ⌒)   uu)∩_  (_ )                    
  ( l   (__)    ./,. 人     i ,,E)__)                    
   \ \ (・∀・ )   / /_)   ./ .ノ( ・∀・ )    n               
    ヽ___ ̄ ̄  )   / /____) ,/ ./ ̄    \    ( E)             
    / ̄| .  人 / / ・∀・)  / フ 人  ./ヽ ヽ_//               
    |  |. (__)       /   (__)   \_///               
    |  |. (__)\  人 ヽ    (__)    / /人              
  ,―    \( ・∀・)  (__)    ∩ ・∀・)∩  ./   .(__)             
 | ___)   |  ノ   (__)    〉    _ノ  / ∩(__)             
 | ___)   |)_)  (,,・∀・)   ノ ノ  ノ   / .| ( ・∀・)_            
 | ___)   |      ( O┬O   .し´(_)  .// |    ヽ/            
 ヽ__)_/  ≡ ◎-ヽJ┴◎                               
540デフォルトの名無しさん:05/03/14 22:35:51
        \          人        /                    
      //  \       (__)     /  人                  
    / .人   \     (____)    /  (__)                 
    /  (__)    \   ( ・∀・)  /(祭)(__)                 
   / ∩(____)     \ ∧∧∧∧/  Y ( ・∀・)                 
   / .|( ・∀・)_   <        >   Φ[_ソ__y_lつ                
  // |   ヽ/    <     .   >     |_|_| |                
  " ̄ ̄ ̄"∪     <        >     し'´J ,*′               
 ─────────<        >──────────          
    人     ||||||||||||<        >    人                    
   (__)    |     <        >    (__)                  
  (____)    |      /∨∨∨∨\    (__)  ∩ミ              
  (・∀・,,)     |    /  人      .\ ⊂(・∀・,,⊂⌒ヽつ              
  ( O┬O   |  .../  (__)      .\                        
◎-ヽJ┴◎   | /   (__)       .\                      
          / (>=◎( ・∀・)  (´⌒(´⌒;; \                    
             /_./ 〉⊂_ノ`  (´⌒(´≡                         
           〈/ )/__,ミ ≡≡≡(´⌒;;;≡≡                       
           (_/^´  (´⌒(´⌒;;                             
541デフォルトの名無しさん:05/03/14 22:40:09
曼荼羅
542デフォルトの名無しさん:05/03/14 22:49:02
                                                   
                                                  
                                                  
                                                  
                                                  
                                                   
                                                  
                 おいら「おいすー^^」                   
                                                  
                                                  
                                                  
                                                  
                                                   
                                                  
                                                   
543デフォルトの名無しさん:05/03/14 23:17:56
また鬱期に入ったのか。とりあえずsage進行で。
544デフォルトの名無しさん:05/03/14 23:39:14
もしかしてMF?
545デフォルトの名無しさん:05/03/15 00:24:53
しもんきん 陛下 めどい おちんちんランド 必殺仕事人 ゆめりあ 曙 赤提灯 メイデン系(水銀燈、雛苺、水銀灯… くそみそ、オンドゥル ガンダム ディアッカ 二次裏 マジか ちょいあ 双葉
うほっ 性欲を持て余す 痔悪化、ウホ・・・ 虹裏 仮面ライダー E&E タートルズ img 種 沙耶 としあき プリキュア
Me dat鯖 img鯖 「」 ふたなり ふたば 双葉 わはー むすー ちょいあー 足コキ みさくら 戦隊 やらせて ハリケンジャー
響鬼 アスラン アムロ サスケ ハットリくん スリーサイズ教えて 赤影 下乳 富野 生きろっ リュミーン
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!  童貞 クリボー スパイダーマン ブレイド アージュ最高
誰このじじぃ すっちゃ フェラ 泣くな シャア 若本 通常のザクの3倍 いまか 無職童貞 もう寝なさい  アッガイ ハロワ
ニート 東京プリン キリコ デスノート 中の人 ダディ 剣山尖った NARUTO マリオ ルイージ 添い寝 俺の嫁
スネーク 生きろ GJ ハァハァ マクロス おちんちんランド ドラえもん ホリえもん ライブドア DS PSP ひどい
エヴァ エヴァンゲリオン  2k イデオン 性欲をもてあます 好きだ ユーゼス もへっ orz 若本規夫にも反応したよ
バストは何cm?スパロボ 泣かないで ララァは私のお母さんになった人かもしれんのだ ハンター×ハンター ジオンの残光 キモい
萌え 結婚して シャア 姫さま 月姫 ジオング 緑はいらない子 ゼノサーガ ピッタン♪ ガトー ギレン 好きだ 好き
ソニー ガンキャノン リンファ H ジョジョ 特攻野郎Aチーム マツケンサンバ マツケン けばい カミーユ ジュドー ウッソ

546デフォルトの名無しさん:05/03/15 00:29:16
むーん氏降臨か?
547デフォルトの名無しさん:05/03/15 01:24:33
↓これ、縁起悪いから名前変えた方がいいと思う。
http://raa.ruby-lang.org/project/muravey-web/
548デフォルトの名無しさん:05/03/15 20:27:45
ruby on rails をインストールしました。インストールはすんなりいきましたが、
activerecordのテストをしようとして、
http://jp.rubyist.net/magazine/?0004-RubyOnRails
の ruby -I "connections/native_mysql" base_test.rb
を実行したら以下のようなエラーになりました。
何が駄目?
./../lib/active_record/base.rb:212:
uninitialized constant ActiveRecord::Base::ClassInheritableAttributes (NameError)
549デフォルトの名無しさん:05/03/15 21:42:07
ルヴィって読むのな。なぜか自分でも分からんがラヴィって読んでたよ。
550デフォルトの名無しさん:05/03/15 22:01:43
ルビーだが?
551デフォルトの名無しさん:05/03/15 22:27:07
ルゥビだが?
552デフォルトの名無しさん:05/03/16 00:31:43
Rubyの読み方決定戦が、始まる・・・!
553デフォルトの名無しさん:05/03/16 01:14:15
>>548
RoR 関係のライブラリはバージョンアップが激しいので
4号のプログラムは最新版では動かないんじゃないかな。
こっちじゃだめ?
http://jp.rubyist.net/magazine/?0005-RubyOnRails
554デフォルトの名無しさん:05/03/16 01:25:05
  ∩∩⌒ヽ∩
  (゚x゚)((ノ))ソ         | |
  ソ从i|゚ ヮ゚从 < 天罰!  | |  ドガッ
.    ⊂).合f )         人
.    Zくんl,/         <  >__Λ∩
      し//      // V`Д´)/ >>549
       //             /
.    Z//Z 彡
    (。x。)
    U U
555デフォルトの名無しさん:05/03/16 02:15:28
http://www.yamdas.org/column/technique/wikiphiliaj.html

ドキュメンテーションという雑用に直面した際、最近 Wiki 病に感染した人の典型的な抗弁は、
「おい! そのドキュメント Wiki に置こうよ!それがクールだって!」である。そうして Wiki の
インストール作業が、面白くないドキュメント作成作業を先延ばしにする手になるわけだ。
556デフォルトの名無しさん:05/03/16 09:44:48
>>555
そのページの主張は、至極もっともだと思うけれども
「楽しいからWikiを使う」という観点が抜けているのが気になる。
557デフォルトの名無しさん:05/03/16 15:09:05
Rubyの場合はドキュメント書きたくないってことだからな。
ツールは関係ない。
558デフォルトの名無しさん:05/03/17 01:30:33
Rubyのドキュメント?
PickAxeサイトとrdocがあるじゃん
あれで十分だよ
英語読めないやつはなでしこでも使ってろ
559デフォルトの名無しさん:05/03/17 02:17:55
>PickAxe
王道編ですな。邦訳本があるがな。
560デフォルトの名無しさん:05/03/18 11:09:31
>>553
どうもgemのインストールの仕方か使い方が間違っていたようで、
gemを使わずにインストールしたらあのエラーは出なくなりました。
561デフォルトの名無しさん:05/03/18 20:43:00
WEBrick::HTTPProxyServer を使っているのですが、
* ある特定の URL なら本物のサーバにアクセスせずに別のコンテンツを返す
* URL に応じて上流のプロキシサーバを変える
といったことはできるでしょうか?

ProxyContentHandler より前に handler hook があると良さそうなんですけど。

あと、コンテンツがでかいと危険な気がしなくもないんですが、これは気のせいですね。
562デフォルトの名無しさん:05/03/18 23:07:10
ところで、RAAにgonzuiを採用して、RAAに登録されてるコードを
検索できるようにするという話はないの?
563デフォルトの名無しさん:05/03/19 12:37:33
>>562
そういう発想は出てこないようなんだよねえ。やってもらえるとありがたいんだけど。
CPANにすらあるのに。
564デフォルトの名無しさん:05/03/19 12:58:03
せっかくのアーカイブも勿体ないよね・・・。
565デフォルトの名無しさん:05/03/19 13:41:41
ってかRAAに使うっていうのはgonzuiのようなものなら絶好のアピールでしょ。
bladeのコードを出せ出せというのが時々あるのを見ればわかる。
しょぼかったときはしょぼさ加減もアピールされてしまうけどさ。
566デフォルトの名無しさん:05/03/19 15:18:41
未踏縛りとかあるんかねえ?
あと今のところバージョナップ毎に db 作り直さなきゃいけないとかがちょっと。

つーか、誰か自分の鯖持ってるひとが試験的に上げてみるとかはないの?
567デフォルトの名無しさん:05/03/19 15:59:48
単純にまだベータ版だからじゃないの
568デフォルトの名無しさん:05/03/19 16:37:07
>>567
いいわけだろ。
少しは見習え。
http://cpansearch.bulknews.net/
569デフォルトの名無しさん:05/03/19 20:19:00
>>568
Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /.
Reason: Could not connect to remote machine: Connection refused

とか出てるよ?だからまだやめといた方がいいんじゃね?
570デフォルトの名無しさん:05/03/19 22:02:52
>>565
そう思うなら自分でやったら。
プログラムより先に言葉が出てくるのは老化の証拠だ。
571デフォルトの名無しさん:05/03/19 22:19:13
はあ?
572デフォルトの名無しさん:05/03/19 23:43:21
MoonWolfがまだ生きていたら同じことを言うだろうなぁ。
(死んでません)
573デフォルトの名無しさん:05/03/19 23:50:15
つか、リソースは確保できるのか?
CPANと違って専用のダウンロードサイトすら用意されていないわけだが。
574デフォルトの名無しさん:05/03/20 00:22:03
馬鹿な質問だったらごめん。
CPANとかRAAとかでgonzui使ってなにか嬉しいことあるの?

ある特定のプロジェクト内でソースコード検索したくなる理由はわかるんだけど、
こういうプロジェクト集めましたってところで
READMEとかだけでなく敢えてソースコード全体の検索をする理由がよくわからない。

従来の検索をなくすわけでないなら、あって困ることはないだろうけどね。
575デフォルトの名無しさん:05/03/20 00:33:26
例えばあるクラスの使い方がわからない時に検索。
そのクラスを実際に使ってるコードが見つかる。
576デフォルトの名無しさん:05/03/20 00:39:11
>>575
それすごくいいなあ
577デフォルトの名無しさん:05/03/20 00:46:15
>>574
リファレンスが糞な事を言い訳できる効果があります
578574:05/03/20 03:44:50
つまりCPANやRAAをサンプルプログラム集として使うってこと?
579デフォルトの名無しさん:05/03/20 03:46:20
>>578
こういうやつって必ずいるよな。
580デフォルトの名無しさん:05/03/20 05:11:21
http://moulon.inra.fr/ruby/bdb.html
これのインストールってどうやるんですか?

マシンには Berkeley DB 4.2 が入っているのですけど、REAdMEに書いてあるとおりのコマンドを打つと、
127で途中で終了してしまいます。
581デフォルトの名無しさん:05/03/20 10:39:48
>>561
HTTPProxyServer は HTTPServer のサブクラスなんで
WEBrick::HTTPServer の :RequestCallback が使えると思います。
582デフォルトの名無しさん:05/03/20 11:05:39
>>580
エラーメッセージをコピペすれ。
583デフォルトの名無しさん:05/03/20 18:24:25
>>580
rubyってcvs head?
だとしたらruby extconf.rbで常にえらーメッセージが出るように
なっているんだよねぇ。面倒だから報告してないけど。
それかな?
584デフォルトの名無しさん:05/03/20 23:01:48
>>583
ムカつくextconf.rbだな。
別ディレクトリでコンパイルできんじゃないか。

--- bdb-0.5.4/extconf.rb.orig2004-12-30 19:10:31.000000000 +0900
+++ bdb-0.5.4/extconf.rb2005-03-20 22:57:46.000000000 +0900
@@ -15,6 +15,6 @@
end

-subdirs = Dir["*"].select do |subdir|
- /\Abdbxml/ !~ subdir && File.file?(subdir + "/extconf.rb")
+subdirs = Dir.entries($srcdir).select do |subdir|
+ /\Abdbxml/ !~ subdir && /\A\./ !~ subdir && File.file?(File.join($srcdir, subdir, "extconf.rb"))
end

@@ -60,8 +60,9 @@
test: $(DLLIB)
EOF
- Dir.foreach('tests') do |x|
+ Dir.foreach(testdir = $srcdir + '/tests') do |x|
next if /^\./ =~ x || /(_\.rb|~)$/ =~ x
+ x = File.join(testdir, x)
next if FileTest.directory?(x)
- make.print "\t-#{CONFIG['RUBY_INSTALL_NAME']} tests/#{x}\n"
+ make.print "\t-#{CONFIG['RUBY_INSTALL_NAME']} -C \"$(srcdir)\" tests/#{x}\n"
end
ensure
585デフォルトの名無しさん:05/03/20 23:02:09
@@ -71,6 +72,14 @@
subdirs.each do |subdir|
STDERR.puts("#{$0}: Entering directory `#{subdir}'")
+ Dir.mkdir(subdir) unless File.directory?(subdir)
Dir.chdir(subdir)
- system("#{CONFIG['RUBY_INSTALL_NAME']} extconf.rb " + ARGV.join(" "))
+ if $srcdir == '.'
+ srcdir = ''
+ elsif (srcdir = File.expand_path($srcdir)) == $srcdir
+ srcdir = "#{$srcdir}/#{subdir}/"
+ else
+ srcdir = "../#{$srcdir}/#{subdir}/"
+ end
+ system("#{CONFIG['RUBY_INSTALL_NAME']} #{srcdir}extconf.rb " + ARGV.join(" "))
Dir.chdir("..")
STDERR.puts("#{$0}: Leaving directory `#{subdir}'")
586デフォルトの名無しさん:05/03/21 00:33:41
>>583
> rubyってcvs head?
ruby 1.9.0 (2005-02-16) [i686-linux]

> だとしたらruby extconf.rbで常にえらーメッセージが出るように
> なっているんだよねぇ。面倒だから報告してないけど。
> それかな?

そうかもです。

一応、ログはこんな感じです。

extconf.rb: Entering directory `src'
checking for db_version() in -ldb-4.3... no
checking for db_version_4003() in -ldb-4.3... no
checking for db_version() in -ldb43... no
checking for db_version_4003() in -ldb43... no
checking for db_version() in -ldb-4.2... yes
creating Makefile
extconf.rb: Leaving directory `src'
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
587デフォルトの名無しさん:05/03/21 00:35:45
src/mkmf.logの最後の個所
--------------------

have_library: checking for db_version() in -ldb-4.2... -------------------- yes

"gcc -o conftest -I/usr/lib/ruby/1.8/i686-linux -I/usr/lib/ruby/1.8/i686-linux -I/usr/include
-O2 -march=i586 -mcpu=i686 -fmessage-length=0 -Wall -Wall -fno-strict-aliasing -fPIC conftest.c -L"/usr/lib" -L"/usr/lib"
-lruby-static -ldb-4.2 -ldl -lcrypt -lm -lc"
conftest.c: In function `t':
conftest.c:4: warning: implicit declaration of function `db_version'
checked program was:
/* begin */

/*top*/
int main() { return 0; }
int t() { db_version(); return 0; }
/* end */

--------------------
これでmkmf.logは終了
588デフォルトの名無しさん:2005/03/21 03:46:13(月)
>>586
それだね。
Makefileはちゃんとできているから気にせずmakeするべし。
589デフォルトの名無しさん:2005/03/26(土) 22:49:35
590デフォルトの名無しさん:2005/03/26(土) 23:25:48
>>589はやまださんなのかな?











gonzuiマジデキタ━━━━━━━━━━(゚∀゚)━━━━━━━━━━!!!!!




 
591デフォルトの名無しさん:2005/03/27(日) 02:09:07
Matz日記より

コードがドキュメントだ
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?CodeAsDocumentation

> 私が常々主張していること。こんなふうに書けたら、誤解されずにすむのになあ。
592デフォルトの名無しさん:2005/03/27(日) 02:57:26
> コードを補完するには、他にもドキュメントが必要なんだ

他のドキュメントはどこよ……matz
593デフォルトの名無しさん:2005/03/27(日) 09:34:53
http://localhost/test/kagemai086/html/user.cgi

CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:


C:\Inetpub\bin\ruby-1.8.2-i386-mswin32\bin\ruby.exe: No such file to load -- ubygems (LoadError)

WinXPSP2+IIS+kagemai動かすと上のエラーが出るんだけどubygemsって何者?
594デフォルトの名無しさん:2005/03/27(日) 10:16:48
-rubygems => -r ubygems
595デフォルトの名無しさん:2005/03/27(日) 10:26:23
Gonzui 採用!
とてもいいニュースだ。
596デフォルトの名無しさん:2005/03/27(日) 11:39:35
>>593
ruby -rubygems と書けるように
ubygems が rubygems の alias になってる。
597デフォルトの名無しさん:2005/03/27(日) 11:55:14
> ubygems が rubygems の alias になってる。
誰か止めろよ。
598デフォルトの名無しさん:2005/03/27(日) 12:07:10
alias つっても、require 'rubygems' してるだけの
ubygems.rb がインストールされるってことなので。
599デフォルトの名無しさん:2005/03/27(日) 12:16:42
-rubygems なんて間違った指定を救済するためだけに
うびーじぇむず なんて意味不明な名前のライブラリを用意するそのセンスが
ついていけんのよ。
自分の事しか考えていない。
600デフォルトの名無しさん:2005/03/27(日) 12:44:48
間違った指定の救済じゃなくて、
-rrubygems ではなく -rubygems と
あたかも元からあるオプションのように書けるのが目的。
601デフォルトの名無しさん:2005/03/27(日) 13:45:57
groff -man も気に入らんな
602デフォルトの名無しさん:2005/03/27(日) 13:50:30
> あたかも元からあるオプションのように
見えんよ。元からあるなら --rubygems のはずだろ。
603デフォルトの名無しさん:2005/03/27(日) 13:53:16
ハイフンなんて1個でも2個でも変わらん、オプションの長短の区別なんて気にしない、
というそのセンスが、ついていけんのよ。
そのへんに転がってるやくたいもないツールならそれでも構わんが、rubyは言語だぞ?
OSとアプリケーションを支えるインフラなんだぞ?
604デフォルトの名無しさん:2005/03/27(日) 14:51:07
俺もその辺は姑息な対応してるなと思う。
605デフォルトの名無しさん:2005/03/27(日) 14:59:33
このスレに >>601 がわかる香具師がまるでいない罠。
606デフォルトの名無しさん:2005/03/27(日) 15:09:45
ていうかun.rbは?
607デフォルトの名無しさん:2005/03/27(日) 15:18:16
個人的には groff -man みたいな UNIX 的なセンスに馴染みがあるので、
-r ubygems は割とすんなり受け入れられるんだけども。
オプション指定時の「-rubygems」のわかりやすさと、
エラー発生時の「No such file to load -- ubygems」のわかりにくさで、
トレードオフの問題なのかなあ。
608デフォルトの名無しさん:2005/03/27(日) 15:21:08
roffなんて1960年代、まだメモリがビットいくらだった時代の産物だぞ。
んな昔の慣習を真似すんなよ。そういうのが良いと思ってるんなら別だが。
609デフォルトの名無しさん:2005/03/27(日) 15:32:06
64 名前:デフォルトの名無しさん[sage] 投稿日:2005/03/27(日) 09:36:05
http://raa.ruby-lang.org/gonzui/


65 名前:デフォルトの名無しさん[sage] 投稿日:2005/03/27(日) 13:36:52
>>64
日本語が化けてる。
610デフォルトの名無しさん:2005/03/27(日) 15:38:52
611デフォルトの名無しさん:2005/03/27(日) 17:11:14
>>608
そういうのが良いと思ってるからやっているわけだが?
612デフォルトの名無しさん:2005/03/27(日) 17:26:45
明示的でないエラーを返すコンベンション。センス悪いよ。
613デフォルトの名無しさん:2005/03/27(日) 22:24:56
gcc -libertyのibertyライブラリとかもあるね。

gem作ってるやつらのセンスが悪いのは
もっと他のところで責められるべきだと思う。
614デフォルトの名無しさん:2005/03/29(火) 21:41:16
現在勉強中なのですが、良いone-liner集みたいなページありますか?
615デフォルトの名無しさん:2005/03/29(火) 23:35:43
>>614
勉強中ならone-linerではない普通のプログラムで勉強したら?
616デフォルトの名無しさん:2005/03/29(火) 23:58:47
うるせーヴォケ
617デフォルトの名無しさん:2005/03/30(水) 00:05:41
>615
614は「one-liner」の勉強中に500ルピー。
618デフォルトの名無しさん:2005/03/30(水) 00:41:00
Windowsでhtmlファイルをデフォルトに指定されているブラウザーから開くにはどうすればできますか?
619デフォルトの名無しさん:2005/03/30(水) 00:46:00
>>618
Win32APIをrequireして、ShellExecuteを呼ぶとか
620619:2005/03/30(水) 01:05:58
むー、タブブラウザに関連づけしているはずなのにIEで開いてしまうな・・・
require 'Win32API'
SW_SHOW = 5
def shell_execute_open(file = nil, parameters = nil, directory = nil, showcmd = SW_SHOW)
  shell_exec = Win32API.new('shell32', 'ShellExecute', %w(p p p p p i), 'i')
  shell_exec.call(nil, 'open', file.to_s, parameters.to_s, directory.to_s, showcmd)
end

shell_execute_open("./index.html")
621614:2005/03/30(水) 01:14:57
>>615
616は私ではないです。
言葉足らずで申し訳ないです。Cでは大袈裟な規模のものはシェルスクリプトとかで
書くんですが、Rubyも面白そうなので始めてみようかとした際に、普段gawkなんかで
書いてる一行処理がRubyでもっとエレガントに書けるのかなと思ったのです。
そこでそういった「Ruby小技集」みたいのないかなー、と・・・
ひょっとすると、one-linerってこういう意味ではないのでしょうか?
622デフォルトの名無しさん:2005/03/30(水) 03:26:19
>>620
'open'を0だかnilにしてみたら。
623デフォルトの名無しさん:2005/03/30(水) 11:14:54
>>621
いや、そういう意味でいいと思うよ、one-linerは。

でも、one-linerは、俳句みたいなもので、世界全体を一瞬で切り取った上で
その真髄だけを一編にまとめる芸術なわけだから、世界全体を把握する能力が
ないとちんぷんかんぷんになる。
きっと>>615が言ってるのはそういうことだろう。

で、one-linerを集めたページだけど、見当たらないんだよなあ、これが。
もちろん、いろんなページでone-linerを見かけたりはするんだけどね。
The RWikiあたりで探してみるのはどうかな。
624621=614:2005/03/30(水) 13:56:13
>>623
なるほど、理解致しました。単なる実用以上の「内匠の術」というニュアンスのが強いんですね。
RWikiを覗きつつ、通常技を修行して腕を磨くこととします。
お返事ありがとうございました
625デフォルトの名無しさん:2005/03/30(水) 15:54:37
>>624
いやー、単なる実用のやっつけ仕事であることも多いんだけどね。
ただ、短いから簡単ということはなくて、短いからこそ高度な技であることも
多いよ、ということでひとつ。
626デフォルトの名無しさん:2005/03/30(水) 17:25:28
もうだめぽ・・ SAKURAのコントロールパネルなんだけども
これでログイン出来ないのは何が悪いのか教えてぽorz
SSLじゃない普通のPOSTでクッキー使ったセッションのログイン(hikiの管理ページとか)は出来てるのに・・
これで二日くらいつぶれてるぽorz

$KCODE = 'e'
require 'http-access2'
require 'cgi'
id = ""
pw = ""
h = HTTPAccess2::Client.new
h.set_cookie_store("cookie.dat")
h.ssl_config.set_trust_ca('verisign-all.pem')
h.ssl_config.verify_depth = 4
uri = "https://secure.sakura.ad.jp/member/"
q = {}
q['id'] = CGI::escape(id)
q['pw'] = CGI::escape(pw)
q['level'] = '3'
q['url'] = ''
res = ""
res = h.post(uri, q)
h.save_cookie_store

print res.header.dump
print "===\n"
print res.body.content
627デフォルトの名無しさん:2005/03/30(水) 20:22:40
>>626 調べてやるからIDとパスワードよろ。

まあ、あれだ。出来ないことはやらない、でよくね?
そんな事で2日もつぶしてるってことは、
別にスクリプトで回さなきゃいけないほど忙がしいわけじゃないんだろ。
手作業でやりゃいいじゃん。
628626:2005/03/31(木) 02:32:58
>>627
ようするに、DDNSのIP設定ツールのような感じで
SAKURAで管理しているgTLDのサブドメインに自宅設定したいんだよね
ゾーン設定を自動でやるためにログインが必要なんだけど
ログインフォームにPOSTしてもまたログインフォームが出てくるorz

ブラウザでログインしたクッキーを使って自前でcookie.datをでっち上げてやれば
一応先に進むことは出来るんだけど、それじゃなぁ・・・orz
629デフォルトの名無しさん:2005/03/31(木) 21:45:15
REXMLでDOMプログラミングしようとしたんだけど、REXMLってDOMじゃなくない?
630デフォルトの名無しさん:2005/03/31(木) 21:56:40
>>629
そもそも REXML が DOM って誰が言ってるの?
631デフォルトの名無しさん:2005/03/31(木) 22:55:31
ドム>>>>>>>>>>グフ>>>>>>>ザク
Ω「ああっ、俺を踏み台(ry」 Ω「ザクとは違(ry」 Ω「連邦の(ry」
632デフォルトの名無しさん:皇紀2665/04/01(金) 08:57:39
RubyOnRails の記事、今回が一番役に立った。
633デフォルトの名無しさん:皇紀2665/04/01(金) 14:50:08
近所のドムドムは数年前にウェンディーズに変わってますが、何か?
634デフォルトの名無しさん:皇紀2665/04/01(金) 15:04:06
今日 cvs update してみたら、なんか面白そうなのがいろいろ追加されてた。
635デフォルトの名無しさん:2005/04/02(土) 17:30:29
Cのincludeみたいにファイルを分割する方法と取り込む方法を
教えてください!!
636デフォルトの名無しさん:2005/04/02(土) 17:34:53
教えてください!!
637デフォルトの名無しさん:2005/04/02(土) 17:44:57
open(file, "r"){|f|
f.each{|x|
exec(x)
}
}
638 ◆m7YeytgDFE :2005/04/02(土) 18:25:37
>>635
requireとかloadとか?
639デフォルトの名無しさん:2005/04/03(日) 05:26:18
配列のイテレータのなかで、その配列自体にプッシュしつつ、
その付け加えられた要素も評価してみました。

p ar = [1,2,3]
ar.each{ |i|
if i==2 then ar << 4 end
if i==4 then ar << 5 end
}
p ar

ここで each や collect/map を使うと ar = [1,2,3,4,5] となり
collect!/map! では、配列が変になってしまいました。
非破壊/破壊的メソッドとして、こうした挙動でいいのでしょうか?
640デフォルトの名無しさん:2005/04/03(日) 05:36:59
あんたcollect!/map!の意味わかってるか?
ar.map! { |i|
if i == 2 then ar << 4 end
if i == 4 then ar << 5 end
i
}
なら期待通りになると思うよ。
641639:2005/04/03(日) 05:49:12
>>640 さん
あっ、そうか。
返す値が、要素を置き換えるかどうか、の話なんですね。
勉強になりました。感謝。
642デフォルトの名無しさん:2005/04/03(日) 15:06:56
長いURLをコンパクトにしてくれるサービス
http://www.rubyurl.com/
643デフォルトの名無しさん:2005/04/03(日) 15:28:37
2chで嫌な使い方されそうなサービスだな・・・
644デフォルトの名無しさん:2005/04/03(日) 17:24:41
オリジナルの http://tinyurl.com/ をお忘れなく。
まあ、Rubyスレだからrubyurlでいいんだけどな。
645デフォルトの名無しさん:2005/04/03(日) 18:56:01
サービス自体はともかくとして、
RoR を使って小一時間で作ったというのが言及すべきとこだろう。
http://www.robbyonrails.com/articles/read/7
646デフォルトの名無しさん:2005/04/03(日) 23:26:09
みんな開発環境は何使ってるの?
Windows + xyzzy + cygwin な俺は既に負けですかね
647デフォルトの名無しさん:2005/04/03(日) 23:29:14
>>646
アリなんじゃないの。
648デフォルトの名無しさん:2005/04/03(日) 23:44:38
またアンケートの時間でつか?
Windows + xyzzy + VC++6
649デフォルトの名無しさん:2005/04/03(日) 23:50:58
主にWindows + NoEditor。Rubyは1.8.2(mswin32)
650デフォルトの名無しさん:2005/04/03(日) 23:51:57
Windows + VC7 + メモ帳 勝ち組み
651デフォルトの名無しさん:2005/04/03(日) 23:53:28
>648
RubyってVCでも開発できるの?
652デフォルトの名無しさん:2005/04/03(日) 23:58:17
>>651
mswin32版。人によってはmswince版。
653デフォルトの名無しさん:2005/04/04(月) 00:03:06
eclipse流用のひよこ組
654デフォルトの名無しさん:2005/04/04(月) 01:30:10
Debian(coLinux) + xyzzy。
RoRをDebian/sargeに入れようとしてるんだけど
Debianのrubyパッケージがごちゃごちゃしててうまく入らない。
誰かうまくいった人いるかな。
RoRもDebianのパッケージにしてくれればいいのになー。
655デフォルトの名無しさん:2005/04/04(月) 01:37:32
Windows + xyzzy + mswin (One-Click Ruby Installer上書き)
rubyでできたエディタ欲しいなぁ。
xyzzyはソース無いからいじくれないし……

656デフォルトの名無しさん:2005/04/04(月) 01:42:54
>654
gemは使えないの?
657デフォルトの名無しさん:2005/04/04(月) 02:15:09
>>655
> xyzzyはソース無いからいじくれないし……
釣りか?ソースあるっつーの。
http://www.jsdlab.co.jp/~kamei/(T^T)/src-0.2.2.234.tar.bz2
658デフォルトの名無しさん:2005/04/04(月) 02:18:37
>>651
プロジェクト管理・ソース管理・ソース編集にVisualStudio使うのは普通にできるよ。
実行は標準入力がないものなら外部ツールとして実行して出力結果を下のペインに出せるし
標準入力が必要なら外部ツールとしてコマンドプロンプトで実行もできる。
659デフォルトの名無しさん:2005/04/04(月) 02:25:01
>657
絶対わからんよ……
あと、ライセンスがどうなっているのかわからんから、何にもできないね。
#怖いのでろくにソース読んでないけど
660デフォルトの名無しさん:2005/04/04(月) 04:13:53
rubyを組み込んだエディタということなら、vimもあるしなあ。
661デフォルトの名無しさん:2005/04/04(月) 04:19:23
xyzzyのソースのURLって直接貼るのは遠慮してほしいなーと言ってたような。
662デフォルトの名無しさん:2005/04/04(月) 04:39:19
エディタとか以前に、安定してて普及しててそれなりにサポートされてて
windowsで動いてrubyらしく使えるGUIライブラリを切望。
663デフォルトの名無しさん:2005/04/04(月) 04:43:48
作者によると、迎合するくらいなら人気なくてもいいらしいな
664デフォルトの名無しさん:2005/04/04(月) 07:06:22
rubyで統合GUIってだけでIPA採択されそうだな
665デフォルトの名無しさん:2005/04/04(月) 07:10:25
金はもらうが、例によってマニュアルはなしだな
666デフォルトの名無しさん:2005/04/04(月) 12:18:52
>>654
apt-get install rails

でダメ? sid ならこれで入るけど……。
667デフォルトの名無しさん:2005/04/04(月) 12:24:54
FreeBSD ports に rails まだー?
668デフォルトの名無しさん:2005/04/04(月) 13:19:45
>667
http://wiki.rubyonrails.com/rails/show/RailsOnFreeBSD

RUN_DEPEND= devel/ruby-gems
してscripts以下で
/usr/local/bin/gem --force install rails
でもするports書けばいいんじゃねぇの?
669デフォルトの名無しさん:2005/04/04(月) 14:18:28
>>668
pkg_delete で問題にならない? ports の作り方わかんないのでそのへんが心配で。
670デフォルトの名無しさん:2005/04/04(月) 15:13:35
FedoraCore3の開発ツールのデフォルトの設定で
Rubyのチェックがはずされている件について
671デフォルトの名無しさん:2005/04/04(月) 15:16:16
>pkg_delete で問題にならない?
scriptでgem -deleteすればいいんじゃない。
672デフォルトの名無しさん:2005/04/04(月) 16:24:04
>>671
むむ、 script がよくわかってないです。
port の作り方を勉強して出直して来ます。
673デフォルトの名無しさん:2005/04/04(月) 19:42:01
普通に
portinstall devel/ruby-gems
gem install rails
でいいんでないの?
674デフォルトの名無しさん:2005/04/04(月) 20:44:24
railsとはどんなものなのか1行から3行程度で説明してくさい
675デフォルトの名無しさん:2005/04/04(月) 21:06:47
線路です。
676デフォルトの名無しさん:2005/04/04(月) 21:14:48
いじわるね
677デフォルトの名無しさん:2005/04/04(月) 23:49:09
「Webアプリのめんどくさいことを抽象化しました」

678デフォルトの名無しさん:2005/04/05(火) 15:39:47
使えないけどとりあえずクラスにしてみました
679デフォルトの名無しさん:2005/04/05(火) 23:14:10
お前の尺度で考えたらあかんよ
680デフォルトの名無しさん:2005/04/06(水) 23:13:51
matz氏の言うmethod_missingプログラムと、
KernelをincludeしないObjectクラスを作ることって、
直接的に関係あります??

そんなクラス作ったからって、method_missingプログラムがやりやすくなるのかなぁ。

誰か教えて。
681デフォルトの名無しさん:2005/04/07(木) 00:19:48
>680
例えば、『equal?というメソッドを呼び出したときもmethod_missingを
実行したい』とかを考えてみればよろし。
Objectを使用すると、すでに定義済のメソッドをさらにoverrideしなきゃ
いかんから面倒なんでしょ。

#たかがそれだけ、と言えるかもしれんが……
682デフォルトの名無しさん:2005/04/07(木) 00:28:12
683デフォルトの名無しさん:2005/04/07(木) 01:18:24
おまいらも、Objectの上のクラスの名前を考えてみませんか?
ttp://www.rubyist.net/~matz/20050406.html#p02

684デフォルトの名無しさん:2005/04/07(木) 01:53:30
>>683
A
Core
Primitive
685デフォルトの名無しさん:2005/04/07(木) 07:47:20
>>683
ものすごい勢いで世界中からツッコミが入っている件について
686デフォルトの名無しさん:2005/04/07(木) 08:38:46
Kernelで定義済みのメソッドを取り消すモジュール作れば良いんじゃないの?
687デフォルトの名無しさん:2005/04/07(木) 10:46:28
>>662
WindowsだけでいいならApollo使え
688デフォルトの名無しさん:2005/04/07(木) 12:40:41
Delphi嫌いだからRuby始めたのに・・・
689デフォルトの名無しさん:2005/04/07(木) 13:27:18
指定したディレクトリ以下のサブディレクトリを巡回するのってどうすればいいですか?
690デフォルトの名無しさん:2005/04/07(木) 13:37:08
再帰
691デフォルトの名無しさん:2005/04/07(木) 14:09:41
find.rb
692デフォルトの名無しさん:2005/04/07(木) 14:51:20
巡回もなにも、Dir.glob('n/**/*') { |f| } でいいじゃん
693デフォルトの名無しさん:2005/04/07(木) 17:47:52
"Vanilla" つーのはどのへん由来なの?
694デフォルトの名無しさん:2005/04/07(木) 19:22:55
> vanilla [アメリカにおけるアイスクリームのデフォルト風味から]
> adj. 通常の風味(flavor)の。標準の。
『ハッカーズ大辞典』より。

「何も入ってない」とか「いろんな物を付け加ける前の状態」いう意味で
よく使われる気がする

695デフォルトの名無しさん:2005/04/07(木) 19:44:39
>>694
おお、サンクス。 Jargon に載ってたのね。
真っ先に調べろよ。>自分
696デフォルトの名無しさん:2005/04/07(木) 19:45:09
naidbs
697デフォルトの名無しさん:2005/04/07(木) 20:23:00
>>696
思いついても投稿するほどのものではない、とだいたいの奴がすぐにやめる一例
698デフォルトの名無しさん:2005/04/07(木) 21:29:02
Vanilla はたぶん Flavor からだろう。
Flavor は Lisp の一種で、Mix-in を最初に実装した言語。
そのルートクラスが Vanilla
699デフォルトの名無しさん:2005/04/07(木) 21:59:27
JoJoか?
700デフォルトの名無しさん:2005/04/07(木) 22:26:04
誰か「太一」の英訳をcontributeしてくれまいか
一単語にならんかな?
701デフォルトの名無しさん:2005/04/07(木) 23:25:09
Big One
702デフォルトの名無しさん:2005/04/08(金) 00:09:54
DAO
703デフォルトの名無しさん:2005/04/08(金) 13:48:14
ttp://shugo.net/jit/20050403.html#p01
/usr/local/bin/project-name ってどんなコマンドなんだろ?
かなり欲しい。
704デフォルトの名無しさん:2005/04/08(金) 13:55:04
705デフォルトの名無しさん:2005/04/08(金) 14:21:16
なんとなくそんな予感がしてたけど akr さんのでしたか。
706デフォルトの名無しさん:2005/04/08(金) 15:20:09
>>704みたいに即レスしてる人はこのスレずっと見張ってるの?
707デフォルトの名無しさん:2005/04/08(金) 15:22:54
このスレに住んでいる妖精さんです
708デフォルトの名無しさん:2005/04/08(金) 15:49:28
>>707
妖精さん乙
709デフォルトの名無しさん:2005/04/08(金) 15:50:45
project-name project-name
すればわかるよ!

と書こうと思ったのに、そんな風に即レスされると書けないじゃないか!
710デフォルトの名無しさん:2005/04/09(土) 06:11:26
鼻よりruby
711デフォルトの名無しさん:2005/04/10(日) 01:12:01
今魔法言語ルビま!のページ見に行ったらPythonのエラーが出てるんだけどこれは何かのギャグですか?
ttp://jp.rubyist.net/RubiMa/
712デフォルトの名無しさん:2005/04/10(日) 01:31:57
>711
誰も突っ込まなかったけど、MoinMoin使っているんだよね……
713デフォルトの名無しさん:2005/04/10(日) 02:15:47
Planet Ruby on Railsキタ━━━━(゚∀゚)━━━━!!
http://www.planetrubyonrails.org/
714デフォルトの名無しさん:2005/04/10(日) 03:28:36
>>276
亀レスだが、イイ方法思いついたので書いてみる。
#1.6とかの古いRubyだと動かないので注意。

def foo(ary, n=2)
Array.new(ary.size/n){
Array.new(n){ ary.shift }
}
end
p(foo([0,1,2,3,4,5])) #=> [[0,1],[2,3],[4,5]]
p(foo([0,1,2,3,4,5],3)) #=> [[0,1,2],[3,4,5]]
715デフォルトの名無しさん:2005/04/10(日) 03:39:52
RUBYYYYYYYYYYYYYYYYYYYYYY
716デフォルトの名無しさん:2005/04/10(日) 06:01:39
ここで聞いていいのかわからないけど、
RSSをメールで送信するようなサンプルってどこかに無いですか?
探してみたけどPerlのしか見つからない…
717デフォルトの名無しさん:2005/04/10(日) 14:44:11
718デフォルトの名無しさん:2005/04/11(月) 19:31:47
IDF Japan:PDA感覚で素早くオン/オフできる小型XP機が登場
ttp://nikkeibp.jp/wcs/leaf/CID/onair/jp/comp/369370
米Intel Corp.は、WindowsXPを搭載できる小型パソコンの試作機「Ruby」を公開した
719デフォルトの名無しさん:2005/04/11(月) 23:23:47
うわー……
Rubyって商標とか取ってなかったっけ?
後出しのIntelからいちゃもん付けられそうで嫌だなぁ……
720 ◆m7YeytgDFE :2005/04/12(火) 00:02:08
>>719
ソフトウェアとハードウェアだと分野(?)が違うから、とか?
複数の分野で取ってるんですかね?
721デフォルトの名無しさん:2005/04/12(火) 00:02:26
たぶんIntelの嫌がらせ
722デフォルトの名無しさん:2005/04/12(火) 00:24:36
うわー……
Rubyで商標取れるわけないだろ……
723デフォルトの名無しさん:2005/04/12(火) 00:43:02
多くの分野に渡って商標を取る事はできるけど、
「Ruby」の場合普通名詞だし、他分野に対する商標は無理じゃないのか?
つうか、IntelがRubyって名前を使っても別にデメリットは無いだろ。
Intelが大ゴケして「Ruby」って名前にネガティブイメージが付かない限りw
724デフォルトの名無しさん:2005/04/12(火) 01:45:53
君のような人を見ると、近年の中学生の語学力低下は本当に目に余るものがあると思うようになりますね。

あと君。自分でスレチガイだから終了だの、あいてもスレチガイだから終了だのほざいておきながら
やっぱり終了せずに書くのは何故なのかね。
あれかね、反論されると悔しいから、最後に発言するのは自分じゃないと気がすまないタイプの人なのかね。(苦笑

ああ、図星を指されたからといって「お前だってそうだろ」的な小学生の水掛け論みたいな返答はよこさなくて
いいです。それこそ馬鹿馬鹿しいですからw
725デフォルトの名無しさん:2005/04/12(火) 06:20:56
まあ「窓」をあらわす普通名詞の複数形は商標とれるんだけどね。
726デフォルトの名無しさん:2005/04/12(火) 09:48:45
Word という名前には震撼した
727デフォルトの名無しさん:2005/04/12(火) 12:14:27
ヲタってこういううんこみたいなネタが大好きだよね
728デフォルトの名無しさん:2005/04/12(火) 15:40:53
企業の基幹部分を担う開発部門にとって、重要なプロジェクト
にも安心して使える言語はわずかしかない。C#とJavaとXML
とSQL、他にもう1〜2の言語だけというのが一般的だ。この点
で言えば、従来、Pythonは「テスト」もしくは「オモチャ」用の
言語として一括りにされてきた。しかし、今回のカンファレンス
の講演は、しばしば、そうした評価を覆すものだった。

そうした講演の中で最も象徴的なのは、カンファレンスの冒頭
に置かれたMicrosoft Common Language Runtimeチ
ームの技術者Jim Huguninによる基調講演だろう。講演で
は、Pythonの.NET完全対応版リリース0.7が発表されただ
けでなく、Pythonに関する Microsoftのビジョンも明らか
にされた。それによると、基本的に、IronPythonプロジェクト
が完了すれば、Pythonは.NET開発で一般に使われているC#
などの言語を補足し生産性を高めるために使われるだろうと M
icrosoftは見ているという。実際、各種の講演では、一般的
な言語に比べてPythonを使えばコーディング時間が半減す
ることを示す実験や事例が紹介されていた。

Microsoftは、開発者にPythonを含むパッケージを提供し
たいと考えているようだ。.NETインフラストラクチャを補強し、
しかも従来のライブラリやデバッグ・ツールが使えるものが欲し
い。そこで目を付けたのが、使いやすく保守もしやすく、手早く
プログラミングができる言語だったのだ。
729デフォルトの名無しさん:2005/04/12(火) 16:06:04
IronPythonはShared Source Licenseになってしまったのが残念。
730デフォルトの名無しさん:2005/04/12(火) 19:59:01
コピペする時はせめて元URLくらい貼ろうぜ。
ttp://japan.linux.com/enterprise/05/04/01/0245247.shtml
731デフォルトの名無しさん:2005/04/13(水) 11:04:37
prefixはドライブレター禁止。
732デフォルトの名無しさん:2005/04/13(水) 12:56:11
コンパイルしてるところと別のドライブにインストールしたいときはどうすれば?
733デフォルトの名無しさん:2005/04/13(水) 13:02:06
matzが事あるごとにPythonを執拗に攻撃してるけど
結局世間の関心は(俺基準による)文法の完成度にはなかったって事だな。
734デフォルトの名無しさん:2005/04/13(水) 14:32:15
>>732
Makefile書き換え。
735デフォルトの名無しさん:2005/04/13(水) 14:34:21
それを理解できる脳がないから宗教なんかに入っているんだと思うよ
736デフォルトの名無しさん:2005/04/13(水) 14:36:13
宗教の話は宗教論争になるぞ
737デフォルトの名無しさん:2005/04/13(水) 14:39:15
>>734
やだもん。
738デフォルトの名無しさん:2005/04/13(水) 19:24:28
>>733
確かに「俺基準」だよなあ。
どこがきれいなのかさっぱりわからん。

特に読む方は最悪だと思う。
大規模プロジェクトではまず使えない。
739デフォルトの名無しさん:2005/04/13(水) 19:29:32
>特に読む方は最悪だと思う。
そりゃPerl.succですから。
740デフォルトの名無しさん:2005/04/13(水) 20:59:14
>>738
お前も「俺基準」でそう判断してるんだから、人のこと言えないって気付こうね。

>>733
何が「結局」なん?話が飛んでるな。大丈夫?
741デフォルトの名無しさん:2005/04/13(水) 21:18:42
松本さん、どうして2chだとそんなに口調が変わるんですか?
742デフォルトの名無しさん:2005/04/13(水) 21:28:31
ダンプ松本
743デフォルトの名無しさん:2005/04/13(水) 21:33:12
角田も見てるくらいだから、ダンプ松本も見てないとはいいきれんな。
744デフォルトの名無しさん:2005/04/13(水) 21:37:50
ダンプ松本とならセックスできる。
よって俺基準ではダンプ松本>>>>>>>Matz
745デフォルトの名無しさん:2005/04/13(水) 21:52:41
正直 >>744 を尊敬する。
漏れには無理だ。立たん。
746デフォルトの名無しさん:2005/04/13(水) 22:09:47
童貞は女ならなんでもいいと思うからねぇ。
747デフォルトの名無しさん:2005/04/13(水) 23:45:00
>>732
DESTDIR
748デフォルトの名無しさん:2005/04/14(木) 08:51:42
>>743
見てたとしても、速攻読み飛ばされてるだろうな。どうでもいいので。
749デフォルトの名無しさん:2005/04/14(木) 18:18:40
松本さん、毎日巡回ご苦労様です。
750デフォルトの名無しさん:2005/04/14(木) 19:35:32
matzが2チャンネラーってのは本人が言ってなかったっけ?
751デフォルトの名無しさん:2005/04/14(木) 20:17:06
>>731
「Postfixでラブレター禁止」
に見えた。
752デフォルトの名無しさん:2005/04/15(金) 09:52:42
PostItでラブレター禁止
753デフォルトの名無しさん:2005/04/15(金) 10:20:39
なんにせよラブレター禁止
754デフォルトの名無しさん:2005/04/15(金) 13:38:23
モジュールなどのパッケージアーカイブ作成の、最近のトレンドってなんでしょうか?
現在は setup.rb を使っているのですが、
make install 前に make test で Test::Unit するようにしようと思ったとき、
ファイル・ディレクトリ構成など、みんなふつーどうやってるのかなと思った次第。
755デフォルトの名無しさん:2005/04/15(金) 13:56:01
恋文と言え、恋文と
756デフォルトの名無しさん:2005/04/15(金) 17:20:19
「職場での繁殖行為禁止」
in 白夜書房の編集部
757デフォルトの名無しさん:2005/04/15(金) 22:38:38
RailsってTMailを含んでいるから、
ActionMailerはLGPLなんだよね?

サービスを提供するだけなら、
「今の」LGPLならソースを渡す必要性は無いんだけど、
ちょっと気になった。

教えてエロイ人。
758デフォルトの名無しさん:2005/04/16(土) 01:52:35
>>757
こっちで訊いた方がよくね?

【GPL】ライセンス問題討論すれ4【BDSL】
http://pc8.2ch.net/test/read.cgi/linux/1107439063/

ていうか、プログラムの複製、頒布、変更以外の行為についてはGPLでも
一切の制限を課していないわけだが。
759デフォルトの名無しさん:2005/04/16(土) 03:32:09
今日はmatzさん来ないねぇ。
760デフォルトの名無しさん:2005/04/16(土) 05:48:23
スクリプトのある場所のフルパスを得るにはどうすればいいんですか?
761デフォルトの名無しさん:2005/04/16(土) 08:08:26
>>760
__FILE__ とか?
762デフォルトの名無しさん:2005/04/16(土) 09:02:50
>>754
gems
763デフォルトの名無しさん:2005/04/16(土) 11:08:53
$0
764デフォルトの名無しさん:2005/04/16(土) 12:03:29
>> 761 >> 763
少なくともcygwin上だとどちらも相対パスになってしまうんですが…
765デフォルトの名無しさん:2005/04/16(土) 12:25:21
じゃあ絶対パスに展開すればいいじゃん
766デフォルトの名無しさん:2005/04/16(土) 12:27:01
File.expand_path

__FILE__や$0は呼ばれ方に依存する。絶対パスで指定して実行すれば絶対パス
になるし、相対パスで指定して実行すれば相対パスになる。
767デフォルトの名無しさん:2005/04/16(土) 15:48:26
これRubyだと何行くらいで書けますか?
http://light.server.ne.jp/member.php
768デフォルトの名無しさん:2005/04/16(土) 17:34:42
うへ、踏んじまった。
ま、面白そうだから請求が来るのを楽しみに待つか。
769デフォルトの名無しさん:2005/04/16(土) 20:07:19
[ruby-list:40779] [ANN] Exerb 3.3.0-preview1

yuyaさん乙。ずーっと待ってました。
770デフォルトの名無しさん:2005/04/16(土) 22:29:16
gem installしたpostgresライブラリがDBIで認識されないらしく、エラーになります。
うまくいってる人いますか?
詳しく説明すると、
gem install --remote postgres
してから
require 'dbi'
dbh = DBI::connect("DBI:Pg:test", "username", "password")
すると
/usr/lib/site_ruby/1.8/dbi/dbi.rb:490:in `load_driver': is not a class/module (
TypeError)
from /usr/lib/site_ruby/1.8/dbi/dbi.rb:392:in `_get_full_driver'
from /usr/lib/site_ruby/1.8/dbi/dbi.rb:372:in `connect'
というエラーがでます。
しかしgem installではなく、ruby extconf.rb; make; make install した場合はうまく動作します。
gem installしたpostgresをDBIでも使うにはどうしたらいいのでしょうか。
771デフォルトの名無しさん:2005/04/17(日) 22:44:07
connectの引数を"DBI:Pg:test"じゃなくて"DBI:pg:test"にしてみたら?

load_driverは、最初に"DBD/#{driver_name}/#{driver_name}"をrequireして
みて、失敗したら$:を順に"DBD/#{driver_name.downcase}"というディレクト
リを探していくようだ。一方gemでインストールされたライブラリはちょっと
特殊なところに置かれるから、$:からは探せない。

ということで、おそらく最初からdowncaseしたドライバ名を使えばいいのでは
ないかと。
772デフォルトの名無しさん:2005/04/24(日) 09:22:05
-talkのあのバカ騒ぎは一体なんでつか?
773デフォルトの名無しさん:2005/04/24(日) 09:54:11
>>772
英語が読めないオレのために詳しく
774デフォルトの名無しさん:2005/04/24(日) 10:23:33
発端は[ruby-talk:136898]あたりかなぁ?
最初は「ri Classで出てくる図はおかしい」という指摘をしてたんだけど、
どっからああなったのやら。よく分からん。

metaobj = class << Object; self; end
p Object < metaobj    # => false
p metaobj === Object   # => true
p metaobj < Class     # => true

たしかに、Object---->(Object)は継承関係じゃなくてインスタンスだ、って
のはあってるんだけど。
775デフォルトの名無しさん:2005/04/24(日) 17:19:20
事情をよく理解してないけど、その挙動とあの図はどこか矛盾してる?

あと、Iliasって人は有名な熱狂的Smalltalkerか、それともただの電波?
いや、metaclassがclassのインスタンスであると認めたくないのかなと思って。
776デフォルトの名無しさん:2005/04/24(日) 17:47:11
熱狂的な電波。
777デフォルトの名無しさん:2005/04/24(日) 18:06:37
777 (*^ー゚)b
778デフォルトの名無しさん:2005/04/24(日) 20:00:33
あるライブラリhogehoge.rbがインストールされているディレクトリを調べる
779デフォルトの名無しさん:2005/04/24(日) 20:50:35
調べてください。
780デフォルトの名無しさん:2005/04/24(日) 22:24:04
>>775
> 事情をよく理解してないけど、その挙動とあの図はどこか矛盾してる?
「矢印は継承関係を表す」って書いてあるのが合ってない。だから
[ruby-talk:139216]では「縦の矢印」と書き加える、という話になってるんだ
けど。

でも「metaclassはオブジェクトじゃない」という主張は根拠も論旨もサパー
リ理解不能。
781 ◆m7YeytgDFE :2005/04/24(日) 22:50:46
>>778
"hogehoge.rb"なら下記のような方法でも。
"hogehoge.so"には対応してませんが。

> def print_library_path( file_name )
> $LOAD_PATH.each do | x |
> path = x + '/' + file_name
> puts( path ) if File.exist?( path )
> end
> end
>
> print_library_path( 'cgi.rb' )
782which.rb:2005/04/25(月) 08:15:14
#! /usr/bin/ruby

require 'English'
require 'rbconfig'

def File.absolute?(path)
 expand_path(path) == path
end

class << $:
 DLEXT = Config::CONFIG["DLEXT"]
 e = Config::CONFIG["DLEXT2"]
 DLEXTs = [DLEXT]
 unless e.empty?
  DLEXT2 = e
  DLEXTs << DLEXT2
 end
 EXTs = ['rb'] + DLEXTs
 dlexts = DLEXTs.grep(/\A(?!s?o\z)/){|e|Regexp.quote(e)}.join('|')
 DLEXT_Pattern = %r"\.(?:s?o|#{dlexts})\z"
783which.rb:2005/04/25(月) 08:15:41
 def loadable?(path, exts, all = false)
  found = []
  exts.each do |ext|
   begin
    s = File.stat(n = "#{path}.#{ext}")
    if s.file? and s.readable?
     found << n
     break unless all
    end
   rescue
    false
   end
  end
  return *found
 end

 def feature_type(lib)
  case lib
  when /\.rb\z/
   [$PREMATCH, ["rb"]]
  when DLEXT_Pattern
   [$PREMATCH, DLEXTs]
  else
   [lib, EXTs]
  end
 end
784which.rb:2005/04/25(月) 08:16:44
 def find_first(lib)
  feature, exts = feature_type(lib)
  return loadable?(feature, exts) if File.absolute?(feature)
  each do |path|
   return path if path = loadable?(File.expand_path(feature, path), exts)
  end
  nil
 end

 def find_all(lib)
  feature, exts = feature_type(lib)
  return loadable?(feature, exts, true) if File.absolute?(feature)
  list = map do |path|
   path if path = loadable?(File.expand_path(feature, path), exts, true)
  end
  list.compact!
  list unless list.empty?
 end

 def find(*libs)
  libs.collect(&method(:find_first))
 end
end
785which.rb:2005/04/25(月) 08:17:25
if __FILE__ == $0
 require 'optparse'
 cmd = :find
 opt = nil
 ARGV.options do |opt|
  opt.banner << " lib..."
  opt.on("-a", "--all") {cmd = :find_all}
  opt.parse!
 end or abort(opt)
 puts $:.send(cmd, *ARGV)
end
786デフォルトの名無しさん:2005/04/25(月) 18:43:57
787デフォルトの名無しさん:2005/04/27(水) 21:41:37
No, Thank YOU!
かっこよすぎ
788デフォルトの名無しさん:2005/04/29(金) 12:25:10
文字入れるときとか、何かというと ' シングルクォーテーション使うの、もうやめないか?
ダブルクォートのほうが見やすいんだよ
789デフォルトの名無しさん:2005/04/29(金) 12:31:30
RubyはDelphiのパクリ言語だからシングルクォートが本流なのは間違いない。
790デフォルトの名無しさん:2005/04/29(金) 12:38:16
世間の標準はダブルクォートだし、
もう世間様に合わせる社会性ある言語になると腹をくくってるんだから、
もうダブルクォートでいいんだよ
シングルクォートはその必要があるときだけ使おう
791デフォルトの名無しさん:2005/04/29(金) 13:01:22
世間の標準はPy(ry
792デフォルトの名無しさん:2005/04/29(金) 18:43:57
RubyはSmalltalkの(ry
793デフォルトの名無しさん:2005/04/30(土) 02:09:24
なんとなくbegin endと{}の話題に近いな。
794デフォルトの名無しさん:2005/05/01(日) 10:42:49
へいわだねぇ…。
~~

795デフォルトの名無しさん:2005/05/01(日) 19:11:06
すなこん
796デフォルトの名無しさん:2005/05/02(月) 01:29:31
なんか「Rubyでつくる人工無脳」って本が出てたけど、
読んだ人どう?面白かった?
797デフォルトの名無しさん:2005/05/03(火) 02:35:21
大変だ!perlという言語を使ってみたのだが
Rubyよりもめちゃくちゃ使いやすい!
こんな素晴らしい言語があったのかと感動した。
Rubyの開発者が言語のスタイルについて色々言っていたけど
それを具現化した物はRubyじゃなくて、
perlだと思えるようになってきたよ。
798デフォルトの名無しさん:2005/05/03(火) 03:15:54
そりゃだいへんだ
799デフォルトの名無しさん:2005/05/03(火) 03:24:06
>>796
人口無能には興味ないんだが一時期の関連本の出版ブームよりはよっぽど面白そうだな。
(たまたま)Rubyを使った〜本が増えればいいんだけど
Rubyでクイックソートしてみるアルゴリズム本なんて需要はないですかそうですか。
800デフォルトの名無しさん:2005/05/03(火) 06:39:45
>>796
ttp://www.kakutani.com/20050430.html#p01
>カバーが「Ruby?」となっていてステキだ。プログラムにさほど親しんでいない人向けに、
>人工無脳をつくる「手段」としてRubyを紹介。あくまでRubyも手段でしかないので、
>記述は簡潔だけれど、本文だけでなくコラムでのフォローもポイントが押さえてあって
>わかりやすい。本文にもさりげなく遊びゴコロがまぶしてあって、バランス感覚を感じる。
>単純なテキストベースのものからGUI、応答のバリエーションと続き、最後はSOAPでググる、
>という展開も自然で興味深く、オブジェクト設計についても、専門用語は一切でてこないけれど、
>SRP(単一責任原則)やOCP(開放/閉鎖原則)を満たすような誘導がしてある。素晴らしい。

絶賛だな。
801デフォルトの名無しさん:2005/05/03(火) 09:23:48
Rubyのブロックって、いわゆるクロージャだと思うのですが、
なぜクロージャと呼ばずブロックと呼ぶのでしょうか。
'{'と'}'で囲っているからといわれればそれまでなんですが、
あきらかにCやJavaのブロックとは違うし紛らわしいので、
なぜクロージャと呼ばないのか不思議です。
802デフォルトの名無しさん:2005/05/03(火) 10:13:24
>>801
smalltalk
803デフォルトの名無しさん:2005/05/03(火) 13:16:21
Rubyとは間接的にしか関係ないとは思うのですが、wema で一般の人がwema.confにアクセスできないようにするには
どう設定すればいいのでしょうか?

素のままだと、パスワードなども丸見えなので。
804デフォルトの名無しさん:2005/05/03(火) 14:25:58
ここをWWWから見えない位置にする
component/ConfigPage/ConfigPage.rb: File.open('./wema.conf','w'){|f|
lib/wemaapp.rb: File.open('wema.conf','r'){|f|
805デフォルトの名無しさん:2005/05/03(火) 21:04:00
一行にいつくかのアイテムが空白でくぎられてあるファイルの、
たとえば、第一列目を抜き出すにはどうしたらいいんでしょう?

いまは、正規表現にマッチさせて、グルーピングさせてから、参照してます。
awk 見たいに、 $1 みたいな感じな方法はないでしょうか??

一列目や最終列なら、^ や $ が使えるのでタイプ量はすくないけど、
他のところだと、タイプするのがだるい。。。
806デフォルトの名無しさん:2005/05/03(火) 21:30:52
普通に split[0] とか?
807805:2005/05/04(水) 00:34:29
そうだよね。split があるよね。
頭が腐ってる。。。もうだめだよ、ままん。

ありがとう。
808デフォルトの名無しさん:2005/05/04(水) 00:47:41
railsで使われてる、ActiveRecordって、単体でも使えるんですよね。
この場合って、データベースの設定ファイルはどこに書けばいいんでしょうか??
809808:2005/05/04(水) 01:33:39
あらら、るびまに書いてました。失礼しました。

http://jp.rubyist.net/magazine/?0004-RLR
810デフォルトの名無しさん:2005/05/04(水) 05:40:39
ttp://www.users.gr.jp/blogs/haramizu/archive/2005/05/03/13548.aspx
これって結構大きな問題の気がするんだがbladeは大丈夫なんだろうか。
というかこんなに簡単に引っ込めてしまっていいものなんだろうか
# もちろん一人にリスクを負わせたまま、ただ再開しろとはいえないが。
811デフォルトの名無しさん:2005/05/04(水) 06:44:08
単にDQN同士でちちくりあってるだけのように見えるが
812デフォルトの名無しさん:2005/05/04(水) 09:52:00
どこに blade の話題が載ってるの?
813デフォルトの名無しさん:2005/05/04(水) 09:55:28
MLのログつながりだろ。仮に裁判やっても負けるとは思えないが。
814デフォルトの名無しさん:2005/05/04(水) 10:08:28
あぁ、そういう話ですか。

というか、 ruby-* の場合、
ML 案内ページにも過去メール参照ページが紹介されてるわけですから、
ML に登録した時点でログ公開に同意したと思って良いと思いますが。

後付けでログ参照ページを設置する場合は揉めるケースもよくあるようですが。
815デフォルトの名無しさん:2005/05/04(水) 10:13:15
>しかしながら、メーリングリストに投稿したメールにメールアドレスが掲載されており、
>削除しなければ個人情報保護を元に訴えるという旨のメールが来ました。
bladeの存続はMWタソの気分次第ってことかー
816デフォルトの名無しさん:2005/05/04(水) 13:45:51
One-Click Ruby Installer for Windowsの日本語特化バージョン
はどっかでダウンロードできませんかね。
即hiki使えるのが魅力。
817デフォルトの名無しさん:2005/05/05(木) 09:56:02
自己レス
ttp://www1.tf.chiba-u.jp/~shin/tutorial/index.rb?Chapter=00
にリンクがはってるね。
818801:2005/05/05(木) 22:04:55
>>802
いみがわかんないんだけど、smalltalkでブロックと呼んでいるから、ということでしょうか。
819デフォルトの名無しさん:2005/05/05(木) 23:13:01
ブロックは 1 メソッドコールに 1 個までだったり、
引数のスコープが怪しかったりするし、
大体表記的に first class とはいいにくいと思う。
あえていうなら closure なのは Proc だろう。
そして手続き型言語の Ruby としては
Closure より Proc のほうがしっくりくる (主観)
820デフォルトの名無しさん:2005/05/06(金) 01:33:32
どこかで「呼び出しメソッドを自由に設定できるProc」というのを見たことある気がするんだが
誰か知らないか?
821デフォルトの名無しさん:2005/05/06(金) 02:54:56
[ruby-dev:24302]
822デフォルトの名無しさん:2005/05/06(金) 23:41:05
[ruby-dev:25772]の方がかっちょええよ
823& ◆XV7or8STL2 :2005/05/07(土) 14:45:59
いま、rails 勉強中で、まだインストールもしていない状況なんですが
railsとamrita2って、そのままで連携できるんでしょうか??
Googleして、メーリングリストを見たりしてると、
rails-amrita2 bridgeのパッチを当てないといけないようにも、
あてなくてもいいようにも見えるんですが、
パッチは必要でしょうか??
824デフォルトの名無しさん:2005/05/08(日) 00:45:19
0.11.1からbridge取り込まれたんじゃなかったっけ?
対応しているテンプレートはAmrita2とKwartz、SikiTemplate
かしらん?他には?
825823:2005/05/08(日) 01:04:29
>>824
でも、Viewに何使うかって、どこで指定するんでしょう。。
いきなり、Amritaのtemplateファイルがviewディレクトリに置かれていても
ERBファイルとして認識してエラー出すだけのような気がするのですが。。


あと、script/generate amrita_scaffold Recipe とかあると便利なんだけどなぁ。
826デフォルトの名無しさん:2005/05/08(日) 01:39:15
>>825
> script/generate amrita_scaffold Recipe

なにそれ
827デフォルトの名無しさん:2005/05/08(日) 01:58:15
それと別に、
ERBでいいじゃんと思うのが一つ

テンプレートなんつーものは発展途上だし、
オブジェクトとページのマッピングなんて、かっこつけんな、とも思う

手軽に定義できるスクリプト言語であれば、例えばJavaやC#よりは、
ページとオブジェクトのマッピングしやすい面はあると思うけど
828823:2005/05/08(日) 02:21:10
>>826
Railsやったことあります??
Railsって、データベースをCRUDするための画面
(ActiveRecord::Baseクラスに対してCRUDするための画面)を
script/generate scaffold ってコマンドで自動生成してくれるんです。
でも、その画面って、当然ERBで書かれてるから、
せっかく、AmritaをRailsで使えるようにしてくれてるのなら、
script/generate amrita_scaffold なんてのもあれば、もっと楽できる気がした。
(自分で書いても、全然大した量じゃないんだけど。)

あと、
Amritaって、Amrita2で、かなり良くなってますよ。
ERBだと、GoLiveとかでデザインした後に、HTMLにコード書き込む必要あるけど、
Amrita2だと、その必要ないです。ホントに。
たしかに、僕のように、個人レベルならERBでもいいかもしれないけど、
Railsの目標とする使われ方だと、Amrita2の方が有利だと思うけど。
個人レベルでも、GoLive起動して、ちゃちゃっと修正してアップとかできると、かなり楽だと思う。
829823:2005/05/08(日) 02:28:13
個人的なAmrita2の使い方というか、理解ですけど、
HTMLから、Rubyスクリプトを呼び出せるって感じで理解しています。

<div id="test"> </div>
だと、Presentaion Object(PO)のtestメソッドを呼び出せて

<div id="test2"><div id="test2_test"></div></div>
だと、Presentation Objectのtest2の指すオブジェクトのtest2_testメソッドが呼び出せるという風に。

これだと、GoLiveとかで、デザインができますよね。
830SikiTemplateの作者:2005/05/08(日) 02:29:10
呼ばれてないけど飛び出てじゃじゃじゃじゃ〜ン

>825
amrita2/sample/rails/readme.txt に使い方書かれているよ。

SikiTemplateでは簡単に導入できるようにちょっとだけ気を使いました。
http://www.fiercewinds.net/siki/cgi/index.cgi?Command=Show;Target=%2FRuby%2FApplication%2FSikiTemplate%2F%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%AB%E3%82%88%E3%82%8B%E8%A7%A3%E8%AA%AC%2FRubyOnRails%E3%81%A7%E3%81%AE%E4%BD%BF%E7%94%A8

>827
テンプレートではHTMLだけいじっていたいのよ。
デザインしている時にロジックを考えなきゃいけないのはちょっとムカツク。
831823:2005/05/08(日) 02:37:31
SikiTemplateの作者さんがメーリスで聞いてるのを見つけたんですけど
http://www.fdiary.net/ml/rails/msg/122
同じこと考えたみたいですねぇ。

でも、この解決方法って、Controllerの中に、Viewが入ってきて気持ち悪い。。
あんまり解決になってない気がするけど。。
832:2005/05/08(日) 03:03:23
>831
まあねぇ

ただ、
・Rubyの自然な表記( []演算子 )でテンプレートと対応付けしている。
・Controllerには対応付けのための最低限の情報(変数名/ラベル名……みたいなの)
 しか入っていない
だから、自分としては妥協できる範囲だと思っています。
もともとControllerはModelとViewを制御するためのものだから、Viewのインターフェイス
(変数名)についての情報は持っているはずだし。
833823:2005/05/08(日) 03:21:33
Railsが、configディレクトリ以下で使いたいTemplateエンジンを簡単に指定できるようにしてくれればいいのに。。

ちなみに、
http://amrita2.rubyforge.org/rails/todoapp1/
↑ここを見ると、railsにパッチを当てるとamritaは
helperディレクトリにpresentationクラス
viewディレクトリにtemplateクラス
を、controllerに何も書かなくてもできます。

ぼくが聞きたかったのは、最新のrailsでは、こういうことがパッチ無しでできるのかということだったのですが、
どうも無理っぽいですね。。
パッチあてるのって、あんまり気持ちよくないんですね。。
834デフォルトの名無しさん:2005/05/08(日) 03:31:38
「メーリス」って何?
835デフォルトの名無しさん:2005/05/08(日) 09:15:09
テンプレートを使えばGoLiveでデザインできる みたいな話あるけど
それって幻想だと思うんだよね。
どうしたって、自前でのコーディングが絶対必要で、
GoLive使ってデザインするほうが反ってコストがかかったりする。
HTMLコードが崩れたり、どうしてもそうなる。
ならば、コーディングベースで効率のいい方法を考えたほうがいい。

ERBは多少はゴタゴタするけど、単純でいい。
テンプレートのライブラリは、どれも安定感は欠けるね、仕様的な。
まぁ、しばらくは試行錯誤が必要だ。
836 ◆m7YeytgDFE :2005/05/08(日) 10:32:46
>>834
メーリングリストの略じゃないかな?初めて見ました。
個人的にはMLと表記する方がまだ分かりやすいような。
そもそも、"メーリングリスト"なら略す必要を感じないけど。
837デフォルトの名無しさん:2005/05/08(日) 12:21:04
メリークリスマス
838デフォルトの名無しさん:2005/05/08(日) 12:51:05
>835
>ERBは多少はゴタゴタするけど、単純でいい。
ゴタゴタする時点で単純じゃないと思うけど。
HTMLの中でforループ回したりするんだったら、CGIのHTMLエレメント出力用
メソッドを使うほうがいいな。あるいはAmrita2で作成中の
ttp://amrita.s14.xrea.com/d/?date=20050401#p01
とか。
839デフォルトの名無しさん:2005/05/08(日) 18:58:44
840デフォルトの名無しさん:2005/05/08(日) 19:08:07
メーリスっていうML系言語の処理系を書いてますます事態を混沌とさせる人きぼん。
「メーリスってMLだよ」がわけわからなくなります。
841デフォルトの名無しさん:2005/05/08(日) 19:26:45
つまんな〜い
842デフォルトの名無しさん:2005/05/08(日) 21:01:05
ぐぐって高々 8,360 件を「普通」って言われてもなあ。
843デフォルトの名無しさん:2005/05/08(日) 21:37:29
今は 12,700 件みたいだ。たった 30 分で 1.5 倍に増えたなw
メーリスという語感が気持ち悪い。
844デフォルトの名無しさん:2005/05/08(日) 23:49:28
Rails + Amrita, Rails + XTemplate?
http://rails.yanime.org/rssfwd/preview?url=http://www.rubyweeklynews.org%2Findex.xml
↑ここに次のように書いてるんだけど
Greg McIntyre asked “Has anybody thought about putting Amrita/XTemplate support in Rails?”
Jeff Barczewski said that DHH had added templating support to Rails, based on work from Jamis Buck. (As far as he could recall.)
This provides hooks for invoking whatever templating engine you wish to use.
ここに書いてるhookってなんのことでしょうか??
どうやって使うか誰か教えてください。m(_ _)m

なんかrailsややこしいぞ。
845デフォルトの名無しさん:2005/05/09(月) 00:00:16
http://amrita2.rubyforge.org/rails/README.txt
↓ここに書いてることするしかないんですね。。
4) Add the following two lines to your config/environment.rb file:
require 'amrita2_view'
ActionView::Base.register_template_handler "a2html", Amrita2View::Base
これが、hookってことなんですね。
(http://one.textdrive.com/pipermail/rails/2005-February/003322.html)

どうもお騒がせしました。
846デフォルトの名無しさん:2005/05/09(月) 00:12:01
http://JJ079055.ppp.dion.ne.jp/
wwwwwwwwwwwwwwwwwwうはっwwwwww
wwwwwwうぇwwwwwwwwwwwwwww
っうぇおkwwwっっうぇうぇwwwwwwwwwwwwwww
847デフォルトの名無しさん:2005/05/09(月) 21:36:41
848デフォルトの名無しさん:2005/05/09(月) 23:03:33
リファレンスマニュアルがわかりづらい&読みづらいのは仕様ですか?
849デフォルトの名無しさん:2005/05/09(月) 23:41:40
どう変えたら分かりやすい&読みやすいか例示希望
850デフォルトの名無しさん:2005/05/09(月) 23:43:02
つ[MSDN]
851デフォルトの名無しさん:2005/05/10(火) 00:03:48
微妙に「ある程度わかってんだろ」的な説明とかあるし(なんていうか端折りすぎ)、
「コード〜と同じ」とか、〜の部分の説明にリンク貼ってあればましだけどそれも無い
所もあるし飛んだ先もわかり辛いし。
852デフォルトの名無しさん:2005/05/10(火) 00:16:02
>>3
http://www.ruby-doc.org/core/

こういうの?
853デフォルトの名無しさん:2005/05/10(火) 00:43:39
854デフォルトの名無しさん:2005/05/10(火) 01:05:55
>>852
わかりやすいねぇ〜。っていうか、ruby-lang.orgからのリンクもこれにしてくれればいいのに。
っていうかすべきだろ、おい。
855デフォルトの名無しさん:2005/05/10(火) 07:19:24
論文が書き終わったっていうことは1.8.3に期待してもいいですか。
856デフォルトの名無しさん:2005/05/10(火) 09:48:26
>>854
するとまた英語読めないとか暴れだす奴が出てくる。
857デフォルトの名無しさん:2005/05/10(火) 12:50:30
RDoc ってわかりやすいかなあ?
858デフォルトの名無しさん:2005/05/10(火) 14:33:51
>>854
その「わかりやすい」って言葉が曖昧でわかりづらい。
もうすこし何がどうわかりやすかったか教えてほしい。
お願いします。
859デフォルトの名無しさん:2005/05/10(火) 17:26:15
英語で書いてあったのでわかりやすかったです。
860デフォルトの名無しさん:2005/05/10(火) 17:34:31
結局、ドキュメントにいちゃもんつけてる奴らは、単に煽りたかっただけなのか。
861デフォルトの名無しさん:2005/05/10(火) 18:27:22
そういうことしたいのですかに
862デフォルトの名無しさん:2005/05/10(火) 19:08:38
>>856
英語読めない
空気読めない
863デフォルトの名無しさん:2005/05/10(火) 21:29:02
こういうJavaのマニュアルのような癖だらけリンクだらけのマニュアルは
かえって目的の情報にたどり着きにくくて読みにくい。と思うのは俺だけじゃないはず
864デフォルトの名無しさん:2005/05/10(火) 21:39:48
>>863
どのへんが「癖だらけ」?
というのを解説してくれると役立つのは俺だけじゃないはず
865デフォルトの名無しさん:2005/05/10(火) 21:44:32
話の展開がここの「なぜLinuxは糞なのか」と全く同じだな
http://pc8.2ch.net/test/read.cgi/linux/1115132529/
866デフォルトの名無しさん:2005/05/10(火) 23:53:27
[ruby-list:40817]
Moonwolfたん出番でそ
867デフォルトの名無しさん:2005/05/11(水) 00:05:58
MW!
868デフォルトの名無しさん:2005/05/11(水) 01:45:28
>>864
いろいろあるけど一番嫌なのは、サンプルが載ってないから
必要なメソッドや関係するメソッドを見つけ出すのに謎のカンと経験が必要なこと。

そもそも文章で緻密に説明されるより、簡潔なサンプルをいくつか載せて
「ある程度わかってんだろ」的な説明をしてくれる方がありがたい。と思う派なので
869デフォルトの名無しさん:2005/05/11(水) 03:04:16
>>868
それ、すげーわかる

でも、サンプルありまくりなものもあるんだが
ttp://www.ruby-doc.org/core/classes/Array.html
870デフォルトの名無しさん:2005/05/11(水) 04:05:12
>>869
あ、ほんとだ。思ったより悪くないかも?
現状に不満じゃないから乗り換える気はしないけどね。

RDocやJavaのマニュアルでもう一つ不満なのは、フレームの一覧表示。
クラス一覧に、添付ライブラリのクラスまで含めて
ABC順にずらっとクラス並べられると、なぜか読む気が減退する。
ライブラリ単位での一覧が欲しい。ファイル一覧なんていらないから。
871デフォルトの名無しさん:2005/05/11(水) 09:56:51
そしてMSのHTMLHLEPにいきついた・・
872デフォルトの名無しさん:2005/05/11(水) 12:38:44
>>71
検索機能もついてるしね。
UNIX の man と info はもういいよ…
873デフォルトの名無しさん:2005/05/11(水) 13:01:43
普段 CUI で生活してるのですが w3m で RDoc は辛すぎます。
874デフォルトの名無しさん:2005/05/11(水) 14:18:01
rdoc --one-fileでフレームなしにする事も出来るけど、
微妙だったような記憶がある。
875デフォルトの名無しさん:2005/05/11(水) 14:31:57
RDocの call-seq: に書く -> の右側には戻り値を書くんだけど、
>>869を見てもarray だったりan_arrayだったり書き方が
定まっていないような気がする。
何かこう書くと良い、みたいな情報はありますか?
876デフォルトの名無しさん:2005/05/11(水) 14:34:04
>>875
今よく読んでみたら
array ... selfと同じ意味
an_array ... 新たに生成されたarray
っぽいですね……orz。スレ汚し失礼しました。
877デフォルトの名無しさん:2005/05/11(水) 15:37:20
>>873
普段CUIなら、ri使えばいいじゃない
878デフォルトの名無しさん:2005/05/11(水) 18:16:44
riよりはデフォで日本語のrefe使う
879デフォルトの名無しさん:2005/05/11(水) 23:38:37
質問です。

2つのシーケンスseq1, seq2 があって、seq1の各要素のうち、seq2に含まれていないものをリストで返すには
どうすれば出来るでしょうか?

たとえば
seq1 = [0,1,2,3,4]
seq2 = [1,2]
の場合
[0,3,4]
が求めるものです。

リファレンスを斜め読みしながら
seq1.select{ |x| seq2.all? {|y| y != x}}
見たいなのはかけたのですが、ruby ならもっと簡単にかけるのではないかと。
880デフォルトの名無しさん:2005/05/11(水) 23:42:56
>>879
seq1 - seq2
881879:2005/05/11(水) 23:50:46
>>880
ありがと(はぁと

それにしても、めちゃくちゃ簡単ですね。
882デフォルトの名無しさん:2005/05/12(木) 00:17:31
>>879
重複要素が全部消えるから注意な。

[0,0,1,1] - [1] #=> [0, 0]
883デフォルトの名無しさん:2005/05/13(金) 00:33:21
"なんと、Rubyはダントツの一位。ま、しょせんお遊びだけど、それでも嬉しい。"

とか書いておきながら、Pythonが二位のことが他で使われると怒るmatz萌え。
884デフォルトの名無しさん:2005/05/13(金) 07:39:10
matz日記ってFirefoxで表示するとおかしくない?
上の日にちへのリンクのチップヘルプが出るの遅いし
改行が変な文字コードで表示されるし。
IEだと普通に見られる。
885デフォルトの名無しさん:2005/05/13(金) 07:58:21
信仰が足りません。
886デフォルトの名無しさん:2005/05/13(金) 19:16:25
Stringクラスのself=~ otherって
>>正規表現 other とのマッチを行います。マッチが成功すればマッチした位置のインデックスを、そうでなければ nil を返します。
ってなってるけど、帰ってきたインデックスってどこを指してんの?マッチしたところの始めの文字?
後、インデックスの説明って何処にあんの?
887デフォルトの名無しさん:2005/05/13(金) 20:15:36
888デフォルトの名無しさん:2005/05/13(金) 20:17:49
>>886
マッチしたところの始めの文字。

インデックスの説明は String クラスの self[first..last] のところにある。
が、後方参照なので確かに不親切だな。
889デフォルトの名無しさん:2005/05/13(金) 20:52:13
>>886
いままで何も気にせず括弧でくくって$1とか使ってた
890デフォルトの名無しさん:2005/05/14(土) 00:34:06
サンキュー
891デフォルトの名無しさん:2005/05/14(土) 00:42:40
Rite(Ruby2.1??)っていつでるんですか??

ロードマップってどこかにあるんですか??
892日曜プログラマ:2005/05/14(土) 00:45:09
Testっていうのをやったことがなくて、
どういうものかも、どうやってするのかも知らないんですが、
なにかいいサイトありますか??

あと、もし良かったら、どういうことをテストするのか、
概念だけでも教えてもらえると嬉しいです。
893デフォルトの名無しさん:2005/05/14(土) 00:50:18
unixのシェルと一緒でファイルがある、属性はどうかってのに使うんじゃね?
894デフォルトの名無しさん:2005/05/14(土) 00:53:39
Rubyも大企業で一括?採用されればドキュメントやライブラリの完成度が高まるんやろか
ttp://japan.cnet.com/news/ent/story/0,2000047623,20083507,00.htm
895デフォルトの名無しさん:2005/05/14(土) 00:58:16
満員電車の中、吊革に手を通して立つ。
車窓越しに、暮れなずむ東京の空を飽かず眺める。

ふと、髪に重みがかかる。
目をおろすと、小さな女の子が、精一杯手を伸ばして、エルルゥの輪につかまっている。
それだけでなく、立つのに疲れたのだろう、こっくりこっくりと船をこぎはじめた。
エルルゥはかわいそうに思って女の子を抱き上げてやる。
辺境の女は子守など苦労のうちに入らない。

あまり大柄でない彼女がそうするのを見て、前のサラリーマンが席を譲ってくれた。

女の子を膝に載せ、抱きしめるようにしながらエルルゥも眠る。
東京は大きい。東京は迷う。東京は何もかも疲れることばかり。
かたんことんと規則正しい音に包まれ眠る。
駅の名が彼女を起こすまで眠る。

おやすみ。
896デフォルトの名無しさん:2005/05/14(土) 01:17:46
>>891
明確な日付は明言されていないと思うけど、どうでしたっけ?
ロードマップも同じく。

>>892-893
Test::Unit? FileTest?

>>894
Ruby Foundationを作るのが先かも。
897デフォルトの名無しさん:2005/05/14(土) 01:20:13
>>892
Test::Unit の前身 (?) の RubyUnit について書かれた本だけどこれおすすめ。
http://www.amazon.co.jp/exec/obidos/ASIN/4756136877
898892:2005/05/14(土) 01:30:13
Test::Unitのことです。

Railsはじめたんですけど、Railsって、Testできるのが利点のようなのですが、
普通のプログラムでもTestってやったことがなくて、
全然理解できないです。
それで、普通のプログラムにおけるTestから勉強しようと思ってます。


>>897のRubyUnitを勉強する方針でいいでしょうか??
899デフォルトの名無しさん:2005/05/14(土) 01:32:09
時間はやってきた。
彼は、流れ出る人波に押されつつも、最後まで彼女を見ていた。


「また、逢えるといいですね」


ホームに響き渡るベルの中で、彼はその声を聞き逃さなかった。


ドアが閉まり、電車はゆっくりと動いていった。
彼は電車が見えなくなるまで、ずっと眺めていた。





長い、長い一日が、今日からまた始まろうとしている。

900デフォルトの名無しさん:2005/05/14(土) 01:39:34
●戦中戦後の世代(〜1935)
戦争を経験し日本を見事復興させ今の日本経済を作り上げた最強の世代
戦国時代の武将なみのレベルの高さで感服。一部勘違いあり。

●団塊世代(1945〜1949)
自分達が日本を作り上げたと思ってる"超"勘違い世代。 お前らが作ったのは借金。キチガイ多し。
戦中戦後の世代への反発で左全開。行動力や根性は多少は持ち合わせているがたいした事は無い。
唯一評価できるのは繁殖力の高さ。ただしあまりにも高すぎて未だにエロイ事件を起こすのもこの世代。
日本を滅ぼそうと密かにたくらんでいる。もういいから早く団体で中央線にダイブして欲しい。

●バブル世代(1960〜1969)
未だにバブルもう一回とか言ってるバカや、バブル後の脱力感で魂まで抜けた奴が多く基本的に左率高め。
未だに金銭感覚が狂ってるため消費率は高めなのが救いだがほとんどは無能。企業内でがん細胞化している世代

●団塊Jr(1970〜1974)
親世代の団塊に反発 戦後世代の爺さんに無条件で可愛がられ内緒で小遣いを貰いリアル昔話を
聞かされるなど隔世遺伝で右全開。ただし世代人口が一番多いにもかかわらず出生率を下げていたりと、
繁殖力は極めて低い。団塊の付けを一手に引き受けているのもこの世代。100年後の日本史には悲惨な世代として登場予定
901デフォルトの名無しさん:2005/05/14(土) 01:40:29
●無味無臭世代(1975〜1979)
いたの?

●無気力世代(1980〜1984)
あきらめモード全開。やる気ナッシング。パラサイト多すぎ。 気持ちはわかるが、仕事しろよと。
愚痴らせたり文句言わせたりすると最強な所や、他人に頼りまくるところは団塊そっくり。
近親憎悪なのか団塊への反感で右率高めというかめんどくさいので右。

●DQN世代(1985〜1995)
セックルセックル!小学生のうちから無駄なセックスしすぎ。おまえら大丈夫かよマジで?あんま期待して無いけど頑張って。

●日本終焉を見守る世代(1996〜)
戦後動き出した日本の鼓動がゆっくりと止まるのを見守ることになる世代。彼らの未来は暗く冷たい。
902デフォルトの名無しさん:2005/05/14(土) 11:21:13
waros
903デフォルトの名無しさん:2005/05/14(土) 12:51:33
>●無味無臭世代(1975〜1979)

(・c_・`)ソッカー
904デフォルトの名無しさん:2005/05/14(土) 13:19:26
>>903
自分主義の世代だから、他者から認識され辛いんだろうね
905デフォルトの名無しさん:2005/05/14(土) 13:43:44
DQN世代なのに童貞な人はどうすれば良いですか?
906デフォルトの名無しさん:2005/05/14(土) 17:11:18
>>905
生きている価値がないね。
907デフォルトの名無しさん:2005/05/15(日) 01:07:09
1950〜1959はどんなん?
908デフォルトの名無しさん:2005/05/15(日) 11:48:11
Rubyのスコープが分かりづれえよう。
Perl5みたいに myと { } でスコープ一目瞭然仕様が欲しいよ
なんとかしてくれmatzやん。
909デフォルトの名無しさん:2005/05/15(日) 12:03:02
スコープは気にしない。変数とメソッドの区別もしたくないし。
910デフォルトの名無しさん:2005/05/15(日) 12:12:05
だってほら、結局ローカル変数しか使わないじゃん。
先頭は小文字ばっかりじゃん。
頭に$なんて誰も使わないじゃん。
頭に&があると関数とかいう方がよっぽど便利じゃん。
911デフォルトの名無しさん:2005/05/15(日) 12:29:54
s='yo! '
3.times do
print(s = 'ho! ')
end

外側の変数が優先されるルールって風変わりだと思うんですが
なんでこうなってるんでしょ?
教えてエロい人。
912デフォルトの名無しさん:2005/05/15(日) 12:34:45
>>910=908?
わけわからん
つか、俺は Ruby のスコープも一目瞭然なんだけど
インスタンス変数も定数も使いまくるし
釣りやチラシの裏なら自宅のトイレでお願いします
913デフォルトの名無しさん:2005/05/15(日) 12:37:01
その例では何が言いたいのかわからん。
914デフォルトの名無しさん:2005/05/15(日) 12:37:08
>>911
どういうこと?
# => ho! ho! ho!
ブロック内部の値が出力されるけど?
915911:2005/05/15(日) 12:57:44
C言語だと、同名のグローバル変数とブロック内ローカル変数が宣言されている場合
ブロック内では後者が優先されますよね?
だからRubyを始めたときには、>>911の例だと'yo! yo! yo!'と
出力されないことに違和感がありました。
定義とか宣言とかは、最も内側のものが優先される傾向があると思うんですが
上の例はどうしてそうなっていないのかな…と。
916911:2005/05/15(日) 13:00:18
うわ!すごい勘違いをしてるみたいです。
忘れてください。失礼しました。
917911:2005/05/15(日) 13:14:06
連投すみません。次のような場合を考えていました。

s='yo!'
1.times do
puts(s = 'ho!')
end
puts s

>>915に書いた理由で、2回目のputsで'yo!'とならないことに
違和感があると思ったんです。
918デフォルトの名無しさん:2005/05/15(日) 13:20:54
int s = 0;
for(int i = 0; i < 1; i++) {
printf("%d\n", s = 1);
}
printf("%d\n", s);
919デフォルトの名無しさん:2005/05/15(日) 13:57:57
たまにRubyのスコープについてよく分からないと言う人がいますが
これは「Rubyはグローバル変数のみ使える」という仕様を知らないための
勘違いが原因だと思われます。
そもそもRubyにはローカル変数は実装されていません。
分かりやすさを追求するRubyの変数は全てグローバルです。
その昔、Ruby1.0がリリースされたとき、変数に$をつけないと
場合により値が参照できなくなるというバグが存在しました。
しかしこれを応用してグローバル変数でローカル変数を実現するRubyistが増えたため
バージョン1.3でこのバグを正式な仕様としました。
このような経緯があるため、Rubyにはローカル変数があるという誤解が広まったのですが
基本的にRubyはグローバル変数onlyの言語です。
920デフォルトの名無しさん:2005/05/15(日) 14:15:09
しらじらしい大嘘つく奴がいますな。

921デフォルトの名無しさん:2005/05/15(日) 14:18:59
なかなか書けないネタだ。
922デフォルトの名無しさん:2005/05/15(日) 14:39:47
ruby-coreのIlias見ててMWを思い出しちゃったよ。
923デフォルトの名無しさん:2005/05/15(日) 15:48:20
へー
924デフォルトの名無しさん:2005/05/15(日) 21:09:25
1.8.3って何か大きな変化ある?
925デフォルトの名無しさん:2005/05/15(日) 22:01:16
>>917
CやJavaと違って、Rubyではローカル変数を明示的に宣言することができません。
そのため、>917 の例でいえば
s='yo!'
1.times do
puts(s = 'ho!')
end
puts s
「s='ho!'」の変数sがブロック内だけのローカル変数であることを指定することができません。
Cでも、ブロック内での変数宣言がなければRubyと同じようなスコープになります。
char *s = "yo!";
for(int i = 0; i < 1; i++) {
 char *s;   /* ← これがなければ、ブロックローカルにはならない */
 s = "ho!";
}

という説明でどうでしょう?>>911
926925:2005/05/15(日) 22:01:49
ちなみに919ではありません。
927デフォルトの名無しさん:2005/05/16(月) 03:57:59
Ruby 2.0 ではブロックローカル変数回りの仕様が変更される予定だそうだ。
ttp://www.rubyist.net/~matz/20050309.html#p03

これによると、ブロックパラメータのセミコロン以降で
ブロックローカル変数を宣言できる。こんな感じかな?

s='yo!'
1.times do |; s|
 puts(s = 'ho!') #=> 'ho!'
end
puts s #=> 'yo!'
928デフォルトの名無しさん:2005/05/16(月) 04:20:10
読むに、ブロックパラメータ直後に `;' を付けたものが、
ブロックローカル変数になるんじゃまいか?
929デフォルトの名無しさん:2005/05/16(月) 04:47:39
読んだけど、外側の変数と名前が重複するとエラーになるのだから
これはローカル変数の宣言とは、また違う物でしょう。
変数の前方宣言みたいな物だと考えたほうが良いのでは?
930デフォルトの名無しさん:2005/05/16(月) 16:02:49
>>929
確かにローカル変数ではないっぽいけど、
何にどう使う物なのかさっぱりわからない…。

s = nil # <- 適当な代入による変数宣言
ary.each { |x| s = x if ... }
p s

1.times do |; s|
 ary.each { |x| s = x if ... }
 p s
end
みたいに書ける…?

ブロックの仮引数のところでしか使えないんじゃ
全然嬉しくないよな、これ…。やっぱり勘違いしてるかな。
931デフォルトの名無しさん:2005/05/16(月) 16:38:36
>>929
俺も前方、ブロック突入時の変数宣言のようなものという印象を受けた

[[1,2],[2,3],[3,4]].each {|a,b; c=0|
c+=a*b
p c
}

これ使い方あってる?
;以降のって何度も評価されるのかそれとも最初の一回だけなのか
932デフォルトの名無しさん:2005/05/16(月) 17:00:00
毎回評価するんじゃないかな。
最初の一回だけならeachの直前でc=0すればいいと思う。
933デフォルトの名無しさん:2005/05/16(月) 17:05:29
いやそれじゃスコープの問題が元に戻るのでは
934デフォルトの名無しさん:2005/05/16(月) 17:18:18
その表記で最初の一回だけ評価ってすごく直感に反するのは俺だけ?

そもそもいまいち用途がわからん。
スコープっつっても、外に同じ名前の変数があったら
エラーにするだけなんでしょ。なんでα変換しないんだろう。
935デフォルトの名無しさん:2005/05/16(月) 17:26:20
従来の挙動との互換性を保つためじゃないの?
その制約を受け入れた上でブロックローカルな変数を明確化したいという
ニーズに応える方策としてありじゃないかと思うけど。
936デフォルトの名無しさん:2005/05/16(月) 17:27:00
firstとかlastとか頻出そうなメソッドを用意させたも全く別の
ブロックを考えるとか

Proc2.new{|a,b|
 at_first{c=0}
 body{c += a*b}
 at_last{p c}
}
937デフォルトの名無しさん:2005/05/16(月) 17:29:50
>>934
同意。最初の要素を参照するときに下みたいなコードが
書きたくなると思う。何かキモイ

(1..10).each do |i ; first=i|
 p [first,i]
end
938デフォルトの名無しさん:2005/05/16(月) 17:33:04
マイナーバージョンアップでも激しく仕様がかわるRubyなんだから、
メジャーバージョンアップでなまじっか互換性とか気にしなくてもいいのに…。
従来のブロックのスコープは本当に残念なんだし。
939デフォルトの名無しさん:2005/05/16(月) 17:42:53
マイナーバージョンアップでも互換性とか気にする方向で考え変えて欲しいんだが
940デフォルトの名無しさん:2005/05/16(月) 17:52:36
マイナーバージョンアップで互換性無視するがアレなのはともかく、
ブロックのスコープの腐った仕様を変えるには絶好の機会なのに、
事態を悪化させようとしてるようにしか見えないです。
941デフォルトの名無しさん:2005/05/16(月) 18:18:32
(a) Rubyにレキシカルスコープを導入する
(b) ブロック変数の初期値を設定できるようにする

多くの人は(a)を求めていたのだが、
実装された運用は(b)だったというオチか。
942デフォルトの名無しさん:2005/05/16(月) 18:38:20
レキシカルスコープって何?
静的スコープとは別物?
943デフォルトの名無しさん:2005/05/16(月) 18:39:43
同じ物
944デフォルトの名無しさん:2005/05/16(月) 18:49:14
じゃあ、Rubyって現状は静的スコープじゃないの?
945911:2005/05/16(月) 21:20:39
>>925
Cのブロック内での変数宣言と同じことが、なぜできないのかなと思いまして。
例えば、ブロックの内側と外側とでstrという別の変数を使いたいときにちょっと困ります。
たいした問題じゃないといえばそうなんですが、
このようになっている理由や背景を知りたいと思い、質問しました。

ですが、一連の議論を見ていると頭の中が混沌としてきました…
946デフォルトの名無しさん:2005/05/16(月) 21:40:24
さっさとlet構文を導入しやがれ。
947デフォルトの名無しさん:2005/05/16(月) 21:59:59
matzタソはスコープを指示する宣言子がキライらしーので、それは永遠にありえないよーな気がする。>var, myあるいはlet相当
948デフォルトの名無しさん:2005/05/16(月) 22:11:40
ブロックパラメータだけα変換する、他は現状と同じ、で問題なくね?
949デフォルトの名無しさん:2005/05/16(月) 23:43:34
外部のスコープをもってくる変数に、お得意の頭記号をつければいいじゃないの。

somearray.each{|str|
str = \str + str
}

とか。
950デフォルトの名無しさん:2005/05/17(火) 01:30:41
さらに外の変数を見るときは\\strですか。
そこまでして外部の変数をみる必要はあるんかいな。
でも発想は好きかも。
951 ◆m7YeytgDFE :2005/05/17(火) 14:05:36
同じ名前だけど場所(スコープ)によって別物という方が分かりにくい気がします。
別の変数なら名前も違えるという、現行Ruby方式に慣れちゃってるのかな?
内側のブロックでうっかり同名の変数を使ってしまい、
外側の値を変えてしまうというのは、確かによろしくないとは思いますが。
スクリプトが長くなったり、入れ子が深くなったりすると、
なるべくメソッドとして分割するようにしてることもあって、
今の仕様で不満を覚えてないんです。今後の仕様が気になる、気になる...。
952デフォルトの名無しさん:2005/05/17(火) 14:21:02
だな。スコープが把握できないほどメソッドがでかいのは危険な匂い、と。
953デフォルトの名無しさん:2005/05/17(火) 14:58:53
規模がでかくなって、複数人で開発を行なうとこまらない?
954デフォルトの名無しさん:2005/05/17(火) 15:08:26
たまに
s = nil; ary.each { |x| s = x }

s = nil; ary.each { |s| }
と書くみたいに、(この例に意味はないけど)
ブロックパラメータは束縛じゃなく代入だという仕様を
意図して使うやつがいるんだよね。
これさえなければ現状でもいいんだけどね。
955デフォルトの名無しさん:2005/05/17(火) 15:09:09
コーディング規約レベルで、でかいメソッド作るな、とか。
956デフォルトの名無しさん:2005/05/18(水) 09:26:55
たまにRubyのスコープについてよく分からないと言う人がいますが
これは「Rubyはグローバル変数のみ使える」という仕様を知らないための
勘違いが原因だと思われます。
そもそもRubyにはローカル変数は実装されていません。
分かりやすさを追求するRubyの変数は全てグローバルです。
その昔、Ruby1.0がリリースされたとき、変数に$をつけないと
場合により値が参照できなくなるというバグが存在しました。
しかしこれを応用してグローバル変数でローカル変数を実現するRubyistが増えたため
バージョン1.3でこのバグを正式な仕様としました。
このような経緯があるため、Rubyにはローカル変数があるという誤解が広まったのですが
基本的にRubyはグローバル変数onlyの言語です。
957デフォルトの名無しさん:2005/05/18(水) 09:29:03
ローカル変数を隠匿することもできんのか
このクソ言語は?
もうオブジェクト指向以前の問題だな。
958デフォルトの名無しさん:2005/05/18(水) 10:53:10
gonzuiでruby検索したいので、
1.9のありかを教えてください。
ttp://www.ruby-lang.org/ja/20020102.html
には見あたりませんでした。
959デフォルトの名無しさん:2005/05/18(水) 10:58:02
メソッドに入れてしまえばいいんだよ

そもそも外でごちゃごちゃやっててローカルも何もないもんだ
960デフォルトの名無しさん:2005/05/18(水) 11:10:41
>>958
そのページの「CVS最新版スナップショット」ってヤツが 1.9 相当だよ。
961デフォルトの名無しさん:2005/05/18(水) 15:25:34
>>957
>ローカル変数を隠匿する
どういう意味?
962958:2005/05/18(水) 16:58:04
>>960
どもです。
963デフォルトの名無しさん:2005/05/19(木) 23:22:36
rubyって,自分で定義したクラスの配列ってできないのですか?

class hoge
 def initialize
  @hoge = 0
 end
end

hoge = Array.new
hoge[hoge.size] = hoge.new

こんな感じで,自分が定義したクラスのインスタンスの配列を
作って使おうとしたのですができません
ぐぐってみたのですが,なかなか情報が見つけられませんでした
やり方,もしくは情報へのポインタを教えていただけないでしょうか
964デフォルトの名無しさん:2005/05/19(木) 23:27:39
クラス名は必ず大文字で始めること。
また、君は自分の作ったクラスのインスタンスを生成してない。

class Hoge
 def initialize
  @hoge = 0
 end
end

hoge = Array.new
hoge[hoge.size] = Hoge.new
965 ◆Ruby2gguGE :2005/05/19(木) 23:30:16
Rubyサイコウ
966デフォルトの名無しさん:2005/05/19(木) 23:33:10
>>964
レスありがとうございます.
すいません.これは例なので,本当に書いてたコードでは,
クラス名は大文字で始まっています

>また、君は自分の作ったクラスのインスタンスを生成してない。
どういうことですか?僕は,
hoge = Array.new
これで配列ですよって宣言して,
hoge[hoge.size] = Hoge.new
この部分で,配列の要素が自分で定義したHogeというクラスのインスタンスだと
初期化しているつもりなのですが…
967デフォルトの名無しさん:2005/05/19(木) 23:39:55
hoge[hoge.size] = Hoge.new
やりたいことがよくわからん
EnumerableとかとMix-inしたいとか?
968デフォルトの名無しさん:2005/05/19(木) 23:48:22
実際はそこの処理を何回かループさせて,
配列の最後尾にどんどんインスタンスを追加していきたいのです
hoge.sizeは最初ゼロで要素が追加されるたびに1ずつ増えていきますよね

ループ

hoge[hoge.size] = Hoge.new
hoge[hoge.size].setHoge(1)

ループend

こんな感じです

もしくはループとか関係なくて,ただ単純に自分が定義したクラスの
配列を作りたいのです.WEB調べたのですが,情報が見つからなくて…
EnumerableとかMix-inというのは分からないです…
969デフォルトの名無しさん:2005/05/20(金) 00:01:27
> 自分が定義したクラスのインスタンスの配列を作って使おうとしたのですができません
もちろんできる。
どうやってできないことを確かめたのか書いてくれ。

hoge[hoge.size] = Hoge.new
hoge[hoge.size].setHoge(1)
2行目のhoge.sizeは1行目より1大きいぞ。
970デフォルトの名無しさん:2005/05/20(金) 00:05:41
基本的にはその通りで動くはず。実際にどういうコードで、なぜ動かないと判
断したかがわからないな……。クラスの方に問題はないのか?
971デフォルトの名無しさん:2005/05/20(金) 00:06:56
>>969
>hoge[hoge.size] = Hoge.new
>hoge[hoge.size].setHoge(1)
>2行目のhoge.sizeは1行目より1大きいぞ。
ああ,そういうことですか!
では,

hoge = Array.new

hoge[0] = Hoge.new
hoge[0].setHoge(1)
hoge[1] = Hoge.new
hoge[1].setHoge(1)

ならOKってことですか?
明日確かめてみます.どうもありがとうございました.
また,明日確かめてみてできなかったら質問します.
短時間に何度もレスしていただきありがとうございました.
972デフォルトの名無しさん:2005/05/20(金) 00:08:03
>>970
明日,>>969さんの言う通りにやってみます
まずは,配列のとこだけテストする簡単なコード書いてみます

できなかったら,そのコードを持って帰ってきて,
また質問します.

色々とありがとうございます
973970:2005/05/20(金) 00:09:10
あ、そうかそうか。

それと971のような場合は、
x.times { |i| hoge[i] = Hoge.new; hoge[i].setHoge(1) }
とか、
Array.new(x) { ... }
とかいった書き方をした方がわかりやすいよ。たぶん。
974デフォルトの名無しさん:2005/05/20(金) 00:09:35
最後に足すだけなら push とか << 使えば余計な混乱しないだろうに。
975デフォルトの名無しさん:2005/05/20(金) 02:38:50
>>963 の言う「hogeの配列」は C++ の
hoge_class hoge[N];
みたいなのを指してるんだと思われ。
予め初期化されたインスタンスが用意されてるようなもの。
976デフォルトの名無しさん:2005/05/20(金) 02:54:42
>>975
なるほど、お前頭いいな。
しかし上の議論で、
hoge[hoge.size] = Hoge.new
hoge[hoge.size - 1].setHoge(1)
と来るかと思ったら>>971だったから
失礼ながら正直ワラタ。
977963:2005/05/20(金) 21:53:47
アドバイスを元にやり直してみたらできました.
どうもありがとうございました

ちなみにrubyってphpで言う可変変数ってないんですか?
今日色々探したのですが見つからなかったもので...
知ってる方がいらっしゃったら教えてください
連続質問に答えると教えて君がわいて出そうだから
答えたくないYOって感じならばスルーしてください
978デフォルトの名無しさん:2005/05/20(金) 22:10:32
そのようなものが特別に用意されているわけではないが、そういうことをした
い場合はたいてい eval する。

a = "hello"
eval %Q(#{a} = "world")
puts a # => hello
puts hello # => world
979デフォルトの名無しさん:2005/05/20(金) 22:15:14
>978
ありゃ? 手元の1.8.2(mswin32)だと
4: undefined local variable or method `hello' for main:Object (NameError)
って言われちまったよ(´・ω・`)

てか、Hash使えばいいような気がするのは漏れだけですかそうですか
980デフォルトの名無しさん:2005/05/20(金) 22:18:36
> てか、Hash使えばいいような気がするのは漏れだけですかそうですか
いや待て、漏れを忘れるな。
981963:2005/05/20(金) 22:54:23
sample1 = sample[1]
sample2 = sample[2]
sample3 = sample[3]
sample4 = sample[4]
以下10まで続く

こんなんをループでサクっと片づけたいのです
982デフォルトの名無しさん:2005/05/20(金) 23:00:49
Ruby入門者用の書籍はなにがいいかな?
友人が教えてくれというんだが最近忙しいんで・・・。
983デフォルトの名無しさん:2005/05/20(金) 23:26:01
>>981

その代入に何の意味があるんだ。
984デフォルトの名無しさん:2005/05/20(金) 23:29:14
まあ意味無いけど evalで可能だな
985979:2005/05/20(金) 23:50:25
a = "hello"
の前に
hello = nil
入れたら動いた。まぁそりゃそーだ罠 orz
スレ汚し失礼。
986デフォルトの名無しさん:2005/05/21(土) 00:53:34
trueclassとfalseclassに分かれてるのは、あれはいったい何の意味があるんだ?
実はif文の条件分岐は、それぞれのクラスの多態性を利用してるとか?
987デフォルトの名無しさん
>>986
> trueclassとfalseclassに分かれてるのは、あれはいったい何の意味があるんだ?
同じクラス(たとえば BooleanClass)のインスタンスの方がいい/自然、ってこと?

zero-one-infinity じゃないけど、インスタンスが二種類しか存在しない
クラスってのは、個人的にちょっと座りが悪く感じる。
それよりも、二つクラスがあってそれぞれの singleton instance の方が自然かと。

TrueClass と FalseClass に共通するスーパークラスとして
BooleanClass が欲しい、と思うことはたまにある。テスト書く時とか。