<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,32 +1,37 @@
-= classy-inheritance
-
-* FIX (url)
+classy-inheritance
+    by Andrew Stone
+    http://stonean.com
 
 == DESCRIPTION:
 
-FIX (describe your package)
-
-== FEATURES/PROBLEMS:
+Classy Inheritance adds a depends_on class method to your ActiveRecord model so that you can define requisite objects.
 
-* FIX (list of features or problems)
+This functionality is provided using the existing ActiveRecord methods without monkey patching any core code. Essentially, it provides an easy interface to generate code that anyone could add to their model to receive the same result. Depending on the parameters to your depends_on call, it may add some of the following methods: validates_presence_of, validates_associated, has_one or belongs_to.
 
 == SYNOPSIS:
 
-  FIX (code sample of usage)
+class User &lt; ActiveRecord::Base
+  depends_on :profile, :attrs =&gt; [:first_name, :last_name, :email]
+end
 
-== REQUIREMENTS:
+# Pass-through methods to profile attributes.  Now you don't have to manage
+# two different objects.
+@user.first_name = 'Andrew'
+@user.last_name = 'Stone'
+@user.email = 'andy@stonean.com'
 
-* FIX (list of requirements)
+# Manages profile relationship for you
+@user.save
 
 == INSTALL:
 
-* FIX (sudo gem install, anything else)
+sudo gem install classy-inheritance
 
 == LICENSE:
 
 (The MIT License)
 
-Copyright (c) 2008 FIX
+Copyright (c) 2009 Andrew Stone
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the
@@ -45,4 +50,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</diff>
      <filename>README.txt</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,30 @@
-require 'config/requirements'
-require 'config/hoe' # setup Hoe + all gem configuration
-
-Dir['tasks/**/*.rake'].each { |rake| load rake }
\ No newline at end of file
+# Look in the tasks/setup.rb file for the various options that can be
+# configured in this Rakefile. The .rake files in the tasks directory
+# are where the options are used.
+
+begin
+  require 'bones'
+  Bones.setup
+rescue LoadError
+  begin
+    load 'tasks/setup.rb'
+  rescue LoadError
+    raise RuntimeError, '### please install the &quot;bones&quot; gem ###'
+  end
+end
+
+ensure_in_path 'lib'
+require 'classy-inheritance'
+
+task :default =&gt; 'spec:run'
+
+PROJ.name = 'classy-inheritance'
+PROJ.authors = 'Andrew Stone'
+PROJ.email = 'andy@stonean.com'
+PROJ.url = 'http://stonean.com/wiki/classy-inheritance'
+PROJ.version = Stonean::ClassyInheritance::VERSION
+PROJ.rubyforge.name = 'classyinherit'
+
+PROJ.spec.opts &lt;&lt; '--color'
+
+# EOF</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,28 +1,10 @@
-$:.unshift(File.dirname(__FILE__)) unless
-  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
-
-
-module ActiveRecord::Validations::ClassMethods
-  def validates_associated(*attr_names)
-    configuration = { :message =&gt; ActiveRecord::Errors.default_error_messages[:invalid], :on =&gt; :save }
-    configuration.update(attr_names.extract_options!)
-
-    validates_each(attr_names, configuration) do |record, attr_name, value|
-      associate = record.send(attr_name)
-      if associate &amp;&amp; !associate.valid?
-        associate.errors.each do |key, value|
-          record.errors.add(key, value) unless record.errors[key]
-        end
-      end
-    end
-  end
-end
-                                  
 
 module Stonean
   module ClassyInheritance
-    def self.included(base)
-      base.extend Stonean::ClassyInheritance::ClassMethods
+    VERSION = '0.6.3'
+
+    def self.version
+      VERSION
     end
 
     module ClassMethods
@@ -40,10 +22,10 @@ module Stonean
 
         if options.has_key?(:validates_associated_if) &amp;&amp; options[:validates_associated_if] != true
           if [Symbol, String, Proc].include?(options[:validates_associated_if].class)
-            validates_associated model_sym, :if =&gt; options[:validates_associated_if]
+            validates_associated_dependent model_sym, options, :if =&gt; options[:validates_associated_if]
           end
         else
-          validates_associated model_sym
+          validates_associated_dependent model_sym, options 
         end
 
         # Before save functionality to create/update the requisite object
@@ -179,7 +161,7 @@ module Stonean
         requisite_klass = eval(klass)
         unless requisite_klass.respond_to?(self.name.underscore.to_sym)
           requisite_klass.send :can_be, self.name.underscore, 
-                                      :as =&gt; polymorphic_name 
+            :as =&gt; polymorphic_name 
         end
       end
 
@@ -190,4 +172,32 @@ module Stonean
     end # ClassMethods
   end # ClassyInheritance module
 end # Stonean module
-ActiveRecord::Base.send :include, Stonean::ClassyInheritance
+
+if Object.const_defined?(&quot;ActiveRecord&quot;) &amp;&amp; ActiveRecord.const_defined?(&quot;Base&quot;)
+  module ActiveRecord::Validations::ClassMethods
+
+    def validates_associated_dependent(model_sym, options, configuration = {})
+      configuration = { :message =&gt; ActiveRecord::Errors.default_error_messages[:invalid], :on =&gt; :save }.update(configuration)
+
+      validates_each(model_sym, configuration) do |record, attr_name, value|
+        associate = record.send(attr_name)
+        if associate &amp;&amp; !associate.valid?
+          associate.errors.each do |key, value|
+            if options[:prefix]
+              key = (options[:prefix] == true) ? &quot;#{model_sym}_#{key}&quot; : &quot;#{options[:prefix]}_#{key}&quot;
+            end
+            if options[:postfix]
+              key = (options[:postfix] == true) ? &quot;#{key}_#{model_sym}&quot; : &quot;#{key}_#{options[:postfix]}&quot;
+            end
+            record.errors.add(key, value) unless record.errors[key]
+          end
+        end
+      end
+    end
+  end
+                                    
+
+  ActiveRecord::Base.class_eval do
+    extend Stonean::ClassyInheritance::ClassMethods
+  end
+end</diff>
      <filename>lib/classy-inheritance.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,10 +8,6 @@ class TestClassyInheritance &lt; Test::Unit::TestCase
     @user = User.new
   end
   
-  def test_active_record_should_have_classy_inheritance_included
-    assert ActiveRecord::Base.included_modules.include?(Stonean::ClassyInheritance)
-  end
-  
   def test_active_record_should_respond_to_depends_on
     assert ActiveRecord::Base.respond_to?(:depends_on)
   end</diff>
      <filename>test/test_classy-inheritance.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>PostInstall.txt</filename>
    </removed>
    <removed>
      <filename>README</filename>
    </removed>
    <removed>
      <filename>config/hoe.rb</filename>
    </removed>
    <removed>
      <filename>config/requirements.rb</filename>
    </removed>
    <removed>
      <filename>lib/classy-inheritance/version.rb</filename>
    </removed>
    <removed>
      <filename>script/console</filename>
    </removed>
    <removed>
      <filename>script/destroy</filename>
    </removed>
    <removed>
      <filename>script/generate</filename>
    </removed>
    <removed>
      <filename>script/txt2html</filename>
    </removed>
    <removed>
      <filename>setup.rb</filename>
    </removed>
    <removed>
      <filename>tasks/deployment.rake</filename>
    </removed>
    <removed>
      <filename>tasks/environment.rake</filename>
    </removed>
    <removed>
      <filename>tasks/website.rake</filename>
    </removed>
    <removed>
      <filename>website/index.html</filename>
    </removed>
    <removed>
      <filename>website/index.txt</filename>
    </removed>
    <removed>
      <filename>website/javascripts/rounded_corners_lite.inc.js</filename>
    </removed>
    <removed>
      <filename>website/stylesheets/screen.css</filename>
    </removed>
    <removed>
      <filename>website/template.html.erb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>0dd340ebb2da4adc83d602287f7e0eabe39ea560</id>
    </parent>
  </parents>
  <author>
    <name>Andrew Stone</name>
    <email>andy@stonean.com</email>
  </author>
  <url>http://github.com/stonean/classy-inheritance/commit/6b31e09e32f91b68195a704f21adf9764ffa5276</url>
  <id>6b31e09e32f91b68195a704f21adf9764ffa5276</id>
  <committed-date>2009-01-14T18:21:42-08:00</committed-date>
  <authored-date>2009-01-14T18:21:42-08:00</authored-date>
  <message>fix from johnsbrn for prefix and postfix validations</message>
  <tree>0d2d962c949375be1cb88552f175394118dc108a</tree>
  <committer>
    <name>Andrew Stone</name>
    <email>andy@stonean.com</email>
  </committer>
</commit>
