1 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 01:07: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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
116 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 05:00:45 ] 事務職(時給800円)なんで、俺は、会計処理の計算ぱぱっとためしたいとき、Rubyつかうけど、 15のアクセくらいなら、普通にありえるな。 会計DBのテーブルが15以上フィールドもってるっていう設計されてるときとか。
117 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 06:48:58 ] いくつかの機能をまとめて内部クラスを作ってそこのクラス変数にすればよい
118 名前:デフォルトの名無しさん [2008/08/11(月) 07:23:42 ] PHPでファイルに文字列を追加するプログラムを書いていたのですが、 LFSに対応していないようで、2G以上になるとエラーになりました Rubyで扱える最大ファイルサイズはどのくらいですか?
119 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 08:33:44 ] Ruby1.8/1.9自体は2GBより大きなファイルを扱えたはず(Windowsでは無理) ただ、思いっきり意識してスクリプト作らないとメモリに2GB全部読み込むぞ
120 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 08:49:05 ] >>114 扱うのめんどくさいという話だと思うんで、ハッシュにまとめておく
121 名前:デフォルトの名無しさん [2008/08/11(月) 17:06:49 ] 携帯電話から入力されたメッセージを、txt形式で鯖に貯めたいです。 一行掲示板なるものを見つけて書いてみたけど、 ( ttp://www.skuare.net/2007/07/ruby_5.html ) 書き込まれた内容は文字化けして読めんとです。 au、ソフトバンク、docomoなど各キャリアから書き込みたいなら、 エンコードを何とかしろという話だと思いますが、よくわかりません。 どう書けば文字化けせずにテキストを貯めておけますか?
122 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 17:31:52 ] 携帯電話のフォローをするgemは聞いたことがないなあ とりあえず携帯電話の機種ごとのWeb通信および文字エンコードと独自文字領域についての知識が必要 これはRuby全く関係ないので自力でやってくれ
123 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 17:42:24 ] 偏見だけど、はてなブックマークで5users以上にすらなってないRuby関連記事はそもそも信用したらあかんよ 自分に合わせてゼロから作ったほうがまだ安心できる
124 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 18:10:54 ] >>123 めちゃくちゃ偏見じゃねーか まあしかし件の記事は自分専用のスクリプトだしな 他人や他機種のことは全く考えられてない
125 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 21:18:46 ] jpmobile-rails.org/blog あ、Railsじゃないのか。
126 名前:デフォルトの名無しさん [2008/08/11(月) 21:31:51 ] Ruby/Tk について質問です。 ひとつのアプリで複数のウィンドウを開きたいんですが、TkRoot のウィンド ウから別のウィンドウをいくつも開くにはどのクラスを使えばいいでしょうか? 試しに TkToplevel.new でウィンドウを作ってみたら、ウィンドウ自体は開く もののその上に置いたボタンとかのウィジェットがまったく表示されませんで した。
127 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 21:41:06 ] >>125 jpmobileをrails依存な部分とそうでない部分に分けるという動きが どっかであったのを見た。
128 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 22:05:41 ] >>126 Ruby/Tkのマニュアルくらいは斜め読みするんだ
129 名前:126 [2008/08/11(月) 22:39:13 ] >>128 Ruby/Tk はマニュアルとしてまとまった物がみつからないので、「Ruby アプリ ケーションプログラミング」を参照しているんですが、よくわからないので困っ てます。。。
130 名前:デフォルトの名無しさん [2008/08/12(火) 00:11:16 ] githubから入れたgemの依存関係が解決できないです。 gemから見たときに、githubのgemは衝突回避のために username-projectname という形で gemを提供しているのですが、あるgemで入れたソフトが username-projectnameでなくて、projectname に依存しているという風に言ってきます。 このおかげで動かしたいgemで入れたソフトがエラーが出て動きません。 具体的には、↓ddollar-remember-the-ruby を入れようと思ったら、 ddollar's remember-the-ruby at master ? GitHub github.com/ddollar/remember-the-ruby/tree/master ↓ddollar-preferences に依存するようなのですが(ソース確認した)、 ddollar's preferences at master ? GitHub github.com/ddollar/preferences/tree/master 実際には、素のpreferencesがインスコされてしまって、そっちが参照されてしまいます。 (gem install時も素のpreferencesの方が入ってしまう・・・) ddollar-preferences を入れて、素の preferences を uninstall した状態で実行しても、 (ほげまげ)/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:578:in `report_activate_error': Could not find RubyGem preferences (>= 0.1.3) (Gem::LoadError) from (ほげまげ)/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:134:in `activate' from (ほげまげ)/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:158:in `activate' from (ほげまげ)/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:157:in `each' from (ほげまげ)/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:157:in `activate' from (ほげまげ)/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:49:in `gem' from (ほげまげ)/ruby/bin/rtr:18 などといわれ、preferencesの方を見に行ってしまいます。 なんとかならないのかなあ・・・
131 名前:130 [2008/08/12(火) 01:04:11 ] ここみたら手動で入れられました。 Hoe dependencies - comp.lang.ruby | Google グループ groups.google.com/group/comp.lang.ruby/browse_thread/thread/9a5d68bafd366677 git clone git://github.com/ddollar/preferences.git preferences cd preferences gem install pkg/preferences-0.1.4.gem 一応これで目的のソフトは動きました。 しかしながら、これだと同じライブラリ名があるとバッティングしますね・・・。 それにgithubで他の人が作った同じライブラリが同時に入れられないw そしてやはりというか、 (ほげまげ)\ruby\gems\1.8\specifications\ddollar-remember-the-ruby-0.3.2.gemspec の中の %q<preferences> を全部 %q<ddollar-preferences> に置換しても動きます。(当然ですね) 問題はgithub内のそれぞれのユーザーのコードが、他のgithubのコードを dependencyに追加する時にユーザー名まで入れるの?ということになりますね・・・
132 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 03:12:00 ] >>126 toplevel = TkToplevel.new button = TkButton.new(toplevel,:text=>'push me').pack 基本はTkHoge.new(親部品、オプション)で親部品は省略するとTk.rootになる ruby/tkはドキュメントが足りなすぎてtcl/tkを知らないと使い物にならない 今まで見た中では「逆引きRuby/Tk」(ググれ)のページが一番まともに使える
133 名前:デフォルトの名無しさん [2008/08/12(火) 08:28:08 ] gem instal ほげほげ のgemのインストールが高い頻度で固まるのですが私だけでしょうか? コマンドプロンプトでCtrl-Cを押しても止まりません。 タスクマネージャでrubyを殺すしか手段はなくなります。 インストールは、5回に一度くらいしか成功しません orz > gem -v 1.2.0 OS:Windows XP SP2
134 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 09:07:51 ] ASRだとしたら、自分と同じ症状だ。自分は今の最新にしたら治った。 次からはRubyのバージョンとかも書いてくれ。
135 名前:133 mailto:sage [2008/08/12(火) 10:00:05 ] >>134 すまそ。忘れてた >ruby -v ruby 1.8.7 (2008-06-20 patchlevel 22) [i386-mswin32]
136 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 11:52:50 ] というかRuby/TKはTclでTkを知ってる人が使ってるもんだとばかり思ってた RubyのGUIってそんなもんだからさ 「○○では××と書くようなことをRuby○○ではどう書くんですか?」という質問を希望
137 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:22:21 ] しつもん PStoreありますよね あれって、 PStore.new(path).transaction do |db| とした時点で、db に該当するとこには pstore ファイルのまーしゃるな内容が完全に展開されてるんですよね? data = db['hoge'] としてもメモリ的になんかいいことがあるとか何もないですよね?
138 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:40:46 ] >>137 unless read_only file = File.open(@filename, RDWR_ACCESS) ... content = file.read() ... if content != "" @table = load(content) ... def load(content) # :nodoc: Marshal::load(content) end ... def [](name) in_transaction @table[name] end ということで、答は YES transaction した時点で、Ruby は pstore ファイル全体を Marshal でロードしたデカいオブジェクトをメモリに保持する db[hoge] というメソッドは既に存在するそのデカいオブジェクトのハッシュへの参照に過ぎない 別名をつけるかどうかは読みやすさだけで決めてよし 時々「でかいpsotreに差分だけ追加」という効率的っぽいプログラミングをしてる人を見かけるが、 あれの本当の動作は「全部引き出してフルサイズ復元してちょっと付け足してまた全体を必死で変換してディスクに書き込む」だ
139 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 21:24:43 ] Rubyってこういうメモリを湯水のように使う処理結構多いよな
140 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 13:25:30 ] Rubyで外部コマンドに頼らなくてはならなくなりました んで、質問です data.each do |param| `command #{param}` end は、dataの数だけ毎回シェルを起動して終了してますか? 複数のデータそれぞれに対してコマンドを使用したい場合は sh = Shell.new data.each do |param| sh.system("command #{param}") end としたほうが、起動するシェルは1個で済んだりしますか?
141 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 13:37:19 ] > によるリダイレクトや | によるフィルタとか使わない限りおおむね YES のようだ 外部コマンド使えば速くて済むもんね、と考えてのことなら前者は無駄が多いかもしれん
142 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 15:15:25 ] % ruby -rshell -e "sh = Shell.new; 5.times do |i| sh.transact do p system('echo -n \$\$') end end" 58045 58046 58047 58048 58049
143 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 17:12:14 ] いやそんな例出されても transactって名前そのまんまだし
144 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 21:32:04 ] Shellって言えば irb> require 'shell' irb> sh = Shell.new irb> sh.verbose = false irb> sh.cd('/') shell: current dir: / って、verbose を偽にしても notify でログが表示されるのはなんでなんだぜ?
145 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 21:34:42 ] >>140 exec使えよ
146 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 21:50:58 ] >>145 試行錯誤中のirbが途中で終了した 責任は取ってもらうからな
147 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 21:54:15 ] 逆 切 れ スレで見たものをirbで何でも試すから…
148 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:56:18 ] irbが終了した責任はirbの再起動で取るよ ってことで、sshでログインしてやるから、 IP,ID,PASS晒せや
149 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 07:30:03 ] 素朴な疑問なんだけど 破壊的メソッドって自分で定義して追加することは可能?
150 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 07:40:10 ] >>149 追加できないかもしれないと思った理由は?
151 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 07:51:44 ] ! がついてるからシステム的に特殊なものだと思ったんじゃないかね ! つきも ? つきも = つきも普通に定義できるぞ
152 名前:149 mailto:sage [2008/08/14(木) 08:41:50 ] たとえばStringで文字列の末尾に"foo"を追加する破壊的メソッドの定義って どう書けば良いのでしょう?
153 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 08:49:35 ] class String def append_foo! self << "foo" end end s = "hoge" s.append_foo! p s
154 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 16:04:08 ] 予定表作ろうと思うんだ うん、Webカレンダーアプリケーションみたいなの その日のデータ登録は自分が(コマンドラインまたはCGIで)やるだけなんだけど、結果はHTMLとして公開したい いい感じのデータ構造をもつクラスとHTML書き出しクラスを持つライブラリとか都合よくないかな?
155 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 16:36:08 ] >>154 そんなんライブラリはないけど rails本に幾らでも例題あるがな 作らんでもカレンダーウェブサービスも沢山あるし
156 名前:デフォルトの名無しさん [2008/08/14(木) 16:47:29 ] ディレクトリ名の最後のデリミッター("/")を削除する、簡単な方法ってないですか? もしくは考慮して、"/"がなかったらつけてくれる関数なんかありませんでしょうか? File.dirname(dir) ってやると "hoge/moge/" が "hoge"になってしまって、 かなり期待と反対の動作なんですが・・・("hoge/moge"がほしい)
157 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 16:49:23 ] 各日のイベント自体がパブリックなものなら Google Calender か Yahoo! カレンダーに適当に登録してカレンダーを公開、が妥当な気がする データ型についてはまあ類似例を見て研究するということで
158 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:00:21 ] >>156 /foo/bar という文字列があったとして、 bar がファイルなのかディレクトリなのかは 実際に(HDDの)ファイルシステムにアクセスしないとわからないから、ある意味無理 というか、そんな不完全で不安定なディレクトリパスが欲しい理由って何? そういうのが必要な場合の多くは必ず File.join でディレクトリとファイルを連結するようにすれば用が足りる ディレクトリの最後にスラッシュがあろうがなかろうが、問答無用でディレクトリとみなして連結してくれる もし、外部コマンドに渡すディレクトリ文字列を Ruby で作らなきゃいけないんだとかいう場合は require 'pathname' したあと Pathname#realpath 使え
159 名前:デフォルトの名無しさん [2008/08/14(木) 17:16:35 ] >>158 レスありがとう 実際にはFileTest.directory?などでディレクトリチェックをしています。 そうです。Dir.globとかに渡すときに、適当に渡されたパスに "*.hoge"とか "**/*.moge"とかを くっつけたかったのです。最初から情報を中田氏にしたことを詫びします。 File.joinを使うのですね。 やってみます。
160 名前:156 [2008/08/14(木) 17:18:32 ] >>158 File.joinで無事にできました! お騒がせしました。 エスパーありがとうございました。
161 名前:デフォルトの名無しさん [2008/08/14(木) 17:47:14 ] たまに見かける # :nodoc: という記述はなんなんでしょうか? ドキュメント生成ツールか何かようのフラグ?
162 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:48:46 ] >>161 ActiveRecord (1) -- construct_sql - Ruby on Rails 研究 - Ruby on Rails with OIAX www.oiax.jp/rails/rails_source_code_reading_2.html > その右にある #:nodoc は、RDoc の修飾子(modifier)の一種です。RDoc は、 > Ruby ソースコードからドキュメントを生成するプログラムです。RDcoc は >この修飾子が添えられたクラスやメソッドをドキュメント生成の対象から外します。 RDoc用なのですね。 ありがとうございました。
163 名前:デフォルトの名無しさん [2008/08/14(木) 19:15:23 ] Windowsのファイル名の区切り文字(バックスラッシュ、円記号)は、 Dir.globに渡しても動作しません。 スクリプトなどの引数などから指定された場合、 単純に置換する以外によい簡潔な解決策はないでしょうか?
164 名前:163 mailto:sage [2008/08/14(木) 19:27:59 ] >>158 で出ていた pathname と Pathname#realpath でいけました! Pathname("hoge\mage\")は、Pathname#realpath で "hoge/mage/"になってくれました。 ありがとうございました。
165 名前:デフォルトの名無しさん [2008/08/15(金) 01:14:07 ] ↓なんで? s="#&32;12:34" /[\s(?: )](\d{2}):(\d{2})/=~s p $1,$2 # => 12, 34 Regexp.new("[\s(?: )](\d{2}):(\d{2})")=~s p $1,$2 # => nil, nil
166 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 02:33:56 ] "#&32;12:34" は "#&32:12:34" の間違いだよな? p Regexp.new("[\s(?: )](\d{2}):(\d{2})") p /[\s(?: )](\d{2}):(\d{2})/ これを実行すりゃ分かる。
167 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 09:54:35 ] ruby_1_8 と ruby_1_8_7 とはどう違うんでしょうか? ruby_1_8 は次 (今だと ruby_1_8_8) の候補、みたいな感じ?
168 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 11:03:55 ] それの名前を付けた人のポリシーによる つまり、ソフトウェアパッケージのポリシーとか 一般的には、 1.8 とだけ書かれたものは 1.8 のうち最新版のものへのエイリアスだ 1.8.7 が用意されていれば 1.8.7 、まだ用意されてなくて 1.8.6 だけなら 1.8.6
169 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:27:37 ] require 'tk' l = TkLabel.new(:text=>'0').pack b = TkButton.new(:command=>proc{ TkAfter.new( 100, 1, proc{ l.text=l.text.to_i+1 Tk.event_generate(b,'Button-1') Tk.event_generate(b,'ButtonRelease-1')} ).start }).pack Tk.mainloop 一定間隔でラベルの数字が増え続けるようにしたかったのですが、 実際やってみると、途中で不規則に止まってしまいます。 原因と解決策(できればイベント強制発生のループの形は残したままで)を ご教示お願いします。
170 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 16:26:00 ] >>169 Enter->ButtonPress-1->ButtonRelease-1(->Leave)
171 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 00:53:38 ] TCPSocketでサーバからデータを受け取る際 リアルタイムに取得済みバイト数を得る方法はありませんでしょうか? 現在は ・サーバ側: writeでソケットに渡す ・クライアント側: readでソケットから受け取る データ自体は問題なく受け取れています どうやら受け取ったデータはソケットのバッファ?か何かに書いているようで そこをリアルタイムに覗く方法が分かりません 参考になるものやヒントなどがあればよろしくお願いします
172 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 01:03:19 ] >>171 普通覗かない覗けないから、rubyでreadできた分を 取得済みと考えていいんじゃね?
173 名前:171 mailto:sage [2008/08/16(土) 01:27:26 ] >>172 readできた分となると 全て取得した後のサイズしか知ることができないようなのです ごめんなさい ちょっと紛らわしかったかもしれません 必ずしもバッファを覗く必要はありません リアルタイムに取得済みバイト数さえ取得できれば方法は問いません バッファが覗けないとなると別の方法ですね・・・
174 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 03:23:59 ] >>173 readpartialで少し筒読みながら自分でサイズ管理
175 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 04:16:24 ] >>173 よくわからんのは、 取得ってどこまで来たのを取得データと捉えたいんだ?
176 名前:171 mailto:sage [2008/08/16(土) 09:21:25 ] >>174 readpartialですね 試してみます >>175 どういう答え方が正しいのか分からないのですが ソケットまで来ていれば取得済と考えています
177 名前:171 mailto:sage [2008/08/16(土) 22:02:54 ] readpartialで解決できました ありがとうございます
178 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 15:32:40 ] www.aoky.net/articles/why_poignant_guide_to_ruby/index.html
179 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 16:41:49 ] ああそうか夏休みか
180 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 02:30:09 ] el4rは動作が怪しい
181 名前:デフォルトの名無しさん [2008/08/18(月) 11:56:16 ] Rubyで使われてるフォントって何?欲しいんだけど
182 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 11:59:12 ] ……よーわからんが、このロゴに使われてる字体のことか? ttp://www.ruby-lang.org/images/logo.gif
183 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 12:11:12 ] ああ、すまんそういうことじゃなくて www.ruby-lang.org/ja/ ここの「Rubyとは」ってとこの横のエディタ画像のフォント
184 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 12:16:12 ] 画像じゃない気がするんだが… #code div { display: block; font-family: "Lucida Console", Monaco, monospace; padding-left: 24px; padding-right: 24px; } って書いてあるんで、君のパソコンに入ってるLucida ConsoleかMonacoかmonospace あるいはmonospaceファミリーに設定されてるフォントで勝手に表示されてる
185 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 12:18:01 ] 欲しいも何も既に持ってるってパターンだな
186 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 12:23:00 ] >>184 画像じゃなかったのか…ありがとう
187 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 12:34:18 ] irb> say = "I love Ruby" irb> say['love'] = "*love*" irb> puts say.upcase I *LOVE* RUBY なんぞこれ
188 名前:デフォルトの名無しさん [2008/08/18(月) 12:36:25 ] >>184 あ、でもこれ日本語対応してないのか…くぅ、使いたかった
189 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 12:43:37 ] Hpricotって1.9に対応する予定ってあるんですか?
190 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 12:43:39 ] xyzzyとかはASCIIと日本語を別々のフォントに指定できるぞ xyzzy使わざるを得なくなるのが難点か もしWindowsXP以降(2000でもフォントによってはできる)を使ってるならFontLink機能を使う手もある 「どう考えても英字フォントを指定してるだけなのになぜか日本語も表示できる謎機能」を自力で利用する
191 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 12:49:12 ] >>190 kwsk
192 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 13:06:35 ] 1.9は ・誰でもgem含めて完全に1.9のライブラリだけを使って動作するようにインストールできるよガイド があれば対応が増えると思う 現状の1.9は「1.9に乗り換える」という覚悟がないとそもそもインストールしにくい make install するとgemごとユーザーディレクトリにインストールされるような親切セットが欲しい >>191 ぐぐってレジストリ書き換えろ
193 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 13:14:14 ] gem開発者はRubyに関してちょっと詳しいだけであって、 その他のことに関しては素人に毛が生えた程度だと思ったほうがいいよな 自分用Rubyと際新安定版RubyとRuby1.9の3つくらいは維持しないといかんわけで それに対するフォローはあっても面白いかもしれん
194 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 13:56:07 ] PerlでいうことろのTemplate ToolkitやFillInFormみたいなモジュールはありますか?
195 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 14:58:05 ] uri = "example.com?aaa=123&bbb=456&ccc=789 " ここからquery param形式でURIをパースしてくれるものってあるでしょうか? 今は正規表現でパースしてますが面倒で…
196 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 16:03:24 ] query param 形式ってなんじゃらほい irb> require 'cgi' irb> require 'uri' irb> uri = URI.parse('example.com?aaa=123&bbb=456&ccc=789 ') irb> p CGI.parse(uri.query) {"aaa"=>["123"], "bbb"=>["456"], "ccc"=>["789"]} こんなん?
197 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 18:06:11 ] >>194 あるはずだが、見つからないなあ フォーム入りHTMLを自動生成して送る ↓ ユーザーがフォームを埋めて送り返してくる ↓ 解析したが内容が不足または不当だった ↓ ユーザーの入力内容がフォームに記入された状態のHTMLを再度生成して再送
198 名前:195 mailto:sage [2008/08/18(月) 20:48:03 ] >>196 まさにその通りです 自分も書いた後に「query param形式」って変な表現だと思ってました ありがとうございます!
199 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 00:24:58 ] JRubyを使ってSwingを叩いていてはまったのでどなたかお助けください。 Javaのクラス(具体的にはjavax.swing.event.MouseInputAdapter)を基底としてRubyのクラスを作りました。 そこで初期値を与えてnewしようとしたところ、 base.rb:24:in `__jcreate!': wrong # of arguments for constructor (NameError) とのエラーが出てしまいます。 初期値を与えなければ正常に動作するため、Javaクラスを基底とするRubyクラスでは 初期化に工夫がいるのかと思い、調べてみたのですが、言及を発見することができませんでした。 どなたか回避方法、或いは他の原因に心当たりの方がいらっしゃいましたら教えてください。
200 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 00:34:00 ] >>199 コンストラクタの先頭でsuper()を呼べばいいんじゃない?
201 名前:199 mailto:sage [2008/08/19(火) 00:55:17 ] >>200 あうあ。どうもありがとうございます。 書き込み前にsuperを試したときにもsuperを括弧無しで呼んだ時には引数が引き継がれる、 というのを知らなかったので、二重にはまっていたみたいです。 明示的にsuper()を呼ばなければ引数引継ぎで自動的にsuperが呼ばれるのかしらん。 色々と調べてみます。どうもありがとうございました。
202 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 18:41:40 ] ruby script/server -p 80 このコマンドを実行し、ポート80を使っていたapacheを停止させたところlocalhost/test でも接続できるようになりました。 これはapacheの代わりにmongrelが動いているということでしょうか。 初歩的な質問ですいません
203 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 19:28:29 ] Railsに関する質問はRailsスレで
204 名前:202 mailto:sage [2008/08/20(水) 01:20:53 ] ありがとうございます
205 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 17:58:01 ] rubyって (2..0).to_a ってしたらなんで[2,1,0]って配列を作ってくれないの? そもそもRubyのRangeクラスって昇順しか認められてないの?
206 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 18:42:12 ] 失敬な 降順だろうが昇順だろうがきちんと存在しマニュアル通りに動作するぞ 2.succ は 3 で 0 より大きいから each も即終了する …まあ、Range#first > Range#end なときは Range#each の中で逆方向の配列作ってくれてもいいじゃんという気は 全くしないわけではない
207 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 21:04:20 ] ..はsuccを使うので、2.step(0, -1).to_aで我慢してくれ。
208 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 21:05:55 ] それくらいならreverseする
209 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 00:38:55 ] p (2..0).to_a # => [] p (0..2).to_a # => [0, 1, 2] たしかに気分悪いなこれ
210 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 00:48:15 ] >>206 の言う通り以外の何物でもない > 2.succ は 3 で 0 より大きいから each も即終了 succ を辿る実装を変えるとは思えないから、each を書き換えるしかないな
211 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 02:44:59 ] そういえば1.9のString#succはなかなか変態らしいな。 次の意味のあるバイト列までいかに素早く進むか、みたいな。
212 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 11:06:44 ] akr氏のあれか
213 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 18:30:19 ] これか cvs.m17n.org/~akr/pub/string-succ-rejectkaigi2008.pdf
214 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 19:54:18 ] initialize 内部で望ましくない動作をしている外部クラスがあります。 特定の引数 param2 のハッシュから特定のキー 'danger' に関連するペアを、 param2.delete('danger') のように事前削除すれば問題ありません。 クラスを利用するときの引数でいちいち削除すればいいんですが、 できれば同クラス名のクラス定義をスクリプト開始時にこっそり上書きすることで楽に済ませたいです。 最初 class Hoge alias _initialize initialize def initialize(param1, param2) param2.delete('danger') _initialize end end と書いたんですが、これだと self が書き換わりません。いい方法はありますか?
215 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 22:31:12 ] どこのself
216 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 01:19:03 ] Net::HTTP を利用してるモジュールがあるんですが、中で body = StringIO.new http.request_get(uri.path){|res| res.read_body {|part| size += part.size body.write(part) } } としてる部分がありました(request_getはrequest_postのもあります) どうせ最後には全部メモリに入るわけだし、ふつーに body = request_get(uri.path).body size = body.size でいいと思うんですが、わざわざ細かく読み込んでるのは何か理由があるんでしょうか?