<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Any chance you can give us the 5 line "here's what you do" in the mean time? We *are* on pins and needles.</div><div><br></div><div><html>On Jun 20, 2008, at 7:49 AM, Ryan Platte wrote:</html><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "> I'm sorry to keep everybody on pins and needles, I simply don't have leisure time to work up a blog post on this right now, and I'm not sure when I will. Apologies to all.<div><br><div>On Jun 19, 2008, at 10:36 PM, Jake Scruggs wrote:<br class="Apple-interchange-newline"><blockquote type="cite">yep, at <br><a href="http://jakescruggs.blogspot.com/2008/06/disconnecting-rspec-from-database.html">http://jakescruggs.blogspot.com/2008/06/disconnecting-rspec-from-database.html</a><br><br>I mostly just talk about my experiences with NullDB and call out Ryan to talk about UnitRecord.<br> -Jake<br><br><div class="gmail_quote">On Thu, Jun 19, 2008 at 6:14 PM, Nate Kirby <<a href="mailto:natebkirby@yahoo.com">natebkirby@yahoo.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> <div bgcolor="#ffffff" text="#000000"> Jake,<br> <br> Did this blogging ever take place? I am also quite interested. <br> <br> Does UnitRecord play nice with Story Runner?<br> <br> Blessings,<br> Nate<br> <br> Ryan Platte wrote: <blockquote type="cite"><div><div></div><div class="Wj3C7c">Go for it, Jake. I'm interested to see what you'll write.<br> <br> <div class="gmail_quote">On Thu, Jun 12, 2008 at 7:23 PM, Jake Scruggs <<a href="mailto:jake.scruggs@gmail.com" target="_blank">jake.scruggs@gmail.com</a>> wrote:<br> <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I haven't had any problems with NullDB, but failing silently is its thing (Null Object Pattern and all) so be careful. I think the tagging bit you describe as coming soon to RSpec is pretty cool.<br> <br> I'm probably going to blog about this soon and will quote some things from Ryan and David's responses -- unless of course either of you object.<br> <font color="#888888">-Jake</font> <div> <div><br> <br> <div class="gmail_quote">On Wed, Jun 11, 2008 at 10:08 AM, David Chelimsky <<a href="mailto:dchelimsky@gmail.com" target="_blank">dchelimsky@gmail.com</a>> wrote:<br> <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> <div> <div>Hey Jake - thanks for sharing this. Couple o' comments below: <div><br> On Jun 11, 2008, at 9:26 AM, Jake Scruggs wrote:<br> <blockquote type="cite">I've been using the NullDb (<a href="http://agilewebdevelopment.com/plugins/nulldb" target="_blank">http://agilewebdevelopment.com/plugins/nulldb</a>) plugin to disconnect RSpec from the database.</blockquote> <div><br> </div> </div> <div>The only drawback I've heard about NullDb is that it fails silently in certain cases - has led to some painful debugging. Have you had that experience?</div> <div><br> <blockquote type="cite">I don't like the global disconnect (for all specs everywhere) that the web page suggests, so I set up this in my spec_helper:<br> <br> describe "Unit Spec", :shared => true do<br> before :all do<br> ActiveRecord::Base.establish_connection(:adapter => :nulldb)<br> end<br> <br> after :all do<br> ActiveRecord::Base.establish_connection(:test)<br> end<br> end<br> <br> and then say this inside any describe block I want to disconnect from the db:<br> <br> require File.dirname(__FILE__) + "/../spec_helper"<br> <br> describe User do<br> it_should_behave_like "Unit Spec"</blockquote> <div><br> </div> </div> <div>This is cool that it works, but using it_should_behave_like feels odd to me in this case. The User should not behave like a Unit Spec, the examples should be disconnected.</div> <div><br> </div> <div>You can do this instead if you like:</div> <div><br> </div> <div>share_as :Disconnected do <div><br> before :all do<br> ActiveRecord::Base.establish_connection(:adapter => :nulldb)<br> end<br> <br> after :all do<br> ActiveRecord::Base.establish_connection(:test)<br> end<br> end</div> </div> <div><br> </div> <div>describe User do</div> <div> include Disconnected</div> <div>...</div> <div><br> </div> <div>Right now we don't have an arbitrary tagging mechanism but it's something we've talked about. This gives me an idea that I'd like to implement, and everything is pretty much in place to support this, where the options hash is available to you in the before and after blocks, so you could do this (CAREFUL - THIS DOES NOT WORK TODAY):</div> <div><br> </div> <div>Spec::Runner.configure do |config|</div> <div> config.before(:all)</div> <div> if example_group_options[:disconnected]</div> <div> <div> ActiveRecord::Base.establish_connection(:adapter => :nulldb)</div> <div> end</div> </div> <div> end</div> <div> <div> config.after(:all)</div> <div> if example_group_options[:disconnected]</div> <div> <div> ActiveRecord::Base.establish_connection(:test)</div> <div> end</div> <div> end</div> </div> <div>end</div> <div><br> </div> <div>Then you'd be able to say:</div> <div><br> </div> <div>describe User, :disconnected => true do</div> <div> ...</div> <div><br> </div> <div>WDYT about that?</div> <div><br> </div> <div>Cheers,</div> <div>David</div> </div> <div> <div> <div><br> </div> <div><br> </div> <br> <blockquote type="cite"><br> .<br> .<br> .<br> <br> using nested describes to separate my unit (don't hit the db) from my functional (do hit the db) specs<br> <br> -Jake <br> <br> <div class="gmail_quote">On Wed, Jun 11, 2008 at 8:37 AM, Ryan Platte <<a href="mailto:ryan@platte.name" target="_blank">ryan@platte.name</a>> wrote:<br> <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> <div>Here are some Rake tasks I created to use RSpec with UnitRecord. I set the default task to first run spec:fast, then spec:slow, so if the fast ones fail we don't have to wait on the slow ones to set up and run.</div> <div><br> </div> <div>The fly in the ointment is that schema.rb has to be current.</div> <div><br> </div> <div>namespace :spec do</div> <div><br> </div> <div> desc "Run all fast specs in spec directory (excluding plugin specs)"</div> <div> Spec::Rake::SpecTask.new(:fast) do |t|</div> <div> t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]</div> <div> t.spec_files = FileList['spec/**/*_fast_spec.rb']</div> <div> #t.ruby_opts = ['-r spec/spec_helper', '-rubygems', '-runit_record', "-e 'ActiveRecord::Base.disconnect!'"]</div> <div> end</div> <div><br> </div> <div> desc "Run all non-fast specs in spec directory (excluding plugin specs)"</div> <div> Spec::Rake::SpecTask.new(:slow => spec_prereq) do |t|</div> <div> t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]</div> <div> t.spec_files = FileList['spec/**/*_spec.rb'].exclude('spec/**/*_fast_spec.rb')</div> <div> end</div> <div><br> </div> <div>end</div> <div> <div> <div><br> </div> <br> <div class="gmail_quote">On Wed, Jun 11, 2008 at 1:36 AM, David Chelimsky <<a href="mailto:dchelimsky@gmail.com" target="_blank">dchelimsky@gmail.com</a>> wrote:<br> <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> On Jun 9, 2008, at 11:31 PM, David Chelimsky wrote:<br> <br> <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> Hey Chirb, <div><br> <br> Lastly, I may have mis-spoke about rails loading up columns from schema.rb - I'm looking into it and will follow up when I learn the truth. So Ryan - keep using unit-record for now :)<br> </div> </blockquote> <br> I definitely mis-spoke. I don't know where I got that in my head, but it seems I did.<br> <br> I don't recall who said it, but unit_record does the column caching I thought rails did. So now it's off to figure out how to get rspec to play nice w/ unit_record.<br> <br> More soon. <div> <div><br> <br> Cheers,<br> David<br> _______________________________________________<br> <a href="mailto:ChicagoGroup-Members-List@rubyforge.org" target="_blank">ChicagoGroup-Members-List@rubyforge.org</a><br> <a href="http://rubyforge.org/mailman/listinfo/chicagogroup-members-list" target="_blank">http://rubyforge.org/mailman/listinfo/chicagogroup-members-list</a><br> </div> </div> </blockquote> </div> <br> <br clear="all"> <br> </div> </div> -- <br> <font color="#888888">Ryan Platte </font><br> _______________________________________________<br> <a href="mailto:ChicagoGroup-Members-List@rubyforge.org" target="_blank">ChicagoGroup-Members-List@rubyforge.org</a><br> <a href="http://rubyforge.org/mailman/listinfo/chicagogroup-members-list" target="_blank">http://rubyforge.org/mailman/listinfo/chicagogroup-members-list</a><br> </blockquote> </div> <br> _______________________________________________<br> <a href="mailto:ChicagoGroup-Members-List@rubyforge.org" target="_blank">ChicagoGroup-Members-List@rubyforge.org</a><br> <a href="http://rubyforge.org/mailman/listinfo/chicagogroup-members-list" target="_blank">http://rubyforge.org/mailman/listinfo/chicagogroup-members-list</a></blockquote> </div> </div> </div> <br> </div> <br> _______________________________________________<br> <a href="mailto:ChicagoGroup-Members-List@rubyforge.org" target="_blank">ChicagoGroup-Members-List@rubyforge.org</a><br> <a href="http://rubyforge.org/mailman/listinfo/chicagogroup-members-list" target="_blank">http://rubyforge.org/mailman/listinfo/chicagogroup-members-list</a><br> </blockquote> </div> <br> </div> </div> <br> _______________________________________________<br> <a href="mailto:ChicagoGroup-Members-List@rubyforge.org" target="_blank">ChicagoGroup-Members-List@rubyforge.org</a><br> <a href="http://rubyforge.org/mailman/listinfo/chicagogroup-members-list" target="_blank">http://rubyforge.org/mailman/listinfo/chicagogroup-members-list</a><br> </blockquote> </div> <br> <br clear="all"> <br> -- <br> Ryan Platte </div></div><pre><hr size="4" width="90%"><div class="Ih2E3d">_______________________________________________
<a href="mailto:ChicagoGroup-Members-List@rubyforge.org" target="_blank">ChicagoGroup-Members-List@rubyforge.org</a>
<a href="http://rubyforge.org/mailman/listinfo/chicagogroup-members-list" target="_blank">http://rubyforge.org/mailman/listinfo/chicagogroup-members-list</a></div></pre> </blockquote> </div> <br>_______________________________________________<br> <a href="mailto:ChicagoGroup-Members-List@rubyforge.org">ChicagoGroup-Members-List@rubyforge.org</a><br> <a href="http://rubyforge.org/mailman/listinfo/chicagogroup-members-list" target="_blank">http://rubyforge.org/mailman/listinfo/chicagogroup-members-list</a><br></blockquote></div><br><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">_______________________________________________</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><a href="mailto:ChicagoGroup-Members-List@rubyforge.org">ChicagoGroup-Members-List@rubyforge.org</a></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><a href="http://rubyforge.org/mailman/listinfo/chicagogroup-members-list">http://rubyforge.org/mailman/listinfo/chicagogroup-members-list</a></div> </blockquote></div><br></div></div>_______________________________________________<br><a href="mailto:ChicagoGroup-Members-List@rubyforge.org">ChicagoGroup-Members-List@rubyforge.org</a><br>http://rubyforge.org/mailman/listinfo/chicagogroup-members-list</blockquote></div><br></body></html>