Problem while generating rspec model in Rails Project

Hi,

I am new to testing and Rspec. I have one rails project created on my
machine.
In this project under \app\models i have a file called “client.rb” which
has been already created. Now i want to generate spec file for this
model for which i am using command:

ruby script/generate rspec_model Client

Now with this command along with spec file, a file called “client.rb”
will also be generated under \app\models. But in my case since the file
“client.rb” is already present,with above command i am getting following
message:


ruby script/generate rspec_model Client

The name ‘Client’ is either already used in your application or reserved
by Ru
by on Rails.
Please choose an alternative and run this generator again.

Suggestions:

customer
node
guest


Platform and Version details:

Windows xp-professional
Ruby 1.8.6
Rails 2.3.2
Gem 1.3.1

I have also attached console snapshot for same.

I haven’t found any help related to this.Ideally in such cases it should
ask for the message regarding "whether you want to overwrite file
client.rb ? "

So can anybody please help me out regarding this issue. whether this is
related to version problem or what else earliest?

On Fri, Jun 12, 2009 at 5:35 AM, Ninad Pol[email protected] wrote:

by on Rails.

So can anybody please help me out regarding this issue. whether this is
related to version problem or what else earliest?

I’m not sure where this message is coming from but it’s not coming
from rspec. Have you tried generating with the rails generator?

ruby script/generate model Client

Does that give you the same error?

Thanks for your reply.

No, above command does not give me same error. However it creates only
the model file under \app\models and asks whether to overwrite it. But
my aim is to create rspec file under \spec\models with the actual model
file created under \app\models remaining unchanged. So using the rails
generator does not meet my objective and i have to use rspec generator
to meet the requirement.

Ideal schenario should be that rspec generator creates the desired rspec
file under \spec\models and while creating actual model file under
\app\models it should ask for whether to overwrite it. I am not getting
this schenario may be because i am missing something.It would be really
helpful if you could help me out in this.

David C. wrote:

On Fri, Jun 12, 2009 at 5:35 AM, Ninad Pol[email protected] wrote:

by on Rails.

So can anybody please help me out regarding this issue. whether this is
related to version problem or what else earliest?

I’m not sure where this message is coming from but it’s not coming
from rspec. Have you tried generating with the rails generator?

ruby script/generate model Client

Does that give you the same error?

On Mon, Jun 15, 2009 at 1:42 AM, Ninad Pol[email protected] wrote:

Thanks for your reply.

No, above command does not give me same error. However it creates only
the model file under \app\models and asks whether to overwrite it. But
my aim is to create rspec file under \spec\models with the actual model
file created under \app\models remaining unchanged. So using the rails
generator does not meet my objective and i have to use rspec generator
to meet the requirement.

I wasn’t trying to meet your requirement with this - just trying to
narrow down the problem.

Ideal schenario should be that rspec generator creates the desired rspec
file under \spec\models and while creating actual model file under
\app\models it should ask for whether to overwrite it. I am not getting
this schenario may be because i am missing something.It would be really
helpful if you could help me out in this.

The rails code that triggers this will always raise this error if the
Client constant (in your case) is already defined. This normally
doesn’t conflict with files in your app because they are not loaded
when you run generators. So it seems that something other than
app/models/client.rb is getting loaded that defines the Client
constant (either a class or a module).

Do you have any plugins that define a Client? Or perhaps you’ve got
some extension in the lib directory?

I think this problem is not related any plugin (that define a client)
simply because if i try it with any other ruby file(other than
Client.rb) also i am facing same problem.And what do you mean by some
extension in the lib directory?

David C. wrote:

On Mon, Jun 15, 2009 at 1:42 AM, Ninad Pol[email protected] wrote:

Thanks for your reply.

No, above command does not give me same error. However it creates only
the model file under \app\models and asks whether to overwrite it. But
my aim is to create rspec file under \spec\models with the actual model
file created under \app\models remaining unchanged. So using the rails
generator does not meet my objective and i have to use rspec generator
to meet the requirement.

I wasn’t trying to meet your requirement with this - just trying to
narrow down the problem.

Ideal schenario should be that rspec generator creates the desired rspec
file under \spec\models and while creating actual model file under
\app\models it should ask for whether to overwrite it. I am not getting
this schenario may be because i am missing something.It would be really
helpful if you could help me out in this.

The rails code that triggers this will always raise this error if the
Client constant (in your case) is already defined. This normally
doesn’t conflict with files in your app because they are not loaded
when you run generators. So it seems that something other than
app/models/client.rb is getting loaded that defines the Client
constant (either a class or a module).

Do you have any plugins that define a Client? Or perhaps you’ve got
some extension in the lib directory?

David C. wrote:

On Mon, Jun 15, 2009 at 8:04 AM, Ninad Pol[email protected] wrote:

I think this problem is not related any plugin (that define a client)
simply because if i try it with any other ruby file(other than
Client.rb) also i am facing same problem.

So if you do this:

rails widgets
cd widgets
script\generate model widget
script\generate rspec
script\generate rspec_model widget

The last command tells you that Widget is already defined?

And what do you mean by some extension in the lib directory?

I mean that you have a file in the lib directory in your Rails project
that defines a client. I believe that loading the rails env (which
happens when you run script\generate) loads the lib directory, so if
you have a file in there that defines Client, then you’d run into this
problem.

I am so sorry for not being replying for so long.I was busy working with
some other things and kept aside RSPEC. Above command does not gave me
any problem for “widgets” and model with name “widget” was created. But
in my project i am still getting the same problem as mentioned earlier.

On Mon, Jun 15, 2009 at 8:04 AM, Ninad Pol[email protected] wrote:

I think this problem is not related any plugin (that define a client)
simply because if i try it with any other ruby file(other than
Client.rb) also i am facing same problem.

So if you do this:

rails widgets
cd widgets
script\generate model widget
script\generate rspec
script\generate rspec_model widget

The last command tells you that Widget is already defined?

And what do you mean by some extension in the lib directory?

I mean that you have a file in the lib directory in your Rails project
that defines a client. I believe that loading the rails env (which
happens when you run script\generate) loads the lib directory, so if
you have a file in there that defines Client, then you’d run into this
problem.