aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/core_ext
diff options
context:
space:
mode:
authorAlexey Vakhov <vakhov@gmail.com>2012-02-25 01:29:00 +0400
committerAlexey Vakhov <vakhov@gmail.com>2012-05-22 00:28:34 +0400
commite4569b50d1d20f52633a3fe036014acd5117fa73 (patch)
treebdd7b56cecaa1ac210ba4fa46643bc010d411685 /activesupport/lib/active_support/core_ext
parent776ea1090fb9ba4353035d4983cf1926a67b3294 (diff)
downloadrails-e4569b50d1d20f52633a3fe036014acd5117fa73.tar.gz
rails-e4569b50d1d20f52633a3fe036014acd5117fa73.tar.bz2
rails-e4569b50d1d20f52633a3fe036014acd5117fa73.zip
Add instance_accessor option to class_attribute
Diffstat (limited to 'activesupport/lib/active_support/core_ext')
-rw-r--r--activesupport/lib/active_support/core_ext/class/attribute.rb6
1 files changed, 4 insertions, 2 deletions
diff --git a/activesupport/lib/active_support/core_ext/class/attribute.rb b/activesupport/lib/active_support/core_ext/class/attribute.rb
index c64685a694..7b6f8ab0a1 100644
--- a/activesupport/lib/active_support/core_ext/class/attribute.rb
+++ b/activesupport/lib/active_support/core_ext/class/attribute.rb
@@ -65,10 +65,12 @@ class Class
# To opt out of the instance writer method, pass :instance_writer => false.
#
# object.setting = false # => NoMethodError
+ #
+ # To opt out of both instance methods, pass :instance_accessor => false.
def class_attribute(*attrs)
options = attrs.extract_options!
- instance_reader = options.fetch(:instance_reader, true)
- instance_writer = options.fetch(:instance_writer, true)
+ instance_reader = options.fetch(:instance_accessor, true) && options.fetch(:instance_reader, true)
+ instance_writer = options.fetch(:instance_accessor, true) && options.fetch(:instance_writer, true)
attrs.each do |name|
class_eval <<-RUBY, __FILE__, __LINE__ + 1