1 名前: 【大吉】 mailto:sage [2009/01/01(木) 13:13:22 ] プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。 【Ruby1.9 は不安定な開発版であり初心者には全く向きません】 【最新安定版の Ruby1.8.7 の使用をお勧めします】 ※1.8.7 は1.8 と 1.9 の橋渡しをするためのリリースです。 1.9 の新機能の一部が利用可能なので初学者にお勧めです。 ※ただし十分安定しているとは言えないので プロダクション環境での利用にはお勧めしません。 関連スレやURLは>>2-8 あたりを見てください。Ruby on Railsの質問はRailsスレへ。 ■質問する人へ 質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。 ・モジュール名やエラーメッセージでググる ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/ ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ 質問には以下を書くこと。へたくそな質問は再提出を要求される。 ・詳しい内容(「動きません」「うまくできません」では回答しようがない) ・エラーメッセージ(自力で訳さずなるべくそのままで) ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる)) ・最終的にやりたいこと(もっとよい方法がある場合が多いので) 回答してくれた人には「ありがとう」のひとことをいってあげて。 ■回答する人へ 相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。 それができないならこないこと(だって初心者スレだもん)。 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
2 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 13:14:07 ] 【よくあるしつもん】 Q: いちからRubyを始める初心者向けのRuby入門書は何がおすすめでしょうか? A: プログラム作成の初心者だったら 「たのしいRuby 第2版 Rubyではじめる気軽なプログラミング」 www.amazon.co.jp/dp/4797336617/ 他の言語経験があるんだったら 「プログラミングRuby 第2版 言語編」 www.amazon.co.jp/dp/4274066428/ 「初めてのRuby」 www.amazon.co.jp/dp/4873113679/ 「Ruby Way 第2版」 www.amazon.co.jp/dp/4798115339/
3 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 13:19:01 ] ■前スレ Ruby 初心者スレッド Part 23 pc11.2ch.net/test/read.cgi/tech/1227123021/ ■関連スレ Rubyについて Part 33 pc11.2ch.net/test/read.cgi/tech/1223709050/ Rubyの宿題教えてください。2限目 pc11.2ch.net/test/read.cgi/tech/1200175247/ RubyCocoa 初心者質問【Leopardバンドル記念】 pc11.2ch.net/test/read.cgi/mac/1193373811/ 【ActiveScript】RubyをWindowsで使うスレ【GUI】 pc11.2ch.net/test/read.cgi/tech/1155031689/ デザパタ + Python/Ruby/Smalltalk part2 pc11.2ch.net/test/read.cgi/tech/1175959706/ 魁け! Ruby 1.9.X pc11.2ch.net/test/read.cgi/tech/1201603546/ Rubyについて(アンチ専用) Part003 pc11.2ch.net/test/read.cgi/tech/1207233348/ 【Ruby/SDL他】Rubyでゲーム制作・総合スレッド pc11.2ch.net/test/read.cgi/gamedev/1207069887/ 【Ruby】RubyonRailsPart6 pc11.2ch.net/test/read.cgi/php/1224838013/ 【Rails】便利なRubyGemsを共有するスレ【Hpricot】 pc11.2ch.net/test/read.cgi/tech/1216829388/
4 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 13:22:21 ] Ruby>>>>>Java pc11.2ch.net/test/read.cgi/tech/1158807229/ Rubyは難しすぎ pc11.2ch.net/test/read.cgi/tech/1156496224/ 【カルト】Ruby開発者Matz【モルモン】 pc11.2ch.net/test/read.cgi/prog/1148712641/ ■公式/非公式関連リンク Ruby Home Page www.ruby-lang.org/ja/ Rubyリファレンス(よくサーバーエラーになります) www.ruby-lang.org/ja/man/ www.ruby-doc.org/ (英語) リファレンスのHTMLヘルプ版配布 elbereth-hp.hp.infoseek.co.jp/ruby.html # Windowsで便利 Ruby FAQ ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ Programming Ruby - The Pragmatic Programmer's Guide www.ruby-doc.org/docs/ProgrammingRuby/ # 好評書籍をWebで公開中、ただし英語 逆引きRuby www.namaraii.com/rubytips/
5 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 13:23:07 ] RAA - Ruby Application Archive raa.ruby-lang.org/ RubyForge www.rubyforge.org/ # Rubyのアプリやライブラリが検索できる GitHub RubyGems gems.github.com/ github.com/ # 最近は RubyForge より GitHub が人気 日本Rubyの会 公式Wiki jp.rubyist.net/ # メニューに表示されていない埋もれた情報ページ多数 Rubyist Magazine - るびま jp.rubyist.net/magazine/ # コードレビューが好評 Ruby hotlinks 五月雨版(日記やblogのアンテナ) www.rubyist.net/~kazu/samidare/ Rubyの本一覧 www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Ruby%A4%CB%B4%D8%A4%B9%A4%EB%BD%F1%C0%D2 <rubyXML/> www.rubyxml.com/ Matzにっき(Ruby作者の日記) www.rubyist.net/~matz/
6 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 13:24:18 ] ■ちょっと前にできたWiki Ruby 初心者スレッド Hiki starlet.s145.xrea.com/ruby/hiki/ Ruby Portal ruby.morphball.net/portal/ ■プレゼンテーション Ruby会議2008 jp.rubyist.net/RubyKaigi2008/ www.nicovideo.jp/tag/rubykaigi2008 Ruby会議2007 jp.rubyist.net/RubyKaigi2007/ www.nicovideo.jp/tag/RubyKaigi2007
7 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 13:31:03 ] Cで書かれたアプリの組み込み言語としてRubyを使う方法なら ttp://eto.com/d/EmbededRuby.html XmlSimpleってライブラリがあるよ ttp://xml-simple.rubyforge.org/ Ruby による Win32OLE プログラミング ttp://www.morijp.com/masarl/homepage3.nifty.com/masarl/article/ruby-win32ole.html
8 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 15:34:51 ] . \\ ィ ─ァ 立 |了 // ┴ ∠ 」 口 | ,ィ' ̄` ー、_ ((”Y:ハMリソY ち ,ゞ-{|モュ tチ|ト. く, ,ノ⌒ヽ-、_ `tー'ゝ ワ,.イ:`イ ,.ィ'" 入 ヽ i_,,. /::::::_:ィヤ'Y::/7`ー-ゥ=、-―=ー―--y'" ,./_ゝ i Y }_ /:::イ キ/|./::/f / /| { ヤi | |ヘ、_ /:/Y ヤ"|:::| キィ、 ヤフ`ー--=、..,,__i i / | `ー' イ/Yー' /::/イ i. , i::| /::::`Y"::\ ∨. |. 変 .| >>1 .| Yモ`、_,,.=-―ー{(.>、Y i || /::::::::::::::::::::::\. ヽ } 身 .| 乙 | `ー--zー―-イノ:::::::ノ }{ ):::::::::::::::::::::::::::\ } / 部 .| 部 | /:::::::::::::::::::::::::/ リ Y:::::::::::::::::::::::::::∧ i{ノ| 部 .| 部 | /:::::::::::::::::::::::::イイT"T"T ̄| ヤー―--==;;;_::::} | 長 | 長 |  ̄ ̄" ̄`ー/7フ ̄ii ̄ii ̄iT∧ ヾ . | | |
9 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 15:38:05 ] >ruby -v ruby 1.8.6 (2007-06-07 patchlevel 36) [i386-mswin32] (1) 変数を取り消すことはできるのでしょうか? var = "somthing" (varを取り消す処理) p defined? var #=>nil (2) 手続きオブジェクトのブロックパラメーターにデフォルト値を設定する方法はあるのでしょうか? proc = lambda { |i=1| puts i } proc[2] #=>2 proc[] #=>1
10 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 16:06:45 ] DBマイグレーションでデータベースにカラムを作ろうとしましたが 以下のようなエラーが出て困っています. ** Invoke db:migrate (first_time) ** Invoke environment (first_time) ** Execute environment ** Execute db:migrate rake aborted! undefined method `each' for #<Mysql:0x351bf78> コードは次の最低限のものです class Test < ActiveRecord::Migration def self.up t.timestamp end def self.down end end どうすればいいかどうかよろしくお願いします
11 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 16:25:34 ] >>9 >(1) 変数を取り消すことはできるのでしょうか? ないんじゃないかなあ。 >(2) 手続きオブジェクトのブロックパラメーターにデフォルト値を設定する方法はあるのでしょうか? 1.8 ではできない。1.9 ではできるらしい。 obj = proc {|x=10| p x } obj.call(123) #=> 123 obj.call() #=> 10 >>10 > undefined method `each' for #<Mysql:0x351bf78> というエラーだから、PostgreSQL使おうとしているのにMysqlが使われているのが問題の原因じゃないかな。
12 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 16:57:31 ] >>11 (1)は無理だけど、(2)は1.9でできるんすね サンクス
13 名前:10 mailto:sage [2009/01/01(木) 16:57:44 ] >11 どうもです PostgreSQLをいっさい使わず mysqlのみない設定のつもりなんですが, database.yml以外に使用するDBを指定する場所があるのでしょうか? 設定を変更したい場合どこをいじればいいのでしょう... すみませんがお願いします. 現在は以下の設定 development: adapter: mysql encoding: utf8 database: dbname username: user_id password: * host: localhost test: adapter: mysql encoding: utf8 database: dbname_test username: user_id password: * host: localhost production: adapter: mysql encoding: utf8 database: dbname_production username: user_id password: * host: localhost
14 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 17:21:48 ] >>13 すまん、「PostgreSQL使おうとしている」なんてどこにも書いてなかったな。勘違いしてた。 使ってるOS名と、Railsのバージョンを書いてみるといいかもね。
15 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 17:24:18 ] 「undefined method `each' for Mysql」でぐぐると、こんなんが見つかった。 けっこう問題になってるみたいね。 ttp://plaza.rakuten.co.jp/tkrdorg/diary/200609010000/ ttp://plaza.rakuten.co.jp/tkrdorg/diary/200609040000/
16 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 17:27:24 ] なんかMySQLのバージョンが問題らしい。 5.1はだめ、5.0.24もだめ、5.0.67だとうまくいったとか。 ttp://www.nabble.com/rake-aborted!-undefined-method-%60each'-for--%3CMysql:-td20760472.html
17 名前:10 mailto:sage [2009/01/02(金) 04:14:35 ] MySqlのバージョンを5.0.67に落とすことで正常に動作しました. >ALL ありがとうございました しかし,最新版使うから正常に動かないって... いろんな環境で使われるソフトウェアって大変だなぁ...
18 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 04:19:14 ] x.0->x.1の大バージョンアップで何か仕様が変わったかしてかみ合わなくなったんじゃない? 例えば、5.0.72なら動きそうな気配。
19 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 10:27:40 ] ネットを移動していくプログラムを動かしていると、 相手からの反応がないと(もしくはaddressにたどり着けないと?) time outでrescueに引っかかることなく、rubyプログラムが終了してしまうんですが。 そのまま次を続けるのは、どうすればいいですか。
20 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 10:32:06 ] 引数無しrescueはStandardErrorとその子クラスしか補足しないから TimeoutError( < Interrupt < Exception )が補足できない。 rescue TimeoutError rescue Interrupt rescue Exception のどれかを使う。
21 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 14:10:18 ] >>20 ありがとうございました。 助かります。
22 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 20:29:59 ] ロングIPアドレスを普通のIPアドレスに変換するライブラリってありますか?
23 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 20:33:27 ] ロングIPアドレスって何?
24 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 20:40:55 ] 自己レス。32オクテットを10進整数とみなしたモノか。 [192*2**24 + 168*2**16 + 0*2**8 + 1].pack('N').unpack('CCCC') こんなもん?
25 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 20:41:13 ] 32ビット4オクテットの間違いorz
26 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 20:41:17 ] >>23 irb(main):001:0> require 'ipaddr' => true irb(main):002:0> IPAddr.new("192.168.1.1") => #<IPAddr: IPv4:192.168.1.1/255.255.255.255> irb(main):003:0> ip1 = IPAddr.new("192.168.1.1") => #<IPAddr: IPv4:192.168.1.1/255.255.255.255> irb(main):004:0> ip1.to_i => 3232235777 ↑これです この例なら、3232235777から192.168.1.1を得たいのです 自力で計算してもいいですが、既にあるならそれを使いたいなと
27 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 20:45:49 ] 最後に .join('.') しないとな。
28 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 21:38:08 ] IPAddr.new(3232235777)
29 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 21:40:06 ] IPAddr.new_ntoh(3232235777)
30 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 21:57:59 ] new_ntohの引数はネットワークバイトオーダーのバイト配列とのこと $ truby -ripaddr -ve 'puts IPAddr.new_ntoh(3232235777)' ruby 1.9.1 (2009-01-02 patchlevel-5000 trunk 21272) [i386-darwin9.6.0] /usr/local/lib/truby/1.9.1/ipaddr.rb:104:in `ntop': undefined method `unpack' for 3232235777:Bignum (NoMethodError) from /usr/local/lib/truby/1.9.1/ipaddr.rb:96:in `new_ntoh' from -e:1:in `<main>' $ truby -ripaddr -ve 'puts IPAddr.new_ntoh([3232235777].pack("N"))' ruby 1.9.1 (2009-01-02 patchlevel-5000 trunk 21272) [i386-darwin9.6.0] 192.168.1.1 # trubyはウチのtrunk rubyの名前
31 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 22:15:57 ] >>23-30 packを見落としていました ありがとうございました
32 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 09:10:06 ] [3232235777].pack("N") [192*2**24 + 168*2**16 + 0*2**8 + 1].pack('N').unpack('CCCC') >自力で計算してもいいですが、既にあるならそれを使いたいなと もう自力で出来てるね
33 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 23:13:09 ] Emacs使っていると、ruby のファイルを書いて保存すると # -*- coding: utf-8 -*- というのが勝手に先頭につくようになったのですが、やめさせることはできますか。
34 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 23:16:47 ] できますよ
35 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 23:19:43 ] 1.9以降では実質的に必須になるから慣れておいた方がいいとは思うけど。
36 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 01:41:14 ] 結婚式2週間前、IPA勤務の新郎がつこうた tsushima.2ch.net/test/read.cgi/news/1230997845/ 仁義なきキンタマ ウイルス情報 Part80 changi.2ch.net/test/read.cgi/download/1229742858/546 546 :[名無し]さん(bin+cue).rar :sage :2009/01/04(日) 00:24:59 >>500 報告する時は、詳しく的確に、一部だけ報告しないでお願いね [殺人] Administrator(20081230-101522)のキンタマ.zip 2,263,376,860 09ed98f10653c3fc2555621ceeed6bc33e8f6228 [殺人] Administrator(20081230-101522)のメール.zip 59,426,579 4da9459b30eec31f58b86530dbb48d1cf86ef4be [写真集][IV] Administrator(20081230-101522)のアルバム.zip 2,205,946,474 9d87cc0e08dc0e3afd959fcead6c48d569787cee 膨大な量のファイル数キンタマ ファイル数 13508 フォルダ数2381 以前勤めてた会社の資料など多数 独立行政法人情報処理推進機構などの資料など無いと思うが 有るかも知れない、あまりにも数が有り過ぎる、メールなどは、古いものばかりメルマガなど膨大な量 個人情報などは、披露宴主席者などの住所、名前、電話、メール 数十人分しかしエロばっかり落としてるな ちなみに ハメ撮りscr 踏んだみたいね 早稲田実業学校中等部卒業 早稲田実業学校高等部卒業 早稲田大学政治経済学部政治学科卒業 卒論「知的財産権とインターネット技術」 当時の同大学理工学大学院の大川功 賞佳作を受賞 コンピュータ関連会社に入社ソフトウェア開発の仕事を経て 2005年に独立行政法人情報処理推進機構に入社 ソフトウェア・エンジニアリング・センター企画グループに配属 同グループ主任 岡田さん33歳 2009年1月19日結婚式・・・
37 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 02:10:22 ] >>34 なにこの役立たずなレス
38 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 10:24:44 ] >>37 なにこの役立たずなレス
39 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 17:38:56 ] >>38 なにこの役立たずなレス
40 名前:デフォルトの名無しさん [2009/01/04(日) 19:23:59 ] 100マス計算をするプログラムを書いてください。 プログラムがランダムに出題し、人間が100個の マスに回答を入力し、確認ボタンを押すと 全問正解なら回答にかかった時間を表示して終了。 間違った場合は間違った場所にカーソルが止まり、 別の値が入力されるまで待ちます。 横10個、縦10個の数字は各々11〜99までの乱数、 演算は +,-,x のみでよいです。 よろしくおねがいします。
41 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 19:38:58 ] >>40 Rubyの宿題教えてください。2限目 ttp://pc11.2ch.net/test/read.cgi/tech/1200175247/
42 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 23:06:49 ] >>40 マルチだぞ。Pythonの宿題スレにも
43 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:23:13 ] Pythonスレはすぐ回答でたのに Rubyのスレはだれも作れてないのがワロスwww
44 名前:デフォルトの名無しさん [2009/01/05(月) 01:39:06 ] 今年って平成何年だっけ?
45 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:48:50 ] 煽っても何も出ませんよ
46 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:12:31 ] 前スレで「データとパーサを分けるのは設計の常識みたいなもの」って 書いてあったけど、なんで分けたほうがいいの? そのへん解説したサイトあったら教えてもらえないだろうか?
47 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:23:44 ] 前スレ見てないけど混乱するからじゃないの? スーパプログラマならごちゃ混ぜでも大丈夫だろうけど。 AWT弄ると割と楽しいな。 rubyにもjavaのAWTみたいなの欲しい。
48 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:44:48 ] >>46 パーザの差し替えが効かなくなるから。 だから個人用なら好きにしろって言われてたでしょ。
49 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 03:42:10 ] >>46 クラスと、クラスの生成を分離するのが いわゆるFactoryパターン こう問題を分割することで、コードの見通しが良くなり変更に強くなる
50 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 05:55:40 ] I used "-d" option to run ruby. However, following errors are occured. What is the menning? Exception `LoadError' at c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:871 - no such file to load -- rubygems/defaults/operating_system Exception `NoMethodError' at c:/ruby/lib/ruby/1.8/rational.rb:78 - undefined method `gcd' for Rational(1, 2):Rational debug_mode
51 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 05:56:59 ] >>50 ups, sorry... note: last "debug_mode" string are output my code
52 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 05:57:31 ] > note: last "debug_mode" string are output my code note: last "debug_mode" string are output from my code
53 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 06:48:21 ] Rubyで、文字列として記述するさい、 \をエスケープしないで記述する方法はありますでしょうか? C#の @"c:\windows" みたいな機能です。
54 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 07:27:33 ] >>50 > Exception `LoadError' at c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:871 > - no such file to load -- rubygems/defaults/operating_system It fails to execute "require 'rubygems/defaults/operating_system'" > Exception `NoMethodError' at c:/ruby/lib/ruby/1.8/rational.rb:78 > - undefined method `gcd' for Rational(1, 2):Rational You might execute a code like Rational(1, 2).gcd, but the Rational class does not have a method named gcd.
55 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 07:50:12 ] >>53 'c:\windows'
56 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 08:52:35 ] >>55 レスありがとうございます。 シングルクォートだとそのままいけるんですね。助かりました。
57 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 09:06:48 ] >>54 > It fails to execute "require 'rubygems/defaults/operating_system'" Humm.... Ignoring this exception is no problem? > > Exception `NoMethodError' at c:/ruby/lib/ruby/1.8/rational.rb:78 > > - undefined method `gcd' for Rational(1, 2):Rational > You might execute a code like Rational(1, 2).gcd, > but the Rational class does not have a method named gcd. I found "Rational::gcd" in rational.rb ... But, the error has occurred. This is why? sample code is here. ----cut here---- #!ruby -Ku puts "hello" ----cut here---- Run command "ruby -d foobar.rb" to confirm.
58 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 10:38:35 ] require 'rubygems'って重い重い言われてるけどそんなに 重くないんだな linuxのruby1.9でnokogiriでリンクを抽出して表示するだけのコードなら require 'rubygems'するのと直接nokogiriをrequireするのとで差が無かったーよ active rubyとかだと違うのかなぁ
59 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 11:07:42 ] >>58 Ruby1.8でも比較してみるんだ!
60 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 11:20:15 ] オブジェクトを外部ファイルに格納して呼び出して使うにはどうしたら良いんでしょうか。 ちなみにオブジェクトの中身は単なるファイルのパスです。 例えば、外部ファイル path.rb の中身を、 file = 'D:/hoge.txt' とします。それを別の Rubyファイル open.rb で、 open(file) と書いて開きたいのです。
61 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 11:28:57 ] >>56 一切のエスケープをしない文字列リテラルが欲しい! シングルクォート文字列だと クォート文字をエスケープすることでクォート文字自体を含ませられる よって\自身やクォート文字直前の \ はエスケープしなければならない したがって \\ と書きたい場合は \\\もしくは\\\\にしなければならず \\PC1\share\doc\text1.txt みたいなUNCパスや c:\doc\ みたいに、最後に\が付いたディレクトリ名とかで注意が必要 '\\\PC1\share\doc\text1.txt' # => \\PC1\share\doc\text1.txt 'c:\doc\\' # => c:\doc\ 実際のことろは、ruby内で完結するならば パスの区切りは / にしとけば問題ないのだけれども dirname = <<'EOS'.chomp \\PC1\share\doc\ EOS シングルクォートのヒアドキュメントだと、まったくエスケープされないが どうしても末尾に改行がつくし、ワンライナー出来ない まったくエスケープしない代わりにクォート文字が含められなくてもかまわない文字列リテラル希望 %b!もじれつ! みたいのだとクォート文字を変えられるのでクォート自体は記述できなくてもいいんだけど
62 名前:デフォルトの名無しさん [2009/01/05(月) 12:15:45 ] なんという国際的なスレッド。。あっぱれ!
63 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:13:45 ] >>61 ワンライナーするだけなら%s記法でto_sするとか? 個人的には改行無視のバックスラッシュって使ったことないから %qをバックスラッシュ記法無効にするぐらいでもかまわないけど ハマる人はいるんだろうぁ。
64 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 15:03:49 ] C# の s = @"hogemage"; みたいなの?
65 名前:デフォルトの名無しさん [2009/01/05(月) 15:09:25 ] cygwinにruby・rubygems・rails(1.2.6)・sqlite3-rubyを入れています。 データベースにアクセス(例えばrake db:migrate)すると、↓のようなWarningが表示されます。 /home/***/depot/config/boot.rb:20:Warning: Gem::SourceIndex#search support for String patterns is deprecated Warningが出る原因、対処法などあればご教授下さい。
66 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 15:24:16 ] 2年前ぐらいのlinux環境で動いてたrubyのスクリプトを動かしたい 最新のrubyでは動かなかった 2年前だとバージョンいくつぐらいだといいのかな
67 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 15:27:57 ] >>60 何がしたいのか良く分からんが文面通りに解釈すると ---open.rb--- require 'path.rb' open(file)
68 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 15:32:00 ] >61 hoge=%(\\PC1\share\doc\text1.txt) fuga=%(c:\doc\)
69 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 15:33:06 ] >>66 1.6
70 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 15:43:15 ] >>68 >ruby -ve "puts %(\\PC1\share\doc\text1.txt)" ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32] \PC1 haredoc ext1.txt 1.9の話?
71 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 15:58:35 ] >>67 できました。ありがとうございます。
72 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 16:07:45 ] >>65 cygwinでrailsなんて無理だからやめとけ。
73 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 20:09:17 ] >>67 それだとうまくいかないんじゃない? path.rb には file = 'D:/hoge.txt' と書かれてあるから、変数fileはローカル変数だよね? require 'path.rb' しても、ローカル変数は path.rb の中だけで有効で、open.rb からは参照できないと思う。 解決策としては、fileじゃなくて$fileにするとか? >>71 なんでこれでうまくいくの?
74 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 20:13:16 ] >>73 www.ruby-lang.org/ja/man/html/_CAD1BFF4A4C8C4EABFF4.html#a.a5.ed.a1.bc.a5.ab.a5.eb.ca.d1.bf.f4 >トップレベルのローカル変数はプログラムの終了まで
75 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 21:50:33 ] >>74 げげ、しらんかった。さんくす。
76 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 21:51:20 ] >>57 Humm... It's kinda odd. It may be that the instalation of Ruby was failed??
77 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 21:55:39 ] トップレベルのローカル変数はファイル内に閉じてるよ
78 名前:デフォルトの名無しさん [2009/01/05(月) 22:09:21 ] なんという国際的なスレッド。。あっぱれ!!
79 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 22:12:31 ] Railsで "fooBarBaz" を "foo_bar_baz" に変換するメソッドって何ですか。 あと後学のために知りたいんですけど、こういう場合って何をキーワードにしてぐぐればいいでしょうか。
80 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 22:27:51 ] >>79 "キャメルケース アンダースコア rails" でググったら、それらしいのが一番上にでてきたYO! Rails 使ってないんで、よく分からんが。 recorder.komasui.org/conventions-of-ruby-on-rails#l16
81 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 22:39:03 ] >>63 書きたいのは、連続したバックスラッシュと 末尾のバックスラッシュだから それでもだめなんですよ >>64 そんな感じのが欲しい C#の @"hogehoge" だと 唯一 "" が "になるっていうエスケープのみが効くようで バックスラッシュは全部そのままになる Windowsのパスや正規表現を書くには必要だったのでしょうね C#環境をインストールしてないので、マニュアル見ただけだけですが Pythonの raw文字列とか三連クォートのraw文字列はかなり理想的なのかも? と思って調べたら 末尾にバックスラッシュが書けなかった Win版Inkscapeに付いてた2.5.1なんですけど r"""ほげほげ\""" はNGで文字列が閉じない かといって r"""ほげほげ\"""" # => ほげほげ\" マニュアル見たら raw 文字列を奇数個連なったバックスラッシュで終わらせることはできません と書いてありました
82 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 22:41:55 ] C# だと @"foo\bar\dirname\" でもおkなのは良いよね Matzパクってくれないかしら
83 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 22:43:14 ] >>80 ありがとう!
84 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 22:47:21 ] >>79 調べ方の一例 $ irb -ractive_support irb> String.ancestors => [String, ActiveSupport::CoreExtensions::String::Multibyte, ActiveSupport::CoreExtensions::String::Behavior, ActiveSupport::CoreExtensions::String::Filters, ActiveSupport::CoreExtensions::String::Conversions, ActiveSupport::CoreExtensions::String::Access, ActiveSupport::CoreExtensions::String::Inflections, Enumerable, Comparable, Object, ActiveSupport::Dependencies::Loadable, Base64::Deprecated, Base64, Kernel] このうち、目的のメソッドはInflections(語形変化)の中にある。 irb> ActiveSupport::CoreExtensions::String::Inflections.instance_methods => ["titleize", "constantize", "singularize", "classify", "demodulize", "underscore", "titlecase", "foreign_key", "tableize", "humanize", "pluralize", "camelize", "camelcase", "parameterize", "dasherize"] irb> "fooBarBaz".underscore => "foo_bar_baz"
85 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 22:49:45 ] あ。 gemで入れたactive_supportが、-rubygemsがなくても動いているのは ~/.irbrcでrequireしてるからデス… 適当に自分の環境にあわせてね。
86 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 23:40:09 ] irb(main):005:0> puts %(\\samba\test\hoge"mage") \samba esthoge"mage" だめっぽいっすね・・・
87 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 23:43:55 ] Rubyだと ファイルパスは / でかくだろJK、というのもわかるんですが ちょっとしたファイルパスのコピペでも/に置換が必要だったり、 win32のプログラムに渡すのにパスが / じゃ通らなケースが多々あったり 細かいところで不便なところがあるんですよね・・・。
88 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 23:45:21 ] >>57 Ok. I see. I will re-install ruby programs. Thanks all. Best regards,
89 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 23:46:16 ] ups.. s/>>57 />>76 /
90 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 23:53:39 ] >r"""ほげほげ\""" はNGで文字列が閉じない >かといって >r"""ほげほげ\"""" # => ほげほげ\" r"""\"ほげほげ""" # => \"ほげほげ r"""ほげ\\ほげ""" # => ほげ\ほげ >C# だと @"foo\bar\dirname\" でもおkなのは良いよね >Matzパクってくれないかしら いちどVBのマニュアル見るといいよ
91 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 00:06:50 ] > いちどVBのマニュアル見るといいよ なぜVBが出てくるのかさっぱりだが とりあえずどの辺を読めばいいのかkwsk
92 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 00:37:24 ] 何で最後に \ が来るような文字列が必要なの? 最後が \ の時はディレクトリ、みたいな判断でもしてるとか?
93 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 01:06:33 ] ライブラリ(Rubyで書かれたかどうかは問わない)が そういう文字列を欲しがることは結構ある。
94 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 01:15:43 ] てかなんでwindowsのパス区切りは\なんだ? \\にしたりしなかったり一体どれだけの混乱を強いていると思ってるんだ
95 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 01:22:45 ] +がエンコードできないですけど、どうやればいいでしょうか。 p URI.escape("+") 結果 "+" ってなっちゃうですけど。
96 名前:デフォルトの名無しさん [2009/01/06(火) 01:50:29 ] >>95 + って空白文字を表すんじゃないの?
97 名前:96 [2009/01/06(火) 01:54:14 ] ごめんうそ。
98 名前:デフォルトの名無しさん [2009/01/06(火) 01:54:26 ]
99 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 02:10:52 ] >>95 URI.escapeはURIの中に出てきたらおかしいものだけをエスケープする。 +はURIの中に入っていても全く問題ないのでエスケープされない。 +をエンコードしたいなら、CGI.escapeを使えばおk。
100 名前:デフォルトの名無しさん [2009/01/06(火) 02:19:22 ] _ /,.ァ、\ ( ノo o ) ) R )ヽ ◎/(. F (/.(・)(・)\ . C (/| x |\) 嫁 //\\ . (/ \)