[表示 : 全て 最新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を読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。

52 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 08:44:19 ]
RGSS固有の話題は元のRubyがほとんど関係ないからツクールスレでやってくれると助かるんだが

RGSSがわからない人にはRGSSスクリプトそのままで問題ないし
RGSSがわかる人にとってはeval系列使って同じ動作させれば何書いてあるかわかるわけだし
どのへんの人を対象にしてるのか謎だ

53 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 09:20:34 ]
ちゃんと嫁

54 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 09:52:43 ]
ん? ツクールと同じことすればいいだけだろ
独自バイナリを読み込めるようなrubyを作って同梱して配布すればいい

55 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 10:53:12 ]
Rubyってスクリプトの難読化は苦手なんだよね
そういう意味ではゲーム製作にはあまり向かないわ

56 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 11:13:13 ]
夜中に作った作成途中のスクリプトの構造が朝起きたらさっぱりわからん

# HERE: ここからつくる

とか再開用定型句が書いてあるのはいいんだが、場所だけじゃなく何をすればいいのかも書いてほしかった昨日の俺
とりあえずなんでもかんでもget_xxxってメソッドにするのやめようぜわけわからんわ

57 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 11:23:15 ]
先にテスト書けとまでは言わないが、コンセプトのメモとか作ってないの?

58 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 11:44:21 ]
また継承云々の話なんだけどさ
個々の画像に関するデータを溜め込んだデータ群を作ろうと思うんだ
ハッシュで用が足りることがわかってるんだ

class Gallery < Hash
def xxxx
# selfをいじるメソッド色々
end
end



class Gallery
def initialize
@data = Hash.new
end
attr_accessor :data
def xxxx
# @dataをいじるメソッド色々
end
end

って、後者のほうがいいのかなあ
いちいち gallery.data でハッシュにアクセスしないといけないのがちょっとヤなんだけど

59 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 11:58:29 ]
コレクションが必要な場合に必要なのは、コレクションのクラスではなくコレクションを持つクラスだというのをどこかで見た気がするんだがどこだったかな

確かにdataというような凡庸で他クラスと被りがちなアクセサ名しか思いつかなくてブルーになることはあるが、後者の癖をつけておいたほうがいい
あと委譲の人気の無さは異常

60 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 12:25:55 ]
後者でも、委譲用のライブラリを使えばだいぶ楽に書けたような



61 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 12:36:13 ]
Gallery is a Hashと言えるかどうか。
Hashをつかう任意の場所にGalleryを使えるか。


62 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 13:49:14 ]
委譲の解説は「なぜ委譲が好ましいのか(他の方法ではよろしくないのか)」という説明がすっぽり抜けてるものばかりだ
あれではどう頑張っても広まらんよ

63 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 14:18:12 ]
Rubyだけをやってると委譲はなかなかピンとこない
アクセサメソッドの中で他オブジェクトを動的にnewすれば用が足りたりするからな
他の言語やるといいぞ

64 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 14:57:34 ]
るびま jp.rubyist.net/magazine/?0012-BundledLibraries の例を使うが、確かに

require 'forwardable'
class MyQueue1
extend Forwardable
def initialize; @q = Array.new; end
def_delegator :@q, :push, :enq
def_delegator :@q, :shift, :deq
def_delegators :@q, :push, :shift, :size
end

class MyQueue2
def initialize; @q = Array.new; end
def push(*e); @q.push(*e); end
def shift(*e); @q.shift(*e); end
def size(*e); @q.size(*e); end
alias :enq :push; alias :deq :shift
end

class MyQueue3 < Array
alias enq push
alias deq shift
end

[MyQueue1.new, MyQueue2.new, MyQueue3.new].each do |q|
q.enq 1, 2, 3, 4, 5
q.push 6
p q.size
end

の3つは、どれも6を表示はするな

65 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 15:09:38 ]
MyQueue3 を見て「Arrayのメソッドが全部使えるなんていざというとき便利そうだ」とか思った俺
まあ、1と2で attr_accessor :q してくれてればメリットもなくなるか
でもまさか、@q を公開なんてしないよな?

66 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 15:49:24 ]
そもそも#shuffle!とかを許すキューってどうなのよw
Arrayを継承となると、Arrayが公開する100近くのメソッドについて
責任を持たないといけなくなる。お手上げだ

67 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:05:35 ]
責任も何も「自由に使ってください。」じゃダメなん?

68 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:20:32 ]
>>67
確かにごく最初は「マニュアルに書いとけばいいんじゃね?」「たくさん定義されてても使わなければ無問題だろ」だった
でもそれじゃ駄目だということがわかってきたので責任(Responsibility)という概念が生まれたわけで

無理して今から字面を理解しなくても、そういえばなんか煩いこと言われてたな程度に覚えておけばいい
オブジェクト指向プログラミングをやっていれば、ほぼ確実にこれ関連で火傷をする日が来るから
自分の作ったものが火傷したり破綻したりして初めて理解できたといえるシロモノなんで、まああまり考え込まないことだ

69 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:48:05 ]
require 'delegate'
foo = SimpleDelegator.new([])
foo.push(1)
foo.push(2)
puts foo.size #=> 2

これって foo = [] のほうが便利じゃね?

70 名前:デフォルトの名無しさん [2008/08/09(土) 17:43:57 ]
>>52
RGSSでやっていることを一般のゲームでもやりたいという話です。

>>54
いや、まあそういうことなんですが、
元のRubyソースに手を加えて
requireやってるところを置き換えるっつーことでよろしい?



71 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 18:38:49 ]
答えてないぞ
どこまで隠したいのかはっきりしれ
Ruby知ってる人間がirbに読み込んで数行書いたら読めてしまうものでもいいのかどうか

72 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:16:45 ]
String#% って、Hashをとれないんだっけ?
"name: %(name)s, age: %(age)d" % {:name=>'Hoge', :age=>20}
みたいな感じでやりたいんだけど。

73 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:19:47 ]
>>72
ruby-gettext-packageでそんな感じの拡張をしている。
www.yotabanana.com/hiki/ruby-gettext-api.html?ruby-gettext-api#class+String


74 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:23:09 ]
あ、単なる埋め込みなので、to_sでは間に合わない凝った文字列化が必要なら、
ハッシュの値のほうを '%03d% % age みたく別途フォーマットする必要がある。



75 名前:デフォルトの名無しさん [2008/08/09(土) 19:33:17 ]
>>71
できれば、ちょっとしたそのようなクイックハックは避けたいのですが、
その程度ならどのような方法があるものでしょうか?

76 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 20:05:26 ]
BASE64でエンコードするとかすればいいんじゃね

irb> eval "Y2xhc3MgSG9nZTsgZGVmIHN0cjsnSGVsbG8sV29ybGQhJztlbmQ7ZW5kO3B1\ndHMgSG9nZS5uZXcuc3Ry\n".unpack('m')[0]
Hello,World!


77 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 20:38:02 ]
ちょっとしたスクリプト作るのにも何日もかかる自分が若干イヤになるな

78 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 20:43:18 ]
>>77
作業環境が悪いんだよ! エディタとか!

79 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 20:52:37 ]
>>78
なるほど!周りのせいじゃ仕方ないな!

まあ趣味個人とはいえさすがにいまどき putty + Emacs + ruby-mode + RCS だけなのはねーよとは思うんだが
もうちょっと便利で安楽な感じにスクリプト書きたいです

80 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 21:05:52 ]
emacs + ruby-mode以外いいのあるんかい??
RadRails(eclipseのやつ)とかいろいろためしてみたが、軽さがたりねー



81 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 21:20:30 ]
+ QX9650 すれば快適になるよ

82 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 21:44:40 ]
NetBeansのRubyパッケージは結構いいかなと思ったり
JRuby、Rake、Gems、RSpec、ruby-debugとか、標準で一揃い統合されてる

83 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 22:38:18 ]
ねっこはあれでもまだ重くてなあ
まだ重いっていうかこれ以上軽くなる理由もないんだが(w

ところで、なんで重いの?

84 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 22:47:51 ]
てかWindowsのRubyはあまり使いたくないんだが…

85 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 22:55:47 ]
そんなん、ごっついエディタとしてだけ使えばいいじゃん

86 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 23:23:28 ]
Linuxでも使えるけど

87 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 23:25:00 ]
Emacs使ってる人にIDE勧めても色々な意味で無駄

88 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 23:27:46 ]
Emacs/gvimユーザーの半分くらいの人はRubyのあるマシンにターミナル経由でログインして使ってるんじゃないかね
>>79にPuTTYがあるのが象徴的というか

89 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 23:39:18 ]
ruby-electric.el がもうちょっとなあ

90 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 23:42:38 ]
Javaするときくらいだな。IDE。それでも外部エディタはemacs
IDEつかってるのは、仕事先と同じ環境でつかいたいってだけの理由だが。



91 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 23:46:05 ]
あと作業領域の広さかなー。
Emacsつかってる椰子は、メニューなんか全部みせてないだろうし。
トーパルズはviを5ターミナルくらいで開いてかいてるだっけか。


92 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 23:54:44 ]
仕事場でもLinux使うがね
C#とかじゃないなら足る

93 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 23:59:36 ]
>>91
下3行(Emacsバッファ説明・Emacsミニバッファ・GNU screenのバー)以外は全部エディタ領域だからな
IDE使ってみて「ぷろじぇくと」とかいうのが画面の左半分を占拠したときはビビった
みんな画面広いんだな

94 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 00:43:23 ]
>>89
rcodetoolsを全開で使うんだ
なんか補完する度にHDDが動いてる気がするが気のせい

95 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 03:18:08 ]
ねとびんかわいいよねとびん

96 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 04:00:07 ]
emacs-lispのrubyラッパーかいて、Rubyでも設定できるように
してくれたらーーー、学生の時みたいに時間あればなー
スーパーHaXする椰子がでてきたら はじまるのに。。。

97 名前:デフォルトの名無しさん [2008/08/10(日) 06:34:45 ]
>>80
NetBeans使っているけどなかなかいいよ。

RubyGemsは1.2まだ非対応で固まるけどw

>>93
うちはフォント小さくして、狭い画面で書いてますw

98 名前:デフォルトの名無しさん [2008/08/10(日) 06:37:32 ]
>>96
- Summary
Ruby製のテキストエディタ

- Features
o scripting in any language
o macro recording and playback
o multi-element clipboard
o multi-level undo
o parsed ("smart") indentation
o customizable multilingual syntax highlighting, with support for embedded languages (e.g. PHP, eRuby, Javascript)
o bookmarking, named and unnamed
o regular expression searching
o a customizable status line
o limited ctags support
o hooks

- Reference
purepistos.net - Diakonos
purepistos.net/diakonos/

- via
MOONGIFT - Diakonos
oss.moongift.jp/intro/i-2310.html

MOONGIFT - Diakonos レビュー
oss.moongift.jp/review/i-2319.html

99 名前:デフォルトの名無しさん [2008/08/10(日) 06:39:08 ]
MOONGIFTリンク修正

MOONGIFT: ≫ Diakonos:オープンソースを毎日紹介
www.moongift.jp/2006/08/2310/

MOONGIFT: ≫ Diakonos レビュー:オープンソースを毎日紹介
www.moongift.jp/2006/08/2319/

100 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 07:06:55 ]
>>96
el4r



101 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 10:30:41 ]
emacsユーザーならわかるとおもうが、もどきじゃだめなんだよ。もどきじゃ。


102 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 12:15:31 ]
emacsユーザーってemacsしか使えなさそうで不幸だと思う

103 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 12:57:07 ]
>>102
それには適当なIDEやエディタの名前を入れても成立するということが歴史的に知られている

104 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:12:42 ]
OS入れても成立する

105 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:57:13 ]
>>94
> rcodetools
ほう
検索するたびに2秒くらい止まるんだが日本語解説サイトとかないんかね

106 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 15:09:03 ]
ホント俺ってLinux以外使えないんだよね

107 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 15:14:28 ]
機能だけでなくバックグランドに流れている”歴史”も引きずってるからなぁ
xemacsに一時期ながれていたが、歴史の差でemacs使うようになったな。おれは


108 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 15:17:41 ]
Windowsを「使えている」人なんてごくひと握りだ
レジストリやcompmgmt.msc、NETコマンドやActiveDirectoryをいったいどれだけの人が理解してるやら
気にするな

109 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 17:50:55 ]
Windowsは、まっとうな人なら、使いこなすことに抵抗あるんだよ。

110 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 19:12:45 ]
お前らの好きなMacやLinuxが罵倒されたら嫌だろ。
ならWindowsへの皮肉は、ポケットにしまいこんでおくんだ



111 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 19:56:16 ]
でも、Windows に愛着を感じてる人って少なくない?
相対数どころか絶対数でもMacに負けてる気がする。

112 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 20:53:54 ]
ていうか>>110は何もわかってないんだよ

113 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 21:01:04 ]
そんな感じはするが、まあ空気みたいなもんだからね
あって当然。普通に使う分には縁の下は意識しない
MSの最大公約数的な設計もあって、特に面白みというか個性があるわけでもないと

114 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 00:41:42 ]
attrの単純なアクセサが15個くらいどさっとある特定目的用クラスがあるんだが
なんか微妙に多くて微妙に筋がよくないような気がしてならない
うまく減らす方法はあるだろうか

115 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 01:51:12 ]
>>114
設計がおかしい可能性はないか?
単純なアクセサだらけのクラス自体、責務を切り分けられていないように思える。

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"を追加する破壊的メソッドの定義って
どう書けば良いのでしょう?






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

前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