From 7c8d2f28e16958b16812b5fef3d7eca8b640e445 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 2 Apr 2005 09:29:43 +0000 Subject: [PATCH] Removed broken attempt to DRY module ClassMethod #970 git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1069 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/lib/action_controller/scaffolding.rb | 5 +++++ actionpack/lib/action_controller/verification.rb | 5 +++++ actionpack/test/controller/active_record_assertions_test.rb | 2 +- .../lib/action_web_service/container/direct_container.rb | 5 +++++ activerecord/lib/active_record/acts/list.rb | 5 +++++ activerecord/lib/active_record/acts/tree.rb | 5 +++++ activerecord/lib/active_record/aggregations.rb | 5 +++++ activerecord/lib/active_record/associations.rb | 5 +++++ activerecord/lib/active_record/wrappings.rb | 5 +++++ 9 files changed, 41 insertions(+), 1 deletion(-) diff --git a/actionpack/lib/action_controller/scaffolding.rb b/actionpack/lib/action_controller/scaffolding.rb index ac5b68b4e3..4faa23cdf3 100644 --- a/actionpack/lib/action_controller/scaffolding.rb +++ b/actionpack/lib/action_controller/scaffolding.rb @@ -1,5 +1,10 @@ module ActionController module Scaffolding # :nodoc: + def self.append_features(base) + super + base.extend(ClassMethods) + end + # Scaffolding is a way to quickly put an Active Record class online by providing a series of standardized actions # for listing, showing, creating, updating, and destroying objects of the class. These standardized actions come # with both controller logic and default templates that through introspection already know which fields to display diff --git a/actionpack/lib/action_controller/verification.rb b/actionpack/lib/action_controller/verification.rb index e65610f5ec..b0f5236adf 100644 --- a/actionpack/lib/action_controller/verification.rb +++ b/actionpack/lib/action_controller/verification.rb @@ -27,6 +27,11 @@ module ActionController #:nodoc: # :redirect_to => :category_url # module Verification + def self.append_features(base) #:nodoc: + super + base.extend(ClassMethods) + end + module ClassMethods # Verify the given actions so that if certain prerequisites are not met, # the user is redirected to a different action. The +options+ parameter diff --git a/actionpack/test/controller/active_record_assertions_test.rb b/actionpack/test/controller/active_record_assertions_test.rb index 49db40c5a2..9b504c1f39 100644 --- a/actionpack/test/controller/active_record_assertions_test.rb +++ b/actionpack/test/controller/active_record_assertions_test.rb @@ -120,7 +120,7 @@ if Object.const_defined?("ActiveRecord") || File.exist?(path_to_ar) end end - rescue SqliteError => e + rescue Object => e puts "Skipping active record based tests" puts e.message end diff --git a/actionwebservice/lib/action_web_service/container/direct_container.rb b/actionwebservice/lib/action_web_service/container/direct_container.rb index 1d71417f82..b53c542fc8 100644 --- a/actionwebservice/lib/action_web_service/container/direct_container.rb +++ b/actionwebservice/lib/action_web_service/container/direct_container.rb @@ -4,6 +4,11 @@ module ActionWebService # :nodoc: class ContainerError < ActionWebServiceError # :nodoc: end + def self.append_features(base) # :nodoc: + super + base.extend(ClassMethods) + end + module ClassMethods # Attaches ActionWebService API +definition+ to the calling class. # diff --git a/activerecord/lib/active_record/acts/list.rb b/activerecord/lib/active_record/acts/list.rb index c6a33cf9a0..abd295d4e9 100644 --- a/activerecord/lib/active_record/acts/list.rb +++ b/activerecord/lib/active_record/acts/list.rb @@ -1,6 +1,11 @@ module ActiveRecord module Acts #:nodoc: module List #:nodoc: + def self.append_features(base) + super + base.extend(ClassMethods) + end + # This act provides the capabilities for sorting and reordering a number of objects in list. # The class that has this specified needs to have a "position" column defined as an integer on # the mapped database table. diff --git a/activerecord/lib/active_record/acts/tree.rb b/activerecord/lib/active_record/acts/tree.rb index 5fd1a59334..61163941d3 100644 --- a/activerecord/lib/active_record/acts/tree.rb +++ b/activerecord/lib/active_record/acts/tree.rb @@ -1,6 +1,11 @@ module ActiveRecord module Acts #:nodoc: module Tree #:nodoc: + def self.append_features(base) + super + base.extend(ClassMethods) + end + # Specify this act if you want to model a tree structure by providing a parent association and an children # association. This act assumes that requires that you have a foreign key column, which by default is called parent_id. # diff --git a/activerecord/lib/active_record/aggregations.rb b/activerecord/lib/active_record/aggregations.rb index 6141d2d535..208dc35321 100644 --- a/activerecord/lib/active_record/aggregations.rb +++ b/activerecord/lib/active_record/aggregations.rb @@ -1,5 +1,10 @@ module ActiveRecord module Aggregations # :nodoc: + def self.append_features(base) + super + base.extend(ClassMethods) + end + # Active Record implements aggregation through a macro-like class method called +composed_of+ for representing attributes # as value objects. It expresses relationships like "Account [is] composed of Money [among other things]" or "Person [is] # composed of [an] address". Each call to the macro adds a description on how the value objects are created from the diff --git a/activerecord/lib/active_record/associations.rb b/activerecord/lib/active_record/associations.rb index 7ce06f9c37..5bdc6247ff 100755 --- a/activerecord/lib/active_record/associations.rb +++ b/activerecord/lib/active_record/associations.rb @@ -8,6 +8,11 @@ require 'active_record/deprecated_associations' module ActiveRecord module Associations # :nodoc: + def self.append_features(base) + super + base.extend(ClassMethods) + end + # Clears out the association cache def clear_association_cache #:nodoc: self.class.reflect_on_all_associations.to_a.each do |assoc| diff --git a/activerecord/lib/active_record/wrappings.rb b/activerecord/lib/active_record/wrappings.rb index 1284450994..01976417b7 100644 --- a/activerecord/lib/active_record/wrappings.rb +++ b/activerecord/lib/active_record/wrappings.rb @@ -9,6 +9,11 @@ module ActiveRecord end end + def self.append_features(base) + super + base.extend(ClassMethods) + end + class AbstractWrapper #:nodoc: def self.wrap(attribute, record_binding) #:nodoc: %w( before_save after_save after_initialize ).each do |callback|