1 名前:730 [2008/09/15(月) 17:25:21 ] プログラミング言語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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
231 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 14:28:43 ] >>230 あなたはC++、Python、Javaを10年くらいやりこんで、 それで今回、rubyに入ってきたような人なの? かなりプロフェッショナルな印象を受けるが。
232 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 14:42:40 ] >>228-230 主張はだいたい合ってるし、正しい。 ただ、この問題がRubyで簡単に解決できるかというと、たぶん実装の都合で難しいんじゃないかな。 Pythonのmanglingだっけ、あれが欲しいとは思うんだけど、class_evalとかinstance_evalとかあるRubyでPythonと同じように実装可能かと言われると、分かんない。 ただ、manglingは(不細工ではあるけど)手動でできるので、mangling程度の隠蔽でよければ、手動で頑張ればできるということになる。手動だとほんと不細工だけど。 あとは、Rubyに限らずスクリプト系はどれもそうだけど、「問題があったら直せばいい」という精神をもつしかないと思うよ。 たしかにかぶる可能性はあるけど、そんなにしょっちゅうかぶることはないし、かぶったらかぶったで直せばいい。そんな感じ。
233 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 14:53:42 ] 質問です。 rubyを始めようと ttp://rubyforge.org/frs/?group_id=167&release_id=26150 からデスクトップにダウンロードしようとしたところ、99%でなぜか止まってしまいます。 cpuが100%になり、ブラウザが固まってしまいます。 186-26を落とそうとしても止まって「応答なし」の状態になってしまいます。 ダウンロードツールでもツールが固まってしまいました。 試しに他のサイトでダウンロードを試すと出来ました。 ruby186-27_rc.exeが取れません。 ブラウザはsleipnir2.8 OSはxp sp3です。 これは僕のPCの問題なのでしょうか?よろしくお願いします。
234 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 15:26:38 ] RoRってwebrickを作動させておけば アパッチいらないんじゃん。 なんでアパッチインストールさせたのさ?
235 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 17:26:47 ] >>233 exeファイルをダウンロードしたから、それをアンチウィルスソフトがチェックしているんじゃない? アンチウィルスソフトを一時的に無効にしてみるとか。
236 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:17:17 ] >>227 Java の IDE とアプリケーションサーバがいくつあるか調べてから文句言ってくれ。
237 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:21:36 ] >>229 以下を守れば大丈夫。 ・自分の足を打ちがちな馬鹿にはコードを触らせない ・Railsのフレームワーク部分のコードは一通り読む
238 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:26:43 ] 「エディターが3つ」の意味がわからない
239 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:31:05 ] >>238 エディターズレビューとかあんじゃん
240 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:37:20 ] 音声データをデジタル化するときに 周波数16kHzだから ".unpack("s*") をつかって数値化はできたんだけど 数値が25000くらいあって。 その単語は1.3秒くらいなんだけど 単位がわからなくて。わかるひといますか?
241 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:41:32 ] > 周波数16kHzだから.unpack("s*") をつかって数値化 日本語でおk てか周波数と整数のBit数ってなんか関係あるん? 書いててなんかありそうな気もしてきたが、たぶん関係ないんじゃね? というかそういうバイナリ扱うのはRubyは不得意なんだが外部プログラム使えないのか
242 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:43:38 ] まあこれ完全に専門的な内容だから 知らない人かなり多いのかな。。。
243 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:46:22 ] まあRubyをメインにやるような人はふつう知らない 外部プログラム使えというアドバイスはけっこう正しいかと
244 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:47:27 ] デジタル化されてんじゃん
245 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:48:43 ] このデータをフーリエ変換しないといけないんだけど 単位がわからなくてはね。
246 名前:デフォルトの名無しさん [2008/09/24(水) 21:49:30 ] 240はアホすぎて自分が何をやりたいのか説明できてない
247 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:52:22 ] スレ違い サウンドプログラミング4 pc11.2ch.net/test/read.cgi/tech/1185340076/
248 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:53:39 ] 音声データから 特徴抽出したい。 これは普通ツールによって行われるが 今自分で作ってる 以上
249 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:55:39 ] 247のスレで聞くからもういいです。 アホ扱いされるのなら
250 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:56:41 ] RIFFだったら www.kk.iij4u.or.jp/~kondo/wave/ の通りかと。 フォーマットの仕様読んでわからないなら諦めたほうが。
251 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:57:16 ] まあ Ruby はあんま関係ないな そのファイル形式の構造の問題だ
252 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 22:58:25 ] Rubyとは関係ないかもしれないのですが、Rubyで実装しているのでここで質問させてください。 普通、ウェブアプリで検索とかのリクエスト送って、リクエストの結果を 送ったページと同じページに表示させる場合、リクエストを送るのは同じページのメソッドにしたほうがいい? なんか一緒に作ってる人が Aページ⇒Bメソッド⇒Aページのメソッドって感じにしててどうなのかな?って思ったんです なんかわかりにくくてごめん
253 名前:50 mailto:sage [2008/09/24(水) 22:58:28 ] >>231 プロフェッショナルとは恥ずかしくてとても言えませんが、経歴と年数はだい たい当たっています。 >>232 大変参考になりました。ありがとうございます。 instance_eval等ですか。なるほどこれがあると、マングリングとの両立は難 しい気がします。念のため確認しましたが、Pythonには instance_evalに当た る機能はないようです。 内部プロパティ名のコーディング規約は、なるほど手動マングリングが、不恰 好ですが現実的ですね。 最後に、名前は早々衝突しないし、もし衝突したなら直すというのが、Rubyコ ミュニティ(というかスクリプティング界隈)の精神なのですね。すると自動 テストが、推奨というより必須になるわけですね。当たり前のことですが、改 めて目からうろこが落ちました。 質問してよかったです。ありがとうございました。
254 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 23:00:29 ] Rubyとは関係ないかもしれないのですが、Rubyで実装しているのでここで質問させてください。 普通、ウェブアプリで検索とかのリクエスト送って、リクエストの結果を 送ったページと同じページに表示させる場合、リクエストを送るのは同じページのメソッドにしたほうがいい? なんか一緒に作ってる人が Aページ⇒Bメソッド⇒Aページのメソッドって感じにしててどうなのかな?って思ったんです なんかわかりにくくてごめん
255 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 23:01:25 ] 2回送ってしまった、スマン
256 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 23:03:32 ] >>254 Ruby関係ないしそもそもそのへんは設計どうでもいいからわかりやすいほうにしろ メソッドって言葉の使い方間違ってねーか?まあいいや
257 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 23:05:17 ] >>246 どっちかというと基本から何をどうすればいいのか分かっていないのでは。 >>240 音声圧縮についてのことでもなさそうだし、普通のPCMの話だとおもうけど 音声がどのようにしてデジタルに符号化されているのかを理解していれば、 単位が分からんとか言い出すはずがないんだが。 データサイズ[bit] = 量子化ビット数[bit] * サンプリング周波数[Hz] * 時間[s] * チャンネル数 ここまではRubyと何の関係もないのでもう一つ言っとくと、packでの"s"は その環境のエンディアンに依存しているので、よそでは動かないかもよ。 ちゃんとフォーマットにあわせて"n"とか"v"を使うように。
258 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 00:42:13 ] >>253 >最後に、名前は早々衝突しないし、もし衝突したなら直すというのが、Rubyコ >ミュニティ(というかスクリプティング界隈)の精神なのですね。すると自動 >テストが、推奨というより必須になるわけですね。当たり前のことですが、改 >めて目からうろこが落ちました。 いちおう補足しておくけど、エラーはテストで見つかるけど、もしコンパイル時に見つかるならそれにこしたことはない。そっちのほうが作業効率いいしね。 ただ、実はコンパイル時の検査は必須ではなく、テストで見つけるというアプローチでも十分実用的というだけ。 いままで「コンパイル時にできるだけエラーを見つけないといけない」「名前の衝突による思わぬバグを防ぐような仕組みを用意してないといけない」と 思いこんでいたんだけど、実はそうでもなかったよ、慣れればなんとかなるよ、という経験をしてほしいなー というおっさんのひとりごとでした。
259 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 00:46:04 ] >>254 >普通、ウェブアプリで検索とかのリクエスト送って、リクエストの結果を >送ったページと同じページに表示させる場合、リクエストを送るのは同じページのメソッドにしたほうがいい? 送信先は同じメソッド、ただし中身は別メソッドとかでいいんじゃないの? def index if params['q'] # q パラメータがあれば検索結果を表示 show_search_result() else show_items() end end とか def index if ENV['REQUEST_METHOD'] == 'POST' # postメソッドなら検索結果を表示 show_search_result() else show_items() end end とか。 しかし日本語下手だな。なんとかしてくれ。
260 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 00:58:11 ] >>252 PRGってやつ?
261 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 07:30:35 ] >258 ある程度慣れた人だと、shebang や require 以外で最初に書くのは module になる気がする 要るか判らんが、とりあえず空間切っておくか、みたいな
262 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 09:05:11 ] アホばかりでやんなっちゃうよ
263 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 12:11:04 ] 表示端末の文字エンコードを自動判別して変換することはできますか? ファイル内容を puts した瞬間に 「しまったこれShiftJISかようわ矢印キー効かね」 というようなことを大多数の端末で避けたいです
264 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 12:21:02 ] >>263 ENV に情報がなければ無理だろな Windowsのコマンドプロンプトでは特に情報がないようだ
265 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 15:36:52 ] あー、スクリプト例で文字列を puts とかさせるときちょっと困るね toeuc 決め打ちしておくのも変だし
266 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 16:08:59 ] rubygemで特定のパッケージをupdate対象から外すことはできる? 要はholdしたいんだけど
267 名前:デフォルトの名無しさん [2008/09/27(土) 01:13:27 ] TkcItem.newはrequire 'tk' だけでできるのに TkcItemのサブクラスを作ろうとするとrequire 'tk/canvas'が必要になるのはなぜ?
268 名前:デフォルトの名無しさん [2008/09/28(日) 03:56:41 ] rubyをつかって刑務所からプログラミングしてるんですか?
269 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 14:35:51 ] Rubyでバイナリを16進数文字列に変換するのはどうしたらできますか。 packとかunpackがわかりくすぎて、理解できません
270 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 14:55:34 ] packとか使え packはC参考にしれ
271 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 15:22:39 ] open(ARGV[0], 'rb'){|f| while bin = f.read(16) bin.each_byte{|byte| print '%02X ' % byte } puts end }
272 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 15:46:05 ] class XY attr_reader :x, :y def xy=(x, y=nil) @x = x @y = y || x end end a = XY.new a.xy=(1, 2) というのを実行すると、 SyntaxError: compile error syntax error, unexpected ',', expecting ')' となってしまいます。 普通にメソッド呼んでいるだけなんですが、何が悪いんでしょうか。。 =のつかないメソッド名だと大丈夫なんですが…
273 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 17:00:00 ] www.ruby-lang.org/ja/man/html/_A5AFA5E9A5B9A1BFA5E1A5BDA5C3A5C9A4CEC4EAB5C1.html#a.b1.e9.bb.bb.bb.d2.bc.b0.a4.ce.c4.ea.b5.c1 リファレンスマニュアルによると、代入演算子は次の形で再定義できるという def foo=(value) # obj.foo = value なので、xy=(x, y=nil) のメソッドを呼ぶには次のようにする a.xy = 式 そのエラーは式の部分が (1,2) なので文法エラーになっているということ。 value = (1, 2) という式はRubyでは解釈できない。 という話だと思う。 たぶん。 信用度 80% くらい。
274 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 18:47:03 ] RoR動くレンタルサーバーって 高いところしかないの? さくらのライトプランで動かないの? なるべく月500円以下のところを 紹介してほしいんだけど。
275 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 18:58:38 ] 500円以下はありえない そもそものRoR動かすこと自体がかなりサーバ負荷の高い行為だから、 収容人数の多い安いレンタルサーバでは実用的な速度ではまず動作しない 専用サーバと呼ばれる、少人数あるいは自分たちだけの買い取りサーバを使うんだね
276 名前:272 mailto:sage [2008/09/28(日) 19:02:27 ] >>273 ありがとうございます。 a.xy=(何か) という形は単なるメソッド呼び出しだと思っていたのですが、 実際には代入用の特別な呼び出しで、「何か」の部分は代入の右辺に 使えるような式である必要があり、普通のメソッドと同じようには いかない、ってことなんでしょうか。 結局、調査の末これならできるということがわかりました。。 a.send(:xy=, 1, 2) 実際は ActiveRecord::Base#attributes= なんですが。
277 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 19:09:56 ] a.xy=1, 2とかa.xy=*[1, 2]でもよさそうに思う
278 名前:272 mailto:sage [2008/09/28(日) 19:41:41 ] >>277 それだと @x が [1, 2] になっちゃうんです… ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin8]
279 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 20:17:45 ] class XY attr_reader :x, :y def xy=(v) @x, @y = v end end a = XY.new a.xy = 1, 2
280 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 20:55:34 ] Rubyで、パイプのようなものを実現するにはどうしたらいいですか input = "aaa¥nbbb¥nccc¥n" output = open("|cat -n", "r+b") do |io| io.write(input) if input io.read end でいけるかなと思ったのですが、io.read()でブロックされるようで、うまくいきません。
281 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:06:48 ] >>280 io.close_write()をいれるとできました。 input = "aaa¥nbbb¥nccc¥n" output = open("|cat -n", "r+b") do |io| io.write(input) if input io.close_write() ## 追加 io.read end
282 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:17:08 ] popen
283 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:29:15 ] じゃあ俺はreadpartialを推しておく
284 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:41:56 ] windows版のrubyが起動に物凄く時間がかかるんですがなぜでしょうか・・・?
285 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:57:46 ] rubygems読み込んでるんだろ
286 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 22:18:04 ] >>276 www.ruby-lang.org/ja/man/html/_B1E9BBBBBBD2BCB0.html >プログラミングの利便のために一部のメソッド呼び出しと制御構造は演算子形式をとります。 >ほとんどの演算子は特別な形式のメソッド呼び出しですが、(後略) ということだそうだから、普通のメソッド呼び出しとは違うんだろう。 だいたい2項演算子の引数が複数だったりすると混乱の元にしかならんしな。 f( a + 1, 2) と書いたら、実は f( a+(1, 2) ) でしたとか。
287 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 04:05:45 ] ちょっと質問なのですが、Vistorパターンがいまいちわかっていません。 サンプルコードを見ても実際にどんな時につかうのかが? Rubyのライブラリなんかで、Vistorパターンを実際に使っているソースはありませんでしょうか?
288 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 04:09:01 ] >>274 安いRailsのホスティングサーバー - Core d.hatena.ne.jp/core/20080906/1220715811#c 野ログはノロキュアMaxHeart - SlicehostでそれなりにRailsを使っている感想 , Rails動かす環境が欲しい人必見 cureblack.com/20080909.html#p01 まともに動かすには、VPSぐらいでないと無理くさいです。 レンサバでRamaze動かしている人(CGI駆動でw)はいた。 rubyの軽いWebアプリケーションフレームワークを試してみた - NAT’s Programming Champloo d.hatena.ne.jp/NAT_programming/20080817/1218957113 さくらのレンタルサーバでramazeを動かしてみた - NAT’s Programming Champloo d.hatena.ne.jp/NAT_programming/20080817/1218962624
289 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 04:14:09 ] >>227 C/C++とか触れそうにないなw あなたには選択肢が少ない、ひまわりとかDelphiがオススメ
290 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 08:23:51 ] >>287 Visitorははまるときはピッタリはまるんだけどね。 Visitorパターンの例題として見るだけなら少し大きめだが、RDのパーサとか rubyforge.org/projects/rdtool/
291 名前:デフォルトの名無しさん [2008/09/30(火) 00:28:47 ] Mac OSXにRails環境を作ってみたのですが、プロジェクトを作成すると ファイルの文字コードが全て iso-2022-jp-3で作成されてしまいます。 プロジェクト作成時にutf8でファイル生成するオプションなどはありますか?
292 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 08:23:04 ] railsコマンドが作る初期プロジェクトに使われる文字の範囲では ISO-2022-JP-3(初期ASCIIでスタート)とUTF-8は同じだと思うんだが。
293 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 10:00:53 ] どんなソフトやらでISO-2022-JPでなくISO-2022-JP-3だと判定されたのかはちょっと気になるな cat > hoge.txt とかで作ったファイルも同じ判定ならコンソールか何かの設定の問題か、その判定ソフトの癖だな
294 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 11:52:43 ] RoR のフォームヘルパには Smarty でいう html_options みたいなヤツはないの?
295 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 14:09:23 ] >>294 html_optionsみたいなのがなにかを説明しないと、わかるわけがない
296 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 14:20:57 ] >>295 ttp://www.smarty.net/manual/ja/language.function.html.options.php
297 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 15:39:13 ] まずは「rails select option」でぐぐろうぜ
298 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 17:10:47 ] うぉーあった。ありがとうございます >>297 Rails入門(本)には text とか radio は載ってたのにこれは載ってない。 でもないのはおかしいなと思ってた。date_select まであるじゃんかよ…。
299 名前:287 mailto:sage [2008/09/30(火) 17:21:04 ] >>290 thanx 見てみます。
300 名前:デフォルトの名無しさん [2008/09/30(火) 23:36:49 ] >>292 特に気にする必要はないっていうことですか? 今のところ特に問題はないですが、聞いたことない文字コードだったので そのうち何か問題がでないかと心配です。 >>293 vimに読み込ませた時の文字コードがiso-2022-jp-3で表示されてます。 linux上で作成したutf8のファイルは、問題なくutf8で表示されていますし 他の文字コードに関しても作成時と同じように表示されてるので ファイルの認識自体は特に問題ないと思いますが。。。 catで作成したファイルもiso-2022-jp-31で作成されているようですし FInder上で作成したファイルもiso-2022-jp-3なので、たぶんMacOSXでは 指定がない限り、その文字コードで作成してしまうのではないでしょうか。 なにぶん昨日Macにはじめて触りまして。。。詳しいことが。。。 とりあえずOS側の問題のような気もするので、そっちで聞いてみます。
301 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 08:21:11 ] >>300 とりあえずodなどで問題のテキストをバイナリダンプしてみては?
302 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 11:09:10 ] >>300 文字エンコード自動評価の順が iso-2022-jp-3 が最初なんだろう vimrcの文字エンコード推測設定がMacOSX向きじゃないんだと思う きっとどっかのサイトのを意味もわからず丸コピペしたのだと推測
303 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 12:05:42 ] >>298 書名をさらして著者に改善を要求しよう
304 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 12:13:37 ] バージョンアップ後のフォローを求めるアホもいるので注意 ちゃんと冒頭に「バージョン○○を対象にします」って書いてあんじゃんよ
305 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 15:00:25 ] >>304 今回の select option に限って言えば、どのバージョンでもあるわな
306 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 19:14:46 ] ruby gemsでdescriptionで検索することってできないのでしょうか? gem search --details --both --all hoge とやっても、名前でしか検索ができません。 説明欄も検索したいのですが・・・
307 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 21:24:06 ] searchは最終的にSourceIndex#searchに処理を委譲してて、 そこでは名前がマッチするモノを探しているだけのようだ。 rubygems/source_index.rbの spec.name =~ gem_pattern and というところ(手元だと272行め)を (spec.name =~ gem_pattern or spec.description =~ gem_pattern) and のように変更すればdescriptionも検索対象にできる。 他にsummaryなども、orで連結して探すようにできるはず。 残念ながら、--detailは出力をkwskするためのオプションだな。
308 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 11:44:41 ] OSはXP Home SP3、Rubyは1.8.6(最終版)です。 以下のプログラムを実行してもうまく動かず、何がいけないのか分からず困っています。 sum =0 puts "点数を入力してください。" a=0 ←なんとなく初期化してみた。あってもなくてもダメ for i in 1..5 print i, "番:" a = gets.chomp sum += a ←ここが鬼門。ためしにforのiにするとちゃんと動く # print a,"\n" # sleep 1 end print "sum=#{sum}" おそらく7行目のsum += aが問題なのですが何がいけないんでしょうか・・・? 助言頂けるとありがたいです。
309 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 11:49:49 ] "うまく動かず"を出し惜しめせずに書けw
310 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 11:51:06 ] sum += a.to_i かな
311 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 12:07:40 ] >>309 コマンドプロンプトだと1つ目の数値を入れたとたん終了・・・ >>310 できた!thx! getsで入力した数値を文字列だと思ってたのか・・・orz ほんとありがとう、数値ひとつ入力するのに1時間奮闘してた・・・
312 名前:311 mailto:sage [2008/10/02(木) 12:26:45 ] またすぐに聞きに来てごめんなさい・・・orz aを配列にしたとたん動かなくなりました・・・ 実行しても「点数を入力してください」すら表示されず終わります。 sum =0 puts "点数を入力してください。" a[] ←いらなそうだけど一応宣言 for i in 1..5 print i, "番:" a[i] = gets.chomp sum += a[i].to_i end .to_iの使い方がおかしいのかもと思い、その行をコメント化してみたりしましたがうまくいかず・・・ gets辺りで躓いてると思います。 お手数ですがどなたかアドバイスください。 入力で躓きまくってる私はRuby向いてないのかなぁ・・・orz
313 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 12:34:11 ] sum = 0 ary = [] puts "点数を入力してください" for i in 1..5 print i, "番: " ary[i-1] = gets.chomp.to_i end sum = ary.inject(0) {|a, x| a + x } print "合計: ", sum, "\n"
314 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 12:37:37 ] どういう勉強の仕方をしてるのか気になる。
315 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 12:39:51 ] >>312 「実行」って、コマンドプロンプトから ruby hoge.rb とかしてる? 普通はこうなる > ruby hoge.rb 点数を入力してください。 hoge.rb:3: undefined local variable or method `a' for main:Object (NameError) あと入門書嫁
316 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 12:49:11 ] 本題に関係ないとはいえ一応書いておくが、Rubyでforはめったに使わない 普通はブロックを使う
317 名前:312 mailto:sage [2008/10/02(木) 12:50:02 ] >>313 おお・・・ちゃんと動く・・・ありがとです。 for文の中でsumに足していかないとは・・・! sum周りが初見なんで調べないとですね。 ともあれthxです。 >>314 Cは多少やってたのでCの頃に書いた簡単なプログラムをRubyに書き直してみてるところです。 文法がずいぶん違って躓きまくりです・・・ >>315 いや、「.rb」をそのままダブルクリックで実行してます。 だからsleep入れたりしてすぐに消えないようにしてたり・・・ 基本はRDEで実行してます。 「たのしいRuby 第2版」を参考にしてますが、必要な所だけ探して読んでるのがいけないかもですね・・・
318 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 13:19:11 ] コマンドライン実行のスクリプトをダブルクリックしてどうする 正常終了でウィンドウ閉じるだろ
319 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 13:36:57 ] 最後にsystem('pause')入れたりする
320 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:02:52 ] >>317 RDE使ってるなら、プログラムを実行した後 下の出力ウインドウにエラーメッセージとか出てるんじゃないか? それを貼り付けるべし 出ないようならコンソールから実行
321 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:22:57 ] >>318 いやだからsleep入れたりしてるんですが、エラーの時は関係なく終わるんです。 >>319 Rubyの場合はスタンダードライブラリを読み込まなくても使えるんですね。(Rubyには存在しない? 活用させていただきます。 >>320 一応出ますね。以後貼り付けます。 みなさんありがとうございます。またすぐに来そうで心配ですが、その時はよろしくお願いします。
322 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 18:02:43 ] バッチファイルにしてやればエラーが出てもポーズさせるようにできるよ。 ruby -x "%~0" || pause と書けばエラーが出たときに限ってとまる。 test.bat ruby -x "%~0" pause goto :eof #!ruby put "hello"
323 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 19:08:34 ] >>322 横からだがサンクス これを.rbに関連付けしておけばよいのか・・・ || でエラー時だけ止まるのかいいな、これ
324 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 22:15:24 ] rdocで#:nodoc:と指定されてる要素も無理矢理ドキュメント化するような オプションとか方法とかってありますか?
325 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:44:42 ] >>324 そんなのはないから自分で #:nodoc:を消せばいいじゃん cp -pr src1 src2 find src2 -type f | xargs perl -pi 's/:nodoc://'
326 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 01:37:13 ] >>325 なるほど 参考にさせていただきます ありがとうございました
327 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 02:38:35 ] >>325 そこでrubyでもsedでもなくperlかよw
328 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 11:54:46 ] >>327 1 linerでの置換ならrubyよりperlのほうが便利 sedは-pオプションがない
329 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 12:52:51 ] www.goto.info.waseda.ac.jp/~fukusima/ruby/python-j.html これ教えてもらってpythonから宗旨替えするのを検討してるんだけど 本当にpythonのモジュールが問題なくつかえるの? ctypes boost.python numpy matplotlib PIL が使えるかが一番問題なんだけど
330 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:02:03 ] >>329 現在の Ruby は 1.8.7 です
331 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:09:37 ] (いろいろとpython側もruby側も追随してないだろうから、やめるのが吉、ってことか...)