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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
75 名前:71 mailto:sage [2008/01/18(金) 05:35:31 ] 訳あって、10桁に揃えたいんです… とりあえず、無理やりこんな感じで解決した事はしたのですが… sprintf("%010u", [Time.now.to_s.hash].pack('L').unpack('L')[0])
76 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 07:12:17 ] 二回実行されてんじゃないの?
77 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 08:35:00 ] String#hash再定義したら?
78 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 12:06:59 ] x86-64版rubyとみた
79 名前:71 mailto:sage [2008/01/18(金) 18:04:42 ] >>76 う〜ん、二回実行されている事はないと思うのですが… >>77 とりあえず、>>75 の方法で解決出来たので、これでやってみます。 >>78 そういうのがあるんですか。 もしそうならそれが原因でしょうね。
80 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 18:23:17 ] Time.now.to_s.hashが時折返す負数が問題ならば sprintf("%010u", Time.now.to_s.hash % 10000000000) のようにすれば一応は収まるような気がする。
81 名前:デフォルトの名無しさん [2008/01/18(金) 19:12:19 ] ちょっと確認させてください。 正規表現スレかプログラム初心者で問う事かもしれないと、 思ったんですが特定の書籍の記述についての質問なので こちらでさせてくだされ。 「オブジェクト指向スクリプト言語Ruby(まつもと氏/石塚氏 共著)」の 78ページと81ページにある /\w\w\w+,?\s*(\w\w\w)\s*[\d:]+\s*(\d{4})/ 最初の英数字三文字の一回以上の繰り返しのあとにカンマがあります。 これはメタ文字ですか? それとも「+と?」と「+?」を書き分けるためのものですか?
82 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 19:32:52 ] >>81 メタ文字関係ない。まごうかたなき "," という文字。 メールヘッダなんかに使われる時刻文字列にマッチする正規表現だね。 "Fri, 18 Jan 2008 19:30:43 +0900" みたいな文字列で、最初の部分に曜日があるんだけど、そこにマッチする。
83 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 20:14:23 ] むしろカンマの後の?がメタ文字だな。
84 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 20:21:56 ] >>82-83 つかえが取れました。感謝!
85 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:05:33 ] つかえとっちゃいかんだろw
86 名前:11 mailto:sage [2008/01/19(土) 00:47:43 ] わかりにくかったので・・・もう一度・・・ class String def levenstein(other, ins=1, del=1, sub=1) # ins,del,subは重みつきコスト return nil if self.nil? return nil if other.nil? dm = [] # 距離行列 # 最初の行の値を初期化する dm[0] = (0..self.length).collect { |i| i * ins } fill = [0] * (self.length - 1) # 最初の列の値を初期化する for i in 1..other.length dm[i] = [i * del, fill.flatten] end # 行列に値を入れる for i in 1..other.length for j in 1..self.length
87 名前:11 mailto:sage [2008/01/19(土) 00:48:21 ] dm[i][j] = [ dm[i-1][j-1] + (self[j-1] == other[i-1] ? 0 : sub), dm[i][j-1] + ins, dm[i-1][j] + del].min end end #行列の最後の値が文字列間のレーベンシュタイン距離となる dm[other.length][self.length] end u1 = gets u2 = gets yyy = u1.levenstein(u2) puts yyy #yyyが距離になります。 end よろしくお願いします。
88 名前:デフォルトの名無しさん [2008/01/19(土) 18:39:10 ] クッキーを設定するcgiをhtml中にimgタグで記述して そのcgiを、htmlと同一サーバ内に置いてhtmlにアクセスした場合は 問題なくクッキーが設定されるのですが cgiを別サーバに置いて、外部呼出しにした場合 Mozilla系のブラウザでは問題ないのですが、IEの場合クッキーが設定されません… 以下がクッキーを設定するコードです。 Cgi = CGI.new cookie = CGI::Cookie::new({'name' => 'TEST', 'expires' => Time.now + 200}) Cgi.out("cookie" => cookie){''}
89 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:00:55 ] よくわかんねーけど dm[i-1][j-1] + (self[j-1] == other[i-1] ? 0 : sub), の行をどうにかすればいいような気がする
90 名前:11 mailto:sage [2008/01/19(土) 19:09:21 ] >>89 さま dm[i-1][j-1] + (self[j-1] == other[i-1] ? 0 : sub), dm[i][j-1] + ins, dm[i-1][j] + del のところをいじれば良い・・・ 多分sub.ins.delそれぞれがij行列の奇数要素で行われた場合 sub * g1 gi = gets みたいにできればいいかなって思うんですが、、、 うまくかけません。。。
91 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 23:53:36 ] >88 Mozillaがセキュリティぶっちぎってるだけのような…… てゆーかXSSじみたことをさせようとしてるように見えるんだが cgiを別サーバに置く理由は? 負荷とか実行権限ないとか?
92 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 00:08:33 ] クッキーは全くの別ドメインからは読めないよね www.example.comとhoge.example.comならできるけど、www.example.comとwww.example.jpではダメ 前者でIEが動作しないってのはIEのクッキー設定で厳しくなってるだけのような気もするが
93 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 00:17:10 ] 機種依存文字を含むファイル名のファイルを扱う方法ってありますか?
94 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 00:29:08 ] お着せの方法はないから自前で何か考えるしかないねえ
95 名前:93 mailto:sage [2008/01/20(日) 00:42:18 ] >>94 う〜ん、そうですか。 やっぱり機種依存文字を含んでる時点でもうよろしくないですよね。 なにかしらの回避策を考えてみます。どうもです。
96 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 00:53:34 ] 機種に依存したスクリプトでいいじゃん
97 名前:88 mailto:sage [2008/01/20(日) 01:38:05 ] >>91 いや、別に悪意のある事をしようとはしてないです。 cgiを別サーバに置く理由は、ちょっと負荷が気になるので メインのhtmlがあるサーバに置きたくないだけなんです。 >>92 一応、問題なく外部呼出しからクッキーが設定出来たFirefoxで見ると クッキーのpathはcgiがあるサーバのものになってます。 もし下の様な場合 www.main.com/ck.html ←imgタグでcgiの呼び出しを記述した観覧用のhtmlがるURL www.cgi.com/ck.cgi ←クッキーを設定するcgiのURL "www.main.com/ck.html " にアクセスすると Firefoxのクッキーのパスは "www.cgi.com/ " になってました。
98 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 01:56:55 ] >>91 Mozzilaは他のドメインのクッキー上書きできるのか?w
99 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 07:08:35 ] >>97 「アクセスしたサイトからのクッキーのみ許可」が出来るブラウザって 結構あるし、自分はそれが出来るブラウザでは必ず設定してるけど、 そーゆー事する人には提供しなくてもいいサービスなの?
100 名前:デフォルトの名無しさん [2008/01/20(日) 12:37:48 ] 現在ruby.exeにスクリプトのパスを渡して実行しているのですが、 スクリプトをutf8で書いているため出力がutf8です。 スクリプト自体に変更を加えず、つまりruby.exeへの変数を弄くって出力を utf8からShift_JISにすることは出来ないでしょうか? 宜しくお願いします _ _
101 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 13:04:42 ] Ruby1.9なら、LANGをja_JP.ShiftJIS系統にすれば default_externalがうまいこと変更されるんじゃないかな。
102 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 13:06:19 ] >>101 >>7
103 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 13:08:23 ] >>100 難しいこと考えずに出力後にShift_JISに変換すれば用は足りると思われ
104 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 13:32:02 ] >>103 そんな方法があるのか? あるなら俺も知りたい Windows環境だとShift-JIS以外の出力が文字化けするのが……
105 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 13:33:57 ] 出力後->出力直前?
106 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 13:36:00 ] C:\>ruby -r 'nkf' -e "puts NKF.nkf('--euc','日本語です')" ニ・ワク・ヌ、ケ C:\>ruby -r 'nkf' -e "puts NKF.nkf('--euc','日本語です')" | nkf -s 日本語です 標準出力に関してはこういうことでは… ファイルに書き出したのがShift_JIS以外だってのはファイル探して変換かけるとか
107 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 13:49:35 ] そういう時にこそIO.writeを書き換えるんだ
108 名前:デフォルトの名無しさん [2008/01/20(日) 16:23:03 ] Structのvalueに対してmap! { |n| n[/\d+/}みたいなことをするにはどうしたらいいんでしょう? #<struct report="3件(3人)", inheritor="1品", comment="4件のコメントを読む"> 上を下のようにしたいのですが。 #<struct report="3", inheritor="1", comment="4">
109 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:05:52 ] dog = Struct.new("Dog", :name, :age) class Struct::Dog def map!(&block) if block size.times {|i| self[i] = block.call(self[i]) } end self end end d = dog.new("taro", 9) #=> #<struct Struct::Dog name="taro", age=9> d.map! {|m| m*2} #=> #<struct Struct::Dog name="tarotaro", age=18>
110 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:25:02 ] 最近、StructがEnumerableだという事を初めて知った dog = Struct.new("Dog", :name, :age) d = dog.new("taro", 9) #=> #<struct Struct::Dog name="taro", age=9> mapped = d.map {|m| m*2} d = dog.new(*mapped) #=> #<struct Struct::Dog name="tarotaro", age=18>
111 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:39:01 ] >>99 今のIEは、アクセスしたサイトからのクッキー以外はデフォでブロックしますね
112 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:41:50 ] >>100-104 Windowsなら、UTF-8対応のターミナル使え 俺のお勧めは Poderosa たぶん、puttyもいけるんじゃね?
113 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:57:23 ] 業者乙 .NETの2.0入れないと動かないようなターミナルなんぞ問題外のさらに外
114 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:08:01 ] putty ってローカルで使えるの? リモートでしか使ってない
115 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:18:11 ] >>113 .NET 2.0入れてないプログラマなんぞ問題外のさらに外
116 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:18:51 ] >>113 Poderosa 3 なら、.NET 1.0で動くよ
117 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:19:45 ] 113は.Net2.0が入らない環境しか利用できないんだよ。
118 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 19:05:36 ] >>108 余計なお世話だけど それらの値はStructに代入する前に数値型に直しておく方がいいと思う
119 名前:108 mailto:sage [2008/01/20(日) 19:13:48 ] >>109-110 ありがとうございます。勉強になりました。
120 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 19:44:50 ] Rubyist Magazine出張版 Ruby on Windows ttp://www.amazon.co.jp/dp/4839926689 ちょっと気になる
121 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 19:49:20 ] この人のるびま記事はすごく良かった どの程度加筆されるかにもよるけど期待大
122 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 19:51:36 ] ちょっとまて、もう発売されてるみたいじゃないか・・・ 漏れのバカバカバカ
123 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 20:01:01 ] 立ち読みした限りでは「WindowsでRubyを使って楽をしたい」と考える人の最初の本として申し分ないように見える 載ってる例以外の事をしたいと考えたときに頼りになるかどうかはわからん あとこれはどうでもいいんだが def method_hoge arg … end ってdefで引数カッコ省略の書き方をしてるのがどーにも性に合わん
124 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 20:02:43 ] >>120 > Javaや.NET CLRなどの膨大なソフトウエア資産を活用する方法まで mjsk
125 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 20:03:28 ] JRubyとRuby.netか
126 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 20:15:59 ] >>124 ttp://book.mycom.co.jp/support/e1/ruby_windows/ > 第1回 Win32OLEことはじめ > 第2回 Excel > 第3回 ADODB > 第4回 Outlook > 弟5回 Web自動巡回 > 弟6回 Windowsアプリケーションの自動操作 > 弟7回 他の言語でのCOM > 弟8回 WMI > 弟9回 iTunes > 弟10回 Exerb > 弟11回 RubyCLR > 弟12回 RjbとApache POI > 弟13回 JRuby 5回目から弟になってるのはコピペ検知用の罠か何かか
127 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 20:31:21 ] 弟に吹いた Win32APIはあんまり書いてなさそうなのが残念だけど買っちゃおうかな OLEとか情報集めるの大変だしね
128 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 21:06:13 ] 目次見て俺でも書けるような気がしてきた
129 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 21:24:29 ] 目次よりもサンプルスクリプト見たほうがいいな
130 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:06:51 ] インスタンス変数が設定されているかどうかを調べるために class Object def instance_variable_exist?(name) self.instance_variables.include?(name) end end としているんですけど、効率が悪いので、なんかもっといい方法あったら教えてください。
131 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:13:38 ] instance_variable_defined? 使えばいいんじゃない?
132 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 23:10:07 ] >129 そう思う奴のうち実際に書ける奴は半分以下 さらにそのうち本当に書く奴は1割以下 俺? もちろん最初の書ける奴、の上限で除外orz
133 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 23:10:33 ] 上限てなんやorz 条件な
134 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 23:15:48 ] >>127 発売日に買って斜め読みした俺がコメント. ExcelやOutlook,IEについては筆者セレクションによるメソッドやプロパティが ちょろっと紹介されてる.ちょっと便利. ただ,基本は限られた紙面に広範囲な情報を詰め込んでいて 個々のトピックについてはビックリするほどに紹介レベル. ExerbRuntimeモジュールなんてメソッドすら載ってないよ. でも,いつもexe化するのにしか使って無くて,そんなモジュールの存在を知らず 普通にdl/win32使ってexeのパス取得してた俺ショック. WMIもPowershellの紹介とかで名前は聞いたことがあったし デフォルトで実行パスにwbemが含まれているので気にはなっていたけど,使えるねこれ! NICのIPアドレス取得するのにipconfig使ってて,一瞬,DOS窓が表示されるのがウザかったんだけど WMIで解決しました. 上級者は必要ないかもしれないけど,初心者は買って損のない本.
135 名前:88 mailto:sage [2008/01/20(日) 23:40:34 ] >>99 おとなしく同一サーバにcgiを置く事にしました。 お騒がせしてすんまそん。
136 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 23:46:14 ] >>131 1.9からじゃないか?
137 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 23:59:07 ] >>136 1.8.6 から追加されてる
138 名前:127 mailto:sage [2008/01/21(月) 00:02:51 ] >>134 何という親切なコメント。ありがとね そのあたりの知識も不足してる気がするし買うことにするよ
139 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:10:10 ] >>134 何という親切なコメント。ありがとね そのあたりの知識も不足してる気がするし買うことにするよ
140 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:12:50 ] >>137 安定版という意味では変わらないか
141 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:41:00 ] >>137 ホントだすまん。 Refeでしか確認してなかったよ。
142 名前:デフォルトの名無しさん [2008/01/21(月) 04:30:38 ] は!
143 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 04:40:53 ] 503 対応してくれたみたいでありがとうございます><
144 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 09:10:19 ] >>131 そんなのあるんだ。それってどのバージョンから定義されているかわかりますか。 わしがもってるマニュアルには載ってなかったので。
145 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 16:14:08 ] 1.8.6でこっそり追加だと思った マニュアルには反映されてない可能性が Emacs上でRubyスクリプト書いてる人はいる? ・rbファイルをruby-modeで読み込む ・普通に全部手書きする ・普通に別窓のコンソールでスクリプトを実行しエラーを目測 ・普通に方向キー連打で該当行に到達 ・普通に別起動のHTMLヘルプを見ながら修正 という、よく考えたらかなり無駄っぽい動きをしてる気がする俺をたしなめてくれ
146 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 16:43:12 ] >>145 めっ
147 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 17:10:38 ] > 普通に全部手書きする Emacs自体に動的略語展開があるから、 一度読み込んだファイルに書いてある単語は2回書く必要はないかと > 方向キー連打で該当行に到達 M-x goto-line
148 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 19:33:42 ] Rubyを使って大量のファイルに置換作業を加えたいんだけどどんなことを勉強すればいいですか?
149 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 19:46:23 ] >>148 それの期限を限りなく引き延ばすための技術や話術 普通に学んでる限りはそんなことをとりたてて聞いたりしないもんだ 聞かなきゃならないってことはRubyの基本やコンピュータの知識がなってないってことだから
150 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 19:51:43 ] >>148 すばらしいアイディアがあるよ itpro.nikkeibp.co.jp/article/COLUMN/20080104/290425/
151 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 20:03:08 ] >>148 入門書何冊かチェックして テキストフィルタの話してるのを買って読めばいいよ
152 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 20:13:18 ] >>149 テキストエディタの正規表現を使って置換することはできるんですが、プログラミングに関してはパーです >>150 ああ・・・でも変更を加えたいファイルはテキストベースなんです。 人間が簡単に読めるってのが売りのデータ形式なんで、データそのものを、62進数の文字列に変換 とかっていうのはいただけないです >>151 わかりました
153 名前:デフォルトの名無しさん [2008/01/21(月) 21:05:30 ] >>150 インデックスを使うっていうだけだよねこれ
154 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 21:25:14 ] >>153 もう一度読み返してみたら”それらをファイル名の集合体として別途管理する”って書いてあることに気付きました
155 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 21:32:54 ] FS(BTree系)+OSのディレクトリキャッシュで管理するか、 DBMSのテーブル(典型的にはBTree系)+DBMSのキャッシュで 管理するかの違いだけのような気がする
156 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 21:44:16 ] >>150 スラドで袋だたきされてる奴だろw
157 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 21:46:22 ] 技術的には奇特人間大賞みたいなもんで別段問題ないっす プレスリリースがアホっぽいので話題になってるだけ
158 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 21:52:33 ] まぁでも、初心者に勧めるようなもんじゃないな。
159 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 22:18:02 ] 今ならPythonだな
160 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 22:21:27 ] スラドの関連ストーリーがLyee関係になってて 可哀想だった・・・・そこまでひどくはないと思うし・・・・・
161 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 22:48:06 ] Ruby検定がコンピュータベースで全国200個所で受験可能に − @IT ttp://www.atmarkit.co.jp/news/200801/21/ruby.html やったね!
162 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 22:50:03 ] 松江詣でをする理由が無くなったな
163 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 22:58:17 ] Ruby検定なんてあったのか そんなもん取ってなんの役に立つんだ?
164 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:02:39 ] そりゃー、おめー、あれだー、現行の幾つか前のバージョンの仕様ならちゃんと理解してた、つーことをだな
165 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:12:17 ] >>163 面接のときの話のネタになる、ということが言われております
166 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 23:26:29 ] とりあえずここは初心者スレだ
167 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 11:25:47 ] >>145 ruby-mode って組み込みクラスのメソッド補完とかできないの? 他のモードにはある C-c C-c での実行とか マニュアル表示とかも無理?
168 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 15:48:50 ] すみません教えてください。 自分のIPアドレスを知るためのhttpクライアントを作ろうとしています。 普通のページは .get できるのですが、CGIの返してくるものを取れません。 以下のコードです(URLは架空)。 require 'net/http' Net::HTTP.version_1_2 Net::HTTP.start('YourIP.com ', 80) { |http| response = http.get('/ip.cgi') puts response.body }
169 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 16:07:10 ] >>168 require 'open-uri' html = open('YourIP.com/ip.cgi ').read puts html open-uriで逆に面倒になることが事前にわかってる場合以外はopen-uri使い続けれ 上記でhtmlが空になる、あるいはopenでエラーが出る場合はCGIが悪い
170 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 18:14:32 ] >>156 URLキボンヌ
171 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 21:08:40 ] # 最近rubyの質問がすくねえな >>168 まず、以下の点について答えよ ・そのCGIはお前が書いたモノかどうか ・http.post での結果
172 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:12:18 ] 質問です。 Ruby 1.9以降で正規表現関係はどう変わりますか? 鬼車がどうこうというのは、あちこちで目にするのですが、 具体的な変更点が詳しく分かるサイトとかあれば教えてください。
173 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:50:45 ] 質問です あるディレクトリにある全てのファイルの中身を見て処理を行いたい場合の定石などありますでしょうか? 自分は Dir.entries("ディレクトリ名") do |file| File.open("ディレクトリ名" + file) なんだかの処理 end end とかやっているのですが、いまいちです Dirでディレクトリ内部のファイル一覧を取得するとどうもStringにしてくれるみたいですが、Fileをうまいこと取得できたりしないのでしょうか? ついでにCやJavaでインクリメントする場合 value++ とか書きますよね Rubyだと++はないようですが、どうするのがいいのでしょうか? よろしくお願いいたします
174 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:52:23 ] value += 1 とするしかない
175 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:58:41 ] >>173 Dir.glob("./hoge/*").each do |path| File.open(path){|f| … } end おそらくこれが一番人気 他のDirもPathnameの各メソッドもビミョーに使い勝手が悪い インクリメントは作者がやだって言ってるので>>174 以外の方法はないよ