November 01, 2006
サーバ買った 01:12
- Permalink
- Comments (1897)
- Trackbacks (0)
サーバ
以前サーバの調子が悪いと言っていたけども、 このブログがメモリを食いつくして他のプロセスが殺されていたようです。 どっかでメモリリークしてる。ブログはそのうちなんとかする。
まーそもそもkatamayu.netのサーバはRailsを動かすにはスペック的にあれだったんで、 新しくサーバを買いました。 HPのML110 G3、2万円で。 こいつでいっぱい遊ぶよ!(`・ω・´) こいつもスペック貧弱だけど。
とりあえずこのブログを新サーバに移したので、katamayuサーバのほうには穏やかな日々が戻ったと思います。 これでなぜかことあるごとに殺されまくっていたmysqldも長生きするはず。 よくよく考えてみれば前の調子でsshdまで殺されたらいろいろ生活に支障が出るもんなぁ。 Webサーバも落とされたら困るし。Railsアプリがkatamayuから追い出されるのは必然だったわ。
今はkatamayuサーバでlighttpdが、新サーバでブログのプロセスが動いてます。 やり方はライド・オン・Railsに載ってるよ。 作業は非常にあっけなく終わった。いやー、良くできてるなー。
ソフトバンククリエイティブ
November 03, 2006
ファイルアップロードのテスト 17:15
- Permalink
- Comments (1905)
- Trackbacks (0)
Rails
あとで「なんだっけ」になること確実なのでメモ。
ファイルのアップロードをテストで書きたいときにはActionController::TestUploadedFileを使う。
ActionController::TestUploadedFile.new(path, content_type)
をfunctional testならpostとかでわたしてやればよい。
こんなのも。
Shortcut for ActionController::TestUploadedFile.new(Test::Unit::TestCase.fixture_path + path, type). Example:
post :change_avatar, :avatar => fixture_file_upload('/files/spongebob.png', 'image/png')
あー、あとはblobなデータをfixtureに書く方法がわかんない。 テストの前にちまちまとデータ突っ込んでるんだけど、憎いし苦痛。
config/mongrel_cluster.ymlの書き方、とか 20:17
- Permalink
- Comments (2300)
- Trackbacks (0)
Rails, mongrel
Railsプロセス(FastCGI)だけ別サーバにわけたのはいいんだけど、 これじゃ静的ファイルは依然としてlighttpdの動いてるサーバから返されるわけか。 一方でRailsがページキャッシュしたRSSとかアップロードしたファイルとかは Railsのサーバにできるわけだから、なるほどRSSが更新されないわけだわ。
この場合FastCGIのプロセスじゃなくてwebサーバごと一緒に引越ししなくちゃいけなかった。 てことでmongrel cluster。
設定ファイルconfig/mongrel_cluster.ymlの書き方がイミフなのでmongrel_cluster/init.rbをのぞく。
argv = [ "mongrel_rails" ]
argv << "start"
argv << "-d"
argv << "-e #{@options["environment"]}" if @options["environment"]
argv << "-p #{port+i}"
argv << "-a #{@options["address"]}" if @options["address"]
argv << "-l #{@options["log_file"]}" if @options["log_file"]
argv << "-P #{pid[0]}.#{port+i}.#{pid[1]}"
argv << "-c #{@options["cwd"]}" if @options["cwd"]
argv << "-t #{@options["timeout"]}" if @options["timeout"]
argv << "-m #{@options["mime_map"]}" if @options["mime_map"]
argv << "-r #{@options["docroot"]}" if @options["docroot"]
argv << "-n #{@options["num_procs"]}" if @options["num_procs"]
argv << "-B" if @options["debug"]
argv << "-S #{@options["config_script"]}" if @options["config_script"]
argv << "--user #{@options["user"]}" if @options["user"]
argv << "--group #{@options["group"]}" if @options["group"]
cmd = argv.join " "
puts cmd if @verbose
output = `#{cmd}`
mongrel_cluster.ymlはmongrel_rails startに渡すオプションを書くところだったんだなー。 mongrel_rails startのヘルプ見れば対応が分かる。
$ mongrel_rails start -h
Usage: mongrel_rails <command> [options]
-e, --environment ENV Rails environment to run as
-d, --daemonize Whether to run in the background or not
-p, --port PORT Which port to bind to
-a, --address ADDR Address to bind to
-l, --log FILE Where to write log messages
-P, --pid FILE Where to write the PID
-n, --num-procs INT Number of processors active before clients denied
-t, --timeout TIME Timeout all requests after 100th seconds time
-m, --mime PATH A YAML file that lists additional MIME types
-c, --chdir PATH Change to dir before starting (will be expanded)
-r, --root PATH Set the document root (default 'public')
-B, --debug Enable debugging mode
-C, --config PATH Use a config file
-S, --script PATH Load the given file as an extra config script.
-G, --generate CONFIG Generate a config file for -C
--user USER
User to run as
--group GROUP
Group to run as
--prefix PATH
URL prefix for Rails app
-h, --help Show this message
--version Show version
こうなった。
--- port: 8000 pid_file: log/mongrel.pid servers: 3 mime_map: config/mongrel_mime_type.yml environment: production
サーバは3つもあればこんなブログ十二分にさばけるお!
mongrelがrdfのcontent typeをしっかり返さないので、mongrel_mime_type.ymlに書いた。
.rdf: text/xml; charset=UTF-8
application/rdf+xmlはどうなったんだろう。なんかそれにするとオレのFirefox 1.5は xmlとして見てない感じだよ。
あとはlighttpdでやってたrewriteをどうすっかなんだけど、
Mongrel (as of 0.3.7) by default supports Rails style page caching in the RailsHandler it uses to serve your applications. What this means is that if you do a page cached action (which writes a .html file as well as respond) then Mongrel will just serve up the cached page instead of bug Rails.
mongrelは.htmlを付けるのはやってくれるらしいことが書かれている。
そのほかのrewriteはLuaでpower-magnet.cmlてのをlighttpd用に書くみたいだけど、 とりあえずいいや。今回は必要ない。
November 05, 2006
\と_をスワップ 20:09
- Permalink
- Comments (319)
- Trackbacks (0)
Linux
macでアンダースコア打つのにshiftがいらなかったんで、 Linuxでもそうしてみる。
xmodmap -pke
とすると一覧が出てくるので、
keycode 211 = backslash underscore kana_RO
を見付けて~/.Xmodmapに
keycode 211 = underscore backslash kana_RO
と書いてみた。kana_ROはなんだRO。どうやったらそれ打てるの? ctrl押しながらじゃないしなぁ。 参考にしたUNIXの部屋のxmodmapのページには 2つめはshift同時押しって書いてあったけど、3つめは知らんよ。
バックスラッシュは主には正規表現で使うくらいで圧倒的にアンダースコアを打つケースのほうが 多いような気がする(当社比)ので、しばらくこれで試す。
macでバックスラッシュの打ち方をoption + \ って教わったけど、ないなと思った。 ほかに打ち方ないのかな。
November 07, 2006
URIのタイトル 04:56
- Permalink
- Comments (1884)
- Trackbacks (0)
Web
こういうの↓よくあるけど、
<h2><a id="xxx" href="#xxx">■</a>雨降ってるし、学校行く気しない</h2>
そこ(#xxx)にブックマークしようとすると大抵タイトルを編集しなくちゃいけなくなる。
以下のようにしたら、http://〜〜#xxxのタイトル抽出を自動化できるよな? はてブしたときにタイトル編集しなくて済むよ('∀`)ノ
<h2><a id="xxx" href="#xxx" title="83's : 雨降ってるし、学校行く気しない">■</a>雨降ってるし、学校行く気しない</h2>
そもそも考えてみればtitle要素というのはHTML文書のタイトルなんであって、 その文書内のある部分を指してるURIの説明(タイトル)としてtitle要素の内容持ってくるのは ちと理屈的に無理がありゃしませんか。URIが指してる要素が説明するべきじゃないかと。
でもみんなやらないと意味ないなー。
そう言えば最近はRSSリーダから直でそのフラグメントに飛んでくることが多いので、
<h2 id="xxx" title="83's : 雨降ってるし、学校行く気しない">雨降ってるし、学校行く気しない</h2>
でいい気がしなくもない。めんどいか。■みたいの用意しなきゃいけないのはブラウザが悪いよな。 あ、それGre(ry
idつきheadingへのリンクを追加するgreasemonkey 05:49
- Permalink
- Comments (1928)
- Trackbacks (0)
greasemonkey
■みたいの用意しなきゃいけないのはブラウザが悪いよな。 あ、それGre(ry
てことでしょーもないけどGreasemonkeyスクリプトを作ってみた。 1日1回はプログラミングしないと!
h1〜h5でidがついてるとその要素の始めのところに「_」っていうリンクを追加するだけ。 こういうのやっぱりページ作成者じゃなくてブラウザ側でやるべきだね。 だってそうしないとインタフェース統一されんもん。
なんかgetElementsByTagNameが返すのはArrayじゃないね? はまっちった。 JavaScriptでオブジェクトのクラス名を知るにはどうしたらいいんだろう。
で、ときどき
Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIChannel.open]
てゆうエラーになるんだけど、とりあえず深追いするのはやめた……。
あとspidermonkeyはなんで
js> [1,2,3] 1,2,3 js> "1,2,3" 1,2,3
配列と文字列で表示が同じなんだろう。誤解するだろ……。
November 08, 2006
10月に読んだ本とか 05:02
ちと遅くなったけど。
本番サーバへの設置の話とか、Rails周りのところを見たくて購入。 lighttpdの設定とか書いてあるから! 「ググれカス」に理不尽さを覚えたあなたはこれを買うといいよ。 あとHyper Estraierとかruby-gettextとか携帯の話とか。これはいつかきっと御世話になる。
前に読んだRailsの育て方とか AWDwRとは 半分くらい話がかぶらないんでお徳な感じ。
リファクタリングの 下巻とも言うべき本。こういういつ読んでも味がするようなスルメな本は貴重。 設計が汚いなと思ったときの改善のヒントとして傍らに置いておきたいような本だが、 これが必要になるようなものをなかなか作る機会がない(´・ω・`)
enibloで定期的にバックアップとんないといけないんで、そこはとても役に立った。 分からないところも多数orz やっぱ中途半端にSQLiteとか使うよりもしっかりMySQLを使うことにする。
なんかバイト先にある本ばっかなんだけど、必要な時に手元あってほしいので購入。 11月はこんなペースじゃ読めないなー。10月の1週目は授業初日にも関らずオレは大学にいなかったけど、 これらを読んで夜更ししてました。
自分の興味あることに投資できるようになったんで、バイトさせてもらってホント最近は良い感じです。 ネットにごろごろいるスーパーハカー大学生の数百分の一の生産性もありませんが、 就職までの間どうかよろしくお願いしますm(_ _)m
質問とかするためにも知識をつけなくては。 ハカーへの道は興味と好奇心によって駆動される問題解決と知識獲得の行ったり来たりと見た! なかなか知識獲得できない金銭的負け組だったり、興味駆動じゃなくて義務駆動だったりするとどこかで止まってしまうのだ。世の中金! と時間!
自分の心に従え。夢をいくつか持て。自分自身を知れ。他人に自分の道を指示させるな。「これが人生を成功に導く。」「これらの学校に進んで、これらの講義を取れ。」「こういう種類の仕事をするべきだった。」「人生の階段はこのように上らなければならない。」そういうことは言わせるな。何であれやりたいことがあり、それをやり成功する情熱があれば、成功する。
ウォズニアックかこいいよウォズニアック '`ァ,、ァ(*´Д`*)'`ァ,、ァ 学校さぼる言い訳に使えそうですw よーし、積ん読片付けるぞー。
November 09, 2006
Googleにdelタグが効かない 16:17
- Permalink
- Comments (2163)
- Trackbacks (0)
Web
サイドバーのとこのdelタグで括ってる「出席したら負けかなと思っ(ry」が Googleにしっかりキャッチされてる件。
検索する人にとって取り消した情報も役に立つんだろうか。 それとも取り消したものもひっくるめて検索なんだろうか。
November 12, 2006
Firefox 2.0入れたぞーーーーやったーーーーーっっ!!1 21:02
- Permalink
- Comments (5)
- Trackbacks (0)
Firefox
くそう。Firefox 2.0にしたらmozlessが動かない。 相当この拡張(2.0的にはアドオン)に依存していたのでツラス(ノД`) マウスでポチポチやってらんねー。
あとCopy URL+もダメだ。
November 13, 2006
作文能力がない 00:34
- Permalink
- Comments (315)
- Trackbacks (0)
大学
ちゃっちゃと作文系のレポートを片付ける能力が欲しい。 オレはこういう「A4で○枚書け」とかいうレポートが大の苦手。 書くことがない。
途中でネットしたり集中してないのも原因だろうけど、2枚書くのにも何時間もかかるよ。
ホント院に来てから宿題が多くて時間とられるもんで困る。 もっと自由な時間が多いのかと思ってた。 サクサク課題片付けられる人がウラヤマシス。
書けた 02:37
- Permalink
- Comments (58)
- Trackbacks (0)
大学
2842文字。正味3時間くらいか? オレしょぼすぎ。でも疲れた……寒い。
とりあえずお腹が空いたからコンビニ行ってくるー。 明日午後の授業遅刻しませんように……コアタイムは朝からだが、知らん。 無理して起きると眠くてパフォーマンスが落ちる。先生にはそれがわからんのです。
和訳… 22:29
- Permalink
- Comments (1)
- Trackbacks (0)
大学
今日は昼に起きて授業2コマ出て明日の授業で使う和訳をして終わっちまうYO!
あー、ニートになりてぇ。
November 17, 2006
絵を晒す 18:25
- Permalink
- Comments (330)
- Trackbacks (0)
blog
enibloのブログパーツを作ったのでブログのトップページに貼ってみた。
まだ公開していないが、実装80%のまま出してしまうつもり。
IEで見たら 20:35
- Permalink
- Comments (0)
- Trackbacks (0)
blog
このブログのトップページのレイアウトが崩壊していることに気がついた。 7月からずっとこの状態だったのか……。どんだけ気づくの遅いんだ……。
教えてくれる人がいなかったあたりがとても鬱です。 あ、一応いた。
ほんとIE 6はいい加減死に絶えて下さいお願いします。 Netscape 6使ってたころにIE 6のCSSで悩んだ記憶がある。 どんだけ長生きなんだよ。
って、IE7でもレイアウト壊れてるのか。んもう。
November 20, 2006
大学発ベンチャーだそうで 09:45
- Permalink
- Comments (0)
- Trackbacks (0)
雑感
なんか学内MLに、4年生が作った大学発ベンチャーが大学内SNS作ったんで参加してねっていう 宣伝メールがきたよ。
3年4年でそういうことができるのが羨ましくてしょうがない。 大学内SNSなんていらねと思うし、mixiあるだろと思うし、これが直接金になるとも思えないけど、 やっぱ手を動かすことが大事なんだよね。で、オレがどう思ってもユーザがつくわけだ。 enibloにもついているように。
まあ金が続く限りっていう厳しい現実がベンチャーにはあるだろうけど、 ベンチャーは一発目で大当たりするわけじゃないって聞くし、まずやるだけやって、 少なくともSNS作る技術つけてそれを他人に納得させることができるんだから、 教室で座って話聞いてレポート量産して単位が出る授業の数千倍、 本で猛烈に独学する数百倍もの知識と経験がつくに違いない。
大学生には保険があって、在学中に会社がつぶれても普通に新卒で就職できる。 または卒業と同時にやめてもいい。 それは確かにネガティブに受け止められがちで、 実際責任や本気さが伴わなければたいした経験にはならないだろうな。 オレは起業とかまったく無知だけど、友人見ててそう思っていたもんだ。 でも短期間でも本気でやれば、普通に就職するにしたってポテンシャルが違う。 いろいろ知ってるし、いろいろできる。そして自分から選べる。
オレは4年の時、恥ずかしながらどう企業を選んでいいのかわからないので院進学に傾いたという経緯がある。 まるで履修計画でもたてるかのように学校が推薦する企業の中から選んで、 それまでとるべき授業が義務として与えられていたように職業を与えてもらってそのまま進むってのは、 はっきり言って大半だろうと思うけども、オレは嫌だった。 自分で選びたかったけど、自分が何をしたいのかわからなかったし、 当時のオレの情報収集力では見本となる人もたいして見付けられなかった。 もっと知るため、見極めるために技術と知識をつけなければ、と思って就職する気0→院進学ってことになった。 だからそれがオレの何倍もの早さでできる彼らが羨ましい。
ほんと、就職そろそろ考えないといけないな。 若者はなぜ3年で辞めるのか? 年功序列が奪う日本の未来読んで かなり鬱になったが、選ぶ基準が一つ自分の中で出来た気がする。
gemがまた 19:36
- Permalink
- Comments (1860)
- Trackbacks (0)
Ruby
gem使おうとしたらまたRubyforgeが落ちてる。
オレのタイミングが悪いのか、 それとも頻繁に落ちてるのか……。
ミラーサーバってないんだろうか。
November 24, 2006
$break, $continue 07:28
- Permalink
- Comments (1902)
- Trackbacks (0)
JavaScript
ん、prototype.jsのeachとかでbreakとかすんのはどうすんのかとか思ったら、 $breakとか$continueをthrowするのか。とかいうメモ。
フリースペース 10:56
- Permalink
- Comments (2178)
- Trackbacks (0)
Web
ブログによくある、自由にHTML貼れるフリースペースを enibloにも早くつけろと 社長(個人事業者をそう呼ぶのかどうかはともかく)から言われているんだけど、 どうしたもんかな。
要はブログパーツとかアクセスカウンタとか自由に貼りたいってことなんだけど、 scriptタグを自由に書けるようにすると余裕でセッションID引っこ抜いてどっかに送信、 なんて出来てしまうから簡単に実装するわけにもいかず。 もっと言うとaタグでも、まずクリックさせる必要があるものの同じことが出来てしまうもんねー。
試してみるとはてなはscriptは禁止、aタグもJavaScriptを仕込んどくとそれが消されるようで、 対策がされているのがわかる。 livedoorブログはscriptタグが使える。 ただ、編集と公開でホストが違うので、セッションIDを別にしておけば 問題ないってことなんだろう。 にしてもRailsのデフォの_session_idみたいなわかりやすいキーじゃないのね……。 何が何なのかわからん。あーわからん。プロの世界へはまだまだ遠いなぁ。
とりあえずホストわけることにするか。それが一番確実な気がしてきた。 ちとめんどいけど、まーデザイン考えるよりは何倍も楽な作業だわ(´・ω・`)
November 26, 2006
言うこと聞かないfixtureとモデルを手で対応させる 01:40
- Permalink
- Comments (0)
- Trackbacks (0)
Rails
# dvd.rb class DVD < ActiveRecord::Base ... end
# dvds.yml secret_dvd: id: 1 ...
なんてのがあったとして、
# dvd_test.rb fixtures :dvds
としても
@secret_dvd #=> nil
て感じでフツーにだめー。
fixtures :dvds set_fixture_class :dvds => DVD # or :DVD or "DVD"
これでおk。DVD! DVD!
script/generateで生成したファイルを自動でsvk add 05:03
- Permalink
- Comments (4239)
- Trackbacks (0)
Rails, svk
script/generateに-cオプションをつけると生成されたファイルやディレクトリを 自動でsvn addしてくれるのは有名な話ですが、svkはどーしたんだってことで、 先にググれば良かったけど最近慢性的に眠いせいで頭が働かず、手が先に出た。
他にスマートな方法があるといいなぁ。 けだるすぎてググる気にならん。動悸がするお……。 寝たほうがいいんだろうけど特に眠くないしなーどうしよ。
以下のように#{RAILS_ROOT}/script/generateをいじってたら動いたみたい。
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/boot'
#require 'commands/generate'
require "#{RAILS_ROOT}/config/environment"
require 'rails_generator'
require 'rails_generator/scripts/generate'
module Rails::Generator::Options
alias _add_general_options! add_general_options!
protected
def add_general_options!(opt)
_add_general_options!(opt)
opt.on("-S", "--svk", "Modify files with svk.") { options[:svk] = true }
end
end
class Rails::Generator::Commands::Create
alias _file file
def file(relative_source, relative_destination, file_options = {}, &block)
destination = destination_path(relative_destination)
_file(relative_source, relative_destination, file_options, &block)
system("svk add #{destination}") if options[:svk]
end
alias _directory directory
def directory(relative_path)
path = destination_path(relative_path)
_directory(relative_path)
unless File.exists?(path)
system("svk add #{path}") if options[:svk]
end
end
end
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
Rails::Generator::Scripts::Generate.new.run(ARGV)
-hで見ればわかるけど、svk addするには-Sオプションをつけます。
% ./script/generate model -S a
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/a.rb
A script/../config/../app/models/a.rb
create test/unit/a_test.rb
A script/../config/../test/unit/a_test.rb
create test/fixtures/as.yml
A script/../config/../test/fixtures/as.yml
exists db/migrate
create db/migrate/005_create_as.rb
A script/../config/../db/migrate/005_create_as.rb
ktkr!!!!!!!
といってもgrepかけてそれらしいところを追ってって変更しただけなんで結構怪しい。
rails.vimでRgenerateでsvk add 05:19
rails.vimでは:Rgenerate model Bookとかやると./script/generate model Bookが走る上に .svnがあると-cオプションをつけてくれるのでsubversionにファイルを追加してくれて 激しく便利なんだけど、これがsvkだとそうはいかないのでrails.vimをちと変えるよ!
1062 let file = ""
1063 endif
1064 if !s:rubyexe("script/generate ".target.(s:usesubversion()?' -c':' -S').str) && file != ""
1065 exe "edit ".s:ra()."/".file
1066 endif
3項演算子らしきものがあるのでそこに-Sを追加。 オレオレscript/generateとの併用でsvk addしてくれます。
これ、.svnがないと無条件でsvk使おうとするんだけど、 svnもsvkも使わないのが許されるのは確か小学生までなんで大丈夫だろうきっと。 vimスクリプトには突撃したくないのでとりあえずいいよオレはこれで。 あーでもちょっとRailsった場合はウザいかも。
ちょっと元気になってきた。オレはいつ寝たらいいんだろう。 とりあえずベッドに横たわってみる。
忘れてた 06:28
- Permalink
- Comments (1854)
- Trackbacks (0)
Rails, svk
あーscript/destroy忘れてたよ。 そのうちやろう。
頭痛くなってきた。
script/destroyと同時にsvk rmとかsvk revert 09:51
- Permalink
- Comments (1863)
- Trackbacks (0)
Rails, svk
少々てこずったYO! 保証はしません。
./script/destroyを以下で置き換え。
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/boot'
#require 'commands/destroy'
require "#{RAILS_ROOT}/config/environment"
require 'rails_generator'
require 'rails_generator/scripts/destroy'
module Rails::Generator::Options
alias _add_general_options! add_general_options!
protected
def add_general_options!(opt)
_add_general_options!(opt)
opt.on("-S", "--svk", "Modify files with svk.") do
options[:svk] = `svk status`.inject({}) do |opt, e|
opt[e.split(/\s+/)[1]] = true
opt
end
end
end
end
class Rails::Generator::Commands::Destroy
def file(relative_source, relative_destination, file_options = {})
destination = destination_path(relative_destination)
if File.exists?(destination)
logger.rm relative_destination
unless options[:pretend]
if options[:svn]
# If the file has been marked to be added
# but has not yet been checked in, revert and delete
if options[:svn][relative_destination]
system("svn revert #{destination}")
FileUtils.rm(destination)
else
# If the directory is not in the status list, it
# has no modifications so we can simply remove it
system("svn rm #{destination}")
end
elsif options[:svk]
# If the file has been marked to be added
# but has not yet been checked in, revert and delete
if options[:svk][relative_destination]
system("svk revert #{destination}")
FileUtils.rm(destination)
else
# If the directory is not in the status list, it
# has no modifications so we can simply remove it
system("svk rm #{destination}")
end
else
FileUtils.rm(destination)
end
end
else
logger.missing relative_destination
return
end
end
alias_method :template, :file
def directory(relative_path)
parts = relative_path.split('/')
until parts.empty?
partial = File.join(parts)
path = destination_path(partial)
if File.exists?(path)
if Dir[File.join(path, '*')].empty?
logger.rmdir partial
unless options[:pretend]
if options[:svn]
# If the directory has been marked to be added
# but has not yet been checked in, revert and delete
if options[:svn][relative_path]
system("svn revert #{path}")
FileUtils.rmdir(path)
else
# If the directory is not in the status list, it
# has no modifications so we can simply remove it
system("svn rm #{path}")
end
elsif options[:svk]
# If the directory has been marked to be added
# but has not yet been checked in, revert and delete
if options[:svk][relative_path]
system("svk revert #{path}")
FileUtils.rmdir(path)
else
# If the directory is not in the status list, it
# has no modifications so we can simply remove it
system("svk rm #{path}")
end
else
FileUtils.rmdir(path)
end
end
else
logger.notempty partial
end
else
logger.missing partial
end
parts.pop
end
end
end
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
Rails::Generator::Scripts::Destroy.new.run(ARGV)
まんま上書きな感じ。
-Sオプションをつけるとsvk rmとかします。
% ./script/destroy model -S AA
notempty db/migrate
notempty db
rm db/migrate/001_create_aas.rb
D script/../config/../db/migrate/001_create_aas.rb
rm test/fixtures/aas.yml
D script/../config/../test/fixtures/aas.yml
rm test/unit/aa_test.rb
D script/../config/../test/unit/aa_test.rb
rm app/models/aa.rb
D script/../config/../app/models/aa.rb
rmdir test/fixtures
D script/../config/../test/fixtures/aas.yml
D script/../config/../test/fixtures
notempty test
rmdir test/unit
D script/../config/../test/unit/aa_test.rb
D script/../config/../test/unit
notempty test
rmdir app/models
D script/../config/../app/models/aa.rb
D script/../config/../app/models
notempty app
ありゃ、aliasとalias_methodがごちゃまぜだ。 動作確認めんどいからそのままにしておこう。
alias_methodは初めて知った。そうするとaliasはキモいね。もうalias使うのやめよっと。



