1 名前:デフォルトの名無しさん [2008/01/16(水) 17:41:27 ] プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。 関連スレやURLは>>2-7 あたりを見てください。Ruby on Railsの質問はWebProg板のRailsスレで。 ■質問する人へ 質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。 ・ぐぐる ・マニュアルで探す www.ruby-lang.org/ja/man/ ・FAQを読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ 質問には以下を書くこと。へたくそな質問は再提出を要求される。 ・詳しい内容(「動きません」「うまくできません」では回答しようがない) ・エラーメッセージ(なるべくそのままで) ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる)) ・最終的にやりたいこと(もっとよい方法がある場合が多いので) 回答してくれた人には「ありがとう」のひとことをいってあげて。 ■回答する人へ 相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。 それができないならこないこと(だって初心者スレだもん)。 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
652 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 10:13:44 ] >RubyからもPerlの膨大なライブラリを使えるように これ確かあったんだけど、もうメンテされてないんだよな。
653 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 11:55:46 ] >>652 kwsk とりあえず、Acme::JapaneseAvActress が動けばいい
654 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:00:43 ] >>653 ttp://www.yoshidam.net/Ruby_ja.html#perl 自分は試せる環境がないのでそのへんはよろしく。 「Ruby Susieプラグイン」でググると手繰って辿り着けたハズ。
655 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:04:38 ] AmritaでのHTML出力でわからない所があるので質問させてください テンプレートにこう書いといて <tr id="table1"> <td id="name"><td id="author"> </tr> data = { :table1=>[ { :name=>"Ruby", :author=>"matz" }, { :name=>"perl", :author=>"Larry Wall" } ] } こうすりゃサンプルにある通り <tr> <td>Ruby</td> <td>matz</td> </tr> <tr> <td>perl</td> こうでますよね。 この時に tr の属性値を変えるのってどうすればできるんでしょうか? :table1=>[ Amrita::a(:value => "test"){:name => "Ruby"} ] だと文法エラーになっちゃうんですよね... Amritaのバージョンは調べ方がわからなかったので ファイルの作成日時だけ書かせて頂くと、2003/03/09になっています
656 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:04:16 ] 煽りじゃなくて、Scheme(or Lisp)に有って、Rubyに無い機能ってある? あるとしたら、その機能って必要?他の機能で代用可能?
657 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:07:02 ] >>656 S式
658 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:08:32 ] そりゃLispではない以上 Lispにあるものをすべて備えているわけがない すべて備えたらそれはただのLispだ 本スレで聞くといろいろ細かいこと教えてもらえるかもよ
659 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:31:39 ] 質問というよりも言語仕様の問題に近いのかもしれませんが、 どうしてRubyにはインクリメントならびにデクリメント演算子がないのでしょうか? 実質 x += 1 で何も問題はないのですが、 この表記は個人的になんか気に入らないので、納得のいく理由が欲しいのです。 調べたりしてもなぜないのかまで踏み込んでいるところが見つからなくて……よろしくお願いします。 前置や後置でややこしいからかな……などと思いましたが、 それならば後置限定で採用するなりすればいいじゃないかと思うのは浅知恵でしょうか? ならびに x.next x.succ で後置インクリメントじみた挙動が実現できるのは知っていますが、 インクリメントの意味合いでこのメソッドを使用するのは感心できる行為なんでしょうか? またその場合、インクリメントはメソッド、デクリメントは演算子とアシンメトリになってしまうのですが、 なんかもう全部ひっくるめて、ここらへんはどう解釈すればいいんでしょうか?
660 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:41:44 ] >>659 現行のRubyにインクリメント演算子が無いのは言語作成者のポリシー。 10年も前のMLでの発言だが、基本的には変わってないはずだ。 ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/5323 > すんません.この件は以前から指摘されているのですが(演算子はC > に似ているのに++と--は対応する演算子が無い),++の動作が本質 > 的に「変数を操作する」ものであるため,変数がオブジェクトでな > いRubyでは導入できないでいます.++や--の「オブジェクト指向的 > 意味」がRubyの他の部分と整合性を保ったまま定義できれば採用し > たいのですが…. うまい実装の仕方があれば要望として取り入れると思うぞ。
661 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:47:56 ] あと > x.next x.succ で後置インクリメントじみた挙動が実現できる できないと思うぞ i = i.succ と書くことは i += 1 と書くのと見栄え的にも手間的にもたいして変わらないんじゃないかと
662 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:49:15 ] Cだとx++;で済んで簡潔なのかもしれんが、 例えばループ書くのに使うときとかは、ブロック使ってメソッドに抽象化して使う ようにして、元が多少ダサくなるのは見逃してくれ。
663 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:57:55 ] なんでインクリメント作れないのかは 「整数オブジェクトを破壊的に変更できないから」というのもあると思う
664 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:11:45 ] 俺もRuby使って最初に躓いたのが、++と--が使えないことだったw Matzらしくもない。こんなんとっとと取り込んじまえばイイヤン。
665 名前:659 mailto:sage [2008/02/08(金) 02:15:06 ] >>660-663 まとめてですみません。素早いお返事ありがとうございます。 確かにそう考えると合点がつきますね。 自分で考えても全然納得できなかったのですが、ようやくすっきりしました。 ありがとうございます。 >>661 できませんね…… succをリファレンスで調べたときに「インクリメントの代替はあるじゃん!」と勘違いして、 そのままずっと勘違いし続けてたみたいです。重ね重ねありがとうございます。
666 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:18:50 ] >>660 の「変数がオブジェクトでない」ってどういう意味?
667 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:20:24 ] >>665 え〜納得しちゃうの?w ごねようぜ・・・w
668 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:35:19 ] >>667 「しんたっくすしゅがーとかでさいようしましょうよ〜」とかでいいですか?w いや本当はちょっとごねたいんですけど、なにぶん『初心者スレッド』で質問している程度なんで 納得した先にできることがないっす。 += とか本当は嫌いなんだけどなあ……みたいな感じで。
669 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:41:47 ] >>668 かわいくゴネたら、俺がパッチ作って匿名でRubyメーリングリストに なげるっていう条件でどう?w かわいくなかったら、作らないw
670 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 03:40:39 ] >>666 単なる名札。
671 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 03:59:32 ] >>659-670 先日、io-languageスレで、++ を実装しようとしてこねくり回してたところだったんで、 タイムリーすぎて吹いた なんでスマートにできないかというと、 メソッド内で、メソッドを呼んだオブジェクトを、格納した変数に代入できないから。 で、スマートな解決法はある。 Fixnum なら、Fixnum に 中身のデータを設定するメソッドを作ってやればいい。 例えば、Fixnum.set_value() みたいな。 ただし、Rubyのソースをいじるはめになるだろう どーしても、Rubyのコードでやりたければ、Fixnumのメンバを持った、 Fixnumのラッパーを作るしかないだろうな。 そうすれば、簡単に実現できる。 結局、数字のリテラルを書くように使えず、そのクラスをいちいち new しないといけないのが面倒だが
672 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 04:00:27 ] 変なところで、句読点打った orz > メソッド内で、メソッドを呼んだオブジェクトを、格納した変数に代入できないから。 メソッド内で、メソッドを呼んだオブジェクトを格納した変数に、オブジェクトを代入できないから。
673 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 04:02:27 ] > 「整数オブジェクトを破壊的に変更できないから」というのもあると思う ゲ、>>663 が簡潔にまとめてるじゃないか ・・・ orz
674 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 05:28:31 ] >>660 残念ながら松本が++が嫌いだと言ってますので多分ないでしょう。
675 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 06:12:21 ] a.++ で万事解決
676 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 07:59:16 ] >>675 > a.++ > で万事解決 だーかーらー Rubyの数関係のオブジェクトはイミュータブル、ってのがわかってないダロオマエ
677 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 08:24:51 ] rubyのオブジェクト指向度の低さに唖然・・・
678 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 08:48:36 ] smalltalkerが来ましたか
679 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 09:05:54 ] Smallalk 使いから見ると Ruby はリフレクションが貧弱だよね。 これじゃ、まともなリファクタリングブラウザも作れないだろう…と。
680 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 09:14:09 ] a.++! でよくね
681 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 09:36:37 ] a = 1 b = a a.++! p b
682 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 10:24:56 ] Smalltalkから馬鹿にされるのはしかたないけど、C++から馬鹿にされると釈然としないかも。
683 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 10:39:02 ] irb> n = 100 irb> p [n, 100, 99+1, 101-1, 99.succ, 'd'[0], '100'.to_i].map{|e| e.object_id} [201, 201, 201, 201, 201, 201, 201] Rubyでは、同じ整数値である限り、同じオブジェクト
684 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 11:33:22 ] C++とか、 プリミティブ型があるJavaからも馬鹿にされたくはないな
685 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 11:53:57 ] >>683 スゲー
686 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:53:58 ] >>683 同じ整数値っていうかFixnumの場合だけじゃまいか irb(main):002:0> [(2 ** 30).object_id, (2 ** 30).object_id] => [21803310, 21802580]
687 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:59:06 ] >>679 >Smallalk 使いから見ると Ruby はリフレクションが貧弱だよね。 >これじゃ、まともなリファクタリングブラウザも作れないだろう…と。 SmallalkじゃなくてSmalltalkな。 それはいいとして、>>679 にはぜひSmalltalkのよさを語ってほしいな。 Smalltalkの強力なリフレクション機能がどんなものか知りたい。
688 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 13:22:15 ] >>687 たとえば(リファクタリングとは直接関係ないけど)、くだんの #++ とかの実装は、 Ruby の貧弱なイントロスペクションじゃ逆立ちしても無理…とかいう話?
689 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 14:20:18 ] >>688 #++は>663,671,672,676,683。README.EXT(.ja)を参照。 誤解を恐れずに簡略すると実はFIXNUMだけオブジェクトじゃない。 オブジェクトじゃないから状態(値)を変更できない。 値の変更は変数に対する操作(代入)で代用。
690 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 14:25:58 ] 実装の問題は別として >>681 の p b で 2 が出力されておk、という人は多くないと 思うわけだが。
691 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 14:54:58 ] Hash#compare_by_identityって破壊的なのに!つけないんだな これだからrails厨どもは
692 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 14:57:01 ] >>689 Smalltalk も SmallInteger(Fuxnum 相当)は事情は同じだよ?
693 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 16:26:09 ] >>687-692 SmallTalkスレで聞いてきたよ。 アラン・ケイも認めた!Ruby>>>>>Smalltalk pc11.2ch.net/test/read.cgi/tech/1150106090/169-171 SmallTalkでも、破壊的に変更できない事情は同じで、 そこを強力なメッセージとリファクタリングの言語機能でカバー 力技だから、スマートでないと言われたらそうかもしれない。 Matzは嫌がりそうw
694 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 16:27:46 ] x リファクタリング o リフレクション >>687-688 にturareta
695 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 16:47:16 ] >>693 だが Squeak Smalltalk を参考に作られた Rubinius ならきっとやってくれる!
696 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 16:49:36 ] C#の完勝ですね
697 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 20:39:22 ] クラス変数とかインスタンス変数ってあるけど、モジュール変数的なのってないの? 自作のモジュールに含まれるクラスから自由にぺとぺと触れる変数が欲しいんだけど…
698 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 20:42:40 ] モジュール内でクラス変数を定義すれば俗称でモジュール変数と呼ばれてるものになるよ
699 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 20:54:51 ] >>698 そうなのかーありがとー! ちなみに↓のが「@@tempって初期化されてなくね?」って言われるのはなんでなん? ttp://www.ruby-lang.org/ja/man/html/_CAD1BFF4A4C8C4EABFF4.html#a.a5.af.a5.e9.a5.b9.ca.d1.bf.f4 のいちばん最初の例とか見ると平気そうに思えるんだけど… module Test @@temp = "test" class TestTest # def initialize # @@temp = "test2" # end def print puts @@temp end end end Test::TestTest.new.print
700 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:04:40 ] ネストと継承がわかってないようだね
701 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:09:55 ] マニュアルにある通り、「上」のクラスのサブクラスかインスタンスメソッドにしないと読めないぞ モジュールを継承することはできないからincludeする。…できないはず。まあいいや。 module Test @@temp = "test" class TestTest include Test # def initialize # @@temp = "test2" # end def print puts @@temp end end end Test::TestTest.new.print 個人的にはあまりきれいに思えない
702 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:18:33 ] >>700 継承?わからんので教えてほしいかも >>701 自分が所属してるモジュールもincludeできるのかー でも、確かに美しくないね 質問を変えると、例えばDBの接続やらなんかのオブジェクトを 同じモジュールのクラス間で共有して使い回したいとすると、 なんかいい方法ってある?
703 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:23:19 ] 定数
704 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:23:30 ] クラス変数自体が存在微妙だからな クラス内定数にハッシュ設定して読んだり書いたりしたほうがマシ module Test TEMP = {'str1'=>"test"} class TestTest def initialize TEMP['str2']='test2' end def print p TEMP end end end Test::TestTest.new.print $ ruby test.rb {"str1"=>"test", "str2"=>"test2"}
705 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:26:37 ] >>702 そもそも、たいていの場合ならクラス間で共有して使いまわすよりも initializeの引数として渡した方が(コンポジションにした方が)いいと思う
706 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:29:03 ] もうdef initializeのあとに@ナントカって10個くらい書き続ける仕事はいやだお
707 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:40:53 ] >>704 そんなんできるのかー でも定数に読み書きするのはなんかきもちわるい気もするなぁ… >>705 いちいち渡すのがめんどくさい気がしたんだ
708 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:52:59 ] >>707 定数ってのは、同じオブジェクトを指し続けているという意味であって その中の状態は不問だからな。 オブジェクトのほうを不変にするには.freezeする。
709 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:56:53 ] >>706 少数のオブジェクトにまとめろよw それができないようなクラス構成なのかもしれないけど >>707 渡すのが面倒なのは確か でもテストのことを考えると、引数で明示的に「どの値を使うか」を指定できる方が便利だよ
710 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:58:21 ] STR = 'before' STR.replace('after') puts STR これはSTRが指すオブジェクトが変更されないから警告出ないよね このへんまで説明してる初心者向け解説はあまり見ないけど
711 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:01:28 ] >>708 >>710 そう書かれるとなんか自然に見えてきたぞ… >>709 DBの接続とかMechanizeのオブジェクトとかを渡したいので「どの値」とかは特に関係ない件 むしろRuby慣れてないから引数でオブジェクト渡すと参照渡しになってるのかどうかさえ知らん
712 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:15:07 ] >>711 自分で注意深くコードを書いて試すといい ちなみにいわゆる参照渡しだ class Test def initialize(str,h) @str = str; @h = h end def modify @str.replace('MODIFIED') @h['MODIFIED'] = 'MODIFIED' end end str = 'default' h = {'key'=>'value'} Test.new(str,h).modify p str p h # ================================ $ ruby ./test.rb "MODIFIED" {"MODIFIED"=>"MODIFIED", "key"=>"value"}
713 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:22:01 ] >>712 昔はこれを意識したコードを書いてたんだけど 最近はもうこういうとこに気を遣って手品みたいなことするのめんどくさくなって class Test def initialize(str,h) @str = str.dup; @h = h.dup end def modify @str.replace('MODIFIED') @h['MODIFIED']='MODIFIED' end def result return @str,@h end end str = 'default' h = {'key'=>'value'} test = Test.new(str,h) test.modify (str,h) = test.result puts str p h こんなコード書いてる たいていこれで済むし
714 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:25:42 ] 「参照の値渡し」ね
715 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:37:35 ] そこが「いわゆる」に含めた意味だろうな。
716 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:39:50 ] Gaucheのwww.cgi.testみたいなやつない? とりあえずRubyにCGIパラメータ渡したいんだけど。 ブラウザでちまちまやるの面倒くさくて。。。
717 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:49:23 ] ~$ cat cgi.rb require 'cgi' cgi = CGI.new p cgi.params ~$ ruby cgi.rb 'title=ruby&creator=matz' {"creator"=>["matz"], "title"=>["ruby"]}
718 名前:655 mailto:sage [2008/02/08(金) 22:51:13 ] あれ? スルーされてる…。 何か質問の仕方、もしくは場所がまずかったですか?
719 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:56:01 ] Amritaというものを使ってる人がスレにおらんのだろう
720 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:57:44 ] >>691 それ言っちゃうと、Array#shiftとかも不統一だよね。
721 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:02:17 ] shift,unshift,push,popあたりはperlから受け継いでるからな。 !がついてないからといって破壊的じゃないとは限らない。
722 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:21:24 ] emacs+ruby-mode.elで書いていて質問があります。 ヒアドキュメントを記述して、頭の方でruby-indent-exp(再インデント)を実行しても、 終端行以降に記載した部分がインデントされません。 もし対処法ありましたら、教えて下さい。 (もしくはそういう書き方をしないのでしょうか) -- def hoge() print <<-EOT こんばんは。 EOT # <= ここ以下インデントされない end def foo() print <<-EOT こんにちは。 EOT end -- emacs->22.1 ruby-mode-> r15297
723 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:34:26 ] >>718 ごめん普通に見逃してた Amrita.aを使うなら :table1=> Amrita::a(:value => "test"){[:name => "Ruby"]} でOK 今やるなら、それよりもamrita-alteredの属性値展開を使う方がいいと思う
724 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:42:35 ] >>716 ふつうに QUERY_STRING='a=1&b=2' ruby mycgi.rb とすればよくね? POSTなら ruby mycgi.rb < request.txt まあWindowsならどうやるのか知らないけど。
725 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:45:45 ] ruby-modeのインデントは微妙に信頼性が低くて困る def hoge =begin なんとか =end end を def hoge =begin なんとか =end end にして潰してくれたときには参った 最新版では直ってるのかね >>722 終端文字列の直後の行を正しいインデント量に手動で直してから再インデント
726 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:15:46 ] >>717 >>724 ありがとうごぜえますだ。
727 名前:722 mailto:sage [2008/02/09(土) 00:53:14 ] >>725 ↓こんな感じでグダグダです def hoge =begin なんとか =end end >終端文字列の直後の行を正しいインデント量に手動で直してから再インデント うまくいかないですorz emacs 21.4でも同じ
728 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 03:25:48 ] windows XP proでVisualuRuby上(ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32])で Susie::Plugin library for Rubyを使いたいのですが、ソースからコンパイルするしかないのでしょうか? ttp://www.yoshidam.net/Ruby_ja.html#susie をDLし解凍したものを ruby\lib\ruby\1.8\susie 下に 置いてもrequire "susie"ができないので… 他にsusieを使う方法ってあるのでしょうか?(COM経由とかではなく)
729 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 10:08:51 ] 全く使ったことないが、require 'susie' という書き方で探されるのは ruby\lib\ruby\1.8\susie.rb だと思うぞ
730 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 10:10:36 ] susie/susie
731 名前:デフォルトの名無しさん [2008/02/09(土) 10:21:37 ] exec() や system() メソッドで、 コマンド実行後に独自の入力プロンプト(入力待ち)状態になるコマンド(ftp, sqlplus 等)を実行したあとに、 さらに、そこへ入力を続けるようなことはどうすれば出来るでしょうか。 以前、どこかのサイトでその方法を見かけて、使ったことがあったのですが、 そのコードが手元に残っていなく、サイトを探してもみあたらなかったため、 質問させて頂きました。 よろしくお願いいたします。
732 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 11:00:53 ] >>731 標準で付いてるexpect.rbが使えるケースかも?
733 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:16:41 ] POPFileというベイジアンフィルターソフトの設定画面が、ローカルにたてたhttp鯖に接続して行う形になっています。 スパムを誤認したメールがたまりまくって手動では無理なため、一括で、教育しなおしたいのですが、 httpのPOSTを簡単に扱えるライブラリはないでしょうか? hpricot的にお手軽にPOSTしたいのですが・・・
734 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:25:44 ] net/http のどのへんがダメなのか教えてくれると代替案があるかも
735 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:29:23 ] 自己解決した! WWW::Mechanize というのを発見しました。 お騒がせしました。ありがとうございました。 > net/http んーなんていうか、httpを意識しないといけない、低レイヤーっぽい感じがします。 hpricot使ったら他に移れないくらい便利だったので、 似たような高レベルなラッパーがないかな、と。
736 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:32:55 ] require 'rubygems' しなければならないのがどうにもなあ いや、贅沢なこと言ってる自覚はあるが >>735 WWW::Mechanizeが利用できる環境なのならそれ使うといいぞ
737 名前:735 mailto:sage [2008/02/09(土) 19:00:00 ] 環境変数RUBYOPT を -rubygems にしておくとgem関連は楽っすよ
738 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:50:45 ] >>737 は問題を理解してないと思った
739 名前:735 mailto:sage [2008/02/09(土) 21:18:13 ] あ、ええと、レンサバとかRubyGemsをインスコできない環境とかの話かな? それなら失礼しますた
740 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 21:48:52 ] 本家のヘルプ以外のライブラリなどのドキュメントを見ようと、 コマンドラインのドキュメントヘルプを試したのですが、いまいちどれがどうなのかわかりません。 ri:標準。英語ドキュメント。サンプルソースなどもしっかり refe:gem install refeで入る。日本語ドキュメント。全然少ない。メソッド名の部分一致検索ができる。 rdoc:標準。エラーでて動かず riは、詳細が載っていてわかりやすいのですが、 検索しずらい・・・ refeみたいに、部分一致だったらいいのに
741 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 22:18:25 ] gemしかないならともかく、tar玉あるんだから $HOMEでもどこでもすきなようにインストールすればいいじゃん。
742 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 22:38:10 ] >>740 > rdoc:標準。エラーでて動かず rdocはriのデータを作るコマンド。
743 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 22:51:39 ] >>724 なにそのめちゃくちゃ端折った説明 現状は「英語でいいならri、日本語がいいならReFe」という住み分けになっとる ReFeの内容がヘナチョコなのは日本語マニュアルがヘナチョコだからだな むしろ俺はRDocとかRDとかのマニュアル用書式がわからん 何のときに == で書くのかとかさっぱりだ
744 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 22:57:07 ] あれだ、もうちょっとMatzがユーザ愛を持って、マニュアルに全身全霊を 傾ければ、Rubyはもっと愛されると思う。願望だけど。 「そんなの面白くない」とか「Matzは開発を優先すべきで、他の人が やったほうがいい」という反論は重々承知だが。
745 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:00:05 ] 優秀な言語開発者が優秀な初心者向けマニュアルを記述できるとは限らないのは 例の分厚くて黄色くて背が硬い本で痛いほどわかっただろうに
746 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:02:37 ] >>745 いやでもな、とてつもなく優れたオープンソース開発者が、とてつもなく 優秀なドキュメントを提供する人間である例が目の前にあるとさ。 すごい!と思ってしまうのよね。Vimの開発者のことだけど。
747 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:03:35 ] 日本語マニュアルがイマイチなのの原因は何なのよ 今のRubyユーザー数ならWikiシステムあたりを使って一斉に取り掛かれば 1年くらいで今の倍くらいのボリュームにならんかね
748 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:05:30 ] >>747 RDだかRDocだかで記述しないと取り込めないからRDだかRDocだかで書いてね、というのがかなり壁 PukiWiki互換で書いていいよと言われたら一気に進みそうな気がする
749 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:09:04 ] まぁMatzはEmacs信者で、Bramのことなんかよく知らないだろうけど。
750 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:24:35 ] マニュアル内容の改定に関しては計画はあるんだし参加しようよ doc.loveruby.net/
751 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 02:39:04 ] 例のデイトレ男に一億くらい恵んでもらってフルタイムのドキュメント書きを雇えばいいんだよ
752 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 02:57:58 ] なんで、ここで B・N・Fこと小手っちゃんがww