On 2010-08-08 6:11 AM, Ashley Moran wrote:
On Aug 08, 2010, at 2:17 am, Phillip Koebbe wrote:
I have developed a system in which I require model_helper.rb in model specs,
controller_helper.rb in controllers, and (you guessed it!) view_helper.rb in
view specs. Each of those then require spec_helper.rb. I did this because I
wanted fine-grained control over what gets loaded when, which started when I
decided I wanted to use Remarkable for model specs only and didn't want it
available during other specs. Plus, I keep customizations out of
spec_helper.rb, which is a very good thing.
I think the way I worded by question may have made it sound like I was expecting everyone
using TextMate to use put "require 'spec_helper'" at the top of the file... I
didn't mean that! I was just suggesting that if a file starts with that require, then
TextMate should see it as an RSpec file. As you've pointed out, this won't get all
files, like your custom helpers. But I imagine it'd get a fairly high proportion.
Yes, I think I misunderstood what you were getting at. I would agree
that the majority of RSpec users probably leave the "require
'spec_helper'" line at the beginning of their specs and therefore the
vast majority of cases would be covered. Sadly (I guess...), I am, once
again, an outlier. I can't think of a single example file that requires
spec_helper.
This is probably like trying to swat a fly with Mack truck, but what if all
files under spec/ were considered RSpec files? Or possibly some variation of
that?
I just double checked, and spec_helper.rb isn't considered an RSpec file - and
actually, I don't think it should be.
I guess I also misunderstood what you meant by "RSpec file". I assumed
it to mean any file belonging to RSpec, but I guess what it really means
is a file with examples in it?
Also, I have a spec/support folder in most projects, with matchers etc.
They aren't RSpec files either. So this route would probably give a lot of
false positives.
It might work better if this was the default folder structure:
spec/
examples/
spec_helper.rb
support/
Then you could glob everything under "examples". I actually do this with
Cucumber, where my folder structure is:
features/
descriptions/
step_definitions/
support/
But apparently I'm alone in the world not wanting to mix .feature files in with
the support folder!
I don't think you are alone in your quest to achieve greater
organization. I am guessing that in your suggested RSpec folder
structure, the current folders of controllers|helpers|models|views would
all live under examples? I might go for that. I think some (many?) might
say that it's an unnecessary level, but I think I'd prefer that. I might
even look into doing that anyway :) After all, my Cucumber folder
structure is
cuke/
features/
steps/
support/
And I use subfolders under features and steps just like I do in RSpec.
Either way, I'm not convinced using the folder structure is the best solution.
It forces TextMate users to structure there project a certain way. If you
wanted a rails app like this:
acceptance/
app/
integration/
spec/
(or whatever) then path matching wouldn't work.
Right. I wouldn't want a particular structure to be forced upon me, so
I'd rather not see that happen to anyone.
On Aug 07, 2010, at 11:44 pm, David Chelimsky wrote:
I think it's good to do things that help end users, but we'd need a more
reliable convention to base this on. Anybody (including Ashley) got any other
suggestions?
Actually, I'm stuck :-/ I didn't think it'd be hard to identify RSpec example
group files! I'm not much of a TextMate developer though. Anyone else got
ideas?
Cheers
Ash
Here's another idea that's not so great, but maybe it will spur some
thinking in someone else. What about a custom generator (or a flag on
the official one) that added something like a shebang line at the
beginning of example files. A short comment that identifies the file,
like "# RSpec". Then a TM bundle could pick up on that and be happy. I
don't know about vim or any other editor, though.
Peace,
Phillip
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users