mirror of
https://github.com/samsonjs/blog.git
synced 2026-03-25 09:05:51 +00:00
52 lines
2.1 KiB
Markdown
52 lines
2.1 KiB
Markdown
Title: Some TextMate snippets for Rails Migrations
|
|
Date: February 18, 2006
|
|
Timestamp: 1140331680
|
|
Author: sjs
|
|
Tags: textmate, rails, hacking, rails, snippets, textmate
|
|
----
|
|
|
|
My arsenal of snippets and macros in TextMate is building as I read through the rails canon, <a href="http://www.pragmaticprogrammer.com/titles/rails/" title="Agile Web Development With Rails">Agile Web Development...</a> I'm only 150 pages in so I haven't had to add much so far because I started with the bundle found on the <a href="http://wiki.rubyonrails.org/rails/pages/TextMate">rails wiki</a>. The main ones so far are for migrations.
|
|
|
|
Initially I wrote a snippet for adding a table and one for dropping a table, but I don't want to write it twice every time! If I'm adding a table in **up** then I probably want to drop it in **down**.
|
|
|
|
What I did was create one snippet that writes both lines, then it's just a matter of cut & paste to get it in **down**. The drop_table line should be inserted in the correct method, but that doesn't seem possible. I hope I'm wrong!
|
|
|
|
Scope should be *source.ruby.rails* and the triggers I use are above the snippets.
|
|
|
|
mcdt: **M**igration **C**reate and **D**rop **T**able
|
|
|
|
create_table "${1:table}" do |t|
|
|
$0
|
|
end
|
|
${2:drop_table "$1"}
|
|
|
|
mcc: **M**igration **C**reate **C**olumn
|
|
|
|
t.column "${1:title}", :${2:string}
|
|
|
|
marc: **M**igration **A**dd and **R**emove **C**olumn
|
|
|
|
add_column "${1:table}", "${2:column}", :${3:string}
|
|
${4:remove_column "$1", "$2"}
|
|
|
|
I realize this might not be for everyone, so here are my original 4 snippets that do the work of *marc* and *mcdt*.
|
|
|
|
mct: **M**igration **C**reate **T**able
|
|
|
|
create_table "${1:table}" do |t|
|
|
$0
|
|
end
|
|
|
|
mdt: **M**igration **D**rop **T**able
|
|
|
|
drop_table "${1:table}"
|
|
|
|
mac: **M**igration **A**dd **C**olumn
|
|
|
|
add_column "${1:table}", "${2:column}", :${3:string}
|
|
|
|
mrc: **M**igration **R**remove **C**olumn
|
|
|
|
remove_column "${1:table}", "${2:column}"
|
|
|
|
I'll be adding more snippets and macros. There should be a central place where the rails bundle can be improved and extended. Maybe there is...
|