Ruby 初心者スレッド Part 48
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2012/02/08(水) 06:00:47.06質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
前スレ
Ruby 初心者スレッド Part 47
http://toro.2ch.net/test/read.cgi/tech/1322819329/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
0652デフォルトの名無しさん
2012/03/26(月) 23:50:48.30つか、>>641は諦めたんか
0653デフォルトの名無しさん
2012/03/27(火) 01:33:19.500654デフォルトの名無しさん
2012/03/27(火) 01:55:45.810655デフォルトの名無しさん
2012/03/27(火) 02:49:28.410656デフォルトの名無しさん
2012/03/27(火) 02:57:03.440657デフォルトの名無しさん
2012/03/27(火) 03:03:18.870658デフォルトの名無しさん
2012/03/27(火) 03:18:57.470659デフォルトの名無しさん
2012/03/27(火) 03:53:50.010660デフォルトの名無しさん
2012/03/27(火) 03:57:26.460661デフォルトの名無しさん
2012/03/27(火) 04:07:15.93ERBで
0662デフォルトの名無しさん
2012/03/27(火) 06:46:55.63PHPのようになにもかもがHTML出力に際して親切に動作するわけではないので注意
0663デフォルトの名無しさん
2012/03/27(火) 11:50:14.220664デフォルトの名無しさん
2012/03/27(火) 17:04:06.41NokogiriっていうライブラリがCSS3のセレクタのパース機能を提供してる。
XMLとかHTMLからデータを抜き出すライブラリなんだけど
CSSのセレクタを使って要素を指定することができる。
require 'nokogiri'
require 'pp'
pp Nokogiri::CSS::parse('body:first-child form#search > input[type="text"][value=""]')
0665デフォルトの名無しさん
2012/03/27(火) 22:38:23.15これでZenCodingを作ってみます
0666デフォルトの名無しさん
2012/03/28(水) 01:42:52.480667デフォルトの名無しさん
2012/03/28(水) 01:47:33.410668デフォルトの名無しさん
2012/03/28(水) 02:57:21.060669デフォルトの名無しさん
2012/03/28(水) 06:38:18.300670デフォルトの名無しさん
2012/03/28(水) 07:34:47.85これ?
ttp://coderepos.org/share/wiki/JSRuby
0671デフォルトの名無しさん
2012/03/28(水) 11:31:06.35ttp://2ch.at/s/20mai00527004.jpg
ttp://2ch.at/s/20mai00527005.jpg
ttp://2ch.at/s/20mai00527006.jpg
ttp://2ch.at/s/20mai00527007.jpg
ttp://2ch.at/s/20mai00527008.jpg
ttp://2ch.at/s/20mai00527009.jpg
0672デフォルトの名無しさん
2012/03/28(水) 12:29:00.39またガラパゴスが世界標準になってしまったか。
0673デフォルトの名無しさん
2012/03/28(水) 12:34:49.180674デフォルトの名無しさん
2012/03/28(水) 12:42:25.81そうでないなら遠回りなんでどっかで解説なり訓練なり受けてからにするんが吉
0675デフォルトの名無しさん
2012/03/28(水) 22:13:17.95pry とか。
0676デフォルトの名無しさん
2012/03/28(水) 22:17:08.66それirbの進化
0677デフォルトの名無しさん
2012/03/28(水) 22:21:50.47やべえ。素で間違えた。w
まあ、pryは良く出来てるのでオススメだよ!
0678デフォルトの名無しさん
2012/03/28(水) 23:10:11.830679営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 02:41:19.11なにこれ?誰か説明して。
0680営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 05:27:24.850681営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 14:41:23.30ttp://2ch.at/s/20mai00527004.jpg
ttp://2ch.at/s/20mai00527005.jpg
ttp://2ch.at/s/20mai00527006.jpg
ttp://2ch.at/s/20mai00527007.jpg
ttp://2ch.at/s/20mai00527008.jpg
ttp://2ch.at/s/20mai00527009.jpg
0682営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 18:19:10.53http://labs.cybozu.co.jp/blog/nakatani/2008/01/javascript_ruby_jsruby_01.html ( Japanese )
http://labs.cybozu.co.jp/blog/nakatani/2007/11/jsirb_javascript_ruby.html ( Japanese )
http://labs.cybozu.co.jp/blog/nakatani/2007/12/jjsruby_jsruby_for_rhino.html ( Japanese )
0683営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 18:34:53.890684営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 20:57:39.99使用バージョン:1.9.3p125
読み取り専用のインスタンス変数を作りたい場合、どのようにすれば良いのでしょうか。
以下のコードを試してみましたが、うまくいきません。
class Test
attr_reader :read_only
def initialize
@read_only = []
end
end
test = Test.new()
test.read_only << "hoge"
puts test.read_only.to_s
→["hoge"]
0685営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 21:24:43.84それにぶら下がってるオブジェクトは変更可能なまま。
a = ['hello'].freeze
a << 'world' #=> RuntimeError: can't modify frozen Array
a[0].upcase!
a #=> ['HELLO']
0686営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 21:31:04.30Rubyはそのへんを本質的に禁止できない
「変更するな氏ね」とマニュアルに赤マジックででっかく書いとけ
それで充分
勝手に変更した人が悪いんだから、素直に不整合エラー出して終了したり微妙にそのまま走り続けたりして構わない
0687営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 21:55:24.110688営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 22:00:47.60なるほど、rubyではその辺は融通きかせるのですね。頭を切り返えてみます。
ありがとうございました。
0689営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 22:56:57.750690営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 02:10:38.06ぐぐったら何か問題あることはわかったんだけども
具体的に何をどうしたらいいのかわからないから
お母さんが説明するみたいに優しく教えて
0691営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 02:45:00.68RoRはスレ違いよ、たかし。テンプレ見なさい。
0692営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 07:39:08.820693営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 07:49:29.94多くはそうだと思うけど、んなこたない
0694営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 11:02:22.84gsubやsubしか見当たらないけど何かいい方法ないですか?
0695営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 12:03:07.01str = "abcde"
str["bc"] = "fff"
p str #=> "afffde"
0696営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 12:15:14.76sub, gsubに文字列渡したらおk。とかそうこうことでなくて?
0697営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 12:29:24.90そういうのやりたい!!
ってかそれでいの?!!
>>696
URLの置換なのでエスケープするのが大変なので何かいい方法ないかと探しています
0698営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 12:50:55.03うまくいきました!!
置換する文字列がたくさんあった場合は何度か繰り返しました
プログラミングで感動したのはひさびさです。まだ興奮しています!!
ありがとうございます!
0699営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 17:56:32.44>>695で解決したみたいだけど一応。
パターン中に / が沢山登場する時は、
%r!pattern! を使えば / はエスケープしなくてもいけますよ
0700営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 20:06:28.99"/a/b/c".sub('/b'){'/x'} # => "/a/x/c"
0701営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 20:34:32.02>>694じゃないが
Regexpオブジェクトじゃなくて、文字列渡せばいいだけか。
そらそーか
0702uy
2012/03/31(土) 00:01:45.73>まだ興奮しています!! (キリッ
きめーから死ね初心者
>置換する文字列がたくさんあった場合は何度か繰り返しました
はああああああああああああ??????????Wwwwwwwwwww
書き込みから分かるわ、 どんなゴミカスソースかいてるかわかるわwwwwwwwwwゴミ量産すんなしね
変な事をやってないでさっさと正規表現覚えろカス 市ね初心者
0703営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 04:26:20.800704営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 06:05:58.03マ板とム板でまだ表示してるのたぶんお前だけだぞ
0705営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 10:38:51.660706営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 13:38:44.200707営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 18:21:50.40QZはまあ、普通のクソコテだな
0708営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 18:33:12.270709営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 18:55:35.60リアルで名前売れる奴はそもそもこんな所で目立ちたいとは思わない。
0710営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 21:11:27.86@flag を反転させるには
@flag = !@flagってやるしかないですか?
0711営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 21:25:20.63たとえば 3 の否定は false だ
わけわかめ
ペアとして何を返すかはメソッドによって違うんで、安易に true と false を期待してはいけないし、
true と false と直接比較するコードを書いてもいけない(これはめんどくさい点だとは思ってる)
# だめ
if hoge == true then...
# ベスト
if hoge then...
# 真でもtrueを返さないかもしれないめんどくさいメソッドにめんどくさいイディオムで対抗
if !!hoge == true then...
で、まあ、回答としては、メソッドとしてはないっす
not か ! を使うしかないっすな
0712営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 21:35:01.75trueとfalseは真偽の代表値にすぎない。
変数にあくまで単なる真偽だけを保持したいとき
true や false を代入して使うことはあっても、比較には使わない。
0713営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 21:50:57.23そのように書いてあったら意図もそのように読む
が、偽を真にしたい場合は !foo では不足かもしれない
foo が真のときに何を返すかを、 ! は知らない
「特定の文字列があるかどうかを調べ、あったらその文字の位置を整数で返し、見つからなかったらfalseを返す」
というメソッドで、false が返ってきた場合、! で反転しても整数にはならない
まあ、真偽値って言ってるくらいだから true か false のどちらかしか入ってないんだろうけど(まさかnilが入ってたりしないよね?)
0714営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 00:17:36.51やっぱりむちゃくちゃな願望ですよね
素直に!を使います
0715営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 00:45:06.60めんどくさいから非偽オブジェクトと偽オブジェクトでいいじゃんという人がいる
後者の人はおそらく irb 使ったことがないんだろう
0716営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 00:55:19.511.zero? # => false
0.nonzero? # => nil
1.nonzero? # => 1
0717営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 01:02:24.27そういうのに限ってその非偽オブジェクトがきれいにinspectされないんだよな
hoge.hage.hoo?と打つとデフォルトのinspect(しかも入れ子)がだーっと流れたりするのでやる気が7割くらい減退する
0718営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 01:10:37.74(a.x <=> b.x).nonzero? || (a.y <=> b.y)
0719営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 16:00:03.93マ板のuyスレにコレ張られてキレたみたい
Rubyについて(アンチ専用) Part004
644 :uy:2012/01/30(月) 10:15:38.68
Rubyに移らずにPerlをまだ使ってる奴がいるのは、Rubyが省略記法を実装していないからだよ
正規表現も、$1,2,3,4似たようなものだし $_ を実装してもいい気がするんだよね
645 :デフォルトの名無しさん:2012/01/30(月) 10:49:52.53
$_は昔からRubyに入ってるよ
0720営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 16:07:27.630721営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 17:31:47.060722営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 17:58:20.680723営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 18:16:17.720724営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 18:32:43.56きもちわるいです><
0725営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 20:27:04.76他人が進歩するのをみて
0726営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 20:50:37.15まだ使えるんだな。警告出るけど。
0727営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 21:07:50.08↓
原因?のレスを貼られる
悪い事は出来んなぁ…
0728営利利用に関するLR審議中@詳細は自治スレへ
2012/04/02(月) 14:53:30.990729営利利用に関するLR審議中@詳細は自治スレへ
2012/04/02(月) 17:16:35.040730営利利用に関するLR審議中@詳細は自治スレへ
2012/04/02(月) 17:22:10.39普段他の言語で使ってるのがあってRubyでも使えそうならそれで
0731営利利用に関するLR審議中@詳細は自治スレへ
2012/04/02(月) 19:19:02.820732営利利用に関するLR審議中@詳細は自治スレへ
2012/04/02(月) 21:11:23.960733営利利用に関するLR審議中@詳細は自治スレへ
2012/04/02(月) 21:47:51.570734営利利用に関するLR審議中@詳細は自治スレへ
2012/04/02(月) 21:53:29.130735営利利用に関するLR審議中@詳細は自治スレへ
2012/04/02(月) 23:01:03.85独立行政法人の情報処理推進機構(IPA)は2日、日本生まれのプログラミング言語「Ruby(ルビー)」が国際標準化機構(ISO)などの国際規格として承認されたと発表した。
プログラミング言語規格の分野で、日本発の言語が承認を得たのは初めて。
IPAなどによると、Rubyは松江市在住のまつもとゆきひろさんが1993年に発案し、その分かりやすさから世界中のプログラマーらが愛用。
言語の信頼性や安定性向上を目指し、IPAが国際規格化の取り組みを後押ししてきた。
ISOなどの委員会が3月31日に締め切った投票で承認された。
ttp://www.chunichi.co.jp/s/article/2012040201001954.html
0736営利利用に関するLR審議中@詳細は自治スレへ
2012/04/03(火) 01:09:21.35エイプリルフールはもう終わって・・・・え?
0737営利利用に関するLR審議中@詳細は自治スレへ
2012/04/03(火) 01:12:12.33案外早いのな
0738営利利用に関するLR審議中@詳細は自治スレへ
2012/04/03(火) 02:28:53.25マジで素人に毛が生えたような人達もいるし。
0739営利利用に関するLR審議中@詳細は自治スレへ
2012/04/03(火) 02:39:23.800740営利利用に関するLR審議中@詳細は自治スレへ
2012/04/03(火) 05:56:38.39理解できないんだと思うよ
・ "それ"をロクに使っていない初心者
・ Rubyのことが気に入らないアンチ
・ Rubyを使う人が困ればいいと考える基地外
がレスすることがあるので質問者の人はお気をつけ下さい
0741営利利用に関するLR審議中@詳細は自治スレへ
2012/04/03(火) 11:08:44.120742営利利用に関するLR審議中@詳細は自治スレへ
2012/04/03(火) 12:01:25.570743営利利用に関するLR審議中@詳細は自治スレへ
2012/04/03(火) 18:03:49.940744営利利用に関するLR審議中@詳細は自治スレへ
2012/04/03(火) 18:58:17.82str = '1.9.3で�@や�]や�b�'
repl = { '�@', '1', '�]', '10', '��', 'No' }
puts str.gsub(/./){|c| repl[c] or c }
puts str.chars.map{|c| repl[c] or c }.join
0745営利利用に関するLR審議中@詳細は自治スレへ
2012/04/03(火) 20:58:42.63ありがとうございます!ありがとうございます!!
0746営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 00:59:30.64{'foo','bar'}という記述はダメになったようですな
{'foo'=>'bar'}しか認められないようで
で、Ruby1.9以上での別解
str = '1.9.3で�@や�]や�b�'
repl = {'�@'=>'1', '�]'=>'10', '��'=>'No' }
puts str.gsub(Regexp.union(repl.keys),repl)
0747営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 01:57:24.05puts str.gsub(Regexp.union(*repl.keys), repl)
こんな感じ?
0748営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 11:47:07.79> Ruby1.9では{'foo','bar'}という記述はダメになったようですな
不注意でした。指摘どうもです
>>747
splatしなくてもいいんじゃない?
Regexp.union('foo', 'bar') #=> /foo|bar/
Regexp.union(['foo', 'bar']) #=> /foo|bar/
0749営利利用に関するLR審議中@詳細は自治スレへ
2012/04/05(木) 11:42:19.551つのプロジェクトにhoge.rbとtest.rbを作り、test.rbを実行してhogeのオブジェクトを作りたいのですが、
test.rb内でrequire "hoge.rb"をしないと、
>test.rb:2: uninitialized constant TEST::Hoge (NameError)
とエラーが出てしまいます。
わざわざrequireしないとオブジェクト化できないのでしょうか?
ソースは以下のようなものです。
# hoge.rb
class Hoge
def hogehoge
p "aaa"
end
end
# test.rb
class TEST
a = Hoge.new
a.hogehoge
end
0750営利利用に関するLR審議中@詳細は自治スレへ
2012/04/05(木) 12:09:53.44だから明示的にrequireしてやらんといけない
0751営利利用に関するLR審議中@詳細は自治スレへ
2012/04/05(木) 13:38:12.73レスありがとうございます
てっきりJavaと同じ感覚でプログラミングしようと思っていましたがそこは違うみたいですね・・・
■ このスレッドは過去ログ倉庫に格納されています