<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-2813261110497121234.post3552768936185287971..comments</id><updated>2008-05-15T18:54:41.258-07:00</updated><category term='ruby'/><category term='anaemic domain objects'/><category term='stubba'/><category term='asynchronous'/><category term='recording helper'/><category term='make constructor protected'/><category term='DRY'/><category term='ActiveMessaging'/><category term='ActiveMQ'/><category term='standard_params'/><category term='thoughtworks'/><category term='textmate'/><category term='readability of tests'/><category term='hiring'/><category term='ruby developer'/><category term='reliable'/><category term='moist tests'/><category term='module'/><category term='focused unit test'/><category term='service objects'/><category term='rails'/><category term='stub_object'/><category term='with_constants'/><category term='jruby'/><category term='readability'/><category term='testing'/><category term='jms'/><category term='asynchronous messaging'/><category term='ActiveMessaging ActiveMQ asynchronous messaging jms jruby rails'/><title type='text'>Comments on Beech Bonanza: Making Constructors Protected in Ruby</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.shaneharvie.com/feeds/3552768936185287971/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/3552768936185287971/comments/default'/><link rel='alternate' type='text/html' href='http://www.shaneharvie.com/2007/08/making-constructors-protected-in-ruby.html'/><author><name>Shane Harvie</name><uri>http://www.blogger.com/profile/01016971334424471677</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/182/394043885_0f2634cf9b.jpg?v=0'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2813261110497121234.post-3284494759332751270</id><published>2008-05-15T18:54:00.000-07:00</published><updated>2008-05-15T18:54:00.000-07:00</updated><title type='text'>http://github.com/bjeanes/make_abstract&lt;br&gt;&lt;br&gt;I u...</title><content type='html'>http://github.com/bjeanes/make_abstract&lt;BR/&gt;&lt;BR/&gt;I used your example to create a simple way to make abstract classes. Just:&lt;BR/&gt;&lt;BR/&gt;require 'make_abstract'&lt;BR/&gt;&lt;BR/&gt;then to make any class abstract (and leave it's child classes untouched):&lt;BR/&gt;&lt;BR/&gt;class ImAbstractNow&lt;BR/&gt;   make_abstract&lt;BR/&gt;end</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/3552768936185287971/comments/default/3284494759332751270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/3552768936185287971/comments/default/3284494759332751270'/><link rel='alternate' type='text/html' href='http://www.shaneharvie.com/2007/08/making-constructors-protected-in-ruby.html?showComment=1210902840000#c3284494759332751270' title=''/><author><name>Bodaniel</name><uri>http://www.blogger.com/profile/08200649547545391717</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.shaneharvie.com/2007/08/making-constructors-protected-in-ruby.html' ref='tag:blogger.com,1999:blog-2813261110497121234.post-3552768936185287971' source='http://www.blogger.com/feeds/2813261110497121234/posts/default/3552768936185287971' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-397189490'/></entry><entry><id>tag:blogger.com,1999:blog-2813261110497121234.post-2499164337127350145</id><published>2007-08-24T20:49:00.000-07:00</published><updated>2007-08-24T20:49:00.000-07:00</updated><title type='text'>I agree, Shane, an abstract base class is not a ve...</title><content type='html'>I agree, Shane, an abstract base class is not a very Ruby thing to be doing.  But if you have to, I would prob skip all the protected madness and go right for:&lt;BR/&gt;&lt;BR/&gt;class Party&lt;BR/&gt;attr :name&lt;BR/&gt;  def initialize name&lt;BR/&gt;    @name = name&lt;BR/&gt;    raise NoMethodError.new("Party is an abstract class and cannot be instantiated") if self.class == Party&lt;BR/&gt;  end&lt;BR/&gt;end&lt;BR/&gt;&lt;BR/&gt;&lt;BR/&gt;just my two cents.  Might use a different Error subclass.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/3552768936185287971/comments/default/2499164337127350145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/3552768936185287971/comments/default/2499164337127350145'/><link rel='alternate' type='text/html' href='http://www.shaneharvie.com/2007/08/making-constructors-protected-in-ruby.html?showComment=1188013740000#c2499164337127350145' title=''/><author><name>Patrick Farley</name><uri>http://www.blogger.com/profile/06361239021571823970</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.shaneharvie.com/2007/08/making-constructors-protected-in-ruby.html' ref='tag:blogger.com,1999:blog-2813261110497121234.post-3552768936185287971' source='http://www.blogger.com/feeds/2813261110497121234/posts/default/3552768936185287971' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-612727496'/></entry><entry><id>tag:blogger.com,1999:blog-2813261110497121234.post-7899401906731749734</id><published>2007-08-23T15:04:00.000-07:00</published><updated>2007-08-23T15:04:00.000-07:00</updated><title type='text'>I would rather see a method added to Class than th...</title><content type='html'>I would rather see a method added to Class than the module approach.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/3552768936185287971/comments/default/7899401906731749734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/3552768936185287971/comments/default/7899401906731749734'/><link rel='alternate' type='text/html' href='http://www.shaneharvie.com/2007/08/making-constructors-protected-in-ruby.html?showComment=1187906640000#c7899401906731749734' title=''/><author><name>Daniel</name><uri>http://www.blogger.com/profile/07411796090104411842</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.shaneharvie.com/2007/08/making-constructors-protected-in-ruby.html' ref='tag:blogger.com,1999:blog-2813261110497121234.post-3552768936185287971' source='http://www.blogger.com/feeds/2813261110497121234/posts/default/3552768936185287971' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-425668933'/></entry><entry><id>tag:blogger.com,1999:blog-2813261110497121234.post-4552121118497718966</id><published>2007-08-23T00:37:00.000-07:00</published><updated>2007-08-23T00:37:00.000-07:00</updated><title type='text'>http://grahamis.com/blog/2007/08/23/ruby-protected...</title><content type='html'>http://grahamis.com/blog/2007/08/23/ruby-protected-constructors/</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/3552768936185287971/comments/default/4552121118497718966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2813261110497121234/3552768936185287971/comments/default/4552121118497718966'/><link rel='alternate' type='text/html' href='http://www.shaneharvie.com/2007/08/making-constructors-protected-in-ruby.html?showComment=1187854620000#c4552121118497718966' title=''/><author><name>Joshua Graham</name><uri>http://www.blogger.com/profile/13148399856460503228</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://static.flickr.com/24/63795709_6415a7c239.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.shaneharvie.com/2007/08/making-constructors-protected-in-ruby.html' ref='tag:blogger.com,1999:blog-2813261110497121234.post-3552768936185287971' source='http://www.blogger.com/feeds/2813261110497121234/posts/default/3552768936185287971' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-154368359'/></entry></feed>
