Error in new project boot.rb

When I create a new 2.0 project (rails project_name)
Aptana shows what appears to me to be a valid error in boot.rb

The line:

if version = self.class.gem_version

is an assignment
Should this not read:

if version == self.class.gem_version

def load_rails_gem
if version = self.class.gem_version
gem ‘rails’, version
gem ‘rails’
rescue Gem::LoadError => load_error
$stderr.puts %(Missing the Rails #{version} gem. Please gem install -v=#{version} rails, update your RAILS_GEM_VERSION setting in
config/environment.rb for the Rails version you do have installed, or
comment out RAILS_GEM_VERSION to use the latest version installed.)
exit 1

There is also a second error reported in the (rescue Gem::LoadError =>
load_error) of “unused local variable load_error”

I changed the first problem to ==, but I am not sure what to do about
the second.

Thanks in advance.


You don’t have to change anything.
you can read “if version = self.class.gem_version”
as “if (version = self.class.gem_version) != nil”

For the second issue, you could just delete the “=> load_error” part,
but I wouldn’t bother, I won’t waste my time on every little warning
your IDE is giving you :slight_smile:


I am now confused.
You are saying that the statement

“if version = self.class.gem_version” is testing whether the
assignment was successful?

Could someone please explain this?

Thanks in advance.

Actually, I get it now.

A) It IS an assignment AND a test.
B) It is written in a compact and confusing manner.

It should say: (well at least it would more easily understood :slight_smile:

def load_rails_gem
version = self.class.gem_version # an assignment
if version # a test
gem ‘rails’, version
gem ‘rails’

Thanks again.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs