I'm trying to learn rspec, and came across something unexpected with
the following code. A little googling hasn't turned any answers up so
far...
module TestHelper
CONSTANT = "constant"
end
context "A context" do
include TestHelper
specify "should allow unqualified access to included constants" do
CONSTANT.should_eql "constant"
end
specify "should allow qualified access to all constants" do
TestHelper::CONSTANT.should_eql "constant"
end
end
...I would expect both specifications to pass since I think that's the
way Ruby itself behaves when using include (you get direct access to
constants in the local scope when included, right?), but the
unqualified specification fails. Is this a bug in rspec, a "feature"
of rspec, a mistake on my part, or something else?
I'm trying to learn rspec, and came across something unexpected with
the following code. A little googling hasn't turned any answers up so
far...
module TestHelper
CONSTANT = "constant"
end
context "A context" do
include TestHelper
specify "should allow unqualified access to included constants" do
CONSTANT.should_eql "constant"
end
specify "should allow qualified access to all constants" do
TestHelper::CONSTANT.should_eql "constant"
end
end
...I would expect both specifications to pass since I think that's the
way Ruby itself behaves when using include (you get direct access to
constants in the local scope when included, right?), but the
unqualified specification fails. Is this a bug in rspec, a "feature"
of rspec, a mistake on my part, or something else?
It's a known bug in rspec:
http://rubyforge.org/tracker/index.php?func=detail&aid=7613&group_id=797&atid=3152
Thanks for posting this - you may have actually shed some light on the
problem by posing the qualified and unqualified references.
Cheers,
David
···
On 2/7/07, Tekhne <peter.havens@gmail.com> wrote:
Ah, okay. Thanks a lot for the pointer. I should have searched the
tracker specifically. Next time =]
Cheers,
Pete
···
On Feb 7, 9:10 pm, "David Chelimsky" <dchelim...@gmail.com> wrote:
It's a known bug in rspec:
http://rubyforge.org/tracker/index.php?func=detail&aid=7613&group_id=\.\.\.
>
> It's a known bug in rspec:
>
> http://rubyforge.org/tracker/index.php?func=detail&aid=7613&group_id=\.\.\.
Ah, okay. Thanks a lot for the pointer. I should have searched the
tracker specifically. Next time =]
No problem.
Also - are you aware that there are lists specifically for rspec users
and developers? I try to keep an eye on rspec related messages on the
ruby-talk list, but the rspec lists have the eyes of a lot more people
so you might get better traction on your rspec questions there:
http://rubyforge.org/mail/?group_id=797
Cheers,
David
···
On 2/8/07, Tekhne <peter.havens@gmail.com> wrote:
On Feb 7, 9:10 pm, "David Chelimsky" <dchelim...@gmail.com> wrote:
Cheers,
Pete