1 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 00:26:33 ] プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。 【Ruby1.9 は不安定な開発版であり初心者には全く向きません】 【最新安定版の Ruby1.8.6 の使用を強くお勧めします】 関連スレやURLは>>2-8 あたりを見てください。Ruby on Railsの質問はRailsスレへ。 ■質問する人へ 質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。 ・モジュール名やエラーメッセージでググる ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/ ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ 質問には以下を書くこと。へたくそな質問は再提出を要求される。 ・詳しい内容(「動きません」「うまくできません」では回答しようがない) ・エラーメッセージ(自力で訳さずなるべくそのままで) ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる)) ・最終的にやりたいこと(もっとよい方法がある場合が多いので) 回答してくれた人には「ありがとう」のひとことをいってあげて。 ■回答する人へ 相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。 それができないならこないこと(だって初心者スレだもん)。 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
620 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 16:49:38 ] コンパイルしろ。
621 名前:555 mailto:sage [2008/05/21(水) 23:42:24 ] >>608 返事が遅くなってすみません。 1.8.6-p114とか1.8.7-preview2 とかをインストールしたのですが 基本的に同じような結果になってしまいます。 >> gdbでバックトレースを。めんどくさいのでできればBTSに。 これはどのようにすればいいのでしょうか?自分なりに調べてみたいのですが どうすればいいのかよくわかりませんでした。
622 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 23:50:56 ] >619 ちなみにmingw版でコンパイルしたsoはmswin32でもそのまま使える (libの下のso入れるとこに突っ込めばおk)
623 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 20:57:12 ] 「みるみるRubygがわかる本」 は、初心者に勧められる入門書ですか? 購入なさった人、情報を持っている方など 感想等お願いします。
624 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:03:06 ] プログラミング自体初心者には www1.tf.chiba-u.jp/~shin/tutorial/index.rb Ruby初心者には、他の言語の習熟レベルにもよるけど、 たのしいRubyかプログラミングRubyがいいんじゃないかな。 # その本の批評じゃなくてごめんね。 # 漏れは秀和ということだけで毛嫌いしちゃう
625 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:12:50 ] >>623 別に気にしなくていいんだけど、 立ち読みは表紙のイメージで記憶してるので書名で言われてもぶっちゃけ覚えてねー ttp://www.amazon.co.jp/dp/4798019291 で、これな 「何が何でもとにかく『たのしいRuby第2版』との差額900円が惜しい人向け」 だ 900円がないと明日家賃が払えないけど Rubyの本を何か持ってないと明後日異界に連れ去られてしまうとかそういう人向け
626 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:13:42 ] あ、あと、ある一定以上の重量の本を手に持つと骨が折れる人とか
627 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:23:38 ] 書籍にあるサンプルコード ttp://ftp2.shuwasystem.co.jp/pub/book/1929/sample-list.txt ……うーん…
628 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:35:17 ] 3-*あたりを見るとJavaっぽいね。 RubyではgetEuroなんてまず書かない。 多分、to_euroとか
629 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:40:56 ] なんだ秀和か。 あそこの本は、よそで出てないネタを押さえてる本は買う価値があるが、 よそで出てるネタの本は微妙な出来のことが多いな。
630 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:46:28 ] >>627 とりあえずcaseのインデントが気持ち悪すぎる
631 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:48:42 ] >>628 > Javaっぽい なかなか鋭い ttp://www.amazon.co.jp/s/ref=sr_st?__mk_ja_JP=%83J%83%5E%83J%83i&rh=n%3A465610%2Cp_27%3A%8F%B6%93c
632 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:53:50 ] >>627 はftpだな ftp://ftp2.shuwasystem.co.jp/pub/book/1929/sample-list.txt ってftpかよ! まあいいけど
633 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:57:31 ] Javaな奴にRubyの本を書かせるな めんどくさいから
634 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:01:41 ] >>631 やはりJava・・・・・・・なのか? 入門書ばっかり しかも売上が微妙なのかレビューがほとんどついてないのばっかりか
635 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:02:31 ] Rubyは『たのしいRuby』いっとけで済むからいいよな サポートサイトのエラッタを見ても頭ひとつ抜けてる感じだ 無理やり難点を挙げるなら熱さやユーモアに欠けるぐらいか
636 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:07:59 ] 本当は色々な入門書やら解説書やらが出ていいのも悪いのも結構ある、というのが理想 『たのしいRuby第2版』 し か な い というのが現実 スレ的には面倒がないが、言語普及的には好ましい状態ではない
637 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:09:58 ] Rubyで小金が儲かる、という状態でないとなあ Rubyの書籍は売れないから出しません、というような状況になるのはまずい
638 名前:623 mailto:sage [2008/05/23(金) 22:23:55 ] 皆さん情報提供ありがとうございました。 『たのしいRuby第2版』の情報等も参考にさせていただきます。
639 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:26:18 ] 他言語を知ってるならピッケル本が良いんだが
640 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:37:12 ] Rubyの新しい本はRails含めて最近ちょくちょく出てるんだが、いまいちパッとしない ttp://www.amazon.co.jp/dp/4798019437/ これは、読んだ限りではまあ、うん、まあ、同価格帯で勝負するだけはあるなって感じはするが 目次はここ ttp://www.shuwasystem.co.jp/products/7980html/1943.html
641 名前:デフォルトの名無しさん [2008/05/24(土) 10:10:42 ] Amazon/AWSのResponseオブジェクトをprintで出力すると 長々と内容まで出力してくれるのですが、ppで出力すると #<Amazon::AWS::AWSObject:0x2f82e04 ...>としか出力されません。 ppで整形した内容まで出力してくれるようにするにはどうしたらいいのでしょうか?
642 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 10:46:40 ] >>641 今こそソース読んでステップアップするとき pp.rb を読むんだ
643 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:31:14 ] Rubyからaccessのmdbファイル内のレコードを操作するにはどうしたらいい?
644 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:14:05 ] ttp://jp.rubyist.net/magazine/?0005-Win32OLE そういう目的のためのwin32OLE。 あまり使ったこと無いので、使いやすいのか知らんけど
645 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:38:16 ] win32OLEは便利だと思うけど、詳しい解説がどこにあるのかがわからない。 るびまは読んだんだけどなー
646 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:10:13 ] WIN32OLEクラスの使い方さえ覚えれば、 あとはWSHの話じゃないか?
647 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:24:37 ] WSHというか、あとはそのライブラリ自体のお話ってことだよねぇ。
648 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:10:56 ] AccessのVBAでマクロ組んで、Rubyからそのマクロを呼ぶのが一番簡単そう。 Rubyから呼ぶ必要があるかどうかは知らんけど。
649 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:29:03 ] 実のところRubyはほとんど関係ないんだよな 単純にWindowsプログラミングの話になってしまう
650 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:30:49 ] >>649 本質的には system() で外部コマンド呼んでるだけだからねえ… どんなときにどんなコマンドを呼び出すべきかってのはRuby関係ないわな…
651 名前:643 mailto:sage [2008/05/24(土) 20:43:37 ] >>644 のリンク先の一行レコードを追加するスクリプトサンプルみると conn = WIN32OLE.new("ADODB.Connection") 以降はvbaと同じっぽいのでなんとかやれそう
652 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:36:18 ] open-uri を使って ftp にアクセスしたい。 require 'open-uri' uri = URI.parse("ftp://hogehoge.com/bar/") uri.user = 'foo' uri.password = "fu/ha" でエラー。uri/generic.rb の USERINFO(Regexp) が /^(?:[-_.!~*'()a-zA-Z\d;:&=+$,]|%[a-fA-F\d]{2})*$/n になっているのが原因で パスワードに '/' を含む事が出来ない。 URI.escape(password) をしても '/' はエンコードされず。 何か策はないでしょうか? (パスワードは変更できない) open(uri) の uri にパスワードを含めれないのか? net/ftp を使えばログイン出来るのだが、やりたいのは、 Pathname を使って ディレクトリを掘りながら put をしたい。
653 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:54:51 ] URI::USERINFO= /^(?:[-_.!~*'()a-zA-Z\d;:&=+$,\/]|%[a-fA-F\d]{2})*$/n とか
654 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 02:11:13 ] まあ基本的には無理だな 自前で書き換えるしかないわ スラッシュって含むことできたっけ?
655 名前:652 mailto:sage [2008/05/25(日) 02:44:45 ] >>653 素敵。 しかし別の新たなエラーが。もう少し調べます。(そもそも 掘って put は出来るのか?) ありがとうございます。
656 名前:652 mailto:sage [2008/05/25(日) 02:57:43 ] わかった。open-uri は ファイルを扱うものなのか。 ディレクトリは扱えないのか。 失礼しました。
657 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 04:48:04 ] まつもとゆきひろがB型肝炎に感染 mamono.2ch.net/test/read.cgi/newsplus/1211364904/
658 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:24:45 ] 質問です。 #!/usr/local/bin/ruby print "Content-type: text/html\n\n" print "<html><body>Hello World</body></html>" この内容の.cgiファイルを land.to/newshiyou.php このレンタルサーバーにアップしたのですが。 500内部サーバエラーになってしまいます。 なぜなのでしょうか?どうすれば動かせるのでしょうか? 回答よろしくお願いします。
659 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:35:52 ] エラーメッセージの意味がわからんです おしえてエロイひと c:/ruby/lib/ruby/1.8/xmlrpc/parser.rb:152:in `fault': wrong fault-structure: {"f aultCode"=>"Client", "faultString"=>"Application failed during request deseriali zation: \nnot well-formed (invalid token) at line 6, column 345, byte 3640 at /h ome/seesaa/cpan/lib/i686-linux-thread-multi/XML/Parser.pm line 187\n"} (RuntimeE rror)
660 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:52:12 ] >>659 文字コードの知識もないspamブロガーさんこんにちは
661 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:56:29 ] >>660 そう見えるよなあ 投稿スクリプトをサンプルとして提供するのは止めたほうがいいと思うぞ で、まあ、seesaaはShift_JISだったはずなのでShift_JISで送れ
662 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:07:16 ] >>658 CGIファイルのパーミッションを実行可能に変更していないのだと予想
663 名前:658 mailto:sage [2008/05/25(日) 16:41:39 ] 解決しました。 ありがとうございました。
664 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 17:38:53 ] 【プログラム】 #! ruby -Ks class Ice def sizeIce(size) print(size) end end class IceName < Ice def initialize(name="未設定") @iceName = name end attr_accessor :iceName end class IceSize < Ice def initialize(size="未設定") @iceSize = size end def sizeIce(size) super(size) print("サイズです。\n") end attr_accessor :iceSize end ice = [IceName.new("メロンソーダ"),IceName.new("レモン&ライム"),IceName.new("スイカバー")] ice2 = [IceSize.new("中"),IceSize.new("小"),IceSize.new("大")] for k in 0..ice.size-1 print(k+1,"個目 ",ice[k].iceName,"は",ice2[k].sizeIce(ice2[k].iceSize)) end
665 名前:664 mailto:sage [2008/05/25(日) 17:44:59 ] 【表示される結果】 中サイズです。 1個目 メロンソーダはnil小サイズです。 2個目 レモン&ライムはnil大サイズです。 3個目 スイカバーはnil 【表示したい結果】 1個目 メロンソーダは小サイズです。 2個目 レモン&ライムは大サイズです。 3個目 スイカバーは中サイズです。 昨日からrubyの勉強を始めました。 初めてのプログラミングなので、わからないことが多々あり苦戦しております・・・。 上記のプログラムを実行するとエラー等は出ないのですが、表示結果が思い通りになりません。 なぜ一番最初に「中サイズです。」が表示されるのかすら理解できません。 一体どの部分に問題があるのでしょうか? わかりにくいプログラムだとは思いますが、もしよろしければ回答お願いします。 ※このプログラムは、練習目的で作っているのでわざわざ面倒なことをしています。
666 名前:664 mailto:sage [2008/05/25(日) 17:46:44 ] 訂正 【表示したい結果】 1個目 メロンソーダは中サイズです。 2個目 レモン&ライムは小サイズです。 3個目 スイカバーは大サイズです。 でした。すいません。
667 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 17:59:29 ] (半分ほど作り変えた時点で悩む) あー、まあいいや print は引数をその場で画面に表示し、返り値として nil を返す 表示部とデータ部を完全に分けて考えるべき 最終的なデータを最後に print で表示するだけ、という考え方な Ice.sizeIce で print を使っているのはよくない
668 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 18:16:52 ] てゆーか、継承の考え方がおーざっぱに間違ってね? 「アイスの価格」が「アイス」というクラスを継承するはずがない 「アイスの名前」や「アイスの価格」は「アイス」というクラスの変数であるべき class Ice def initialize(name=nil, size=nil) @name = name @size = name end attr_accessor :name, :size end data = [ ["メロンソーダ","中"], ["レモン&ライム", "小"], ["スイカバー", "大"] ] products = Array.new data.each do |a| products.push(Ice.new(a[0], a[1])) end products.each_with_index do |ice, i| puts "#{i+1}個目 #{ice.name}は#{ice.size}サイズです" end
669 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 18:22:51 ] 抽象的に「アイス」があって、 「価格のあるアイス」とか「サイズのあるアイス」とか「価格とサイズのあるアイス」と 具体化...と考えているのかもしれないが、そういう継承の使い方はあっさり破綻するので やめたほうがよい。 まずは合言葉「継承は最後の武器だ」かと。
670 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 18:34:03 ] >>664 k == 0 の時の出力 中サイズです。 1個目 メロンソーダはnil k == 1 の時の出力(最初の行は↑の行に続けて出力) 小サイズです。 2個目 レモン&ライムはnil k == 2 の時の出力(は省略) 「?サイズです。」はice2[k].sizeIce(...)メソッド実行時の出力 「?個目 ***はnil」がループ内のprintの出力 最後のnilはice2[k].sizeIce(...)の返却値 # sizeIce(...)最後のprintの返却値 # k== 0 の時 print(1,"個目 ","メロンソーダ","は",nil) になっている 問題は「経験が足りない」事 もっとたくさんソースを書いて実行してデバッグすれ
671 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 18:42:30 ] マニュアルには「返り値」「戻り値」があるけど「返却値」はないな …なんで2種類あるんだ マニュアルくらいどっちかに統一せえ
672 名前:664 mailto:sage [2008/05/25(日) 18:53:18 ] >>667-670 レスありがとうございます。 どうやら自分の言葉足らずだったようです。 現在こちらのサイトさん(www.rubylife.jp/index.html )のRuby入門というところを一番上から進めています。 現在は「Rubyオブジェクト指向プログラミング」の「クラスの継承」の部分まで読み終えています。 ひとつの項目が終わるごとに、その項目で覚えたメソッド等を使ってプログラムを作る練習をしているのです。 なので今回は「クラスの継承」「オーバーライド」「super(引数)」の3つを使ったものを作ろうとしていました。 ・・・と自分で考えたらあんな感じになってしまったのですが、このような使い方はそもそもおかしいようですね。 色々混ぜすぎて自分でも分けがわからなくなってましたし。 次回からはもっと処理を個別に分けてプログラミングするように心がけます。 クラスの継承は結構重要そうな感じだけど、実際はそこまで実用性があるわけじゃないのかな・・・。 一番最初に「中サイズです。」が出てきてしまう理由や、「nil」が表示される問題などは解決しました。 >>668 さんのような配列の書き方は非常にわかりやすい・・・次からはこのように表記したいと思います。 大変わかりやすく解説していただきありがとうございました。
673 名前:デフォルトの名無しさん [2008/05/25(日) 20:35:05 ] すみません、マニュアルみたりしてるんですが、見落としてるのか分からないので、教えてください。 クラスの定義の中にたまに、「:」がでてくるんですが、:の意味を教えてください。 たとえば、 Railsだと、「t.string :title」な表現があったり、 インスタンス変数のアクセサを作るときは、「attr_accessor :x, :y」とかしますよね。 この:の意味が掴めないですorz class CreateArticles < ActiveRecord::Migration def self.up create_table :articles do |t| t.string :title t.text :description t.string :image_url t.decimal :price t.datetime :date t.string :vender t.string :category t.timestamps end end def self.down drop_table :articles end end
674 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:41:49 ] それはシンボルというものだ
675 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 21:18:50 ] というか、Symbol クラスのインスタンスだと説明したほうがいいかも Rubyのメソッド名や変数名は内部的に数値で管理されてる (2455番目に登録されたメソッド、とかそんな感じで、オブジェクトIDとは別物) シンボルは、その数値に文字でアクセスすることができる機構だ 結果として、「文字」でメソッド自体を指し示すことができる 普通に foo と書いたら foo メソッドが動いてしまって「foo というメソッド」を指し示すことができない しかし、そのとき「メソッド foo を示す登録番号」という指定の仕方ができるとしたら、「foo というメソッド」という指定の仕方ができる 腹減ってるので自分でも何書いてるかわからなくなってきた 試しに適当な変数作って、それと同じ名前のシンボルに to_i してみ それが内部整数値だ シンボルを id2name するとシンボルに対応する文字列が返る 時々「シンボルを文字列にする」という表現で説明されるがこれは本当は誤り
676 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 21:26:03 ] 余計わからなくなるので>>675 は読まなくてよし もう遅いかもしれんが
677 名前:デフォルトの名無しさん [2008/05/25(日) 21:31:28 ] >>674 >>675 さきほど、rubyの公式にアクセスできたので、FAQ見てたらシンボルということは分かったところで、余計に理解に苦しんでましたが、、、 >>普通に foo と書いたら foo メソッドが動いてしまって「foo というメソッド」を指し示すことができない >>しかし、そのとき「メソッド foo を示す登録番号」という指定の仕方ができるとしたら、「foo というメソッド」という指定の仕方ができる 神レスありがとうございました!よく分かりました!!
678 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 10:28:13 ] www.ruby-lang.org/ が落ちているような。
679 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 10:32:27 ] 500とかはいつものことだろ、と思ったが router2.netlab.jp で止まっててアクセス自体ができないな
680 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 17:39:26 ] SymbolとStringの違いは「優しいRailsの育て方」本が一番わかりやすかったな。 あのキモいアイドルAAを我慢できればの話だけど。
681 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 20:55:34 ] Rubyで作成したGUI上で動くちょっとしたソフトウェアを windowsクライアントに配布して利用してもらいたいとき、 クライアントのPCにもRubyをインストールしておかないと 実行できないでしょうか?
682 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:04:09 ] >>681 exerbでぐぐってみるとか。
683 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:05:54 ] Ruby/Tk以外で作らないと駄目だな
684 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:18:10 ] >>682 、683 exerbを利用すればいいのですか。 新しいツールは、勉強もかねてRubyで作ることにします。 さっそく、本を買いに行ってきます。 レスありがとうございました。
685 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:20:38 ] rubyscript2exeもどうぞ。
686 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:26:22 ] おいおい、Rubyで自分以外のためにGUIツールを作るなんてアホのすることだぞ 渡されたほうも迷惑だからそういうことはやるな
687 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:37:59 ] じゃあ、何で書くのがいいのさ? C#とか?
688 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:47:19 ] うん、あのね、どうやら 「もともとのGUI対応」 「付け足しのGUI対応」 の区別がつかないらしいんだ、初心者の人
689 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:55:42 ] そんなにも区別すべきなのか、というのも興味深い問題だと思うぜ まあ、とってつけたGUIシステムで火傷したことがある人ばかりだから不評なんだけどさ
690 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 12:27:50 ] Winで動かす物はMSの道具立てでやった方が、楽だし誤解や面倒ごとも少ないのは確かだしな まあ仕方ないさ
691 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 13:10:52 ] これはどういったプロジェクトなのでしょうか? ttp://raa.ruby-lang.org/project/ghdghdgh/
692 名前:デフォルトの名無しさん [2008/05/27(火) 15:14:16 ] 一行が長くなって読みにくい場合、改行したくなるのですが、 どうしたらイイですか?
693 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 15:19:21 ] >>692 改行すればいいじゃん? バックスラッシュ \ を使えば改行を隠すことができる 他にも「区切れのいいところ」で普通に改行することもできるが、 このへんは他の人のスクリプトを読んで参考にするといい
694 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 18:00:06 ] 動的メソッドって?
695 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 18:09:56 ] Rubyの奥義のひとつ(いやRuby以外でもできるけど) 動的に定義されて動的に実行されるメソッドの8割は本当は静的でもなんとかなる
696 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:56:33 ] 実行するまで在るか無いかわからないってこと?
697 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:02:04 ] マクロの代わりに使う例も多いと思う。
698 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 17:13:30 ] まるごとRuby!のVol.1を眺める ttp://www.amazon.co.jp/dp/4844325795/ …endの連続はLispの閉じカッコの連続っぽくね?というのは それはそれでヒドいと思う 現時点でのRubyの紙媒体のまとまった情報が欲しい人向け スレ的にはちと情報が重いか
699 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 17:37:44 ] Railsレシピブックのほうに目が行ってしまった
700 名前:デフォルトの名無しさん [2008/05/30(金) 18:24:17 ] #!/usr/bin/env ruby -Ku とファイルの先頭に書いて実行すると、 env: ruby -Ku: No such file or directory と言われてしまいます。 envで-Kuをつけたいのですが、 言われないようにする方法はどのようなものがありますでしょうか? 環境は FreeBSD 6.1-RELEASE-p23 です。
701 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 18:52:34 ] 基本的には小手先では無理 env コマンドは複数の引数をうまく受け取ることを期待できないし、環境によっても動作が違う たとえば、その記述は同じ FreeBSD の 5.x では期待通りに動作する
702 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 18:56:33 ] いやenvがどうこうというよりカーネルが…
703 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 18:59:33 ] あ、どうするかだっけ #!/usr/local/bin/ruby -Ku と書くこと ダウンロードして即実行できないことについて文句言う的外れのアホは無視 実行するスクリプト内容を確認しないような人間をユーザーに引き込むと後々癌になるぞ で、自前で複数環境で使いたい、という場合が問題なんだが
704 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:20:38 ] >>700 shebang行(#! で始まる)に渡せる引数は1つ、という実装が多いから無難なのは、 #!/usr/bin/env ruby $KCODE='u'
705 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:32:52 ] ruby -Ku と $KCODE='u' はカレーとウンコくらい違う ちなみに Ruby1.9 ではカレーとウンコが同じになった
706 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:37:32 ] >>705 あれ? $KCODEは無視されるんじゃなかったか?
707 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:45:49 ] warning: variable $KCODE is no longer effective; 値を参照しても代入しても常に nil という頑なな感じの動作
708 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:48:01 ] end end end end ))))
709 名前:700 [2008/05/31(土) 04:50:05 ] 調べたらFAQ的な質問みたいですね。 解決法 ・フルパスでrubyのパス記述 >>703 ・$KCODEで指定 >>704 パス関係なくするためにenvにしたかったけど、意味ないなあw ところで、$KCODEで指定する場合は、 ファイルが本当にUTF-8の文字列(例えば日本語)を含んでいても大丈夫なんでしょうか?
710 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 06:05:04 ] 大丈夫
711 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 06:11:40 ] >>686 普通に喜ばれたけどw
712 名前:700 [2008/05/31(土) 06:33:23 ] >>710 ありがとうございます。 では、ちょっとずれてくるのですが、>>705 の > ruby -Ku と $KCODE='u' はカレーとウンコくらい違う というのはどういう違いなのでしょうか? どこかに簡単な解説などないでしょうか?
713 名前:700 [2008/05/31(土) 06:34:05 ] いえ、気になったというより、変なところでハマりたくないので知っておきたい、 といった理由からです。
714 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 09:00:31 ] >>709 大丈夫じゃない場合がある リファレンスマニュアルにも記述があるけど $KCODEの指定が効いてくるのは、$KCODEへの代入が実行された後なので 最初に読むファイルに日本語が含まれていると、パースエラーになることがある 詳しくはFAQの10.2 ttp://www.ruby-lang.org/ja/man/html/FAQ_C6FCCBDCB8ECA4CEBCE8A4EAB0B7A4A4.html
715 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 13:57:32 ] 問題になることがあるのはShift_JISの場合。 EUC-JPはUTF-8にはそういう性質はない。 -Kを指定してあれば日本語を識別子に使うこともできるが$KCODEでは無理 という違いもあるが、それは正直お薦めしない。 ちなみに-Kは1.9でもきくが、マジックコメントのほうが推奨。 #!/usr/local/bin/ruby # -*- encoding: ut-f8 -*-
716 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 20:25:40 ] #!/usr/local/bin/ruby # -*- coding: utf-8 -*-
717 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 23:56:12 ] HOME['ENV'] って何だよ・・・
718 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:12:49 ] >>717 誰か間違えてそうでありそうで無いな
719 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:17:31 ] 図書館にこの本があったので借りてみて一通り目を通してみました www.amazon.co.jp/dp/4894714531 で、次に何かRuby買ってみようと探してみて www.amazon.co.jp/dp/4274066428/ これが本屋さんあったけど・・・ 上のと同じ本?
720 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:07:13 ] 今なら下がお勧め