1 名前:1様 [2009/04/02(木) 09:42:23 ] プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。 【Ruby1.9.1 は従来版とは別物であり、書籍や解説やライブラリのサポートがまだありません】 【自力で解決できない壁で悩むことのない最新安定版の Ruby1.8.7 での学習をお勧めします】 ※1.8.7 は 1.8 系と 1.9 系の橋渡しをするためのリリースで、1.9 系 の便利新機能の一部が利用可能です ※ただし 1.8.6 より安定しているとはまだ言えないので、安定性を第一とする用途には 1.8.6 をどうぞ 関連スレやURLは>>2-5 あたりを見てください。Ruby on Rails の質問は Webプログラミング板の 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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
504 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 21:12:12 ] せめてこのスレでは、Ruby初心者に有益な情報を書くように心がけられないもんかね Pythonがいいよってのも、Rubyのことを聞きに来た人間を迷わせる効果しかないと思うんだがね アンチは本スレでもアンチスレでも行けばいいんだ。 初心者スレにまで顔出すことはなかろうに。本格的に人間性を疑うわ。
505 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 21:12:23 ] カンファレンスは知らないがおれもそれは感じる。 新しいバージョンとかでつまづいたときググると、 役に立つのは大抵海外のサイト。向こうの方が精力的にやって気がする。 2ちゃんなんてRubyスレ全般で「1.9は使うな」だもんな。 2ちゃん見てる時点でアレだろと言われたらそれまでなのだが。
506 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 21:16:56 ] 裸で冬山に特攻する初心者がいれば「行くな」とも言いたくなるわな
507 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 21:21:08 ] >>505 お前英語苦手だろ 英語で書いてあるというだけで凄いって思ってるだろ 海外の人だって「初心者」は Ruby 1.9 を使ってない
508 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 21:22:39 ] Vimで入門始めたけど、アホらしくてNetBeans入れてみた 信じられないくらい快適になった
509 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 21:27:00 ] >>507 別に得意じゃないけど英語だけですごいなんて思わないだろ。小学生かよ。 新しいことに関して日本のサイトはほとんど引っかからないし、 読んで実際に解決することが多いからそう思う。 あと「Rubyスレ全般」ってわざわざ書いてるんだからちゃんと読んでな。 たった5行なんだからさ。初心者スレに限定してないだろ。
510 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 21:34:10 ] 日本人はRuby初心者が多い印象がある 外国人の人にとってのRubyは日本人にとってのPythonくらいの「詳しい人向け言語」な感じ
511 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 21:48:53 ] ruby-talk読んでるが、初心者らしいというかほほえましい質問が半分くらい(たいかん)
512 名前:デフォルトの名無しさん mailto:sage [2009/04/17(金) 22:42:31 ] 詳しい人はこんなところこないと思うよ 前にmswinの人がキレてたじゃん わざわざ顔出して見ず知らずのしかも自分の足下にも及ばないようなやつに、 口汚くレスされたりしてストレスためる必要ないだろ あと日本のRuby好きはRubyで何か作るというよりも、メンテナとかをやるのが好きなのかもね
513 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 01:24:40 ] ゴルフやってるんじゃねーの
514 名前:デフォルトの名無しさん [2009/04/18(土) 11:16:09 ] month = 4 などの数字が入ってるとき、これを to_sなどで "04"という風に変換したいんですが、どうすればいいですか? month = 11 のときは、"11"です。 どうかお願いします。
515 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 11:23:44 ] '%02d' % 2 => "02" '%02d' % 11 => "11"
516 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 12:06:19 ] もしくは $ irb irb(main):001:0> sprintf("%02d", 4) => "04" irb(main):002:0> sprintf("%02d", 11) => "11"
517 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 12:53:26 ] MySQLをDBIを介して使おうとしているのですが、 テーブル名一覧を取得する方法をお教えいただけないでしょうか? dbh = DBI..connect("dbi:Mysql:test:localhost","user","password") table_names = dbh.execute("SHOW TABLES") p table_names とやると全然違うものが出力されてしまいます。 すいませんが、お教えいただけますでしょうか?
518 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 13:32:41 ] 聞くときだけは丁寧だな。がんばれよw
519 名前:517 mailto:sage [2009/04/18(土) 16:44:37 ] 自己レスです。 結局DBIを介して行う方法はわからなかったので、Ruby/MySQLで接続して行いました。 require "mysql" dbh = Mysql::new("localhost","username","password") dbh.query("use database") p dbh.list_tables これで取得できそうです。
520 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 19:34:20 ] FreeBSD 7.1-RELEASE-p4 で irb 使ってます Delete キーを押すと ~ が表示されるんですが、同じような症状をさくっと治したという方はいませんでしょか csh 上では普通に後ろの文字が消えます
521 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 20:26:40 ] 端末は何を使っとるん?
522 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 20:37:48 ] ええと、アプリケーションは Windows 上の PuTTY で、端末文字列は xterm-color 、 csh から bash を起動して C-v したあとに Delete キーを押すと ^[[3~ が表示されてます(csh 上ではどうやるんだろう?) screen 等は(まだ)使ってません 接続先は具体的にはさくらインターネットのレンタルサーバです なんか Ruby あんま関係ないような気がひしひしとしてます
523 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 20:43:38 ] irb を起動するとキー操作の動作が違う、という場合はいちおう Ruby スレの範疇だと思う まあ、irb 自体が独自に何かやってるわけじゃないけどさ
524 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 21:22:16 ] >>522 自分もさくらのレン鯖契約しているのでやってみた。 ログインシェルが csh なので、bash にしたあとで irb 起動してみたけど、 C-v したあとだったら delete キーを押すと再現したけど、 C^v しなければ、irb のプロンプト中に delete キーを押したら、ちゃんとカーソル位置の文字が消えたよ C-v って何のためにやっているの?
525 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 21:57:44 ] C-vは、つぎの入力文字を視覚的に表示する機能では?
526 名前:521 mailto:sage [2009/04/19(日) 00:31:07 ] >>525 C-v って vi のと同じように、次の入力をキーコードそのまま入力する機能だと思う。 PuTTY が Delete で吐くキーコードが 1b 5b 33 7e ってことだよね。 FreeBSD 7.1-RELEASE-p4 & PuTTY 0.60 ごった煮版 2007年8月6日版だけど、 カーソル位置の文字が消えた。 もし Readline を入れてなければ入れて、 それでダメなら ~/.inputrc に↓コレ書いてみて。 "\e[3~": delete-char
527 名前:デフォルトの名無しさん [2009/04/19(日) 02:37:16 ] RubyのDBIを使おうとしているのですが、 $ irb irb(main):001:0> require 'dbi' => true irb(main):002:0> DBI.connect('dbi:mysql:test','root','root00') DBI::InterfaceError: Could not load driver (undefined local variable or method `e' for DBI:Module) from /usr/local/lib/site_ruby/1.8/dbi.rb:312:in `load_driver' from /usr/local/lib/site_ruby/1.8/dbi.rb:154:in `_get_full_driver' from /usr/local/lib/site_ruby/1.8/dbi.rb:139:in `connect' from (irb):2 となってしまい、うまくコネクトできません。ドライバはインストールしたつもりなのですが、 何か間違ってるでしょうか?
528 名前:527 [2009/04/19(日) 02:50:31 ] mysql-ruby-2.8.1.tar.gz をインストールしたらできました。 DBIだけじゃなくて、Ruby/Mysqlのドライバもインストールしないとだめなんですね。 失礼しやした。
529 名前:464 mailto:sage [2009/04/19(日) 08:50:34 ] 連投規制で書き込めなかった >>464 の > autotestも標準で spec/以下 と lib/を関連付けて見てくれる。 は、厳密には間違いで、rspecに含まれる autotest用のプラグイン?が spec/とlib/を関連付けてみてくれる >>469-471 spec_helper.rb(か、もしくはそこからrequrieする.rb)内でshare_asで定義して、includeするとか
530 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 11:08:49 ] ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mswin32]を使用しています open("|")(I/Oパイプ付)で起動した外部プロセスを強制終了する事ってできますか? 外部コマンドの結果でその後の動作を変えるようなことをしていますが 大体の場合全ての結果を受け取らずとも判定が出来るので 判定が出来た時点で外部コマンドを強制終了して判定にかかる時間を短縮したいです
531 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 11:09:51 ] >>530 適当にシグナル送ればいいんじゃね
532 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 13:28:18 ] >>530 IO#pid で外部コマンドの pid が取れるみたいね。あとは >>531 の通りで。
533 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 17:25:24 ] UTF8のBOMを含むStringからBOMを取り除く方法は?
534 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 17:38:35 ] >>533 toutf8
535 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 17:41:57 ] iirb> require 'kconv' irb> text = File.open('test.txt'){|f| f.read} => "\357\273\277test\ntest\ntest\n" irb> text.toutf8 => "test\ntest\ntest\n" まあ、ある意味盲点ではあるな
536 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 18:05:57 ] 盲点ってかただの副作用では そういうのこそ、メソッドを用意すればいいのに
537 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 18:11:30 ] >>536 nkf -w8 はBOM を除去する
538 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 18:18:58 ] というよりは、 BOM 無し UTF-8 を出力する、だね
539 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 18:21:47 ] BOMについては特につけることも取ることもしない、というスタンスなんだっけか
540 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 18:35:22 ] .toutf8もNKFも、余計な変換をしそうで怖いです。 やりたいのはBOMを除くことだけで、変換とかいっさい必要ないんですが。 あと、BOMを含むかどうかの判定方法もお願いします。 今は str.unpack('H6').first == "efbbbf" としてるんですけど、どう考えても頭悪い方法です。
541 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 18:54:51 ] BOM = "\357\273\277" str[0,3] = "" if str[0,3] == BOM str.sub(/\A#{BOM}/, "") こういうのでいいんじゃない?
542 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 18:58:20 ] str.sub!(/\A\xEF\xBB\xBF/, '') あたりで
543 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 19:00:35 ] Ruby 1.8.7以降だとString#start_with?ってのがあるからそれで判定しても
544 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 22:53:34 ] 自分でString#bom?とか適当なメソッドを定義すればいい 表面上スマートに見えても内部は泥臭いなんて当たり前
545 名前:530 mailto:sage [2009/04/21(火) 00:17:20 ] >>531-532 レスありがとうございます やってみました…が、外部プロセスの実行が終了したあとにI/Oパイプが開いている気が… io.each_lineで読み出し中にProcess.kill(9, io.pid)しても実行時間が変わりません 仕様かな…
546 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 01:13:24 ] >>545 io.closeするだけで良いんじゃね?
547 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 10:33:13 ] require したファイルの一覧って取得できますか
548 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 10:42:06 ] 自己レスですが >>547 $LOADED_FEATURES というのがあるらしい。 マニュアルは読んでみるものですね。
549 名前:464 mailto:sage [2009/04/21(火) 12:39:37 ] riに失敗してしまうのですが、これはどのようなエラーでしょうか? 回避する方法はありませんでしょうか? > ri String#lines (ruby installed directory)/lib/ruby/gems/1.8/gems/rdoc-2.2.0/lib/rdoc/ri/driver.rb:532:in `lookup_ancestor': undefined method `+' for nil:NilClass (NoMethodError) from (ruby installed directory)/lib/ruby/gems/1.8/gems/rdoc-2.2.0/lib/rdoc/ri/driver.rb:610:in `run' from (ruby installed directory)/lib/ruby/gems/1.8/gems/rdoc-2.2.0/lib/rdoc/ri/driver.rb:605:in `loop' from (ruby installed directory)/lib/ruby/gems/1.8/gems/rdoc-2.2.0/lib/rdoc/ri/driver.rb:605:in `run' from (ruby installed directory)/lib/ruby/gems/1.8/gems/rdoc-2.2.0/lib/rdoc/ri/driver.rb:588:in `each' from (ruby installed directory)/lib/ruby/gems/1.8/gems/rdoc-2.2.0/lib/rdoc/ri/driver.rb:588:in `run' from (ruby installed directory)/lib/ruby/gems/1.8/gems/rdoc-2.2.0/lib/rdoc/ri/driver.rb:311:in `run' from (ruby installed directory)/lib/ruby/gems/1.8/gems/rdoc-2.2.0/bin/ri:5 from (ruby installed directory)/bin/ri:19:in `load' from (ruby installed directory)/bin/ri:19 > ri --version ri 2.2.0 >ruby --version ruby 1.8.7 (2008-06-20 patchlevel 22) [i386-mswin32]
550 名前:549 mailto:sage [2009/04/21(火) 12:46:51 ] 名前の464はミスです。キニシナイでくだしあ
551 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 13:06:36 ] gemで自分でriを入れたのか。 それを消せばいいんじゃね?
552 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 21:28:24 ] 1年前のスクリプトを眺める …ライブラリそのものをナチュラルに継承すんな、っていうか重要メソッド上書きすんな ライブラリのオブジェクトをインスタンス変数に保持してメソッドを依頼するラッパー操作クラス作るだけで十分じゃねーか 来年には「この改造無駄だったなー」と思えるようになるのだろうか
553 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 22:58:43 ] 家庭用プログラムのテスト駆動開発とかなんかそのへんでしつもん a というメソッドを作ってる最中に、その中の特定の処理を a' というメソッドに分けたとして、 def a aaaaa bbbbb ccccc ... ↓ def a' bbbbb ccccc end def a aaaaa a' ..... その a' についてのテスト項目は作るほうがいい? それとも、 a についてのテストをちょこっと詳しくする程度で、a が完動したことをもって「隠して」おくのが普通?
554 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 23:35:11 ] 「普通」がまだ決まってない。 テストしろ、とかpublicなメソッドのテストがパスしてるんだからおkとか、 モックとかスタブとか使えば、とか。
555 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 01:07:07 ] privateなメソッドはそもそもテストできないようなテストフレームワークもあるような?
556 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 01:11:35 ] テストしまくり中はメソッドのアクセス制御は敢えてしないと思うんだが ユーザーからの隠蔽だけが目的の場合(つまり大多数の場合)はふつうにめんどくさいじゃん?
557 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 01:18:51 ] >>553 基本的には作らないが、他のメソッドからも使う(ような気がする)場合は仕様書的にspecファイルに書く return するものがたくさんあるようなメソッドにうっかり育ててしまった場合もやっぱ書く 最初は全部書いてたんだけど、describe がメソッド 1個に対応するような使い方をしてると引数とかで正直非常にめんどい
558 名前:549 mailto:sage [2009/04/22(水) 07:43:36 ] >>550 うは。確かにgemのrdocに入っているんですね。 gem update rdocしたらエラーでなくなった!! でも… > ri String#lines Updating ri class cache with 5126 classes... Nothing known about String#lines うーん。こういうことって普通にあるの? gemのrdocのriが駄目かと思ってrdoc消してみたら、 >ri String#lines (ruby directory)/lib/ruby/site_ruby/1.8/rubygems.rb:805:in `report_ activate_error': Could not find RubyGem rdoc (>= 0) (Gem::LoadError) from (ruby directory)/lib/ruby/site_ruby/1.8/rubygems.rb:24 3:in `activate' from (ruby directory)/lib/ruby/site_ruby/1.8/rubygems.rb:50 :in `gem' from (ruby directory)/bin/ri:18 orz
559 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 10:22:13 ] インスタンス変数へのアクセスと、クラス変数へのアクセスと、ローカル変数へのアクセスを 速い順にならべるとどうなりますか。 クラス変数へのアクセスはだいぶ遅そうだとは思いますが、インスタンス変数とローカル変数へのアクセスにどのくらい違いがあるのか知りたいです。
560 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 10:27:08 ] >>559 これが速度に影響するような用途のプログラムであるなら、Rubyで作らないほうがよい ブロックつきメソッドとか使われてたら奇声上げてキーボード投げつけるレベル ちなみに アクセス遅い アクセス速い クラス変数 > インスタンス変数 > ブロック外のローカル変数 > ブロック内のローカル変数 こんな順番だったと思うが、どっかに言及があったはず
561 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 10:38:03 ] tips: Hash[:symbol] > Struct > Hash["string"] >>>>>(越えられない壁) >>>> OpenStruct
562 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 12:57:25 ] PHPのuniqid() に相当する関数やライブラリはありますか。 uniqid()とはこんなやつです。 ttp://php.benscom.com/manual/ja/function.uniqid.php
563 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 13:05:03 ] >>562 例えば、これでどう? require "securerandom" p SecureRandom.uuid
564 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 13:09:46 ] テンプレに入れてもよさそうなRuby関連Googleブック検索 ruby - Google ブック検索 books.google.co.jp/books?lr=&as_brr=3&q=ruby&btnG=%E6%9B%B8%E7%B1%8D%E3%81%AE%E6%A4%9C%E7%B4%A2
565 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 13:14:49 ] def uniqid(prefix = "", more_entropy = false) id = "%s%x" % [prefix, Time.now.to_f*1_000_000] id << ".%.8d" % rand(100_000_000) if more_entropy id end
566 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 18:23:16 ] >>563 SecureRandom.uuidは1.8.7じゃ使えないからなぁ。 require "rubygems" require "uuidtools" p UUID.timestamp_create
567 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 20:21:26 ] >>564 「赤毛のアン」が検出されるんだが・・・?
568 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 22:18:55 ] Rubyも赤いからいいんじゃない?
569 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 08:38:48 ] どこでいいからまからんでここで聞きます 下記のようなプレゼンの外見のテンプレートがRuby界隈では最近流行っているのですが、 このプレゼンはどのようなツールもしくは、テンプレートで作られているのでしょうか? Sinatraで鼻歌まじりのWeb開発 www.slideshare.net/dara/sinatraweb
570 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 09:47:29 ] そんな「Ruby界隈」は知らない。
571 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 09:55:18 ] >>570 気を悪くしたらすいません。 なかなか見やすいと感じたので気になっているのです。
572 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 09:59:30 ] >>571 気を悪くしたんじゃなくて、それが流行ってるのは「Ruby界隈」と言えるほど広い世界でもないし中心に近くもないだろ、と。 で、その辺の人たちはKeynote使ってるんじゃないの。
573 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 10:17:56 ] もしかして、「高橋メソッド」のことを言ってるとか?
574 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 11:58:51 ] >>569 このプレゼンはおもしろかった。 このなかで Rails は「ちょっとしたことをやるには大げさ」とあるが、 自分は Java → Ruby ときたけど、Java の web フレームワークに比べれば Rails はずっと軽くて楽だと感じる。 この sinatra というのは、流行っているんですか?
575 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 12:08:02 ] 最近名前聞くねぇ。 使ったことないというか、そっち方面は全然手がけないんだが。
576 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 12:23:36 ] Winでファイルのアーカイブフラグが立っているかを判定したり フラグをセットしたりするのってどうやるの?
577 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 12:49:38 ] >>576 File::Stat に見当たらないということはサポートされてないのかなあ 自分には Win32API の GetFileAttribute/SetFileAttribute を呼ぶくらいしか思いつかない
578 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 13:25:25 ] 標準では無いよ gemのWindowsファイルシステム操作ライブラリで見た覚えがあるので適当なの使え
579 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 14:43:45 ] win32-fileにあったと思う
580 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 16:05:39 ] opensslライブラリのマニュアルを読んでいるんですけど www.ruby-lang.org/ja/man/html/OpenSSL_Cipher_Cipher.html pkcs5_keyivgen('str') で生成したキーを取り出すことってできないんでしょうか。
581 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 17:29:42 ] rubyscript2exeが動かなくなってしまいました。非常に困っています。 何か解決策はありませんでしょうか? > rubyscript2exe test.rb Tracing test ... Gathering files... c:/DOCUME~1/unkoman/LOCALS~1/Temp/tar2rubyscript.d.5684.1/rubyscript2exe/require2lib.rb:60:in `gatherlibs': undefined method `list' for Gem::Specification:Class (NoMethodError) from c:/DOCUME~1/unkoman/LOCALS~1/Temp/tar2rubyscript.d.5684.1/rubyscript2exe/require2lib.rb:30 from test.rb:1 hellow Couldn't execute this command (rc=256): d:\software\ruby\bin\ruby -r 'enumerator.so' -r 'rubygems/rubygems_version.rb' -r 'rubygems/defaults.rb' -r 'thread.so' -r 'thread.rb' -r 'etc.so' -r 'rbconfig.rb' -r 'rubygems/exceptions.rb' -r 'rubygems/requirement.rb' -r 'rubygems/version.rb' -r 'rubygems/dependency.rb' -r 'rubygems/gem_path_searcher.rb' -r 'rubygems/user_interaction.rb' -r 'rubygems/platform.rb' -r 'rubygems/specification.rb' -r 'rubygems/source_index.rb' -r 'rubygems/builder.rb' -r 'stringio.so' -r 'yaml/error.rb' -r 'syck.so' -r 'yaml/ypath.rb' -r 'yaml/basenode.rb' -r 'yaml/syck.rb' -r 'yaml/tag.rb' -r 'yaml/stream.rb' -r 'yaml/constants.rb' -r 'rational.rb' -r 'date/format.rb' -r 'date.rb' -r 'yaml/rubytypes.rb' -r 'yaml/types.rb' -r 'yaml.rb' -r 'Win32API.so' -r 'rubygems/config_file.rb' -r 'rubygems/custom_require.rb' -r 'fileutils.rb' -r 'rubygems.rb' -r 'ubygems.rb' -I 'c:/DOCUME~1/unkoman/LOCALS~1/Temp/tar2rubyscript.d.5684.1/rubyscript2exe' -I 'c:/DOCUME~1/unkoman/LOCALS~1/Temp/tar2rubyscript.d.5684.1' -I 'd:/software/ruby/lib/ruby/gems/1.8/gems/rubyscript2exe-0.5.3/bin' -I 'd:/software/ruby/lib/ruby/gems/1.8/gems/rubyscript2exe-0.5.3/lib'
582 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 17:30:30 ] -I 'd:/software/ruby/lib/ruby/site_ruby/1.8' -I 'd:/software/ruby/lib/ruby/site_ruby/1.8/i386-msvcrt' -I 'd:/software/ruby/lib/ruby/site_ruby' -I 'd:/software/ruby/lib/ruby/vendor_ruby/1.8' -I 'd:/software/ruby/lib/ruby/vendor_ruby/1.8/i386-msvcrt' -I 'd:/software/ruby/lib/ruby/vendor_ruby' -I 'd:/software/ruby/lib/ruby/1.8' -I 'd:/software/ruby/lib/ruby/1.8/i386-mswin32' -I '.' -I 'd:/home/test/ruby/' -I 'c:/DOCUME~1/unkoman/LOCALS~1/Temp/tar2rubyscript.d.5684.1/rubyscript2exe' -I 'c:/DOCUME~1/unkoman/LOCALS~1/Temp/tar2rubyscript.d.5684.1/rubyscript2exe/lib' -I 'c:/DOCUME~1/unkoman/LOCALS~1/Temp/tar2rubyscript.d.5684.1/rubyscript2exe' -I 'c:/DOCUME~1/unkoman/LOCALS~1/Temp/tar2rubyscript.d.5684.1/rubyscript2exe/lib' -r 'c:/DOCUME~1/unkoman/LOCALS~1/Temp/tar2rubyscript.d.5684.1/rubyscript2exe/require2lib.rb' 'test.rb' Stopped. > ruby --version ruby 1.8.7 (2008-06-20 patchlevel 22) [i386-mswin32] > gem --version 1.3.2
583 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 18:55:38 ] undefined method `list' for Gem::Specification:Class (NoMethodError) Gem::Specification.listメソッドはgem 1.3.1になら存在する。 1.3.2では削除されたようだ。 gatherlibsを修正するか、gemコマンドをダウングレードする。 そしてrubyscript2exeの開発元に連絡をする。
584 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 19:26:02 ] >>583 ありがとう。 どうやらそのようですね。RubyGems1.3.2のスレッドでも話題になってたみたいです。 RubyGems 1.3.2 - ruby-talk-google | Google グループ groups.google.com/group/ruby-talk-google/browse_thread/thread/cc65ca7852f2d562 そこで紹介されていた、Ocraというrubyscript2exeみたいなパッカーがあったので試してみています(windowsのみですが) larsch's ocra at master - GitHub github.com/larsch/ocra/tree/master Ocraそこそこコンパクトな上に、起動が早くてよさげです。 rubyscript2exeは今まで何でもうごいてたので、同じようにスクリプトが動くか検証してみます。
585 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 19:28:40 ] x Ocraそこそこコンパクトな上に、起動が早くてよさげです。 o Ocraそこそこコンパクトな上に、exe化したプログラムの起動が早くてよさげです
586 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 23:45:20 ] どうして、ruby -pの後のgsubはレシーバが省略できるのですか? いつも使ってて便利だなあと思ってるけど不思議に思ってます。 ruby -p -i.bak -e'gsub(/hoge/, "fuga")' data.out
587 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 00:17:28 ] >>586 関数的メソッド gsub が呼ばれているだけだ(こいつは $_ をレシーバとして扱う) String#gsub が直接ワンライナー用にいじられて呼ばれているとかそういうわけではない
588 名前:デフォルトの名無しさん [2009/04/25(土) 08:35:56 ] class SomeClass @@message = "call myself Mr.#{@name}!" def initialize(name) @name = name end end このまま@@messageを参照すると、@nameが未定義の段階で定義しているため出力は"call myself Mr.!"となります。 このように後で@nameに値が入ったとき(あるいは変更されたとき) @@messageを参照する段階で@nameを再度当てはめるとしたら、どのように書けばよいでしょうか。
589 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 08:46:15 ] クラス変数を使わない いやわりとマジで 特定のインスタンスの状態に左右されるクラス変数というのは奇妙 特定のインスタンスの変数を参照する大域変数というのはそれは普通インスタンス変数にする というか、@@name を initialize の中で毎回変更してそれを @@message で参照するという形ではダメなん?
590 名前:588 mailto:sage [2009/04/25(土) 09:24:21 ] >>589 ありがとうございます。た、たしかに言われてみたら使い方もちょっとおかしいし、 そもそもクラス変数でやってたのがよくなかったんですね・・・ 試しに@@messageをメッセージを返すインスタンス"メソッド"にしてみたら問題なく置き換えられました。 なお試してみますm(_ _)m
591 名前:デフォルトの名無しさん [2009/04/25(土) 17:51:40 ] はじめまして。困ってます;至急お願いします。 Rubyをはじめようと思うのですがどうすればいいかわかりません。 まず公式HPに行ってもどれをダウンロードすればいいかわかりません。 ソースコード以外に実行ファイルが見当たりません。 何かをインストール等する必要はないのですか? 僕はパソコンは上級者と言ってもいいほどなんでもできるのですが ここまでわけのわからないことは初めてで焦っています。 まずルビーのプログラムを書く段階までのやり方を教えてください。
592 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 17:54:17 ] またそんな玄人的なネタを投下してw
593 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 17:57:30 ] 初心者だから教えてくれ、という意味? それは唯の対処療法で根本的原因の解決ではない。 頭痛がするから薬を使って誤魔化すのと同じこと。 また困った時に同じように薬使ってごまかすのかな。 使い方はそこらへんに結構転がっているよ。 自分の環境構築するのも技術の一つだよ。
594 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 18:00:46 ] いや、上級者だといってるだろ
595 名前:デフォルトの名無しさん [2009/04/25(土) 18:09:52 ] もしかしてメモ帳で書く、ということですか? エディターみたいなものは公式サイトで配布していないのですか? 他の候補で見ていたC#なら公式サイトでMicrosoft Visual Basic 2008 Express Editionというのが配布されていました。 簡単に作りたかったのでRubyを選んだのですが本当に困っています。 小さいころにHSP(Hot Soup Processor)をやったことがあるのですがそこの公式サイトでもエディターやテストするためのものが公式サイトで配布されていました。 僕は今そのようなものを探しているのですが見当たりません。 そのようなものは存在しないのですか?
596 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 18:11:17 ] >>591 > ルビーのプログラムを書く段階までのやり方 1.エディタを用意します。なんでもいいです。目的はテキストファイルを作成することです。 例えばMS-DOSに馴染んでいれば、最悪 copy con hello.rb なんてのでも大丈夫です。 2.思う通りのるびーのプログラムを書いたら、その内容をテキストファイルとして保存して下さい。 ※ 上記の2は、書くまでの段階では必要ではありませんので、飛ばしても結構です。 以上です。
597 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 18:13:16 ] >>596 俺は君が好きだな
598 名前:デフォルトの名無しさん [2009/04/25(土) 18:17:09 ] >>593 さんの書き込みをヒントに「ruby 開発環境」と検索したところ RDEというエディターを見つけました。とりあえず解決しましたので 回答していただいたみなさまありがとうございました。
599 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 18:21:05 ] IDEがないというのは上級者にとっては最初に焦る事態なのか なるほど
600 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 18:27:39 ] >>599 俺は20代だけど、周りみてると統合環境から入るやつが大半だった 学生の時分とかね
601 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 18:28:02 ] つメモ帳 でよかったのか PC上級者は、プログラムは専用アプリで書くものと思いがちってことなのかな 勉強になった
602 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 18:29:33 ] 時代は巡るねぇ。
603 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 18:31:58 ] どっちかというと 下地が分からないからIDEなんだと思う。
604 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 18:41:18 ] 紙に書いてパンチカードで打ってた時代があったとか、知識や想像の範囲外なんだろうな デバッグは全部プリントアウトとか そんなの実際には知らんから、もしかして俺騙されてる?