Bleeding-edge story-writers, How are you structuring your specs? I am working on a new project and tried this: ./lib ./blah ./spec ./blah ./stories But it breaks autotest, so I moved stories parallel to lib and spec. Also what about suffixes? I have adopted "xyz_story_spec.rb", and "xyz.story" for the time being, with the line runner = Spec::Story::Runner::PlainTextStoryRunner.new( File.expand_path(__FILE__).gsub("_story_spec.rb", ".story") ) in the former. Simple to make TextMate recognise the RSpec files (even though they aren''t, as such) and to give an extension to the stories. Ashley -- blog @ http://aviewfromafar.net/ linked-in @ http://www.linkedin.com/in/ashleymoran currently @ home
On 10/23/07, Ashley Moran <work at ashleymoran.me.uk> wrote:> Bleeding-edge story-writers, > > How are you structuring your specs?PROJECT_ROOT/spec PROJECT_ROOT/stories They are intended to be separate beasts. This makes it more obvious. One thing we''ve toyed with is: PROJECT_ROOT/behaviour/specs PROJECT_ROOT/behaviour/stories but then a rails view spec ends up being: PROJECT_ROOT/behaviour/specs/views/controllername/index.html.erb_spec.rb pretty long, ay? Nice thing about /behaviour is that it sits right next to /app.
On Oct 23, 2007, at 9:55 pm, David Chelimsky wrote:> PROJECT_ROOT/behaviour/specs > PROJECT_ROOT/behaviour/storiesI like this> but then a rails view spec ends up being: > > PROJECT_ROOT/behaviour/specs/views/controllername/ > index.html.erb_spec.rb > > pretty long, ay?I don''t mind long paths, I think knowing where everything is is more important than absolute terseness. Besides, what else is tabbing and Cmd-T''ing for? And besides Rails will soon be a dim and distant memory for me :) I am as we speak writing an ORM package so I can *finally* dump AR. Perhaps it will be the first open source project driven by RSpec''s Story Runner? Unless someone else here has anything in the works?> Nice thing about /behaviour is that it sits right next to /app.I agree, or lib in my case. In fact it sits *above* lib, which is surely where it should be :) Also... Is there an easy way to get autotest support for behaviour/spec? I just got it working but had to copy: svn://rubyforge.org/var/svn/rspec/trunk/rspec/lib/autotest/ to ./autotest and modify ./autotest/rspec.rb so the initialize looks like this: class Autotest::Rspec < Autotest def initialize(kernel=Kernel, separator=File::SEPARATOR, alt_separator=File::ALT_SEPARATOR) # :nodoc: super() @kernel, @separator, @alt_separator = kernel, separator, alt_separator @spec_command = spec_command # watch out: Ruby bug (1.8.6): # %r(/) != /\// # since Ruby compares the REGEXP source, not the resulting pattern @test_mappings = { # note changes to paths: ^spec/ => ^behaviour/spec/ %r%^behaviour/spec/.*\.rb$% => kernel.proc { |filename, _| filename }, %r%^lib/(.*)\.rb$% => kernel.proc { |_, m| ["spec/#{m[1]}_spec.rb"] }, %r%^behaviour/spec/(spec_helper|shared/.*)\.rb$% => kernel.proc { files_matching %r%^behaviour/spec/.*_spec\.rb$% } } end # ... end (comment was more for my benefit later) Perhaps there is an easier way that doesn''t involve such code duplication. Ashley -- blog @ http://aviewfromafar.net/ linked-in @ http://www.linkedin.com/in/ashleymoran currently @ home
On 10/23/07, David Chelimsky <dchelimsky at gmail.com> wrote:> On 10/23/07, Ashley Moran <work at ashleymoran.me.uk> wrote: > > Bleeding-edge story-writers, > > > > How are you structuring your specs? > > PROJECT_ROOT/spec > PROJECT_ROOT/stories > > They are intended to be separate beasts. This makes it more obvious. > One thing we''ve toyed with is: > > PROJECT_ROOT/behaviour/specs > PROJECT_ROOT/behaviour/storiesI much prefer the flat, separate specs and stories dirs. It''s hard for me to articulate why...the best I can do is say they''re completely different beasts, as you said, meaning they deserve their own dirs, and they''re important first-level concepts in my project so I think they should be a part of root. Pat
On Oct 23, 2007, at 11:02 pm, Ashley Moran wrote:> Is there an easy way to get autotest support for behaviour/spec? I > just got it working but had to copy: > svn://rubyforge.org/var/svn/rspec/trunk/rspec/lib/autotest/ > to ./autotestNever mind... I found out it broke the new twin-file feature in TextMate, and there''s NO WAY I''m sacrificing that for even a moment. I''ve reverted to spec and stories for now. Still like the idea of behaviour though. I''d like to be able to say "this one folder will run my app and tell you everything it does". Ashley PS I did all this messing around in darcs - working with a patch based SCM makes life much easier. I worked in a test branch, then applied the patches from the test repo to the main one, but I was still able to unrecord them there, something SVN can''t do. There''s quite a few patch-based SCMs around now (I think Mercurial would be my second choice). Just thought I would give +1 to the idea in case anyone has thought of using a more flexible SCM (for RSpec). -- blog @ http://aviewfromafar.net/ linked-in @ http://www.linkedin.com/in/ashleymoran currently @ home
On 10/23/07, Ashley Moran <work at ashleymoran.me.uk> wrote:> PS I did all this messing around in darcs - working with a patch > based SCM makes life much easier. I worked in a test branch, then > applied the patches from the test repo to the main one, but I was > still able to unrecord them there, something SVN can''t do. There''s > quite a few patch-based SCMs around now (I think Mercurial would be > my second choice). Just thought I would give +1 to the idea in case > anyone has thought of using a more flexible SCM (for RSpec).+1 for Mercurial :)
"app" is short for "application", "lib" is short for "library" so why not shorten "behavior" to something like "beh" or "behav" (also avoids the 2 english spellings) /beh/specs /beh/stories On Oct 23, 2007, at 6:02 PM, Ashley Moran wrote:> > On Oct 23, 2007, at 9:55 pm, David Chelimsky wrote: > >> PROJECT_ROOT/behaviour/specs >> PROJECT_ROOT/behaviour/stories > > I like this > > >> but then a rails view spec ends up being: >> >> PROJECT_ROOT/behaviour/specs/views/controllername/ >> index.html.erb_spec.rb >> >> pretty long, ay? > > I don''t mind long paths, I think knowing where everything is is more > important than absolute terseness. Besides, what else is tabbing and > Cmd-T''ing for? > > And besides Rails will soon be a dim and distant memory for me :) I > am as we speak writing an ORM package so I can *finally* dump AR. > Perhaps it will be the first open source project driven by RSpec''s > Story Runner? Unless someone else here has anything in the works? > > >> Nice thing about /behaviour is that it sits right next to /app. > > I agree, or lib in my case. In fact it sits *above* lib, which is > surely where it should be :) > > > > Also... > > Is there an easy way to get autotest support for behaviour/spec? I > just got it working but had to copy: > svn://rubyforge.org/var/svn/rspec/trunk/rspec/lib/autotest/ > to ./autotest > > and modify ./autotest/rspec.rb so the initialize looks like this: > > class Autotest::Rspec < Autotest > > def initialize(kernel=Kernel, separator=File::SEPARATOR, > alt_separator=File::ALT_SEPARATOR) # :nodoc: > super() > @kernel, @separator, @alt_separator = kernel, separator, > alt_separator > @spec_command = spec_command > > # watch out: Ruby bug (1.8.6): > # %r(/) != /\// > # since Ruby compares the REGEXP source, not the resulting > pattern > @test_mappings = { > # note changes to paths: ^spec/ => ^behaviour/spec/ > %r%^behaviour/spec/.*\.rb$% => kernel.proc { |filename, _| > filename > }, > %r%^lib/(.*)\.rb$% => kernel.proc { |_, m| > ["spec/#{m[1]}_spec.rb"] > }, > %r%^behaviour/spec/(spec_helper|shared/.*)\.rb$% => > kernel.proc { > files_matching %r%^behaviour/spec/.*_spec\.rb$% > } > } > end > > # ... > > end > > (comment was more for my benefit later) > > Perhaps there is an easier way that doesn''t involve such code > duplication. > > Ashley > > > > -- > blog @ http://aviewfromafar.net/ > linked-in @ http://www.linkedin.com/in/ashleymoran > currently @ home > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users
On 10/23/07, Jonathan Linowes <jonathan at parkerhill.com> wrote:> "app" is short for "application", > "lib" is short for "library" > so why not shorten "behavior" to something like "beh" or "behav" > (also avoids the 2 english spellings) > > /beh/specs > /beh/storiesbeh that''s why :)
On the note of suffixes, I''ve been using _story over _spec for story files. I have also add two top level directories in my project: project/ specs/ stories/ Zach On 10/23/07, Ashley Moran <work at ashleymoran.me.uk> wrote:> > Bleeding-edge story-writers, > > How are you structuring your specs? > > I am working on a new project and tried this: > > ./lib > ./blah > ./spec > ./blah > ./stories > > But it breaks autotest, so I moved stories parallel to lib and spec. > > Also what about suffixes? > > I have adopted "xyz_story_spec.rb", and "xyz.story" for the time > being, with the line > runner = Spec::Story::Runner::PlainTextStoryRunner.new( > File.expand_path(__FILE__).gsub("_story_spec.rb", > ".story") > ) > > in the former. Simple to make TextMate recognise the RSpec files > (even though they aren''t, as such) and to give an extension to the > stories. > > > Ashley > > > -- > blog @ http://aviewfromafar.net/ > linked-in @ http://www.linkedin.com/in/ashleymoran > currently @ home > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-- Zach Dennis http://www.continuousthinking.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/rspec-users/attachments/20071023/fd2dabeb/attachment.html
On Oct 23, 2007, at 6:32 PM, David Chelimsky wrote:> On 10/23/07, Jonathan Linowes <jonathan at parkerhill.com> wrote: >> "app" is short for "application", >> "lib" is short for "library" >> so why not shorten "behavior" to something like "beh" or "behav" >> (also avoids the 2 english spellings) >> >> /beh/specs >> /beh/stories > > beh > > that''s why :) > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-userscould get existential, and just let it "be" :)
For some reason I heard that reply in Eric Cartman''s voice. "beh... you guys" fwiw I prefer separate directories - stories and specs - because they are targeted (intentionally) at different audiences. I started off trying behaviour/specs and behaviour/stories but then I thought about who would actually be looking at them in the codebase and it felt more natural that they should be sibling top-level directories. Cheers, Dan ps. Beh! On 10/23/07, David Chelimsky <dchelimsky at gmail.com> wrote:> > On 10/23/07, Jonathan Linowes <jonathan at parkerhill.com> wrote: > > "app" is short for "application", > > "lib" is short for "library" > > so why not shorten "behavior" to something like "beh" or "behav" > > (also avoids the 2 english spellings) > > > > /beh/specs > > /beh/stories > > beh > > that''s why :) > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/rspec-users/attachments/20071029/1b4f1e28/attachment-0001.html