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


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

Ruby 初心者スレッド Part 24



1 名前: 【大吉】 mailto:sage [2009/01/01(木) 13:13:22 ]
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。

   【Ruby1.9 は不安定な開発版であり初心者には全く向きません】
   【最新安定版の Ruby1.8.7 の使用をお勧めします】
    ※1.8.7 は1.8 と 1.9 の橋渡しをするためのリリースです。
      1.9 の新機能の一部が利用可能なので初学者にお勧めです。
    ※ただし十分安定しているとは言えないので
      プロダクション環境での利用にはお勧めしません。

関連スレやURLは>>2-8あたりを見てください。Ruby on Railsの質問はRailsスレへ。

■質問する人へ
質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。
 ・モジュール名やエラーメッセージでググる
 ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/
 ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
質問には以下を書くこと。へたくそな質問は再提出を要求される。
 ・詳しい内容(「動きません」「うまくできません」では回答しようがない)
 ・エラーメッセージ(自力で訳さずなるべくそのままで)
 ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる))
 ・最終的にやりたいこと(もっとよい方法がある場合が多いので)
回答してくれた人には「ありがとう」のひとことをいってあげて。
■回答する人へ
相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
それができないならこないこと(だって初心者スレだもん)。
 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。

357 名前:デフォルトの名無しさん [2009/01/11(日) 00:27:31 ]
RubyでGUIアプリケーションは作成可能でしょうか?
友人からは、GUIアプリケーションは
VC++、VBとかじゃないと無理と聞いたのですが・・・

358 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 00:37:12 ]
>>340
日本ではまだまだ遠いな
www.google.co.jp/trends?q=php%2Cruby&ctab=0&geo=JP&geor=all&date=all&sort=0

359 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 00:37:34 ]
>>354
self と other を比較する前に絶対値とらないと駄目なんじゃ。

360 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 00:38:08 ]
def check(name)
/name/ =~ "hiroyuki"
以下略

で/name/ をnameでマッチさせるのではなく引数の値を使うにはどうすればいいでしょうか?


361 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 00:50:37 ]
>>357
pc11.2ch.net/test/read.cgi/tech/1200175247/302-312

362 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:08:45 ]
ここまでBigDecimalへの言及無し。
ttp://www.ruby-lang.org/ja/man/html/BigDecimal.html

irb> require 'bigdecimal'
=> true
irb> BigDecimal.new("3.2") - BigDecimal.new("2.0") == BigDecimal.new("1.2")
=> true


363 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:11:56 ]
浮動小数点数の比較の話をしてるんだからBigDecimalの出る幕は無いだろ

364 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:20:00 ]
>>354
サンクス。組み込みではないっつーことか。

>>355
まーゲーム作るときとかちょっとした数値計算、
後ユニットテスト書くときなんかにはいるけど、
確かに最後の例以外Rubyには不適だかなあ

365 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:21:22 ]
>>360
def check(name)
name =~ "horioyuki"

で、
check呼ぶ時に正規表現リテラル渡せばよいのでは?
check(/.+oyu.+/)



366 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:26:58 ]
ちょっとお聞きしたいのですが、
wikiとかの表示によくあるプログラムの実行時間を
自分のスクリプトで表示したいのですが、
簡単にmsecの実行時間を測る方法はないでしょうか?

スクリプトの終了前に
puts Process.times.to_yaml
とかやってみたんですが、表示がさっぱり?です。
utimeとstime を足したものが実行時間なのかな?

367 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:28:51 ]
あれは単にWikiテキストの処理開始時と
処理終了時の差を取っただけなんじゃないか?

368 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:31:14 ]
>>366
基本的な計測はbenchmarkライブラリ(標準添付)でOK
あと、「Ruby プロファイラ」で検索すると色々出てくる

369 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:33:47 ]
>>363
おおもとは、>>323
> (3.2-2.0) == 1.2 がfalseの理由を教えて下さい。
だから、小数を含む数の扱いについて一通り言及すべきだと思うんだ。

370 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:40:08 ]
>>365
nameに渡す文字列はARGV.shiftで受け取ったものなんですよ・・・。
グローバル変数にすればよかったりしますかね・・・。


371 名前:370 mailto:sage [2009/01/11(日) 01:54:40 ]
グローバルしてみましたが結局 =~ の 左辺,右辺に変数がきてもいいのでしょうか?

372 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 02:10:29 ]
def check(name)
/#{name}/ =~ "hiroyuki"
end

p check("hiroyuki") # => 0

373 名前:370 mailto:sage [2009/01/11(日) 02:17:30 ]
>>372
ありがとうございました!!!!!!!!!うまくいきました。
=~の左辺の#{name}っていうのは変数としてみるってことですか?

374 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 02:18:34 ]
>>368
サンクス
benchmarkクラス使ってみる

375 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 02:28:14 ]
>>373
まあそんな感じだ
「式展開」について勉強すればよくわかる
www.ruby-lang.org/ja/man/html/_A5EAA5C6A5E9A5EB.html#a.bc.b0.c5.b8.b3.ab



376 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 02:28:22 ]
変な質問なうえにおそらく出来ないんだろうけど一縷の望みをかけて質問
メソッドの入れ子って出来ますか?
たとえば、
def method1
 処理
 def method2
  処理
 end
end
としたら、method1だけ呼びだしたらmethod1の処理のみで終了。
method1.method2みたいに呼びだしたら両方の処理を実行、みたいな。

この書き方だと
ttp://www.ruby-lang.org/ja/man/html/_A5AFA5E9A5B9A1BFA5E1A5BDA5C3A5C9A4CEC4EAB5C1.html#a.a5.e1.a5.bd.a5.c3.a5.c9.c4.ea.b5.c1.a4.ce.a5.cd.a5.b9.a5.c8
みたいになっちゃうから無理なのは明白だけど・・・

method1に引数を与えてmethod2の処理をif文でくくって引数の値で処理するか否かを
決めるって方法もあるけど、見た目的にごちゃごちゃするから嫌というか・・・

なんかいい方法あったら教えてください。

377 名前:370 mailto:sage [2009/01/11(日) 02:31:30 ]
>>375
ありがとございます。
昨日Rubyはじめたばっかりでいろんなサイトからつぎはぎで趣味プログラムしてたんで
リファレンスマニュアルというのをみてませんでした。まず、一読してみます!

378 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 02:32:20 ]
>>376
無理
素直にモジュール使って、Mod1.method1としなされ

379 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 02:34:20 ]
>>376
それではmethod2を定義しているだけで,method2を呼び出してはいない

def method1
puts "call method1"
def method2
puts "call method2"
end
method2
end

380 名前:379 mailto:sage [2009/01/11(日) 02:35:59 ]
ごめんはやとちりした

381 名前:376 mailto:sage [2009/01/11(日) 02:45:25 ]
>>378
無理かぁ・・・ありがと
Mo1.method1・・・method2はどこへ?
実はmethod1の処理がイテレータを含んでいて、変数を一周するたびに初期化して使うんだけど、
場合によっては初期化する前にmethod2の処理でその変数を使いたいから↑のようなことに・・・
モジュールだとダメそうなのでおとなしく引数と条件文で動かします。。

>>380
ドンマイw

382 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 02:47:47 ]
>>376
def method1
 処理1
 Proc.new do
  処理2
 end
end

method1
method1.call

近いことを無理やりやろうとすれば、
こんなのは思いつくが、普通はやらない
端的に言って不気味すぎる

383 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 03:00:57 ]
いやいや、初心者のこんな突拍子もないアイデアから、すごいアイデアがでたりする。
1000個に1個ぐらい。
だから初心者は1000個のアイデアを出すんだ!

384 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 03:14:53 ]
callが気に食わない

def method1
 処理1
 pr = Proc.new do
  処理2
 end
 pr.instance_eval "alias :method2 :call"
 pr
end

method1
method1.method2



385 名前:376 mailto:sage [2009/01/11(日) 03:22:55 ]
>>382
おお、できるんだ!?
ありがと〜

ぶ、不気味なのか・・・

>>384
求めていたものが完璧に・・・お見事です。

お二方、ありがとうございます。



386 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 03:40:36 ]
開発環境なに使ってますか?
自分はLinuxでは基本Netbeansで、ちょっとした修正はemacsで。
eclipseとかもあるけどどんな開発環境使っているか気になったので・・・。

387 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 03:59:55 ]
vi

388 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 04:07:59 ]
今時 vi はないだろう vi は。
俺は断然 vim だな。

389 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 04:10:20 ]
メモ帳

390 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 04:14:26 ]
俺はEclipseにRubyプラグイン
editer使ってる人は補完なくて大丈夫なの?

391 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 04:25:12 ]
いや、もちろんエディタにも補完はあるよ
VimのRubyに対する補完はかなり強力。それ以上に操作性が好きで使っているけど

392 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 04:29:52 ]
ずっとEmacs
ちなみにMatzもEmacs

まあ人に何が良いか,って聞かれたらNetbeans勧めるかもな

393 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 04:30:07 ]
viの学習曲線の最初でくじけたのでemacsで

394 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 07:48:14 ]
俺は断然 vi

395 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 08:18:34 ]
あんな日本語も通らない化石エディタよく使う気になるな



396 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 08:56:02 ]
個人用途なので基本的にはどうでもいいんですが気になるので質問します

HTMLとかから正規表現とかでデータ抜き出して、データ保管クラスのインスタンス変数に保管します。
initialize の時点でたくさんのインスタンス変数に値を入れたいんですが、

def initialize(params, data)
@a = params[:a]
@b = params[:b]
@c, @d, @e = parse_in_init(data)
end



def initialize(params, data)
@a = params[:a]
@b = params[:b]
make_c_d_e(data)
end
def make_c_d_e(data)
@c = someprocess1(data)
@d = someprocess2(data)
@e = someprocess3(data)
end

って、どっちが見通しいいもんでしょう?
ちょっと面倒でも明示的に代入の形を見せる前者のほうが初期化プロセスっぽく見えて好ましい?

397 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 09:03:43 ]
>>396
YES

ただ、make_c_d_e みたいなそれっぽいのが initialize の直後に定義されてれば
「あーinitializeの続きかー」と思って読むから別に気にはしない
Util.parsehtml とかどっか遠いとこに定義されてるクラスメソッドがinitializeで呼ばれてるとやる気なくす

398 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 09:38:12 ]
def initialize(params, data)
@params = params
@data = parse_in_init(data)
end


399 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 09:43:49 ]
>>398
なにそのユーザー丸投げルーチン

いちいちハッシュの引数で参照するのがめんどいまたは間違いやすいからインスタンス変数にしてんじゃねの

400 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 09:45:50 ]
>>399
@params を書き込み可能にしておけば外部からデータ追加するのも楽々だぜ?

401 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:09:51 ]
>>400
外部からデータを追加する必要があって、なおかつその方法しか考えられないようなときなら一理あるけど
そうでなければ、ここでハッシュを使うのは問題が大きすぎる

402 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:15:06 ]
Javascriptだと
a={'hoge': huga, 'hage': fuga};
a.hoge
a.hage
にアクセス出来ていいんだよね


403 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:17:30 ]
Ruby でもやろうと思えば出来るっしょ

404 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:17:39 ]
アクセサ作ればいい
めんどくさいけど

405 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:24:49 ]
StructA = Struct.new(:hoge, :hage)
a = StructA.new('huga', 'huga')
p a.hoge
p a[:hoge]
p a[0]

"huga"
"huga"
"huga"
オーイエー

>>402
どっかのgemにそんなのあったな





406 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:44:53 ]
来たなStruct厨
総員迎撃準備

407 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:51:36 ]
Structって嫌われてんの?

408 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 11:01:58 ]
Struct.newにJSONぶっこめる?

409 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 11:09:18 ]
>>407
他言語から来た人がArrayやHashを使い込むことなく安易に使うものの代表だから、嫌がられてはいるね
まずはArrayとHashを使い倒してからにして欲しいなと思う所存

>>408
分けてくれ

410 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 11:38:19 ]
>>395
通るぞ?@Solaris10

411 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 11:39:19 ]
ttp://www.ruby-lang.org/ja/documentation/
ここの検索こわれてるみたいなんだけどいつ治りますか

412 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 11:41:36 ]
>>410
動物は一度鎖に繋がれてしまうと鎖が杭から外れていても
逃げられないと思い込んでしまうものなのです

413 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 11:42:25 ]
>>410
それは日本語パッチ当たってるんじゃね

てか、「お前らが使ってるのは vi じゃなくて vi クローンのどれかまたは vim だろ」というツッコミを
誰かがしないと終わらんな

414 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 12:25:43 ]
>>413
OS標準。つか、Solarisは遠い昔から、日本語localeが入ってりゃちゃんと日本語使える。(viに限らず。そのせいで痛い目にあうこともまれにあるが)

415 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 13:15:48 ]
emacs入ってない環境はたくさんあるけど、viが無い環境は稀。
まあ開発環境は何でも好きなの自分で入れろよと思うけどな。



416 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 14:49:23 ]
だからメモ帳最強って何度言わせるんだよ!!

417 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 14:55:18 ]
Windows環境でJmEditorとRDEとNotepad++を使い分ける俺に隙はなかった

418 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 15:08:19 ]
>>415のようなことを稀に聞くが、vi でファイル編集できない人間などおらん

419 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 15:21:16 ]
Windows環境で、class Hoge(もしくは、def hoge、each do |x|)と打ってリターンをすると、
以下のように、endを付けインデントした位置にカーソルを持ってくるエディタはありますか?

class Hoge[Retrun]

  ↓

class A
 |
end

420 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 15:25:32 ]
Meadow(or Xyzzy)を入れて自分で作れってのはなし?

421 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 15:25:41 ]
>>419
xyzzyをカスタマイズ

422 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 15:46:14 ]
>>420-421
自分でカスタマイズする技量がないのであきらめます

423 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 15:53:58 ]
Solarisのviはずいぶん昔から日本語通るぞ。SunOS4は忘れたが。
ただ、Localeに縛られるので、Shift_JISのファイルなんかが来ちゃうと面倒。
LANG=とsettermでなんとかなった気もするけど、もう忘れた。

って無駄レスだな。

424 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:08:58 ]
以下、Personクラスの配列membersを、名前→性の順でソートすると、名前のソートがくずれます。
くずれないようにソートするにはどうすればいいのでしょうか?

class Person
attr_reader :name, :sex
def initialize(name, sex)
@name, @sex = name, sex
end

def show
[@name, @sex]
end
end

members = []
members.push Person.new("sasaki", "male")
members.push Person.new("kato", "famale")
members.push Person.new("fukada", "male")
members.push Person.new("akai", "female")

p members.map {|p| p.show }
#=> [["sasaki", "male"], ["kato", "famale"], ["fukada", "male"], ["akai", "female"]]

p members.sort_by {|p| p.name}.sort_by {|p| p.sex}.map {|p| p.show }
#=> [["kato", "famale"], ["akai", "female"], ["fukada", "male"], ["sasaki", "male"]]
#=> 望ましい結果 [["akai", "female"], ["kato", "famale"], ["fukada", "male"], ["sasaki", "male"]]

425 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:12:32 ]
members.sort_by {|p| [p.name, p.sex]}
じゃね?



426 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:21:48 ]
配列の比較に関してはドキュメントが弱いんだよね

[1,2,2] < [1,2,3]
[1,1,2] < [1,2,2]
[1,4,4] < [2,1,1]

x でソートしたあとに y でもソートしたいという場合は、Rubyでは
data.sort_by{|a| [a.x, a.y]}
と書く

427 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:28:14 ]
>>425
それだと、

[["akai", "female"], ["fukada", "male"], ["kato", "famale"], ["sasaki", "male"]]

となり、性のソートがくずれてしまいました。

428 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:55:33 ]
>>427
どうソートしたいのか考えれ
崩れるも何も、ソートする順番の問題に過ぎない
class Person
attr_reader :name, :sex
def initialize(name, sex)
@name, @sex = name, sex
end
def show
[@name, @sex]
end
def Person.sort_sex(sex)
if sex=='male' then 1 else -1 end
end
end

members = []
members.push Person.new("sasaki", "male")
members.push Person.new("kato", "famale")
members.push Person.new("fukada", "male")
members.push Person.new("akai", "female")

members.sort_by {|p| [Person.sort_sex(p.sex), p.name]}


429 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 17:09:06 ]
>>428
うまくいきました。
サンクス。

430 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 18:13:53 ]
diaspar.jp/node/185

431 名前:デフォルトの名無しさん [2009/01/11(日) 19:37:19 ]
Hpricot::Elem.new(Hpricot::STag.new('form'))
をノコギリで書き換えようと思い
Nokogiri::XML::Node.new('form')としたら
ArgumentError: wrong number of arguments (1 for 2)
のエラーが出ました。
RDocには,new(name)、と引数は一つなのですが,どうしてでしょう。このnameはStringで与えてもだめ?


432 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 19:53:44 ]
>>431
ttp://nokogiri.rubyforge.org/nokogiri/classes/Nokogiri/XML/Node.src/M000044.html
第2引数はNokogiri::XML::Documentっぽい
ドキュメントが間違ってるんだろうな

433 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 22:53:05 ]
>>419
Aptanaとか、EclipseベースのIDEならいけるんじゃないかな。

434 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 23:17:19 ]
>>419
どうせEmacs使わんだろうけどコメントしとく

emacsのruby-electric-modeだと
defスペース
と打った時点でendが補完される

その後 ruby-mode の ruby-reindent-then-newline-and-indent を使って改行すればインデントも同時にされる

この程度ならEmacsユーザならごく当たり前のこと
というかRuby用の動作があるエディタならみんな似たようなことできるでしょ?

435 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 00:38:32 ]
>>419
Vim の場合

runtime/ftplugin/ruby.vim
runtime/indent/ruby.vim
を調べてみたけど、そういうのなかった。

%HOME%/vimfiles/ftplugin/ruby.vim か
$HOME/.vim/ftplugin/ruby.vim に、
以下を入れておけば、OK

inoreab <buffer> module module<cr>end<up><end>
inoreab <buffer> class class<cr>end<up><end>
inoreab <buffer> def def<cr>end<up><end>
inoreab <buffer> do do<cr>end<up><end>
inoreab <buffer> case case<cr>end<up><end>
inoreab <buffer> begin begin<cr>end<up><end>



436 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 01:06:25 ]
hash = {}
[:a, :b, :c].each {|k| hash[k] = @hash[k] }
という処理をもっと簡単に書く方法があれば教えてください。


437 名前:デフォルトの名無しさん [2009/01/12(月) 01:14:36 ]
hash = @hash.dup()

438 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 01:45:16 ]
>>435
endwise.vim というプラグインがある
www.vim.org/scripts/script.php?script_id=2386

439 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 03:17:20 ]
>>419
EclipseかNetBeansでsnipet使うのはどうだろうか?
リターンでは無理だが別のキーで、コードの展開はできるぞ

440 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 04:15:34 ]
>>436
hash.merge!(@hash)

441 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 07:19:55 ]
>>436
それが一番短い部類
「○○というキーを持つペアを [k, v] の配列で返す」みたいなメソッドって標準には無いんだよね

hash = Hash[@hash.find{|k, v| [:a, :b, :c].include?(k)}]


442 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 07:22:22 ]
書いててなんか短いなとは思ったんだ

hash = Hash[*@hash.find{|k, v| [:a, :b, :c].include?(k)}.flatten]

うーん

443 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 07:31:20 ]
hash という変数名は全てのオブジェクトに存在する hash っていうメソッド名と被るから、
特に拘りがあるのでなければ避けておいたほうが吉


プログラム(1行のみ):

p hash

結果:

22412530


適当なハッシュの変数名は h が人気
h と書かれていれば、ほぼ全員がハッシュかなと推測してくれる

444 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 09:09:34 ]
遅延評価はあるから
バックくおーとみたいなのはできるかもしれない

445 名前:デフォルトの名無しさん [2009/01/12(月) 10:04:50 ]
ActiveRecordでsqlite3のDEFAULT CURRENT_DATEに
相当するのは何?
今,record.date = Date::todayみたいにいちいちやってるのだけど,
なんだか,もっとスマートな方法がある気がするので,質問



446 名前:デフォルトの名無しさん [2009/01/12(月) 11:02:22 ]
質問です。
スキルアップのためにRubyでビジネス向けシステムを作れという課題が出ました。
勤怠管理システムのような物を作ろうかなと考えています。
私の言語スキルはCのみでオブジェクト言語は概念しかわかりません。
Cは基本情報合格しました。
とりあえずRuby1.8をインストールしようとしましたが失敗しました。
(コンソール画面から先に進めません)

こんな初心者にお勧めのRuby書籍を教えてください。
前述の通り、インストールから失敗してしまいましたので
インストール方法も解説している物が欲しいです。
最終的に簡単なシステムを作らなければいけないので
入門系と実践系の物をお勧めいただければと思います。
どうかよろしくお願いします。

447 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 11:08:49 ]
>>446
何をもって「失敗した」と言ってるの?
Rubyインストールしただけだったら別に開発環境が入るわけじゃないぞ。
あと使ってるOSは?

448 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 11:14:05 ]
Ruby学習者に必要なもの(ある程度持っていると暗黙のうちに仮定されているもの)

 ・ OSへのある程度の習熟
 ・ コマンドライン操作
 ・ HTTPとウェブに関する基礎知識
 ・ データベース利用に関する基礎知識(Rails限定)
 ・ PerlかUNIX Cの教科書的な基礎知識

449 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 11:19:00 ]
>>448
…持ってなくてもいいが、まあ、持ってないとひたすらに遠回りではあるな
歩行練習と自転車乗る練習を同時にするようなもんで、学習量と学習時間が倍くらいになる

>>446
本当にCで自分用プログラム作れるだけの技量があるか怪しいと思うんだが、コマンドライン操作はできるかい

450 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 11:22:55 ]
できるだろ
Cができるってことはmakeとかも使えるってことなんだから

451 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 12:13:45 ]
>私の言語スキルはCのみでオブジェクト言語は概念しかわかりません。
>Cは基本情報合格しました。
Cができるなんてどこにも書いてないぞ


452 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 12:16:51 ]
Cが出来てRUbyで着ない香具師なんていない
初心者詐称
釣り決定

453 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 12:19:53 ]
> こんな初心者にお勧めのRuby書籍を教えてください。
>>2

454 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 12:21:46 ]
>>446
よろしければその会社でのあなたの給料と実質労働時間を教えてください

455 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 12:23:32 ]
>スキルアップのためにRubyでビジネス向けシステムを作れという課題が出ました。
会社員だなんてどこにも書いてないぞ



456 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 12:26:23 ]
インストールも出来ない初心者向きの本を勧めれば回答終了じゃないのか、これ。

457 名前:446 mailto:sage [2009/01/12(月) 12:35:30 ]
早いお答えありがとうございます。
こちらの回答が遅くて申し訳ありません。

下で個別にもレスしますがCの実践的な開発経験はありません。
資格試験(基本情報)で問題として出されるレベルのプログラムを
一人で完成させる事はできます。
わかりにくいようでしたらプログラムの基礎の基礎(ループやメモリ)だけは
わかるズブの素人としてご指導頂ければ、と思います。

>>447
RailsをインストールするためにDOS画面にコマンドを打ち込んでも
NoFound〜的文章が表示されて先に進みません。
今、手元にインストールしようとしたマシンがないので
正確なエラー文はわかりません。
インストールガイドはネット上で見つけた動画を参考にしたのですが
これもインストールするパソコンにブックマークしていたので
今この場ではわかりません。

わからない事が多くてすいません。
「これが必要」という情報があれば調べてきます。

OSはWindowsVistaです。






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

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

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