diff options
author | Vijay Dev <vijaydev.cse@gmail.com> | 2011-03-27 00:21:25 +0530 |
---|---|---|
committer | Vijay Dev <vijaydev.cse@gmail.com> | 2011-03-27 00:21:25 +0530 |
commit | 2fc32636dc07cd4986e065be2ab3fbded34cbe18 (patch) | |
tree | 7ceb3541e30d5559b0f51093f27970485d505f7e /activerecord/lib/active_record/attribute_methods/read.rb | |
parent | 547407a9fb375601deb0834fb1c2d9a108c9aea1 (diff) | |
parent | 7c6807296b114f0688e6e74494f1d43d3a0548ba (diff) | |
download | rails-2fc32636dc07cd4986e065be2ab3fbded34cbe18.tar.gz rails-2fc32636dc07cd4986e065be2ab3fbded34cbe18.tar.bz2 rails-2fc32636dc07cd4986e065be2ab3fbded34cbe18.zip |
Merge branch 'master' of github.com:lifo/docrails
Diffstat (limited to 'activerecord/lib/active_record/attribute_methods/read.rb')
-rw-r--r-- | activerecord/lib/active_record/attribute_methods/read.rb | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/attribute_methods/read.rb b/activerecord/lib/active_record/attribute_methods/read.rb index ab86d8bad1..69d5cd83f1 100644 --- a/activerecord/lib/active_record/attribute_methods/read.rb +++ b/activerecord/lib/active_record/attribute_methods/read.rb @@ -70,7 +70,14 @@ module ActiveRecord if cache_attribute?(attr_name) access_code = "@attributes_cache['#{attr_name}'] ||= (#{access_code})" end - generated_attribute_methods.module_eval("def _#{symbol}; #{access_code}; end; alias #{symbol} _#{symbol}", __FILE__, __LINE__) + if symbol =~ /^[a-zA-Z_]\w*[!?=]?$/ + generated_attribute_methods.module_eval("def _#{symbol}; #{access_code}; end; alias #{symbol} _#{symbol}", __FILE__, __LINE__) + else + generated_attribute_methods.module_eval do + define_method("_#{symbol}") { eval(access_code) } + alias_method(symbol, "_#{symbol}") + end + end end end |