[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 17:32 / Filesize : 211 KB / Number-of Response : 864
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Ruby 初心者スレッド Part 21



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

でいいと思うんですが、わざわざ細かく読み込んでるのは何か理由があるんでしょうか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<211KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef