From c2bfe6cbc8cab9caeab418472a1e12a3ed3e75e2 Mon Sep 17 00:00:00 2001 From: Akira Matsuda Date: Tue, 20 Jan 2015 21:03:27 +0900 Subject: [PATCH] Privatize config_accessor as with attr_accessor --- activesupport/CHANGELOG.md | 4 ++++ activesupport/lib/active_support/configurable.rb | 1 + activesupport/test/configurable_test.rb | 8 ++++++++ 3 files changed, 13 insertions(+) diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md index 2a4ed394a0..77c4b29980 100644 --- a/activesupport/CHANGELOG.md +++ b/activesupport/CHANGELOG.md @@ -1,3 +1,7 @@ +* config_accessor became a private method, as with Ruby's attr_accessor. + + *Akira Matsuda* + * `AS::Testing::TimeHelpers#travel_to` now changes `DateTime.now` as well as `Time.now` and `Date.today`. diff --git a/activesupport/lib/active_support/configurable.rb b/activesupport/lib/active_support/configurable.rb index 3dd44e32d8..8256c325af 100644 --- a/activesupport/lib/active_support/configurable.rb +++ b/activesupport/lib/active_support/configurable.rb @@ -122,6 +122,7 @@ module ActiveSupport send("#{name}=", yield) if block_given? end end + private :config_accessor end # Reads and writes attributes from a configuration OrderedHash. diff --git a/activesupport/test/configurable_test.rb b/activesupport/test/configurable_test.rb index ef847fc557..5d22ded2de 100644 --- a/activesupport/test/configurable_test.rb +++ b/activesupport/test/configurable_test.rb @@ -111,6 +111,14 @@ class ConfigurableActiveSupport < ActiveSupport::TestCase end end + test 'the config_accessor method should not be publicly callable' do + assert_raises NoMethodError do + Class.new { + include ActiveSupport::Configurable + }.config_accessor :foo + end + end + def assert_method_defined(object, method) methods = object.public_methods.map(&:to_s) assert methods.include?(method.to_s), "Expected #{methods.inspect} to include #{method.to_s.inspect}"