diff --git a/bundles/ruby-on-rails.tmbundle/.gitignore b/bundles/ruby-on-rails.tmbundle/.gitignore
new file mode 100644
index 000000000..8d7880ee6
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/.gitignore
@@ -0,0 +1,3 @@
+config/*.yml
+website/dist
+.DS_Store
diff --git a/bundles/ruby-on-rails.tmbundle/ABOUT b/bundles/ruby-on-rails.tmbundle/ABOUT
new file mode 100644
index 000000000..341ea0409
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/ABOUT
@@ -0,0 +1,36 @@
+== Rails Bundle 1.0 -> 2.0 SOON
+This bundle is (c) 2006 syncPEOPLE, LLC.
+As of version 1.0, it is distributed under the terms of the MIT License.
+
+http://syncpeople.com/ - We develop social interaction tools for online and real-world conferences and events.
+
+== Maintained by ==
+Dr Nic Williams
+drnicwilliams@gmail.com
+http://drnicwilliams.com
+
+== Created by ==
+Duane Johnson
+duane.johnson@gmail.com
+http://blog.inquirylabs.com/
+
+== Contributors (no doubt missing many) ==
+Sami Samhuri
+James Edward Grey II
+Michael Sheets
+Allan Odgaard
+Cliff Matthews
+Kent Siblev
+Stephen Touset
+Lawrence Pit
+Dean Strelau
+Daniel Kristensen
+Simon Jefford
+James Deville
+Stephen Bannasch
+Tom Morris
+David Lowenfels
+Sam Granieri
+Jacob Swanner
+Steve Ross
+Charles Roper
\ No newline at end of file
diff --git a/bundles/ruby-on-rails.tmbundle/CHANGELOG b/bundles/ruby-on-rails.tmbundle/CHANGELOG
new file mode 100644
index 000000000..bc9c44101
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/CHANGELOG
@@ -0,0 +1,109 @@
+[Edge] Trundle to Rails 2.0 Bundle
+Ruby on Rails bundle maintenance has been taken over by Dr Nic Williams from its initial legendary creator Duane Johnson.
+See git branch two_point_ooh for initial drive to upgrade bundle for Rails 2.0 conventions (http://github.com/drnic/ruby-on-rails-tmbundle/tree/two_point_ooh)
+
+Added so far:
+ * Snippets/Commands for:
+ * Tests
+ * assert_select (ass)
+ * assert_difference/assert_no_difference (asd/asnd)
+ * GET+POST test method stubs (deftg+deftp)
+ * posts(:) + Alt+Esc allows you to select a posts.yml fixture
+ * Controllers
+ * respond_to (rest) and respond_to(html) (Shift+Cmd+H)
+ * 'Go To View' within a respond_to will use the format/wants type as the default
+ * REMOVED: render_component snippets
+ * loggers - pass a block instead of raw string to save time if
+ logging not used (e.g. production) [Stephen Touset]
+ * redirect_to for resource paths (rep, repp, renp, renpp)
+ * render :update (ru) [Simon Jefford]
+ * Views
+ * form_for and form_for(with errors) (ff,ffe)
+ * Various form_for helpers in a drop-down list, e.g. f.text_field (f.)
+ * Various form_for helpers with own tab completion, e.g. f.text_field (fftf)
+ * link_to for resource paths (lip, lipp, linp, linpp)
+ * <% end -%> (end)
+ * for-loop (for)
+ * link_to(@model.name, @model) (ltm)
+ * Layouts
+ * javascript_include_tag - jit
+ * stylesheet_link_tag - slt
+ * Models
+ * has_many :through (hmt)
+ * association snippets give better defaults (e.g. bt + hm)
+ * validates_format_of (vf,vfif) [Dean Strelau]
+ * validates_numericality_of (vn,vnif) [Tom Morris]
+ * before/after callbacks (prefix bef/aft + 1st letter of words) [Sam Granieri]
+ * Migrations
+ * Sexy Migrations now available as "t." snippets and regular snippets [Lawrence Pit]
+ * Migration classes have own textmate scope
+ * Add/Remove Columns - the 'down' statements are in reverse
+ order [Lawrence Pit, Daniel Kristensen]
+ * Added 'Redo Last Migration' [Simon Jefford]
+ * Functional Tests
+ * assert_redirect_to for resource paths (artp, artpp, artnp, artnpp)
+ * assert(assigns(:model)) (asg)
+ * Routes
+ * named routes, resources snippets (map, mapr, maprs)
+ * catch_all (mapca) [Sam Granieri]
+ * Active Support
+ * cattr_accessor/mattr_accessor (crw/mrw) [Jacob Swanner]
+ * returning (returning) [Jacob Swanner]
+ * Language/Syntax
+ * New keywords: rescue_from, alias_method_chain, alias_attribute, delegate, respond_to [David Lowenfels, Jacob Swanner]
+ * Added rb as a valid Rails file type [James Deville]
+ * Commands
+ * Auto-completion for Foxy Fixtures
+ * html.erb is the default for new templates (backwards compatibility
+ is being worked on too)
+ * 'Go To XXX' - available for wide range of permutations.
+ Fixtures -> Models; Models -> Controllers, etc
+ * haml is a valid file extension [Steve Ross]
+ * specify alternate default file extensions for: [Steve Ross]
+ * javascript - ENV['RAILS_JS_EXT']
+ * stylesheet - ENV['RAILS_CSS_EXT']
+ * view - ENV['RAILS_VIEW_EXT']
+ * 'Call Generate Script' now accesses all a project's generators
+ * Plugins
+ * Footnote
+ * footnote-edge uses .erb for templates [Stephen Bannasch]
+ * Internals
+ * Rakefile - test runner [Steve Ross]
+ * Added generator_test
+ * Removed unnecessary misc_test
+ * script/clean_bundle_file_names - rename non-os-agnostic file names [Charles Roper]
+ * Haml support [Lawrence Pit]
+
+For thoughts and patches, email drnicwilliams@gmail.com
+
+* BLACKHOLE OF CHANGELOG *
+...
+
+* END OF BLACKHOLE *
+2006-09-28 Added "Rake Migrate to Version", changed "rake migrate" to "rake db:migrate" to remove warning message.
+2006-02-22 Changed key bindings to TextMate conventions (http://macromates.com/textmate/manual/key_bindings#conventions)
+2006-02-22 Footnotes can be turned off for specific pages:
+ e.g. render :action => 'whatever', :footnotes => false [Duane]
+2006-02-22 intelligent go to file now asks for a view file name if it doesn't exist before going there [Duane]
+2006-02-22 Fixed that intelligent go to file was not recognizing view files other than rhtml [Duane]
+2006-02-21 Generated files open automatically [Duane, Sami Samhuri]
+2006-02-21 Generate migrations works (has to be chdir to rails_root to work) [Duane]
+2006-02-21 Fixed that the footnotes plugin was doubling the /controllers/ segment [Duane, Cliff Matthews]
+2006-02-21 Fixed that the footnotes plugin was rendering for rxml and rjs pages [Duane]
+
+0.9.1 Released
+
+2006-02-21 Fixed that the footnotes plugin was breaking on redirects [Duane]
+
+0.9 Released
+
+2006-02-20 Added Migration Snippets [Sami Samhuri]
+2006-02-20 Added Rails Engines plugin [Duane]
+2006-02-20 Added double quotes around call to CocoaDialog [Kent Siblev]
+2006-02-20 Intelligent Go To File will now go to the file nearest the caret for stylesheet and javascript tags with multiple files [Cliff Matthews]
+2006-02-20 Added plugin install script bound to ctrl-option-command-\ [Duane]
+2006-02-20 Added 'plugins' directory to Support, and included textmate_footnotes plugin. [Duane]
+2006-02-20 More intelligent argument regexps for javascripts and stylesheets [Cliff Matthews]
+2006-02-20 Generate command is now a background process [Duane]
+
+0.8 Released
\ No newline at end of file
diff --git a/bundles/ruby-on-rails.tmbundle/Capfile b/bundles/ruby-on-rails.tmbundle/Capfile
new file mode 100644
index 000000000..c36d48d21
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Capfile
@@ -0,0 +1,3 @@
+load 'deploy' if respond_to?(:namespace) # cap2 differentiator
+Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }
+load 'config/deploy'
\ No newline at end of file
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Autocomplete Foreign Key Fixture Reference (habtm).tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Autocomplete Foreign Key Fixture Reference (habtm).tmCommand
new file mode 100644
index 000000000..91226b6d9
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Autocomplete Foreign Key Fixture Reference (habtm).tmCommand
@@ -0,0 +1,25 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" "${TM_BUNDLE_SUPPORT}/bin/fixture_auto_complete.rb" preserve
+ fallbackInput
+ line
+ input
+ selection
+ keyEquivalent
+ ~$
+ name
+ Autocomplete Foreign Key Fixture Reference (habtm)
+ output
+ insertAsSnippet
+ scope
+ source.yaml
+ uuid
+ 275C0B86-F735-49B6-8A22-218A8F4CC2E0
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Autocomplete Foreign Key Fixture Reference.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Autocomplete Foreign Key Fixture Reference.tmCommand
new file mode 100644
index 000000000..885e3ae88
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Autocomplete Foreign Key Fixture Reference.tmCommand
@@ -0,0 +1,25 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/fixture_auto_complete.rb"
+ fallbackInput
+ line
+ input
+ selection
+ keyEquivalent
+ ~
+ name
+ Autocomplete Foreign Key Fixture Reference
+ output
+ insertAsSnippet
+ scope
+ source.yaml, meta.rails.unit_test, meta.rails.functional_test
+ uuid
+ 0BCF0EE2-35EE-4959-A771-E74D55271D5A
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Clone Development DB to Test DB.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Clone Development DB to Test DB.tmCommand
new file mode 100644
index 000000000..254a9a6f5
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Clone Development DB to Test DB.tmCommand
@@ -0,0 +1,24 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/rake_helper.rb" db:test:clone
+
+ input
+ none
+ keyEquivalent
+ ^|
+ name
+ Clone Development DB to Test DB
+ output
+ showAsHTML
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ 6F2AB859-46E3-4FF5-A9A7-E9A813AB5DE1
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/DB Schema Dump.plist b/bundles/ruby-on-rails.tmbundle/Commands/DB Schema Dump.plist
new file mode 100644
index 000000000..b1f115057
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/DB Schema Dump.plist
@@ -0,0 +1,24 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/rake_helper.rb" db:schema:dump
+
+ input
+ none
+ keyEquivalent
+ ^|
+ name
+ Dump DB to schema.rb
+ output
+ showAsHTML
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ 310C901C-EF32-4E88-938A-804ABBF8C428
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/DB Schema Import.plist b/bundles/ruby-on-rails.tmbundle/Commands/DB Schema Import.plist
new file mode 100644
index 000000000..5ef3bf494
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/DB Schema Import.plist
@@ -0,0 +1,24 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/rake_helper.rb" db:schema:load
+
+ input
+ none
+ keyEquivalent
+ ^|
+ name
+ Load schema.rb to DB
+ output
+ showAsHTML
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ 6DEF923E-2347-46EC-AFBE-183D08E63DC1
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Generate Quick Migration.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Generate Quick Migration.tmCommand
new file mode 100644
index 000000000..82cd82399
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Generate Quick Migration.tmCommand
@@ -0,0 +1,25 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/generate_quick_migration.rb"
+ fallbackInput
+ word
+ input
+ none
+ keyEquivalent
+ ^M
+ name
+ Quick Migration
+ output
+ discard
+ scope
+ source.ruby.rails, source.yaml, text.html.ruby
+ uuid
+ D696FA2C-785A-4B73-A2F6-F750904DD7C2
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Generate.plist b/bundles/ruby-on-rails.tmbundle/Commands/Generate.plist
new file mode 100644
index 000000000..da6b64f7b
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Generate.plist
@@ -0,0 +1,24 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/generate.rb" &>/dev/null &
+
+ input
+ none
+ keyEquivalent
+ ^|
+ name
+ Call Generate Script
+ output
+ discard
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ 4904EDC7-5ED3-4132-AAB2-C2AD87C97EFE
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Go To Alternate File.plist b/bundles/ruby-on-rails.tmbundle/Commands/Go To Alternate File.plist
new file mode 100644
index 000000000..4752c78e5
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Go To Alternate File.plist
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/go_to_alternate_file.rb" controller
+ input
+ none
+ keyEquivalent
+ ~$@
+ name
+ Go to Controller
+ output
+ showAsTooltip
+ scope
+ text.html.ruby, source.ruby.rails.embedded.html, meta.rails.helper, meta.rails.functional_test, source.js, source.css, source.yaml, meta.rails.model, meta.rails.unit_test, text.haml
+ uuid
+ 9453F0B3-B946-445F-BDB0-B01DE70732FC
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Go To File on This Line.plist b/bundles/ruby-on-rails.tmbundle/Commands/Go To File on This Line.plist
new file mode 100644
index 000000000..1d1cdf0fb
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Go To File on This Line.plist
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/go_to_file_on_current_line.rb"
+ input
+ none
+ keyEquivalent
+ ~@
+ name
+ File on Current Line
+ output
+ showAsTooltip
+ scope
+ source.ruby.rails, text.html.ruby, source.ruby.rails.embedded.html, text.haml
+ uuid
+ 09BB96F2-75FD-48A7-8314-B5B56B09B477
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Go To File.plist b/bundles/ruby-on-rails.tmbundle/Commands/Go To File.plist
new file mode 100644
index 000000000..dbbe3f4b8
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Go To File.plist
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ saveActiveFile
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/go_to_alternate_file.rb"
+ input
+ none
+ keyEquivalent
+ ~@
+ name
+ Alternate File
+ output
+ showAsTooltip
+ scope
+ source.ruby.rails, text.html.ruby, source.ruby.rails.embedded.html, source.yaml, text.haml, source.css, source.js, source.sass
+ uuid
+ 0CCC8443-40F3-4BAB-9440-D737562B5F45
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Go To Functional Test.plist b/bundles/ruby-on-rails.tmbundle/Commands/Go To Functional Test.plist
new file mode 100644
index 000000000..70a3ad76f
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Go To Functional Test.plist
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/go_to_alternate_file.rb" functional_test
+ input
+ none
+ keyEquivalent
+ ~$@
+ name
+ Go to Functional Test
+ output
+ showAsTooltip
+ scope
+ meta.rails.controller, meta.rails.helper, meta.rails.model, source.yaml, meta.rails.unit_test
+ uuid
+ DFE393BE-0764-49FE-B464-6350A50921E6
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Go To Helper.plist b/bundles/ruby-on-rails.tmbundle/Commands/Go To Helper.plist
new file mode 100644
index 000000000..8f9de159a
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Go To Helper.plist
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/go_to_alternate_file.rb" helper
+ input
+ none
+ keyEquivalent
+ ~$@
+ name
+ Go to Helper
+ output
+ showAsTooltip
+ scope
+ text.html.ruby, source.ruby.rails.embedded.html, meta.rails.controller, meta.rails.model, meta.rails.unit_test, meta.rails.functional_test, text.haml
+ uuid
+ 51C9C27A-D931-49F9-B6D8-C0E7ABEC992D
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Go To Javascript.plist b/bundles/ruby-on-rails.tmbundle/Commands/Go To Javascript.plist
new file mode 100644
index 000000000..11e28b633
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Go To Javascript.plist
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/go_to_alternate_file.rb" javascript
+ input
+ none
+ keyEquivalent
+ ~$@
+ name
+ Go to Javascript
+ output
+ showAsTooltip
+ scope
+ text.html.ruby, source.ruby.rails.embedded.html, meta.rails.controller, meta.rails.helper, text.haml
+ uuid
+ B078346F-61D8-4E75-9427-80720FBC67F7
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Go To Model.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Go To Model.tmCommand
new file mode 100644
index 000000000..14cc7a96d
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Go To Model.tmCommand
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/go_to_alternate_file.rb" model
+ input
+ none
+ keyEquivalent
+ ~$@
+ name
+ Go to Model
+ output
+ showAsTooltip
+ scope
+ text.html.ruby, source.ruby.rails.embedded.html, meta.rails.helper, meta.rails.unit_test, source.js, source.css, source.yaml, meta.rails.controller, meta.rails.functional_test, text.haml
+ uuid
+ C7151BF3-7068-4344-9B09-86F3BF4A9C63
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Go To Stylesheet.plist b/bundles/ruby-on-rails.tmbundle/Commands/Go To Stylesheet.plist
new file mode 100644
index 000000000..c635608b0
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Go To Stylesheet.plist
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/go_to_alternate_file.rb" stylesheet
+ input
+ none
+ keyEquivalent
+ ~$@
+ name
+ Go to Stylesheet
+ output
+ showAsTooltip
+ scope
+ text.html.ruby, source.ruby.rails.embedded.html, meta.rails.controller, meta.rails.helper, text.haml
+ uuid
+ B207BBD4-D6AA-41E9-9530-27210F2D7B66
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Go To Unit Test.plist b/bundles/ruby-on-rails.tmbundle/Commands/Go To Unit Test.plist
new file mode 100644
index 000000000..55cd62f2f
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Go To Unit Test.plist
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/go_to_alternate_file.rb" unit_test
+ input
+ none
+ keyEquivalent
+ ~$@
+ name
+ Go to Unit Test
+ output
+ showAsTooltip
+ scope
+ meta.rails.controller, meta.rails.helper, meta.rails.model, meta.rails.functional_test, source.yaml
+ uuid
+ BDBB15A4-2824-4BEC-93A5-7475F9C46A39
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Go To View.plist b/bundles/ruby-on-rails.tmbundle/Commands/Go To View.plist
new file mode 100644
index 000000000..76ddc6f9e
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Go To View.plist
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/go_to_alternate_file.rb" view
+ input
+ none
+ keyEquivalent
+ ~$@
+ name
+ Go to View
+ output
+ showAsTooltip
+ scope
+ meta.rails.controller, meta.rails.mailer, source.js, source.css
+ uuid
+ EE862691-A624-4797-90CF-EDD39EFB2D8E
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Go to Fixture.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Go to Fixture.tmCommand
new file mode 100644
index 000000000..f7235f48e
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Go to Fixture.tmCommand
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/go_to_alternate_file.rb" fixture
+ input
+ none
+ keyEquivalent
+ ~$@
+ name
+ Go to Fixture
+ output
+ showAsTooltip
+ scope
+ meta.rails.controller, meta.rails.helper, meta.rails.model, meta.rails.unit_test, meta.rails.functional_test
+ uuid
+ 638D94A4-BDFC-4FE9-8909-9934F3FD2899
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Install Bundled Plugin.plist b/bundles/ruby-on-rails.tmbundle/Commands/Install Bundled Plugin.plist
new file mode 100644
index 000000000..a0dd47da2
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Install Bundled Plugin.plist
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/list_plugins.rb"
+ input
+ none
+ keyEquivalent
+ ^|
+ name
+ Install Plugin
+ output
+ showAsHTML
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ 46ECE243-0448-4A64-A223-27CC21E7704D
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Load Fixtures (Test DB).tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Load Fixtures (Test DB).tmCommand
new file mode 100644
index 000000000..ad2f54449
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Load Fixtures (Test DB).tmCommand
@@ -0,0 +1,24 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/rake_helper.rb" db:fixtures:load -v RAILS_ENV -a test
+
+ input
+ none
+ keyEquivalent
+ ^|
+ name
+ Load Fixtures (Test DB)
+ output
+ showAsHTML
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ F758BFD1-00CA-4742-BE71-032580080F5C
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Load Fixtures.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Load Fixtures.tmCommand
new file mode 100644
index 000000000..38e248146
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Load Fixtures.tmCommand
@@ -0,0 +1,24 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/rake_helper.rb" db:fixtures:load
+
+ input
+ none
+ keyEquivalent
+ ^|
+ name
+ Load Fixtures (Development DB)
+ output
+ showAsHTML
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ 5EEA0C71-B34B-4408-953B-F47AAD343CCC
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Make Selection in to Partial.plist b/bundles/ruby-on-rails.tmbundle/Commands/Make Selection in to Partial.plist
new file mode 100644
index 000000000..0d9d2230b
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Make Selection in to Partial.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ beforeRunningCommand
+ saveModifiedFiles
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/create_partial_from_selection.rb"
+
+ fallbackInput
+ line
+ input
+ selection
+ keyEquivalent
+ ^H
+ name
+ Create Partial From Selection
+ output
+ replaceSelectedText
+ scope
+ source.ruby.rails, text.html.ruby, text.haml
+ uuid
+ 1DD8A214-1C97-45BA-ADEE-8F888DDE8570
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Migrate to Previous Version.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Migrate to Previous Version.tmCommand
new file mode 100644
index 000000000..eebc5b41a
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Migrate to Previous Version.tmCommand
@@ -0,0 +1,29 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+
+# Find the previous version number from the schema.rb file
+export PREVIOUS=`grep 'Schema\.define' "$TM_PROJECT_DIRECTORY/db/schema.rb" | ruby -e 'print $stdin.read.scan(/\d+/).first.to_i - 1'`
+
+# Migrate database to the previous version
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/rake_helper.rb" db:migrate -v VERSION -a $PREVIOUS
+
+ input
+ none
+ keyEquivalent
+ ^|
+ name
+ Migrate to Previous Version
+ output
+ showAsHTML
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ 9A1AE6BA-8350-4AB7-B5BD-969A7E64CF29
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Rake Migrate to Version.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Rake Migrate to Version.tmCommand
new file mode 100644
index 000000000..523171498
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Rake Migrate to Version.tmCommand
@@ -0,0 +1,28 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+
+# Find the current version number from the schema.rb file
+export CURRENT=`grep 'Schema\.define' "$TM_PROJECT_DIRECTORY/db/schema.rb" | ruby -e 'print $stdin.read.scan(/\d+/).first'`
+
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/rake_helper.rb" db:migrate -q "Migrate to which version? (Current version: $CURRENT)" -v VERSION
+
+ input
+ none
+ keyEquivalent
+ ^|
+ name
+ Migrate to Version ...
+ output
+ showAsHTML
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ 07C696F8-79F5-4E0B-9EE9-03B693A54ABB
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Rake Migrate.plist b/bundles/ruby-on-rails.tmbundle/Commands/Rake Migrate.plist
new file mode 100644
index 000000000..dda96db82
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Rake Migrate.plist
@@ -0,0 +1,24 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/rake_helper.rb" db:migrate
+
+ input
+ none
+ keyEquivalent
+ ^|
+ name
+ Migrate to Current
+ output
+ showAsHTML
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ 985F56D4-82ED-4C45-8250-2ECCFC71957E
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Redo Last Migration.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Redo Last Migration.tmCommand
new file mode 100644
index 000000000..04ea67a7b
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Redo Last Migration.tmCommand
@@ -0,0 +1,24 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/rake_helper.rb" db:migrate:redo
+
+ input
+ none
+ keyEquivalent
+ ^|
+ name
+ Redo Last Migration
+ output
+ showAsHTML
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ CFDA9F62-D071-4E0F-AD10-66AE0729FFCF
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Show DB Schema.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Show DB Schema.tmCommand
new file mode 100644
index 000000000..345b00a9f
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Show DB Schema.tmCommand
@@ -0,0 +1,24 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/show_schema.rb"
+
+ input
+ none
+ keyEquivalent
+ ^@S
+ name
+ Show DB Schema for Current Class
+ output
+ showAsTooltip
+ scope
+ source.ruby.rails
+ uuid
+ 1970AE74-3949-40B3-B263-727AA3FF167A
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Test All.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Test All.tmCommand
new file mode 100644
index 000000000..cf7084c3c
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Test All.tmCommand
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/rake_helper.rb" test
+ input
+ none
+ keyEquivalent
+ ^\
+ name
+ Test All
+ output
+ showAsHTML
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ DC549A45-D9B0-11DC-94E9-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Test Functionals.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Test Functionals.tmCommand
new file mode 100644
index 000000000..19bbec320
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Test Functionals.tmCommand
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/rake_helper.rb" test:functionals
+ input
+ none
+ keyEquivalent
+ ^\
+ name
+ Test Functionals
+ output
+ showAsHTML
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ F4EA552D-D9B0-11DC-94E9-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Test Integration.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Test Integration.tmCommand
new file mode 100644
index 000000000..64143d0e7
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Test Integration.tmCommand
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/rake_helper.rb" test:integration
+ input
+ none
+ keyEquivalent
+ ^\
+ name
+ Test Integration
+ output
+ showAsHTML
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ 04A30A4D-D9B1-11DC-94E9-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Test Plugins.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Test Plugins.tmCommand
new file mode 100644
index 000000000..9cbe5f2aa
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Test Plugins.tmCommand
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/rake_helper.rb" test:plugins
+ input
+ none
+ keyEquivalent
+ ^\
+ name
+ Test Plugins
+ output
+ showAsHTML
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ 0D966168-D9B1-11DC-94E9-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Test Recent.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Test Recent.tmCommand
new file mode 100644
index 000000000..cb0e0e5f3
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Test Recent.tmCommand
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/rake_helper.rb" test:recent
+ input
+ none
+ keyEquivalent
+ ^\
+ name
+ Test Recent
+ output
+ showAsHTML
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ 190401C2-D9B1-11DC-94E9-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Test Uncommitted.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Test Uncommitted.tmCommand
new file mode 100644
index 000000000..c9b58f158
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Test Uncommitted.tmCommand
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/rake_helper.rb" test:uncommitted
+ input
+ none
+ keyEquivalent
+ ^\
+ name
+ Test Uncommitted
+ output
+ showAsHTML
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ 212C3047-D9B1-11DC-94E9-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/Test Units.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/Test Units.tmCommand
new file mode 100644
index 000000000..f77a38ed9
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/Test Units.tmCommand
@@ -0,0 +1,23 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ RUBYLIB="$TM_BUNDLE_SUPPORT/lib:$RUBYLIB"
+"${TM_RUBY:=ruby}" -- "${TM_BUNDLE_SUPPORT}/bin/rake_helper.rb" test:units
+ input
+ none
+ keyEquivalent
+ ^\
+ name
+ Test Units
+ output
+ showAsHTML
+ scope
+ source.ruby.rails, source.yaml
+ uuid
+ 2C60CBA1-D9B1-11DC-94E9-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Commands/View demo help.tmCommand b/bundles/ruby-on-rails.tmbundle/Commands/View demo help.tmCommand
new file mode 100644
index 000000000..c05c29c67
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Commands/View demo help.tmCommand
@@ -0,0 +1,27 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ . "$TM_SUPPORT_PATH/lib/webpreview.sh"
+html_header "Ruby on Rails Bundle Help" "Ruby on Rails"
+cat "$TM_BUNDLE_SUPPORT/../website/demo.html"
+html_footer
+
+
+ input
+ none
+ keyEquivalent
+ ^h
+ name
+ View demo help
+ output
+ showAsHTML
+ scope
+ source.ruby.rails
+ uuid
+ 964436B8-E578-11DC-8177-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/DragCommands/Require Rails File.tmDragCommand b/bundles/ruby-on-rails.tmbundle/DragCommands/Require Rails File.tmDragCommand
new file mode 100644
index 000000000..72494dd01
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/DragCommands/Require Rails File.tmDragCommand
@@ -0,0 +1,41 @@
+
+
+
+
+ beforeRunningCommand
+ nop
+ command
+ #!/usr/bin/env ruby
+
+file_path = ENV['TM_DROPPED_FILE'].gsub(/\.rb$/, '')
+full_file_path = File.expand_path(file_path)
+relative_path = nil
+known_load_path = %w[app/controllers app/models app/helpers app config lib]
+known_load_path.each do |path|
+ if full_file_path =~ %r{^#{File.join(ENV['TM_PROJECT_DIRECTORY'], path)}/(.*)}
+ relative_path = $1
+ break
+ end
+end
+if relative_path
+ puts "require '#{relative_path}'"
+else
+ puts "require File.dirname(__FILE__) + '/#{file_path}'"
+end
+
+ draggedFileExtensions
+
+ rb
+
+ input
+ selection
+ name
+ Require Rails File
+ output
+ insertAsSnippet
+ scope
+ source.ruby.rails
+ uuid
+ 56151E60-589F-4CE7-8062-3E087732E2F1
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/LICENSE b/bundles/ruby-on-rails.tmbundle/LICENSE
new file mode 100644
index 000000000..ad7b671f5
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/LICENSE
@@ -0,0 +1,7 @@
+Copyright (c) 2006 syncPEOPLE, LLC.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Column.tmMacro b/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Column.tmMacro
new file mode 100644
index 000000000..5b9fb7152
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Column.tmMacro
@@ -0,0 +1,44 @@
+
+
+
+
+ commands
+
+
+ command
+ deleteWordLeft:
+
+
+ command
+ moveToBeginningOfLine:
+
+
+ command
+ moveToEndOfDocumentAndModifySelection:
+
+
+ argument
+
+ command
+ intelligent_migration_snippet.rb add_remove_column
+ input
+ selection
+ output
+ insertAsSnippet
+
+ command
+ executeCommandWithOptions:
+
+
+ name
+ Add / Remove Column
+ scope
+ meta.rails.migration - meta.rails.migration.create_table - meta.rails.migration.change_table
+ scopeType
+ local
+ tabTrigger
+ mcol
+ uuid
+ 18C76913-061C-4D65-866D-67AA3724AFEF
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Index.tmMacro b/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Index.tmMacro
new file mode 100644
index 000000000..e52e0de03
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Index.tmMacro
@@ -0,0 +1,44 @@
+
+
+
+
+ commands
+
+
+ command
+ deleteWordLeft:
+
+
+ command
+ moveToBeginningOfLine:
+
+
+ command
+ moveToEndOfDocumentAndModifySelection:
+
+
+ argument
+
+ command
+ intelligent_migration_snippet.rb add_remove_index
+ input
+ selection
+ output
+ insertAsSnippet
+
+ command
+ executeCommandWithOptions:
+
+
+ name
+ Add / Remove Index
+ scope
+ meta.rails.migration - meta.rails.migration.create_table - meta.rails.migration.change_table
+ scopeType
+ local
+ tabTrigger
+ mind
+ uuid
+ 95F83E1D-5B03-424F-8BEC-8AF66C8939BC
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Named Index.tmMacro b/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Named Index.tmMacro
new file mode 100644
index 000000000..4fab72985
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Named Index.tmMacro
@@ -0,0 +1,44 @@
+
+
+
+
+ commands
+
+
+ command
+ deleteWordLeft:
+
+
+ command
+ moveToBeginningOfLine:
+
+
+ command
+ moveToEndOfDocumentAndModifySelection:
+
+
+ argument
+
+ command
+ intelligent_migration_snippet.rb add_remove_named_index
+ input
+ selection
+ output
+ insertAsSnippet
+
+ command
+ executeCommandWithOptions:
+
+
+ name
+ Add / Remove Named Index
+ scope
+ meta.rails.migration - meta.rails.migration.create_table - meta.rails.migration.change_table
+ scopeType
+ local
+ tabTrigger
+ mind
+ uuid
+ A7F692C1-778A-48B8-945E-573568BA0403
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Several Columns (marcc).tmMacro b/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Several Columns (marcc).tmMacro
new file mode 100644
index 000000000..81cdce6f1
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Several Columns (marcc).tmMacro
@@ -0,0 +1,44 @@
+
+
+
+
+ commands
+
+
+ command
+ deleteWordLeft:
+
+
+ command
+ moveToBeginningOfLine:
+
+
+ command
+ moveToEndOfDocumentAndModifySelection:
+
+
+ argument
+
+ command
+ intelligent_migration_snippet.rb add_remove_column_continue
+ input
+ selection
+ output
+ insertAsSnippet
+
+ command
+ executeCommandWithOptions:
+
+
+ name
+ Add / Remove Several Columns (marcc)
+ scope
+ meta.rails.migration - meta.rails.migration.create_table - meta.rails.migration.change_table
+ scopeType
+ local
+ tabTrigger
+ marcc
+ uuid
+ 27A6C58A-896B-4956-BA81-D671A2EF9C7D
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Several Columns.tmMacro b/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Several Columns.tmMacro
new file mode 100644
index 000000000..ed6781461
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Several Columns.tmMacro
@@ -0,0 +1,44 @@
+
+
+
+
+ commands
+
+
+ command
+ deleteWordLeft:
+
+
+ command
+ moveToBeginningOfLine:
+
+
+ command
+ moveToEndOfDocumentAndModifySelection:
+
+
+ argument
+
+ command
+ intelligent_migration_snippet.rb add_remove_column_continue
+ input
+ selection
+ output
+ insertAsSnippet
+
+ command
+ executeCommandWithOptions:
+
+
+ name
+ Add / Remove Several Columns
+ scope
+ meta.rails.migration - meta.rails.migration.create_table - meta.rails.migration.change_table
+ scopeType
+ local
+ tabTrigger
+ mcol
+ uuid
+ 7BC860E6-7561-4E6E-983B-507D7A6F6228
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Unique Index.tmMacro b/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Unique Index.tmMacro
new file mode 100644
index 000000000..e41228046
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Macros/Add %3A Remove Unique Index.tmMacro
@@ -0,0 +1,44 @@
+
+
+
+
+ commands
+
+
+ command
+ deleteWordLeft:
+
+
+ command
+ moveToBeginningOfLine:
+
+
+ command
+ moveToEndOfDocumentAndModifySelection:
+
+
+ argument
+
+ command
+ intelligent_migration_snippet.rb add_remove_unique_index
+ input
+ selection
+ output
+ insertAsSnippet
+
+ command
+ executeCommandWithOptions:
+
+
+ name
+ Add / Remove Unique Index
+ scope
+ meta.rails.migration - meta.rails.migration.create_table - meta.rails.migration.change_table
+ scopeType
+ local
+ tabTrigger
+ mind
+ uuid
+ 33057A79-677B-4DFB-99D4-1492778BDDC6
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Macros/Change : Change Table.tmMacro b/bundles/ruby-on-rails.tmbundle/Macros/Change : Change Table.tmMacro
new file mode 100644
index 000000000..48238093b
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Macros/Change : Change Table.tmMacro
@@ -0,0 +1,44 @@
+
+
+
+
+ commands
+
+
+ command
+ deleteWordLeft:
+
+
+ command
+ moveToBeginningOfLine:
+
+
+ command
+ moveToEndOfDocumentAndModifySelection:
+
+
+ argument
+
+ command
+ intelligent_migration_snippet.rb change_change_table
+ input
+ selection
+ output
+ insertAsSnippet
+
+ command
+ executeCommandWithOptions:
+
+
+ name
+ Change / Change Table
+ scope
+ meta.rails.migration - meta.rails.migration.create_table - meta.rails.migration.change_table
+ scopeType
+ local
+ tabTrigger
+ mtab
+ uuid
+ 20FC02C5-32A3-4F20-B163-FF75C9FDFABF
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Macros/Create %3A Drop Table.tmMacro b/bundles/ruby-on-rails.tmbundle/Macros/Create %3A Drop Table.tmMacro
new file mode 100644
index 000000000..b8a2e24e3
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Macros/Create %3A Drop Table.tmMacro
@@ -0,0 +1,44 @@
+
+
+
+
+ commands
+
+
+ command
+ deleteWordLeft:
+
+
+ command
+ moveToBeginningOfLine:
+
+
+ command
+ moveToEndOfDocumentAndModifySelection:
+
+
+ argument
+
+ command
+ intelligent_migration_snippet.rb create_drop_table
+ input
+ selection
+ output
+ insertAsSnippet
+
+ command
+ executeCommandWithOptions:
+
+
+ name
+ Create / Drop Table
+ scope
+ meta.rails.migration - meta.rails.migration.create_table - meta.rails.migration.change_table
+ scopeType
+ local
+ tabTrigger
+ mtab
+ uuid
+ 25F8F5D8-2BD1-45D8-8B2A-9F2EA4F73AA2
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Macros/Drop %3A Create Table.tmMacro b/bundles/ruby-on-rails.tmbundle/Macros/Drop %3A Create Table.tmMacro
new file mode 100644
index 000000000..5d7dfb8d4
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Macros/Drop %3A Create Table.tmMacro
@@ -0,0 +1,48 @@
+
+
+
+
+ commands
+
+
+ command
+ moveToBeginningOfLine:
+
+
+ command
+ moveToEndOfDocumentAndModifySelection:
+
+
+ argument
+
+ command
+ insert_add_column_or_create_table.rb
+ input
+ selection
+ output
+ replaceSelectedText
+
+ command
+ executeCommandWithOptions:
+
+
+ command
+ moveToBeginningOfLine:
+
+
+ command
+ moveToEndOfLine:
+
+
+ name
+ Drop / Create Table (Second Half)
+ scope
+ meta.rails.migration - meta.rails.migration.create_table - meta.rails.migration.change_table
+ scopeType
+ local
+ tabTrigger
+ [press tab twice to generate create_table]
+ uuid
+ A2135370-67A1-488D-B43C-B4F221127C2F
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Macros/Remove %3A Add Column.tmMacro b/bundles/ruby-on-rails.tmbundle/Macros/Remove %3A Add Column.tmMacro
new file mode 100644
index 000000000..195fd3c59
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Macros/Remove %3A Add Column.tmMacro
@@ -0,0 +1,48 @@
+
+
+
+
+ commands
+
+
+ command
+ moveToBeginningOfLine:
+
+
+ command
+ moveToEndOfDocumentAndModifySelection:
+
+
+ argument
+
+ command
+ insert_add_column_or_create_table.rb
+ input
+ selection
+ output
+ replaceSelectedText
+
+ command
+ executeCommandWithOptions:
+
+
+ command
+ moveToBeginningOfLine:
+
+
+ command
+ moveToEndOfLine:
+
+
+ name
+ Remove / Add Column (Second Half)
+ scope
+ meta.rails.migration - meta.rails.migration.create_table - meta.rails.migration.change_table
+ scopeType
+ local
+ tabTrigger
+ [press tab twice to generate add_column]
+ uuid
+ 809BCA42-5C49-4B08-B3C4-BB773036C086
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Macros/Rename %3A Rename Several Columns (mncc).tmMacro b/bundles/ruby-on-rails.tmbundle/Macros/Rename %3A Rename Several Columns (mncc).tmMacro
new file mode 100644
index 000000000..d97a9c2f3
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Macros/Rename %3A Rename Several Columns (mncc).tmMacro
@@ -0,0 +1,44 @@
+
+
+
+
+ commands
+
+
+ command
+ deleteWordLeft:
+
+
+ command
+ moveToBeginningOfLine:
+
+
+ command
+ moveToEndOfDocumentAndModifySelection:
+
+
+ argument
+
+ command
+ intelligent_migration_snippet.rb rename_column_continue
+ input
+ selection
+ output
+ insertAsSnippet
+
+ command
+ executeCommandWithOptions:
+
+
+ name
+ Rename / Rename Several Columns (mncc)
+ scope
+ meta.rails.migration - meta.rails.migration.create_table - meta.rails.migration.change_table
+ scopeType
+ local
+ tabTrigger
+ mncc
+ uuid
+ 04A86178-71B1-430A-A06D-DFF7C9A338B5
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Macros/Rename %3A Rename Several Columns.tmMacro b/bundles/ruby-on-rails.tmbundle/Macros/Rename %3A Rename Several Columns.tmMacro
new file mode 100644
index 000000000..d35cfc368
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Macros/Rename %3A Rename Several Columns.tmMacro
@@ -0,0 +1,44 @@
+
+
+
+
+ commands
+
+
+ command
+ deleteWordLeft:
+
+
+ command
+ moveToBeginningOfLine:
+
+
+ command
+ moveToEndOfDocumentAndModifySelection:
+
+
+ argument
+
+ command
+ intelligent_migration_snippet.rb rename_column_continue
+ input
+ selection
+ output
+ insertAsSnippet
+
+ command
+ executeCommandWithOptions:
+
+
+ name
+ Rename / Rename Several Columns
+ scope
+ meta.rails.migration - meta.rails.migration.create_table - meta.rails.migration.change_table
+ scopeType
+ local
+ tabTrigger
+ mcol
+ uuid
+ F03162DE-9DB6-417B-9DD7-52D9F11EA736
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Macros/Rename Column.tmMacro b/bundles/ruby-on-rails.tmbundle/Macros/Rename Column.tmMacro
new file mode 100644
index 000000000..36cf7651b
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Macros/Rename Column.tmMacro
@@ -0,0 +1,44 @@
+
+
+
+
+ commands
+
+
+ command
+ deleteWordLeft:
+
+
+ command
+ moveToBeginningOfLine:
+
+
+ command
+ moveToEndOfDocumentAndModifySelection:
+
+
+ argument
+
+ command
+ intelligent_migration_snippet.rb rename_column
+ input
+ selection
+ output
+ insertAsSnippet
+
+ command
+ executeCommandWithOptions:
+
+
+ name
+ Rename / Rename Column
+ scope
+ meta.rails.migration - meta.rails.migration.create_table - meta.rails.migration.change_table
+ scopeType
+ local
+ tabTrigger
+ mcol
+ uuid
+ AC50762C-DE40-4EB9-9A22-2F6AF2EA4EA3
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Macros/Rename Table.tmMacro b/bundles/ruby-on-rails.tmbundle/Macros/Rename Table.tmMacro
new file mode 100644
index 000000000..900da4b9f
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Macros/Rename Table.tmMacro
@@ -0,0 +1,44 @@
+
+
+
+
+ commands
+
+
+ command
+ deleteWordLeft:
+
+
+ command
+ moveToBeginningOfLine:
+
+
+ command
+ moveToEndOfDocumentAndModifySelection:
+
+
+ argument
+
+ command
+ intelligent_migration_snippet.rb rename_table
+ input
+ selection
+ output
+ insertAsSnippet
+
+ command
+ executeCommandWithOptions:
+
+
+ name
+ Rename / Rename Table
+ scope
+ meta.rails.migration - meta.rails.migration.create_table - meta.rails.migration.change_table
+ scopeType
+ local
+ tabTrigger
+ mtab
+ uuid
+ FD8CC811-2AD3-480F-B975-DF959DC96C67
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Preferences/Template (ERB).tmPreferences b/bundles/ruby-on-rails.tmbundle/Preferences/Template (ERB).tmPreferences
new file mode 100644
index 000000000..613fe5663
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Preferences/Template (ERB).tmPreferences
@@ -0,0 +1,48 @@
+
+
+
+
+ name
+ Template (ERB)
+ scope
+ text.html.ruby
+ settings
+
+ shellVariables
+
+
+ name
+ TM_RAILS_TEMPLATE_START_RUBY_EXPR
+ value
+ <%=
+
+
+ name
+ TM_RAILS_TEMPLATE_END_RUBY_EXPR
+ value
+ %>
+
+
+ name
+ TM_RAILS_TEMPLATE_START_RUBY_INLINE
+ value
+ <%
+
+
+ name
+ TM_RAILS_TEMPLATE_END_RUBY_INLINE
+ value
+ -%>
+
+
+ name
+ TM_RAILS_TEMPLATE_END_RUBY_BLOCK
+ value
+ <% end -%>
+
+
+
+ uuid
+ 87EF33FE-E918-11DC-A399-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Preferences/Template (Haml).tmPreferences b/bundles/ruby-on-rails.tmbundle/Preferences/Template (Haml).tmPreferences
new file mode 100644
index 000000000..c0ab0b814
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Preferences/Template (Haml).tmPreferences
@@ -0,0 +1,48 @@
+
+
+
+
+ name
+ Template (Haml)
+ scope
+ text.haml
+ settings
+
+ shellVariables
+
+
+ name
+ TM_RAILS_TEMPLATE_START_RUBY_EXPR
+ value
+ =
+
+
+ name
+ TM_RAILS_TEMPLATE_END_RUBY_EXPR
+ value
+
+
+
+ name
+ TM_RAILS_TEMPLATE_START_RUBY_INLINE
+ value
+ -
+
+
+ name
+ TM_RAILS_TEMPLATE_END_RUBY_INLINE
+ value
+
+
+
+ name
+ TM_RAILS_TEMPLATE_END_RUBY_BLOCK
+ value
+
+
+
+
+ uuid
+ C0FD2646-E924-11DC-A399-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/README b/bundles/ruby-on-rails.tmbundle/README
new file mode 100644
index 000000000..8993ecb1c
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/README
@@ -0,0 +1,38 @@
+TextMate bundle for Ruby on Rails development
+
+GET IT NOW: with Rails 2.0 support.
+
+Rails 2.0 (copied from CHANGELOG)
+
+* Snippets/Commands for:
+ * Tests
+ * assert_select (ass)
+ * assert_difference/assert_no_difference (asd/asnd)
+ * GET+POST test method stubs (defg+defp)
+ * Controllers
+ * respond_to (rst)
+ * REMOVED: render_component snippets
+ * loggers - pass a block instead of raw string to save time if logging not used (e.g. production) [thx Stephen Touset]
+ * redirect_to for resource paths (rep, repp, renp, renpp)
+ * render :update (ru) [thx Simon Jefford]
+ * Views
+ * form_for (ff)
+ * link_to for resource paths (lip, lipp, linp, linpp)
+ * <% end -%> (end)
+ * Models
+ * has_many :though (hmt)
+ * association snippets give better defaults (e.g. bt + hm)
+ * validates_format_of (vf,vfif) [thx Dean Strelau]
+ * Migrations
+ * Sexy Migrations now available as "t." snippets [thx Lawrence Pit]
+ * Migration classes have own textmate scope
+ * Add/Remove Columns - the 'down' statements are in reverse order [thx Lawrence Pit, Daniel Kristensen]
+* Language/Syntax
+ * New keywords: rescue_from
+ * Added rb as a valid Rails file type [thx James Deville]
+* Commands
+ * html.erb is the default for new templates (backwards compatibility is being worked on too)
+* Plugins
+ * Footnote
+ * footnote-edge uses .erb for templates [thx Stephen Bannasch]
+
diff --git a/bundles/ruby-on-rails.tmbundle/Rakefile b/bundles/ruby-on-rails.tmbundle/Rakefile
new file mode 100644
index 000000000..ecab394b6
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Rakefile
@@ -0,0 +1,19 @@
+require 'rubygems'
+require 'rake'
+require 'rake/testtask'
+
+APP_VERSION="2.0.0"
+APP_NAME='Ruby on Rails.tmbundle'
+APP_ROOT=File.dirname(__FILE__)
+
+RUBY_APP='ruby'
+
+desc "TMBundle Test Task"
+task :default => [ :test ]
+Rake::TestTask.new { |t|
+ t.libs << "test"
+ t.pattern = 'Support/test/*_test.rb'
+ t.verbose = true
+ t.warning = false
+}
+Dir['tasks/**/*.rake'].each { |file| load file }
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/$LABEL.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/$LABEL.tmSnippet
new file mode 100644
index 000000000..9016c98dc
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/$LABEL.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ \$LABEL
+ name
+ $LABEL
+ scope
+ source.yaml
+ tabTrigger
+ $L
+ uuid
+ 786980D8-FA69-4542-85A3-5E48CFAA6814
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/%3C%= Fixtures_identify(%3Asymbol) %%3E.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/%3C%= Fixtures_identify(%3Asymbol) %%3E.tmSnippet
new file mode 100644
index 000000000..f171943ab
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/%3C%= Fixtures_identify(%3Asymbol) %%3E.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}Fixtures.identify(:${1:name})${TM_RAILS_TEMPLATE_END_RUBY_EXPR}$0
+ name
+ <%= Fixtures.identify(:symbol) %>
+ scope
+ source.yaml
+ tabTrigger
+ fi
+ uuid
+ 9671EB7A-89D6-4C23-914F-88CBEE0D177A
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/180 rails form_tag.plist b/bundles/ruby-on-rails.tmbundle/Snippets/180 rails form_tag.plist
new file mode 100644
index 000000000..af4e443a2
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/180 rails form_tag.plist
@@ -0,0 +1,18 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_INLINE}form_tag(${1::action => "${5:update}"}${6:, {:${8:class} => "${9:form}"\}}) do${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ $0
+${TM_RAILS_TEMPLATE_END_RUBY_BLOCK}
+ name
+ form_tag
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ ft
+ uuid
+ F0F6DACA-6A0B-11D9-BDC2-000D932CD5BA
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Create binary column.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/Create binary column.tmSnippet
new file mode 100644
index 000000000..1415d5095
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Create binary column.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.binary :${1:title}${2:, :limit => ${3:2}.megabytes}
+$0
+ name
+ Table column binary
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ tcbi
+ uuid
+ 5E9B8B0E-D532-11DC-BD8E-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Create boolean column.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/Create boolean column.tmSnippet
new file mode 100644
index 000000000..80789efac
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Create boolean column.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.boolean :${1:title}
+$0
+ name
+ Table column boolean
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ tcb
+ uuid
+ 967093B4-D532-11DC-BD8E-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Create controller class.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/Create controller class.tmSnippet
new file mode 100644
index 000000000..a6889304a
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Create controller class.tmSnippet
@@ -0,0 +1,25 @@
+
+
+
+
+ content
+ class ${1:Model}Controller < ApplicationController
+ before_filter :find_${2:model}
+
+ $0
+
+ private
+ def find_${2}
+ @$2 = ${3:$1}.find(params[:id]) if params[:id]
+ end
+end
+ name
+ Create controller class
+ scope
+ source.ruby
+ tabTrigger
+ cla
+ uuid
+ 4B3F798E-E3B6-48C8-8C2F-CB8631011638
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Create date column.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/Create date column.tmSnippet
new file mode 100644
index 000000000..6964d0474
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Create date column.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.date :${1:title}
+$0
+ name
+ Table column date
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ tcda
+ uuid
+ 56276686-D532-11DC-BD8E-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Create datetime column.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/Create datetime column.tmSnippet
new file mode 100644
index 000000000..2e69fe4b7
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Create datetime column.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.datetime :${1:title}
+$0
+ name
+ Table column datetime
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ tcdt
+ uuid
+ D6CBCA96-D52F-11DC-BD8E-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Create decimal column.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/Create decimal column.tmSnippet
new file mode 100644
index 000000000..82e9703e4
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Create decimal column.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.decimal :${1:title}${2:${3:, :precision => ${4:10}}${5:, :scale => ${6:2}}}
+$0
+ name
+ Table column decimal
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ tcd
+ uuid
+ 93A16768-D52E-11DC-BD8E-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Create float column.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/Create float column.tmSnippet
new file mode 100644
index 000000000..abd80a958
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Create float column.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.float :${1:title}
+$0
+ name
+ Table column float
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ tcf
+ uuid
+ 8AF989C4-D52E-11DC-BD8E-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Create functional test class.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/Create functional test class.tmSnippet
new file mode 100644
index 000000000..3ea76b2c5
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Create functional test class.tmSnippet
@@ -0,0 +1,21 @@
+
+
+
+
+ content
+ require File.dirname(__FILE__) + '/../test_helper'
+
+class ${1:Model}ControllerTest < ActionController::TestCase
+ deft$0
+end
+
+ name
+ Create functional test class
+ scope
+ source.ruby
+ tabTrigger
+ cla
+ uuid
+ F60D0630-CBF5-4283-9D20-FA46C787A88D
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Create integer column.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/Create integer column.tmSnippet
new file mode 100644
index 000000000..aafb6e0ed
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Create integer column.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.integer :${1:title}
+$0
+ name
+ Table column integer
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ tci
+ uuid
+ 729D559E-D52D-11DC-BD8E-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Create lock_version column.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/Create lock_version column.tmSnippet
new file mode 100644
index 000000000..362518c52
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Create lock_version column.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.integer :lock_version, :null => false, :default => 0
+$0
+ name
+ Table column lock_version
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ tcl
+ uuid
+ FC2523C1-D532-11DC-BD8E-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Create references column.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/Create references column.tmSnippet
new file mode 100644
index 000000000..85c7d6429
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Create references column.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.references :${1:taggable}${2:, :polymorphic => ${3:{ :default => '${4:Photo}' \}}}
+$0
+ name
+ Table column(s) references
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ tcr
+ uuid
+ EDA6568B-D533-11DC-BD8E-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Create string column.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/Create string column.tmSnippet
new file mode 100644
index 000000000..f9a589e06
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Create string column.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.string :${1:title}
+$0
+ name
+ Table column string
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ tcs
+ uuid
+ 377BF814-D52D-11DC-BD8E-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Create text column.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/Create text column.tmSnippet
new file mode 100644
index 000000000..d76545ad5
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Create text column.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.text :${1:title}
+$0
+ name
+ Table column text
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ tct
+ uuid
+ 6A9D4C30-D52D-11DC-BD8E-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Create time column.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/Create time column.tmSnippet
new file mode 100644
index 000000000..08baf008d
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Create time column.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.time :${1:title}
+$0
+ name
+ Table column time
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ tcti
+ uuid
+ 4F5DDD37-D532-11DC-BD8E-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Create timestamp column.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/Create timestamp column.tmSnippet
new file mode 100644
index 000000000..4af537cc8
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Create timestamp column.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.timestamp :${1:title}
+$0
+ name
+ Table column timestamp
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ tcts
+ uuid
+ 4600CE20-D532-11DC-BD8E-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Create timestamps columns.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/Create timestamps columns.tmSnippet
new file mode 100644
index 000000000..a59d2fcae
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Create timestamps columns.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.timestamps
+$0
+ name
+ Table column timestamps
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ tctss
+ uuid
+ E0C8FDC4-D532-11DC-BD8E-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Migration Create Column (mcc).plist b/bundles/ruby-on-rails.tmbundle/Snippets/Migration Create Column (mcc).plist
new file mode 100644
index 000000000..8d82b60e6
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Migration Create Column (mcc).plist
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.column ${1:title}, :${2:string}
+$0
+ name
+ Create Column in Table
+ scope
+ meta.rails.migration.create_table
+ tabTrigger
+ mcol
+ uuid
+ 7592CA99-75D7-48B6-9133-00B9F148FF43
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Migration Create Column Continue (mccc).plist b/bundles/ruby-on-rails.tmbundle/Snippets/Migration Create Column Continue (mccc).plist
new file mode 100644
index 000000000..cbe15cdf9
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Migration Create Column Continue (mccc).plist
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.column ${1:title}, :${2:string}
+mccc$0
+ name
+ Create Several Columns in Table
+ scope
+ meta.rails.migration.create_table
+ tabTrigger
+ mccc
+ uuid
+ 67FD2F8F-5F25-45F2-A451-2F39977A9EDE
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Migration Drop Create Table (mdct).plist b/bundles/ruby-on-rails.tmbundle/Snippets/Migration Drop Create Table (mdct).plist
new file mode 100644
index 000000000..465ca0c7f
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Migration Drop Create Table (mdct).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ drop_table :${1:table}${2: [press tab twice to generate create_table]}
+ name
+ Drop / Create Table
+ scope
+ meta.rails.migration - meta.rails.migration.create_table - meta.rails.migration.change_table
+ tabTrigger
+ mtab
+ uuid
+ 20375601-B13F-4314-B8E4-362706566636
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Migration Remove and Add Column (mrac).plist b/bundles/ruby-on-rails.tmbundle/Snippets/Migration Remove and Add Column (mrac).plist
new file mode 100644
index 000000000..c94410f6f
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Migration Remove and Add Column (mrac).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ remove_column :${1:table}, :${2:column}${3: [press tab twice to generate add_column]}
+ name
+ Remove / Add Column
+ scope
+ meta.rails.migration - meta.rails.migration.create_table - meta.rails.migration.change_table
+ tabTrigger
+ mcol
+ uuid
+ 16A705EB-10DC-42B5-9FF2-377E206421DC
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/RAILS_DEFAULT_LOGGER.debug (rdb).plist b/bundles/ruby-on-rails.tmbundle/Snippets/RAILS_DEFAULT_LOGGER.debug (rdb).plist
new file mode 100644
index 000000000..2e03699d7
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/RAILS_DEFAULT_LOGGER.debug (rdb).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ RAILS_DEFAULT_LOGGER.debug "${1:message}"$0
+ name
+ RAILS_DEFAULT_LOGGER.debug
+ scope
+ source.ruby.rails
+ tabTrigger
+ rdb
+ uuid
+ 7B15B396-1F41-4529-9253-32761E94448C
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Table column(s) rename.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/Table column(s) rename.tmSnippet
new file mode 100644
index 000000000..3b0fbb23c
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Table column(s) rename.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.rename(:${1:old_column_name}, :${2:new_column_name})
+$0
+ name
+ Table column(s) rename
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ tre
+ uuid
+ DF30226E-1111-448A-B669-7CA34EE83909
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Test Assert Redirected To (art).plist b/bundles/ruby-on-rails.tmbundle/Snippets/Test Assert Redirected To (art).plist
new file mode 100644
index 000000000..f0f63e285
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Test Assert Redirected To (art).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ assert_redirected_to ${2::action => "${1:index}"}
+ name
+ assert_redirected_to
+ scope
+ source.ruby.rails
+ tabTrigger
+ art
+ uuid
+ CD60F800-850D-47CF-BE32-3DE665DD5C68
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/Test Assert Response (are).plist b/bundles/ruby-on-rails.tmbundle/Snippets/Test Assert Response (are).plist
new file mode 100644
index 000000000..34750af30
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/Test Assert Response (are).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ assert_response :${1:success}, @response.body$0
+ name
+ assert_response
+ scope
+ source.ruby.rails
+ tabTrigger
+ asre
+ uuid
+ 2BD82DCB-1F19-4C8F-BC70-C0BBB06A2138
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/after_create.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/after_create.tmSnippet
new file mode 100644
index 000000000..d335ffec9
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/after_create.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ after_create
+ name
+ after_create
+ scope
+ source.ruby.rails
+ tabTrigger
+ aftc
+ uuid
+ 279D1981-B055-4693-B9AF-5B571A62A6AE
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/after_destroy.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/after_destroy.tmSnippet
new file mode 100644
index 000000000..874247ca4
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/after_destroy.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ after_destroy
+ name
+ after_destroy
+ scope
+ source.ruby.rails
+ tabTrigger
+ aftd
+ uuid
+ A2F3E8C1-4216-4890-8491-2F8C7534ED03
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/after_save.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/after_save.tmSnippet
new file mode 100644
index 000000000..b0e6d2db5
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/after_save.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ after_save
+ name
+ after_save
+ scope
+ source.ruby.rails
+ tabTrigger
+ afts
+ uuid
+ 4D1787E3-1583-4CF3-8D99-CC45D7C35EED
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/after_update.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/after_update.tmSnippet
new file mode 100644
index 000000000..a21a4707c
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/after_update.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ after_update
+ name
+ after_update
+ scope
+ source.ruby.rails
+ tabTrigger
+ aftu
+ uuid
+ 0C9EA1A1-66C5-4E1C-9C30-E1FFE8EC6EAE
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/after_validation.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/after_validation.tmSnippet
new file mode 100644
index 000000000..97c367ac2
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/after_validation.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ after_validation
+ name
+ after_validation
+ scope
+ source.ruby.rails
+ tabTrigger
+ aftv
+ uuid
+ 44FBD811-70A9-462B-AC56-F975ADAD62AF
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/after_validation_on_create.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/after_validation_on_create.tmSnippet
new file mode 100644
index 000000000..2dcf7f9a7
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/after_validation_on_create.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ after_validation_on_create
+ name
+ after_validation_on_create
+ scope
+ source.ruby.rails
+ tabTrigger
+ aftvoc
+ uuid
+ BA0DE6C7-EAD3-42C9-8ABB-2B9A5F2FE225
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/after_validation_on_update.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/after_validation_on_update.tmSnippet
new file mode 100644
index 000000000..7aa427152
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/after_validation_on_update.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ after_validation_on_update
+ name
+ after_validation_on_update
+ scope
+ source.ruby.rails
+ tabTrigger
+ aftvou
+ uuid
+ BCB25D36-2D3F-41E9-B2CF-37D6E883E8D1
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/assert(var = assigns(%3Avar)).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/assert(var = assigns(%3Avar)).tmSnippet
new file mode 100644
index 000000000..002825556
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/assert(var = assigns(%3Avar)).tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ assert(${1:var} = assigns(:${1}), "Cannot find @${1}")
+$0
+ name
+ assert(var = assigns(:var))
+ scope
+ source.ruby
+ tabTrigger
+ asg
+ uuid
+ FE9C4B4E-860D-49F0-AAF7-5582B98F5F54
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/assert_difference.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/assert_difference.tmSnippet
new file mode 100644
index 000000000..ac28af8a8
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/assert_difference.tmSnippet
@@ -0,0 +1,18 @@
+
+
+
+
+ content
+ assert_difference "${1:Model}.${2:count}", ${3:1} do
+ $0
+end
+ name
+ assert_difference
+ scope
+ source.ruby
+ tabTrigger
+ asd
+ uuid
+ 30BEA6FB-301C-4460-93EC-FA3404688962
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/assert_no_difference.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/assert_no_difference.tmSnippet
new file mode 100644
index 000000000..fa7f7afa5
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/assert_no_difference.tmSnippet
@@ -0,0 +1,18 @@
+
+
+
+
+ content
+ assert_no_difference "${1:Model}.${2:count}" do
+ $0
+end
+ name
+ assert_no_difference
+ scope
+ source.ruby
+ tabTrigger
+ asnd
+ uuid
+ 5C6F4462-70E6-40B4-B3F2-F371656E7784
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/assert_redirected_to (nested path plural).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/assert_redirected_to (nested path plural).tmSnippet
new file mode 100644
index 000000000..3ed29c1b3
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/assert_redirected_to (nested path plural).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ assert_redirected_to ${10:${2:parent}_${3:child}_path(${4:@}${5:${2}})}
+ name
+ assert_redirected_to (nested path plural)
+ scope
+ source.ruby.rails
+ tabTrigger
+ artnpp
+ uuid
+ 4C92C020-7337-4D6E-91EE-7ABF2BFC7F41
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/assert_redirected_to (nested path).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/assert_redirected_to (nested path).tmSnippet
new file mode 100644
index 000000000..f833cff21
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/assert_redirected_to (nested path).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ assert_redirected_to ${2:${12:parent}_${13:child}_path(${14:@}${15:${12}}, ${16:@}${17:${13}})}
+ name
+ assert_redirected_to (nested path)
+ scope
+ source.ruby.rails
+ tabTrigger
+ artnp
+ uuid
+ 97021C0D-EB65-4046-B688-01F09B3B1615
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/assert_redirected_to (path plural).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/assert_redirected_to (path plural).tmSnippet
new file mode 100644
index 000000000..1eb37a6df
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/assert_redirected_to (path plural).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ assert_redirected_to ${10:${2:model}s_path}
+ name
+ assert_redirected_to (path plural)
+ scope
+ source.ruby.rails
+ tabTrigger
+ artpp
+ uuid
+ 0249637E-0720-46DA-A8FD-E176A2CC458B
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/assert_redirected_to (path).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/assert_redirected_to (path).tmSnippet
new file mode 100644
index 000000000..7094f29f1
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/assert_redirected_to (path).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ assert_redirected_to ${2:${12:model}_path(${13:@}${14:${12}})}
+ name
+ assert_redirected_to (path)
+ scope
+ source.ruby.rails
+ tabTrigger
+ artp
+ uuid
+ D33EDCE7-F8AF-48D4-AA7A-852BBF03E31D
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/assert_rjs.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/assert_rjs.tmSnippet
new file mode 100644
index 000000000..998b4c39a
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/assert_rjs.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ assert_rjs :${1:replace}, ${2:"${3:dom id}"}
+ name
+ assert_rjs
+ scope
+ source.ruby.rails
+ tabTrigger
+ asrj
+ uuid
+ E0F281EC-5311-41F8-ADD9-2E2D059DA651
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/assert_select.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/assert_select.tmSnippet
new file mode 100644
index 000000000..053434dfe
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/assert_select.tmSnippet
@@ -0,0 +1,18 @@
+
+
+
+
+ content
+ assert_select '${1:path}'${2:, :${3:text} => ${4:'${5:inner_html}'}}${6: do
+ $0
+end}
+ name
+ assert_select
+ scope
+ source.ruby.rails
+ tabTrigger
+ ass
+ uuid
+ DBE14FE8-B415-4DBC-A316-F8DA63FE9FD7
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/before_create.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/before_create.tmSnippet
new file mode 100644
index 000000000..32cb0118e
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/before_create.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ before_create
+ name
+ before_create
+ scope
+ source.ruby.rails
+ tabTrigger
+ befc
+ uuid
+ D64D8863-DCB6-4397-B5B0-073E0AE04167
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/before_destroy.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/before_destroy.tmSnippet
new file mode 100644
index 000000000..1c1769a7c
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/before_destroy.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ before_destroy
+ name
+ before_destroy
+ scope
+ source.ruby.rails
+ tabTrigger
+ befd
+ uuid
+ 3F4B502B-5F68-4687-88E9-6EF3BDF9677D
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/before_save.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/before_save.tmSnippet
new file mode 100644
index 000000000..a0be84a75
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/before_save.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ before_save
+ name
+ before_save
+ scope
+ source.ruby.rails
+ tabTrigger
+ befs
+ uuid
+ 523BE8A6-0845-493D-A9B6-532F73D21950
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/before_update.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/before_update.tmSnippet
new file mode 100644
index 000000000..e44a4c50a
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/before_update.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ before_update
+ name
+ before_update
+ scope
+ source.ruby.rails
+ tabTrigger
+ befu
+ uuid
+ 1C20EEBE-B4BA-48C8-9B33-7B5BB00D958C
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/before_validation.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/before_validation.tmSnippet
new file mode 100644
index 000000000..44c18afe7
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/before_validation.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ before_validation
+ name
+ before_validation
+ scope
+ source.ruby.rails
+ tabTrigger
+ befv
+ uuid
+ A1776279-5396-4FE9-9218-8BF2C88C5271
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/before_validation_on_create.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/before_validation_on_create.tmSnippet
new file mode 100644
index 000000000..32fb67107
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/before_validation_on_create.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ before_validation_on_create
+ name
+ before_validation_on_create
+ scope
+ source.ruby.rails
+ tabTrigger
+ befvoc
+ uuid
+ E2CE2E3B-8A61-4866-9AF5-A12F44CF7233
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/before_validation_on_update.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/before_validation_on_update.tmSnippet
new file mode 100644
index 000000000..9f384da43
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/before_validation_on_update.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ before_validation_on_update
+ name
+ before_validation_on_update
+ scope
+ source.ruby.rails
+ tabTrigger
+ befvou
+ uuid
+ 86CFB156-E72B-440F-9C7D-08A3375C3ADB
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/belongs_to (bt).plist b/bundles/ruby-on-rails.tmbundle/Snippets/belongs_to (bt).plist
new file mode 100644
index 000000000..fe00c1b7b
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/belongs_to (bt).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ belongs_to :${1:object}${2:, :class_name => "${3:${1/[[:alpha:]]+|(_)/(?1::\u$0)/g}}", :foreign_key => "${4:${1}_id}"}
+ name
+ belongs_to
+ scope
+ source.ruby.rails
+ tabTrigger
+ bt
+ uuid
+ B8F08BD7-6160-482C-8A3D-CBC6BD2079A4
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/cattr_accessor.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/cattr_accessor.tmSnippet
new file mode 100644
index 000000000..80ba8f98c
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/cattr_accessor.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ cattr_accessor :${0:attr_names}
+ name
+ cattr_accessor
+ scope
+ source.ruby.rails
+ tabTrigger
+ crw
+ uuid
+ F57522B2-9F5F-4DF9-AE46-9478AF019C63
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/def create - resource.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/def create - resource.tmSnippet
new file mode 100644
index 000000000..d608ed3ae
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/def create - resource.tmSnippet
@@ -0,0 +1,30 @@
+
+
+
+
+ content
+ def create
+ @${1:model} = ${2:${1/[[:alpha:]]+|(_)/(?1::\u$0)/g}}.new(params[:$1])
+ $0
+ respond_to do |wants|
+ if @$1.save
+ flash[:notice] = '$2 was successfully created.'
+ wants.html { redirect_to(@$1) }
+ wants.xml { render :xml => @$1, :status => :created, :location => @$1 }
+ else
+ wants.html { render :action => "new" }
+ wants.xml { render :xml => @$1.errors, :status => :unprocessable_entity }
+ end
+ end
+end
+
+ name
+ def create - resource
+ scope
+ meta.rails.controller
+ tabTrigger
+ defcreate
+ uuid
+ 54F61419-001F-4B71-83AC-8DC633694AF0
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/def get request.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/def get request.tmSnippet
new file mode 100644
index 000000000..6da35a463
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/def get request.tmSnippet
@@ -0,0 +1,21 @@
+
+
+
+
+ content
+ def test_should_get_${1:action}
+ ${2:@${3:model} = ${4:$3s}(:${5:fixture_name})
+ }get :${1}${6:, :id => @$3.to_param}
+ assert_response :success
+ $0
+end
+ name
+ def test_should_get_action
+ scope
+ meta.rails.functional_test
+ tabTrigger
+ deftg
+ uuid
+ 1C491A76-751F-44EF-8DFB-0A585C7EEFF6
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/def post request.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/def post request.tmSnippet
new file mode 100644
index 000000000..bfaf1af0c
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/def post request.tmSnippet
@@ -0,0 +1,21 @@
+
+
+
+
+ content
+ def test_should_post_${1:action}
+ ${3:@$2 = ${4:$2s}(:${5:fixture_name})
+ }post :${1}${6:, :id => @$2.to_param}, :${2:model} => { $0 }
+ assert_response :redirect
+
+end
+ name
+ def test_should_post_action
+ scope
+ meta.rails.functional_test
+ tabTrigger
+ deftp
+ uuid
+ 8B9CD068-4338-4039-AA06-D839A6C7A9FF
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/end.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/end.tmSnippet
new file mode 100644
index 000000000..7d4f6f908
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/end.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ <% end -%>
+ name
+ end (ERB)
+ scope
+ text.html.ruby
+ tabTrigger
+ end
+ uuid
+ AC385ABF-96CD-4FCB-80AD-BF37D6EE79D2
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/find(%3Aall).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/find(%3Aall).tmSnippet
new file mode 100644
index 000000000..877330cd6
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/find(%3Aall).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ find(:all${1:, :conditions => ['${2:${3:field} = ?}', ${5:true}]})
+ name
+ find(:all)
+ scope
+ source.ruby.rails
+ tabTrigger
+ fina
+ uuid
+ A017AB39-A875-40DC-8ACF-7E3551057CA0
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/find(%3Afirst).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/find(%3Afirst).tmSnippet
new file mode 100644
index 000000000..3bf5c483b
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/find(%3Afirst).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ find(:first${1:, :conditions => ['${2:${3:field} = ?}', ${5:true}]})
+ name
+ find(:first)
+ scope
+ source.ruby.rails
+ tabTrigger
+ finf
+ uuid
+ FE430ECD-5D40-4D95-A73B-F064C73992DE
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/find(id).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/find(id).tmSnippet
new file mode 100644
index 000000000..9719cbd39
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/find(id).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ find(${1:id})
+ name
+ find(id)
+ scope
+ source.ruby.rails
+ tabTrigger
+ fini
+ uuid
+ 59CD3A41-8164-4FB4-B462-D7ACE86BCDBF
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/for loop erb.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/for loop erb.tmSnippet
new file mode 100644
index 000000000..8fcdd1fd7
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/for loop erb.tmSnippet
@@ -0,0 +1,23 @@
+
+
+
+
+ content
+ <% if !${1:list}.blank? %>
+ <% for ${2:item} in ${1} %>
+ $3
+ <% end %>
+<% else %>
+ $4
+<% end %>
+
+ name
+ for loop in rhtml
+ scope
+ text.html.ruby
+ tabTrigger
+ for
+ uuid
+ F7744F07-306C-4951-AB5A-3D69BA5516B7
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for check_box.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for check_box.tmSnippet
new file mode 100644
index 000000000..7de811baa
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for check_box.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.check_box :${1:attribute}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ form_for check_box
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ ffcb
+ uuid
+ F0DB6886-4FFE-45BA-907F-44326AD8142D
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for checkbox.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for checkbox.tmSnippet
new file mode 100644
index 000000000..c10e72a3d
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for checkbox.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.check_box :${1:attribute}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ f.check_box (ffcb)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ f.
+ uuid
+ F579F9E7-E072-4BCC-BFF9-C8C5BAE7FFA5
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for file_field 2.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for file_field 2.tmSnippet
new file mode 100644
index 000000000..845f0c713
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for file_field 2.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.file_field :${1:attribute}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ form_for file_field
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ ffff
+ uuid
+ C8BA285D-E12E-4AB8-A941-514C963E8226
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for file_field.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for file_field.tmSnippet
new file mode 100644
index 000000000..5f74f9ab5
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for file_field.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.file_field :${1:attribute}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ f.file_field (ffff)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ f.
+ uuid
+ 79BC2303-3D9D-4E21-AF85-73B388B7B56D
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for hidden_field 2.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for hidden_field 2.tmSnippet
new file mode 100644
index 000000000..f02c3e1c2
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for hidden_field 2.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.hidden_field :${1:attribute}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ form_for hidden_field
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ ffhf
+ uuid
+ 99FEFD9B-5A07-46E3-950D-5C474E42B695
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for hidden_field.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for hidden_field.tmSnippet
new file mode 100644
index 000000000..ed8136a8c
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for hidden_field.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.hidden_field :${1:attribute}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ f.hidden_field (ffhf)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ f.
+ uuid
+ 5DBA8F72-DD6C-4CBF-83FD-76301E159BA9
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for label 2.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for label 2.tmSnippet
new file mode 100644
index 000000000..38a7eb97a
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for label 2.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.label :${1:attribute}${2:, "${3:${1/[[:alpha:]]+|(_)/(?1: :\u$0)/g}}"}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ form_for label
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ ffl
+ uuid
+ B31822D9-2048-4D16-B2AF-00E0B4E5C368
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for label.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for label.tmSnippet
new file mode 100644
index 000000000..96d17eb29
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for label.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.label :${1:attribute}${2:, "${3:${1/[[:alpha:]]+|(_)/(?1: :\u$0)/g}}"}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ f.label (ffl)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ f.
+ uuid
+ 402C251E-595B-4A58-8EB9-41989040F280
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for password_field 2.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for password_field 2.tmSnippet
new file mode 100644
index 000000000..94c30b651
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for password_field 2.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.password_field :${1:attribute}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ form_for password_field
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ ffpf
+ uuid
+ 3379FB35-C664-4255-96C6-6E4B91F12759
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for password_field.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for password_field.tmSnippet
new file mode 100644
index 000000000..0b143c956
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for password_field.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.password_field :${1:attribute}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ f.password_field (ffpf)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ f.
+ uuid
+ 42289456-C8D1-498C-AE30-5206544B349F
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for radio_box 2.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for radio_box 2.tmSnippet
new file mode 100644
index 000000000..383776b09
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for radio_box 2.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.radio_box :${1:attribute}, :${2:tag_value}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ form_for radio_box
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ ffrb
+ uuid
+ D4282CE1-4171-4B13-9220-3F2718BC2505
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for radio_box.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for radio_box.tmSnippet
new file mode 100644
index 000000000..19a1a3769
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for radio_box.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.radio_box :${1:attribute}, :${2:tag_value}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ f.radio_box (ffrb)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ f.
+ uuid
+ A95358D2-C68A-4894-8C36-062C9F45848A
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for submit 2.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for submit 2.tmSnippet
new file mode 100644
index 000000000..115b56d1a
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for submit 2.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.submit "${1:Submit}"${2:, :disable_with => '${3:$1ing...}'}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ form_for submit
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ ffs
+ uuid
+ 3000E569-4E19-4566-B08E-A3FFFAAC9075
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for submit.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for submit.tmSnippet
new file mode 100644
index 000000000..8d3ba11e4
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for submit.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.submit "${1:Submit}"${2:, :disable_with => '${3:$1ing...}'}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ f.submit (ffs)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ f.
+ uuid
+ C315EC5D-A7F3-49CB-9795-21B78BB42FF4
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for text_area 2.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for text_area 2.tmSnippet
new file mode 100644
index 000000000..1169dbd76
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for text_area 2.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.text_area :${1:attribute}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ form_for text_area
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ ffta
+ uuid
+ 4C898FA8-D09C-4B28-BE42-14BB4EA4E2B1
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for text_area.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for text_area.tmSnippet
new file mode 100644
index 000000000..74a4b06fa
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for text_area.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.text_area :${1:attribute}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ f.text_area (ffta)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ f.
+ uuid
+ 06498926-F84D-466C-8736-B8A0AC586A94
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for text_field 2.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for text_field 2.tmSnippet
new file mode 100644
index 000000000..1d8643bea
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for text_field 2.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.text_field :${1:attribute}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ form_for text_field
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ fftf
+ uuid
+ F46EE8EE-239C-46D7-980B-3F861B7D9111
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for text_field.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for text_field.tmSnippet
new file mode 100644
index 000000000..5d97b057f
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for text_field.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}f.text_field :${1:attribute}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ f.text_field (fftf)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ f.
+ uuid
+ CC1BCD1C-2479-4335-B511-17B880316A75
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for with errors.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for with errors.tmSnippet
new file mode 100644
index 000000000..45d2a624b
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for with errors.tmSnippet
@@ -0,0 +1,20 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}error_messages_for :${1:model}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+
+${TM_RAILS_TEMPLATE_START_RUBY_INLINE}form_for @${2:$1} do |f|${TM_RAILS_TEMPLATE_END_RUBY_INLINE}
+ $0
+${TM_RAILS_TEMPLATE_END_RUBY_BLOCK}
+ name
+ form_for with errors
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ ffe
+ uuid
+ 15BDD7B6-5C15-4684-93C7-A05E3D2221AC
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/form_for.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/form_for.tmSnippet
new file mode 100644
index 000000000..24f1b0789
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/form_for.tmSnippet
@@ -0,0 +1,18 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_INLINE}form_for @${1:model} do |f|${TM_RAILS_TEMPLATE_END_RUBY_INLINE}
+ $0
+${TM_RAILS_TEMPLATE_END_RUBY_BLOCK}
+ name
+ form_for
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ ff
+ uuid
+ 7D99041D-C3B7-4940-AE64-6B1758CDB47C
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/has_and_belongs_to_many (habtm).plist b/bundles/ruby-on-rails.tmbundle/Snippets/has_and_belongs_to_many (habtm).plist
new file mode 100644
index 000000000..15eab69f4
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/has_and_belongs_to_many (habtm).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ has_and_belongs_to_many :${1:object}${2:, :join_table => "${3:table_name}", :foreign_key => "${4:${1}_id}"}
+ name
+ has_and_belongs_to_many
+ scope
+ source.ruby.rails
+ tabTrigger
+ habtm
+ uuid
+ 2AC3AC1F-743B-4A33-863C-C37885073806
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/has_many (hm).plist b/bundles/ruby-on-rails.tmbundle/Snippets/has_many (hm).plist
new file mode 100644
index 000000000..d782dc2fc
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/has_many (hm).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ has_many :${1:object}s${2:, :class_name => "${1}", :foreign_key => "${4:reference}_id"}
+ name
+ has_many
+ scope
+ source.ruby.rails
+ tabTrigger
+ hm
+ uuid
+ F396B7BD-8255-48B1-904A-06E7D7CC2741
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/has_many (through).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/has_many (through).tmSnippet
new file mode 100644
index 000000000..709246fe9
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/has_many (through).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ has_many :${1:objects}, :through => :${2:join_association}${3:, :source => :${4:${2}_table_foreign_key_to_${1}_table}}
+ name
+ has_many (through)
+ scope
+ source.ruby.rails
+ tabTrigger
+ hmt
+ uuid
+ 9D58B6C9-BA52-48B3-B639-D5CB894AF810
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/has_many :dependent => :destroy.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/has_many :dependent => :destroy.tmSnippet
new file mode 100644
index 000000000..d4b0b8470
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/has_many :dependent => :destroy.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ has_many :${1:object}s${2:, :class_name => "${1}", :foreign_key => "${4:reference}_id"}, :dependent => :destroy$0
+ name
+ has_many :dependent => :destroy
+ scope
+ source.ruby.rails
+ tabTrigger
+ hmd
+ uuid
+ 3E3AF538-171B-4108-AB92-827AD7E24C77
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/has_one (ho).plist b/bundles/ruby-on-rails.tmbundle/Snippets/has_one (ho).plist
new file mode 100644
index 000000000..50e153bbc
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/has_one (ho).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ has_one :${1:object}${2:, :class_name => "${3:${1/[[:alpha:]]+|(_)/(?1::\u$0)/g}}", :foreign_key => "${4:${1}_id}"}
+ name
+ has_one
+ scope
+ source.ruby.rails
+ tabTrigger
+ ho
+ uuid
+ BD2E4045-54E6-450E-B31B-5E1865CFFBC9
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/image_submit_tag.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/image_submit_tag.tmSnippet
new file mode 100644
index 000000000..7bf4aebb7
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/image_submit_tag.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}image_submit_tag("${1:agree.png}"${2:${3:, :id => "${4:${1/^(\w+)(\.\w*)?$/$1/}}"}${5:, :name => "${6:${1/^(\w+)(\.\w*)?$/$1/}}"}${7:, :class => "${8:${1/^(\w+)(\.\w*)?$/$1/}-button}"}${9:, :disabled => ${10:false}}})${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ image_submit_tag
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ ist
+ uuid
+ 9FB9848E-EA5A-11DC-9DE5-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/javascript_include_tag.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/javascript_include_tag.tmSnippet
new file mode 100644
index 000000000..8fccf0e4b
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/javascript_include_tag.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}javascript_include_tag ${1::all}${2:, :cache => ${3:true}}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ javascript_include_tag
+ scope
+ text.html.ruby
+ tabTrigger
+ jit
+ uuid
+ FEF49C86-9386-405E-A191-684D1C963E3A
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/lia.plist b/bundles/ruby-on-rails.tmbundle/Snippets/lia.plist
new file mode 100644
index 000000000..d37084585
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/lia.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}link_to "${1:link text...}", :action => "${2:index}"${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ link_to (action)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ lia
+ uuid
+ 9E2B42FE-7BC8-11D9-906A-000D932CD5BA
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/liai.plist b/bundles/ruby-on-rails.tmbundle/Snippets/liai.plist
new file mode 100644
index 000000000..810a76b36
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/liai.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}link_to "${1:link text...}", :action => "${2:edit}", :id => ${3:@item}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ link_to (action, id)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ liai
+ uuid
+ B4F952F4-7BC8-11D9-906A-000D932CD5BA
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/lic.plist b/bundles/ruby-on-rails.tmbundle/Snippets/lic.plist
new file mode 100644
index 000000000..053a24975
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/lic.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}link_to "${1:link text...}", :controller => "${2:items}"${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ link_to (controller)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ lic
+ uuid
+ 74590E16-7BCB-11D9-906A-000D932CD5BA
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/lica.plist b/bundles/ruby-on-rails.tmbundle/Snippets/lica.plist
new file mode 100644
index 000000000..6f72cd678
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/lica.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}link_to "${1:link text...}", :controller => "${2:items}", :action => "${3:index}"${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ link_to (controller, action)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ lica
+ uuid
+ C11C0BF5-7BC8-11D9-906A-000D932CD5BA
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/licai.plist b/bundles/ruby-on-rails.tmbundle/Snippets/licai.plist
new file mode 100644
index 000000000..440fc5ca9
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/licai.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}link_to "${1:link text...}", :controller => "${2:items}", :action => "${3:edit}", :id => ${4:@item}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ link_to (controller, action, id)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ licai
+ uuid
+ D21BE958-7BC8-11D9-906A-000D932CD5BA
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/link_to (nested path plural).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/link_to (nested path plural).tmSnippet
new file mode 100644
index 000000000..7d0e59517
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/link_to (nested path plural).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}link_to ${1:"${2:link text...}"}, ${3:${10:parent}_${11:child}_path(${12:@}${13:${10}})}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ link_to (nested path plural)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ linpp
+ uuid
+ 866AAD87-E458-4F2D-9E7C-3CE73EFC047B
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/link_to (nested path).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/link_to (nested path).tmSnippet
new file mode 100644
index 000000000..19a0ca5d4
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/link_to (nested path).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}link_to ${1:"${2:link text...}"}, ${3:${12:parent}_${13:child}_path(${14:@}${15:${12}}, ${16:@}${17:${13}})}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ link_to (nested path)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ linp
+ uuid
+ 750DEEF9-18A0-40FC-8E54-574CE5EE5565
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/link_to (path plural).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/link_to (path plural).tmSnippet
new file mode 100644
index 000000000..c51b8d8b2
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/link_to (path plural).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}link_to ${1:"${2:link text...}"}, ${3:${4:model}s_path}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ link_to (path plural)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ lipp
+ uuid
+ 6BA737F0-63D1-4D82-9381-4331E18B12C5
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/link_to (path).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/link_to (path).tmSnippet
new file mode 100644
index 000000000..fbb80ef82
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/link_to (path).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}link_to ${1:"${2:link text...}"}, ${3:${12:model}_path(${13:@}${14:${12}})}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ link_to (path)
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ lip
+ uuid
+ 326B57A7-B4A9-447B-A3D2-0EA74158E1E1
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/link_to model.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/link_to model.tmSnippet
new file mode 100644
index 000000000..ccd67294b
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/link_to model.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}link_to ${1:model}.${2:name}, ${3:${4:$1}_path(${14:$1})}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ link_to model
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ lim
+ uuid
+ E5E08AA0-4EDD-4583-BF07-5D6C49E98410
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/logger_debug.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/logger_debug.tmSnippet
new file mode 100644
index 000000000..2e76fe07f
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/logger_debug.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ logger.debug { "${1:message}" }$0
+ name
+ logger.debug
+ scope
+ source.ruby.rails
+ tabTrigger
+ logd
+ uuid
+ D975E5C1-42C2-40F1-8960-0DA533B18113
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/logger_error.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/logger_error.tmSnippet
new file mode 100644
index 000000000..7f88e74f0
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/logger_error.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ logger.error { "${1:message}" }$0
+ name
+ logger.error
+ scope
+ source.ruby.rails
+ tabTrigger
+ loge
+ uuid
+ 7053B86A-9B81-4154-AB3C-61B8035C5D33
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/logger_fatal.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/logger_fatal.tmSnippet
new file mode 100644
index 000000000..c5dd89fbd
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/logger_fatal.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ logger.fatal { "${1:message}" }$0
+ name
+ logger.fatal
+ scope
+ source.ruby.rails
+ tabTrigger
+ logf
+ uuid
+ 35E95C81-22F7-4C40-8297-ED21086DDA81
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/logger_info.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/logger_info.tmSnippet
new file mode 100644
index 000000000..7f6949d68
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/logger_info.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ logger.info { "${1:message}" }$0
+ name
+ logger.info
+ scope
+ source.ruby.rails
+ tabTrigger
+ logi
+ uuid
+ 36E2A3EE-E9CC-4B7F-A4CF-AFAF970B8699
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/logger_warn.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/logger_warn.tmSnippet
new file mode 100644
index 000000000..e3a5357ed
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/logger_warn.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ logger.warn { "${1:message}" }$0
+ name
+ logger.warn
+ scope
+ source.ruby.rails
+ tabTrigger
+ logw
+ uuid
+ 38D5CA05-E219-4399-A244-609AF40B1D0B
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/map(&%3Asym_proc).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/map(&%3Asym_proc).tmSnippet
new file mode 100644
index 000000000..4cd94e4e3
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/map(&%3Asym_proc).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ map(&:${1:id})
+ name
+ map(&:sym_proc)
+ scope
+ source.ruby.rails
+ tabTrigger
+ mp
+ uuid
+ EC605540-C431-4FD0-AD91-D913118DACA7
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/map_catch_all.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/map_catch_all.tmSnippet
new file mode 100644
index 000000000..2e925829c
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/map_catch_all.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ ${1:map}.catch_all "*${2:anything}", :controller => "${3:default}", :action => "${4:error}"
+
+ name
+ map.catch_all
+ scope
+ meta.rails.routes
+ tabTrigger
+ mapca
+ uuid
+ F3606586-F905-4A91-92CA-82319239221D
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/map_named_route.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/map_named_route.tmSnippet
new file mode 100644
index 000000000..334621960
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/map_named_route.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${1:map}.${2:connect} '${3::controller/:action/:id}'
+ name
+ map.named_route
+ scope
+ meta.rails.routes
+ tabTrigger
+ map
+ uuid
+ 91C543BF-7BD8-4E3A-B493-AE572C5472A0
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/map_resource.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/map_resource.tmSnippet
new file mode 100644
index 000000000..82728ad1f
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/map_resource.tmSnippet
@@ -0,0 +1,18 @@
+
+
+
+
+ content
+ ${1:map}.resource :${2:resource}${10: do |${11:$2}|
+ $0
+end}
+ name
+ map.resource
+ scope
+ meta.rails.routes
+ tabTrigger
+ mapr
+ uuid
+ 2183A9A9-17ED-4A4F-ABB6-668EDDD3A6E4
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/map_resources.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/map_resources.tmSnippet
new file mode 100644
index 000000000..51920457d
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/map_resources.tmSnippet
@@ -0,0 +1,18 @@
+
+
+
+
+ content
+ ${1:map}.resources :${2:resource}${10: do |${11:$2}|
+ $0
+end}
+ name
+ map.resources
+ scope
+ meta.rails.routes
+ tabTrigger
+ maprs
+ uuid
+ 0FF86C46-0E01-4D03-8232-72CA5BD55706
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/map_with_options.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/map_with_options.tmSnippet
new file mode 100644
index 000000000..8e6b11277
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/map_with_options.tmSnippet
@@ -0,0 +1,19 @@
+
+
+
+
+ content
+ ${1:map}.with_options :${2:controller} => '${3:thing}' do |${4:$3}|
+ $0
+end
+
+ name
+ map.with_options
+ scope
+ meta.rails.routes
+ tabTrigger
+ mapwo
+ uuid
+ BD4B90F7-2187-4E75-BFFB-77BE67CB8DAE
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/mattr_accessor.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/mattr_accessor.tmSnippet
new file mode 100644
index 000000000..fcf73879f
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/mattr_accessor.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ mattr_accessor :${0:attr_names}
+ name
+ mattr_accessor
+ scope
+ source.ruby.rails
+ tabTrigger
+ mrw
+ uuid
+ B25B7560-FACB-4A9E-A226-B71C796BD1F3
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/named_scope lambda.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/named_scope lambda.tmSnippet
new file mode 100644
index 000000000..bc5329cb8
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/named_scope lambda.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ named_scope :name, lambda { |${1:param}| { :conditions => ${3:['${4:${5:field} = ?}', ${6:$1}]} } }
+
+ name
+ named_scope lambda
+ scope
+ source.ruby.rails
+ tabTrigger
+ ncl
+ uuid
+ 4E286CB4-069E-474C-A970-95216FE7DE95
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/named_scope.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/named_scope.tmSnippet
new file mode 100644
index 000000000..111f77d1b
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/named_scope.tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ named_scope :name${1:, :joins => :${2:table}}, :conditions => ${3:['${4:${5:field} = ?}', ${6:true}]}
+
+ name
+ named_scope
+ scope
+ source.ruby.rails
+ tabTrigger
+ nc
+ uuid
+ 1CB65A0D-4FEC-4438-9B4F-8B0BD13FB875
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/page_hide (%2Aids).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/page_hide (%2Aids).tmSnippet
new file mode 100644
index 000000000..338cd3862
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/page_hide (%2Aids).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ page.hide ${1:"${2:id(s)}"}
+ name
+ page.hide (*ids)
+ scope
+ source.ruby.rails.rjs
+ tabTrigger
+ hide
+ uuid
+ 390A447F-0FA3-4F01-A10C-4F35675E0A43
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/page_insert_html (position, id, partial).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/page_insert_html (position, id, partial).tmSnippet
new file mode 100644
index 000000000..fdbd61495
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/page_insert_html (position, id, partial).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ page.insert_html :${1:top}, ${2:"${3:id}"}, :${4:partial => "${5:template}"}
+ name
+ page.insert_html (position, id, partial)
+ scope
+ source.ruby.rails.rjs
+ tabTrigger
+ ins
+ uuid
+ 62BEA590-F4EF-4001-B661-764EDFB92811
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/page_replace (id, partial).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/page_replace (id, partial).tmSnippet
new file mode 100644
index 000000000..856a9fa5a
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/page_replace (id, partial).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ page.replace ${1:"${2:id}"}, :${3:partial => "${4:template}"}
+ name
+ page.replace (id, partial)
+ scope
+ source.ruby.rails.rjs
+ tabTrigger
+ rep
+ uuid
+ 273E5E76-8D13-4476-9C38-8AF87432CB96
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/page_replace_html (id, partial).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/page_replace_html (id, partial).tmSnippet
new file mode 100644
index 000000000..a4ec87bef
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/page_replace_html (id, partial).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ page.replace_html ${1:"${2:id}"}, :${3:partial => "${4:template}"}
+ name
+ page.replace_html (id, partial)
+ scope
+ source.ruby.rails.rjs
+ tabTrigger
+ reph
+ uuid
+ 8B914165-9C66-4FA3-9AD6-1DA41B25F8F1
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/page_show (%2Aids).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/page_show (%2Aids).tmSnippet
new file mode 100644
index 000000000..873be2d0c
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/page_show (%2Aids).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ page.show ${1:"${2:id(s)}"}
+ name
+ page.show (*ids)
+ scope
+ source.ruby.rails.rjs
+ tabTrigger
+ show
+ uuid
+ 5ACBF49D-B5A5-495C-89D8-18AA740D9D02
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/page_toggle (%2Aids).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/page_toggle (%2Aids).tmSnippet
new file mode 100644
index 000000000..d6ae50117
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/page_toggle (%2Aids).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ page.toggle ${1:"${2:id(s)}"}
+ name
+ page.toggle (*ids)
+ scope
+ source.ruby.rails.rjs
+ tabTrigger
+ tog
+ uuid
+ 028DA0A4-B310-4BEF-8643-2A22993C21C7
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/page_visual_effect (effect, id).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/page_visual_effect (effect, id).tmSnippet
new file mode 100644
index 000000000..4ca7af504
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/page_visual_effect (effect, id).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ page.visual_effect :${1:toggle_slide}, ${2:"${3:DOM ID}"}
+ name
+ page.visual_effect (effect, id)
+ scope
+ source.ruby.rails.rjs
+ tabTrigger
+ vis
+ uuid
+ CFDC27A3-58CF-4198-8F93-36360978F0D0
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/rails flash.plist b/bundles/ruby-on-rails.tmbundle/Snippets/rails flash.plist
new file mode 100644
index 000000000..f2ce527b3
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/rails flash.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ flash[:${1:notice}] = "${2:Successfully created...}"$0
+ name
+ flash[…]
+ scope
+ source.ruby.rails
+ tabTrigger
+ flash
+ uuid
+ D864896E-8763-11D9-897C-000393CBCE2E
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/rails params.plist b/bundles/ruby-on-rails.tmbundle/Snippets/rails params.plist
new file mode 100644
index 000000000..6556cc99f
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/rails params.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ params[:${1:id}]
+ keyEquivalent
+ ^p
+ name
+ params[…]
+ scope
+ source.ruby.rails
+ uuid
+ AC8EDA3E-875B-11D9-897C-000393CBCE2E
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/rails session.plist b/bundles/ruby-on-rails.tmbundle/Snippets/rails session.plist
new file mode 100644
index 000000000..29e233e88
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/rails session.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ session[:${1:user}]
+ keyEquivalent
+ ^j
+ name
+ session[…]
+ scope
+ source.ruby.rails
+ uuid
+ 7B02ABF8-8763-11D9-897C-000393CBCE2E
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/rea.plist b/bundles/ruby-on-rails.tmbundle/Snippets/rea.plist
new file mode 100644
index 000000000..a057013b3
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/rea.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ redirect_to :action => "${1:index}"
+ name
+ redirect_to (action)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rea
+ uuid
+ F2F3167C-73B9-11D9-B752-000D932CD5BA
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/reai.plist b/bundles/ruby-on-rails.tmbundle/Snippets/reai.plist
new file mode 100644
index 000000000..be95edbdf
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/reai.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ redirect_to :action => "${1:show}", :id => ${0:@item}
+ name
+ redirect_to (action, id)
+ scope
+ source.ruby.rails
+ tabTrigger
+ reai
+ uuid
+ 2233B484-73BA-11D9-B752-000D932CD5BA
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/rec.plist b/bundles/ruby-on-rails.tmbundle/Snippets/rec.plist
new file mode 100644
index 000000000..e766697c7
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/rec.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ redirect_to :controller => "${1:items}"
+ name
+ redirect_to (controller)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rec
+ uuid
+ 053490FE-73BA-11D9-B752-000D932CD5BA
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/reca.plist b/bundles/ruby-on-rails.tmbundle/Snippets/reca.plist
new file mode 100644
index 000000000..c647a1916
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/reca.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ redirect_to :controller => "${1:items}", :action => "${2:list}"
+ name
+ redirect_to (controller, action)
+ scope
+ source.ruby.rails
+ tabTrigger
+ reca
+ uuid
+ 0C137FBF-73BA-11D9-B752-000D932CD5BA
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/recai.plist b/bundles/ruby-on-rails.tmbundle/Snippets/recai.plist
new file mode 100644
index 000000000..d0922ab5c
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/recai.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ redirect_to :controller => "${1:items}", :action => "${2:show}", :id => ${0:@item}
+ name
+ redirect_to (controller, action, id)
+ scope
+ source.ruby.rails
+ tabTrigger
+ recai
+ uuid
+ 18D3C1C3-73BA-11D9-B752-000D932CD5BA
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/redirect_to (nested path plural).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/redirect_to (nested path plural).tmSnippet
new file mode 100644
index 000000000..28e2ccd64
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/redirect_to (nested path plural).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ redirect_to(${2:${10:parent}_${11:child}_path(${12:@}${13:${10}})})
+ name
+ redirect_to (nested path plural)
+ scope
+ source.ruby.rails
+ tabTrigger
+ renpp
+ uuid
+ EF527A27-D1D4-4FD8-BD23-71397881C29A
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/redirect_to (nested path).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/redirect_to (nested path).tmSnippet
new file mode 100644
index 000000000..09312a71d
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/redirect_to (nested path).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ redirect_to(${2:${12:parent}_${13:child}_path(${14:@}${15:${12}}, ${16:@}${17:${13}})})
+ name
+ redirect_to (nested path)
+ scope
+ source.ruby.rails
+ tabTrigger
+ renp
+ uuid
+ 9D7228B3-A6ED-4598-B096-032B3600864F
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/redirect_to (path plural).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/redirect_to (path plural).tmSnippet
new file mode 100644
index 000000000..65bd83e62
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/redirect_to (path plural).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ redirect_to(${2:${10:model}s_path})
+ name
+ redirect_to (path plural)
+ scope
+ source.ruby.rails
+ tabTrigger
+ repp
+ uuid
+ AFE06B67-CE98-42A6-93D1-8EC8E3B9F83C
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/redirect_to (path).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/redirect_to (path).tmSnippet
new file mode 100644
index 000000000..f6bfdd0a0
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/redirect_to (path).tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ redirect_to(${2:${12:model}_path(${13:@}${14:${12}})})
+ name
+ redirect_to (path)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rep
+ uuid
+ A909C4C3-8EFE-4E39-9D96-BA8F0ABE6085
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (action)... (ra).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (action)... (ra).plist
new file mode 100644
index 000000000..1b50d3f47
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (action)... (ra).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :action => "${1:action}"
+ name
+ render (action)
+ scope
+ source.ruby.rails
+ tabTrigger
+ ra
+ uuid
+ 7B03D38B-7580-41AC-BC2B-3766AB074A43
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (action,layout) (ral).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (action,layout) (ral).plist
new file mode 100644
index 000000000..b48d6b23b
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (action,layout) (ral).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :action => "${1:action}", :layout => "${2:layoutname}"
+ name
+ render (action, layout)
+ scope
+ source.ruby.rails
+ tabTrigger
+ ral
+ uuid
+ 053F1D6A-B413-43FF-B697-E3120FD0489F
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (file) (rf).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (file) (rf).plist
new file mode 100644
index 000000000..7ef855488
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (file) (rf).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :file => "${1:filepath}"
+ name
+ render (file)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rf
+ uuid
+ 7D43B0EA-2C3C-499B-9346-A8E48CBF29CD
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (file,use_full_path) (rfu).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (file,use_full_path) (rfu).plist
new file mode 100644
index 000000000..2630b619c
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (file,use_full_path) (rfu).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :file => "${1:filepath}", :use_full_path => ${2:false}
+ name
+ render (file, use_full_path)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rfu
+ uuid
+ 2A8FBE48-E196-4019-AE76-BF3ED4B54F47
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (inline) (ri).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (inline) (ri).plist
new file mode 100644
index 000000000..1b262bfbc
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (inline) (ri).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :inline => "${1:<%= 'hello' %>}"
+ name
+ render (inline)
+ scope
+ source.ruby.rails
+ tabTrigger
+ ri
+ uuid
+ 64E93A71-6E62-48D9-9694-123080AE6723
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (inline,locals) (ril).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (inline,locals) (ril).plist
new file mode 100644
index 000000000..c519e2335
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (inline,locals) (ril).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :inline => "${1:<%= 'hello' %>}", :locals => { ${2::name} => "${3:value}"$4 }
+ name
+ render (inline, locals)
+ scope
+ source.ruby.rails
+ tabTrigger
+ ril
+ uuid
+ 1E5DE984-510C-4992-8AD5-C5FA6D7F2A88
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (inline,type) (rit).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (inline,type) (rit).plist
new file mode 100644
index 000000000..a61bf21aa
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (inline,type) (rit).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :inline => "${1:<%= 'hello' %>}", :type => ${2::rxml}
+ name
+ render (inline, type)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rit
+ uuid
+ A8AF8B90-94E8-42E1-8057-DDBA57809F6A
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (layout) (rl).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (layout) (rl).plist
new file mode 100644
index 000000000..d29c1a344
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (layout) (rl).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :layout => "${1:layoutname}"
+ name
+ render (layout)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rl
+ uuid
+ 3F83272F-62D5-4BCB-BAA3-806083078829
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (nothing) (rn).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (nothing) (rn).plist
new file mode 100644
index 000000000..22fa73b86
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (nothing) (rn).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :nothing => ${1:true}
+ name
+ render (nothing)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rn
+ uuid
+ AC8A995F-0034-433C-905D-E5C1F29D6EFF
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (nothing,status) (rns).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (nothing,status) (rns).plist
new file mode 100644
index 000000000..bbf95ad27
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (nothing,status) (rns).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :nothing => ${1:true}, :status => ${2:401}
+ name
+ render (nothing, status)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rns
+ uuid
+ 724A68C1-A727-46FF-AF59-288E26B09629
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (partial) (rp).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (partial) (rp).plist
new file mode 100644
index 000000000..5154b7565
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (partial) (rp).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :partial => "${1:item}"
+ name
+ render (partial)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rp
+ uuid
+ 498168A5-5AF8-4F59-8A2D-B517FAB98CDB
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (partial,collection) (rpc).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (partial,collection) (rpc).plist
new file mode 100644
index 000000000..24ff03d9f
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (partial,collection) (rpc).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :partial => "${1:item}", :collection => ${2:@$1s}
+ name
+ render (partial, collection)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rpc
+ uuid
+ 046FB1B6-9C65-4702-91EC-4AA9878CD949
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (partial,locals) (rpl).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (partial,locals) (rpl).plist
new file mode 100644
index 000000000..d13bd8bf9
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (partial,locals) (rpl).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :partial => "${1:item}", :locals => { :${2:$1} => ${3:@$1}$0 }
+ name
+ render (partial, locals)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rpl
+ uuid
+ 6F41AFFD-B3A7-42D0-8A84-D6086C118D92
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (partial,object) (rpo).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (partial,object) (rpo).plist
new file mode 100644
index 000000000..f9230a8d1
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (partial,object) (rpo).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :partial => "${1:item}", :object => ${2:@$1}
+ name
+ render (partial, object)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rpo
+ uuid
+ BFAAC8DA-A043-4684-967B-B3E5DAE08C62
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (partial,status) (rps).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (partial,status) (rps).plist
new file mode 100644
index 000000000..da70e9839
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (partial,status) (rps).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :partial => "${1:item}", :status => ${2:500}
+ name
+ render (partial, status)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rps
+ uuid
+ CBB06A4E-3A82-45F3-91AA-259F02314B9D
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (text) (rt).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (text) (rt).plist
new file mode 100644
index 000000000..f113cca3d
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (text) (rt).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :text => "${1:text to render...}"
+ name
+ render (text)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rt
+ uuid
+ 67C5082F-5011-434A-8EAA-6B8D3600935F
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (text,layout) (rtl).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (text,layout) (rtl).plist
new file mode 100644
index 000000000..f98077913
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (text,layout) (rtl).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :text => "${1:text to render...}", :layout => "${2:layoutname}"
+ name
+ render (text, layout)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rtl
+ uuid
+ A3B09AFE-40B5-4623-8B85-E9F369ECE22D
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (text,layout=%3Etrue) (rtlt).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (text,layout=%3Etrue) (rtlt).plist
new file mode 100644
index 000000000..038959d0b
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (text,layout=%3Etrue) (rtlt).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :text => "${1:text to render...}", :layout => ${2:true}
+ name
+ render (text, layout => true)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rtlt
+ uuid
+ 97C0992D-715F-4322-A3E0-DD4D2B7E2FC2
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (text,status) (rts).plist b/bundles/ruby-on-rails.tmbundle/Snippets/render (text,status) (rts).plist
new file mode 100644
index 000000000..f480a3c28
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (text,status) (rts).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ render :text => "${1:text to render...}", :status => ${2:401}
+ name
+ render (text, status)
+ scope
+ source.ruby.rails
+ tabTrigger
+ rts
+ uuid
+ 4F636977-F7A6-4BF5-B09B-7F087683C3B9
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/render (update).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/render (update).tmSnippet
new file mode 100644
index 000000000..e748a5db0
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/render (update).tmSnippet
@@ -0,0 +1,18 @@
+
+
+
+
+ content
+ render :update do |${2:page}|
+ $2.$0
+end
+ name
+ render (update)
+ scope
+ source.ruby.rails
+ tabTrigger
+ ru
+ uuid
+ ECB10C0B-E8B7-4606-ABF5-4A2A26E5AB1A
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/respond_to (html).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/respond_to (html).tmSnippet
new file mode 100644
index 000000000..a694965f5
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/respond_to (html).tmSnippet
@@ -0,0 +1,21 @@
+
+
+
+
+ content
+ respond_to do |wants|
+ wants.html do
+ $TM_SELECTED_TEXT
+ end
+ wants.${1:js} { $0 }
+end
+ keyEquivalent
+ @H
+ name
+ respond_to (html)
+ scope
+ meta.rails.controller
+ uuid
+ 3BDD0D52-443E-4F5F-AE09-ABCC2ABE9A42
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/respond_to.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/respond_to.tmSnippet
new file mode 100644
index 000000000..8d701e350
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/respond_to.tmSnippet
@@ -0,0 +1,18 @@
+
+
+
+
+ content
+ respond_to do |wants|
+ wants.${1:html}${2: { $0 \}}
+end
+ name
+ respond_to
+ scope
+ meta.rails.controller
+ tabTrigger
+ rest
+ uuid
+ B41D3164-EA53-4DDC-850E-27B82B24061F
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/returning do %7Cvariable%7C %E2%80%A6 end.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/returning do %7Cvariable%7C %E2%80%A6 end.tmSnippet
new file mode 100644
index 000000000..09ed7a5d8
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/returning do %7Cvariable%7C %E2%80%A6 end.tmSnippet
@@ -0,0 +1,18 @@
+
+
+
+
+ content
+ returning ${1:variable} do${2/(^(?<var>\s*[a-z_][a-zA-Z0-9_]*\s*)(,\g<var>)*,?\s*$)|.*/(?1: |)/}${2:v}${2/(^(?<var>\s*[a-z_][a-zA-Z0-9_]*\s*)(,\g<var>)*,?\s*$)|.*/(?1:|)/}
+ $0
+end
+ name
+ returning do |variable| … end
+ scope
+ source.ruby.rails
+ tabTrigger
+ returning
+ uuid
+ D2783155-23F3-4B90-A317-5BD139471193
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/stylesheet_link_tag.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/stylesheet_link_tag.tmSnippet
new file mode 100644
index 000000000..b49a775f3
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/stylesheet_link_tag.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}stylesheet_link_tag {1::all}${2:, :cache => ${3:true}}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ stylesheet_link_tag
+ scope
+ text.html.ruby
+ tabTrigger
+ slt
+ uuid
+ 980C7667-9D60-49FF-AF74-A7B19B379F45
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/submit_tag.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/submit_tag.tmSnippet
new file mode 100644
index 000000000..9c6b84fc7
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/submit_tag.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ ${TM_RAILS_TEMPLATE_START_RUBY_EXPR}submit_tag "${1:Save changes}"${2:, :id => "${3:submit}"}${4:, :name => "${5:$3}"}${6:, :class => "${7:form_$3}"}${8:, :disabled => ${9:false}}${10:, :disable_with => "${11:Please wait...}"}${TM_RAILS_TEMPLATE_END_RUBY_EXPR}
+ name
+ submit_tag
+ scope
+ text.html.ruby, text.haml
+ tabTrigger
+ st
+ uuid
+ D0E29200-E910-11DC-A399-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/t_binary (tcbi).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/t_binary (tcbi).tmSnippet
new file mode 100644
index 000000000..b0a8b49be
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/t_binary (tcbi).tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.binary :${1:title}${2:, :limit => ${3:2}.megabytes}
+t.$0
+ name
+ t.binary (tcbi)
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ t.
+ uuid
+ 7CE57C6C-E4BE-11DC-A11A-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/t_boolean (tcb).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/t_boolean (tcb).tmSnippet
new file mode 100644
index 000000000..9310b8359
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/t_boolean (tcb).tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.boolean :${1:title}
+t.$0
+ name
+ t.boolean (tcb)
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ t.
+ uuid
+ 6BE6F315-E4BE-11DC-A11A-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/t_date (tcda).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/t_date (tcda).tmSnippet
new file mode 100644
index 000000000..c1199ab2f
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/t_date (tcda).tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.date :${1:title}
+t.$0
+ name
+ t.date (tcda)
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ t.
+ uuid
+ 61CF5B32-E4BE-11DC-A11A-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/t_datetime (tcdt).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/t_datetime (tcdt).tmSnippet
new file mode 100644
index 000000000..a8fc8276d
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/t_datetime (tcdt).tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.datetime :${1:title}
+t.$0
+ name
+ t.datetime (tcdt)
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ t.
+ uuid
+ 3458B140-E4BE-11DC-A11A-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/t_decimal (tcd).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/t_decimal (tcd).tmSnippet
new file mode 100644
index 000000000..d2d03e7c2
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/t_decimal (tcd).tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.decimal :${1:title}${2:${3:, :precision => ${4:10}}${5:, :scale => ${6:2}}}
+t.$0
+ name
+ t.decimal (tcd)
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ t.
+ uuid
+ 26C09807-E4BE-11DC-A11A-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/t_float (tcf).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/t_float (tcf).tmSnippet
new file mode 100644
index 000000000..e900c1ef6
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/t_float (tcf).tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.float :${1:title}
+t.$0
+ name
+ t.float (tcf)
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ t.
+ uuid
+ 1BDC463A-E4BE-11DC-A11A-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/t_integer (tci).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/t_integer (tci).tmSnippet
new file mode 100644
index 000000000..543404934
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/t_integer (tci).tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.integer :${1:title}
+t.$0
+ name
+ t.integer (tci)
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ t.
+ uuid
+ 0E63B7D5-E4BE-11DC-A11A-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/t_lock_version (tcl).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/t_lock_version (tcl).tmSnippet
new file mode 100644
index 000000000..931303f52
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/t_lock_version (tcl).tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.integer :lock_version, :null => false, :default => 0
+t.$0
+ name
+ t.lock_version (tcl)
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ t.
+ uuid
+ A677FFD4-E4BE-11DC-A11A-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/t_references (tcr).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/t_references (tcr).tmSnippet
new file mode 100644
index 000000000..2dba2cbda
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/t_references (tcr).tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.references :${1:taggable}${2:, :polymorphic => ${3:{ :default => '${4:Photo}' \}}}
+t.$0
+ name
+ t.references (tcr)
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ t.
+ uuid
+ B6D9225C-E4BE-11DC-A11A-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/t_rename (tre).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/t_rename (tre).tmSnippet
new file mode 100644
index 000000000..2e8b1c726
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/t_rename (tre).tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.rename(:${1:old_column_name}, :${2:new_column_name})
+t.$0
+ name
+ t.rename (tre)
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ t.
+ uuid
+ 9D4E30E2-4A61-4941-B9F3-BEE97552747A
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/t_string (tcs).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/t_string (tcs).tmSnippet
new file mode 100644
index 000000000..e6500a8af
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/t_string (tcs).tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.string :${1:title}
+t.$0
+ name
+ t.string (tcs)
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ t.
+ uuid
+ B757F7E5-E4BD-11DC-A11A-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/t_text (tct).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/t_text (tct).tmSnippet
new file mode 100644
index 000000000..94acdbd4b
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/t_text (tct).tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.text :${1:title}
+t.$0
+ name
+ t.text (tct)
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ t.
+ uuid
+ FFE7B820-E4BD-11DC-A11A-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/t_time (tcti).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/t_time (tcti).tmSnippet
new file mode 100644
index 000000000..8b70a5889
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/t_time (tcti).tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.time :${1:title}
+t.$0
+ name
+ t.time (tcti)
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ t.
+ uuid
+ 537BDD48-E4BE-11DC-A11A-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/t_timestamp (tcts).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/t_timestamp (tcts).tmSnippet
new file mode 100644
index 000000000..2dcd886ea
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/t_timestamp (tcts).tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.timestamp :${1:title}
+t.$0
+ name
+ t.timestamp (tcts)
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ t.
+ uuid
+ 49643690-E4BE-11DC-A11A-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/t_timestamps (tctss).tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/t_timestamps (tctss).tmSnippet
new file mode 100644
index 000000000..3957742af
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/t_timestamps (tctss).tmSnippet
@@ -0,0 +1,17 @@
+
+
+
+
+ content
+ t.timestamps
+t.$0
+ name
+ t.timestamps (tctss)
+ scope
+ meta.rails.migration.create_table, meta.rails.migration.change_table
+ tabTrigger
+ t.
+ uuid
+ 950B0BF2-E4BE-11DC-A11A-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_acceptance_of if.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/validates_acceptance_of if.tmSnippet
new file mode 100644
index 000000000..726d59a38
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_acceptance_of if.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_acceptance_of :${1:terms}${2:${3:, :accept => "${4:1}"}${5:, :message => "${6:You must accept the terms of service}"}}, :if => proc { |obj| ${7:obj.condition?} }}
+ name
+ validates_acceptance_of if
+ scope
+ source.ruby.rails
+ tabTrigger
+ vaoif
+ uuid
+ A2477223-AD5A-4723-8052-943CE9BA634D
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_acceptance_of.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/validates_acceptance_of.tmSnippet
new file mode 100644
index 000000000..0869ab9ea
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_acceptance_of.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_acceptance_of :${1:terms}${2:${3:, :accept => "${4:1}"}${5:, :message => "${6:You must accept the terms of service}"}}
+ name
+ validates_acceptance_of
+ scope
+ source.ruby.rails
+ tabTrigger
+ vao
+ uuid
+ 89198999-7E6D-4D97-A20E-45263E1CA993
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_associated (va).plist b/bundles/ruby-on-rails.tmbundle/Snippets/validates_associated (va).plist
new file mode 100644
index 000000000..4827d3b7c
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_associated (va).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_associated :${1:attribute}${2:, :on => :${3:create}}
+ name
+ validates_associated
+ scope
+ source.ruby.rails
+ tabTrigger
+ va
+ uuid
+ 47944705-F605-4ED4-B4C0-9E823EE25138
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_associated if (vaif).plist b/bundles/ruby-on-rails.tmbundle/Snippets/validates_associated if (vaif).plist
new file mode 100644
index 000000000..a24433d78
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_associated if (vaif).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_associated :${1:attribute}${2:, :on => :${3:create}, :if => proc { |obj| ${5:obj.condition?} }}
+ name
+ validates_associated if
+ scope
+ source.ruby.rails
+ tabTrigger
+ vaif
+ uuid
+ 85E9264C-5414-4FA0-AC07-F305A798ED46
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_confirmation_of (vc).plist b/bundles/ruby-on-rails.tmbundle/Snippets/validates_confirmation_of (vc).plist
new file mode 100644
index 000000000..6d4711a0e
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_confirmation_of (vc).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_confirmation_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:should match confirmation}"}
+ name
+ validates_confirmation_of
+ scope
+ source.ruby.rails
+ tabTrigger
+ vc
+ uuid
+ B5893618-D07C-48F1-8867-736D0AAFF0E7
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_confirmation_of if (vcif).plist b/bundles/ruby-on-rails.tmbundle/Snippets/validates_confirmation_of if (vcif).plist
new file mode 100644
index 000000000..b747ad17b
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_confirmation_of if (vcif).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_confirmation_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:should match confirmation}", :if => proc { |obj| ${5:obj.condition?} }}
+ name
+ validates_confirmation_of if
+ scope
+ source.ruby.rails
+ tabTrigger
+ vcif
+ uuid
+ 1354726C-DA64-4CA6-A099-26626A865D8D
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_exclusion_of (ve).plist b/bundles/ruby-on-rails.tmbundle/Snippets/validates_exclusion_of (ve).plist
new file mode 100644
index 000000000..50783f6a1
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_exclusion_of (ve).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_exclusion_of :${1:attribute}${2:, :in => ${3:%w( ${4:mov avi} )}, :on => :${5:create}, :message => "${6:extension %s is not allowed}"}
+ name
+ validates_exclusion_of
+ scope
+ source.ruby.rails
+ tabTrigger
+ ve
+ uuid
+ 4CC98A56-B60B-4A89-80E0-400C5314A050
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_exclusion_of if (veif).plist b/bundles/ruby-on-rails.tmbundle/Snippets/validates_exclusion_of if (veif).plist
new file mode 100644
index 000000000..5f7079567
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_exclusion_of if (veif).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_exclusion_of :${1:attribute}${2:, :in => ${3:%w( ${4:mov avi} )}, :on => :${5:create}, :message => "${6:extension %s is not allowed}"}, :if => proc { |obj| ${7:obj.condition?} }}
+ name
+ validates_exclusion_of if
+ scope
+ source.ruby.rails
+ tabTrigger
+ veif
+ uuid
+ 869AB0B7-12DD-440A-905A-BFB1E0E16E1C
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_format_of if.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/validates_format_of if.tmSnippet
new file mode 100644
index 000000000..abeb64e8a
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_format_of if.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_format_of :${1:attribute}, :with => /${2:^[${3:\w\d}]+\$}/${4:, :on => :${5:create}, :message => "${6:is invalid}"}, :if => proc { |obj| ${7:obj.condition?} }}
+ name
+ validates_format_of if
+ scope
+ source.ruby.rails
+ tabTrigger
+ vfif
+ uuid
+ 14BF0586-F2E8-4AB3-BB4B-E49099384403
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_format_of.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/validates_format_of.tmSnippet
new file mode 100644
index 000000000..177c31107
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_format_of.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_format_of :${1:attribute}, :with => /${2:^[${3:\w\d}]+\$}/${4:, :on => :${5:create}, :message => "${6:is invalid}"}
+ name
+ validates_format_of
+ scope
+ source.ruby.rails
+ tabTrigger
+ vf
+ uuid
+ EB47FBA1-AFB3-42F9-94A4-552D3175C17A
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_inclusion_of if.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/validates_inclusion_of if.tmSnippet
new file mode 100644
index 000000000..235d87bcf
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_inclusion_of if.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_inclusion_of :${1:attribute}${2:, :in => ${3:%w( ${4:mov avi} )}, :on => :${5:create}, :message => "${6:extension %s is not included in the list}"}, :if => proc { |obj| ${7:obj.condition?} }}
+ name
+ validates_inclusion_of if
+ scope
+ source.ruby.rails
+ tabTrigger
+ viif
+ uuid
+ 47FF50AF-E9BF-11DC-8518-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_inclusion_of.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/validates_inclusion_of.tmSnippet
new file mode 100644
index 000000000..6aaa9f173
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_inclusion_of.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_inclusion_of :${1:attribute}${2:, :in => ${3:%w( ${4:mov avi} )}, :on => :${5:create}, :message => "${6:extension %s is not included in the list}"}
+ name
+ validates_inclusion_of
+ scope
+ source.ruby.rails
+ tabTrigger
+ vi
+ uuid
+ 4611F02E-E9BF-11DC-8518-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_length_of (vl).plist b/bundles/ruby-on-rails.tmbundle/Snippets/validates_length_of (vl).plist
new file mode 100644
index 000000000..433f9b46b
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_length_of (vl).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_length_of :${1:attribute}, :within => ${2:3..20}${3:, :on => :${4:create}, :message => "${5:must be present}"}
+ name
+ validates_length_of
+ scope
+ source.ruby.rails
+ tabTrigger
+ vl
+ uuid
+ 5CE8838A-BF2C-497E-B87A-E90C3BC482E0
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_length_of if.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/validates_length_of if.tmSnippet
new file mode 100644
index 000000000..025e14658
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_length_of if.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_length_of :${1:attribute}, :within => ${2:3..20}${3:, :on => :${4:create}, :message => "${5:must be present}"}, :if => proc { |obj| ${6:obj.condition?} }}
+ name
+ validates_length_of if
+ scope
+ source.ruby.rails
+ tabTrigger
+ vlif
+ uuid
+ EC511A43-D3B7-11DC-BA49-00112475D960
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_numericality_of if.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/validates_numericality_of if.tmSnippet
new file mode 100644
index 000000000..675bc4617
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_numericality_of if.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_numericality_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:is not a number}"}, :if => proc { |obj| ${5:obj.condition?} }}
+ name
+ validates_numericality_of if
+ scope
+ source.ruby.rails
+ tabTrigger
+ vnif
+ uuid
+ CF506019-E964-4172-A3DA-475AE3B65558
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_numericality_of.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/validates_numericality_of.tmSnippet
new file mode 100644
index 000000000..633edbf29
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_numericality_of.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_numericality_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:is not a number}"}
+ name
+ validates_numericality_of
+ scope
+ source.ruby.rails
+ tabTrigger
+ vn
+ uuid
+ B21BA16D-7C04-4912-8488-425CDCC332A8
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_presence_of (vp).plist b/bundles/ruby-on-rails.tmbundle/Snippets/validates_presence_of (vp).plist
new file mode 100644
index 000000000..a502de862
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_presence_of (vp).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_presence_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:can't be blank}"}
+ name
+ validates_presence_of
+ scope
+ source.ruby.rails
+ tabTrigger
+ vp
+ uuid
+ 5DAC28A7-33C8-4DA7-9E85-56618D6BEC9F
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_presence_of if (vpif) 2.plist b/bundles/ruby-on-rails.tmbundle/Snippets/validates_presence_of if (vpif) 2.plist
new file mode 100644
index 000000000..5dbd39c92
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_presence_of if (vpif) 2.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_presence_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:can't be blank}"}, :if => proc { |obj| ${5:obj.condition?} }}
+ name
+ validates_presence_of if
+ scope
+ source.ruby.rails
+ tabTrigger
+ vpif
+ uuid
+ F5CBBE16-F5CC-4EDA-8BC6-30281BD7D854
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_uniqueness_of (vu).plist b/bundles/ruby-on-rails.tmbundle/Snippets/validates_uniqueness_of (vu).plist
new file mode 100644
index 000000000..3b96b2f41
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_uniqueness_of (vu).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_uniqueness_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:must be unique}"}
+ name
+ validates_uniqueness_of
+ scope
+ source.ruby.rails
+ tabTrigger
+ vu
+ uuid
+ F8316545-9AE4-4C7F-87ED-A2C00E6637FA
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/validates_uniqueness_of if (vuif).plist b/bundles/ruby-on-rails.tmbundle/Snippets/validates_uniqueness_of if (vuif).plist
new file mode 100644
index 000000000..edd92f65d
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/validates_uniqueness_of if (vuif).plist
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ validates_uniqueness_of :${1:attribute}${2:, :on => :${3:create}, :message => "${4:must be unique}", :if => proc { |obj| ${6:obj.condition?} }}
+ name
+ validates_uniqueness_of if
+ scope
+ source.ruby.rails
+ tabTrigger
+ vuif
+ uuid
+ 43680344-0818-42BF-95B4-58CD2D76545B
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/verify (verify).plist b/bundles/ruby-on-rails.tmbundle/Snippets/verify (verify).plist
new file mode 100644
index 000000000..62d69f108
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/verify (verify).plist
@@ -0,0 +1,19 @@
+
+
+
+
+ bundlePath
+ /Users/tobi/Library/Application Support/TextMate/Bundles/Custom.tmbundle
+ content
+ verify :only => [:$1], :method => :post, :render => {:status => 500, :text => "use HTTP-POST"}
+
+ name
+ verify — render
+ scope
+ source.ruby.rails
+ tabTrigger
+ verify
+ uuid
+ 9ECBF20C-003E-41D9-A881-4BAC0656F9DC
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/verify - redirect (verify).plist b/bundles/ruby-on-rails.tmbundle/Snippets/verify - redirect (verify).plist
new file mode 100644
index 000000000..3971e3ff7
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/verify - redirect (verify).plist
@@ -0,0 +1,19 @@
+
+
+
+
+ bundlePath
+ /Users/tobi/Library/Application Support/TextMate/Bundles/Custom.tmbundle
+ content
+ verify :only => [:$1], :session => :user, :params => :id, :redirect_to => {:action => '${2:index}'}
+
+ name
+ verify — redirect
+ scope
+ source.ruby.rails
+ tabTrigger
+ verify
+ uuid
+ 7BBD3F57-57A5-4CD0-8E79-B931021FC110
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/wants_format.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/wants_format.tmSnippet
new file mode 100644
index 000000000..ac8def947
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/wants_format.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ wants.${1:js|xml|html}${2: { $0 \}}
+ name
+ wants.format
+ scope
+ meta.rails.controller
+ tabTrigger
+ wants
+ uuid
+ 3F26FDB4-ACF9-4856-9312-6A4D78DC8564
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/xhr delete.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/xhr delete.tmSnippet
new file mode 100644
index 000000000..aa2d909ba
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/xhr delete.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ xhr :delete, :${1:destroy}, :id => ${2:1}$0
+ name
+ xhr delete
+ scope
+ source.ruby.rails
+ tabTrigger
+ xdelete
+ uuid
+ F1BE0C3D-7203-43E9-BEFB-D1A99CDD31C1
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/xhr get.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/xhr get.tmSnippet
new file mode 100644
index 000000000..2bc363728
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/xhr get.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ xhr :get, :${1:show}${2:, :id => ${3:1}}$0
+ name
+ xhr get
+ scope
+ source.ruby.rails
+ tabTrigger
+ xget
+ uuid
+ 78FCF992-D01B-404F-BC54-5EE7B91F999A
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/xhr post.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/xhr post.tmSnippet
new file mode 100644
index 000000000..064195d7a
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/xhr post.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ xhr :post, :${1:create}, :${2:object} => { $3 }
+ name
+ xhr post
+ scope
+ source.ruby.rails
+ tabTrigger
+ xpost
+ uuid
+ 62C3838B-0790-4FC2-8425-F273A57F5D33
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Snippets/xhr put.tmSnippet b/bundles/ruby-on-rails.tmbundle/Snippets/xhr put.tmSnippet
new file mode 100644
index 000000000..5d1fdd999
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Snippets/xhr put.tmSnippet
@@ -0,0 +1,16 @@
+
+
+
+
+ content
+ xhr :put, :${1:update}, :id => ${2:1}, :${3:object} => { $4 }$0
+ name
+ xhr put
+ scope
+ source.ruby.rails
+ tabTrigger
+ xput
+ uuid
+ C12C98A5-74E5-4E70-9ADB-8783455D6539
+
+
diff --git a/bundles/ruby-on-rails.tmbundle/Support/bin/create_partial_from_selection.rb b/bundles/ruby-on-rails.tmbundle/Support/bin/create_partial_from_selection.rb
new file mode 100755
index 000000000..4eb54a9fa
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Support/bin/create_partial_from_selection.rb
@@ -0,0 +1,94 @@
+#!/usr/bin/env ruby
+# encoding: utf-8
+
+# Copyright:
+# (c) 2006 syncPEOPLE, LLC.
+# Visit us at http://syncpeople.com/
+# Author: Duane Johnson (duane.johnson@gmail.com)
+# Description:
+# Creates a partial from the selected text (asks for the partial name)
+# and replaces the text with a "render :partial => [partial_name]" erb fragment.
+
+require 'rails_bundle_tools'
+
+current_file = RailsPath.new
+
+# Make sure we're in a view file
+unless current_file.file_type == :view
+ TextMate.exit_show_tool_tip("The ‘create partial from selection’ action works within view files only.")
+end
+
+# If text is selected, create a partial out of it
+if TextMate.selected_text
+ partial_name = TextMate::UI.request_string(
+ :title => "Create a partial from the selected text",
+ :default => "partial",
+ :prompt => "Name of the new partial: (omit the _ and .html.erb)",
+ :button1 => 'Create'
+ )
+
+ if partial_name
+ path = current_file.dirname
+ partial = File.join(path, "_#{partial_name}.html.erb")
+
+ # Create the partial file
+ if File.exist?(partial)
+ unless TextMate::UI.request_confirmation(
+ :button1 => "Overwrite",
+ :button2 => "Cancel",
+ :title => "The partial file already exists.",
+ :prompt => "Do you want to overwrite it?"
+ )
+ TextMate.exit_discard
+ end
+ end
+
+ file = File.open(partial, "w") { |f| f.write(TextMate.selected_text) }
+ TextMate.rescan_project
+
+ # Return the new render :partial line
+ print "<%= render :partial => '#{partial_name}' %>\n"
+ else
+ TextMate.exit_discard
+ end
+else
+ # Otherwise, toggle inline partials if they exist
+
+ text = ""
+ partial_block_re =
+ /\n(.+)\n/m
+
+ # Inline partials exist?
+ if current_file.buffer =~ partial_block_re
+ text = current_file.buffer.text
+ while text =~ partial_block_re
+ partial_name, partial_text = $1, $2
+ File.open(partial_name, "w") { |f| f.write $2 }
+ text.sub! partial_block_re, ''
+ end
+ else
+ # See if there are any render :partial statements to expand
+ current_file.buffer.lines.each_with_index do |line, i|
+ text << line
+ if line =~ /render[\s\(].*:partial\s*=>\s*['"](.+?)['"]/
+ partial_name = $1
+ modules = current_file.modules + [current_file.controller_name]
+
+ # Check for absolute path to partial file
+ if partial_name.include?('/')
+ pieces = partial_name.split('/')
+ partial_name = pieces.pop
+ modules = pieces
+ end
+
+ partial = File.join(current_file.rails_root, 'app', 'views', modules, "_#{partial_name}.html.erb")
+
+ text << "\n"
+ text << IO.read(partial).gsub("\r\n", "\n")
+ text << "\n"
+ end
+ end
+ end
+ print text
+ TextMate.exit_replace_document
+end
\ No newline at end of file
diff --git a/bundles/ruby-on-rails.tmbundle/Support/bin/fixture_auto_complete.rb b/bundles/ruby-on-rails.tmbundle/Support/bin/fixture_auto_complete.rb
new file mode 100644
index 000000000..04a1a942f
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Support/bin/fixture_auto_complete.rb
@@ -0,0 +1,84 @@
+#!/usr/bin/env ruby
+
+require 'rails_bundle_tools'
+require 'yaml'
+require File.join(ENV['TM_SUPPORT_PATH'], "lib", "escape")
+DIALOG = ENV['DIALOG']
+
+def parse_line
+ current_line = TextMate.current_line
+ if RailsPath.new.file_type == :fixture
+ if fixture_finder = current_line.match(/^([\s\t]+)\b([a-z_]+)\:([a-z_]*)/)
+ [:fixture] + fixture_finder[1..3]
+ end
+ else
+ if fixture_finder = current_line.match(/^([\s\t]+).*\b([a-z_]+)\(\:([a-z_]*)\)/)
+ [:test] + fixture_finder[1..3]
+ end
+ end
+end
+
+def load_referenced_fixture_file(ref)
+ ref_plural = Inflector.pluralize(ref)
+ ref_file = File.join(TextMate.project_directory, "test", "fixtures", "#{ref_plural}.yml")
+ if (!File.exist?(ref_file))
+ ref_file = File.join(TextMate.project_directory, "spec", "fixtures", "#{ref_plural}.yml")
+ end
+ if (!File.exist?(ref_file))
+ puts "Could not find any #{ref} fixtures."
+ TextMate.exit_show_tool_tip
+ end
+ YAML.load_file(ref_file)
+end
+
+def ask_for_fixture_or_exit(fixtures)
+ require "#{ENV['TM_SUPPORT_PATH']}/lib/osx/plist"
+ h = fixtures.map do |f|
+ {'title' => f, 'fixture' => f}
+ end
+ pl = {'menuItems' => h}.to_plist
+ res = OSX::PropertyList::load(`#{e_sh DIALOG} -up #{e_sh pl}`)
+ TextMate.exit_discard unless res.has_key? 'selectedMenuItem'
+ res['selectedMenuItem']['fixture']
+end
+
+def filter_fixtures(fixtures, filter)
+ if !filter.empty? && ARGV[0] != "preserve"
+ fixtures.select do |f|
+ f.include? filter
+ end
+ else
+ fixtures
+ end
+end
+
+# 'foo' => ':foo' and 'foo-bar' => ':"foo-bar"'
+def symbolize_name(name)
+ name.to_sym.inspect
+end
+
+filetype, start_line_gap, ref, filter = parse_line
+filter = "" if filter.nil?
+foreign_fixtures = load_referenced_fixture_file(ref).keys
+candidates = filter_fixtures(foreign_fixtures, filter)
+if candidates.empty?
+ puts "No match found for #{filter}"
+ TextMate.exit_show_tool_tip
+end
+selected_fixture = ask_for_fixture_or_exit(candidates)
+
+if ARGV[0] == "preserve"
+ print TextMate.current_line.rstrip
+ if !filter.empty?
+ print ", "
+ else
+ print " "
+ end
+ print selected_fixture
+else
+ if filetype == :fixture
+ print "#{start_line_gap}#{ref}: #{selected_fixture}"
+ else
+ print "#{start_line_gap}@#{Inflector.singularize ref} = #{ref}(#{symbolize_name selected_fixture})"
+ end
+end
diff --git a/bundles/ruby-on-rails.tmbundle/Support/bin/generate.rb b/bundles/ruby-on-rails.tmbundle/Support/bin/generate.rb
new file mode 100755
index 000000000..2a8dff8f0
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Support/bin/generate.rb
@@ -0,0 +1,71 @@
+#!/usr/bin/env ruby
+
+# Copyright:
+# (c) 2006 syncPEOPLE, LLC.
+# Visit us at http://syncpeople.com/
+# Author: Duane Johnson (duane.johnson@gmail.com)
+# Description:
+# Asks what to generate and what name to use, then runs script/generate.
+
+require 'rails_bundle_tools'
+require 'fileutils'
+require File.dirname(__FILE__) + "/../lib/rails/generate"
+
+# Look for (created) files and return an array of them
+def files_from_generator_output(output, type = 'create')
+ output.to_a.map { |line| line.scan(/#{type}\s+([^\s]+)$/).flatten.first }.compact.select { |f| File.exist?(f) and !File.directory?(f) }
+end
+
+Generator.setup
+
+if choice = TextMate.choose("Generate:", Generator.names.map { |name| Inflector.humanize name }, :title => "Rails Generator")
+ arguments = TextMate::UI.request_string(
+ :title => "#{Inflector.humanize Generator.generators[choice].name} Generator",
+ :default => Generator.generators[choice].default_answer,
+ :prompt => Generator.generators[choice].question,
+ :button1 => 'Generate'
+ )
+
+ if arguments
+ options = ""
+
+ case choice
+ when 0
+ options = TextMate::UI.request_string(
+ :title => "Scaffold Controller Name",
+ :prompt => "Name the new controller for the scaffold:",
+ :button1 => 'Continue'
+ )
+ options = "'#{options}'"
+ when 1
+ options = TextMate::UI.request_string(
+ :title => "Controller Actions",
+ :default => "index new create edit update destroy",
+ :prompt => "List any actions you would like created for the controller:",
+ :button1 => 'Create'
+ )
+ end
+
+ # add the --svn option, if needed
+ proj_dir = ENV["TM_PROJECT_DIRECTORY"]
+ if proj_dir and File.exist?(File.join(proj_dir, ".svn"))
+ options << " --svn"
+ end
+
+ rails_root = RailsPath.new.rails_root
+ FileUtils.cd rails_root
+ command = "script/generate #{Generator.generators[choice].name} #{arguments} #{options}"
+ $logger.debug "Command: #{command}"
+
+ output = ruby(command)
+ $logger.debug "Output: #{output}"
+ TextMate.rescan_project
+ files = files_from_generator_output(output)
+ files.each { |f| TextMate.open(File.join(rails_root, f)) }
+ TextMate::UI.simple_notification(
+ :title => 'Generator Complete',
+ :summary => "Done generating #{Generator.generators[choice].name}",
+ :log => output
+ )
+ end
+end
diff --git a/bundles/ruby-on-rails.tmbundle/Support/bin/generate_quick_migration.rb b/bundles/ruby-on-rails.tmbundle/Support/bin/generate_quick_migration.rb
new file mode 100644
index 000000000..eb4fd5147
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Support/bin/generate_quick_migration.rb
@@ -0,0 +1,60 @@
+#!/usr/bin/env ruby
+
+# Copyright:
+# (c) 2006 InquiryLabs, Inc.
+# Visit us at http://inquirylabs.com/
+# Author: Duane Johnson (duane.johnson@gmail.com)
+# Description:
+# Generates a migration file from the selection or current word. This is much faster than calling upon
+# Rails' built-in generate migration code.
+
+require 'rails_bundle_tools'
+require 'fileutils'
+
+selection = TextMate::UI.request_string(
+ :title => "Quick Migration Generator",
+ :default => "CreateUserTable",
+ :prompt => "Name the new migration:",
+ :button1 => 'Create'
+)
+
+if selection.size < 3 or selection.size > 255
+ print "Please highlight the name of the migration you want to create"
+ TextMate.exit_show_tool_tip
+end
+
+rails_root = RailsPath.new.rails_root
+migration_dir = File.join(rails_root, "db", "migrate")
+files = Dir.glob(File.join(migration_dir, "[0-9][0-9][0-9]_*"))
+if files.empty?
+ number = "001"
+else
+ number = File.basename(files[-1])[0..2].succ
+end
+
+if selection =~ /^[a-z]/ or selection.include?("_")
+ # The selected text is an underscored word
+ underscored = selection
+ camelized = underscored.camelize
+else
+ # The selected text is a camelized word
+ camelized = selection
+ underscored = camelized.underscore
+end
+
+generated_code = <<-RUBY
+class #{camelized} < ActiveRecord::Migration
+ def self.up
+ mtab
+ end
+
+ def self.down
+ end
+end
+RUBY
+
+FileUtils.mkdir_p migration_dir
+new_migration_filename = File.join(migration_dir, number + "_" + underscored + ".rb")
+File.open(new_migration_filename, "w") { |f| f.write generated_code }
+TextMate.rescan_project
+TextMate.open(new_migration_filename, 2, 8)
diff --git a/bundles/ruby-on-rails.tmbundle/Support/bin/go_to_alternate_file.rb b/bundles/ruby-on-rails.tmbundle/Support/bin/go_to_alternate_file.rb
new file mode 100755
index 000000000..2ae696c56
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Support/bin/go_to_alternate_file.rb
@@ -0,0 +1,13 @@
+#!/usr/bin/env ruby
+
+# Copyright:
+# (c) 2006 syncPEOPLE, LLC.
+# Visit us at http://syncpeople.com/
+# Author: Duane Johnson (duane.johnson@gmail.com)
+# Description:
+# Makes an intelligent decision on which file to go to based on the current line or current context.
+
+require 'rails_bundle_tools'
+require 'rails/command_go_to_file'
+
+CommandGoToFile.alternate(ARGV)
\ No newline at end of file
diff --git a/bundles/ruby-on-rails.tmbundle/Support/bin/go_to_file_on_current_line.rb b/bundles/ruby-on-rails.tmbundle/Support/bin/go_to_file_on_current_line.rb
new file mode 100755
index 000000000..d64dae4b7
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Support/bin/go_to_file_on_current_line.rb
@@ -0,0 +1,13 @@
+#!/usr/bin/env ruby
+
+# Copyright:
+# (c) 2006 syncPEOPLE, LLC.
+# Visit us at http://syncpeople.com/
+# Author: Duane Johnson (duane.johnson@gmail.com)
+# Description:
+# Makes an intelligent decision on which file to go to based on the current line or current context.
+
+require 'rails_bundle_tools'
+require 'rails/command_go_to_file'
+
+CommandGoToFile.on_current_line
\ No newline at end of file
diff --git a/bundles/ruby-on-rails.tmbundle/Support/bin/insert_add_column_or_create_table.rb b/bundles/ruby-on-rails.tmbundle/Support/bin/insert_add_column_or_create_table.rb
new file mode 100755
index 000000000..3614b4d2d
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Support/bin/insert_add_column_or_create_table.rb
@@ -0,0 +1,67 @@
+#!/usr/bin/env ruby
+require ENV['TM_BUNDLE_SUPPORT'] + '/lib/rails_bundle_tools'
+
+def prepend(text, prefix)
+ text.to_a.map { |line| prefix + line }.join
+end
+
+def unprepend(text, prefix)
+ text.to_a.map { |line| line.index(prefix) == 0 ? line.sub(prefix, '') : line }.join
+end
+
+buffer = Buffer.new(STDIN.read, 0, 0)
+
+table_name = column_name = nil
+case buffer.lines[0]
+when /remove_column\s+:(\w+),\s*:(\w+)/
+ table_name, column_name = $1, $2
+when /drop_table\s+:(\w+)/
+ table_name = $1
+else
+ puts "No table or column name specified. (\"#{buffer.lines[0]}\")"
+ TextMate.exit_show_tool_tip
+end
+
+# Find 'self.down' method
+if self_down = buffer.find { /^(\s*)def\s+self\.down\b/ }
+ indentation = self_down[1]
+
+ # Find the matching create_table clause in the schema.rb file
+ schema = RailsPath.new('db/schema.rb')
+ schema.buffer.line_number = schema.buffer.column_number = 0
+ if schema.exists?
+ if insert_text = schema.buffer.find { %r{^(\s*)create_table\s+["']#{table_name}['"]} }
+ from = insert_text[0] + 1
+ insert_text_indentation = insert_text[1]
+ insert_text_end = schema.buffer.find(:from => from) { %r{^#{insert_text_indentation}end\b} }
+
+ # If a column is specified, get just the column, not the whole create_table
+ if column_name
+ to = insert_text_end[0]
+ if insert_text = schema.buffer.find { %r{^\s*\w+\.(column|primary_key|string|text|integer|float|decimal|datetime|timestamp|time|date|binary|boolean)\s+['"]#{column_name}['"](.*)$} }
+ column_type = ", :#{insert_text[1]}" unless insert_text[1] == "column"
+ column_params = insert_text[2]
+ insert_text = "add_column :#{table_name}, :#{column_name}#{column_type}#{column_params}\n"
+
+ buffer.lines.insert self_down[0] + 1, prepend(insert_text, indentation + " ")
+ else
+ puts "The db/schema.rb does not have a column matching \"#{column_name}\" within create_table \"#{table_name}\"."
+ TextMate.exit_show_tool_tip
+ end
+ else
+ insert_text = unprepend(schema.buffer.lines[insert_text[0]..insert_text_end[0]], insert_text_indentation)
+ buffer.lines.insert self_down[0] + 1, prepend(insert_text + "\n", indentation + " ")
+ end
+ print buffer.lines.join.gsub(/\[press tab twice to generate (create_table|add_column)\]/, "")
+ else
+ puts "The db/schema.rb does not have a create_table \"#{table_name}\"."
+ TextMate.exit_show_tool_tip
+ end
+ else
+ puts "The db/schema.rb file doesn't exist. Can't insert create_table."
+ TextMate.exit_show_tool_tip
+ end
+else
+ puts "No self.down method found in below the caret."
+ TextMate.exit_show_tool_tip
+end
\ No newline at end of file
diff --git a/bundles/ruby-on-rails.tmbundle/Support/bin/intelligent_migration_snippet.rb b/bundles/ruby-on-rails.tmbundle/Support/bin/intelligent_migration_snippet.rb
new file mode 100755
index 000000000..95577bc40
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Support/bin/intelligent_migration_snippet.rb
@@ -0,0 +1,102 @@
+#!/usr/bin/env ruby
+#
+# Copyright (c) 2006 Sami Samhuri
+# Distributed under the MIT license
+#
+# Inserts a migration snippet into 2 places in the document, one
+# piece in self.up and one in self.down.
+
+snippets = {
+ 'rename_column' =>
+ { :up => 'rename_column :${1:table_name}, :${2:column_name}, :${3:new_column_name}$0',
+ :down => 'rename_column :$1, :$3, :$2' },
+
+ 'rename_column_continue' =>
+ { :up => 'rename_column :${1:table_name}, :${2:column_name}, :${3:new_column_name}
+mncc$0',
+ :down => 'rename_column :$1, :$3, :$2' },
+
+ 'rename_table' =>
+ { :up => 'rename_table :${1:old_table_name}, :${2:new_table_name}$0',
+ :down => 'rename_table :$2, :$1' },
+
+ 'rename_table_continue' =>
+ { :up => 'rename_table :${1:old_table_name}, :${2:new_table_name}
+mntc$0',
+ :down => 'rename_table :$2, :$1' },
+
+ 'add_remove_column' =>
+ { :up => 'add_column :${1:table_name}, :${2:column_name}, :${3:string}$0',
+ :down => 'remove_column :$1, :$2' },
+
+ 'add_remove_column_continue' =>
+ { :up => 'add_column :${1:table_name}, :${2:column_name}, :${3:string}
+marcc$0',
+ :down => 'remove_column :$1, :$2' },
+
+ 'create_drop_table' =>
+ { :up => 'create_table :${1:table_name}, :force => true do |t|
+ t.$0
+ t.timestamps
+end',
+ :down => 'drop_table :$1' },
+
+ 'change_change_table' =>
+ { :up => 'change_table :${1:table_name} do |t|
+ t.$0
+end',
+ :down => 'change_table :$1 do |t|
+end' },
+
+ 'add_remove_index' =>
+ { :up => 'add_index :${1:table_name}, :${2:column_name}$0',
+ :down => 'remove_index :$1, :$2' },
+
+ 'add_remove_unique_index' =>
+ { :up => 'add_index :${1:table_name}, ${2:[:${3:column_name}${4:, :${5:column_name}}]}, :unique => true$0',
+ :down => 'remove_index :$1, :column => $2' },
+
+ 'add_remove_named_index' =>
+ { :up => 'add_index :${1:table_name}, [:${2:column_name}${3:, :${4:column_name}}], :name => "${5:index_name}"${6:, :unique => true}$0',
+ :down => 'remove_index :$1, :name => :$5' }
+}
+
+def indent(code)
+ spaces = ' ' * (2 * ENV['TM_TAB_SIZE'].to_i)
+ lines = code.to_a.collect { |s| spaces + s }
+ lines.to_s + "\n"
+end
+
+def insert_migration(snippet, text)
+ lines = text.to_a
+
+ up_code = indent(snippet[:up])
+ down_code = indent(snippet[:down])
+
+ # insert the self.up part of the snippet
+ lines[0] = up_code
+
+ # find the beginning of self.down and insert down code, this is hardly robust.
+ # assuming self.down is after self.up in the class
+ lines.each_with_index do |line, i|
+ if line =~ /^\s*def\s+self\.down\b/
+ lines[i, 1] = [lines[i], down_code]
+ break
+ end
+ end
+ lines.to_s
+end
+
+snippet = ARGV.shift
+
+# escape chars that are special in snippets
+text = STDIN.read.gsub('[\$\`\\]', '\\\\\1')
+
+if snippets.has_key? snippet
+ output = insert_migration(snippets[snippet], text)
+else
+ # return the unmodified text
+ output = text
+end
+
+print output
\ No newline at end of file
diff --git a/bundles/ruby-on-rails.tmbundle/Support/bin/list_plugins.rb b/bundles/ruby-on-rails.tmbundle/Support/bin/list_plugins.rb
new file mode 100644
index 000000000..384783f43
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Support/bin/list_plugins.rb
@@ -0,0 +1,42 @@
+#!/usr/bin/env ruby
+
+# Copyright:
+# (c) 2006 InquiryLabs, Inc.
+# Visit us at http://inquirylabs.com/
+# Author: Duane Johnson (duane.johnson@gmail.com)
+# Description:
+# Retrieves plugin data from agilewebdevelopment.com and allows you to install directly.
+
+if RUBY_VERSION =~ /^1\.6\./ then
+ puts <<-HTML
+
Sorry, but this function requires Ruby 1.8.
+ If you do have Ruby 1.8 installed (default for Tiger users) then you need to setup the path variable in ~/.MacOSX/environment.plist.
+ For detailed instructions see the manual (scroll down to the paragraph starting with Important.)
+ HTML
+ abort
+end
+
+require ENV['TM_SUPPORT_PATH'] + '/lib/escape' # we use e_sh in the rhtml template
+require 'rails_bundle_tools'
+require "erb"
+include ERB::Util
+#require 'fileutils'
+
+root = RailsPath.new.rails_root
+
+script = File.join(root, "script", "plugin")
+enable_install = true
+unless File.exist? script
+ TextMate::UI.alert(:warning, "Plugin Script Not Found", "The 'plugin' script was not found in #{script}. Plugins will not be able to be installed.", 'OK')
+ enable_install = false
+end
+
+$tags = [
+ { :label => "FIXME", :color => "#A00000", :regexp => /FIX ?ME[\s,:]+(\S.*)$/i },
+ { :label => "TODO", :color => "#CF830D", :regexp => /TODO[\s,:]+(\S.*)$/i },
+ { :label => "CHANGED", :color => "#008000", :regexp => /CHANGED[\s,:]+(\S.*)$/ },
+ { :label => "RADAR", :color => "#0090C8", :regexp => /(.*<)ra?dar:\/(?:\/problem|)\/([&0-9]+)(>.*)$/, :trim_if_empty => true },
+]
+
+template_file = "#{TextMate.bundle_support}/templates/list_plugins.rhtml"
+print ERB.new(File.open(template_file), 0, '<>').result
diff --git a/bundles/ruby-on-rails.tmbundle/Support/bin/rake_helper.rb b/bundles/ruby-on-rails.tmbundle/Support/bin/rake_helper.rb
new file mode 100755
index 000000000..2b6a455c4
--- /dev/null
+++ b/bundles/ruby-on-rails.tmbundle/Support/bin/rake_helper.rb
@@ -0,0 +1,128 @@
+#!/usr/bin/env ruby
+# encoding: utf-8
+
+# Copyright:
+# (c) 2006 InquiryLabs, Inc.
+# Visit us at http://inquirylabs.com/
+# Author: Duane Johnson (duane.johnson@gmail.com)
+# Description:
+# Runs 'rake' and executes a particular task
+
+require 'optparse'
+require 'rails_bundle_tools'
+require "#{ENV["TM_SUPPORT_PATH"]}/lib/escape"
+require "#{ENV["TM_SUPPORT_PATH"]}/lib/web_preview"
+
+$RAKEMATE_VERSION = "$Revision$"
+
+Dir.chdir TextMate.project_directory
+
+options = {}
+
+task = ARGV.shift
+
+OptionParser.new do |opts|
+ opts.banner = "Usage: rake_helper.rb [options]"
+
+ opts.separator ""
+ opts.separator "Rake helper options:"
+
+ opts.on("-q", "--question [QUESTION TEXT]", "Ask a question before running rake.") do |question|
+ options[:question] = question
+ end
+
+ opts.on("-a", "--answer [ANSWER TEXT]", "Default answer for the question.") do |answer|
+ options[:answer] = answer
+ end
+
+ opts.on("-v", "--variable [VARIABLE]", "Variable to assign the ANSWER to.") do |variable|
+ options[:variable] = variable
+ end
+
+ opts.on("-t", "--title [TITLE TEXT]", "Title of pop-up window.") do |title|
+ options[:title] = title
+ end
+end.parse!
+
+if options[:question]
+ unless options[:answer] = TextMate::UI.request_string(
+ :title => options[:title] || "Rake",
+ :default => options[:answer] || "",
+ :prompt => options[:question],
+ :button1 => 'Continue'
+ )
+ TextMate.exit_discard
+ end
+end
+
+command = "rake #{task}"
+command += " #{options[:variable]}=#{options[:answer]}" if options[:variable] && options[:answer]
+
+# puts "#{options.inspect}
"
+
+reports = {
+ "migrate" => "Migration Report",
+ "db:migrate" => "Migration Report"
+}
+
+puts html_head(:window_title => "#{task} — RakeMate", :page_title => 'RakeMate', :sub_title => 'Rake')
+puts <<-HTML
+ #{reports[task] || "Rake Report"}
+ #{command}
+
+
RakeMate r#{$RAKEMATE_VERSION[/\d+/]}
+
+
+HTML
+
+$stdout.flush
+
+output = `#{command}`
+lines = output.to_a
+# Remove the test output from rake output
+lines.pop if lines[-1] =~ /0 tests, 0 assertions, 0 failures, 0 errors/
+
+report = ""
+
+case task
+when "db:migrate", "migrate"
+ inside_table = false
+ lines.each do |line|
+ case line
+ when /^==\s+/
+ # Replace == headings with
+ line.gsub!(/^==\s+([^=]+)[=\s]*$/, "
\\1")
+ # Replace parenthetical times with time class
+ line.gsub!(/(\([\d\.]+s\))/, "
\\1")
+ # Show details inside table
+ if !inside_table
+ line << "
"
+ end
+ inside_table = !inside_table
+ when /^--\s+(.+)$/
+ # Show command inside table cell
+ line = "
| #{$1} | "
+ when /^\s+->(.+)$/
+ # Show execution time inside table cell
+ line = "#{$1} |
\n"
+ else
+ line += "
"
+ end
+ report << line
+ end
+ report << "" if inside_table
+else
+ report += lines.join("
")
+end
+
+report += "
Done
"
+puts report
+
+puts <<-HTML
+
+
+