<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -22,7 +22,7 @@ module Renum
             value = klass.new(value_name)
             klass.const_set(value_name, value)
             value.instance_eval &amp;instance_block if instance_block
-            value.init *init_args if init_args.any?
+            value.init *init_args if value.respond_to? :init
           end
           teardown_from_definition_in_block(klass)
         else</diff>
      <filename>lib/renum/enumerated_value_type_factory.rb</filename>
    </modified>
    <modified>
      <diff>@@ -65,11 +65,12 @@ enum :Size do
   Small(&quot;Really really tiny&quot;)
   Medium(&quot;Sort of in the middle&quot;)
   Large(&quot;Quite big&quot;)
+  Unknown()
 
   attr_reader :description
 
-  def init description
-    @description = description
+  def init description = nil
+    @description = description || &quot;NO DESCRIPTION GIVEN&quot;
   end
 end
 
@@ -80,12 +81,12 @@ enum :HairColor do
 end
 
 describe &quot;enum with no values array and values declared in the block&quot; do
-  it &quot;provides an alternative means of declaring values where extra information can be provided for initialization&quot; do
+  it &quot;provides another way to declare values where an init method can take extra params&quot; do
     Size::Small.description.should == &quot;Really really tiny&quot;
   end
   
   it &quot;works the same as the basic form with respect to ordering&quot; do
-    Size.values.should == [Size::Small, Size::Medium, Size::Large]
+    Size.values.should == [Size::Small, Size::Medium, Size::Large, Size::Unknown]
   end
   
   it &quot;responds as expected to arbitrary method calls, in spite of using method_missing for value definition&quot; do
@@ -95,6 +96,10 @@ describe &quot;enum with no values array and values declared in the block&quot; do
   it &quot;supports there being no extra data and no init() method defined, if you don't need them&quot; do
     HairColor::BLONDE.name.should == &quot;BLONDE&quot;
   end
+  
+  it &quot;calls the init method even if no arguments are provided&quot; do
+    Size::Unknown.description.should == &quot;NO DESCRIPTION GIVEN&quot;
+  end
 end
 
 enum :Rating do</diff>
      <filename>spec/renum_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>130416f6c63224ecee517b490089bf87f006c65c</id>
    </parent>
  </parents>
  <author>
    <name>John D. Hume</name>
    <email>duelin.markers@gmail.com</email>
  </author>
  <url>http://github.com/duelinmarkers/renum/commit/286ddd3a466c0af20953f84c61ccc83682502b96</url>
  <id>286ddd3a466c0af20953f84c61ccc83682502b96</id>
  <committed-date>2009-09-01T16:23:17-07:00</committed-date>
  <authored-date>2009-09-01T16:23:17-07:00</authored-date>
  <message>Call init on every value that responds to it, even if no args are given.</message>
  <tree>f5a2e58dc504f50643124dd942dbd20701ce9169</tree>
  <committer>
    <name>John D. Hume</name>
    <email>duelin.markers@gmail.com</email>
  </committer>
</commit>
