Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 4760

Show
Ignore:
Timestamp:
08/14/06 18:15:44 (2 years ago)
Author:
ulysses
Message:

Add silencing to deprecations; avoid self-scolding.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/activesupport/CHANGELOG

    r4754 r4760  
    11*SVN* 
     2 
     3* Add Deprecation.silence so that Reloadable does not scold itself. [Nicholas Seckar] 
    24 
    35* Add debugging logging to Dependencies. Currently can be enabled with Dependencies.log_activity = true; adding to Initializer and documenting is forthcoming. [Nicholas Seckar] 
  • trunk/activesupport/lib/active_support/deprecation.rb

    r4728 r4760  
    1010    class << self 
    1111      def warn(message = nil, callstack = caller) 
    12         behavior.call(deprecation_message(callstack, message)) if behavior 
     12        behavior.call(deprecation_message(callstack, message)) if behavior && ! silenced? 
    1313      end 
    1414 
    1515      def default_behavior 
    1616        DEFAULT_BEHAVIORS[RAILS_ENV.to_s] if defined?(RAILS_ENV) 
     17      end 
     18 
     19      # Have deprecations been silenced? 
     20      def silenced? 
     21        @silenced 
     22      end 
     23 
     24      # Silence deprecations for the duration of the provided block. For internal 
     25      # use only. 
     26      def silence 
     27        old_silenced, @silenced = @silenced, true # We could have done behavior = nil... 
     28        yield 
     29      ensure 
     30        @silenced = old_silenced 
    1731      end 
    1832 
  • trunk/activesupport/lib/active_support/reloadable.rb

    r4728 r4760  
    2626     
    2727    def reloadable_classes 
    28       included_in_classes.select { |klass| klass.reloadable? } 
     28      ActiveSupport::Deprecation.silence do 
     29        included_in_classes.select { |klass| klass.reloadable? } 
     30      end 
    2931    end 
    30     # Commented out so dispatcher doesn't warn. Should we just disable Reloadable? 
    31     # deprecate :reloadable_classes 
     32    deprecate :reloadable_classes 
    3233  end 
    3334   
  • trunk/activesupport/test/deprecation_test.rb

    r4728 r4760  
    7979  end 
    8080   
     81  def test_silence 
     82    ActiveSupport::Deprecation.silence do 
     83      assert_not_deprecated { @dtc.partially } 
     84    end 
     85  end 
     86   
    8187end 
  • trunk/railties/CHANGELOG

    r4742 r4760  
    11*SVN* 
     2 
     3* Don't warn dispatcher of Reloadable deprecations. [Nicholas Seckar] 
    24 
    35* Rearrange application resetting and preparation, fix bug with leaking subclasses hash in ActiveRecord::Base [Rick Olson] 
  • trunk/railties/lib/dispatcher.rb

    r4742 r4760  
    5757      ActiveRecord::Base.reset_subclasses if defined?(ActiveRecord) 
    5858      Dependencies.clear 
    59       Class.remove_class(*Reloadable.reloadable_classes) 
     59      ActiveSupport::Deprecation.silence do # TODO: Remove after 1.2 
     60        Class.remove_class(*Reloadable.reloadable_classes) 
     61      end 
    6062    end 
    6163