aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--railties/CHANGELOG2
-rw-r--r--railties/lib/tasks/framework.rake31
2 files changed, 33 insertions, 0 deletions
diff --git a/railties/CHANGELOG b/railties/CHANGELOG
index 4cd8572d00..f26478836c 100644
--- a/railties/CHANGELOG
+++ b/railties/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Added Rails framework freezing tasks: freeze_gems (freeze to current gems), freeze_edge (freeze to Rails SVN trunk), unfreeze_rails (float with newest gems on system)
+
* Added update_javascripts task which will fetch all the latest js files from your current rails install. Use after updating rails. [Tobias Luetke]
* Added cleaning of RAILS_ROOT to useless elements such as '../non-dot-dot/'. Provides cleaner backtraces and error messages. [Nicholas Seckar]
diff --git a/railties/lib/tasks/framework.rake b/railties/lib/tasks/framework.rake
new file mode 100644
index 0000000000..fe2a8c09b8
--- /dev/null
+++ b/railties/lib/tasks/framework.rake
@@ -0,0 +1,31 @@
+desc "Lock this application to the current gems (by unpacking them into vendor/rails)"
+task :freeze_gems do
+ rm_rf "vendor/rails"
+ mkdir_p "vendor/rails"
+
+ for gem in %w( actionpack activerecord actionmailer activesupport actionwebservice )
+ system "cd vendor/rails; gem unpack #{gem}; mv #{gem}* #{gem}"
+ end
+
+ system "cd vendor/rails; gem unpack rails; mv rails* railties"
+end
+
+desc "Lock this application to the Edge Rails (by exporting from Subversion)"
+task :freeze_edge do
+ $stderr.close
+ svn_available = `svn --version`.size > 0
+ raise "Subversion is not installed" unless svn_available
+
+ rm_rf "vendor/rails"
+ mkdir_p "vendor/rails"
+
+ for framework in %w( railties actionpack activerecord actionmailer activesupport actionwebservice )
+ mkdir_p "vendor/rails/#{framework}"
+ system "svn export http://dev.rubyonrails.org/svn/rails/trunk/#{framework}/lib vendor/rails/#{framework}/lib"
+ end
+end
+
+desc "Unlock this application from freeze of gems or edge and return to a fluid use of system gems"
+task :unfreeze_rails do
+ rm_rf "vendor/rails"
+end \ No newline at end of file