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

Ruby初學者スレッド Part 9

■ このスレッドは過去ログ倉庫に格納されています
0001紅寶石2006/11/21(火) 08:33:42
まずはマニュアル

マニュアル
http://www.ruby-lang.org/ja/man/
Ruby FAQ
http://ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
逆引きRuby
http://www.namaraii.com/rubytips/
Ruby リファレンスマニュアルの Windows HTML Help版
http://elbereth-hp.hp.infoseek.co.jp/ruby.html
Rubyリファレンスマニュアル刷新計画
http://doc.loveruby.net/


前スレ
Ruby初心者スレッドPart8
http://pc8.2ch.net/test/read.cgi/tech/1159424939/

>>2-10
0336デフォルトの名無しさん2006/12/10(日) 23:43:24
string[[0,num-10].max, [10,num].min]
0337デフォルトの名無しさん2006/12/10(日) 23:46:01
あるいは string[0...num][/.{0,10}$/] かな。
0338デフォルトの名無しさん2006/12/10(日) 23:48:48
>335
[true, false].include?(b) くらいかな。

しかしたぶん、そのような処理を書かなきゃならんという考えが
何かの間違いだと思う。
0339デフォルトの名無しさん2006/12/10(日) 23:56:01
舞波のひとが似たようなことで悩んでたがあれは
0 or 1にする話だったからちょっと違うな。
ttp://wota.jp/ac/?date=20061121#p01
0340デフォルトの名無しさん2006/12/10(日) 23:58:59
>>338
うむ

いっそ全体を書き直したほうが今後のためにもいいかもしれん
習作的なものや作り始めたばかりなのなら思い直せ
0341デフォルトの名無しさん2006/12/11(月) 00:19:17
>>331
--- [nth, len]
nth バイト番目から長さ len バイトの部分文字列を返しま
す。nth が負の場合は文字列の末尾から数えます。
nth が範囲外を指す場合は nil を返します。

ということなので、何か根本的な勘違いしてないかい?
irb(main):004:0> 'abcdefghijklmnopqrstuvwxyz'[0,10]
=> "abcdefghij"
irb(main):005:0> 'abcdefghijklmnopqrstuvwxyz'[10,10]
=> "klmnopqrst"

# 文章で説明するよりもテストコードなり何なりで期待する結果を書いた方が
# いいような気がする。
0342デフォルトの名無しさん2006/12/11(月) 00:33:42
if ARGV.empty?
$stderr.puts "引数なし"
exit 1
end

これを設定したのですが、
ruby プログラム 引数1 引数2 でプログラムが正常に動作するプログラムを付くっ単おですが
引数2 を指定せずに実行すると
引数なし と設定したエラーが出ずに 引数2がないため開けないので別のエラーがでます。

if ARGV.empty? どうやらこれでは第1引数だけしか判断しないようなので
ARGV[0]
ARGV[1] をそれぞれif文で指定したのですが、できませんでした。

一括で、引数のempty? の判定をする方法はないのでしょうか?
よろしくお願いします。

0343デフォルトの名無しさん2006/12/11(月) 00:37:09
>>335
module BoolClass; end
class TrueClass; include BoolClass; end
class FalseClass; include BoolClass; end

def test(b)
@b = b if b.kind_of?(BoolClass) or raise TypeError
end
0344デフォルトの名無しさん2006/12/11(月) 00:50:22
>>342
まず、一括で引数のempty?ってのはなんか誤解してる気がする。
ARGVってのは配列で、ARGV.empty?ってのはその配列の中に
何かが入っているかどうかを判別しているんだよ。
だから、引数がまったく与えられなかったときにtrueになる。

よくわからんけど、引数の数が丁度2のときに処理をするの?
だったら、

raise 'usage: ruby プログラム 引数1 引数2' if ARGV.size != 2

とかやった方がいいんじゃない?
0345デフォルトの名無しさん2006/12/11(月) 00:51:39
>>331
len = [num, 10].min
string[0..num-1][-len,len]
0346デフォルトの名無しさん2006/12/11(月) 00:51:55
>>342
最初に
p ARGV
としたらどうなるか?
0347デフォルトの名無しさん2006/12/11(月) 00:52:54
あ、345はナシ

引数の数(ARGV.size == 2)で調べるところだね、これは。
0348デフォルトの名無しさん2006/12/11(月) 00:54:50
345じゃない346
連投スマソ
0349デフォルトの名無しさん2006/12/11(月) 02:45:25
よくオブジェクトの初期化とかで
obj.new(:foo => "hoge", :bar => "hage")
とかの先頭にコロンついた変数名をよく見るのだがこれって何?
単なる習慣?
0350デフォルトの名無しさん2006/12/11(月) 04:06:06
コロンがついているのは変数名ではない。Symbolのリテラル表記だ。
obj.new(:foo => "hoge", :bar => "hage")
は
obj.new({:foo => "hoge", :bar => "hage"})
と書いたのと同じ意味だ。つまり、obj#newにHashを渡している。

で、なぜSymbolオブジェクトをHashのキーにしているかというと、

・タイプしやすい。文字列に比べて1文字少なくて済む
  obj.new("foo" => "hoge", "bar" => "hage")
 とタイプするよりは楽だということ。
・Symbolの方がStringよりも生成時に性能的に有利。
 Symbolは内部的には整数で表されてるんで。

ということかな。まあ慣習で強制されているものではないので、
SymbolではなくStringをHashのキーに取る実装もあり得るし存在している。
0351デフォルトの名無しさん2006/12/11(月) 06:15:30
>>350 とんくす。Rubyはタイプするときに楽という理屈でわかりにくい記述があるから困る
0352デフォルトの名無しさん2006/12/11(月) 07:57:18
>>351
Symbolのリテラルは見慣れないとぎょっとする表記だけど、
慣れたらなかなかいいもんですよ。ここは慣れですw
03533352006/12/11(月) 09:49:33
>338-343
うーん。コードが長くなってきて
クラスの海をどう渡ろうかなと。
それでちょっとだけ型判定を。

その後true/falseでなく専用のクラスを作り
そのインスタンスを2つ作り定数にしました。

いっそこうなったらトコトンやろうかと。
クラスを以てクラスを制すつもりで。
中途半端に組み込みクラスを使うより
むしろ判りやすい気がしました。
0354デフォルトの名無しさん2006/12/11(月) 10:33:26
335で冗長なんて思ってたらなにもできんよ
0355デフォルトの名無しさん2006/12/11(月) 10:33:28
たかだか1バイトじゃねーか、とは思うが、Lispかじってると
なにかとシンボルを使いたくなる。
0356デフォルトの名無しさん2006/12/11(月) 11:56:46
文字列をIOストリームのように扱うことってできないでしょうか?
例えば、ネットワークから読み込んできた文字列 sを、
s.read(2)
などのように、先頭から順番に読み込みたいのですが。

今は、
value = s[index]
index += 1
などのようにしていて、面倒です。
0357デフォルトの名無しさん2006/12/11(月) 11:59:46
>>356
StringIOを使いましょう。
http://www.ruby-lang.org/ja/man/?cmd=view;name=StringIO
0358デフォルトの名無しさん2006/12/11(月) 12:11:50
>>357
おお。ちゃんと用意されているのですね。
ありがとうございました。
0359デフォルトの名無しさん2006/12/11(月) 12:35:05
s = File.read('file') #ファイルが空の場合もアリ
a, b = s.split(//)
print(a, b)

a,bにnilが代入された時は「空文字列」を設定したいのですが
何かエレガントな書き方はありますか?
とりあえず今は、1つずつ
a = a || ''; b = b || ''
みたいにやってるのですが、変数の数が増えると大変なので
もっと簡潔に書ける方法があると良いのですが。
0360デフォルトの名無しさん2006/12/11(月) 12:47:55
print "#{a}#{b}"
0361デフォルトの名無しさん2006/12/11(月) 13:17:32
a, b = s.split(//) + [ '', '' ]
でいけるのかな。

あと
a = a || ''
は
a ||= ''
とも書ける。

0362デフォルトの名無しさん2006/12/11(月) 13:24:58
>>360
こんな場合にエラーなく処理させたいんです。
今は分割した物を、その都度 a = a || '' みたいにしてるんですが…

s = File.read('file') #空の場合もあれば 'w x|y z' みたいな場合もあり
a, b = s.split('|')
c, d = a.split(' ')
e, f = b.split(' ')
print(a, b, "\n", c, d, "\n", e, f, "\n")
0363デフォルトの名無しさん2006/12/11(月) 13:27:58
>>361
おおっ、エレガントだ!
ありがとうございました。
0364デフォルトの名無しさん2006/12/11(月) 13:30:57
(a ? a : "").split(' ')
0365デフォルトの名無しさん2006/12/11(月) 13:35:31
>>364
そういう方法もありますね。
一つ勉強になりました。
03663562006/12/11(月) 13:39:44
StringIOを使っていたのですが、ちょとハマってしまいました。
文字列、といっても中身はバイナリデータなのですが、

6A 0D 0A 00 00 51
のようなデータの場合、
seekや、readなどで、0Dが飛ばされて処理されてしまいます。

たぶん、0D0Aが改行コードと認識されているのですが、
飛ばされないようにするというか、バイナリとして扱うことはできないのでしょうか?
03673562006/12/11(月) 13:46:06
binmodeも試しましたが、駄目でした orz

もしかしたら、根本的な問題なのですが、
バイナリファイルを扱うのに、StringIO(IOストリーム)は向いていなかったりしますか?
今は、seekとreadなどで、読もうとしています。
0368デフォルトの名無しさん2006/12/11(月) 13:58:39
うちでは\rも\nも普通に扱えてるけどなぁ。
ファイルから読み込むときに既に\rが落ちてしまってるとか言うことはない?
0369デフォルトの名無しさん2006/12/11(月) 14:01:18
Windows上で、元ファイルのopenのときにバイナリモードにしてないとか。
0370デフォルトの名無しさん2006/12/11(月) 14:01:59
ああ、ごめん。ネットワークとかから元データ取ってくるのか。
0371デフォルトの名無しさん2006/12/11(月) 14:04:41
すみません、もう一つだけ。
教えてもらった事を参考に↓みたいにしたのですが
エラーなく処理させるには、これがベストでしょうか?

s = File.read('file') #空の場合もあれば 'w,x|y,z' みたいな場合もあり
a = s.split('|')
c, d = (a[0] ? a[0] : '').split(',') + ['', '']
print c, d
03723562006/12/11(月) 14:05:53
元データは、open-uriのopenで取ってきたデータなのですが、
ファイルに出力すると、ちゃんと
 6A 0D 0A 00 00 51
になっていました。
ですが、StringIO経由だと、
 6A 0A 00 00 51
になってしまいます。

うむむ
03733712006/12/11(月) 14:10:29
File.read('file') で読み込んだデータは
'a,b|c,d|e,f|g,h|..' みたいにずっと続くので
最初の分割は
a = s.split('|') みたいに配列にしないとマズイです。
x, y = a.split('|') みたいにするとマズイ。
03743562006/12/11(月) 14:13:47
# ファイルからバイナリモードでopenした場合
io = open(OUT_FILE + ".bin", "rb")
# StringIOで、Openした場合
# io = StringIO.open(s, "rb")

value = io.read(4)
puts sprintf('%x %x %x %x', value[0], value[1], value[2], value[3])

io.close

やはり、ファイルからバイナリモードで読み込んだときと、StringIOでOpenしたときと
挙動が違いますね。
これって仕様でしょうか?

一旦ファイルに落として、再度読み込むのを許容するしかないですかね?
0375デフォルトの名無しさん2006/12/11(月) 14:24:49
>>372
Windowsだと、binmodeで書き出ししない場合
勝手に\nが\r\nに直されてしまうから p sでチェックしてみて。
03763562006/12/11(月) 15:25:45
>>375
あ、ファイルに書き出した時点で、\nが\r\nになっているというお話ですか?

か、確認しました!
バイナリモードで書き出したら、\nが\r\nになっているだけでした。

つ、つまり・・・
 6A 0A 00 00 51
で、正しいです。StringIOは悪くないです。
俺が悪かったです orz
03773562006/12/11(月) 15:26:18
> バイナリモードで書き出したら、\nが\r\nになっているだけでした。
バイナリモードで書き出したら、\nのままでした。
0378デフォルトの名無しさん2006/12/11(月) 16:38:13
わざわざファイルに書き出さなくても
p obj で、objのRubyの内部表現が見られるよ。
03793422006/12/11(月) 19:25:04
何かよくわからなくなってきたので整理します。

引数がないままプログラムを実行するとエラーがでますよね
引数が1つしか指定しない場合だと、
if ARGV.empty? で引数が入力されない場合に
putsしてエラー文を出力します。

でもこれだと、コマンドラインから入力する引数(ファイル名など)が2つある場合だと
この文では、putsのエラー文ではなく、デフォルトのエラーが出てしまいます。

この2つや3つ目の引数をコマンドラインから入力するとなると、
引数が入力されなかった場合や、引数の入力が足りない場合
どのようして、指定のエラー文を出力すればよいのでしょうか?
0380デフォルトの名無しさん2006/12/11(月) 19:30:57
>>379
引数の数は丁度2個欲しいのか、丁度3個欲しいのか、
最低2個は欲しいが3個目も受け付けるのか、
それ以外なのかはっきりしろ。
それと>>344は試してみたのか?
03813422006/12/11(月) 19:35:29
>>380
必要な引数は2つです。でも、3つや4つも一度にできるのであれば知りたいです。
引数はいずれもファイル名です。
>>344についですが、
raise 'usage: ruby プログラム 引数1 引数2' if ARGV.size != 2

引数は入力毎に異なるのでプログラム中に記述できないような気がするのですが・・・
0382デフォルトの名無しさん2006/12/11(月) 19:37:00
ARGVは配列で、でもって配列のempty? は
配列そのものに要素が「1つでも」あるのか、全くないかを判定するためのもの。
それぞれの要素が存在するかを知るためのものではない。
0383デフォルトの名無しさん2006/12/11(月) 19:40:34
>>379
optparse使え。
または、 p ARGV しながらプログラム書け。
0384デフォルトの名無しさん2006/12/11(月) 19:44:36
>>381
わかった。親切にメッセージを出した方がいいと考えたおれがバカだった。

raise if ARGV.size !=2

これでどうだ? 引数の数が丁度2でなかったときは
例外を上げてプログラムを終了する。
0385デフォルトの名無しさん2006/12/11(月) 19:46:27

def main(argv)
raise if argv.size != 2
arg1 = argv[0]
arg2 = argv[1]
# 処理
end

if __FILE__ == $0
main(ARGV)
end

0386デフォルトの名無しさん2006/12/11(月) 20:03:34
unless ARGV.size == 2
だとRubyっぽい。
0387デフォルトの名無しさん2006/12/11(月) 22:52:29
>>381
>引数は入力毎に異なるのでプログラム中に記述できないような気がするのですが・・・

…新手のギャグ?
つprintf
つ式展開
03883422006/12/11(月) 22:58:59
>>384
raise if ARGV.size !=2
$stderr.puts "引数なし"
exit 1
end

文法エラーとでたのですが・・・
0389デフォルトの名無しさん2006/12/11(月) 23:14:27
そのendは、以上という意味だ。
03903422006/12/11(月) 23:18:00
でもそうしないと、exit 1でどのみち終わるのでは??
0391デフォルトの名無しさん2006/12/11(月) 23:20:08
えーと、どういう答えが欲しいんだ、こいつは。
0392デフォルトの名無しさん2006/12/11(月) 23:38:04
常識的に考えてわかるだろ
03933422006/12/12(火) 00:14:22
どうやったら>>>388のendをなくして実行したところ
unhandled exception
とエラーがでています。まだおかしいみたいです
0394デフォルトの名無しさん2006/12/12(火) 00:17:44
それはそれで正しい。rescueしてないから最終的にエラーとして
報告されてるわけ。

03953422006/12/12(火) 00:19:27
なるほどレスキューが必要でしたか。すみません。
empty?でやってたときはrescueがいらなかったので・・・
0396デフォルトの名無しさん2006/12/12(火) 00:29:13
abort "引数なし" unless ARGV.size == 2
0397デフォルトの名無しさん2006/12/12(火) 00:37:52
>>350
あと、キーにシンボルを使うとキーと値が視覚的に区別しやすい。
構文強調をサポートしたエディタではなおさら。
0398デフォルトの名無しさん2006/12/12(火) 00:41:47
>>397
それありますねー。
結構でかい。

そういや、Railsで、シンボルと値の組のハッシュを多用しますけど、
シンボル名を間違えまくる。
それでも動いたりするんですが、
これはRubyの宿命ですか?
0399デフォルトの名無しさん2006/12/12(火) 00:46:45
何が言いたいかって言うと、↓Adaの仮引数みたいに、
Put(Item => 1 + 1, Width => 3);
したいのでしょうけど、記述ミスが痛いということでせう
0400デフォルトの名無しさん2006/12/12(火) 06:13:51
>>395
で、beginつけずにrescueだけつけて、
文法エラーがでてしまいました、とか言い出しそうな悪寒
0401デフォルトの名無しさん2006/12/12(火) 06:42:08
>>398
シンボルはリテラルなのでRubyに限らず間違えても(ry
補完機能つきのエディタ使えよ。
0402デフォルトの名無しさん2006/12/12(火) 19:36:23
Ruby書くのに最適な補完機能つきエディタってあります?
予約語だけじゃなくて、変数までカバーしてくれるやつ。

今はeclipseのrubyプラグインを使ってるんですが、
補完機能が貧弱なので。
0403デフォルトの名無しさん2006/12/12(火) 19:58:03
Railsいじってたときに、RadRails使ってたけど、やっぱり、補完は貧弱ですよね
厳密な補完じゃなくていいなら、(単語レベルなら)
xyzzyのRuby-modeかな。
でもこちらもオマケという程度です。
emacsとかのRuby-modeはどうなんかね?
0404デフォルトの名無しさん2006/12/12(火) 20:01:19
たのしいRubyを読んでいます
これの次に読むべき本は何ですか?

RubyはWebアプリのための開発言語でしか
ないのでしょうか?
何か画期的な使い道はないんですかね?
Linuxとかでsedやawkにとって変わるものでしょうか
0405デフォルトの名無しさん2006/12/12(火) 20:06:49
>398
ある程度決まっているなら
使うシンボルを全部モジュール定数に入れておく。
実際にハッシュにアクセスする時は定数を指定。
0406デフォルトの名無しさん2006/12/12(火) 20:07:04
>>404
Windowsで、sedやawk知らんから、ruby便利に使ってます。
Rakeやら、テキスト処理から、ネットからのデータのダウンロードまでないと、
おれは死ぬ。
0407デフォルトの名無しさん2006/12/12(火) 20:07:14
sedやawkに取って代わるものではないと思うよ。
sedやawkが他に取って代わられるようなものなら、とっくに取って代わられてるわけで。
0408デフォルトの名無しさん2006/12/12(火) 20:08:28
>>402
RDEはどうかな。
予約語と変数(というか編集中バッファ内の単語)両方を候補に出す。
メソッドの補完がイマイチだけど。
0409デフォルトの名無しさん2006/12/12(火) 20:12:18
>>407
真理

まあ、RubyをPerlに代わる標準スクリプト言語として採用しようとした
Linuxディストリビューションが過去存在したが…
0410デフォルトの名無しさん2006/12/12(火) 20:19:25
>>406
ネットからのデータのダウンロードなども
できるのですか もっと勉強してみます
ソケット通信とは違うんですよね?
>>407
RubyはRubyで勉強していけばいいですね

普段はC使ってます。まだ目標が無いのですが、色々な言語を
知りたいと思いRubyにしました。フリーだしオブジェクト志向で良い材料だと
思ってます。
0411デフォルトの名無しさん2006/12/12(火) 20:28:32
バイナリファイルの読み書きを楽にする方法ってないですか?
今は、読み書きに以下のように書いています
ioは、openで開いたものです。

def read_word(io)
value = io.read(2)
return (value[1] << 8) + value[0]
end

packとか使うんだろうか
04124022006/12/12(火) 20:34:04
>>403
xyzzyのruby-mode、使ってました。emacsのruby-modeは
よく知りませんが、最近バージョンが上がったんだっけ。

>>408
RDE、なぜか忘れていました。使ってみます。

海の向こうではTextmateの人気が高いようで。うらやましい。
0413デフォルトの名無しさん2006/12/12(火) 20:34:50
TextMateの本(PragProgの)を読んでるけど、略語展開と補完だけでは万全ではないな。
いまのところ日本語は普通には打てないしシェアウェアだし。

シンボル補完
一部タイプしてESC、複数候補はESC連打

対象は現在ソースにあるシンボルなので、
s = file.read
s.indESC #=> s.index()
なんてことはできない。

型が字面からわかりづらい言語で、現在の型にあわせて補完やるのは難しいだろうなー。

略語展開
たとえばeawiTABとタイプすると
each_with_index { |e,i| } # eが選択された状態
になる。

おまけながら、その場でCtrl-{すると
each_with_index do |e,i|
TAB
end
になったりする。
04144022006/12/12(火) 20:54:11
> TextMateの本(PragProgの)を読んでるけど、
へー、そんなのあるんですね。

> いまのところ日本語は普通には打てないしシェアウェアだし。
後者はいいけど、前者は痛いですね。でも、なんかすごい
使いやすそうなのは分かりました。どっちみち、macもってないん
ですけど。

今思い出しましたが、RubyCLRの作者の人が、かなり
使いやすそうな環境を自慢してる動画を見たことがある。
あれ何だったっけ。
0415デフォルトの名無しさん2006/12/12(火) 20:54:58
>>411
読むほうはunpack、書くほうはpackだね。
0416デフォルトの名無しさん2006/12/12(火) 23:00:09
PragProgのTextMateの本てーと、これか。
現在ベータ版。製本されて世に出るのは2月らしい。
http://www.pragmaticprogrammer.com/titles/textmate/index.html
0417デフォルトの名無しさん2006/12/13(水) 09:41:09
昨日のオレンジニュースで見たこのデモなんだけど。

■ ECBやemacs-railsなどEmacsの機能をデモンストレーションしたFlash動画
http://platypope.org/yada/emacs-demo/
■ デモで扱ったElispパッケージ群
http://platypope.org/blog/2006/9/8/i-need-a-cool-european-accent

左のツリーにtortoiseSVNみたいにsvnの状態が出るのに感動した。
最近の emacs ってすごいな。

これってmeadowでも動く?
0418デフォルトの名無しさん2006/12/13(水) 10:29:40
>>417
emacsすげえな
0419デフォルトの名無しさん2006/12/13(水) 13:22:21
すげーはすげーけどキッチンと食卓つきトイレのようなすごさだなw
0420デフォルトの名無しさん2006/12/13(水) 13:25:37
Emacsは、ほら、キッチンシンクの権現(権化)ですから。
0421342,3882006/12/13(水) 13:41:52
begin
raise if ARGV.size !=2
rescue Errno::TypeError
$stderr.puts "引数なし"
exit 1
end


これやるとまたエラーがでたのですが、いわれたとおりにしたのに・・・
uninitialized constant Errno::TypeError (NameError)
0422デフォルトの名無しさん2006/12/13(水) 13:57:15
if ARGV.size != 2
  STDERR.puts "usage: #{$0} arg1 arg2"
  exit false
end
0423デフォルトの名無しさん2006/12/13(水) 13:58:36
Errno::TypeErrorが間違ってるな。
引数なしのraiseであがる例外は何? それをrescueしましょう。

意味的には ArgumentError なんだろうか。コマンドライン引数って。

0424342,3882006/12/13(水) 14:00:22
引数なしなら
これをしているので指定のエラーがでます
begin
file = open(ARGV[0], "r")
file2 = open(ARGV[1], "r")
rescue Errno::ENOENT, Errno::EACCES
print("ファイルが存在しないかアクセス権限なし\n")
exit 1
end
0425デフォルトの名無しさん2006/12/13(水) 14:03:45
「コマンドライン引数がない場合」という意味じゃなくて、
raiseに引数がない場合なんだが。

例外やめて>>422のように書いてもいいよ。
0426デフォルトの名無しさん2006/12/13(水) 23:05:26
ruby1.9からfd passingができるっていう話を人づてに
聞いたんだけれどどなたか詳細ご存知ですか?

リファレンスマニュアルをググってみたんだけど見つからなくて・・・
0427デフォルトの名無しさん2006/12/14(木) 01:43:16
>>424
引数が無いならはARGV == [ ]
だもんでARGV[0]や[1]はnil
openはString、Stringにできるモノ以外が来たから
TypeErrorをあげる
0428デフォルトの名無しさん2006/12/14(木) 01:52:20
>>421
> これやるとまたエラーがでたのですが、いわれたとおりにしたのに・・・

お前、レスをまともに読んでないだろ。
0429デフォルトの名無しさん2006/12/14(木) 02:09:03
TypeErrorはいいけど、Errno::TypeErrorはナシな。
0430デフォルトの名無しさん2006/12/14(木) 07:57:42
読む能力がないんだろう
0431デフォルトの名無しさん2006/12/14(木) 08:46:57
そもそも読む気がないとか。
質問のようにみえるが、実はただの独り言。
0432デフォルトの名無しさん2006/12/14(木) 16:21:29
naoyaのはてなダイアリー - ライブドアのテクノロジーセミナーでしゃべってきました。
http://d.hatena.ne.jp/naoya/20061214/1166063145

はてなの中の人のプレゼンテキスト見たのですが、
Capistrano
って何?
0433デフォルトの名無しさん2006/12/14(木) 16:28:34
>>432
naoyaグループ - naoyaの日記 - Capistrano
http://naoya.g.hatena.ne.jp/naoya/20060928/1159437059

ここにありました。
複数ホストに接続して、shellを実行するソフトなんですね
0434デフォルトの名無しさん2006/12/14(木) 17:20:05
capistrano(旧switchtower)を使うと、ローカルでコマンド一発たたくだけで、
リモートで、

鯖停止メッセージを表示させて、
新バージョンをチェックアウトして、
リンク張り替えたりして、
データベース更新して、
アプリ再起動して、
鯖停止メッセージをしまう

なんていう定型タスクを実行できる。
0435デフォルトの名無しさん2006/12/14(木) 18:25:05
ERBを使っているのですが、

<% if hoge %>
ほげ〜
<% end %>

ってやると、

(改行)
ほげ〜
(改行)

になってしまうのですが、何とかする方法はないのでしょうか?

<% if hoge %>ほげ〜<% end %>

とするしかないですか?

eRubyの?方は、
% if hoge
ほげ〜
% end
とすれば、いいのですが・・・
■ このスレッドは過去ログ倉庫に格納されています