<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1 +1 @@
-# Include hook code here
+ActiveRecord::Base.class_eval { include EnumField }</diff>
      <filename>init.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1,19 @@
-# EnumField
+module EnumField
+  def self.included(klass)
+    klass.class_eval { extend EnumField::ClassMethods }
+  end
+  
+  module ClassMethods
+    def enum_field(field, possible_values)
+      const_set field.to_s.pluralize.upcase, possible_values unless const_defined?(field.to_s.pluralize.upcase)
+  
+      possible_values.each do |current_value|
+        define_method(&quot;#{current_value}?&quot;) do
+          self.send(field) == current_value
+        end
+      end
+  
+      validates_inclusion_of field, :in =&gt; possible_values, :message =&gt; &quot;invalid #{field}&quot;
+    end
+  end
+end</diff>
      <filename>lib/enum_field.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,39 @@
+$LOAD_PATH.reject! { |path| path.include?('TextMate') }
 require 'test/unit'
+require 'rubygems'
+require 'active_support'
+require 'mocha'
+require 'active_record'
+require File.dirname(__FILE__)+'/../lib/enum_field'
+require File.dirname(__FILE__)+'/../init'
+
+class MockedModel; include EnumField; end;
 
 class EnumFieldTest &lt; Test::Unit::TestCase
-  # Replace this with your real tests.
-  def test_this_plugin
-    flunk
+  def setup
+    @possible_values = %w( male female )
+    MockedModel.expects(:validates_inclusion_of).with(:gender, :in =&gt; @possible_values, :message =&gt; &quot;invalid gender&quot;)
+    MockedModel.send(:enum_field, :gender, @possible_values)
+  end
+  
+  def test_should_create_constant_with_possible_values_named_as_pluralized_field
+    assert_equal @possible_values, MockedModel::GENDERS
+  end
+  
+  def test_should_create_query_methods_for_each_enum_type
+    model = MockedModel.new
+    
+    model.stubs(:gender).returns(&quot;male&quot;)
+    assert model.male?
+    model.stubs(:gender).returns(&quot;female&quot;)
+    assert !model.male?
+    
+    assert model.female?
+    model.stubs(:gender).returns(&quot;male&quot;)
+    assert !model.female?
+  end
+  
+  def test_should_extend_active_record_base_with_method
+    assert ActiveRecord::Base.respond_to?(:enum_field)
   end
 end</diff>
      <filename>test/enum_field_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>028105dc86467a5d90adf2b9a0bd15aae541c0dc</id>
    </parent>
  </parents>
  <author>
    <name>James Golick</name>
    <email>james@giraffesoft.ca</email>
  </author>
  <url>http://github.com/technicalpickles/enum_field/commit/abf3083dbc7f1c5a56df9b6e5c8e5f51af973022</url>
  <id>abf3083dbc7f1c5a56df9b6e5c8e5f51af973022</id>
  <committed-date>2008-01-21T10:00:37-08:00</committed-date>
  <authored-date>2008-01-21T10:00:37-08:00</authored-date>
  <message>add the rest of the plugin</message>
  <tree>3bc45e168d0c5cffb64c40dd7aecbc9449571539</tree>
  <committer>
    <name>James Golick</name>
    <email>james@giraffesoft.ca</email>
  </committer>
</commit>
