トップページ⇒tech
1001コメント355KB

Ruby 初心者スレッド Part 48

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2012/02/08(水) 06:00:47.06
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、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/
0596デフォルトの名無しさん2012/03/24(土) 13:24:43.97
>>594
https://www.chiliproject.org/
0597デフォルトの名無しさん2012/03/24(土) 13:50:14.53
>>596
http://toro.2ch.net/test/read.cgi/tech/1330003774/67

ム板でレスしようとする人は「ひとつのスレしか見ない」というのはお願いだからやめてくれ、迷惑だから
0598デフォルトの名無しさん2012/03/24(土) 13:59:38.90
コピペやテンプレや煽りに反応してスレ壊しちゃう人多いよね
自演でないとしたら、どうしてわからないのかむしろ不思議
0599デフォルトの名無しさん2012/03/24(土) 14:03:49.24
>>597
プログラム板自治スレッド その4
http://toro.2ch.net/test/read.cgi/tech/1331208842/
0600デフォルトの名無しさん2012/03/24(土) 14:05:50.52
Rubyと関係ない>>597のレスが一番迷惑に感じました
0601デフォルトの名無しさん2012/03/24(土) 14:34:36.35
他言語(LL)のユーザがイチャモンをつけるのは、まぁ2chだから自由な権利として、
カキコ先が(Ruby本スレではなく)わざわざこの初心者スレというのが、いやはやなんとも....
煽るにしても、闘争を楽しめるネタならまだマシなんだけどね
0602デフォルトの名無しさん2012/03/24(土) 14:39:36.60
>>601
初心者スレに書く理由は、既に他スレでは反応してもらえなくなっているから
スルーする知識のある人、他スレで見慣れて無視するような人が少しでもいると困る
0603デフォルトの名無しさん2012/03/24(土) 14:55:38.33
それは別に書かなくてもいいです
0604デフォルトの名無しさん2012/03/24(土) 15:18:54.93
Rubyしかできない人が「使えねー」のと同程度には、
Rubyスレしか見てない人も初心者スレでは「使えねー」のだと思う
0605デフォルトの名無しさん2012/03/24(土) 16:00:57.93
お前のレスも使えねーです
0606デフォルトの名無しさん2012/03/24(土) 17:01:28.00
セミコロンって最後につけてる?
0607デフォルトの名無しさん2012/03/24(土) 17:15:01.44
Rubyでコードを書いて勉強しても忘れていくのでCMSかwikiとかに貼り付けて後で見れるようにしたいのですが
この用途でRuby1.9.3で動くCMSかWikiって何がいいですか?
0608デフォルトの名無しさん2012/03/24(土) 17:21:11.67
>>606
改行が(つけられ)ない場合はつけてる

>>607
Rubyで動作しなければならない理由がまったく思いつかない
とりあえず、ふつうにテキストファイルにでも書いとけ
編集も閲覧も誰にも気兼ねなく自由だ
0609デフォルトの名無しさん2012/03/24(土) 17:22:20.11
必要ないものをわざわざ付ける気になんかならないよ
0610デフォルトの名無しさん2012/03/24(土) 17:23:33.65
>>607
codepad使えば
というかそこまでのレベルで物忘れが激しいとやばくないか?
0611デフォルトの名無しさん2012/03/24(土) 18:12:10.36
>>606
基本は付けず、二行まとめたいときだけ付けてる
例えば例外クラス定義とかに使ってる、中身定義しないのに書くの何か嫌だし
0612デフォルトの名無しさん2012/03/24(土) 18:30:29.17
セミコロンつけとくと処理早くなるの知らないやつ多いんだな
0613デフォルトの名無しさん2012/03/24(土) 18:45:20.98
Rubyのマニュアルにセミコロンをつけてるサンプルがないので書いてません
0614デフォルトの名無しさん2012/03/24(土) 18:47:11.75
>>612
手間かけて僅かなパース時間すら削らないといけないようなスクリプトは残念ながら書いてないんで
0615デフォルトの名無しさん2012/03/24(土) 18:50:31.74
そんなレベルで処理速度を気にするなら、アセンブラで書くべきだな。
0616デフォルトの名無しさん2012/03/24(土) 18:50:57.16
>>614
ほんとにはやくなるの?
0617デフォルトの名無しさん2012/03/24(土) 19:07:27.19
>>616
アンカを間違ってるだろw
そういう質問なら>>612に汁
06186122012/03/24(土) 19:14:18.51
俺に聞かれても困る
0619デフォルトの名無しさん2012/03/24(土) 19:17:43.79
>>616
理屈上、確実に速くはなる
実際は違うが、「この改行文字が文の終端なのか途中改行なのか判断する」という処理が不要(セミコロンは必ず終端)なぶん速い、と思ってくれ
その積み重ねが目に見えるかどうかは知らない
普通は目に見えないはず

まあ、何百万行のスクリプトを読み込んで即終了する行為を何度も行なうのにかかる時間をコンマ1秒でも短縮すれば1億円、みたいな場合はやる価値がある
0620デフォルトの名無しさん2012/03/24(土) 19:19:57.36
で、ベンチは?
0621デフォルトの名無しさん2012/03/24(土) 21:08:56.11
他の言語も使ってるからセミコロンは癖でつけてる
0622デフォルトの名無しさん2012/03/24(土) 21:15:55.46
そんなのはエディタの仕事
0623デフォルトの名無しさん2012/03/24(土) 21:57:47.73
>>585
とりあえず手軽に試してみるなら、こういうサイトも有る。
ttp://ideone.com/
0624デフォルトの名無しさん2012/03/24(土) 22:28:54.45
>>607
gistにでも書けば。
0625デフォルトの名無しさん2012/03/24(土) 22:37:18.77
>>607
##!! sample1
#!ruby
puts "hello"
##!! sample2
#!ruby
puts "world"

みたいに1つのソースにつなげて書いて
##!!で区切られたカーソル位置のソースを抽出・実行するエディタマクロ作ると
新言語の学習は楽になるよ。
0626デフォルトの名無しさん2012/03/24(土) 22:50:31.81
気持ち悪いことすんな
ファイル保存時に実行するように設定しろ
0627デフォルトの名無しさん2012/03/24(土) 22:52:13.89
ちょっと書き変えると前のスクリプトがなくなってしまう(コメントにして残すのもわけがわからなくなりそう)というのはわからんでもない
中途半端に頑張ったデータ配列とかあると大変
0628デフォルトの名無しさん2012/03/25(日) 01:36:48.83
俺はそういうのは何をしたコードなのかコメント付けて別ファイルで保存してた
>>607がそれじゃいやなのかそれができないのかその発想がなかったのかは知らんけど
0629デフォルトの名無しさん2012/03/25(日) 10:05:57.77
そういうのって定番はWordPressっていうのがあってだな
0630デフォルトの名無しさん2012/03/25(日) 10:47:35.58
>>628
そんなクソめんどくせーことやってられないと思ったから聞いたんだろ
0631デフォルトの名無しさん2012/03/25(日) 10:51:18.65
どんな方法でも「手で分類づけする」「実際にスクリプトを書く」「過去書いたもののどこが参考になるか考える」という作業は共通だけどな
なんだかよくわからないけど便利な魔法の方法、というものは残念ながら存在しない
0632デフォルトの名無しさん2012/03/25(日) 11:29:49.56
セミコロンの速度差気にする用途で
Rubyを選ぶのがそもそも間違ってる
0633デフォルトの名無しさん2012/03/25(日) 11:31:24.30
ルービーうめぇええぇえ!!!!11
0634デフォルトの名無しさん2012/03/25(日) 12:18:49.07
んなもんコーディング中にセミコロンをいちいちいらねえよ
ファイルを保存するタイミングでマクロで自動で入れとけや
0635デフォルトの名無しさん2012/03/25(日) 12:24:34.00
春すぎる
0636デフォルトの名無しさん2012/03/25(日) 13:20:45.62
言いたい事をうまく言えないとすぐ「春」とか無意味な言葉で逃げるクセは直したほうがよい
0637デフォルトの名無しさん2012/03/25(日) 13:28:07.46
言いたいことも言えないこんなスレだから…Python
0638デフォルトの名無しさん2012/03/25(日) 14:25:36.48
operlじゃもっさいからrubyってどんだけ発想が貧弱
0639デフォルトの名無しさん2012/03/25(日) 21:19:30.31
matz大激怒!こんな糞コミッタ−しか育たないんならRuby開発なんて意味ないね
http://ikura.2ch.net/test/read.cgi/bread/1325584365/
0640デフォルトの名無しさん2012/03/25(日) 21:42:32.86
>>639
AKB前田卒業ってマジかよ!!
0641デフォルトの名無しさん2012/03/26(月) 20:54:06.92
RubyをWindowsで使うときに、データベースの環境づくりはどれが一番楽ですか?
SQLiteを使おうと思ってネットで調べていろいろインストールしたら
なんかうまく行かなくて面倒くさくなってきたんですが...
0642デフォルトの名無しさん2012/03/26(月) 21:19:59.68
やたら楽したがったり訳も分からずいろいろ入れたりすぐ面倒になるような奴にはどれも楽じゃないよ
0643デフォルトの名無しさん2012/03/26(月) 21:29:21.89
>>641
面倒くさいのはWindowsだから諦めるとして
どの手順にしたがってインスコして
どううまくいかなかったのか書いたほうがいいよ
0644デフォルトの名無しさん2012/03/26(月) 22:12:06.10
>>641
MySQLでもPostgresでもワンクリックインストールだし、そんな大変でもないと思うけど。
SQLiteは、native extensionあたりでコケてんのかな…
というわけで>>643
0645デフォルトの名無しさん2012/03/26(月) 22:33:05.84
いろいろインストールというのが既におかしい
0646デフォルトの名無しさん2012/03/26(月) 22:38:28.72
極めてぶっちゃけるとそういう人にデータベースやって欲しくないので、
ご縁がなかったと諦めて頂くのが筋かと思われます
0647デフォルトの名無しさん2012/03/26(月) 22:40:46.58
余計なお世話
0648デフォルトの名無しさん2012/03/26(月) 22:43:34.85
>>645
じゃ、テキストファイルでいいんじゃねの
0649デフォルトの名無しさん2012/03/26(月) 23:13:10.39
いろいろインストールしなくてもgemで入れればいいだけじゃん
と言いたかっただけなんだが
0650デフォルトの名無しさん2012/03/26(月) 23:30:59.58
>>647
本人乙
0651デフォルトの名無しさん2012/03/26(月) 23:38:13.58
初めはみんな初心者。というかここは初心者スレ
0652デフォルトの名無しさん2012/03/26(月) 23:50:48.30
>>645から乱れ始めた感じ
つか、>>641は諦めたんか
0653デフォルトの名無しさん2012/03/27(火) 01:33:19.50
Rubyのスローガンは楽だろ
0654デフォルトの名無しさん2012/03/27(火) 01:55:45.81
その楽は>>641の求めてる楽とは質が違うでしょ
0655デフォルトの名無しさん2012/03/27(火) 02:49:28.41
本質的には同じ
0656デフォルトの名無しさん2012/03/27(火) 02:57:03.44
たのしい と らく ではかなり違う気がするお
0657デフォルトの名無しさん2012/03/27(火) 03:03:18.87
そもそもWindows上でRubyを使おうと思うのが間違い
0658デフォルトの名無しさん2012/03/27(火) 03:18:57.47
プログラマは怠惰であるべきだ
0659デフォルトの名無しさん2012/03/27(火) 03:53:50.01
rubyでphpみたいにHTMLに組み込む事って出来ますか?
0660デフォルトの名無しさん2012/03/27(火) 03:57:26.46
erb
0661デフォルトの名無しさん2012/03/27(火) 04:07:15.93
>>659
ERBで
0662デフォルトの名無しさん2012/03/27(火) 06:46:55.63
見かけPHPのようにできる(このへん語弊があるが)というだけであって、
PHPのようになにもかもがHTML出力に際して親切に動作するわけではないので注意
0663デフォルトの名無しさん2012/03/27(火) 11:50:14.22
CSSのセレクタを構文解析できるライブラリってありませんか?
0664デフォルトの名無しさん2012/03/27(火) 17:04:06.41
http://nokogiri.org/
Nokogiriっていうライブラリが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
Nokogiriですね
これでZenCodingを作ってみます
0666デフォルトの名無しさん2012/03/28(水) 01:42:52.48
erbが進化したら、もうruby最強になるのに。
0667デフォルトの名無しさん2012/03/28(水) 01:47:33.41
どう進化してほしいの?というかもう進化してるかもよ
0668デフォルトの名無しさん2012/03/28(水) 02:57:21.06
rubyがjsみたいになればいい。
0669デフォルトの名無しさん2012/03/28(水) 06:38:18.30
jsでrubyを実装するんだ。
0670デフォルトの名無しさん2012/03/28(水) 07:34:47.85
>>669
これ?
ttp://coderepos.org/share/wiki/JSRuby
0671デフォルトの名無しさん2012/03/28(水) 11:31:06.35
メトロってこの延長線上な気がする

ttp://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
>>671
またガラパゴスが世界標準になってしまったか。
0673デフォルトの名無しさん2012/03/28(水) 12:34:49.18
1.9.3ってもう入れてもいい?
0674デフォルトの名無しさん2012/03/28(水) 12:42:25.81
日本語エンコーディングに関するガイド文書か知識をお持ちなのなら
そうでないなら遠回りなんでどっかで解説なり訓練なり受けてからにするんが吉
0675デフォルトの名無しさん2012/03/28(水) 22:13:17.95
>>666
pry とか。
0676デフォルトの名無しさん2012/03/28(水) 22:17:08.66
>>675
それirbの進化
0677デフォルトの名無しさん2012/03/28(水) 22:21:50.47
>>676
やべえ。素で間違えた。w
まあ、pryは良く出来てるのでオススメだよ!
0678デフォルトの名無しさん2012/03/28(水) 23:10:11.83
てすつ
0679営利利用に関するLR審議中@詳細は自治スレへ2012/03/29(木) 02:41:19.11
>>670
なにこれ?誰か説明して。
0680営利利用に関するLR審議中@詳細は自治スレへ2012/03/29(木) 05:27:24.85
馬鹿には無理
0681営利利用に関するLR審議中@詳細は自治スレへ2012/03/29(木) 14:41:23.30
メトロってこの延長線上な気がする

ttp://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.53
>>679
http://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.89
自演死ね
0684営利利用に関する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
feezeすれば、レシーバ自体は変更できなくなるが、
それにぶら下がってるオブジェクトは変更可能なまま。

a = ['hello'].freeze
a << 'world' #=> RuntimeError: can't modify frozen Array
a[0].upcase!
a #=> ['HELLO']
0686営利利用に関するLR審議中@詳細は自治スレへ2012/03/29(木) 21:31:04.30
「そんなものはない」が正式な回答
Rubyはそのへんを本質的に禁止できない

「変更するな氏ね」とマニュアルに赤マジックででっかく書いとけ
それで充分
勝手に変更した人が悪いんだから、素直に不整合エラー出して終了したり微妙にそのまま走り続けたりして構わない
0687営利利用に関するLR審議中@詳細は自治スレへ2012/03/29(木) 21:55:24.11
そこまで責任持たなくてもいいってことだわな
0688営利利用に関するLR審議中@詳細は自治スレへ2012/03/29(木) 22:00:47.60
>>685,686,687
なるほど、rubyではその辺は融通きかせるのですね。頭を切り返えてみます。
ありがとうございました。
0689営利利用に関するLR審議中@詳細は自治スレへ2012/03/29(木) 22:56:57.75
いえいえ
0690営利利用に関するLR審議中@詳細は自治スレへ2012/03/30(金) 02:10:38.06
activerecordとmysql2をgemでインストールするにあたって
ぐぐったら何か問題あることはわかったんだけども
具体的に何をどうしたらいいのかわからないから
お母さんが説明するみたいに優しく教えて
0691営利利用に関するLR審議中@詳細は自治スレへ2012/03/30(金) 02:45:00.68
>>690
RoRはスレ違いよ、たかし。テンプレ見なさい。
0692営利利用に関するLR審議中@詳細は自治スレへ2012/03/30(金) 07:39:08.82
activerecord使ってたらRoR扱いなん?
0693営利利用に関するLR審議中@詳細は自治スレへ2012/03/30(金) 07:49:29.94
>>692
多くはそうだと思うけど、んなこたない
0694営利利用に関するLR審議中@詳細は自治スレへ2012/03/30(金) 11:02:22.84
置換をするときに正規表現は使いたくないんだけど
gsubやsubしか見当たらないけど何かいい方法ないですか?
0695営利利用に関するLR審議中@詳細は自治スレへ2012/03/30(金) 12:03:07.01
こういうの?

str = "abcde"
str["bc"] = "fff"
p str #=> "afffde"
0696営利利用に関するLR審議中@詳細は自治スレへ2012/03/30(金) 12:15:14.76
>>694
sub, gsubに文字列渡したらおk。とかそうこうことでなくて?
■ このスレッドは過去ログ倉庫に格納されています