Ruby 初心者スレッド Part 34
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/01/28(木) 08:39:14★注意★ Ruby 1.9.1 は初心者にはまだ時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。
(理由:現時点では多くの有名ライブラリやアプリが 1.9.1 に完全対応していないためです。)
1.8.7 でも 1.9 系に導入された新機能のいくつかが利用可能なため、1.8.7 を習得すれば将来スムーズに 1.9 系に移行できるでしょう。
関連スレやURLは>>2-5あたりを見てください。Ruby on Rails の質問は Webプログラミング板の Rails スレへ。
■質問する人へ
質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。
・モジュール名やエラーメッセージでググる
・マニュアルで引っかかったクラスの記述を探す http://www.ruby-lang.org/ja/man/
・FAQを一応読む http://www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
質問には以下を書くこと。へたくそな質問は再提出を要求される。
・詳しい内容(「動きません」「うまくできません」では回答しようがない)
・エラーメッセージ(自力で訳さずなるべくそのままで)
・実行環境(OS名、Rubyのバージョン(ruby -v でわかる))
・最終的にやりたいこと(もっとよい方法がある場合が多いので)
回答してくれた人には「ありがとう」のひとことをいってあげて。
■回答する人へ
相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
それができないならこないこと(だって初心者スレだもん)。
・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
0002デフォルトの名無しさん
2010/01/28(木) 08:40:04Q:
いちからRubyを始める初心者向けのRuby入門書は何がありますか?
A:
プログラム作成自体の初心者なら
・「たのしいRuby 第2版 Rubyではじめる気軽なプログラミング」
http://www.amazon.co.jp/dp/4797336617/
文法は理解済み(orリファレンスで乗り切る既言語習得者)の場合のRuby様式を知る必携2冊目
・「初めてのRuby」
http://www.amazon.co.jp/dp/4873113679/
以下は外れが少ないとされている本です。必ず立ち読みした上で自分の目的とレベルに応じて購入してください。
・「Rubyレシピブック 第2版 268の技」(初心者向け)
http://www.amazon.co.jp/dp/4797340045/
・「プログラミングRuby 第2版 言語編」(初心者向け)
http://www.amazon.co.jp/dp/4274066428/
・「Ruby Way 第2版」(脱初心者向け)
http://www.amazon.co.jp/dp/4798115339/
・ 「Rubyクックブック ―エキスパートのための応用レシピ集」(脱初心者向け)
http://www.amazon.co.jp/dp/4873113245/
以下の本は言語作者が書いた最新本ですがとりあえず初学者向けではありません。
・「プログラミング言語 Ruby」(言語として深く知りたい人向け)
http://www.amazon.co.jp/dp/4873113946/
0003デフォルトの名無しさん
2010/01/28(木) 08:40:46・Ruby Home Page 【公式、お役立ち度が微妙】
http://www.ruby-lang.org/ja/
・Rubyリファレンスマニュアル 【検索機能休止中、Googleなどの併用を】
http://www.ruby-lang.org/ja/man/
http://www.ruby-doc.org/ 【詳しい英語版】
・HTMLヘルプ版リファレンスマニュアル配布さん 【Windowsで便利、検索も無論可能】
http://elbereth-hp.hp.infoseek.co.jp/ruby.html
・Programming Ruby - The Pragmatic Programmer's Guide 【好評書籍の初版がネットで、ただし英語】
http://www.ruby-doc.org/docs/ProgrammingRuby/
・Rubyist Magazine - るびま 【ライブラリ紹介などの読み物、過去のコードレビューは一読の価値あり】
http://jp.rubyist.net/magazine/
・逆引きRuby 【やりたいことから探すWiki、最近元気ないので編集者募集】
http://www.namaraii.com/rubytips/
・はてなキーワード > Ruby 【うっかりどっさりまとまったリンク集、説明なし】
http://d.hatena.ne.jp/keyword/Ruby
・RubyForge 【○○をやりたい管理されたライブラリを探すならここ、英語】
http://www.rubyforge.org/
・GitHub 【○○をやりたいコードをとにかく探すならここ、英語】
http://github.com/
・日本Rubyの会 【最近はオフライン勉強会の寄り合い場と化しているので近くで勉強会があれば】
http://jp.rubyist.net/
0004デフォルトの名無しさん
2010/01/28(木) 08:43:07・Rubyについて Part 38
http://pc12.2ch.net/test/read.cgi/tech/1257079004/
●アンチスレ
・Rubyについて(アンチ専用) Part004
http://pc12.2ch.net/test/read.cgi/tech/1249737531/
●Railsスレ
・【Ruby】Ruby on Rails Part8
http://pc11.2ch.net/test/read.cgi/php/1252842574/
●Windows用スレ
・【ActiveScript】RubyをWindowsで使うスレ【GUI】
http://pc11.2ch.net/test/read.cgi/tech/1155031689/
●Ruby 1.9 系列スレ
・魁け! Ruby 1.9.X
http://pc11.2ch.net/test/read.cgi/tech/1201603546/
●前スレ
Ruby 初心者スレッド Part 33
http://pc12.2ch.net/test/read.cgi/tech/1259990485/
Ruby 初心者スレッド Part 32
http://pc12.2ch.net/test/read.cgi/tech/1256332692/
Ruby 初心者スレッド Part 31
http://pc12.2ch.net/test/read.cgi/tech/1253176267/
0005デフォルトの名無しさん
2010/01/28(木) 08:46:07・Ruby 1.8.5
レンタルサーバ等にいまだに残ってる非安定な古いバージョン
1.8.6 にすらなってない理由はたぶん管理の手抜きなので怒ってよい
・Ruby 1.8.6
過去の長期政権と数の暴力で一大勢力圏を維持中の旧安定版
公開スクリプトはこれでも動作するべきではあるんだがそろそろ 1.8.7 に譲ってくれ
・Ruby 1.8.7
1.9 シリーズの機能をいくつか足したハイブリッドなバージョン、初学者にこそお勧め
1.9 系機能は 1.8.6 では動かないが「えーマジ1.8.6!? 1.8.6が許されるのは小(AA略」と煽ってよい
・Ruby 1.9.0
不安定にして先鋭機能が超満載の開発版バージョンだったもの
1.9.x は本来全てが開発版の呼称だったのだが、事情が変わって(ここ笑うところ)1.9.1 は安定板に
・Ruby 1.9.1
満を持して登場の 1.9 系列安定板(本体は 1.8.6 程度には使えるということになっている)
本体と添付ライブラリの動作は問題がないのだが外部第三者ライブラリが全く追いついていない
初心者を脱した人が外部ライブラリの開発コミュニティに参加してくれたりすることを期待中
0006デフォルトの名無しさん
2010/01/28(木) 09:42:59764 名前:デフォルトの名無しさん[sage] 投稿日:2010/01/28(木) 07:15:32
初心者スレが落ちてるのでこっちで。
関数で呼び出し元のselfを自動で引数として受け取るようにす
ることってできますか。
こんな感じで。
def func(hoge=呼び出し元のself)
p hoge
end
モジュールにしてMix-inさせるとかは無しでお願いします。
0007デフォルトの名無しさん
2010/01/28(木) 09:47:11>>6
呼び出し元で this を渡してやるしかないかなぁ。
0008デフォルトの名無しさん
2010/01/28(木) 09:56:42thisってなんですか?
thisってなんですか?
thisってなんですか?
thisってなんですか?
0009デフォルトの名無しさん
2010/01/28(木) 10:16:250010デフォルトの名無しさん
2010/01/28(木) 10:19:380011デフォルトの名無しさん
2010/01/28(木) 10:33:060012デフォルトの名無しさん
2010/01/28(木) 10:44:50「2010年1月28日 26時30分」
t1 = DateTime.new(2010, 1, 28, 26, 30)
はinvalid dateになります。
今はactive_supportを使って、
「2010年1月28日 26時30分」を
t2 = DateTime.new(2010, 1, 28, 0, 0)
t2 = t2.advance :hours => 26
t2 = t2.advance :minutes => 30
とやっています。これで月末や年末の年月日時の繰り上げもうまく動きます。
問題は逆方法で、
t2.to_s
をするときに、「2010年1月28日 26時30分」の形式にする、
便利なヘルパーメソッドとかはあるのでしょうか?
0013デフォルトの名無しさん
2010/01/28(木) 10:47:19無茶言うな
あったらあったで楽しそうだが
0014デフォルトの名無しさん
2010/01/28(木) 10:49:32(たぶんそれは10時のままにして欲しいと言うはず)
自前で適当だと思う範囲を変換して作るしかないね
0015デフォルトの名無しさん
2010/01/28(木) 11:02:1228時と表現したら怒られた
よくわからん
0016デフォルトの名無しさん
2010/01/28(木) 12:29:14Kernel.private_instance_methods(false)のことですか?わかりません><
0017デフォルトの名無しさん
2010/01/28(木) 14:29:16マスコミ関係の方ですか?
0018デフォルトの名無しさん
2010/01/28(木) 16:25:43という文字列があったとして
ダブルクオーテーションの中以外のカンマにマッチする正規表現ってありませんか?
0019デフォルトの名無しさん
2010/01/28(木) 16:57:000020デフォルトの名無しさん
2010/01/28(木) 17:10:46irb> p str.gsub(/".+?"/){' '}.gsub(/,/){' '}
"first second second third"
こんなんじゃ駄目なんだろうなあ
0021デフォルトの名無しさん
2010/01/28(木) 17:24:03最終的にしたいことは何でしょうか?
ダブルクオーテーションの中以外のカンマの数を数えたいとか、
ダブルクオーテーションの中以外のカンマでsplitしたいとか。
0022デフォルトの名無しさん
2010/01/28(木) 17:30:18str.split(regexp) #=>["first", "second\"a,b,c\"second", "third"]
というのを期待しています。
ダブルクオーテーションはネストしないと仮定しています。
正規表現は難しいです。
0023デフォルトの名無しさん
2010/01/28(木) 17:36:58正規表現スレを見つけました。
正規表現スレに移動した方がよろしいでしょうか?
0024デフォルトの名無しさん
2010/01/28(木) 17:47:26うおめんどくさ
0025デフォルトの名無しさん
2010/01/28(木) 18:08:58str = 'first,second"a,b,c"second,third'
require 'strscan'
COMMA = /\A,\Z/
QUOTE = /".*?"/
SCAN_REG = /#{QUOTE}|./
def parse(str)
result = [""]
scanner = StringScanner.new(str)
while match = scanner.scan(SCAN_REG)
case match
when COMMA; result << ""
else ; result.last << match
end
end
result
end
p parse(str) #=> ["first", "second\"a,b,c\"second", "third"]
0026デフォルトの名無しさん
2010/01/28(木) 18:11:07多分、正規表現だけでは無理なのでここでいいんじゃないかな
0027デフォルトの名無しさん
2010/01/28(木) 18:30:36僕にもっと考える時間と頭をください。
条件を満たすカンマにマッチする正規表現を考えるから難しいのかなー、と思って
違う考え方をしてみた。
str = 'first,second"a,b,c"second,third'
str.scan /(?:[^",]+"[^"]+"[^",]+)+|[^,]+/
=> ["first", "second\"a,b,c\"second", "third"]
あとは、これを頭のいい人が改良するだけでつ(;_;)
002827
2010/01/28(木) 18:47:21個人的には、正規表現は難しいし、魔法じゃないし
言語のチカラを借りて何とかする方が楽かなー、って思う。
んと、C使いだったら一文字ずつ調べてみるけど...
0029デフォルトの名無しさん
2010/01/28(木) 18:49:450030デフォルトの名無しさん
2010/01/28(木) 19:24:17str = 'first,second"a,b,c"second,third'
arr = str.gsub(/".*?"/){|m| m.gsub(/,/, "\0")}.split(/,/).map{|a| a.gsub(/\0/, ',')}
p arr #=> ["first", "second\"a,b,c\"second", "third"]
003118
2010/01/28(木) 19:52:09>>27
カンマ以外の文字列からアプローチする方法は思いつきませんでした。
発送の転換ですね。
一文字づつ調べるというのは>>25氏の方法に近いですね。
>>30
この方法は漏れが少なそうに思います。
>>27氏と>>30氏の方法をベースに検討してみようと思います。
ありがとうございました。
0032デフォルトの名無しさん
2010/01/28(木) 20:03:12こんな感じニカ?
0033デフォルトの名無しさん
2010/01/28(木) 21:18:590034デフォルトの名無しさん
2010/01/28(木) 21:41:50CSV だと思って CSV.parse_line する。だめだって。通らないし。
0035デフォルトの名無しさん
2010/01/28(木) 21:50:19" を含む物から次の " を含むものまでを , で連結したものに置換える。
0036デフォルトの名無しさん
2010/01/28(木) 22:19:46それだと分割したリストを"求めて尋ねる歩く旅に出ないといけなくなるわけだが・・・
0037デフォルトの名無しさん
2010/01/28(木) 22:52:030038デフォルトの名無しさん
2010/01/29(金) 06:11:420039デフォルトの名無しさん
2010/01/29(金) 06:42:16そうだよ。なんならソースをダウンロードして中身をのぞいてみたら?
それを知ってどうするのかは知らんけどさ。
0040デフォルトの名無しさん
2010/01/29(金) 08:35:400041デフォルトの名無しさん
2010/01/29(金) 10:03:32http://pc12.2ch.net/test/read.cgi/tech/1259990485/998
> 998 名前:デフォルトの名無しさん[sage] 投稿日:2010/01/27(水) 09:38:00
> Rubyですごい事が出来た実例を教えて下さい。
Ruby(Rails)で上場しちゃった会社(というと語弊があるがw)
クックパッド(株)【2193】:銘柄情報 - Yahoo!ファイナンス
http://stocks.finance.yahoo.co.jp/stocks/detail/?code=2193
0042デフォルトの名無しさん
2010/01/29(金) 10:59:48> Rubyですごい事が出来た実例を教えて下さい。
昔から使ってる人間としては、Rubyで生計を立ててる人がいる時点で信じられん
0043デフォルトの名無しさん
2010/01/29(金) 11:16:4020年も経てば、あなたがたはRubyに税金をかけるようになるでしょう
0044デフォルトの名無しさん
2010/01/29(金) 11:18:45出遅れた気がするけど、
str = 'first,second"a,b,c"second,third'
str.scan(/(?:^|\G,)([^",]*(?:"[^"\\]*(?:\\.[^"\\]*)*"[^",]*)*)/).map{|a|a[0]}
0045デフォルトの名無しさん
2010/01/29(金) 11:19:48すでに未踏経由で1000万以上税金突っ込ん出るよ、その成果の一つがYARVだ
0046デフォルトの名無しさん
2010/01/29(金) 11:35:56いや電気ほどにはすごくないw
0047デフォルトの名無しさん
2010/01/29(金) 11:56:000048デフォルトの名無しさん
2010/01/29(金) 13:57:490049デフォルトの名無しさん
2010/01/29(金) 14:27:240050デフォルトの名無しさん
2010/01/29(金) 14:31:560051デフォルトの名無しさん
2010/01/29(金) 14:36:07ちょっと変えたいときに悲惨だな
これくらいは読めて欲しい気もするが
0052デフォルトの名無しさん
2010/01/29(金) 15:51:350053デフォルトの名無しさん
2010/01/29(金) 15:53:13初級を脱したと思ってる人は読めて欲しいなー
0054デフォルトの名無しさん
2010/01/29(金) 16:34:070055デフォルトの名無しさん
2010/01/29(金) 16:36:13str.scan(/(?:^|\G,)([^",]*(?:"[^"]*(?:""[^"]*)*"[^",]*)*)/)
005627
2010/01/29(金) 16:45:09なるほど。勉強になったthx
0057デフォルトの名無しさん
2010/01/29(金) 19:46:41正規表現をくれということだから仕方ない
0058デフォルトの名無しさん
2010/01/29(金) 20:15:46自力でMinGW導入して手元でコンパイルするしかないのかな
0059デフォルトの名無しさん
2010/01/29(金) 20:30:14きっと親切なおじさんたちが助けてくれるさ
0060デフォルトの名無しさん
2010/01/29(金) 21:07:20ひとつだけ質問
Net::HTTPSが使うOpenSSLやirbが使うReadlinesとかは放っておいても入る?
んなわけないよね別途用意しなきゃ駄目だよね
0061デフォルトの名無しさん
2010/01/29(金) 21:39:37http://gnuwin32.sourceforge.net/packages/libiconv.htm
http://gnuwin32.sourceforge.net/packages/readline.htm
http://gnuwin32.sourceforge.net/packages/pdcurses.htm
http://gnuwin32.sourceforge.net/packages/zlib.htm
http://gnuwin32.sourceforge.net/packages/gdbm.htm
リンク先を見てわからないなら諦めた方がいいかもしれない。
怖くてリンクを踏めないという見解もありうる。
0062デフォルトの名無しさん
2010/01/29(金) 21:41:31006360
2010/01/29(金) 21:44:46C:/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_origin
al_require': no such file to load -- zlib (LoadError)
うひょう
0064デフォルトの名無しさん
2010/01/29(金) 21:44:570065デフォルトの名無しさん
2010/01/29(金) 21:45:46大文字の方なら
p %W[hoge fuga #{nil} ] #=>["hoge", "fuga", ""]
0066デフォルトの名無しさん
2010/01/29(金) 21:53:29#{nil}はnilになるのかと思ったら""なのね。何で? nil要素は作れない?
0067デフォルトの名無しさん
2010/01/29(金) 21:57:08またレスかぶりそう
0068デフォルトの名無しさん
2010/01/29(金) 22:05:560069デフォルトの名無しさん
2010/01/29(金) 22:11:45irb(main)> "#{nil}"
=> ""
0070デフォルトの名無しさん
2010/01/29(金) 22:25:58いろいろあったんだが、Windowsの場合は自分だけMinGW32にしても意味がない、という結論に至った
配布されてるバイナリのバージョンと揃えておいて、同じようにエラー出したり同じように変な動きしたりするほうがいい
0071デフォルトの名無しさん
2010/01/29(金) 22:30:02Rubyの拡張ライブラリもMinGWでコンパイルしたいんだもん
という人がRubyをMinGWでコンパイルしているんだと思う。
あとメンテナか。
0072デフォルトの名無しさん
2010/01/29(金) 22:36:41「よくわかんないいっぱんゆーざー」がわざわざコンパイルしてまで使用するようなもんでもない
ただしMinGWの知識がある人はどんどん使って色々言ってくれ
0073デフォルトの名無しさん
2010/01/29(金) 23:09:14a = NiseArray.new
p a.class #=> NiseArray
b = a.map{}
p b.class #=> Array
bがワナビーNiseArrayなんだがドゥーしたらいいんだ?
オレにティーチしてくれよ。
0074デフォルトの名無しさん
2010/01/29(金) 23:25:11継承を考慮してないもともとのクラスのデザインのミステイクではある
0075デフォルトの名無しさん
2010/01/29(金) 23:31:20ArrayのメソッドならちゃんとNiseArrayが返すはず
0076デフォルトの名無しさん
2010/01/29(金) 23:36:39っつーかお前のそのクラスはビルトインクラスを継承するだけの動作をするのか、あー? という怖い感じのが一応スタンス
メソッドが欲しいだけなら普通は委譲を使う
0077デフォルトの名無しさん
2010/01/29(金) 23:39:33はい論破
0078デフォルトの名無しさん
2010/01/29(金) 23:41:22継承を使いたくなるくらい遅いというのは実効上の説得力がない
0079デフォルトの名無しさん
2010/01/29(金) 23:41:440080デフォルトの名無しさん
2010/01/29(金) 23:44:04ディスパッチテーブルを
もう一回引く程度のコストが許容できないなら
その問題にRubyは使えないんじゃないかね
008173
2010/01/30(土) 00:17:48ほかはNiseArrayを返す。
あとEnumerableは基本的にArrayを返す。
これらは継承では全滅ということでOKですか?
delegateに馴染みがないので軽いサンプルをいただけると助かります。
もちろん自分でリファレンスマニュアルを読んでみます。
0082デフォルトの名無しさん
2010/01/30(土) 01:32:52自作ライブラリのコード漁ってたらこんなの出てきた
でも、正直これは設計ミスだったと思ってる
%w{ find_all reject select sort sort_by }.each do |method|
class_eval %{
def #{method}
self.class.new(super)
end
}
end
%w{ & * + - grep }.each do |method|
class_eval %{
def #{method}(arg)
self.class.new(super)
end
}
end
008382
2010/01/30(土) 06:10:54継承するとこうなるぞってことで
008473
2010/01/30(土) 10:50:29class NiseArray < Array
instance_methods.each do |method|
define_method(method) do |*args, &block|
result = super(*args, &block)
result.class == Array ? NiseArray.new(result) : result
end
end
end
p NiseArray.new.map{}.class #=> NiseArray
#-----hoge2.rb
require 'delegate'
class NiseArray < DelegateClass(Array)
def initialize
super(Array.new)
end
end
p NiseArray.new.map{}.class #=> Array
#なんでノットNiseArrayなのかミーにはホワイなんです><
0085デフォルトの名無しさん
2010/01/30(土) 14:01:51def initialize(a=Array.new); @a=a; end
def method_missing(*arg, &block); A.new(@a.__send__(*arg, &block)); end
def to_a; @a; end
def to_ary; @a; end
end
irb> a = A.new([1, 2, 3, 4, 5])
irb> a.delete(5)
irb> p a
#<A:0xb7cf21c0 @a=[1, 2, 3, 4]>
irb> p a.map{|e| e*2}
#<A:0xb7cecb30 @a=[2, 4, 6, 8]>
irb> p a.class
A
irb> p a.to_a
[1, 2, 3, 4]
irb> p Hash[*a]
{1=>2, 3=>4}
008673
2010/01/30(土) 14:46:42鮮やかに委譲してますね。
しかも直感的でわかりやすい。
#all?など返り値が委譲先のオブジェクトでないメソッドも少し手直しすれば動きそうです。
勉強になりました。参考にさせてもらいます。
0087デフォルトの名無しさん
2010/01/30(土) 17:55:24'あ' =~ /\xe3/ #=> 0
'あ' =~ /[\xe3]/ #=> nil
となります。
$KCODEを指定しないとどちらも同じ挙動になるんですが。
これは意図した動作なんでしょうか。
手元の環境は
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
です。
0088デフォルトの名無しさん
2010/01/30(土) 18:58:31$KCODE を設定しないということは
'あ' はただのバイト列として 0xe3 と比較される。
0089デフォルトの名無しさん
2010/01/30(土) 19:11:040090デフォルトの名無しさん
2010/01/30(土) 22:20:20p Class === Class #=> true
p Module === Module #=> true
p Object === Object #=> true
p String === String #=> false
p Array === Array #=> false
p BasicObject.class #=> Class
p Array.class #=> Class
p Kernel === Kernel #=> true
p Enumerable === Enumerable #=>false
p Kernel.class #=> Module
p Enumerable.class #=> Module
なんで?教えてえらい人!
0091デフォルトの名無しさん
2010/01/30(土) 22:52:30Module#===の定義をリファレンスで読むといいよ
selfがモジュールとすると「obj.kind_of?(self) が true の場合、 true を返します」だとさ
0092デフォルトの名無しさん
2010/01/30(土) 23:00:030093デフォルトの名無しさん
2010/01/30(土) 23:21:41===
0094デフォルトの名無しさん
2010/01/30(土) 23:22:47=== が再定義されているから
case value
when Integer
when String
end
みたいに書けるんじゃないか
0095デフォルトの名無しさん
2010/01/31(日) 00:08:030096デフォルトの名無しさん
2010/01/31(日) 07:39:30代入文みたいに a ||= {} 使うみたいな
辞書の割り当てとかでしょうか?
0097デフォルトの名無しさん
2010/01/31(日) 07:55:53objの中身はライブラリから返されたもので詳細はわかりません
p obj.class #=> Hash
p obj.is_a? Singleton #=> false
Marshal.dump(obj) #=> TypeError: singleton can't be dumped
以下はエラーになりませんでした
obj.each {|k,v| Marshal.dump([k,v])} #=>エラーなし
0098デフォルトの名無しさん
2010/01/31(日) 08:13:23そのエラー分かりにくいよね
特異メソッド(およびそれが定義されているオブジェクト)はダンプできませんよって意味
dupしたものをダンプするようにするか、自分で言ってるように中身だけ出すのが正解
0099デフォルトの名無しさん
2010/01/31(日) 08:40:37これ書いてる解説少ないんだよな
a がNameErrorを返すか、変数 a が存在して偽を返す場合、 a = {} を実行する
という程度の意味
実際のスクリプトでは大量に使われているが、初心者用文法解説ではほとんど言及されていない謎の記述
0100デフォルトの名無しさん
2010/01/31(日) 09:18:07a += 1
a = a + 1
a ||= {}
a = a || {}
a が偽と評価される場合に限り a = {} となり、それ以外のときは a = a
変数の初期化を保証するために使われることが多い
0101デフォルトの名無しさん
2010/01/31(日) 09:23:09だいたいの意味はそうだからいいんだけど、厳密には
a || (a = b)
ってことになる
||= と &&= だけちょっと特殊
ってようなのをどっかで見た
0102デフォルトの名無しさん
2010/01/31(日) 11:13:45http://doc.okkez.net/187/view/spec/operator#selfassign
まあobj.foo = obj.fooに副作用がある設計のほうがどうかと思うけどな
0103デフォルトの名無しさん
2010/01/31(日) 14:11:36ありがとうございます
objは再帰的なHashなようでdumpできないオブジェクトが入っている場所は一定ではないようです
またTrueClassなどdupできないものも含まれているようです
一気に特異メソッドを取り除いてdumpする方法はないでしょうか?
0104デフォルトの名無しさん
2010/01/31(日) 14:26:44ここ初心者レベルじゃないね。
初心者抜け出して中級者に手が届こうとしてる人たち向けの
初心者脱出スレだな。
0105デフォルトの名無しさん
2010/01/31(日) 14:29:35いや別に
puts と p はどう使い分けるんですかみたいな質問でも構わないよ
全く知らないと小難しそうな領域に踏み込めるようになるまでの時間が短い言語だとでも思ってくれ
実行速度がスクリプト言語として普通なレベル(つまり速いわけではない)という点以外は初心者にやさしいほうだと思うけどね
0106デフォルトの名無しさん
2010/01/31(日) 14:41:46初心者抜け出して中級者に手が届こうとしてる人たちも含めていろんな人が答えるスレでしょ
初心者の質問がなけりゃそのちょっと上の会話になるさ
0107デフォルトの名無しさん
2010/01/31(日) 14:44:02ライブラリ提供者が提供してないのなら目視で取り除くしかないよ
普通は dump というメソッドを作ってあったりするもんなんだけどね
0108デフォルトの名無しさん
2010/01/31(日) 15:15:55大丈夫、そういう場合は自分のような脱初心者(+ニート)が回答するから。
ただ、2chだから超初心者質問には悪態をつく人間がいることは覚悟しておいたほうがいいかも。
0109デフォルトの名無しさん
2010/01/31(日) 16:12:23それなりに調べて来ないと駄目でしょ。
思考停止して単位欲しいとかなら
http://pc12.2ch.net/test/read.cgi/tech/1200175247/
Rubyの宿題教えてください。2限目
とか。
0110デフォルトの名無しさん
2010/01/31(日) 16:22:38既にそいつは上級者だろw
まあ確かに、自力で最低限ぐぐるくらいのことはしてほしいとは思う
0111デフォルトの名無しさん
2010/01/31(日) 16:26:38むしろ私にも答えられるような初歩的な質問キボンヌ
0112デフォルトの名無しさん
2010/01/31(日) 16:33:04Marshalじゃなくてyamlか何かでダンプするようにするのが一番楽
0113デフォルトの名無しさん
2010/01/31(日) 18:48:05inspectじゃなくてppみたいに見やすく文字列化してくれるやつない?
0114デフォルトの名無しさん
2010/01/31(日) 19:23:46require 'StringIO'
require 'pp'
h = { 1=> '1234567890'*5, 2=> '1234567890'*5 }
sio = StringIO.new
PP.pp(h, sio, 79) # 79文字までは改行しない
sio.rewind
puts '========================'
puts sio.read
puts で表示されてるのがわかるかと思う
0115デフォルトの名無しさん
2010/01/31(日) 19:28:480116デフォルトの名無しさん
2010/02/01(月) 05:34:010117デフォルトの名無しさん
2010/02/01(月) 06:17:43てかRuby初心者スレは実質「Ruby質問スレ」と言ってもいい
超初心者からRubistまで、幅広く質問を受け付けるスレって感じがする
…てか、もうスレタイ変えちゃって良いんじゃないか、ここ…?
0118デフォルトの名無しさん
2010/02/01(月) 11:38:190119デフォルトの名無しさん
2010/02/01(月) 11:43:540120デフォルトの名無しさん
2010/02/01(月) 20:18:47ぐらいしか質問してないだろう
0121デフォルトの名無しさん
2010/02/01(月) 20:38:060122デフォルトの名無しさん
2010/02/01(月) 21:02:33def sum
key = nil
sum = 0
while line = gets
a = line.split(",")
if key !=a[0]
if key
print "#{key} #{sum}\n"
end
key = a[0]
sum = 0
end
sum += a[2].to_i
end
print "#{key} #{sum}\n"
end
0123デフォルトの名無しさん
2010/02/01(月) 22:15:250124デフォルトの名無しさん
2010/02/01(月) 22:56:47たぶんその理解は間違い。
0125デフォルトの名無しさん
2010/02/01(月) 23:02:24実際に手を動かさなかった人→>>124
0126デフォルトの名無しさん
2010/02/01(月) 23:06:22$stdin.lines.map {|l|l.chomp.split(/,/).values_at(0,2)}.
group_by(&:first).
each {|k,a|puts"#{k} #{a.map(&:last).map(&:to_i).inject(&:+)}"}
>>123 がソート済みかどうかを考慮しているのかどうか疑問が残る。
0127デフォルトの名無しさん
2010/02/01(月) 23:45:31メモリ喰いっすね
0128デフォルトの名無しさん
2010/02/02(火) 00:10:11http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi?gtk2-tut-itemfactory-example
ここにあるようなメニューとウィンドウを作ることはできたのですが、例えば
month = [1, 2, 3, 4, 5, 6, 7, 8, 9 ,10, 11, 12]
temp = [6.8, 7.8, 10.0, 15.7, 20.1, 22.5, 26.3, 26.6, 23.0, 19.0, 13.5, 9.0]
というデータがあったときに、横軸に month を縦軸に temp をとったグラフをウィンドウの中に、直接表示するためにはどうすればよいのでしょうか?
Windows XP ActiveScriptRuby環境です
最終的にはもっと長い(1000-10000点ほど)データがプロットしたいと考えています
0129デフォルトの名無しさん
2010/02/02(火) 00:37:22良く使われる手法は
1.グラフ画像を生成してウインドウに貼る
2.描画可能なコンポーネントにプログラムで描画する
の二つ
1.のグラフ画像生成は、画像処理ライブラリを使って自力でグラフを書くか
グラフ生成ライブラリを使うかする
2.はruby/gtk使った事無いからリンク先から関係ありそうなところ
> ttp://ruby-gnome2.sourceforge.jp/hiki.cgi?Gtk%3A%3ADrawingArea
> ttp://ruby-gnome2.sourceforge.jp/hiki.cgi?Gdk%3A%3ADrawable
0130デフォルトの名無しさん
2010/02/02(火) 00:41:470131デフォルトの名無しさん
2010/02/02(火) 00:43:29どっちにしても指示をRuby上からやる、という以上のものではないんで
GUIパーツの使い倒し方を知ってるのがけっこう前提
0132デフォルトの名無しさん
2010/02/02(火) 00:58:08ありがとうございます
素人考えですがポイント数が増えると 2. の方がいいのかなという気がするので、リンク先を読んでみます
>>130
Tk もわかりません…
0133デフォルトの名無しさん
2010/02/02(火) 01:05:03http://qwt.sourceforge.net/
RubyのQtバインディングがあればRubyからも使えるはず
俺はPyQtからしか使った事ないが
0134デフォルトの名無しさん
2010/02/02(火) 01:27:16128 です
ウインドウへの直接描画 - Gdk::Drawable
http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi?%A5%A6%A5%A4%A5%F3%A5%C9%A5%A6%A4%D8%A4%CE%C4%BE%C0%DC%C9%C1%B2%E8%282%29+-+Gdk%3A%3ADrawable
こちらを見落としていたようで、先ほどのリンクと一緒に参照しながらやっていきたいと思います
確かに gtk そのものを学ぶ必要があるのだろうとは感じています。ありがとうございました
>>133
ありがとうございます
Qwt のスクリーンショットはかなりイメージに近いです
0135デフォルトの名無しさん
2010/02/02(火) 02:28:19カーソル移動は問題ないです
irb --noreadline とすると入力は普通になりますが使いにくいです
ruby 1.8.6 (2009-08-04 patchlevel 383) [i386-mingw32]
0136デフォルトの名無しさん
2010/02/02(火) 04:15:300137デフォルトの名無しさん
2010/02/02(火) 08:07:16133のQwtであればAPIで簡単に実現可能な
描画領域の拡大・縮小やドラッグ、凡例表示なんかを実装するのは
よっぽどモチベーションが高くないと無理
0138デフォルトの名無しさん
2010/02/02(火) 10:52:05単なるローカルエコーであるはずのirbでの文字入力だけが重くなるという時点で
スペックとか関係ない問題だと思う…
0139デフォルトの名無しさん
2010/02/02(火) 15:08:410140デフォルトの名無しさん
2010/02/02(火) 17:42:37gz = Zlib::GzipReader.new io
gz.close
io.closed? # しまった!
IOクラスのインスタンスを要求するライブラリで、closeを呼ぶと
上流のIOがcloseされてしまう仕様は、何か理由があるのですか?
内部でIOを複製してそれを使えばいいじゃないですか、と思うのですが。
0141デフォルトの名無しさん
2010/02/02(火) 18:33:36一緒に閉じたほうが使いやすいから
Zlib::GzipReader の close 時に io を一緒に閉じて欲しくないのなら Zlib::GzipReader#finish を使う
これだと wrap 使ってブロックで書ける
File.open('text.gz'){|f|
Zlib::GzipReader.wrap(f){|gz|
# なんか
gz.finish
}
p f.closed? #=> false
}
0142デフォルトの名無しさん
2010/02/02(火) 18:36:10ホントだ。
何か技術的な理由でそのような仕様になっているのかと思った。
どうもありがとう。
0143デフォルトの名無しさん
2010/02/02(火) 18:43:30やっぱり内部で複製していないのか。
とりあえず io.rewind で戻せるからいいけどさ。。
0144デフォルトの名無しさん
2010/02/02(火) 18:52:49gz.rewind で GzipReader オブジェクトが作成された時点のファイルポインタ位置に戻せるよ
自動でやらないのは細かい制御したいときに込み込みでやられると発狂するからだと思う
File.open('text.gz'){|f|
Zlib::GzipReader.wrap(f){|gz|
# なんか
gz.rewind
gz.finish
}
p f.closed? #=> false
}
IO オブジェクトを複製しない理由はなんか偉い人が教えてくれるんじゃないかな
0145デフォルトの名無しさん
2010/02/02(火) 19:34:14f = File.open file
f.read
f.dup.seek 0
f.pos
そもそも副作用の代表格であるIOにまともな複製なんて不可能じゃない?
0146デフォルトの名無しさん
2010/02/02(火) 21:02:460147デフォルトの名無しさん
2010/02/02(火) 22:41:290148デフォルトの名無しさん
2010/02/03(水) 06:52:22Ruby on Rails 3.0 Release Notes
http://guides.rails.info/3_0_release_notes.html
0149デフォルトの名無しさん
2010/02/03(水) 10:23:18Windows版Rubyはirb立ち上げておくとなんか変なプロセスが一緒に走って重いよ。
デュアルコアならさして問題ないが1コア占有するんでね。
csrss.exeだったかな。システム絡みのが。
いつまで立っても直らないのは、CPU占有率を常に見ている人が少ないのと、
誰も公式に言わないからだろうと
0150149
2010/02/03(水) 10:27:00クアッドコアのマシンでruby 15%、csrss 8%ぐらい合わせて1コア分くらいだな。
ちょっと違ってたスマソ
とりあえず、Windowsではirb重い。
少なくとも開発中に立ち上げっぱなしはムリポw
俺はcoLinuxとかで立ち上げるからさして問題ないけど
0151デフォルトの名無しさん
2010/02/03(水) 10:29:19BusyLoopなの?
0152デフォルトの名無しさん
2010/02/03(水) 10:36:22触らなければCPU0%だなあ
もっと時間かけると占有するようになる?
0153デフォルトの名無しさん
2010/02/03(水) 10:38:150154デフォルトの名無しさん
2010/02/03(水) 10:39:560155デフォルトの名無しさん
2010/02/03(水) 13:11:460156デフォルトの名無しさん
2010/02/03(水) 14:50:51Readlineのdllを最新のものにしてみるとか
ちなみに
ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32]
のirbは軽い
csrss.exeの占有率はせいぜい0%~1%くらいか。
CPUはPentium M 1GH
ttp://gnuwin32.sourceforge.net/packages/readline.htm
0157デフォルトの名無しさん
2010/02/03(水) 15:20:42何がおかしいのか見当つかないのでどなたかアドバイスいただけないでしょうかよろしくお願いいたします
* 環境
>ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32]
>gem list
*** LOCAL GEMS ***
hpricot (0.8.2)
mechanize (0.9.3)
nokogiri (1.4.1)
* テストスクリプト
require 'rubygems'
require 'mechanize'
agent = WWW::Mechanize.new
page = agent.get('http://www.google.com/')
puts page.forms
puts page.forms.with
* 結果
>ruby -d hoge.rb
Exception `LoadError' at C:/PROGRA~1/ruby-1.8/lib/ruby/vendor_ruby/1.8/rubygems.rb:1112 - no such file to load -- rubygems/defaults/operating_system
Exception `NoMethodError' at C:/PROGRA~1/ruby-1.8/lib/ruby/1.8/rational.rb:78 -undefined method `gcd' for Rational(1, 2):Rational
Exception `LoadError' at C:/PROGRA~1/ruby-1.8/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:31 - no such file to load -- mechanize
#<WWW::Mechanize::Form:0x381a3a0>
Exception `NoMethodError' at C:/PROGRA~1/ruby-1.8/lib/ruby/1.8/pp.rb:214 - undefined method `with' for #<Array:0x381a4e0>
hoge.rb:7: undefined method `with' for #<Array:0x381a4e0> (NoMethodError)
0158デフォルトの名無しさん
2010/02/03(水) 15:24:15Mechanizeのメソッドの使い方を単に間違ってる
ここ全部読め
ttp://d.hatena.ne.jp/kitamomonga/20081209/kaisetsu_for_ver_0_9_ruby_www_mechanize
0159デフォルトの名無しさん
2010/02/03(水) 16:59:18とやると「hoge」が出力され、0以外だと「nil」が出力されるのですが
この構文自体がどういうものなのか分かりません。
なにかの省略形とかなのでしょうか?
0160デフォルトの名無しさん
2010/02/03(水) 17:07:50そんなへちょい例文作ったとこどこよお母さん一言文句言っちゃるわ
a = ["hoge"]
puts a[0]
つまり配列の 0 要素目
0161159
2010/02/03(水) 17:14:43やはり配列でしたか…。こういう記述も許されるんですね。
ありがとうございます。
0162デフォルトの名無しさん
2010/02/03(水) 17:16:58というか配列リテラルで直接要素参照する意味はまずない
むしろ嫌がらせに近い
0163デフォルトの名無しさん
2010/02/03(水) 17:28:30661 デフォルトの名無しさん [sage] 2009/09/04(金) 08:12:26 ID: Be:
Windows用Rubyは MinGW版が速いと聞いてRuby on Railsで試してみた - yuum3のお仕事日記
http://d.hatena.ne.jp/yuum3/20090805/1249452345
http://antoniocangiano.com/wp-content/uploads/2009/08/mri_kri_total_runtime.png
mingw版のほうが速いんだってさ
664 デフォルトの名無しさん [sage] 2009/09/06(日) 21:15:00 ID: Be:
Rails遅いのかーバージョン下げるかなー
665 デフォルトの名無しさん [sage] 2009/09/06(日) 22:06:08 ID: Be:
913 nobodyさん [sage] Date:2009/09/06(日) 14:23:30 ID:??? Be:
>>905-907
本当だ。なんだこれ?
mswin32版のRuby 1.8.7-p160が遅すぎる件 - 那由多屋 開発日誌
http://d.hatena.ne.jp/nayutaya/20090601/1243848756
L'eclat des jours(2009-04-22)
http://www.artonx.org/diary/20090422.html
(コメ欄)
666 デフォルトの名無しさん [sage] 2009/09/06(日) 23:28:30 ID: Be:
何年も前から言われてることに反応して欲しいのかな
667 デフォルトの名無しさん [sage] 2009/09/06(日) 23:53:35 ID: Be:
何年も前じゃないだろ
670 デフォルトの名無しさん [sage] 2009/09/07(月) 06:40:46 ID: Be:
>>666-667
>>665がその前もコピペしないからわからないが、どうやら、p160にうpだてすると、
Railsのviewの処理が100倍遅くなるらしい。今年に入ってからの話。
0164デフォルトの名無しさん
2010/02/03(水) 18:15:37どうもありがとうございました
このサンプルで動いている環境もあったので混乱していましたが
使っているバージョンが違っておりました
0165デフォルトの名無しさん
2010/02/03(水) 22:07:55タグを指定して、一部を抽出するプログラムを書きたいです。
require 'rubygems'
require 'hpricot'
require 'open-uri'
doc = Hpricot(open("dump.htm"))
(doc/:a).each do |para|
if para.attributes['tags'] = "microsoft"
puts para
end
までは書いたのですが、別のファイルに保存する方法が分かりません。
よろしくお願いします。
0166デフォルトの名無しさん
2010/02/03(水) 22:14:09...
end
の中に最後の4行をまるごと入れて、puts を out.puts に。
0167デフォルトの名無しさん
2010/02/03(水) 22:35:55ありがとうございます。出来ました。
しかし思ったような結果ではなかったので
上記のプログラムでは駄目なのかもしれません。
引き続き、ご相談をお願いします。
ファイル内に
<dt><a href=”” tags=””></dt>
<dd>テキスト</dd>
が繰り返されています。
タグが一致したら、上記全体を抽出したいのですが
これはhpricotで出来るのでしょうか?
それともxml パーサーのような物が必要なのでしょうか?
0168デフォルトの名無しさん
2010/02/03(水) 22:39:450169デフォルトの名無しさん
2010/02/03(水) 22:42:32>>167
本当にしたいことを言え
0170デフォルトの名無しさん
2010/02/03(水) 22:47:08dd = dt.next_sibling
つーかdtとddが出てこないのはputsをout.putsに変えなくても分かるはずだが
0171デフォルトの名無しさん
2010/02/03(水) 22:47:53> 本当にしたいことを言え
うーん、質問が意味不明ですか?
はてなブックマークのデータで
<dt><a href=”何か” tags=”microsoft”></dt>
<dd>コメント</dd>
の部分を抽出したいという事です。
>>165>>166だと
<a href=”何か” tags=”microsoft”>しか抽出できません。
dtから/ddまでを抽出したいのです。
お願いします。
0172デフォルトの名無しさん
2010/02/03(水) 22:53:52出来ました。
初めてのrubyなので、テンパってしまいました。
ありがとうございました。
0173172
2010/02/04(木) 00:10:07tagsが「microsoft」のような英字だと上手く行ったのですが
「これはすごい」のような日本語(全角)だと上手くいきません。
$KCODEをSJISに設定してみたりしたのですが・・・どうすれば良いのでしょう?
0174デフォルトの名無しさん
2010/02/04(木) 00:16:58おおむね全部書いてある
0175173
2010/02/04(木) 00:29:01を眺めているんですけど
レベルが合ってないのでしょうか?
0176デフォルトの名無しさん
2010/02/04(木) 00:35:15と読みましたが、Railsが全くわかりかねます
0177デフォルトの名無しさん
2010/02/04(木) 00:42:02小手先だけになって変更できなくなって詰まるのに
>>176
Railsは実際に作るものがないと知識としては全く覚えきれない
0178デフォルトの名無しさん
2010/02/04(木) 00:42:06申し訳ない。
たのしいRubyを購入したいと思います。
・・・最後におまけで
>>173にお答えいただけると、ありがたいです。
0179デフォルトの名無しさん
2010/02/04(木) 00:46:07その指定に従って、正規表現などの「バイト列と文字区切りの関係」を調整する
つまり、この場合の日本語はブックマークHTMLファイル中の日本語だけだから、
HTMLファイルの文字エンコーディングを指定すればいい
はてなブックマークのブックマーク形式のエクスポートHTMLファイルは UTF-8 だから、
$KCODE='u' とするか、 ruby -Ku で起動する
0180デフォルトの名無しさん
2010/02/04(木) 01:06:36> $KCODE='u' とするか、 ruby -Ku で起動する
rubyのプログラムの方も、BOM無しのUTF-8で保存したら
上手くいきました。
基本から勉強したいと思います。ありがとうございました。
0181149
2010/02/04(木) 02:11:00サンクス
環境書き忘れた。
大分前からアップデート暇なくてこのまま使っているから、今のは直っているのかもしれんな。
linuxだとというかdebian系だとaptとかでアップデート楽だからいいけど、
Windowsだとアップデートが面倒でかなわん。
ActiveScriptRubyで入れたものをmingwとかで上書きしちゃっていいものか
mingwでgemとかも込みのパッケージってあったけ?
0182149
2010/02/04(木) 02:11:46ruby 1.8.7 (2008-06-20 patchlevel 22) [i386-mswin32]
自分で言うのも何だがふるっ
0183デフォルトの名無しさん
2010/02/04(木) 02:16:49ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin]
0184デフォルトの名無しさん
2010/02/04(木) 02:22:46Railsやりたいんなら、今のRails入門のオススメは Head First Railsということになってる(でいいよね?)
O'Reilly Japan - Head First Rails
http://www.oreilly.co.jp/books/9784873114385/
http://amazon.co.jp/dp/4873114381/
Head FirstがRuby入門者向けに書いてあるかはしらんが、
その前にRuby入門の段階ならRailsの前にRubyの入門本をもっと読むべきだと思われるw
0185149
2010/02/04(木) 02:29:16手持ちのcygwin環境も同じバージョンだった。
gem入れてない環境だからかわからんが、cygwinで待機状態だと全然軽いほぼ0%。
csrss.exeも出てこないわ
>>156
とりあえず、簡単な方のReadlineのバージョン上げてみる
0186デフォルトの名無しさん
2010/02/04(木) 13:36:20>gem i hpricot
Building native extensions. This could take a while...
ERROR: Error installing hpricot:
ERROR: Failed to build gem native extension.
C:/Ruby/bin/ruby.exe extconf.rb
checking for stdio.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=C:/Ruby/bin/ruby
続きます。
0187デフォルトの名無しさん
2010/02/04(木) 13:37:36nokogiri使え
0188デフォルトの名無しさん
2010/02/04(木) 13:38:08ワロタ
0189デフォルトの名無しさん
2010/02/04(木) 13:38:18Gem files will remain installed in C:/Ruby/lib/ruby/gems/1.8/gems/hpricot-0.8.2
for inspection.
Results logged to C:/Ruby/lib/ruby/gems/1.8/gems/hpricot-0.8.2/ext/fast_xs/gem_m
ake.out
すいません、ググってみたのですが分かりません。
どうやったらhpricot入れられますか?
0190デフォルトの名無しさん
2010/02/04(木) 13:44:11Hpricot は本来の作者がメンテナンスを諦めた
Nokogiri 使うよろし
どうしても Hpricot を使わないといけないのなら
gem でバイナリが用意されてる mswin32 の Ruby をインストールするか
あるいは mingw32 Ruby においてコンパイル可能にする mingw32 Ruby の DevKit を入れれ
ttp://d.hatena.ne.jp/kitamomonga/20100130/ruby_mingw32_needs_make_when_install_watir
0191デフォルトの名無しさん
2010/02/04(木) 13:47:130192デフォルトの名無しさん
2010/02/04(木) 14:00:55諦めてnokogiri使わせて頂きます。
0193デフォルトの名無しさん
2010/02/04(木) 14:22:470194デフォルトの名無しさん
2010/02/04(木) 16:44:00前も思ったけどrubygemsってそのへんの判別どうなってんの?
0195デフォルトの名無しさん
2010/02/04(木) 17:17:21gem作成者がWindows向けかどうかを手で条件判断してる
install_win_binary if RUBY_PLATFORM =~ /win32/
とか
この場合、 mingw32 はマッチしないから、用意したWindowsバイナリ(mingw32でもたぶん動く)は使われずに
自前でコンパイルするように分岐する
Windows かどうかの判定は
install_win_binary if RUBY_PLATFORM =~ /win|mingw/
みたいに mingw を含めるようににしろ、と少し前から言われてる
これに沿ってない、あるいはそう言われる前の古い gem パッケージは、
mingw32 でも「バイナリパッケージなし」と判断されてコンパイルプロセスが走る
いっそそういうヘナチョコ gem も許してコンパイルを受け入れよう、というのが>>190でも書いてある DevKit
0196デフォルトの名無しさん
2010/02/04(木) 17:26:42ありがとう、雛形作成ツール or Rakefile手書きした人の責任ってことか
Rakeでis_windows?みたいなの用意していてくれれば解決だった気がする
0197デフォルトの名無しさん
2010/02/04(木) 17:56:02Darwin (= MacOSX) が引っかかる。
0198デフォルトの名無しさん
2010/02/04(木) 17:59:08http://jp.rubyist.net/magazine/?0017-CodeReview#l17
さすがに bccwin は外してもいいような気がする。
0199デフォルトの名無しさん
2010/02/04(木) 18:07:35p の表示結果を横取りして解析するようなむず痒さを感じる
0200デフォルトの名無しさん
2010/02/04(木) 18:51:01でデバッグするとき、gdbの--tty=みたいなことをしたいのですが、どうすればいいでしょうか?
デバッガへの入力(pやbreak等)と出力(pの結果等)はそのままrubyを起動した端末で、
hoge.rbの標準入出力は別の端末につなぎたいのです。
0201デフォルトの名無しさん
2010/02/04(木) 19:20:47じゃあ何使ったらいいの
バイナリの判定ならCONFIG["RUBY_SO_NAME"] とか?
0202デフォルトの名無しさん
2010/02/04(木) 21:00:16=> ["1", "2", "3"]
何が起きてる?リファレンスを嘗め回したがさっぱり
0203デフォルトの名無しさん
2010/02/04(木) 21:09:45:fooというシンボルのto_procはcall xするとx.fooの意味になるprocを返す。
例
> :to_s.to_proc.call 1
=> "1"
これでわかる?
0204デフォルトの名無しさん
2010/02/04(木) 21:11:020205デフォルトの名無しさん
2010/02/04(木) 21:15:43「Ruby1.9 ではイテレータをブロックなしで呼び出すと Enumerator を返すよ機能」と呼ぶ
irb> [1,2,3].map(&:to_s)
["1", "2", "3"]
irb> [1,2,3].map{|e| e.to_s}
["1", "2", "3"]
irb> [1,2,3].map(&:next)
[2, 3, 4]
irb> [1,2,3].map{|e| e.next}
[2, 3, 4]
irb> [1,2,3].map{|e| e.next}.map{|e| e.to_s}
["2", "3", "4"]
irb> [1,2,3].map(&:next).map(&:to_s)
["2", "3", "4"]
0206デフォルトの名無しさん
2010/02/04(木) 21:17:23http://doc.okkez.net/
あとは、リテラルを知っておくと調べたいことが明確になるかな。
ところで上のマニュアルで検索すると、結果が出るまで数十秒くらい待たされるんだが、どうなってんの?
特に検索に失敗した場合の結果報告が遅すぎる。
0207デフォルトの名無しさん
2010/02/04(木) 22:10:58.call 1 がどこから来るのか分からん
0208デフォルトの名無しさん
2010/02/04(木) 23:20:11class Symbol
def to_proc
proc {|obj, *args| obj.send(self, *args) }
end
end
実際1.8.6までのRubyにActiveSupport(Railsで使ってるRubyコア拡張)
入れると↑のように定義される。
0209デフォルトの名無しさん
2010/02/04(木) 23:30:59ごめん。
全てのデータを読み込んでるから遅い。
チューニングしたいけど、まとまった時間がとれない。
0210デフォルトの名無しさん
2010/02/05(金) 00:26:44[1,2,3].map(&proc{|obj| obj.send(:to_s) })になると。
*argsはブロック引数が2個以上のときか
> ["abc","def","ghi"].each_with_index(&:slice!)
=> ["bc", "df", "gh"]
理解。
0211デフォルトの名無しさん
2010/02/05(金) 00:43:06正確な動作を覚えておくと便利なことはあるだろうね
0212デフォルトの名無しさん
2010/02/05(金) 02:11:150213デフォルトの名無しさん
2010/02/05(金) 02:24:190214デフォルトの名無しさん
2010/02/05(金) 04:33:050215デフォルトの名無しさん
2010/02/05(金) 09:16:02&無しで実現してもらいたかった昨日
0216デフォルトの名無しさん
2010/02/05(金) 09:19:42>>205だと理解しているうちはいいけどな
SymbolかProcになるって時点で変だ
目を覚ませって感じではある
0217デフォルトの名無しさん
2010/02/05(金) 09:24:140218デフォルトの名無しさん
2010/02/05(金) 09:34:51それと>>202は&で:to_sをブロックとして扱おうとしてるだけだから
別にブロックなしというわけでなくEnumeratorも関係なくね
0219デフォルトの名無しさん
2010/02/05(金) 09:35:36開くとき他のchmファイルと違って「セキュリティの警告」がでるし
開いても本文カラムが「取り消されたアクション」か
「ページを表示できません」のいずれかにしかならん
以前は ttp://elbereth-hp.hp.infoseek.co.jp/ruby.html
のchmファイルを使っていたが問題はなかった
WindosXP SP3 なんだがどうしたものか
0220デフォルトの名無しさん
2010/02/05(金) 09:44:36ごめん。Windows持ってないんで検証出来ないんだ。
なんかチェックボックス外したら使えるという話は聞いたことがある。
手元のDebianではちゃんと見れた。
XPのSP3以降?ではそういう警告が出るようになったらしい。
Vistaで警告が出てたときはチェックボックスを外したら使えた。
0221220
2010/02/05(金) 09:46:140222デフォルトの名無しさん
2010/02/05(金) 11:01:26block = proc {|x| x.to_i }
%(1 2 3).map(&block)
の &block のところに &:to_i と書けるという話であって、
ブロックを取らないならEnumeratorを返すという話ではない。
# そもそも1.8.7のmapは互換せ(ry
0223デフォルトの名無しさん
2010/02/05(金) 11:14:26もしかしてIEのセキュリティレベルを落とさないと見れない仕様か
デフォルトの状態でリファレンスマニュアルが読めないとか
ここまでくるとドザーに対する嫌がらせに近いな
0224デフォルトの名無しさん
2010/02/05(金) 11:44:27嫌がらせはそのへんにしとけ
よく知らないけどセキュリティ絡みならそのchmのプロパティで「ブロックの解除」を試してみたら?
0225デフォルトの名無しさん
2010/02/05(金) 11:48:33なんでもかんでも Windows 叩いてオナニーしてる厨には理解できんだろうが
ttp://support.microsoft.com/kb/902225/ja
> これは正常な動作であり、セキュリティ更新プログラム 896358 および
> Windows Server 2003 SP1 のインストールの結果として予期されている動作です。
0226デフォルトの名無しさん
2010/02/05(金) 12:13:05Windows開発者にはかなり既知な問題なのですが、
chmファイル単体をそのままネットから落とすと、セキュリティがらみのフラグがつくんです。
exeファイル単体をネットから落とした時もいちいち確認してくるよね?
>>224 もいってるけど解決策はchmのプロパティでブロックを解除してやる
0227デフォルトの名無しさん
2010/02/05(金) 12:25:52そもそも表示にIE使う時点で将来的に規定事項だったその時がやって来ただけというか…
0228デフォルトの名無しさん
2010/02/05(金) 12:29:03「XPやVistaや7の人は俺を信用してチェックボックス外してね」
と警告するしかないな
0229デフォルトの名無しさん
2010/02/05(金) 14:46:340230デフォルトの名無しさん
2010/02/05(金) 14:50:20標準で検索フレームがつくのがchmの大きな利点
それさえ別途便利に使えれば素のHTMLの配布で問題ない
というかchmの検索はもうちょっと賢くなって欲しい
というか一般語の検索に特化されててプログラミング用語やトークンの検索に向かねー
0231デフォルトの名無しさん
2010/02/05(金) 15:38:21ありがとう
また一つ賢くなった
0232デフォルトの名無しさん
2010/02/05(金) 16:18:43【ActiveScript】RubyをWindowsで使うスレ【GUI】
0233デフォルトの名無しさん
2010/02/05(金) 19:23:17マニュアルのどこに書いてあるの?
0234デフォルトの名無しさん
2010/02/05(金) 19:50:56ttp://doc.okkez.net/static/191/class/Symbol.html
> self に対応する Proc オブジェクトを返します。
「self に対応する Proc オブジェクト」ってなんじゃらほという疑問の答はむろん書いてない
Ruby のマニュアルなんてそんなもんだ
0235デフォルトの名無しさん
2010/02/05(金) 20:16:44そこはすでに読んだ〜よ
0236デフォルトの名無しさん
2010/02/05(金) 20:36:29Rubyはソースコードに全て書いてある
/*
* call-seq:
* sym.to_proc
*
* Returns a _Proc_ object which respond to the given method by _sym_.
*
* (1..3).collect(&:to_s) #=> ["1", "2", "3"]
*/
static VALUE
sym_to_proc(VALUE sym)
{
return rb_proc_new(sym_call, (VALUE)SYM2ID(sym));
}
ほら書いてあった
0237デフォルトの名無しさん
2010/02/05(金) 20:43:18自身で示されるメソッドを呼ぶProcを返す。
ならまだ分かるか。さあるりまにフィードバックしよう。
0238デフォルトの名無しさん
2010/02/05(金) 20:51:32利用法しか書いてないのがそれっぽいといえばそれっぽいな
Cレベルのコメントでもそれなのか
0239デフォルトの名無しさん
2010/02/05(金) 20:54:53[1,2,3].map(&:to_s.to_proc)
[1,2,3].map(&Proc.new {|obj| obj.to_s })
[1,2,3].map{|obj| obj.to_s }
やっと腑に落ちた
横レスだけどみんなありがとう
0240デフォルトの名無しさん
2010/02/05(金) 20:55:08Symbolクラスのメソッドとして単体で吟味したときわけわかめになるだけで
それこそ
:mes.to_proc #=> proc{|o| o.mes}
と一言書いてもらえてれば納得度が上がったと思う
0241デフォルトの名無しさん
2010/02/05(金) 21:05:080242デフォルトの名無しさん
2010/02/05(金) 21:18:45から
[1,2,3].map(&Proc.new {|obj| obj.to_s })
が腑に落ちない
0243デフォルトの名無しさん
2010/02/05(金) 21:27:11>>240
0244デフォルトの名無しさん
2010/02/05(金) 22:05:10カッコで括って評価の順序を明確にすれば理解出来るか
1. [1,2,3].map(&:to_s)
2. [1,2,3].map(&(:to_s.to_proc))
3. [1,2,3].map(&(Proc.new{|obj|obj.to_s}))
0245デフォルトの名無しさん
2010/02/05(金) 22:05:51:mes.to_proc #=> proc{|o| o.mes}
が腑に落ちないと言ってるんだが?
0246デフォルトの名無しさん
2010/02/05(金) 22:08:540247デフォルトの名無しさん
2010/02/05(金) 22:09:04どう腑に落ちないのかはよくわからんが。
0248デフォルトの名無しさん
2010/02/05(金) 22:14:26ってことでしょ
>>245はこんなとこじゃなくMLででも聞け
0249デフォルトの名無しさん
2010/02/05(金) 22:18:12気持ち悪いのは元々Railsだから仕方ない
0250デフォルトの名無しさん
2010/02/05(金) 22:26:57名前、ばかにする
ばかにする、あんた、名前
1だけ・・・
出会い頭に、おたんこなす宣告から、あんたばかぁ、から丁寧にばかにするまで
レパートリーに富んだ構文糖に乾杯 >> 244
0251デフォルトの名無しさん
2010/02/05(金) 22:27:02関連がないということもない
と言えないこともない
0252デフォルトの名無しさん
2010/02/05(金) 22:58:440253デフォルトの名無しさん
2010/02/06(土) 01:21:49A = x unless A
これより簡潔な書き方ってあります?
0254デフォルトの名無しさん
2010/02/06(土) 01:25:430255デフォルトの名無しさん
2010/02/06(土) 01:28:33rubyってifとかunlessを倒置して後ろに置いてるのをよく見ますけど。
0256デフォルトの名無しさん
2010/02/06(土) 01:41:21>>254は撤回した上で吊ってきます
unless修飾子なんか嫌いだグスン
0257デフォルトの名無しさん
2010/02/06(土) 02:05:03a = a or x
a ||= x
0258デフォルトの名無しさん
2010/02/06(土) 02:54:23了解です。できれば Ruby/GTK2 から扱いやすいプロッターがあるといいのですがなかなか見つけられません。
0259デフォルトの名無しさん
2010/02/06(土) 03:02:50まあ元のunless自体同じような動作だが
0260デフォルトの名無しさん
2010/02/06(土) 07:57:34インデックスの仕方が微妙なせいで、記号とかアンダーバー含むと全然検索できないw
chm便利なんだけど、検索は本当に困る
0261デフォルトの名無しさん
2010/02/06(土) 10:17:38a or next
a or raise
みたいなイディオム?をたまに見かける
0262デフォルトの名無しさん
2010/02/06(土) 10:30:030263デフォルトの名無しさん
2010/02/06(土) 10:31:17意味がわからん。
>>253が間違えてるとは思えない自分に誰か救済の手を
0264デフォルトの名無しさん
2010/02/06(土) 10:33:270265デフォルトの名無しさん
2010/02/06(土) 13:54:41a = a or xは優先順位の都合で
(a = a) or xとして結合するからxの代入が起きない
a = (a or x)
a = a || x
と書くのが正しい
なんにせよ初期化のイディオムとしては、||=を使うこと
(簡単な解説を兼ねてorを並べたのが失敗)
falseの扱いは>>259の言う通り根本的な問題だから触れなかったけど
必要なら時はa = a.nil? && xとかやって
まあfalseが入ってるかもしれない変数にこの手の初期化はあまり行わないから普段は問題ない
0266デフォルトの名無しさん
2010/02/06(土) 13:57:09a = a.nil? && x
これダメ絶対、素直に後置してください・・・
0267デフォルトの名無しさん
2010/02/06(土) 14:11:350268デフォルトの名無しさん
2010/02/06(土) 14:12:260269デフォルトの名無しさん
2010/02/06(土) 14:17:08Rubyのネストは怖くない
ブロックは大いに使え
が、まあ、self を返すブロックつきメソッドとか map みたいなコレクション変更メソッドとか
そういうのを1行でメソッドチェインするようになると結構見栄えはよくなるよ
メソッドチェインするときはブロックは { } で書いてね
end のあとにドットつけられると動作上問題なくても見栄え的にぐんにゃり
0270デフォルトの名無しさん
2010/02/06(土) 14:23:37簡潔なメソッド名を考えると、コメント代わりになるし動作の見直しにもなるのでおすすめ
0271デフォルトの名無しさん
2010/02/06(土) 14:25:080272デフォルトの名無しさん
2010/02/06(土) 14:27:46kwsk
0273デフォルトの名無しさん
2010/02/06(土) 14:40:56外人さんの過激派はさすがに煽り方が違う
0274デフォルトの名無しさん
2010/02/06(土) 14:43:07とか言ってるとがっつりプライベートメソッドにされてたりする
気持ちはわかるが
0275デフォルトの名無しさん
2010/02/06(土) 16:33:30・1行が80byteを超えることは望ましくない
はRubyのコーディングルールとしてよく採用されている
0276デフォルトの名無しさん
2010/02/06(土) 16:44:58メソッド10行制限ってのはカルト宗教の世界だな
0277デフォルトの名無しさん
2010/02/06(土) 16:49:22ねえよ
そっちのほうがただの宗教だ
悔しかったら「lessやgrepは色づけしないから色付けに頼った視覚効果のスクリプトを書くべきではない」レベルまで言え
0278デフォルトの名無しさん
2010/02/06(土) 16:52:33標準ライブラリのほとんどがボツってこと貝?
0279デフォルトの名無しさん
2010/02/06(土) 16:53:240280デフォルトの名無しさん
2010/02/06(土) 16:57:01あ、どっかでそれ読んだ
「お前の環境がヘボいだけだろ」とか心の中で突っ込んだ覚えがある
行数は、本来は行数そのものが問題じゃないよね
短い定義の適切なメソッドの作成を目指すべきというのが本論
その現実的な目安として、やっぱ5行…は過激派だが、10行くらいがポイントだと思うなあ
これより長かったら分割手段を本気で考えたほうがいいかと
0281デフォルトの名無しさん
2010/02/06(土) 16:58:58まあ基本的には
めちゃくちゃベーシックな添付クラスだからごてっとするのも致し方ない面はあるが、
それでももうちょいこまごまとしててもいいとは思う
特にユーティリティ的なクラス
0282デフォルトの名無しさん
2010/02/06(土) 17:03:26どんどん分割しよう。
0283デフォルトの名無しさん
2010/02/06(土) 17:07:320284デフォルトの名無しさん
2010/02/06(土) 17:18:270285デフォルトの名無しさん
2010/02/06(土) 17:25:410286デフォルトの名無しさん
2010/02/06(土) 17:28:32べつに誰も悔しくないと思うけどw
0287デフォルトの名無しさん
2010/02/07(日) 09:03:47Railsのプラグインのソースを読む機械が多いが、
ちゃんと作ってるプラグインはモジュール化しまくり、メソッド分割しまくりだな。
なんでこんなところまでちゃんとモジュール化しとんねん!て思うほど
0288デフォルトの名無しさん
2010/02/07(日) 09:49:17漏れは関数は25行以内(最悪でも50行程度)って教えられた
80x25のコンソールで一画面か、印刷して一ページのサイズ
0289デフォルトの名無しさん
2010/02/07(日) 09:53:55それがあるんだよ
たまに
def hoge() p 123 end
みたいに改行せずにエディタの80文字の折り返しだけで次の行へいったつもりでソース書く馬鹿がいるんだよ
(っていうか昔の糞エディタだと2行に分かれていたものが1行に繋がってしまうケースとか良くあったんだ)
0290デフォルトの名無しさん
2010/02/07(日) 09:56:360291デフォルトの名無しさん
2010/02/07(日) 09:58:11いや、実態は携帯で長ったらしくスクロールさせてページ切り替わると
リロードが増えてアクセス数も増えるみたいな都市伝説があるらしい
仮に100歩ゆずってそれでリロードされるのが事実だとしても
そんな方法でアクセス数増やしてなにが嬉しいのかと
0292デフォルトの名無しさん
2010/02/07(日) 09:59:30emacsですねわかります
0293デフォルトの名無しさん
2010/02/07(日) 10:00:10それは従来のプログラミング言語の話だろ
わざわざRubyにそのまま持ち込む必要はない
0294デフォルトの名無しさん
2010/02/07(日) 10:01:16メソッド定義が10行以上だと「長い」と指摘してくるな
0295デフォルトの名無しさん
2010/02/07(日) 10:02:31すっきりさせるために短く書くのは悪いことじゃない罠
0296デフォルトの名無しさん
2010/02/07(日) 10:04:24一太郎だろ
0297デフォルトの名無しさん
2010/02/07(日) 10:05:50アメーバだっけ?芸能人ランキングのあるやつ
改行増やしてPV増やしてランキングの上を目指すんだって
本当かどうかは知らない
0298デフォルトの名無しさん
2010/02/07(日) 10:09:36エコに反してるから改行撲滅キャンペーンした方がいいぞ
0299デフォルトの名無しさん
2010/02/07(日) 10:10:030300デフォルトの名無しさん
2010/02/07(日) 10:10:4510行ルール適用してもらってよ。
0301デフォルトの名無しさん
2010/02/07(日) 10:32:50あれはPVアップ界王拳の一種で、ケータイで見たときに複数のページに分割されるのでPVがあがるってやつ
芸能人もそうだけおdPV多いとアメブロはお金もらえる仕組みがある
最近PCの情報サイトでもページ分割するのちらほら見るよね、携帯向けじゃなくても
あれPV上げるため
0302デフォルトの名無しさん
2010/02/07(日) 10:44:45言語の話じゃなくて環境の話じゃね?
0303デフォルトの名無しさん
2010/02/07(日) 10:51:12それ面白そうだなw 使ってみるか
0304デフォルトの名無しさん
2010/02/07(日) 11:12:10やめとけ
警告多すぎて森に隠れる木の状態になるぞ
igonoreの指定も面倒だし
0305デフォルトの名無しさん
2010/02/07(日) 11:14:380306デフォルトの名無しさん
2010/02/07(日) 11:16:320307デフォルトの名無しさん
2010/02/07(日) 11:26:24class DB
protected
self.new
super
end
end
してもクラス外で普通にDB.newできてしまったorz
0308デフォルトの名無しさん
2010/02/07(日) 11:28:000309デフォルトの名無しさん
2010/02/07(日) 11:31:07db.closeするのを忘れたくないんで。
0310307
2010/02/07(日) 11:40:07private
def self.hoge
puts 'hoge'
end
end
Hoge.hoge
でも動いちゃいますね……
そもそもクラスメソッドをprivateにするのってどうすりゃいいんでしたっけ?
0311デフォルトの名無しさん
2010/02/07(日) 11:40:33それとブロックつきopenの提供で充分
0312307
2010/02/07(日) 11:42:15吊ってきたいと思います。
スレ汚しすいませんでした。
0313デフォルトの名無しさん
2010/02/07(日) 11:48:31素直にgnuplot使うのが手っ取り早い
http://rgplot.rubyforge.org/
0314デフォルトの名無しさん
2010/02/07(日) 12:24:44うまい覚え方はないものか
0315デフォルトの名無しさん
2010/02/07(日) 12:44:35privateがC++なんかのprotected相当なんだっけ?
0316デフォルトの名無しさん
2010/02/07(日) 13:01:40「任意のレシーバに対する呼び出しが出来ない」
関数っぽく書く呼び出し方のみが可能ってことね。
0317デフォルトの名無しさん
2010/02/07(日) 13:06:54こんなオモチャ機能は1.9で無くなってもよかった
0318デフォルトの名無しさん
2010/02/07(日) 13:07:320319デフォルトの名無しさん
2010/02/07(日) 13:17:06少なくとも名称は変えるべきだったよなあ
0320デフォルトの名無しさん
2010/02/07(日) 13:23:05つまり、
class Chinko
private def manko
end
end
の場合、
class Chinko内で
def sounyu
manko
end
のような呼び出しはOKだが、
chinko = Chinko.new
chinko.manko
は駄目なんだっけ?
0321デフォルトの名無しさん
2010/02/07(日) 13:29:10if name == "foo" ||
name == "bar"
#do something
end
()や:が必須の言語ですと気分的にも安心なのですが、
Rubyではあまり改行してるの見ない気もします。
一応、上のコードは問題ちゃんと判定されているし、
条件文内の代入文もきちんと評価されていますが、どうも不安です。
条件文の後にthenを入れておけば確実なのかなとも思うのですが・・・
0322デフォルトの名無しさん
2010/02/07(日) 13:30:37Rubyのprivateは単に見栄え上の判断しかしない
0323デフォルトの名無しさん
2010/02/07(日) 13:33:43カッコ書いて条件部分を式にすればいいじゃん
時々、カッコ書いたら死ぬ病の人が紛れ込んでるんだけど、そういう人は Ruby 使ったら駄目よ
0324320
2010/02/07(日) 13:36:27chinko = Chinko.new
chinko.manko
は
private method `manko' called for #<Chinko:0xxxxxxx> (NoMethodError)
で駄目ですね。
tansyou.send :manko
みたいにsend経由だとOKなんですね。
0325デフォルトの名無しさん
2010/02/07(日) 13:37:53たまにブログなどで見かけるように、
puts 1 + 1 # => 2
のように、出力結果をコメントで文の右に追加してくれるスクリプトがあったと思うのですが、
どなたか御存知ありませんか?
0326325
2010/02/07(日) 13:41:06xmpfilter でした。
「ruby 実行結果 コメント」で検索したらでてきました。
xmpfilter で Ruby のコードに実行結果をコメントに表示 | すぐに忘れる脳みそのためのメモ
http://jutememo.blogspot.com/2008/06/xmpfilter-ruby.html
eigenclass - xmpfilter: automagic Test::Unit assertions/RSpec expectations and code annotations
http://eigenclass.org/hiki/xmpfilter
0327デフォルトの名無しさん
2010/02/07(日) 15:13:27sortメソッドを使うときに、a.sort{|a,b|a<=>b}とか書きますよね。この場合はどちら?
0328デフォルトの名無しさん
2010/02/07(日) 15:18:410329デフォルトの名無しさん
2010/02/07(日) 15:38:31クロージャは生成時の情報(コンテクストと呼ばれる)を閉じ込めて保有するオブジェクト及びブロックの総称
一般的にbindingメソッドを持つ
例 Procインスタンス, Bindingインスタンス, ブロック
プロシージャは手続きオブジェクト及びブロックの総称
一般的にcallメソッドを持つ
例 Procインスタンス, Methodインスタンス, ブロック
>>327の例の場合
ブロック生成時の情報は特にブロック内に閉じ込められていない。
だからクロージャとしては使われていない。
もっぱら手続きを実行するためのブロックなのでプロシージャとして使われている。
クロージャの例
def hoge
var = "hoge"
Proc.new{var}
end
closure = hoge
#p var #=> undefined local variable or method `var'
p eval('var', hoge.binding)
0330329
2010/02/07(日) 15:41:570331デフォルトの名無しさん
2010/02/07(日) 16:02:44「Rubyではコンテキスト情報の保存にBindingクラスのオブジェクトを用いる」
でいいじゃん
それ使えばコンテキスト依存の処理になるからおおむねクロージャだ
使わない(使わなくてすむ)ならただのプロシージャ(可搬性のある処理のかたまり)
0332デフォルトの名無しさん
2010/02/08(月) 21:28:39当時は14秒で終えてたのに
0333デフォルトの名無しさん
2010/02/08(月) 21:35:390334デフォルトの名無しさん
2010/02/08(月) 23:54:490335デフォルトの名無しさん
2010/02/09(火) 00:08:400336デフォルトの名無しさん
2010/02/09(火) 00:24:480337デフォルトの名無しさん
2010/02/09(火) 01:23:060338デフォルトの名無しさん
2010/02/09(火) 07:43:240339デフォルトの名無しさん
2010/02/09(火) 18:16:30テキストモードでのファイル読み込みが10倍ほど遅くなってるのでそのせいか?
読み込み時のエンコーディングをASCII-8BITとかにしてもさほど変わらんので
universal newlineとかいう改行コードの差異を吸収してLFに変換するのが遅いのだろうか
バイナリモードで読んでからforce_encodingすると1.8と同程度になるよ
自分は趣味程度にしか使ってないので困らないけど
巨大なログを処理する人とかだと、地味にいやな性能劣化なんだろうな
0340デフォルトの名無しさん
2010/02/09(火) 18:34:44ruby -e "open(ARGV.shift,'r'){|f|f.read}" edict
すると 0.42秒
Mingw版Ruby 1.9.1p0 では107秒
ちょっ、200倍遅いorz
ruby -e "open(ARGV.shift,'rb'){|f|f.read.force_encoding('cp932')}" edict
バイナリモードで 0.46秒
ruby -e "open(ARGV.shift,'rb'){|f|f.read.force_encoding('cp932').gsub!(/\r\n|\n|\r/,?\n)}" edict
などと改行変換もすると 3.72秒
K6-2 450MHzのWindows2000なんでちょっと遅いし、Rubyも最新のじゃないですが
0341デフォルトの名無しさん
2010/02/09(火) 18:35:14migw32使え
0342デフォルトの名無しさん
2010/02/09(火) 18:59:11へんに差異を吸収しようとせずエンコーディング毎に処理して欲しいもんだ
コンパイラが古いとはいえ、まさか仮想環境や.NETに負けるとは思わなかった。
↑↑↑はパズル問題を解くスクリプトで読み込みはほんの少し
書き出しは途中経過も出してるんでかなり多い
1.8.6: 220"、1.9.0: 14"、1.9.1: 90"
0343デフォルトの名無しさん
2010/02/09(火) 19:06:59後から起動した方をすぐに殺したいです。
0344デフォルトの名無しさん
2010/02/09(火) 19:23:33あまり好きじゃないけど。
0345デフォルトの名無しさん
2010/02/09(火) 19:27:46ロックファイルがあったら「起動中です」と言ってexit(1)する
スクリプト終了時にロックファイルを消去する
こんなのがいちばん簡単だと思う
強制終了でロックファイル消去プロセスを飛ばすと使用者層によっては悲惨だけど
0346デフォルトの名無しさん
2010/02/09(火) 19:34:150347デフォルトの名無しさん
2010/02/09(火) 19:44:48ttp://www.artonx.org/data/asr/
mingw32(RubyInstaller/OneClickInstaller、gemの古パッケージはバイナリがなくDevelopment Kitが要ることも)
ttp://rubyinstaller.org/download.html
とりあえずp0 の1.9.1 は産業廃棄物なので使って文句言うの禁止で
0348デフォルトの名無しさん
2010/02/09(火) 20:42:28ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mswin32]
time:4.984375
ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32]
time:3.421875
IronRuby 0.9.3.0 on .NET 2.0.0.0
time:5.890625
ruby 1.9.1p243 (2009-07-16 revision 24175) [i486-linux] ※VMware
time:2.392678477
0349デフォルトの名無しさん
2010/02/09(火) 23:03:02unless [
exp1,
exp2,
exp3,
exp4,
...
].include? false
puts "true!"
end
0350デフォルトの名無しさん
2010/02/09(火) 23:22:03釣りだよな?
Enumerable#all?
Enumerable#any?
と同じ結果を望んでるなんてことないよな?
0351sage
2010/02/10(水) 00:13:38["sa","ka","wa"].map(&f.call(_,"by"))
みたいに、第二変数の束縛を先にやってから
procをつくりたいのですが、どうすればいいのでしょう?
map{...}はなしで。
0352デフォルトの名無しさん
2010/02/10(水) 00:18:31おれそれ諦めた。
0353デフォルトの名無しさん
2010/02/10(水) 00:26:48f=lambda{|x,y| x+y}
p ["sa","ka","wa"].map(&f.curry.call("by"))
0354sage
2010/02/10(水) 00:50:33順番は逆だったけど、あとは適当に。
0355デフォルトの名無しさん
2010/02/10(水) 00:59:39$__ = Object.new
def cut(*args_part)
Proc.new{| *args |
call(*args_part.map{| arg |
arg == $__ ? (args.shift) : arg
})
}
end
end
f=lambda{|x,y| x+y}
p ["sa","ka","wa"].map(&f.cut($__,"by"))
# => ["saby", "kaby", "waby"]
まったく勧めないけど一応
0356デフォルトの名無しさん
2010/02/10(水) 08:30:40mingw版入れろはわかるけど面倒だからパッケージ作ってくれ頼む。RubyGemsとか入っているヤツ
Windowsはaptとかねーんだよ
外人でもいいけど、こういうのはどこに頼めばいいの?
ActiveScriptRubyに上書きしてもいいのかな
>>347
OneClickInstllerも1.8系は1.8.6だから古いよね
0357デフォルトの名無しさん
2010/02/10(水) 08:32:02そして、1.8.7版が来てる!!!サンクス
問題はアップデートだな。OneClickInstaller時にアップデートしようとしたらアンインストールしろ!とか言われたからな・・・
0358デフォルトの名無しさん
2010/02/10(水) 08:59:35>>356みたいな人間が発展を阻害する
0359デフォルトの名無しさん
2010/02/10(水) 09:26:54まー、mingw32は正式版じゃないからな
正式版だけ使いたいという人にはお勧めしない
現状の正式版は中身のRubyが全然「安心の正式版」じゃないけどな
インストーラーが未熟でも中身のRubyがバグフィックスされてることのほうが重要だと思う
0360デフォルトの名無しさん
2010/02/10(水) 09:44:31正式版ってなによ
どこにそんなことが書いてある
0361デフォルトの名無しさん
2010/02/10(水) 09:51:15まー、(現在公開されている)mingw32(のRuby Installer)は(まだrc2で)正式版じゃないからな
(rcやベータではない)正式版(のインストーラー)だけ使いたいという人には(まだ)お勧めしない
現状の(唯一の)正式版(として公開されてるOne Click Installer)は中身のRuby(の本体のパッチレベル)が(古くて)
全然「安心の正式版」(と言えるような組み合わせ)じゃないけどな
インストーラーが未熟でも中身のRubyがバグフィックスされてることのほうが重要だと思う
こんなんでどう
0362デフォルトの名無しさん
2010/02/10(水) 10:03:300363デフォルトの名無しさん
2010/02/10(水) 13:07:09thanxよくわかったw
0364デフォルトの名無しさん
2010/02/10(水) 18:00:13あるいはその逆で
どんなのがありますか
0365デフォルトの名無しさん
2010/02/10(水) 18:06:00機能で分かれてるわけじゃない
わかんなかったら mswin32 である ActiveScriptRuby 使っとけ
0366デフォルトの名無しさん
2010/02/10(水) 19:23:29中身のRuby自体はmingwの方が新しい
って理解でいいの?
0367デフォルトの名無しさん
2010/02/10(水) 19:28:380368デフォルトの名無しさん
2010/02/10(水) 19:31:35GIL使ってる限り信頼性は変わらない
0369デフォルトの名無しさん
2010/02/10(水) 19:38:19RubyInstallerはまだインストーラー含めてrc版(ベータと正式の中間)
OneClickInstallerで入るRubyはmswin32で作られている
RubyInstallerで入るRubyはmingw32で作られている
mswin32は従来のタイプの「Windows版Ruby」でgemライブラリでは確実にバイナリがある
古いコンパイラで作ってあるせいか、環境によってはなぜか動作が遅いことがある
どうせアップグレード時は全消し推奨なんで面倒の少ないこっち使って慣れろという説も根強い
mingw32は今後主流になるもので最終更新日が古いgemライブラリではバイナリ自前コンパイルも
動作速度が遅くなる報告は少ないが、gemバイナリの自前コンパイル強要はめどい
サイトのDevelopment KitをRubyを標準インストールしたディレクトリに上書きコピーすればいいだけだが
あと、mingw32をWindows環境のRubyの印だと認識してないスクリプトがまだあるので手直しが要ることも
0370デフォルトの名無しさん
2010/02/10(水) 19:58:39mswin32 版を使う場合は ActiveScriptRuby のほうインストールしろ
OneClickInstaller 使って数年前の Ruby をわざわざいまさらインストールする必要もない
■ とにかく迷いたくない普通の人 … ActiveScriptRuby
面倒がない mswin32 版のみ提供、ActiveTcl を別途入れると tcl でウィンドウも描けるぞ(要Tcl言語知識)
ttp://arton.hp.infoseek.co.jp/indexj.html
1.9.1 を使いたい人は
ttp://www.artonx.org/data/asr/
の「Ruby-1.9.1-p数字 Microsoft Installter Package」を使わせてもらえ
なに、自分のとこだけ妙に処理が遅い? 宝くじ並の外れ環境だからマシン買い換えろ
■ トラブっても自分で手直しする根性あるから遅くなる可能性ないほうがいい … RubyInstaller
古いコンパイラ製ではない mingw32 版の提供がメイン
ttp://rubyinstaller.org/download.html
古いgemパッケージでWindows環境だとみなしてくれずにコンパイラが走って「make がない」と言われること有り
それを乗り越えるためにコンパイラ環境が入ってる「Development Kit」をインストールしておくのを推奨
ttp://wiki.github.com/oneclick/rubyinstaller/development-kit
上記解説にもあるが、RubyInstallerの標準ディレクトリ構成の場合は上書きだけでよい(設定ファイル記述不要)
7zip でないとダウンロードしたファイルを展開できないので注意
スクリプト内での条件分岐で「mingw32」をWindowsとみなさないものが稀にあるので、それは手動で書き換える必要あり
0371デフォルトの名無しさん
2010/02/10(水) 20:08:43・ 初心者は ttp://www.artonx.org/data/asr/ の 1.8.7 だけ使え、トラブル起きたらここで聞け
でいいじゃん
0372デフォルトの名無しさん
2010/02/10(水) 20:16:28どうでもいいけどこのサイト meta charset と本文 HTML のエンコーディング食い違ってるぞ
見るたびに毎回エンコーディング指定やり直さないといかん
0373デフォルトの名無しさん
2010/02/10(水) 20:22:120374デフォルトの名無しさん
2010/02/10(水) 20:22:560375デフォルトの名無しさん
2010/02/10(水) 20:24:290376デフォルトの名無しさん
2010/02/10(水) 21:00:20とりあえず Windows で Ruby がめちゃくちゃ面倒糞いということがわかりました
ほんとうにありがとうございました
0377デフォルトの名無しさん
2010/02/10(水) 21:01:13見た感じ遠い未来に見える。
http://kenai.com/projects/jruby/pages/Ruby1_9Support
0378デフォルトの名無しさん
2010/02/10(水) 21:02:47それは作者がUTF-8の普及だか何かのためにわざとやってるらしいよ
0379デフォルトの名無しさん
2010/02/10(水) 21:08:40そもそもなんでそんな時間かかるんだよ
何がネックになってるんだ
0380デフォルトの名無しさん
2010/02/10(水) 21:12:04Java からも読めるように作ること
Java VM 上で単独で動く ruby インタプリタを作るだけなら
たぶんもっと早くにプロジェクト完了してるんじゃないかな
0381デフォルトの名無しさん
2010/02/10(水) 21:55:570382デフォルトの名無しさん
2010/02/10(水) 22:18:290383デフォルトの名無しさん
2010/02/10(水) 22:19:060384デフォルトの名無しさん
2010/02/10(水) 22:26:55gem install oniguruma
組み込みになるわけではないので制約はあるが。
http://oniguruma.rubyforge.org/use.xhtml
0385デフォルトの名無しさん
2010/02/10(水) 23:22:59気がします・・・知らずに joni 使ってるひとも嫌少ないだろう・・・
0386デフォルトの名無しさん
2010/02/10(水) 23:49:300387デフォルトの名無しさん
2010/02/11(木) 03:58:52Requirements
* Oniguruma regular expression library (>= 4.x.x)
ってことは
自分でOnigurumaをコンパイルするか
バイナリをどこからともなく拾ってくる必要があるってことか
./configure
make
make install
で済む話ではあるが
0388デフォルトの名無しさん
2010/02/11(木) 22:37:00"\343\201\255\343\201\223\343\201\240\343\201\204\343\201\231\343\201\215"
irb> $KCODE="u"
irb> p "ねこだいすき"
"ねこだいす\343\201\215"
なんだこれ
0389デフォルトの名無しさん
2010/02/11(木) 23:22:03for (i = rect->lx, j = rect->ly; i <= rect->hx; i++) map[i][j] = TRUE;
0390デフォルトの名無しさん
2010/02/11(木) 23:24:17$ cat test.rb
# coding: utf-8
p 'ねこだいすき'
$ rvm 1.8.7-p72,1.8.7-p160,1.8.7-p174,1.8.7-p249,mput ruby -Ku test.rb
ruby-1.8.7-p72: ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin10.2.0]
"ねこだいすき"
ruby-1.8.7-p160: ruby 1.8.7 (2009-04-08 patchlevel 160) [i686-darwin10.2.0]
"ねこだいすき"
ruby-1.8.7-p174: ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.2.0]
"ねこだいすき"
ruby-1.8.7-p249: ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-darwin10.2.0]
"ねこだいす¥343¥201¥215"
mput-head: ruby 1.9.2dev (2010-02-10 trunk 26632) [x86_64-darwin10.2.0]
"ねこだいすき"
0391デフォルトの名無しさん
2010/02/11(木) 23:26:15jは変化してないけどいいの?
iだけならuptoでよいでしょう。
0392デフォルトの名無しさん
2010/02/11(木) 23:41:26ありがとうございます!
これをrubyに書き換えて勉強中でした。
ttp://racanhack.sourceforge.jp/rhdoc/coderect.html
0393デフォルトの名無しさん
2010/02/11(木) 23:52:42http://redmine.ruby-lang.org/repositories/revision/ruby-18?rev=26103
usa, 2009年12月15日 11:50 AM
string.c (rb_str_inspect): wrong result of UTF-8 inspect because of the mistake of calculation. reported by eban via IRC.
これかな。
あれ、1.8.7-p248 がクリスマスリリースだったはずだが…
0394デフォルトの名無しさん
2010/02/11(木) 23:56:350395デフォルトの名無しさん
2010/02/12(金) 03:35:08教祖様が日本語処理ぐらい最初からまともに組み込んでてくれれば。
0396デフォルトの名無しさん
2010/02/12(金) 06:07:00どう使い分けたらいいの?
0397デフォルトの名無しさん
2010/02/12(金) 08:13:29- shift_jis, euc-jp, iso-2022-jp, utf-8しか使えない。
- 改行コードの変換ができる。
- カタカナやアルファベットの全角半角変換ができる。
- base64のデコード/エンコードができる。
iconv
- いろんなコードが変換できる。
0398デフォルトの名無しさん
2010/02/12(金) 08:28:43ttp://www.artonx.org/diary/20100211.html#c01
0399デフォルトの名無しさん
2010/02/12(金) 08:33:31その他機能がnkfにはあると
そういうこと?
0400デフォルトの名無しさん
2010/02/12(金) 08:51:301.9のencodeとNKF/iconv/kconv/uconvの違いも教えてほしい
0401デフォルトの名無しさん
2010/02/12(金) 09:14:29対応してる文字コードが多いほうが上っていうことでしょ
String#encodeはよくわからんが
ttp://jp.rubyist.net/magazine/?0009-BundledLibraries
0402デフォルトの名無しさん
2010/02/12(金) 09:17:58encode!は自分自身の持つバイト列とエンコード情報を変える。
force_encodingは自分自身のエンコード情報のみ変える。バイト列はそのままで解釈が変わる。
kconvはnkfをラッピングして文字コード変換のみ、簡単にできるようにしたもの。
uconvはたしか標準じゃないよな?
euc-jp, cp932(shift_jisの亜種), utf16, ucs-4に対応している。
rubyでutf-8が扱えるようになったのはuconv作者の提案したコードがもとになってる。
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/4186
0403デフォルトの名無しさん
2010/02/12(金) 09:28:13NKFはguessができるので、現在のエンコーディングが何かわからなくても変換ができる
ただ、日本語関連(とMIME)しか認識できないしLatin-1とかの指定もできない
iconvはguessができないので、現在のエンコーディングを正確に(本当に正確に)指定しないと変換できない
そのかわり、NKFではできなかったような文字エンコーディングの値の保持解釈ができる
SHIFT_JISとCP932やEUC-JPとEUC-JP-MSを使い分けられる(可能性がある)のはiconvだけ
ただし、相手のマシンにインストールされている外部iconvのバージョンと対応に依存するのでやや面倒
iconv実装にはでっかい版と小さい版があり、外人産は小さい版だけを使うことが多いのでファッキンガッデム
1.9のEncodingはiconvを使ってる
kconvはNKFを使ってる
uconvはめんどくさいからもう使うな、使わなくても用は済むはず
0404デフォルトの名無しさん
2010/02/12(金) 09:36:07そのリンクは読んだけど総花的であんまり参考にならなかった
・M17N(1.9)/NKF/iconv/kconv/uconvで変換結果に差が出ることがあるか
・速度の違い
・推測の精度
・使い分けのシチュエーション
がよくわからんのですよ
0405デフォルトの名無しさん
2010/02/12(金) 09:38:35わかりやすい
0406デフォルトの名無しさん
2010/02/12(金) 09:44:20でメールみたいに入力のエンコーディングがよく解らん場合はNKF.guessをつかえと
入力のエンコーディングが固定されてる場合はiconvでおkでOK?
1.9のM17Nはguessしてくれてるんだと思ってたわ。
0407デフォルトの名無しさん
2010/02/12(金) 09:47:44のあとに続くのが
> よく解らん場合
なのがショックだ
あれは99パーセントくらいの確率でヘッダに書いてあるまんまだと思うのだが最近は違うんか
0408デフォルトの名無しさん
2010/02/12(金) 09:49:410409デフォルトの名無しさん
2010/02/12(金) 09:55:24外国の人も使うならiconv「でなければならない」
MechanizeとかではNKFを組み込んでしまった日本人がいて、その部分がえんえん障害になってる
iso-8859-xはNKFのShiftJISに誤爆することがあるんだが、そのへんの処理を考慮してない
0410デフォルトの名無しさん
2010/02/12(金) 09:59:50メールの現実を知らなさ過ぎる
0411デフォルトの名無しさん
2010/02/12(金) 10:11:380412デフォルトの名無しさん
2010/02/12(金) 10:37:03ttp://jp.rubyist.net/magazine/?0025-Ruby19_m17n#l76
ttp://naruse.biz/pub/20080621%20RubyKaigi%20RubyM17N.txt
ttp://www.sw.it.aoyama.ac.jp/2008/pub/RubyKaigiM17N.html
これか
1.9のM17Nはiconvじゃなくてtranscodeみたいだ
また兄弟が増えちまった
よくわからなくなってきた
0413デフォルトの名無しさん
2010/02/12(金) 11:04:08と思ってたんだが出なかった
あれー、昔はIconvが例外出してなかったっけ、気のせいか
irb> "�@".encode(::Encoding::SHIFT_JIS)
Encoding::UndefinedConversionError: "\xE2\x91\xA0" from UTF-8 to Shift_JIS
irb> "�@".encode(::Encoding::CP932)
"?@"
0414デフォルトの名無しさん
2010/02/12(金) 11:08:15おとーちゃんビシッと言ってやりな
って言うは簡単だけど結構面倒だよね…
0415デフォルトの名無しさん
2010/02/12(金) 11:54:27rubyってiconvすら実装されてない糞言語だったのか
0416デフォルトの名無しさん
2010/02/12(金) 11:58:460417デフォルトの名無しさん
2010/02/12(金) 12:15:08Ruby でクイックソート書いてみた。
def qsort(ary)
return [] if ary.empty?
v = ary.shift
left, right = ary.partition{|e| e < v}
qsort(left) + [v] + qsort(right)
end
ary.dup とかした方がいいのだろうか。
ま、いいや。
0418デフォルトの名無しさん
2010/02/12(金) 12:27:58Iconv::IllegalSequence: "\302\273"
irb> Iconv.conv('cp932', 'utf-8', "\302\273")
Iconv::IllegalSequence: "\302\273"
» (» 、RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK (U+00BB)、終わりギュメ)
を含むUTF-8文字列をIconvでShift_JISっぽい文字列にしたいんですが…
0419デフォルトの名無しさん
2010/02/12(金) 12:43:39受け取ったArrayを中途半端に破壊してるのは……まあ確かにまずいかも
アルゴリズム的な補足をするなら、単純かつ美しい実装ならそれでもいいけど、
実用上はピボットの取り方を工夫しないといけない
0420デフォルトの名無しさん
2010/02/12(金) 12:44:32Encoding::UndefinedConversionError: "\xC2\xBB" from UTF-8 to Shift_JIS
そもそもだめぽい
0421デフォルトの名無しさん
2010/02/12(金) 12:58:36Iconvは環境依存な上にWindowsだとないから、Ruby M17N で使うことはできなかった
なお、libiconvのCP932周りのサポートが腐ってるのも致命的だとされた
> そのかわり、NKFではできなかったような文字エンコーディングの値の保持解釈ができる
> SHIFT_JISとCP932やEUC-JPとEUC-JP-MSを使い分けられる(可能性がある)のはiconvだけ
nkf もできるよ
> メールやHTMLが文字化けするのはヘッダのエンコーディングと実際のエンコーディングが違うからなんじゃないの?
そんな根本的に違う指定ってそんなにあったっけ?
0422デフォルトの名無しさん
2010/02/12(金) 13:00:01変換表に定義されてないんで、変換前に別の文字にgsubするのが正解
0423デフォルトの名無しさん
2010/02/12(金) 13:13:10422が書いているようにgsubするのもありだが
変換時の戻り値で分岐するというやり方もある
詳細は下記の "Encoding::Converter#primitive_convert" の項目参照
http://jp.rubyist.net/magazine/?0025-Ruby19_m17n#l76
0424デフォルトの名無しさん
2010/02/12(金) 13:26:50実際にメーラーを書いて運用してみたらいい
0425デフォルトの名無しさん
2010/02/12(金) 14:06:43エラー出して教えてくれたほうがマシかも
0426デフォルトの名無しさん
2010/02/12(金) 17:04:09単にCP50221って話じゃないの、それだとguessは悪手なんだが
0427デフォルトの名無しさん
2010/02/12(金) 18:29:23str1 = "AbbccCDasdaEF"
str1 =~ reg2
これで得られる$1と$2をループかなにかで
添字をつけて取得できないものでしょうか?
0428デフォルトの名無しさん
2010/02/12(金) 18:55:24Regexp.last_matchとか$~のこと?
0429427
2010/02/12(金) 19:21:56$~がMatchDataってオブジェクトになってるのか
ありがとう、解決しました。
0430デフォルトの名無しさん
2010/02/12(金) 19:39:54foo = reg2.match str1 とすれば、foo にその MatchData が入る
0431デフォルトの名無しさん
2010/02/12(金) 19:54:030432デフォルトの名無しさん
2010/02/12(金) 20:14:00nkfは関係ないがNKFは関係あるな
0433デフォルトの名無しさん
2010/02/12(金) 21:08:09Railsもやってみたいということで、1.8をインストールしたいです。
ですが、Synaptic(Ubuntuのパッケージマネージャ)に1.8のフルインストールパッケージがありませんでした。
なので公式サイトにあるソースコードからインストールしようと思うのですが、
うまく1.9と共存できるのでしょうか?
宜しくお願いします。
0434デフォルトの名無しさん
2010/02/12(金) 21:26:32ユーザーディレクトリにインストールしても動くぞ
0435デフォルトの名無しさん
2010/02/12(金) 21:32:171.9が/usr、1.8が/usr/local
にたまたまなのか入ったので問題なさそうです。
とりあえずrubyとirbコマンドは1.8で起動するようにしました。
0436デフォルトの名無しさん
2010/02/12(金) 21:35:410437デフォルトの名無しさん
2010/02/12(金) 21:42:431.8.7$ ./configure --prefix=$HOME --program-suffix=187 && make install
1.9.1$ ./configure --prefix=$HOME --program-suffix=19 && make install
とすると $HOME/bin/ruby187 $HOME/bin/ruby19 などが出来る。
最近はコマンド一発でruby環境を切り替えられる rvm という便利なツールもある。
(多少不安定だが)
0438デフォルトの名無しさん
2010/02/12(金) 22:14:07irb(main):001:0> address = Array.new
=> []
irb(main):006:0> p address
[{"name"=>"taro", "tel"=>"11111111111"}, {"name"=>"hanako", "tel"=>"22222222222"}, {"name"=>"hanako", "tel"=>"33333333333"}, {"name"=>"taro", "tel"=>"11111111111"}]
重複している {"name"=>"taro", "tel"=>"11111111111"} を削除したいです。
調べてみて uniq 使えば良いかなと思ったのですが、違うようです。
わかる方、アドバイス貰えると助かります。
0439デフォルトの名無しさん
2010/02/12(金) 22:21:440440デフォルトの名無しさん
2010/02/12(金) 22:31:06失礼しました。uniq で良かったようです。
0441デフォルトの名無しさん
2010/02/12(金) 23:15:200442デフォルトの名無しさん
2010/02/13(土) 00:11:16ruby rsenseでググるといろいろ情報が見つかるよ
0443デフォルトの名無しさん
2010/02/13(土) 00:27:21ありがとうございます.メッセで飛んできて「使ってみたらおもしろいかも」って言われて気になってました.
http://github.com/m2ym/rsense
これですね.でもどうやって使えばいいんですか?
0444デフォルトの名無しさん
2010/02/13(土) 00:47:08すぎないので、好みのエディタのマクロでそれを呼び出して候補を表示する部分は
自作する必要があると思う。
0445デフォルトの名無しさん
2010/02/13(土) 03:44:36ありがとうございます.Emacs使ってるんで色々みてみます.といってもなんかドキュメント少ないみたいですが;
0446デフォルトの名無しさん
2010/02/13(土) 09:23:42したら
ERROR: Error installing newgem:
rubigen requires thoughtbot-shoulda (>= 2.10.2, runtime)
とか出てきて
さらにthoughbot-shouldaを探しても見つからないんですが
newgemのインストールの仕方を教えてください
$ gem --version
1.3.5
$ ruby --version
ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-mswin32]
0447デフォルトの名無しさん
2010/02/13(土) 09:34:580448デフォルトの名無しさん
2010/02/13(土) 09:36:14ってどういう意味?
0449デフォルトの名無しさん
2010/02/13(土) 09:43:240450デフォルトの名無しさん
2010/02/13(土) 09:43:36puts((nil or "a")) おk
0451デフォルトの名無しさん
2010/02/13(土) 09:51:56a
普通にいけたけど?
0452デフォルトの名無しさん
2010/02/13(土) 09:55:070453デフォルトの名無しさん
2010/02/13(土) 09:57:32それ余計な文言だよな
査読者や編集者がやっぱり必要だと思う
「メソッドの引数にする場合にはorを伴う演算部分を括弧でくくって式にする必要があります」が正解
p(false or "yes!")
だと「p (false が偽だったら "yes!"」と解釈されて文法エラーになる
false or "yes!" がひとつの処理の塊だとわからせるために式として括弧で括り、
(false or "yes!")
なおかつ、これ全体を引数として指定してるんだということをわからせるために引数としての括弧を省略せずに使う
p()
にさっきのカッコつき式を適用して
p((false or "yes!"))
となる
なお、>>451のように引数括弧相当の存在が明確な場合はエラーにならない
この括弧は引数の括弧ではなく式を作る括弧だ
0454デフォルトの名無しさん
2010/02/13(土) 10:13:03もしかしてメソッド名と引数を括る括弧の間を空白で空けてはいけない?
(第一引数の式を括る括弧と解釈される?)
0455デフォルトの名無しさん
2010/02/13(土) 10:26:20が、分かれた場合は「引数のカッコを省略して引数の全体(または一部)をカッコで括った」と解釈される
おおむね同じ動作をするので、実際上はみんな深く考えてない
puts("ruby") #=> "ruby" をメソッドに渡す
puts ("ruby") #=> ("ruby") の結果をメソッドに渡す
0456デフォルトの名無しさん
2010/02/13(土) 10:36:24ロジカルシンキングではなくイマジネーションでってことですね
0457デフォルトの名無しさん
2010/02/13(土) 10:51:47引数括弧を省略するのがコンセンサスになってるのはpとかputsとかごく一部だぞ
それ以外の普通のメソッドはとりあえず括弧つけとく派が多数派だ
irbとかだと読み返すこともないから適当に省略しまくってるが
0458デフォルトの名無しさん
2010/02/13(土) 10:55:08意味不明なときは感覚なものととらえてしまうけど、
しばらくRuby使ってなれてきたらロジカルなものだと理解できるようになるよ、がんがれ
0459デフォルトの名無しさん
2010/02/13(土) 11:34:23なによ…まったく!
0460デフォルトの名無しさん
2010/02/13(土) 12:45:56どうしても試行錯誤で感覚的にならざるを得ない
0461デフォルトの名無しさん
2010/02/13(土) 13:33:34カッコで括ったら式になるってちゃんと書いてあるだろ
0462デフォルトの名無しさん
2010/02/13(土) 13:35:080463デフォルトの名無しさん
2010/02/13(土) 13:42:42p (2*10) #=> 20
p(2*10)*2
NoMethodError: undefined method `*' for nil:NilClass
p (2*10)*2 #=> 40
0464デフォルトの名無しさん
2010/02/13(土) 13:45:38これが書いてないだろ?
0465デフォルトの名無しさん
2010/02/13(土) 13:49:36O(nlogn)の近似アルゴリズムに変えるか、Inline C 使うか、
そもそも C で書け。
0466デフォルトの名無しさん
2010/02/13(土) 17:42:27,/ ノ ヽ ~\
/ ノ IPA ヽ ~\
/ ノ ヽ、 `ヽ
| ノ / ̄\ / ̄~ヽ ヽ i
| ノ | ノ
\ | <●> <●> ( )
\ | | | i /
| / ヽ レ
i (●_●) /
i、 ,-――-、 ・ /
i、 <(EEEEE)> ∵/ 多項式時間や指数関時間な計算が遅いのは当たり前だろ
i、 \ ./ /
\ ーー ,ノ
,,.....イ.ヽヽ、ー-―一ノ゙-、.
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
0467デフォルトの名無しさん
2010/02/13(土) 19:53:390468デフォルトの名無しさん
2010/02/13(土) 20:57:16を削除するには
sub /\s+/, ''
でいいですか?
0x00〜0x1fだけを削除するにはどうしたらよいですか?
0469デフォルトの名無しさん
2010/02/13(土) 21:18:32true
irb> p "ね\001こ\t大\025す\177き\n".gsub(/(?![[:space:]])[[:cntrl:]]/){''} == "ね こ\t大すき\n"
true
0470デフォルトの名無しさん
2010/02/13(土) 21:18:33/[\x00-\x1f]/
じゃダメなの?
0471デフォルトの名無しさん
2010/02/13(土) 21:21:500472デフォルトの名無しさん
2010/02/13(土) 21:29:55名前つきでわかりやすそうに見えて実はわかりにくいというなんとも
0473デフォルトの名無しさん
2010/02/13(土) 21:30:570474デフォルトの名無しさん
2010/02/13(土) 21:35:40いいんじゃまいか
0475デフォルトの名無しさん
2010/02/13(土) 21:42:39こういうの見るたび、DELは消さなくていいんだろうか、といつも思う
0476デフォルトの名無しさん
2010/02/13(土) 21:55:530477デフォルトの名無しさん
2010/02/13(土) 22:07:14Ruby を愛しています
ゆるしてください
0478デフォルトの名無しさん
2010/02/13(土) 22:25:510479デフォルトの名無しさん
2010/02/13(土) 22:46:250480デフォルトの名無しさん
2010/02/13(土) 22:54:290481デフォルトの名無しさん
2010/02/13(土) 23:05:47require "yaml"
p YAML.load('{"num":"123456789"}')
とかやるとエラーになってパースできません。何か良い方法があったら教えてください
p YAML.load('{"num": "123456789"}')
ならパースできるようですが、JavaScript的にはどっちでも通るはず・・・
0482デフォルトの名無しさん
2010/02/13(土) 23:39:39http://yaml.org/spec/1.1/index.html#id933010
Explicit Values
An explicit value is denoted by the “:” indicator, followed by separation spaces.
仕様かも?
0483デフォルトの名無しさん
2010/02/14(日) 00:41:07JSON.parse(json_str)
するのが簡単で確実。
0484デフォルトの名無しさん
2010/02/14(日) 08:04:15RubyInlineでインスタンス変数を参照する方法がわかりませんわよ
0485デフォルトの名無しさん
2010/02/14(日) 10:32:41YAMLのフロースタイルがJSONとして評価できたとしても、逆ではないってことかな。
0486デフォルトの名無しさん
2010/02/14(日) 10:34:53使ったことないけど、Cの世界にいるときは rb_obj_ivar_get じゃねーの?
0487デフォルトの名無しさん
2010/02/14(日) 10:38:14他のデータ記述法との関係
但し、厳密にはJSONはYAMLのサブセットではない[3]。具体的には配列とハッシュの区切りを
それぞれ, のようにカンマ+スペースの形にしたときにのみYAMLのサブセットとなる。したがっ
て、YAML.loadといったYAMLのルーチンを流用してJSONデータを読み込む場合は、あらかじ
め区切りの文字をYAMLと互換性を保つようにしておく必要がある。
0488デフォルトの名無しさん
2010/02/14(日) 12:42:360489デフォルトの名無しさん
2010/02/14(日) 13:02:110490デフォルトの名無しさん
2010/02/14(日) 13:11:560491デフォルトの名無しさん
2010/02/14(日) 13:20:420492デフォルトの名無しさん
2010/02/14(日) 13:25:56サブセットにしようと思って作ったんだけど手作業での網羅が漏れてたらしくて
0493デフォルトの名無しさん
2010/02/14(日) 13:42:370494デフォルトの名無しさん
2010/02/14(日) 14:12:080495デフォルトの名無しさん
2010/02/14(日) 14:20:09こんなので「怒ってる」とかありえんよな
素直にMLにだけ引き篭もってろと
0496デフォルトの名無しさん
2010/02/14(日) 15:41:12標準のは遅すぎて使い物になりません
0497デフォルトの名無しさん
2010/02/14(日) 15:49:590498デフォルトの名無しさん
2010/02/14(日) 16:25:540499デフォルトの名無しさん
2010/02/14(日) 16:43:08profile や profiler を見れば既存の作り方は書いてあるよ。
あとは処理速度を向上させる工夫をするなり、
自分で一から作るなりすればいいよ。
0500デフォルトの名無しさん
2010/02/14(日) 16:49:37自分で書いたからといって速くなるとは思えませんが如何でしょうか?
0501デフォルトの名無しさん
2010/02/14(日) 16:55:210502デフォルトの名無しさん
2010/02/14(日) 16:58:01そんなの自分次第やん
0503デフォルトの名無しさん
2010/02/14(日) 17:01:48終了までの最大量だけでもわかるといいんですが
0504デフォルトの名無しさん
2010/02/14(日) 17:09:23ほかは知らん。
0505デフォルトの名無しさん
2010/02/14(日) 17:10:15Rubyとしては提供されてない
OSから観測してもらうしかない
0506デフォルトの名無しさん
2010/02/14(日) 17:10:38Windows ならタスクマネージャ
0507デフォルトの名無しさん
2010/02/14(日) 17:12:040508デフォルトの名無しさん
2010/02/14(日) 17:13:53top コマンドみたいにやればいいんだけどさ。
libproc.so って /proc の出力を露骨に sscanf() してるから
あんまり汎用性ないよなーと思って。
0509デフォルトの名無しさん
2010/02/14(日) 17:14:450510デフォルトの名無しさん
2010/02/14(日) 17:21:46お前帰れって言われてんだよ
0511デフォルトの名無しさん
2010/02/14(日) 17:25:01ありがとうございます
Windowsで見たいのですがcygwinなら/proc/pid/statusは同様に使えそうな感じなんで
詳しく調べてみます
0512デフォルトの名無しさん
2010/02/14(日) 17:25:36自分次第とおっしゃいますと具体的にはどのような工夫がありますでしょうか?
0513デフォルトの名無しさん
2010/02/14(日) 17:33:210514デフォルトの名無しさん
2010/02/14(日) 17:43:59ruby-profはドキュメントでは1.9対応を謳っていましたがWindows用のものは
msvcrt-ruby18.dllが見つからないと表示され、1.8用のDLLを参照しようと
してしまい動きませんでした。
0515デフォルトの名無しさん
2010/02/14(日) 18:05:12ありませんごめんなさいという意味です。
素直にあきらめましょう。
0516デフォルトの名無しさん
2010/02/14(日) 18:21:320517デフォルトの名無しさん
2010/02/14(日) 18:32:480518デフォルトの名無しさん
2010/02/14(日) 18:53:460519デフォルトの名無しさん
2010/02/14(日) 18:59:130520デフォルトの名無しさん
2010/02/14(日) 19:02:580521デフォルトの名無しさん
2010/02/14(日) 19:16:290522デフォルトの名無しさん
2010/02/14(日) 19:38:210523デフォルトの名無しさん
2010/02/14(日) 20:48:230524デフォルトの名無しさん
2010/02/14(日) 21:59:360525デフォルトの名無しさん
2010/02/14(日) 22:04:510526デフォルトの名無しさん
2010/02/14(日) 22:07:05童貞は知らないだろうけど
0527デフォルトの名無しさん
2010/02/14(日) 22:24:22勘違いしちゃダメだぞ
0528デフォルトの名無しさん
2010/02/14(日) 22:25:07勘違いしてた
0529デフォルトの名無しさん
2010/02/14(日) 22:26:22そこはポリモーフィズムで…
0530デフォルトの名無しさん
2010/02/14(日) 22:27:51いろいろと参考になりましたが。
0531デフォルトの名無しさん
2010/02/14(日) 23:25:51女に植えてんだなかわいそうにおまえら
0532デフォルトの名無しさん
2010/02/14(日) 23:29:19外の世界が見えません。
0533デフォルトの名無しさん
2010/02/15(月) 00:06:07どうすれば使えるようになるの?
0534デフォルトの名無しさん
2010/02/15(月) 00:25:35そのgemのインストール自体は正常に終わっているとすると、
require 'rubygems'
require 'gemのライブラリ'
で使えるようになるはずだが。(つまり、毎回rubygemsをrequireする必要がある)
たとえば、ちょっとjsonの場合はこんな感じ。
$ sudo gem install json
$ irb
irb> require 'rubygems'
irb> require 'json'
irb> JSON.parse('{"num":"123456789"}')
=> {"num"=>"123456789"}
0535デフォルトの名無しさん
2010/02/15(月) 00:26:040536534
2010/02/15(月) 00:26:52× たとえば、ちょっとjsonの場合はこんな感じ。
○ たとえば、ちょっと前のレスのjsonの場合はこんな感じ。
0537デフォルトの名無しさん
2010/02/15(月) 00:28:560538デフォルトの名無しさん
2010/02/15(月) 00:57:220539デフォルトの名無しさん
2010/02/15(月) 01:12:58すばらしいマイエンバイロンメント ruby 1.8.2、 gems 0.9
いきなり詰んだorz
0540デフォルトの名無しさん
2010/02/15(月) 01:19:53あした gems 自体を update させてもう一度やってみょ
寝るべzzz
0541デフォルトの名無しさん
2010/02/15(月) 01:30:340542デフォルトの名無しさん
2010/02/15(月) 07:52:31なんのための--preか知らんが、Rails 3βとかは1.8.7以降でないと動かんぞ。
0543デフォルトの名無しさん
2010/02/15(月) 08:05:05今更これ使うくらいなら俺はPerlをやる
0544デフォルトの名無しさん
2010/02/15(月) 08:13:110545デフォルトの名無しさん
2010/02/15(月) 09:07:03で、Ruby 標準添付の syck は 1.0 なので
0546デフォルトの名無しさん
2010/02/15(月) 10:19:490547デフォルトの名無しさん
2010/02/15(月) 10:32:310548デフォルトの名無しさん
2010/02/15(月) 10:49:22バイト列とエンコーディングを投げるとバイト列の適切な区切り位置を記憶してくれるライブラリみたいな
0549デフォルトの名無しさん
2010/02/15(月) 10:59:07Aaron さんが互換ライブラリを開発中
>>548
Iconv じゃダメですか
0550デフォルトの名無しさん
2010/02/15(月) 11:04:17data = [1, 2, [3, 4, [5]], 6]
多次元配列のデータがあります。
このデータを、次のように1次元配列に格納しなおしたいです。
p data
=> [1, 2, 3, 4, 5, 6]
多次元配列のデータは、今回のサンプルでは3次元ですが、
実際のデータは何次元になるかわかりません。
そのため、再帰の必要性があると思い次のようなメソッドを考えました。
def split_ary(ary)
local_ary = Array.new
return local_ary if ary.empty?
ary.each do |a|
if Array == a.class
split_ary(a)
else
local_ary << a
end
end
end
良く考えれば当然なのですが1次元にできません。。。
p split_ary(data)
=> [1, 2, [3, 4, [5]], 6]
1次元にするには、どのように改善すれば良いでしょうか。
0551デフォルトの名無しさん
2010/02/15(月) 11:17:250552デフォルトの名無しさん
2010/02/15(月) 11:21:42おおお!! このようなメソッドが既にあるのですね。
ありがとうございます!
0553デフォルトの名無しさん
2010/02/15(月) 11:34:29def split_ary(ary, local_ary = [])
ary.each {|a|
if a.kind_of? Array
split_ary(a, local_ary)
else
local_ary << a
end
}
local_ary
end
0554デフォルトの名無しさん
2010/02/15(月) 11:47:28丁度、ライブラリ set.rb の flatten メソッドのソースを眺めている所でした。
・Array クラスか判定するのに、kind_of を使うこと
・local_ary を引数(の位置?)で、Array.new すること
勉強になりました。
初めは set.rb を見ても理解できなかったのですが、
私が書いたソースを改変して貰ったおかげで、理解できました。
ありがとうございました。
0555デフォルトの名無しさん
2010/02/15(月) 13:07:36ただの入れ子になった配列
多次元であるかのように振舞うことはない
0556デフォルトの名無しさん
2010/02/15(月) 15:28:12=> 58799
58800になってほしかったんですが、なぜこんな風になってしまうんでしょう?
0557デフォルトの名無しさん
2010/02/15(月) 15:31:430558デフォルトの名無しさん
2010/02/15(月) 15:32:04バイト列 unsafe_str から制御文字を取り除きたいんです
んで、世の中にはたとえば iso-2022-jp のような \e を必要としてるエンコーディングもあるので、
そういう場合、「必要な制御文字」だけは残したいんです
display_encoding = "ISO-2022-JP"
unsafe_str = Iconv.iconv(display_encoding, "UTF-8", 'ねこだいすき').join
unsafe_str #=> "\e$B$M\e(B\\000\e$B$3$@$$\e(B\\e\e$B$9$-\e(B" # \000と\eが入ってるのがやだ
safe_str = kill_dangerous_ctrl_chars_on(display_encoding, unsafe_str)
p safe_str #=> "\e$B$M$3$@$$$9$-\e(B"
ちなみに日本語以外にも対応したいですというか日本語だけでいいなら悩みません
0559デフォルトの名無しさん
2010/02/15(月) 15:49:335.6を10500回足したものが、本当は58800よりもほんの少しだけ小さいから
irb> (5.6 * 10500) - 58800
-7.27595761418343e-12
より正確には、2進数で表現される5.6が10進数で考える本来の5.6よりもほんの少しだけ小さいから
Float#to_iは「切り捨て」を行うので、「58800よりもほんの少しだけ小さい数」の小数部を切り捨てて、58799になる
これを簡易に防ぐには、>>557の言うように四捨五入のメソッドを整数化処理として擬似的に使う
誤差が0.5を超すことは一般的用途ではまずないから
irb> (5.6 * 10500).round
58800
もし本当に厳密に計算を行いたいのならbigdecimalライブラリを使う
irb> require 'bigdecimal'
irb> (BigDecimal.new("5.6")*BigDecimal.new("10500")).to_s
"0.588E5"
0560デフォルトの名無しさん
2010/02/15(月) 15:59:210561デフォルトの名無しさん
2010/02/15(月) 16:01:17「とにかく望んだ値を得る方法」だものな。
0562デフォルトの名無しさん
2010/02/15(月) 16:08:44情報のポインタだけぶん投げるというのは省労力的にはアリではある
どっちかっちゃFAQに近いし
0563デフォルトの名無しさん
2010/02/15(月) 18:36:310564デフォルトの名無しさん
2010/02/15(月) 18:58:210565デフォルトの名無しさん
2010/02/15(月) 18:58:490566デフォルトの名無しさん
2010/02/15(月) 19:01:120567デフォルトの名無しさん
2010/02/15(月) 19:02:15といってもubuntuやFedoraとかでもそう振る舞いは変わらないと思う
0568デフォルトの名無しさん
2010/02/15(月) 19:05:57Windows上で慎重にコンパイルされたRubyで動作させるスクリプトの倍以上の速度を誇る
0569デフォルトの名無しさん
2010/02/15(月) 19:06:130570デフォルトの名無しさん
2010/02/15(月) 19:12:46うちの会社は全PCdebian
0571デフォルトの名無しさん
2010/02/15(月) 19:13:21しかもDebianのシステムを中途半端にRedHat系列に再現するとかありえん
0572デフォルトの名無しさん
2010/02/15(月) 19:14:040573デフォルトの名無しさん
2010/02/15(月) 19:18:29mphは目指すところは悪くなかったんだよ
しかしいかんせん当時のRubyの完成度安定度が低すぎた
良くも悪くもkondaraだな
0574デフォルトの名無しさん
2010/02/16(火) 01:37:19処理しながら少しずつHTMLを出力するにはどうしたらいいの?
0575デフォルトの名無しさん
2010/02/16(火) 02:05:350576デフォルトの名無しさん
2010/02/16(火) 02:07:580577デフォルトの名無しさん
2010/02/16(火) 02:08:26なるほど。
標準出力でいいんですね。
0578デフォルトの名無しさん
2010/02/16(火) 03:40:26まじか
Ruby の未来は暗いな
0579デフォルトの名無しさん
2010/02/16(火) 04:13:51リストに吐き出して最後に結合
0580デフォルトの名無しさん
2010/02/16(火) 07:08:05データをグローバル変数に保存したいんですけど不可能ですか?
0581デフォルトの名無しさん
2010/02/16(火) 07:31:040582580
2010/02/16(火) 07:38:37file = File.open("test.txt", "wb")
Marshal.dump(@data, file)
file.close
end
これだとtest.txt内に@dataを保存しますよね?
これをグローバル変数に保存したいのですが
def save_bitmap
file = File.open($data, "wb")
Marshal.dump(@data, file)
file.close
end
これじゃだめですか?
0583デフォルトの名無しさん
2010/02/16(火) 08:04:57$data = Marshal.dump(@data) は違うの?というかこれなら
$data = @data でいいじゃん
0584580
2010/02/16(火) 08:36:03考えすぎていたようです
0585デフォルトの名無しさん
2010/02/16(火) 08:46:10トップレベルのローカル変数とメソッドの引数でデータの受け渡ししろ
0586デフォルトの名無しさん
2010/02/16(火) 08:55:450587デフォルトの名無しさん
2010/02/16(火) 09:16:12・ グローバル変数いらねえ
・ クラス変数使う必要ねえ
・ これインスタンス変数でなくてもいい
と感じるにはちょっと時間が要る
他人から言われてもえーって感じでピンとこない
0588デフォルトの名無しさん
2010/02/16(火) 11:36:08メモリ食いつぶした。
謝罪と賠償を(ry
0589デフォルトの名無しさん
2010/02/16(火) 14:39:42[1,2,3,4,5,1,1,1,1,1]
これの1を一つ削除して
[2,3,4,5,1,1,1,1,1]
にしたいんですが。delete(val)だと全部消しちゃいますよね。
0590デフォルトの名無しさん
2010/02/16(火) 14:48:27それなんかやたらよく聞かれるんだが、メソッド一発でやる方法は特にない
arr = ["a", "b", "c", "b", "a"]
arr.delete_at(arr.index("b"))
p arr
["a", "c", "b", "a"]
0591589
2010/02/16(火) 15:08:55$game_system.golem_learn_data.each_with_index{ |value, i|
if delete_id == value
$game_system.golem_learn_data.delete_at(i)
break
end
}
end
とりあえずこれでいけました。ありがとうございました。
0592デフォルトの名無しさん
2010/02/17(水) 13:47:36formatで整形した文字列を作りたいんだけど
hogeの引数はどんな形で渡したらいい?
def hoge(引数)
s = format(引数1, 引数2, 引数3・・・)
end
以下のようにしたらsは1つの配列として扱われてformatに
too few argumentsと言われてしまいました
def hoge(f, *s)
s = format(f, s)
end
hoge('%s %s', 'aaa', 'bbb')
0593デフォルトの名無しさん
2010/02/17(水) 13:50:150594デフォルトの名無しさん
2010/02/17(水) 14:53:030595デフォルトの名無しさん
2010/02/17(水) 15:23:250596デフォルトの名無しさん
2010/02/17(水) 15:37:21オブジェクト指向に触れてなんとなく理解した気になれた
0597デフォルトの名無しさん
2010/02/17(水) 15:47:09rails無かったら何の価値も無かった
0598デフォルトの名無しさん
2010/02/17(水) 16:48:370599デフォルトの名無しさん
2010/02/17(水) 17:00:24反論してみろよカス
0600デフォルトの名無しさん
2010/02/17(水) 17:34:430601デフォルトの名無しさん
2010/02/17(水) 17:36:48あれら程手軽に使えるスクレイピングライブラリは他の言語では知らない
0602デフォルトの名無しさん
2010/02/17(水) 17:46:350603デフォルトの名無しさん
2010/02/17(水) 19:30:010604デフォルトの名無しさん
2010/02/17(水) 19:31:33Javaを使わなくて済むようになった・・・まあRubyじゃなくてもいいんだけど。
>>602
なんでやねん。そんな理由がだれをどう嬉しくするのさ。
0605デフォルトの名無しさん
2010/02/17(水) 22:00:29難解な言語技術を修得しているという自負が
平易な言語に対する無体な態度につながるんだろうか
0606デフォルトの名無しさん
2010/02/17(水) 22:14:05Ruby厨でぐぐれ
0607デフォルトの名無しさん
2010/02/17(水) 22:35:350608デフォルトの名無しさん
2010/02/17(水) 22:37:40・ 生まれてこのかたJavaしか知らない自称中級者
を混ぜると危険というかひたすら面倒
0609デフォルトの名無しさん
2010/02/17(水) 22:39:160610デフォルトの名無しさん
2010/02/17(水) 22:40:08を追加
というか本スレでやれ
0611デフォルトの名無しさん
2010/02/17(水) 22:41:400612デフォルトの名無しさん
2010/02/17(水) 23:14:40. )
,―ヽ__(__、―
,/ ノ ヽ ~\
/ ノ IPA ヽ ~\
/ ノ ヽ、 `ヽ
| ノ / ̄\ / ̄~ヽ ヽ i
| ノ | ノ
\ | <●> <●> ( )
\ | | | i /
| / ヽ レ
i (●_●) /
i、 ,-――-、 ・ /
i、 <(EEEEE)> ∵/ IPA Rubyスレは誰でもウェルカム
i、 \ ./ /
\ ーー ,ノ
,,.....イ.ヽヽ、ー-―一ノ゙-、.
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||
0613デフォルトの名無しさん
2010/02/17(水) 23:18:26いつも思うんだけど
この人だれ??
0614デフォルトの名無しさん
2010/02/17(水) 23:21:180615デフォルトの名無しさん
2010/02/17(水) 23:33:15こいつにレスしたのお前だけだぞ
0616デフォルトの名無しさん
2010/02/17(水) 23:39:160617デフォルトの名無しさん
2010/02/18(木) 01:44:240618デフォルトの名無しさん
2010/02/18(木) 19:54:41この板にスレッドが無いのが気になりました。
ゲーム開発用であんまり需要無いんですか?
0619デフォルトの名無しさん
2010/02/18(木) 20:03:48【Ruby/SDL他】Rubyでゲーム制作・総合スレッド
ttp://pc11.2ch.net/test/read.cgi/gamedev/1207069887/
0620デフォルトの名無しさん
2010/02/18(木) 21:07:28手軽に短くかっこよくツールが書けること。
あと、Rails
0621デフォルトの名無しさん
2010/02/18(木) 21:11:38自分用のプログラムを書くときに、クラス定義のときに組み込みクラスを
オーバーライドするのが怖いので、トップレベルにMyAppみたいな名前の
モジュールを作ってから、その中にクラスを定義しているのですが、
これはRuby文化に反するのでしょうか?
また、Pythonのように、組み込みクラスはすべて、Builtin::String, Builtin::Arrayみたい
になってたらなあ、と思ったのですが、何故こうなっていないのでしょうか?
0622デフォルトの名無しさん
2010/02/18(木) 21:36:19まあ、それ自体が被る可能性もあるが
> 何故こうなっていないのでしょうか?
めんどくさいから
…まあ、オープンクラスっても限度あんだろ、とはみんなちょっと思ってはいる
ある意味初期の見通しミスをずるずる引きずってるわけで
0623デフォルトの名無しさん
2010/02/18(木) 21:57:05デメリットを勘案の上でオープンクラスを選択したのは間違いないわけだから
設計意図どおりだと思うけどなあ
オープンクラスの影響範囲を押さえ込む名前空間システムが
検討されてるらしいが、いつ実装になるやら
0624621
2010/02/18(木) 21:59:30むしろ推奨でしたか。安心しました。有り難うございます。
トップレベルにすべての組み込みクラスがあるのは面倒くさいから。。。
実にRuby的だなと思いました(笑)。いいですね。
もし初期の見通しをひきずっているのなら、Ruby2.0なんてのが出る時には
改善されるかもしれませんね。
0625デフォルトの名無しさん
2010/02/18(木) 22:05:470626621
2010/02/18(木) 22:08:53オープンクラスなのは、メリットがとても大きいと思うので気にならないのですが、
どうして、組み込みをすべてトップレベルにしてあるのかなと思ったのです。
自分用のクラスを定義するときには、組み込みクラスの名前はすべてすでに使われているわけで、
名前空間がクリーンじゃないなと。
> オープンクラスの影響範囲を押さえ込む名前空間システム
そんなのが実現したらすごそうですね。
0627デフォルトの名無しさん
2010/02/18(木) 22:22:540628デフォルトの名無しさん
2010/02/18(木) 22:30:06str = 'hoge'
みたいなことすると
あほなことになるが
0629デフォルトの名無しさん
2010/02/18(木) 22:45:07モジュール外に被害は出ないだろ。
0630デフォルトの名無しさん
2010/02/19(金) 01:20:07lambdaはreturnがクロージャから戻り、また引数チェックを行うprocというところまで理解しました。
ですが、このlambdaメソッドはどのように定義されているのでしょうか?
引数チェックはなんとなくメタプログラミングでできそうな気がするのですが、returnの挙動を変える
なんてことができるのでしょうか?
Cで実装されているのかもしれませんが、もしRubyで実装するとすればどのようになるのか教えてください。
0631デフォルトの名無しさん
2010/02/19(金) 01:23:39def Fixnum.bar
end
と書いたら
1.bar
で
NoMethodError: undefined method `bar' for 1:Fixnum
になります。どうすればいいんでしょうか?
0632デフォルトの名無しさん
2010/02/19(金) 01:31:221.class.bar
Rubyのクラスメソッドは、その定数で表されるclassオブジェクトのインスタンスメソッドという程度の意味しかない
0633デフォルトの名無しさん
2010/02/19(金) 01:31:511はFixnumクラスのインスタンスだし。
とりあえず、クラスメソッドと定義しているわけだから
Fixnum.barとすれば動く。
もし、1.barという風に実行したかったのなら
クラスメソッドではなく、インスタンスメソッドを定義したかったのだという事になる。
0634デフォルトの名無しさん
2010/02/19(金) 01:35:49>このlambdaメソッドはどのように定義されているのでしょうか?
Proc.new
本当に理解したければBindingオブジェクトの知識が要ると思う
0635デフォルトの名無しさん
2010/02/19(金) 01:40:350636デフォルトの名無しさん
2010/02/19(金) 01:51:27それなら
class Fixnum
def bar
puts "bar"
end
end
と書いて、1.barとすればいい
0637デフォルトの名無しさん
2010/02/19(金) 01:53:33キモいと自分で感じるまではこれは仕方ない
便利に使うといい
0638630
2010/02/19(金) 01:54:53Proc.new == Kernel#procですよね?(Ruby1.9)
Bindingオブジェクトは雰囲気だけは分かります。どうか教えてください。
returnの挙動をどうやってメタプログラミングしたのかが知りたいのです。
すみません。
0639デフォルトの名無しさん
2010/02/19(金) 02:10:55特異クラスの動作を見てみようと
a = 1
def a.foo
end
とすると
TypeError: can't define singleton method "foo" for Fixnum
となるのでどうすればいいのかなと
0640デフォルトの名無しさん
2010/02/19(金) 02:20:38俺もあまり詳しくないが、とりあえずFixnumとかSymbolとかは特異クラスが定義できない。
a = 1
b = 1
としたときにaとbのobject_idが同じ(aもbも同じオブジェクトを指す)になるのと関係あると思う。
String等その他大勢では
a = 'foo'
b = 'foo'
とするとaとbは違うオブジェクトを指すし、これらには特異クラスが定義できるはず。
0641デフォルトの名無しさん
2010/02/19(金) 02:21:31Fixnux/Symbol/Nil/True/Falseあたりは処理効率の都合で特殊な実装になってるから
その手の実験では避けた方がいい
0642デフォルトの名無しさん
2010/02/19(金) 02:23:12わああめんどくせえええ
一応ここはCで書いてあるはず
local_jump_error使ってるんじゃなかろうか
本スレ行き
0643638
2010/02/19(金) 02:28:13すみません。わああ眠れねええって感じでしたので(笑)。
うは、LocalJumpErrorですか。なんかニオイますね。
初心者なのに、変なところに首を突っ込んでしまったようです。
0644デフォルトの名無しさん
2010/02/19(金) 07:31:170645デフォルトの名無しさん
2010/02/19(金) 09:02:57rubyinstaller-1.8.7-p249-rc2.exe
これを落としたいのですが10Mに7時間とかかかるんですが
他に落とせる所は無いんですか?
0646デフォルトの名無しさん
2010/02/19(金) 09:50:542Dで手軽にって感じだと何のライブラリ使うのがいいかね?
0647デフォルトの名無しさん
2010/02/19(金) 10:24:06Miyako(SDL使用) 書籍あり
RPGツクール(古いか)
くらい?
0648デフォルトの名無しさん
2010/02/19(金) 10:27:01回線速度で割り算して妥当でないなら時間置いてやり直せ
10MBくらいのファイルなのはRubyならどこも同じ
0649645
2010/02/19(金) 10:33:33http://www.bspeedtest.jp/ v3.0.0
測定時刻 2010/02/18 10:27:07
回線種類/線路長/OS:光ファイバ/-/Windows XP/-
サービス/ISP:-/-
サーバ1[N] 23.7Mbps
サーバ2[S] 25.8Mbps
下り受信速度: 25Mbps(25.8Mbps,3.22MByte/s)
上り送信速度: 17Mbps(17.6Mbps,2.2MByte/s)
これで7時間とかおかしいと思うんですがなんででしょうか
firefoxとか関係ないですよね
昨日の12時ぐらいにやっても同じだったんでなんででしょう
0650デフォルトの名無しさん
2010/02/19(金) 10:37:40何か目的があるの?
例えばthreadでeachのようなものを定義してreturnしたいとか?
0651デフォルトの名無しさん
2010/02/19(金) 10:41:16こっちは転送率通常
回線経路の問題かも
現在のRubyInstallerはrubygemパッケージで未対応が存在するMinGW32版だけどその覚悟はある?
0652デフォルトの名無しさん
2010/02/19(金) 11:04:06ぐぐっても見つからないんだが、どこにあるの?
0653デフォルトの名無しさん
2010/02/19(金) 11:06:45こいつにレスしたのお前が2番目だぞ
0654645
2010/02/19(金) 11:17:08>現在のRubyInstallerはrubygemパッケージで未対応が存在するMinGW32版だけどその覚悟はある?
これの意味がよくわかりませんが初心者なのでテンプレ通り1.9.1やめて1.8.7落とそうと思ってます。
rubyinstaller-1.8.7-p249-rc2.exe ←これでいいんですよね?
star rubyってのをやりたいんですけどこれはrubyの拡張ライブラリ?っていう位置付けでいいんですか?
0655デフォルトの名無しさん
2010/02/19(金) 11:37:33「○○がRuby経由でもできるようっひょー」が目的であって、Rubyから○○を学ぶのには基本不適だろうに
>>654
http://arton.hp.infoseek.co.jp/indexj.html
こっちの入れれ
0656デフォルトの名無しさん
2010/02/19(金) 15:16:08p Dir.entries(Dir.pwd)
とやると
[".", "..","う\202\311", "しのり\202\361", "すず\202\310"]
こんなのが返ってくるのですが$KCODE以外に何をすれば日本語フォルダを扱えるのでしょうか?
WindowsXP SP3 Rumixで導入した1.8.7を使ってます
0657645
2010/02/19(金) 15:32:08hello_world表示できました
エディタがあるようですがRDEとかRDTがあるようですが
みたかんじRDEがとっつきやすそうにググったら見えたんですが
RDEでいいんでしょうか?
0658デフォルトの名無しさん
2010/02/19(金) 15:39:02早めに改定出して欲しいなあ
>>656
内部的には普通に扱えてる
p は内容そのものではなく、画面に表示しやすいように整形してから表示する
しかもバグがあって最後に日本語文字があると必ず化ける
putsで表示してみ
0659デフォルトの名無しさん
2010/02/19(金) 15:40:50どっちも別にエディタじゃない気がするが、どうしてもどっちかを使いたいのならRDEでいいよ
0660デフォルトの名無しさん
2010/02/19(金) 18:12:36バグですか
こっちはこっちで勘違いしたことやってたので全く気づきませんでしたw
ありがとうございます
0661デフォルトの名無しさん
2010/02/19(金) 21:30:25イメージとしては
SjisFileWriter.open(path, "utf-8") do |file|
file << utf8string
end
とすると、sjisに変換して書き込んでくれるようなものを期待してます。
closeするまでStringIOに溜め込んで一気に変換しようとしたのですが、
データが大きくてサーバーがパンクするのであきらめました。
もしかしてコツがあって、こういうのは簡単に書けるものなんでしょうか?
0662デフォルトの名無しさん
2010/02/19(金) 21:35:250663デフォルトの名無しさん
2010/02/19(金) 21:51:241.8の場合、文字の途中をどうするかといったことを考えずにやるなら
出力に使うメソッドをひととおりコード変換するようにオーバーライド
すればよいと思う。
writeだけのオーバーライドでいいのかな。
0664デフォルトの名無しさん
2010/02/19(金) 21:53:081.8 と 1.9 で対処が変わってくると思うので Ruby のバージョン教えれ
0665デフォルトの名無しさん
2010/02/19(金) 21:59:19Fileクラスの振りをしてそういうことをするには、どんな風なコードを書けばいいのでしょうか?
FasterCSVは内部で、
@io << row.map(&@quote).join(@col_sep) + @row_sep # quote and separate
こういうことをやっているので、コンストラクタで@ioに渡してあげると
書き込みのタイミングでエンコーディング変換してくれる
Fileオブジェクトがあればいいなと思っています。
0666デフォルトの名無しさん
2010/02/19(金) 22:00:39すみません、リロードしてませんでした。
Rubyのバージョンは1.8.7です。
0667デフォルトの名無しさん
2010/02/19(金) 22:03:480668デフォルトの名無しさん
2010/02/19(金) 22:04:38>>667は>>663についてです
0669デフォルトの名無しさん
2010/02/19(金) 22:09:390670661
2010/02/19(金) 22:10:20class SjisFileWriter < File
def <<(str)
str.kconv(Kconv::UTF8, Kconv::SJIS)
end
end
0671デフォルトの名無しさん
2010/02/19(金) 22:12:03>>669は>>668についてです
0672デフォルトの名無しさん
2010/02/19(金) 22:13:130673デフォルトの名無しさん
2010/02/19(金) 22:15:560674デフォルトの名無しさん
2010/02/19(金) 23:23:370675デフォルトの名無しさん
2010/02/20(土) 15:25:28a[i][j]
のようにアクセスできるようにしたいんですがどうすればいいでしょうか?
0676デフォルトの名無しさん
2010/02/20(土) 16:26:07無理
…いや、2次元くらいなら無理じゃないんだが、
その見栄えを保持するためだけに計算する遅いクラスになるぞ
NArray の a[i, j, k] みたいな記法じゃだめですか
0677デフォルトの名無しさん
2010/02/20(土) 17:59:39Rubistにもそういったものがあるのでしょうか?
0678デフォルトの名無しさん
2010/02/20(土) 18:05:300679デフォルトの名無しさん
2010/02/20(土) 18:09:12なにもない
というか
> Rubist
というようなものがない
Railsやってる人とは仲悪いし
0680デフォルトの名無しさん
2010/02/20(土) 18:30:080681デフォルトの名無しさん
2010/02/20(土) 20:07:31ありがとうございました。
配列の配列ですでに書いてある奴をクラスに直したいなと思ったもので。
0682デフォルトの名無しさん
2010/02/20(土) 21:51:45むしろレースウェイズと呼びたくなるファミスタ脳。
0683デフォルトの名無しさん
2010/02/20(土) 22:28:14ポッポ屋でいいだろw
0684682
2010/02/20(土) 22:37:43オリックスと近鉄が合併するって時にゲームファンの誰もが口にしたっけ。
0685デフォルトの名無しさん
2010/02/22(月) 02:19:19----------------------------------------
# test.rb
class Foo
def initialize(&func)
@func = lambda(&func)
end
def bar(x)
@func.call(x)
end
end
foo = Foo.new{ |x| return x**2 }
p foo.bar(2)
----------------------------------------
いごきました
$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10]
$ ruby test.rb
4
いごきませんでした
$ ruby1.9 -v
ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-darwin10]
$ ruby1.9 test.rb
test.rb:11:in `block in <main>': unexpected return (LocalJumpError)
from test.rb:6:in `call'
from test.rb:6:in `bar'
from test.rb:13:in `<main>'
どうして?
0686デフォルトの名無しさん
2010/02/22(月) 03:16:26難いww
とりあえず、lambdaとprocの違いはreturnの挙動の違いだよな。
そのreturnの挙動を決めるタイミングが1.8と1.9で違うんじゃね?
0687デフォルトの名無しさん
2010/02/22(月) 08:22:09ここらへんのか
0688デフォルトの名無しさん
2010/02/22(月) 10:53:49foo = Foo.new{ |x| return x**2 }
p foo.bar(2)
を実装するにはどうしたらいいんだべ?
foo = Foo.new(lambda{ |x| return x**2 }
p foo.bar(2)
なら作れたけどラムダラムダ五月蝿い感がある。
0689デフォルトの名無しさん
2010/02/22(月) 11:03:020690デフォルトの名無しさん
2010/02/22(月) 11:27:330691デフォルトの名無しさん
2010/02/22(月) 11:32:27def initialize
@func = lambda
end
def bar(x)
@func.call(x)
end
end
foo = Foo.new{ |x| return x**2 }
p foo.bar(2)
イケルがなぜか
-:3: warning: tried to create Proc object without a block
と出る
0692デフォルトの名無しさん
2010/02/22(月) 11:52:510693デフォルトの名無しさん
2010/02/22(月) 12:33:42class Foo
def initialize
@func = proc
end
def bar(x)
@func.call(x)
end
end
foo = Foo.new{ |x| x**2 }
p foo.bar(2)
だと警告がでないのはなんで?
0694デフォルトの名無しさん
2010/02/22(月) 12:36:280695デフォルトの名無しさん
2010/02/22(月) 12:38:29きちんとした解説ページとかないものか
0696デフォルトの名無しさん
2010/02/22(月) 15:12:28p lambda{return 0}.call #=> 0
p lambda(&lambda{return 0}).call #=> 0
p lambda(&proc{return 0}).call #=> 0
# ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mswin32]
p lambda{return 0}.call #=> 0
p lambda(&lambda{return 0}).call #=> 0
p lambda(&proc{return 0}).lambda? #=> false
p lambda(&proc{return 0}).call #=> unexpected return (LocalJumpError)
1.9だとKernel.#lambdaにprocを渡すとprocが帰ってくるんだな
仕様なのかBUGなのか
0697デフォルトの名無しさん
2010/02/22(月) 15:14:300698デフォルトの名無しさん
2010/02/22(月) 16:44:02Rails以外で仕事でRubyを使う場合、どんなものを
作っているの?
0699デフォルトの名無しさん
2010/02/22(月) 17:13:17仕事に使う中間物の生成プログラム
社内オンリーの更新頻度が高い内製プログラム
Rubyソースコードを商品にすることはほぼ確実にない
Rubyスクリプトが作り出したものを売ったり配ったりすることも少ないかと
なくても無論なんとかなるしプロダクト自体には全く影響しないが、能率ががくっと落ちる
もちろん本質的にはRubyでなくてもよい
PerlやPython、JavaやC++(えー)で超速く安定に作れるならむしろそっちのほうがよい
0700デフォルトの名無しさん
2010/02/22(月) 17:23:18なるほど、製品レベルとなるにはまだ先のことですかね。
自分にとって現時点ではRubyは業務とは無縁の存在だけど
勉強はしておこう。
0701デフォルトの名無しさん
2010/02/22(月) 17:25:26言語オフィシャルレベルでこれを標榜してる傲ま…いや野心的なところは見たことがない
配布ライブラリなんかで言ってるところは少なくないんだけど
ttp://www.google.com/search?num=50&hl=en&lr=&q=%22a+programmer%27s+best+Friend%22
0702デフォルトの名無しさん
2010/02/22(月) 17:30:15永遠にないんじゃないかなあ、と最近思ってる
そういう方向には進化してない気がするし、製品を作ろうとしないほうがうまくコード書ける気がする
Eclipseがなくても製品は作れるが、ないと死ぬ、そんな位置にRubyが入り込むんじゃないかと
0703デフォルトの名無しさん
2010/02/22(月) 21:33:03なんとか昔言ってたしな。
0704デフォルトの名無しさん
2010/02/22(月) 21:43:160705デフォルトの名無しさん
2010/02/22(月) 21:53:08どうしてくれる!Matzは責任とれ!
0706デフォルトの名無しさん
2010/02/22(月) 21:53:350707デフォルトの名無しさん
2010/02/22(月) 21:58:44間違いじゃないけどね
全員がRuby相当のものを修めてる会社は強いはずだ
0708デフォルトの名無しさん
2010/02/22(月) 22:00:550709デフォルトの名無しさん
2010/02/22(月) 22:03:430710デフォルトの名無しさん
2010/02/22(月) 22:13:200711デフォルトの名無しさん
2010/02/22(月) 22:16:470712デフォルトの名無しさん
2010/02/22(月) 22:43:44このスレに何を求めてるんだw
0713デフォルトの名無しさん
2010/02/22(月) 22:45:020714デフォルトの名無しさん
2010/02/23(火) 01:33:59おまえのエロの限界はおっぱいまでなのか?
しかも虚構のおっぱいクラス
0715デフォルトの名無しさん
2010/02/23(火) 02:22:29半年ほど前は普通にgem installできていたはずなのですが、つい最近gemを新たにupdate、installしようとすると以下のようなエラーが出るようになりました
$ sudo gem install hogehoge
ERROR: While executing gem ... (Errno::EEXIST)
File exists - /opt/local/bin/gem
環境はMac OS X(10.4.11)で、
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.5
- RUBY VERSION: 1.8.7 (2010-01-10 patchlevel 249) [i686-darwin8]
- INSTALLATION DIRECTORY: /opt/local/bin/gem/:
- RUBY EXECUTABLE: /opt/local/bin/ruby
- EXECUTABLE DIRECTORY: /opt/local/bin/gem/:/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-darwin-8
- GEM PATHS:
- /opt/local/bin/gem/:
- /Users/******/.gem/ruby/1.8
- /opt/local/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["http://gems.rubyforge.org/", "http://gems.github.com"]
- REMOTE SOURCES:
- http://gems.rubyforge.org/
- http://gems.github.com
です
0716デフォルトの名無しさん
2010/02/23(火) 02:28:350717デフォルトの名無しさん
2010/02/23(火) 02:37:300718デフォルトの名無しさん
2010/02/23(火) 02:53:53opt/local/bin以下をls -lしたところgemは
-rwxrwxr-x 2 root admin 548 Feb 15 15:18 gem
となっていますがrootではなくユーザー権限の方がいいのでしょうか
0719デフォルトの名無しさん
2010/02/23(火) 04:06:02なんとなく
- INSTALLATION DIRECTORY: /opt/local/bin/gem/:
の部分が
/opt/local/lib/ruby/gems/1.8
になるべきなんじゃないかという気がしてきたので今後はそちらから攻めてみようと思います
/opt/local/bin/gemは実行ファイルなのでDIRECTORYっておかしいですよね…
0720715
2010/02/23(火) 04:53:36GEM_HOME変えたら直りました
昔入れたrailsとかも全部こっちに入ってたのでいつの間にか変更されてたみたいです
ご協力ありがとうございました
0721デフォルトの名無しさん
2010/02/23(火) 15:00:190722デフォルトの名無しさん
2010/02/23(火) 22:20:300723デフォルトの名無しさん
2010/02/24(水) 09:25:140724デフォルトの名無しさん
2010/02/24(水) 23:08:140725デフォルトの名無しさん
2010/02/24(水) 23:16:290726デフォルトの名無しさん
2010/02/24(水) 23:43:480727デフォルトの名無しさん
2010/02/25(木) 00:11:36それよりは全メソッドに引数で渡す方がいいくらいで考えたほうがいいんだろうか
0728デフォルトの名無しさん
2010/02/25(木) 00:16:270729デフォルトの名無しさん
2010/02/25(木) 00:20:24構造体を使うとか。
0730デフォルトの名無しさん
2010/02/25(木) 00:23:400731デフォルトの名無しさん
2010/02/25(木) 00:25:210732デフォルトの名無しさん
2010/02/25(木) 00:29:43それともおっぱいの流れなのか?どっちにしてもわかりにくいぞ
0733デフォルトの名無しさん
2010/02/25(木) 00:31:070734デフォルトの名無しさん
2010/02/25(木) 00:41:160735デフォルトの名無しさん
2010/02/25(木) 01:01:460736デフォルトの名無しさん
2010/02/25(木) 01:06:36そうせずに深い階層のクラスまで引数で順に渡していったほうがいいのかどうか
0737デフォルトの名無しさん
2010/02/25(木) 01:14:040738デフォルトの名無しさん
2010/02/25(木) 01:28:23グローバル変数を自分で作るってのは言語拡張してるようなもんだ
0739デフォルトの名無しさん
2010/02/25(木) 01:33:12とかやったら、設定ファイルを読み込んでクラス変数に格納する。
で、Config.hoge1、Config.hoge2みたいな感じで各設定値を参照できれば十分じゃね?
グローバル変数とたいして違わないが、自分はこうしてる。
0740デフォルトの名無しさん
2010/02/25(木) 01:36:29読み込んだクラスの変数に格納するの?
全てのクラスで同じことやるの?
0741デフォルトの名無しさん
2010/02/25(木) 01:45:01ありがとうまずはモジュールでラップするところからやろう
>>739
なるほどインスタンスは作らないわけね
0742デフォルトの名無しさん
2010/02/25(木) 01:46:10Hoge::Config.param1 または Hoge の中で Config.param1 のように
クラスインスタンス変数を特異メソッドで参照する
のがフツーだと思う
0743デフォルトの名無しさん
2010/02/25(木) 01:58:38耳慣れないクラスインスタンス変数というのをググってみた
継承に関係しなければ普通のクラス変数でもOKってことかな
まあでもクラスインスタンス変数にしといてみることにします
0744デフォルトの名無しさん
2010/02/25(木) 07:22:33動作をカスタマイズする時(#sortとか#maxとか)はいいんだけど、
DRYしたいがために安易にlamda使いだすと、他におなじlambdaが有るかも無いかもとそわそわしてくる。
lambdaってシステム的に管理されるべき存在なのかな。
0745デフォルトの名無しさん
2010/02/25(木) 07:34:050746デフォルトの名無しさん
2010/02/25(木) 10:17:06クラスインスタンス変数=クラス変数?
0747デフォルトの名無しさん
2010/02/25(木) 11:12:350748デフォルトの名無しさん
2010/02/25(木) 19:26:06と思ったら、サイト見てもわかんなくて全然ダメだった。
なんとかインストールは出来たけどソースファイルのパス通らなくてプログラム実行出来なかった。
Rubyが流行らない理由ってRuby導入の解説サイトが充実してなくて初心者に分かりづらいからなんじゃないのかな
0749デフォルトの名無しさん
2010/02/25(木) 19:31:05使い始めてもしばらくして止めるパターンは多いと思う
0750デフォルトの名無しさん
2010/02/25(木) 19:32:020751デフォルトの名無しさん
2010/02/25(木) 19:36:16バージョンアップするRubyスクリプトを作ったらいい
0752デフォルトの名無しさん
2010/02/25(木) 19:37:09初心者スレッドで何言ってんだ
0753デフォルトの名無しさん
2010/02/25(木) 19:39:05アンインストールもパッケージマネージャからで充分だよ
ソースから make install でインストールすると面倒なのはソースだからそんなもんだ
アプリケーション側でそこまで管理してあげる理由はない
その本で「make install しろ」とだけ書いてあるなら、それは Ruby 無関係でその本が単純に悪い
まあ、make unsinstall ができてもいいと思うことはある
0754デフォルトの名無しさん
2010/02/25(木) 19:46:18初心者はどれをダウンロードするべきとか
そういうのまとまってないよね
0755デフォルトの名無しさん
2010/02/25(木) 19:46:42アップグレードガイドってそういえばないな
「gemも全部消して新しくインストールしろ」としか書くことがないが
0756デフォルトの名無しさん
2010/02/25(木) 19:49:19>>5
Ruby公式的には、もういろいろめんどくさいから「全員」1.9.1を使ってくれというスタンス
初心者も中級者もRailsの人もgemパッケージの人も全員が1.9.1を使えば本気で何も問題はない
0757デフォルトの名無しさん
2010/02/25(木) 19:52:32http://uproda11.2ch-library.com/2277495Xg/11227749.png
最初にp249ってやつインストールしたんだけど、Ruby console.exeが無かったから
アクティブRubyってやつインストールしたんだけどよくわからくなった。
0758デフォルトの名無しさん
2010/02/25(木) 19:58:12最初はレビューしてこき下ろしてたんだが、その価値もない
>>757
該当のものはスタートメニューにある
とりあえず、RubyInstallerのやつは消しておいて、ActiveScriptRubyにしておけ
0759デフォルトの名無しさん
2010/02/25(木) 20:04:09って節は書き直した方がいいんじゃないかしらね。
1.9.1に対応してないのも「多くの有名ライブラリやアプリ」じゃなくて
「一部の」と言ってもいいと思うし。
0760デフォルトの名無しさん
2010/02/25(木) 20:05:53ActiveRubyがActiveScriptRubyを指すだなんて普通は絶対に気づかない
>>757
ということで、「ActiveRuby」と書いてあるActiveScriptRubyを残して使うといい
Rubyが有効になるコマンドプロンプトはスタートメニューから「Ruby1.8」→「ruby console」
0761デフォルトの名無しさん
2010/02/25(木) 20:08:14なにかが1.9.1で動作しない場合どうすればいい
それを考えるなら、1.9.1はまだ時期尚早
初心者スレの完全初心者向け文言だということを30回くらい噛み締めてくれ
0762デフォルトの名無しさん
2010/02/25(木) 20:13:431.8.7を勧めることを変えるべきとは言ってないよ
事実に即した文言に変えるべきと言っただけ
0763デフォルトの名無しさん
2010/02/25(木) 20:14:33「じゃあ初心者にもぴったりですね」は「NO」
初心者以外の人がRuby1.9.1を使うことを否定はしないというかそろそろ使って欲しいんだが、
初心者の人にRuby1.9.1を勧めるのは面倒なのでやりたくない
1.8.7で慣れてからEncodingまわりの勉強だけ追加すれば充分
0764デフォルトの名無しさん
2010/02/25(木) 20:21:27初心者に1.8を勧める -> 1.9の人口が増えない -> ライブラリの開発者も対応を急がない -> 初心者に1.8...
というループからなかなか抜け出せないんじゃないか
0765デフォルトの名無しさん
2010/02/25(木) 20:21:52完全対応というのは1.9系列特有の症状が出ないってことだろ
そんなライブラリあんま見ないぞ
0766デフォルトの名無しさん
2010/02/25(木) 20:25:19作業してるディレクトリにruby console.exeをコピーして入れといたら、パスが自動でそこの
場所になって簡単に実行出来たんだけどなあ。
みんなプログラム実行する時は、作業ディレクトリのパスをわざわざ入力して実行してる?
0767デフォルトの名無しさん
2010/02/25(木) 20:25:24大丈夫
現在1.8でぐずぐずしてる非初心者層が1.9に移行するだけでエネルギーとしては充分
初心者が何使ってるかというのはこの趨勢に影響しない
0768デフォルトの名無しさん
2010/02/25(木) 20:38:34>>766
基本的には cd しろ cd
cd ディレクトリ
でカレントディレクトリが引数のディレクトリになる
カレントディレクトリという概念が何かわからないならぐぐれ
現在のディレクトリをキーボードから入力するのはしんどいので「cd 」と3文字入力したあと
フォルダをマウスでコンソール上にドロップしろ
そのフォルダのパスが文字列としてカーソル位置に入力されるので安楽
もし「Ruby console を置いたディレクトリをカレントにして起動して欲しい」というピーキーな運用したいのなら、
スタートアップとかにある Ruby console を右クリックして
プロパティの「作業フォルダ(S)」という欄に「%PWD%」と半角5文字で書いて適用押せ
これで「置いてあるディレクトリをカレントディレクトリとして起動するRuby consoleファイル」になるから、
これを好きなフォルダにコピーしてダブルクリックだ
たぶんその昔の Ruby console の動作になってるはず
0769デフォルトの名無しさん
2010/02/25(木) 20:41:12> プロパティの「作業フォルダ(S)」という欄に「%PWD%」と半角5文字で書いて適用押せ
は
> プロパティの「作業フォルダ(S)」という欄を空白にして適用押せ
のほうがわかりやすいし動作一緒だ
0770デフォルトの名無しさん
2010/02/25(木) 20:45:24ありがとう、昔買った本に入ってたやつと同じように使えるようになった。助かったよ
0771デフォルトの名無しさん
2010/02/25(木) 20:46:42…それでいいんだろうか、とふと思ってみる
>>769
ActiveScriptRubyを作った人の設定ミスぽいね
これRubyBinになってる理由ないわな
空っぽのほうが親切かも
0772デフォルトの名無しさん
2010/02/25(木) 21:49:56main do
#この中が毎フレーム実行される
end
とありますが
この記述はライブラリに依存するものではなく
rubyのアップデート処理は絶対にこの記述になるんでしょうか?
0773デフォルトの名無しさん
2010/02/25(木) 21:52:25使ってるゲーム作成ライブラリを明確にして
http://pc11.2ch.net/test/read.cgi/gamedev/1207069887/
こっち池
0774デフォルトの名無しさん
2010/02/25(木) 23:04:56ゲーム専用言語じゃないんだよ
あきらかにライブラリ依存だよ
0775デフォルトの名無しさん
2010/02/25(木) 23:20:06人とかプログラミング自体がわかってない人の言ってることは意味不明
過ぎる。
0776デフォルトの名無しさん
2010/02/25(木) 23:48:27バカでも使えるからと言ってバカが治る訳じゃない
0777デフォルトの名無しさん
2010/02/26(金) 00:08:59開発元が買収されたけど消滅するんでしょうか
0778デフォルトの名無しさん
2010/02/26(金) 00:28:28問題は1.9.1の次にどうするかってことだよ
アップグレードが楽ならいいんだよ
0779デフォルトの名無しさん
2010/02/26(金) 00:34:59みんな1.9.1は捨ててくれ
って触れ回るときが来る
0780デフォルトの名無しさん
2010/02/26(金) 00:59:50アップグレードが楽って何
あらゆるOSで使えるパッケージシステムをRubyで提供しろとかそういうの
0781デフォルトの名無しさん
2010/02/26(金) 01:06:130782デフォルトの名無しさん
2010/02/26(金) 01:24:070783デフォルトの名無しさん
2010/02/26(金) 08:34:490784デフォルトの名無しさん
2010/02/26(金) 09:23:22お得意のRubyでちゃちゃっと作っちゃえよ
そして公開してくれよ
0785デフォルトの名無しさん
2010/02/26(金) 09:28:170786デフォルトの名無しさん
2010/02/26(金) 09:38:06実行ファイルをコピー
コピーでアップデート実行
アップデート後の実行ファイルでコピー削除
って流れか?そんなことできるのか
0787デフォルトの名無しさん
2010/02/26(金) 10:22:530788デフォルトの名無しさん
2010/02/26(金) 10:31:57Rubyでやる意義は乏しいかも
となるとシェルスクリプトかCか
0789デフォルトの名無しさん
2010/02/26(金) 10:45:070790デフォルトの名無しさん
2010/02/26(金) 11:04:44一長一短でポリシーの違いに過ぎないな
0791デフォルトの名無しさん
2010/02/26(金) 11:10:28それすら扱えないようなユーザーにはRuby渡すな面倒だから
0792デフォルトの名無しさん
2010/02/26(金) 11:16:29プログラマは怠惰が美徳だから
0793デフォルトの名無しさん
2010/02/26(金) 11:32:070794デフォルトの名無しさん
2010/02/26(金) 14:56:20実行中の実行ファイルは削除出来ないと思う
てかWindowsでは基本、使用中のファイルに
それ以外のプログラムで更新かけないのが吉
0795デフォルトの名無しさん
2010/02/26(金) 15:02:12\ 丶 i. | / ./ /
\ ヽ i. .| / / /
\ ヽ i | / / /
\
-‐
ー
__ わ た し で す --
二 / ̄\ = 二
 ̄ | ^o^ |  ̄
-‐ \_/ ‐-
/
/ ヽ \
/ 丶 \
/ / / | i, 丶 \
/ / / | i, 丶 \
0796デフォルトの名無しさん
2010/02/26(金) 22:35:25公式を見ると最新が1.8.7のようですが。
0797デフォルトの名無しさん
2010/02/26(金) 22:42:560798デフォルトの名無しさん
2010/02/26(金) 22:51:19というかエンタープライズ用途ではそもそも1.9.1使わねえだろまだ
素直に1.8系列使うのが吉
0799デフォルトの名無しさん
2010/02/26(金) 22:53:36細かい挙動の違いだよ
0800デフォルトの名無しさん
2010/02/26(金) 23:00:05ゆとりはこれだから
それくらい公式見ろよ
きちんと書いて
…ないな
0801デフォルトの名無しさん
2010/02/26(金) 23:05:14せいぜい「最新2つあるけどどっち」程度
古いのと新しいのどう違うのかって、そりゃ新しいほうは古くないんだよ
0802デフォルトの名無しさん
2010/02/26(金) 23:13:41少なくとも、他のアプリケーションでバージョンナンバーの理屈を理解してるような人を相手にしてる
0803デフォルトの名無しさん
2010/02/26(金) 23:40:23Windows用のスクリーンセーバでも作ってみようかと思ったのですが
検索しても関連情報が全然出てこなくて、疑問を持ちました
Ruby/SDLでスクリーンセーバを作った事例はあるらしいのですが
わずか一例しか見つからず、解説記事に至っては一行たりとも見当たりません
もしかして、結構ハードルが高いことをしようとしているのでしょうか?
Rubyでスクリーンセーバを作るのは無謀・無理ですか?
Rubyを選ぶべきではない場面の一つ、なのでしょうか?>スクリーンセーバ作成
「いや、そんなことはないだろ」ということでしたら
あたってみるべき資料・キーワードの類を教えていただけましたら幸いです
0804デフォルトの名無しさん
2010/02/27(土) 00:09:420805デフォルトの名無しさん
2010/02/27(土) 00:26:47つまり、Ruby以外の言語で普通にGUIの○○ができることがそもそも最低条件として必要
何の知識もない人がRubyのGUI部品で何か作るとかありえん
素直にIDEのサポートと解説書がある他の言語使え
0806デフォルトの名無しさん
2010/02/27(土) 00:26:49スクリーンセーバを作成する場合、コマンドラインオプションで
/s → スクリーンセーバ起動
/c → 設定画面を表示
/p → プレビュー画面を表示
を実装したものを作成する、と書いてありました
ということは、上記の条件を満たしたRubyスクリプトを
exerb で exe に変換すればOK、という理解で合ってますか?
それとも、何か見落としている部分がありますでしょうか?
0807デフォルトの名無しさん
2010/02/27(土) 00:31:58Rubyとはまったく無関係にTkやらGTKやらWin32APIやらの知識がどうしても要る
Rubyが何かをしているわけじゃない
100行書かなければならないことを80行くらいにまとめてくれるだけ
80行のうち実際のGUIライブラリに指示をしてるのは60行くらいだと思うが、
そこに具体的に何を書くと動作するかまではRubyはまったく教えてくれない
Rubyとは無関係のGUIライブラリ(と、Windowsの場合はOSやレジストリ)の知識が要る
0808デフォルトの名無しさん
2010/02/27(土) 00:32:51あ、そうか
設定画面を作る際に、GUIにしないといけないのですね…
Rubyの場合、標準で使えるGUIライブラリ?が存在しないから
(Tkは、たしか別途Tcl/Tkのインストールが必要なんですよね…?)
GUIで設定画面を作るまでが、Rubyでは既にイバラの道になるのか…
(やってやれないことはないけど、他の言語使ったほうがサクッとできてしまうから
わざわざRubyを使って地獄を見る必要はない、ということですね…)
0809デフォルトの名無しさん
2010/02/27(土) 00:37:40餅は餅屋
これ最強
0810デフォルトの名無しさん
2010/02/27(土) 00:41:33そもそも論として、RubyのGUIライブラリと称されてるものは全てただのラッパーだ
しかもやたら薄くて、オリジナルの関数名とか動作とか知ってることが前提
それこそsystemで直接指示するのとたいして変わらんくらいの
0811デフォルトの名無しさん
2010/02/27(土) 00:43:08http://www.amazon.co.jp/dp/4274064611%3FSubscriptionId%3D1PE38HKS6CPYCN0NM382%26tag%3Dkazuhiko-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4274064611
0812デフォルトの名無しさん
2010/02/27(土) 00:46:200813デフォルトの名無しさん
2010/02/27(土) 00:55:56Rubyから始めるとか正気の沙汰ではない
0814デフォルトの名無しさん
2010/02/27(土) 00:57:020815デフォルトの名無しさん
2010/02/27(土) 01:08:430816デフォルトの名無しさん
2010/02/27(土) 01:14:330817デフォルトの名無しさん
2010/02/27(土) 01:25:03動くようにしたいなぁとか思うのですが、マルチプラットフォームを考えると何がいいんですかね?
qtrubyあたり?
gtkがwinやmacで動くようになるのが一番嬉しいんだけど、無理だよね。
0818デフォルトの名無しさん
2010/02/27(土) 01:50:53無駄な努力はしないほうが良い
0819デフォルトの名無しさん
2010/02/27(土) 01:51:43gtkはwinでもmacでも動きますが
0820デフォルトの名無しさん
2010/02/27(土) 02:01:22この場合の「動く」は別途インストールが必要ないという意味
0821デフォルトの名無しさん
2010/02/27(土) 02:02:28コピーって何?
0822デフォルトの名無しさん
2010/02/27(土) 02:03:12とりあえず、Linux上でgtkを使っている限りでは、十分実用的に使えていますよ。
>>819
言葉足らずでした。
Linuxだと、パッケージマネージャでインストールするだけで、rubyからgtkが使えるようになるのですが、
winやmacではそうはいかないかなと。
公式で配布されているwin用exeもバージョンが古いみたいだし。
>>820
フォロー有難うです。
0823デフォルトの名無しさん
2010/02/27(土) 05:03:43www
0824デフォルトの名無しさん
2010/02/27(土) 19:41:43複写とか複製って意味だよ
0825デフォルトの名無しさん
2010/02/27(土) 20:05:340826デフォルトの名無しさん
2010/02/27(土) 20:10:41専用ライブラリがあるという点でゲームのほうがまだまし
ただし用意された道をほんの少しでも外れたら地獄なので
結局は通常GUIアプリもいわゆる画面ゲームもどっちもどっち
0827デフォルトの名無しさん
2010/02/27(土) 20:12:160828デフォルトの名無しさん
2010/02/27(土) 20:17:01GUIってただのインターフェイスだけど
0829デフォルトの名無しさん
2010/02/27(土) 20:27:350830デフォルトの名無しさん
2010/02/27(土) 20:29:050831デフォルトの名無しさん
2010/02/27(土) 21:01:050832デフォルトの名無しさん
2010/02/27(土) 21:16:44マウス的なもの使わないでしょ
0833817
2010/02/27(土) 22:37:27gtkしかまだ使ったことないけど、gtkでは以下のような感じで作れます。
・GLADEでウィジェットをレイアウト(シグナルで呼び出すメソッド名も設定)
・gtkとかGtkBuilderのおまじないコードを書く
・シグナルに対応するメソッドを書く
自分は、GtkBuilder(というかGLADE?)がrubyからも使えると気付いてなくて回り道しちゃいました。
まあ、そんなアホでも使えています。
ただ、gtk自体には若干ややこしさがあるように感じたけど。
0834デフォルトの名無しさん
2010/02/28(日) 00:15:17たとえばこれがあるからrubyがつかわれているとか
いろいろググったりして調べたのですが
Pythonなどと決定的な違いがよくわかりませんので教えてください
0835デフォルトの名無しさん
2010/02/28(日) 00:31:32ぶっちゃけとくにない
PerではなくPythonでもないオブジェクト指向スクリプト言語だから
その程度
0836デフォルトの名無しさん
2010/02/28(日) 00:34:51Rubyの強みなんて全くなかった
強いて言えば日本語ドキュメントが充実していると言うことくらい
0837デフォルトの名無しさん
2010/02/28(日) 00:42:25Pythonよりは緩い
Schemeよりは読み書き簡単
とても日本的な選択
0838デフォルトの名無しさん
2010/02/28(日) 00:49:52余計わかんねーか
余計わかんねーな
0839デフォルトの名無しさん
2010/02/28(日) 00:51:09ただそれだけ?
たとえば現場なんかでパイソンとルビーどっちを採用するって話になったら
ルビーとパイソンがぶつかったらどうなるのかなと
たとえばDBならコストがかからないとか、速さ、IBMだからDB2、Oracleは高いけど信用はできるし一番人気だから
とかで説得できるけど
0840デフォルトの名無しさん
2010/02/28(日) 00:56:35要因の一つ。
あとWebで国産言語で検索かけてみたら面白いよ
0841デフォルトの名無しさん
2010/02/28(日) 00:59:25> rubyは日本人が作ったから好まれている
いやそういうのは特にない
強いて言うならメインのMLが日本語で読みやすいとこか
それ以外の日本語リソースは他の言語にかなり負けてるんで差し引きゼロで
0842デフォルトの名無しさん
2010/02/28(日) 01:04:51Javaは汎用性がある、みんなに使われているなど
C#はMSだからなど
あとはいろいろ政治的な事とかあるんだろうけど
Delphiは確かによくわからんわ
0843デフォルトの名無しさん
2010/02/28(日) 01:06:31Rubyを使おうと言った人をクビにしてPythonを使うか、両方ともクビにしてPHPで書かせる
0844デフォルトの名無しさん
2010/02/28(日) 01:16:43対象の環境(OS)にデフォルトでインストールされているものを選びたい。
そういう意味では、Linux だと python でいいかなと思う。
Solaris だと perl かなあ
0845デフォルトの名無しさん
2010/02/28(日) 06:16:350846デフォルトの名無しさん
2010/02/28(日) 07:39:401.8.6が4年前だから新しいように見えるだけ
0847デフォルトの名無しさん
2010/02/28(日) 09:29:33*BSD ならベースシステムとパッケージシステムで分離できるけど、
Linux のディストリビューションのパッケージは、全部がそれぞれ依存関係で
つながってるから、そういう分け方はできないだろ。
0848デフォルトの名無しさん
2010/02/28(日) 10:28:380849デフォルトの名無しさん
2010/02/28(日) 10:53:53安定、定番といった意味だし。
0850デフォルトの名無しさん
2010/02/28(日) 11:00:38「枯れたバージョン」と表現するのが正しい。
0851デフォルトの名無しさん
2010/02/28(日) 11:15:31バージョンごとに挙動違うしね。
0852デフォルトの名無しさん
2010/02/28(日) 11:21:030853デフォルトの名無しさん
2010/02/28(日) 11:25:310854デフォルトの名無しさん
2010/02/28(日) 11:29:41俺様C は枯れているって意味だよぼけ
0855デフォルトの名無しさん
2010/02/28(日) 11:31:160856デフォルトの名無しさん
2010/02/28(日) 11:32:510857デフォルトの名無しさん
2010/02/28(日) 11:38:08話題にはなってないよね。
最近話題になったものとしては Apple の Block と GCD とか。
インラインアセンブラとか、独自にあるとうれしい系の拡張はそれぞれの処理系ごとにある。
0858デフォルトの名無しさん
2010/02/28(日) 11:57:36まぁ大体最適化周りだったりするけど
0859デフォルトの名無しさん
2010/02/28(日) 13:37:13・sun認定のsjc-pをなんとか取得
・実務レベルでプログラムを組んだことはない
↑こんな人間におすすめの初心者のRubyの本ありますか?
「たのしいRuby」と「JavaプログラマのためのRuby入門 」
あたりを買おうかなって思ってますが。
0860デフォルトの名無しさん
2010/02/28(日) 13:39:060861デフォルトの名無しさん
2010/02/28(日) 13:42:510862デフォルトの名無しさん
2010/02/28(日) 13:45:18のってないやつだと、『独習Ruby』もまあ悪くはなかった(流し読みしただけ)
最近は大きめの本屋ならRuby本が並ぶようになってるから、
実際に手に取って比較してみるのが良い
0863デフォルトの名無しさん
2010/02/28(日) 13:54:27やっぱり「たのしいRuby」なのかな・・・
『独習Ruby』ものぞいてみるよ。どうも
0864デフォルトの名無しさん
2010/02/28(日) 13:59:03勧めたのは正しかったのか不安になってきた >独習
……ちょっと本屋行ってくる
0865デフォルトの名無しさん
2010/02/28(日) 14:02:10概念から簡単なアルゴリズムまで詳しく教えてくれる。
練習問題がとても面白い。良書ですね。
0866デフォルトの名無しさん
2010/02/28(日) 14:09:44正直俺なら勧めない
どの本も売り切れてて取り寄せに半年かかりますえっ明日本がないと俺死ぬのにとかそういう状況なら
0867デフォルトの名無しさん
2010/02/28(日) 16:29:23「奇跡のリンゴ」木村秋則著も見て来い。
0868デフォルトの名無しさん
2010/02/28(日) 16:37:13って放っておいたら、挫折したのか2週間ぐらいで会社辞めてしまった
0869デフォルトの名無しさん
2010/02/28(日) 16:38:58次のCであるC1xの話題はそれなりに飛び交ってるよ。
C1xではgetsがなくなるとか、strlcpyとかでなくstrcpy_sとかが採用されるとか。
0870デフォルトの名無しさん
2010/02/28(日) 16:49:39Ruby無関係に、新人教育怠って放置してたから駄目会社と思われて辞められたんだろ
0871デフォルトの名無しさん
2010/02/28(日) 16:51:44本当ならおまえ頭おかしいと思うよ
そんなことして楽しいのか?
0872デフォルトの名無しさん
2010/02/28(日) 16:59:15ライブラリの取捨選択か...
言語本体のほうってなんか話題あったっけ?
0873デフォルトの名無しさん
2010/02/28(日) 17:03:01要所々々本でも見ながらやっていかないと、覚える気になれないよなあ
目的もなく本だけみて1から10まで全部覚えていくとかは飽きてダメになってくる。
0874デフォルトの名無しさん
2010/02/28(日) 17:05:44いじめと正式認定されました。
0875デフォルトの名無しさん
2010/02/28(日) 17:13:14無職ヒッキーだから社会常識とかわからないけど、こういう人の下でならやれるかもなぁって思った。
0876デフォルトの名無しさん
2010/02/28(日) 17:15:35いやどこの業界も同じだけどさ。
0877デフォルトの名無しさん
2010/02/28(日) 17:17:57仕事してないから給料減らされても文句言えない
新人教育も業務のうちだと理解できなかった可哀想な人
0878デフォルトの名無しさん
2010/02/28(日) 17:21:39配列やループでも出来るようになってれば良い。というかプログラミングって記述の理解なんかより
求められた要件をプログラムに直す発想が出来ることがなにより大事なんだよなあ。
これは数学が出来ないといくら言語を理解してても駄目なんだよ。
0879デフォルトの名無しさん
2010/02/28(日) 17:22:08問題は、完全放置ってことw
時々、進み具合を確認したり、質問があればいつでも聞いていいよっていう
雰囲気を作るのが大切。
質問を受ける分、自分の仕事ができなくなるんだけど、残業してフォローすればいい。
まぁ大変だけど、先輩としての役目として仕方ない部分はあるし、たいがいの会社ではそうやってるんじゃね?
0880デフォルトの名無しさん
2010/02/28(日) 17:23:50数学バカがまた現れたな。
調子に乗るな。
0881デフォルトの名無しさん
2010/02/28(日) 17:29:03レスしたのお前だけだぞ
0882デフォルトの名無しさん
2010/02/28(日) 17:32:270883デフォルトの名無しさん
2010/02/28(日) 17:41:040884デフォルトの名無しさん
2010/02/28(日) 17:45:43何も知らずに未経験で入ってくるヤツが悪い。
0885868
2010/02/28(日) 18:01:46一応分からないことがあったら質問してくれとは言ったんだけどな
毎日仕事終わりには日報も書かせたけど問題無さそうだったからほとんど放置してた
若者の心を読むのは難しいね
0886デフォルトの名無しさん
2010/02/28(日) 18:06:360887デフォルトの名無しさん
2010/02/28(日) 18:08:27数学とプログラミングって良く関連があるように言われるけど
どうして?
数学できないとプログラミングできないの?
0888デフォルトの名無しさん
2010/02/28(日) 18:10:52黙ってソース読むことだ。
0889デフォルトの名無しさん
2010/02/28(日) 18:11:39ますますイミフ
0890デフォルトの名無しさん
2010/02/28(日) 18:14:49数学の知識が必要なプログラムなんか組まないだろ
0891デフォルトの名無しさん
2010/02/28(日) 18:16:520892デフォルトの名無しさん
2010/02/28(日) 18:17:210893デフォルトの名無しさん
2010/02/28(日) 18:17:30そりゃ数学自体を使うプログラム(シミュレーションや3Dなど)なら数学の知識はいるだろうけど
計算機科学を学ぶのに高度な数学って必要なのか?
0894デフォルトの名無しさん
2010/02/28(日) 18:18:59そりゃあの書き方だと叩かれるだろw
完全放置としか読めないし。
まぁ一応フォローを入れていたのなら、その子には合わなかったんだろうな。
向いてない仕事やるのも時間の無駄だし、良かったんじゃない。
お互いにw
0895デフォルトの名無しさん
2010/02/28(日) 18:21:39マジレスすると
アルゴリズムを当てはめる能力
が共通に使えるから
まぁでも、↑の能力が必要なのは別に数学に限った話じゃないし
物理シミュレーションとか信号処理とかしないのであれば
別にいらないよね
0896デフォルトの名無しさん
2010/02/28(日) 18:21:590897デフォルトの名無しさん
2010/02/28(日) 18:30:33複雑な問題をいくつかの単純な問題に分割する能力
かなー
0898デフォルトの名無しさん
2010/02/28(日) 18:35:30学習期間(会社が利益をあげられない時間)を縮めようとしてない
=ダメなんじゃないかココ、と思った、のかもしれない。
0899デフォルトの名無しさん
2010/02/28(日) 18:37:28そんな判断出来る香具師だったらもっとほかに(ry
0900デフォルトの名無しさん
2010/02/28(日) 18:38:530901デフォルトの名無しさん
2010/02/28(日) 18:42:15そんなたいそうな話か?
プログラム書くために必要なのは最低限の論理的思考力
論理的な思考力を鍛えるために必要なのが離散数学の練度
だから最低限の論理的な思考が出来る人はRubyで離散数学なんて必要ないし
離散数学の錬度が高くてもせいぜいきれいなコードが書ける程度の差だと思う
数学の勉強しないとプログラムが理解できないなら最初から向いてないし
0902デフォルトの名無しさん
2010/02/28(日) 18:45:440903デフォルトの名無しさん
2010/02/28(日) 18:46:11勉強してた。まあ趣味だったからね。
でもそういうやつだけでいいんだよこの業界。
教えてもらわないとダメな人間は他の業界行ってくれ。
0904デフォルトの名無しさん
2010/02/28(日) 19:08:080905デフォルトの名無しさん
2010/02/28(日) 19:17:01未経験のやつにプログラミングRubyを渡して
かつ放置というのがおかしいだろ
絶対にできるわけない
そうすること自体に快楽を感じてるとしか思えない
むかつくというより気持ち悪いレベル
0906デフォルトの名無しさん
2010/02/28(日) 19:29:390907デフォルトの名無しさん
2010/02/28(日) 19:32:23「できない」と思ったら上司に報告するのも能力のうちだ
それをやらずに退社したんだから、>>868が責められるいわれはない
>>905
何か嫌なことでもあったの?
0908デフォルトの名無しさん
2010/02/28(日) 19:36:010909デフォルトの名無しさん
2010/02/28(日) 19:39:05じゃあ、学校の勉強だけで旧帝大に入った俺から言わせれば塾も予備校も要らないな
0910デフォルトの名無しさん
2010/02/28(日) 19:40:58今なにやってるの?
0911デフォルトの名無しさん
2010/02/28(日) 19:48:30ニートwwwwwwwwwwwwwwwwwww
めっちゃ長期無職wwwwwwwwwwwwwww
大学の研究頑張ってもそれだけでは就職できないので注意
大学卒業してからの人生のほうが長い
学業8割程度にして潰しのきく大学生活を送ることを推奨
0912デフォルトの名無しさん
2010/02/28(日) 20:05:030913デフォルトの名無しさん
2010/02/28(日) 20:08:270914デフォルトの名無しさん
2010/02/28(日) 20:12:250915デフォルトの名無しさん
2010/02/28(日) 20:14:14老親2人のためのお金を大人3人で使い切るんだ!豪勢だね!
0916デフォルトの名無しさん
2010/02/28(日) 20:16:23endl = "\n"
$stdout << "Hello, world!" << endl
0917デフォルトの名無しさん
2010/02/28(日) 20:21:51endlで起こることを大雑把に2つ挙げよ
0918デフォルトの名無しさん
2010/02/28(日) 20:25:23多用すると遅いのも一緒
0919デフォルトの名無しさん
2010/02/28(日) 20:27:28http://www1.axfc.net/uploader/Sc/so/87518
0920デフォルトの名無しさん
2010/02/28(日) 20:48:440921デフォルトの名無しさん
2010/02/28(日) 21:08:58普通は経験者雇うし、それでも研修ぐらいヤルし。
開発環境も悪い零細会社なんだろうなw
0922デフォルトの名無しさん
2010/02/28(日) 21:48:40をもっとエレガントに書けないですかね……
[:fuga, :piyo].all?{|sym| hoge.send sym}
はなんかむしろキモいし……
0923デフォルトの名無しさん
2010/02/28(日) 21:55:39とくにない
どうしても気になるならメソッドにまとめると見栄えがいい
0924デフォルトの名無しさん
2010/02/28(日) 22:34:170925デフォルトの名無しさん
2010/02/28(日) 22:41:07力仕事の派遣だろな
0926デフォルトの名無しさん
2010/03/01(月) 08:03:290927デフォルトの名無しさん
2010/03/01(月) 10:02:160928デフォルトの名無しさん
2010/03/01(月) 12:23:050929デフォルトの名無しさん
2010/03/01(月) 21:31:50TwitterのStreamAPIを使ってcURLで書いてみたいのですが、以下リンク先のコードのように
はなったのですが、ずっと動かしてるとStackErrorとなってしまいます。
うまく動くように出来無いでしょうか?
概要:TwitterStreamAPIを使ってのhttpリンク抜き出し
環境
OS:Linux(Ubuntu9.10)
バージョン: Ruby 1.9.1
gemsのcURL利用でnet/httpは使わない方向でお願いしたいです。
コード:
http://gist.github.com/318228
0931デフォルトの名無しさん
2010/03/02(火) 23:04:560932デフォルトの名無しさん
2010/03/02(火) 23:16:580933デフォルトの名無しさん
2010/03/02(火) 23:19:14勉強のためならcurlなんて使わないほうがいいんだが
0934デフォルトの名無しさん
2010/03/03(水) 01:59:19自分で調べないと身に付かないよw
0935デフォルトの名無しさん
2010/03/03(水) 03:13:47Rubyのアレは相当ひどいから
0936デフォルトの名無しさん
2010/03/03(水) 03:57:54さっき、クラス名の命名規約で数字から始められないのに嵌った。orz
rubyってツンデレだから、parse errorとしか逝ってくれないし。orz
デレて、アルファベットで始めないと実行してあげないんだからねっ!ぐらいは貧と出して欲しいw
ちなみに嵌ったクラス名は2chで始まって(ry
javaといい、クラス名ってオブジェクト指向言語の鬼門だな。
0937デフォルトの名無しさん
2010/03/03(水) 05:05:17クラス名にかかわらず識別子は数字から始められないほうが一般的じゃね
0938デフォルトの名無しさん
2010/03/03(水) 08:49:410939デフォルトの名無しさん
2010/03/03(水) 10:01:50言わないのだとしたらそいつが悪い
スレとして特定の本を薦めてるのは著者の自演じゃないんだぞ
0940デフォルトの名無しさん
2010/03/03(水) 12:07:570941デフォルトの名無しさん
2010/03/03(水) 14:39:41むしろ数字から識別子を始められる言語が少ない印象があるんだが、他に使える言語あったけ・・・
0942デフォルトの名無しさん
2010/03/03(水) 16:14:14SEレベルの知識必須で講師を対象とした資格か・・
0943デフォルトの名無しさん
2010/03/03(水) 16:19:04というか「C言語プログラミング能力認定試験」なんだからいわゆるコーダー能力があるかどうかだけだろ
しかも2級までは筆記だけだし
0944デフォルトの名無しさん
2010/03/03(水) 16:28:41俺も受けてみようかな。
InfoQ: PythonプログラマがRuby技術者認定試験を受けてみた
http://www.infoq.com/jp/articles/rubyexam
0945デフォルトの名無しさん
2010/03/03(水) 16:30:43学び方によっては全く歯が立たない
0946デフォルトの名無しさん
2010/03/03(水) 18:18:16「分数の出来ない大学生」のレベルですねわかります
0947デフォルトの名無しさん
2010/03/03(水) 18:24:490948デフォルトの名無しさん
2010/03/03(水) 18:27:44頑張れお前らw
0949デフォルトの名無しさん
2010/03/03(水) 19:31:300950デフォルトの名無しさん
2010/03/03(水) 20:48:38アプリサーバ構築とかそんなに多くないと思うんだけど
0951デフォルトの名無しさん
2010/03/03(水) 20:49:38>>698-
0952デフォルトの名無しさん
2010/03/03(水) 20:59:380953デフォルトの名無しさん
2010/03/03(水) 21:39:57具体的にrubyはこれが得意、これが不得意ってあるのでしょうか?
0954デフォルトの名無しさん
2010/03/03(水) 21:41:47>>834-
0955デフォルトの名無しさん
2010/03/03(水) 21:49:440956デフォルトの名無しさん
2010/03/03(水) 22:11:13rubyじゃ無理?
0957デフォルトの名無しさん
2010/03/03(水) 22:19:29どっかのサーバから取得したHTMLに、ブラウザ的に文字を「入力」して、そのデータを送信する?
それとも、自分がCGIなどで吐き出すフォームに、ユーザーからの入力を保持したまま再度返す?
0958デフォルトの名無しさん
2010/03/03(水) 23:23:200959デフォルトの名無しさん
2010/03/03(水) 23:30:07Windowsメインで使うならPython、そうでないならRubyでいいんじゃないかな、ここRubyスレだし。
あとはMacならRubyとか。
俺自身はRubyをWindowsでも使ってるけど、Rails回りは本当いろいろアレなので諦めたw coLinux入れてそっち動かしてる
0960デフォルトの名無しさん
2010/03/03(水) 23:45:260961デフォルトの名無しさん
2010/03/04(木) 00:12:29それとも力不足?
0962デフォルトの名無しさん
2010/03/04(木) 00:19:07Windows専門といえる人がそれほど多くない
言語開発者が複数のOSの知識をふんだんに持ってることは稀(たいてい1個)
移植の面からがっちりサポートするという人がたいていまわりにいるもんなんだが、
Rubyは歴史的にその辺が薄いのだ
Windowsプログラミングはなんかもうばっちりで移植の経験も豊富、という人がいればぜひ
0963デフォルトの名無しさん
2010/03/04(木) 00:53:490964デフォルトの名無しさん
2010/03/04(木) 00:58:460965デフォルトの名無しさん
2010/03/04(木) 01:05:090966デフォルトの名無しさん
2010/03/04(木) 01:06:52つまり実際問題として多勢に影響はない
0967デフォルトの名無しさん
2010/03/04(木) 01:09:310968デフォルトの名無しさん
2010/03/04(木) 01:18:320969デフォルトの名無しさん
2010/03/04(木) 01:22:53つ File.binread
という話ではないんだろうな。
0970デフォルトの名無しさん
2010/03/04(木) 01:22:56けっこう混じってる
0971デフォルトの名無しさん
2010/03/04(木) 08:18:59Windows嫌い
ガキですかw
0972デフォルトの名無しさん
2010/03/04(木) 08:27:42何でガキになるんだよ
Railsのせいで意図せず広まってしまった言語だから
他のメジャーな言語のようにコアな技術者が集まってるわけでもない
0973デフォルトの名無しさん
2010/03/04(木) 08:46:170974デフォルトの名無しさん
2010/03/04(木) 09:26:23今後Rubyのバージョンアップについていかないようだったら、
別の物を考えようと思っているので、ご回答お願いします。
0975デフォルトの名無しさん
2010/03/04(木) 10:29:300976デフォルトの名無しさん
2010/03/04(木) 10:30:24pyのほうが世界的にはユーザ多いしな。
railsのpy版でもあればいいだけだろうし。
マカは相手にするだけ無駄だと思う。objcとかruby以上にマイナーな言語を至極として喜んで使ってる連中だし。メモリリークかクラッシュ上等みたいだし。
0977デフォルトの名無しさん
2010/03/04(木) 10:36:13今後Rubyのバージョンアップについていかないようだったら、
別の物を考えようと思っているので、ご回答お願いします。
0978デフォルトの名無しさん
2010/03/04(木) 10:37:09django とかほとんどそうだよ
0979デフォルトの名無しさん
2010/03/04(木) 10:47:330980デフォルトの名無しさん
2010/03/04(木) 10:56:00>>977
そういうことする前に1.9.1のlibディレクトリ見ておけ恥ずかしいから
現在のcgi.rbは実質3行だ
require 'cgi/core'
require 'cgi/cookie'
require 'cgi/util'
0981デフォルトの名無しさん
2010/03/04(木) 11:06:320982デフォルトの名無しさん
2010/03/04(木) 11:14:48Ruby 初心者スレッド Part 35
http://pc12.2ch.net/test/read.cgi/tech/1267668057/
0983デフォルトの名無しさん
2010/03/04(木) 11:32:130984デフォルトの名無しさん
2010/03/04(木) 12:10:17これは激しく同意せざるを得ない
0985デフォルトの名無しさん
2010/03/04(木) 13:03:23プログラム作るの自体を間違えて例外が起きてしまっている場合、
テストではなくスクリプト本体の何行目で例外が起きたかを表示させる方法はありませんか
$ spec -fs -b -c spec/hoge_spec.rb
1)
ArgumentError in 'Hoge#hoge'
wrong number of arguments (1 for 0)
./spec/hogehoge/hoge_spec.rb:4:in `hoge'
./spec/hogehoge/hoge_spec.rb:4:
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/example/example_methods.rb:40:in `instance_eval'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/example/example_methods.rb:40:in `execute'
/usr/local/lib/ruby/1.8/timeout.rb:53:in `timeout'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/example/example_methods.rb:37:in `execute'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/example/example_group_methods.rb:214:in `run_examples'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/example/example_group_methods.rb:212:in `each'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/example/example_group_methods.rb:212:in `run_examples'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/example/example_group_methods.rb:103:in `run'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/runner/example_group_runner.rb:23:in `run'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/runner/example_group_runner.rb:22:in `each'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/runner/example_group_runner.rb:22:in `run'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/runner/options.rb:152:in `run_examples'
.gem/ruby/1.8/gems/rspec-1.3.0/lib/spec/runner/command_line.rb:9:in `run'
.gem/ruby/1.8/gems/rspec-1.3.0/bin/spec:5:
/usr/bin/spec:19:in `load'
/usr/bin/spec:19:
spec_hoge.rb での行数ではなく、hoge.rb の何行目で例外が起きたかを知りたいんです
0986デフォルトの名無しさん
2010/03/04(木) 13:10:52>>985
wrong number of arguments (1 for 0)
と
./spec/hogehoge/hoge_spec.rb:4:in `hoge'
の間にスクリプト本体でのエラー記述が何もないということは、エラー出してるのはspecファイルだ
rspecとして記述ミスがあるから探せ
ArgumentErrorだからきっとshouldが抜けてる個所がある
0987デフォルトの名無しさん
2010/03/04(木) 16:01:44end
module AAA::BBB
end
とした場合、
BBBはAAA内のモジュールかクラスのどちらになるんですか?
0988デフォルトの名無しさん
2010/03/04(木) 16:17:50module って自分で書いてるんだからモジュール
「途中」がナニかというのには影響しない
irb> module AAA; end
irb> p AAA.class
Module
irb> module AAA::BBB; end
irb> p AAA::BBB.class
Module
irb> class AAA::CCC; end
irb> p AAA::CCC.class
Class
0989デフォルトの名無しさん
2010/03/04(木) 16:27:49module String::EmojiUtilities
end
とか
class String
module EmojiUtilities
end
end
とか書けるわけだ。
0990デフォルトの名無しさん
2010/03/04(木) 16:28:17パイソンなんかと比べてもやはりそうですか?
0991デフォルトの名無しさん
2010/03/04(木) 16:30:040992デフォルトの名無しさん
2010/03/04(木) 16:37:07パイソンをやってみてどうでしたか?
0993デフォルトの名無しさん
2010/03/04(木) 16:42:14名前空間の仕組みがRubyとくらべてすっきりしているし
help()も使いやすくプログラミングしていてとてもたのしかったです
関数をファーストクラスとして扱いやすいのもいいですね
0994デフォルトの名無しさん
2010/03/04(木) 16:57:01Rubyリファレンスマニュアル(ttp://www.ruby-lang.org/ja/man/)と
るりまって何が違うですか?
どれが一番正確(頼りになる/一次ソースになる)ですか?教えて、えらい人!!
0995987
2010/03/04(木) 17:42:23module AAA::BBB
↑このmoduleは、AAA内のモジュールBBBという意味なんですね
.classでオブジェクトの種類が参照できるのも勉強になりました
ところで、
class AAA
end
class BBB < AAA
end
のようなクラスの継承とは違うのですか?
0996デフォルトの名無しさん
2010/03/04(木) 17:47:25module AAA
module BBB
end
end
0997デフォルトの名無しさん
2010/03/04(木) 17:52:480998デフォルトの名無しさん
2010/03/04(木) 18:00:42一番正確なのはソースにかかれている実装。(バグも完全に記述されている by matz)
riで出てくるのはソース内にrdocで書かれたドキュメンテーションコメント。
RubyリファレンスマニュアルはもともとWikiだったので誰でも書き換えることが出来た。
るりまはボランティアのプロジェクトで実装を調べながらゆっくり作成中。
まー、実用上は、るりまでいいけど、まだ完全ではないので、必要に応じてriやソースかな。
0999デフォルトの名無しさん
2010/03/04(木) 18:10:30ありがとうございます。
エディタから引きやすいのでriをメインに使うことにします。
1000デフォルトの名無しさん
2010/03/04(木) 18:26:22たのしいにちようび
┼ヽ -|r‐、. レ |
d⌒) ./| _ノ __ノ
_______
企画・製作 NHK
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。