<?xml version="1.0" encoding="UTF-8"?>
<ticket>
  <assigned-user-id type="integer">10900</assigned-user-id>
  <attachments-count type="integer">0</attachments-count>
  <closed type="boolean">true</closed>
  <created-at type="datetime">2008-09-16T11:55:15-04:00</created-at>
  <creator-id type="integer">30519</creator-id>
  <milestone-due-on type="datetime" nil="true"></milestone-due-on>
  <milestone-id type="integer" nil="true"></milestone-id>
  <number type="integer">78</number>
  <permalink>deprecate-should_be_restful</permalink>
  <priority type="integer">27964</priority>
  <project-id type="integer">5807</project-id>
  <raw-data type="binary" nil="true" encoding="base64"></raw-data>
  <state>committed</state>
  <tag>should_be_restful</tag>
  <title>Deprecate should_be_restful</title>
  <updated-at type="datetime">2009-01-14T14:44:13-05:00</updated-at>
  <user-id type="integer">17641</user-id>
  <user-name>Sean Hussey</user-name>
  <creator-name>Dan Croak</creator-name>
  <assigned-user-name>Dan Croak</assigned-user-name>
  <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
  <original-body>should_be_restful is currently the worst portion of Shoulda and should be deprecated. Its problems:

* It dissuades the programmer from good TDD practice. It's working at too high level of abstraction and encourages the programmer to take too many big steps.
* It is an attempt to be like Rails scaffolding, which is a good way to learn REST, but the syntax is so cryptic it doesn't even accomplish that goal.
* It's near impossible to find the line in your test file that is actually failing or erroring.
* You have no idea how many tests it generates or how they're implemented, which lulls the programmer into a false sense of security.
* It's slow.

&quot;If not now, when? If not us, who?&quot;</original-body>
  <latest-body>should_be_restful is currently the worst portion of Shoulda and should be deprecated. Its problems:

* It dissuades the programmer from good TDD practice. It's working at too high level of abstraction and encourages the programmer to take too many big steps.
* It is an attempt to be like Rails scaffolding, which is a good way to learn REST, but the syntax is so cryptic it doesn't even accomplish that goal.
* It's near impossible to find the line in your test file that is actually failing or erroring.
* You have no idea how many tests it generates or how they're implemented, which lulls the programmer into a false sense of security.
* It's slow.

&quot;If not now, when? If not us, who?&quot;</latest-body>
  <original-body-html>&lt;div&gt;&lt;p&gt;should_be_restful is currently the worst portion of Shoulda and
should be deprecated. Its problems:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It dissuades the programmer from good TDD practice. It's
working at too high level of abstraction and encourages the
programmer to take too many big steps.&lt;/li&gt;
&lt;li&gt;It is an attempt to be like Rails scaffolding, which is a good
way to learn REST, but the syntax is so cryptic it doesn't even
accomplish that goal.&lt;/li&gt;
&lt;li&gt;It's near impossible to find the line in your test file that is
actually failing or erroring.&lt;/li&gt;
&lt;li&gt;You have no idea how many tests it generates or how they're
implemented, which lulls the programmer into a false sense of
security.&lt;/li&gt;
&lt;li&gt;It's slow.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&quot;If not now, when? If not us, who?&quot;&lt;/p&gt;&lt;/div&gt;</original-body-html>
  <versions type="array">
    <version type="Ticket::Version">
      <assigned-user-id type="integer">13443</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>should_be_restful is currently the worst portion of Shoulda and should be deprecated. Its problems:

* It dissuades the programmer from good TDD practice. It's working at too high level of abstraction and encourages the programmer to take too many big steps.
* It is an attempt to be like Rails scaffolding, which is a good way to learn REST, but the syntax is so cryptic it doesn't even accomplish that goal.
* It's near impossible to find the line in your test file that is actually failing or erroring.
* You have no idea how many tests it generates or how they're implemented, which lulls the programmer into a false sense of security.
* It's slow.

&quot;If not now, when? If not us, who?&quot;</body>
      <body-html>&lt;div&gt;&lt;p&gt;should_be_restful is currently the worst portion of Shoulda and
should be deprecated. Its problems:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It dissuades the programmer from good TDD practice. It's
working at too high level of abstraction and encourages the
programmer to take too many big steps.&lt;/li&gt;
&lt;li&gt;It is an attempt to be like Rails scaffolding, which is a good
way to learn REST, but the syntax is so cryptic it doesn't even
accomplish that goal.&lt;/li&gt;
&lt;li&gt;It's near impossible to find the line in your test file that is
actually failing or erroring.&lt;/li&gt;
&lt;li&gt;You have no idea how many tests it generates or how they're
implemented, which lulls the programmer into a false sense of
security.&lt;/li&gt;
&lt;li&gt;It's slow.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&quot;If not now, when? If not us, who?&quot;&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-09-16T11:55:15-04:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>new</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2008-09-16T11:55:20-04:00</updated-at>
      <user-id type="integer">30519</user-id>
      <user-name>Dan Croak</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Tammer Saleh</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">13443</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>Other than the slow part, I agree completely.  If we were going to  
deprecate it, how would we go about it?  Should we just print a  
message when running that macro?  Flag it in the docs?</body>
      <body-html>&lt;div&gt;&lt;p&gt;Other than the slow part, I agree completely. If we were going
to deprecate it, how would we go about it? Should we just print a
message when running that macro? Flag it in the docs?&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-09-16T12:00:07-04:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>new</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2008-09-16T12:00:10-04:00</updated-at>
      <user-id type="integer">13443</user-id>
      <user-name>Tammer Saleh</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Tammer Saleh</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">13443</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>Both, I think, would be good.</body>
      <body-html>&lt;div&gt;&lt;p&gt;Both, I think, would be good.&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-09-16T12:01:57-04:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>new</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2008-09-16T12:02:02-04:00</updated-at>
      <user-id type="integer">10614</user-id>
      <user-name>Jon Yurek</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Tammer Saleh</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">13443</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>Thank you for bringing this up.  I've been trying to convince others to avoid using it, with no luck.  

Agreed, deprecate with a printed message and document.

One concern: I think a lot of people are addicted to it.  There will be push back.  Does it make sense to start a shoulda-ext project for this kind of experimental stuff?</body>
      <body-html>&lt;div&gt;&lt;p&gt;Thank you for bringing this up. I've been trying to convince
others to avoid using it, with no luck.&lt;/p&gt;
&lt;p&gt;Agreed, deprecate with a printed message and document.&lt;/p&gt;
&lt;p&gt;One concern: I think a lot of people are addicted to it. There
will be push back. Does it make sense to start a shoulda-ext
project for this kind of experimental stuff?&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-09-16T12:09:55-04:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>new</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2008-09-16T12:10:00-04:00</updated-at>
      <user-id type="integer">12160</user-id>
      <user-name>Ryan McGeary</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Tammer Saleh</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">13443</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>I think that if there were enough demand for should_be_restful after it was removed, somebody would just move it to its own project.</body>
      <body-html>&lt;div&gt;&lt;p&gt;I think that if there were enough demand for should_be_restful
after it was removed, somebody would just move it to its own
project.&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-09-16T12:12:29-04:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>new</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2008-09-16T12:12:33-04:00</updated-at>
      <user-id type="integer">17223</user-id>
      <user-name>Joe Ferris</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Tammer Saleh</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">10900</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>I have removed should_be_restful from the shoulda code base. The work was done in my remove_should_be_restful branch:

http://github.com/dancroak/shoulda/tree/remove_should_be_restful

Tammer - what do you mean by printing a message when running the macro or flagging it in the docs? If that is wanted, it still needs to be done.

Josh is going to put should_be_restful in woulda:

http://github.com/technicalpickles/woulda

I suggest once he gets that together, we point the docs and message to his gem.

Josh - take a look at these two commits to get a sense of what you'll need to put in woulda for should_be_restful:

http://github.com/thoughtbot/shoulda/commit/10303b28f38c76c83bf99037eb9b2cb05ffec737

http://github.com/thoughtbot/shoulda/commit/f018d0844403ccdf4d89758966a2914b4d317c55

I am leaving this ticket open until should_be_restful finds a good new home and we update the docs.</body>
      <body-html>&lt;div&gt;&lt;p&gt;I have removed should_be_restful from the shoulda code base. The
work was done in my remove_should_be_restful branch:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://github.com/dancroak/shoulda/tree/remove_should_be_restful&quot;&gt;http://github.com/dancroak/shoul...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Tammer - what do you mean by printing a message when running the
macro or flagging it in the docs? If that is wanted, it still needs
to be done.&lt;/p&gt;
&lt;p&gt;Josh is going to put should_be_restful in woulda:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://github.com/technicalpickles/woulda&quot;&gt;http://github.com/technicalpickl...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I suggest once he gets that together, we point the docs and
message to his gem.&lt;/p&gt;
&lt;p&gt;Josh - take a look at these two commits to get a sense of what
you'll need to put in woulda for should_be_restful:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://github.com/thoughtbot/shoulda/commit/10303b28f38c76c83bf99037eb9b2cb05ffec737&quot;&gt;
http://github.com/thoughtbot/sho...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://github.com/thoughtbot/shoulda/commit/f018d0844403ccdf4d89758966a2914b4d317c55&quot;&gt;
http://github.com/thoughtbot/sho...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I am leaving this ticket open until should_be_restful finds a
good new home and we update the docs.&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-09-20T19:13:08-04:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- 
:assigned_user: 13443
</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>new</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2008-09-20T19:13:11-04:00</updated-at>
      <user-id type="integer">10900</user-id>
      <user-name>Dan Croak</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Dan Croak</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">10900</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>Dan, What happened to deprecating it first?  

I think we should first just add a `warn` message to the method explaining that it is deprecated and that it is replaced by woulda.  The rdoc for the should_be_restful method should also explain that it's deprecated.  I think that's what Tammer and Jon had in mind.

Unfortunately, I think the current implementation should stick around through at least  one minor release (2.1.x) of the shoulda gem so people will understand that it's deprecated.  Removing it can happen in the next minor release.</body>
      <body-html>&lt;div&gt;&lt;p&gt;Dan, What happened to deprecating it first?&lt;/p&gt;
&lt;p&gt;I think we should first just add a &lt;code&gt;warn&lt;/code&gt; message to
the method explaining that it is deprecated and that it is replaced
by woulda. The rdoc for the should_be_restful method should also
explain that it's deprecated. I think that's what Tammer and Jon
had in mind.&lt;/p&gt;
&lt;p&gt;Unfortunately, I think the current implementation should stick
around through at least one minor release (2.1.x) of the shoulda
gem so people will understand that it's deprecated. Removing it can
happen in the next minor release.&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-09-20T19:25:13-04:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>new</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2008-09-20T19:25:15-04:00</updated-at>
      <user-id type="integer">12160</user-id>
      <user-name>Ryan McGeary</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Dan Croak</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">10900</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>I reverted the commits that removed should_be_restful.

Dan - We agreed to deprecate should_be_restful for a while before removing it.  I think there's no harm in keeping it around for a few months as long as the documentation and printed warning make it clear that it's not considered best practice, and that it will be removed in a future version.</body>
      <body-html>&lt;div&gt;&lt;p&gt;I reverted the commits that removed should_be_restful.&lt;/p&gt;
&lt;p&gt;Dan - We agreed to deprecate should_be_restful for a while
before removing it. I think there's no harm in keeping it around
for a few months as long as the documentation and printed warning
make it clear that it's not considered best practice, and that it
will be removed in a future version.&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">false</closed>
      <created-at type="datetime">2008-09-20T22:10:43-04:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>new</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2008-09-20T22:10:45-04:00</updated-at>
      <user-id type="integer">13443</user-id>
      <user-name>Tammer Saleh</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Dan Croak</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">10900</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>GitHub didn't like the gemspec versioning switcheroo.  It kept serving v2.0.1 even after the revert.  So, to fix:

`should_be_restful` is now [deprecated with this commit](http://github.com/thoughtbot/shoulda/commit/8c081d7739e9abf69977f17cde4af814119482e3).

v2.0.2 of the gem is now [published with this commit](http://github.com/thoughtbot/shoulda/commit/3b5f2642733d93e9d3219bfdffdb213f601a1be2).

Note: Even though, the core shoulda tests now print deprecation warnings and this should be resolved, I think it's beneficial to keep the should_be_restful tests around for a little while longer.</body>
      <body-html>&lt;div&gt;&lt;p&gt;GitHub didn't like the gemspec versioning switcheroo. It kept
serving v2.0.1 even after the revert. So, to fix:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;should_be_restful&lt;/code&gt; is now &lt;a href=&quot;http://github.com/thoughtbot/shoulda/commit/8c081d7739e9abf69977f17cde4af814119482e3&quot;&gt;
deprecated with this commit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;v2.0.2 of the gem is now &lt;a href=&quot;http://github.com/thoughtbot/shoulda/commit/3b5f2642733d93e9d3219bfdffdb213f601a1be2&quot;&gt;
published with this commit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Note: Even though, the core shoulda tests now print deprecation
warnings and this should be resolved, I think it's beneficial to
keep the should_be_restful tests around for a little while
longer.&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">true</closed>
      <created-at type="datetime">2008-09-20T23:40:17-04:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- 
:state: new
</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>committed</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2008-09-20T23:42:49-04:00</updated-at>
      <user-id type="integer">12160</user-id>
      <user-name>Ryan McGeary</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Dan Croak</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">10900</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>My misunderstanding, guys. Sorry for the confusion and extra work you had to do.</body>
      <body-html>&lt;div&gt;&lt;p&gt;My misunderstanding, guys. Sorry for the confusion and extra
work you had to do.&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">true</closed>
      <created-at type="datetime">2008-09-21T11:44:22-04:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>committed</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2008-09-21T11:44:26-04:00</updated-at>
      <user-id type="integer">10900</user-id>
      <user-name>Dan Croak</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Dan Croak</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">10900</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>Absolutely. We need to give a grace period before removing it  
completely.

Dan - if you removed it from the main repo, can you please revert that  
change as soon as possible?

Tammer</body>
      <body-html>&lt;div&gt;&lt;p&gt;Absolutely. We need to give a grace period before removing it
completely.&lt;/p&gt;
&lt;p&gt;Dan - if you removed it from the main repo, can you please
revert that change as soon as possible?&lt;/p&gt;
&lt;p&gt;Tammer&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">true</closed>
      <created-at type="datetime">2008-09-23T13:11:25-04:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>committed</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2008-09-23T13:11:31-04:00</updated-at>
      <user-id type="integer">13443</user-id>
      <user-name>Tammer Saleh</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Dan Croak</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">10900</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>should_be_restful is back in the main repo. I believe Ryan committed it on Saturday night.</body>
      <body-html>&lt;div&gt;&lt;p&gt;should_be_restful is back in the main repo. I believe Ryan
committed it on Saturday night.&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">true</closed>
      <created-at type="datetime">2008-09-23T19:32:15-04:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>committed</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2008-09-23T19:32:18-04:00</updated-at>
      <user-id type="integer">30519</user-id>
      <user-name>Dan Croak</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Dan Croak</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">10900</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>I think some screwy time-line problem happened with Lighthouse here.  My guess is that Tammer replied via email with his most &quot;recent&quot; message but did so a few days ago.  Lighthouse hid it until now?  Perhaps some background Lighthouse process went on the fritz?</body>
      <body-html>&lt;div&gt;&lt;p&gt;I think some screwy time-line problem happened with Lighthouse
here. My guess is that Tammer replied via email with his most
&quot;recent&quot; message but did so a few days ago. Lighthouse hid it until
now? Perhaps some background Lighthouse process went on the
fritz?&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">true</closed>
      <created-at type="datetime">2008-09-23T19:38:39-04:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>committed</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2008-09-23T19:38:41-04:00</updated-at>
      <user-id type="integer">12160</user-id>
      <user-name>Ryan McGeary</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Dan Croak</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">10900</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>Might want to say something about deprecation on the tutorial page http://thoughtbot.com/projects/shoulda/tutorial/controllers</body>
      <body-html>&lt;div&gt;&lt;p&gt;Might want to say something about deprecation on the tutorial
page &lt;a href=&quot;http://thoughtbot.com/projects/shoulda/tutorial/controllers&quot;&gt;http://thoughtbot.com/projects/s...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">true</closed>
      <created-at type="datetime">2008-11-18T13:27:16-05:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>committed</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2008-11-18T13:27:20-05:00</updated-at>
      <user-id type="integer">23475</user-id>
      <user-name>Matthew Platte</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Dan Croak</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">10900</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>Thanks Matthew - I've updated the tutorial.</body>
      <body-html>&lt;div&gt;&lt;p&gt;Thanks Matthew - I've updated the tutorial.&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">true</closed>
      <created-at type="datetime">2008-11-18T16:45:07-05:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>committed</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2008-11-18T16:45:09-05:00</updated-at>
      <user-id type="integer">13443</user-id>
      <user-name>Tammer Saleh</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Dan Croak</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">10900</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>I'm surprised by this deprecation; should_be_restful seemed like the best part of shoulda to me.

Of the five points in the original commit, all but the first seem to be issues with the implementation, and not the concept itself.

As for the first point, I don't see how it &quot;dissuades the programmer from good TDD practice&quot;. In my opinion, one of the great things about RESTful design is the consistency that should allow us to hit as-yet unseen levels of abstraction. The higher the level of abstraction, and the bigger the steps, the better, right? On the shoulders of giants and all that?

I can see how it could provide a false sense of security, where the user is under the impression that should_be_restful is &quot;testing their show action&quot;, whereas it's actually testing the default rails show action that they have since added code to. That also seems like an implementation detail to me though.

Can anyone enlighten me? :)</body>
      <body-html>&lt;div&gt;&lt;p&gt;I'm surprised by this deprecation; should_be_restful seemed like
the best part of shoulda to me.&lt;/p&gt;
&lt;p&gt;Of the five points in the original commit, all but the first
seem to be issues with the implementation, and not the concept
itself.&lt;/p&gt;
&lt;p&gt;As for the first point, I don't see how it &quot;dissuades the
programmer from good TDD practice&quot;. In my opinion, one of the great
things about RESTful design is the consistency that should allow us
to hit as-yet unseen levels of abstraction. The higher the level of
abstraction, and the bigger the steps, the better, right? On the
shoulders of giants and all that?&lt;/p&gt;
&lt;p&gt;I can see how it could provide a false sense of security, where
the user is under the impression that should_be_restful is &quot;testing
their show action&quot;, whereas it's actually testing the default rails
show action that they have since added code to. That also seems
like an implementation detail to me though.&lt;/p&gt;
&lt;p&gt;Can anyone enlighten me? :)&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">true</closed>
      <created-at type="datetime">2008-11-25T07:53:29-05:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>committed</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2008-11-25T07:53:31-05:00</updated-at>
      <user-id type="integer">7971</user-id>
      <user-name>Ben Hoskings</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Dan Croak</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">10900</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>Ummm did should_be_restful get spun off anywhere? I don't see it in woulda (http://github.com/seanhussey/woulda/tree/master). 

I understand the arguments against should_be_restful, but I have a number of 'helper' models where some automated testing of the restful controller pieces is helpful - and just about the right amount of attention for those actions.</body>
      <body-html>&lt;div&gt;&lt;p&gt;Ummm did should_be_restful get spun off anywhere? I don't see it
in woulda (&lt;a href=&quot;http://github.com/seanhussey/woulda/tree/master)&quot;&gt;http://github.com/seanhussey/wou...&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I understand the arguments against should_be_restful, but I have
a number of 'helper' models where some automated testing of the
restful controller pieces is helpful - and just about the right
amount of attention for those actions.&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">true</closed>
      <created-at type="datetime">2008-12-15T19:48:30-05:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>committed</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2008-12-15T19:48:32-05:00</updated-at>
      <user-id type="integer">40929</user-id>
      <user-name>Cynthia Kiser</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Dan Croak</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
    <version type="Ticket::Version">
      <assigned-user-id type="integer">10900</assigned-user-id>
      <attachments-count type="integer">0</attachments-count>
      <body>I contemplated bringing should_be_restful into woulda, but after thinking it over, I agree with the reasons for the deprecation, so I didn't want to include or maintain it.

Would Thoughtbot be ok with someone extracting should_be_restful into its own plugin?  (I'm not volunteering...)</body>
      <body-html>&lt;div&gt;&lt;p&gt;I contemplated bringing should_be_restful into woulda, but after
thinking it over, I agree with the reasons for the deprecation, so
I didn't want to include or maintain it.&lt;/p&gt;
&lt;p&gt;Would Thoughtbot be ok with someone extracting should_be_restful
into its own plugin? (I'm not volunteering...)&lt;/p&gt;&lt;/div&gt;</body-html>
      <closed type="boolean">true</closed>
      <created-at type="datetime">2009-01-14T14:44:09-05:00</created-at>
      <creator-id type="integer">30519</creator-id>
      <diffable-attributes type="yaml">--- {}

</diffable-attributes>
      <milestone-id type="integer" nil="true"></milestone-id>
      <number type="integer">78</number>
      <permalink>deprecate-should_be_restful</permalink>
      <priority type="integer">0</priority>
      <project-id type="integer">5807</project-id>
      <state>committed</state>
      <tag>should_be_restful</tag>
      <title>Deprecate should_be_restful</title>
      <updated-at type="datetime">2009-01-14T14:44:13-05:00</updated-at>
      <user-id type="integer">17641</user-id>
      <user-name>Sean Hussey</user-name>
      <creator-name>Dan Croak</creator-name>
      <assigned-user-name>Dan Croak</assigned-user-name>
      <url>http://thoughtbot.lighthouseapp.com/projects/5807/tickets/78</url>
    </version>
  </versions>
</ticket>
