Rails 2.2.3 and newest Rake - ruby-on-rails

I've got problem with rake tasks. When I tried to execute any rake task I was getting following error: uninitialized constant Rake::DSL. Of course I searched through stackoverflow before this question and I founded some useful posts, for example this one: https://stackoverflow.com/a/6686628/698919
Unfortunately after above fix I am still getting another errors, which are not mentioned in any posts:
rake gems:install
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/file_utils.rb:9: warning: already initialized constant RUBY
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/file_utils.rb:86: warning: already initialized constant LN_SUPPORTED
rake aborted!
undefined method `deprecate' for #<Rake::Application:0x7f4c3b3eeb38>
/home/arti/domeny/domain/ror/Rakefile:8
My Rakefile:
require(File.join(File.dirname(__FILE__), 'config', 'boot'))
require 'rake/dsl_definition'
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'tasks/rails'
I've also tried to downgrade Rake to 0.8.7 version. Afterwards, rake tasks were working properly, but other gems didnt work and I had to get back to newest version of rake (0.9.2.2). I know that I should asap migrate to newest version of Rails, but now I need temporary fix. I can handle without migrations, but I need rake to indexing models through thinking_sphinx.

I've fixed this. Here is proper Rakefile:
require(File.join(File.dirname(__FILE__), 'config', 'boot'))
require 'rake/dsl_definition'
require 'rake'
include Rake::DSL
require 'rake/testtask'
require 'rdoc/task'
require 'tasks/rails'
begin
require 'thinking_sphinx/tasks'
rescue LoadError
puts "You can't load Thinking Sphinx tasks unless the thinking-sphinx gem is $
end

Related

Rails 2.2 - rake task loading gems after lib and so losing patches

In my lib folder i have various files which patch various core classes and gems in rails. When i run rails (unicorn, mongrel, the console), the gems get loaded first and then the patches in lib, so that the lib patches override the gems.
When i run a rake task, however, the lib files are loaded before the gems, meaning that the original gem methods override the patches and the patches are effectively ignored.
Does anyone know how i can fix this? My Rakefile just has this:
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require(File.join(File.dirname(__FILE__), 'config', 'boot'))
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'tasks/rails'
The rake task i'm running is set up like this:
desc "blah"
task :convert_worlds, [:new_instrument] => :environment do |t, args|
...
end
Grateful for any advice - Max

rake db:create issue

I have just started working on one project, and I have configured my system according to the requirement of the project i.e.
rails v => 2.3.11
ruby v => 1.8.7
When i run command "rake db:create" it comes up with error as
rake aborted!
no such file to load -- rake/rdoctask
/home/jeet/Desktop/Projects/myapp/Rakefile:8
here i am adding the content of Rakefile
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require(File.join(File.dirname(__FILE__), 'config', 'boot'))
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'tasks/rails'
I have checked the answer of this, but its not working for me.
Please suggest me a better solution
I have seen the same problem.
Possible solution: by adding gem 'rdoc' to my Gemfile and then run bundle install.

I'm using Rails 2.3.14 and Rake 10.0.2 is not running, how can I fix it?

I am using Rails 2.3.14 and Ruby 1.8.7 (used RVM to install them) but my default set is Rails 3.2 and Ruby 1.9.3. I created an empty gemset but when I list the gems available I get this:
gem list --local
bundler (1.2.3)
rake (10.0.2)
rubygems-bundler (1.1.0)
rvm (1.11.3.5)
So I just went ahead and created a Rails 2.3.14 app and wanted to create my database by running:
raked db:create
and I get this
rake aborted!
no such file to load -- rake/rdoctask
../Rakefile:8:in `require'
../Rakefile:8
../.rvm/gems/ruby-1.8.7-p370/bin/ruby_noexec_wrapper:14
(See full trace by running task with --trace)
My Rakefile is
require(File.join(File.dirname(__FILE__), 'config', 'boot'))
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'tasks/rails'
So how can I fix this problem? I'm guessing it's the rake version (mine is currently 10.0.2) from what I read the version of rake commonly used with the Rails 2.3 seires is 0.9.+
instead of require 'rake/rdoctask' do require 'rdoc/task'
rdoctask was deprecated quite a while ago

When I run "rake routes", or any rake task, it always loads my environment first

I'm trying to figure out why my non-environment rake tasks, like:
rake routes
takes so long to run. It takes over a minute as it loads the complex environment of my application. This is a Rails 2.3.12 application, and my Rakefile is as follows:
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/switchtower.rake, and they will automatically be available to Rake.
require 'thread'
require(File.join(File.dirname(__FILE__), 'config', 'boot'))
require 'rake'
require 'rake/testtask'
require 'rdoc/task'
require 'delayed/tasks'
require 'tasks/rails'
calling rake routes does depend on the rails stack and because auf this, the environment is loaded.
what you can do, is use a third party gem like sextant: https://github.com/schneems/sextant/

Installing gems tries to load the gems in my custom rake tasks before installing it

I'm developing an application using rails 2.3.5, gitorious and deploy with vlad, the OS is Linux Mint 9 Isadora.
vlad:setup and vlad:update are ok.
But when I vlad:migrate and have the same error than if I ssh on the server and try a rake gems:install
rake aborted!
no such file to load -- ya2yaml
/var/www/path/to/releases/20100622030150/Rakefile:10
(See full trace by running task with --trace)
My config/environment.rb is good:
RAILS_GEM_VERSION = '2.3.5' unless defined? RAILS_GEM_VERSION
# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')
Rails::Initializer.run do |config|
config.gem "haml"
I have a custom task in lib/tasks/db_fixtures.rake that requires ya2yaml:
namespace :export do
desc 'Create YAML test fixtures from data in an existing database.
Defaults to development database. Set RAILS_ENV to override.'
require 'rubygems'
require 'ya2yaml'
task :fixtures => [:environment] do
When I rename this file it is not loaded by rake and I don't have the error anymore when I rake gems:install
So my guess is that it looks like rake gems:install tries to load the libs in my custom tasks before installing the gems for some reason and throw me an error.
What would be a solution?
Thanks,
this might work? delay the requires on your rake task by moving them into the task itself
task :fixtures => [:environment] do
require 'rubygems'
require 'ya2yaml'
# ...
by default running rake tasks 'loads' all of the rake files

Resources