aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2009-12-11 19:24:32 -0200
committerJosé Valim <jose.valim@gmail.com>2009-12-11 19:24:32 -0200
commitcf7b94c013d4e824433a018001474e71ddd81a99 (patch)
tree67b90f1e13a88d60170469e281f081711a976194 /activemodel
parent6e55b32e98fcaad82184d2e21ee611a3465e4b20 (diff)
parent2297eaed5b195ea42b99d062ad45f87dde9d3c60 (diff)
downloadrails-cf7b94c013d4e824433a018001474e71ddd81a99.tar.gz
rails-cf7b94c013d4e824433a018001474e71ddd81a99.tar.bz2
rails-cf7b94c013d4e824433a018001474e71ddd81a99.zip
Merge branch 'master' of git://github.com/rails/rails
Diffstat (limited to 'activemodel')
-rw-r--r--activemodel/lib/active_model.rb43
-rw-r--r--activemodel/lib/active_model/attribute_methods.rb4
-rw-r--r--activemodel/test/cases/helper.rb1
-rw-r--r--activemodel/test/cases/tests_database.rb1
4 files changed, 29 insertions, 20 deletions
diff --git a/activemodel/lib/active_model.rb b/activemodel/lib/active_model.rb
index 505e16c195..8e14b6724f 100644
--- a/activemodel/lib/active_model.rb
+++ b/activemodel/lib/active_model.rb
@@ -26,28 +26,31 @@ $:.unshift(activesupport_path) if File.directory?(activesupport_path)
require 'active_support'
module ActiveModel
- autoload :AttributeMethods, 'active_model/attribute_methods'
- autoload :Conversion, 'active_model/conversion'
- autoload :DeprecatedErrorMethods, 'active_model/deprecated_error_methods'
- autoload :Dirty, 'active_model/dirty'
- autoload :Errors, 'active_model/errors'
- autoload :Lint, 'active_model/lint'
- autoload :Name, 'active_model/naming'
- autoload :Naming, 'active_model/naming'
- autoload :Observer, 'active_model/observing'
- autoload :Observing, 'active_model/observing'
- autoload :Serialization, 'active_model/serialization'
- autoload :StateMachine, 'active_model/state_machine'
- autoload :TestCase, 'active_model/test_case'
- autoload :Translation, 'active_model/translation'
- autoload :Validations, 'active_model/validations'
- autoload :ValidationsRepairHelper, 'active_model/validations_repair_helper'
- autoload :Validator, 'active_model/validator'
- autoload :VERSION, 'active_model/version'
+ extend ActiveSupport::Autoload
+
+ autoload :AttributeMethods
+ autoload :Conversion
+ autoload :DeprecatedErrorMethods
+ autoload :Dirty
+ autoload :Errors
+ autoload :Lint
+ autoload :Name, 'active_model/naming'
+ autoload :Naming
+ autoload :Observer, 'active_model/observing'
+ autoload :Observing
+ autoload :Serialization
+ autoload :StateMachine
+ autoload :Translation
+ autoload :Validations
+ autoload :ValidationsRepairHelper
+ autoload :Validator
+ autoload :VERSION
module Serializers
- autoload :JSON, 'active_model/serializers/json'
- autoload :Xml, 'active_model/serializers/xml'
+ extend ActiveSupport::Autoload
+
+ autoload :JSON
+ autoload :Xml
end
end
diff --git a/activemodel/lib/active_model/attribute_methods.rb b/activemodel/lib/active_model/attribute_methods.rb
index 977a101277..8f855958c6 100644
--- a/activemodel/lib/active_model/attribute_methods.rb
+++ b/activemodel/lib/active_model/attribute_methods.rb
@@ -235,6 +235,10 @@ module ActiveModel
# It's also possible to instantiate related objects, so a Client class belonging to the clients
# table with a +master_id+ foreign key can instantiate master through Client#master.
def method_missing(method_id, *args, &block)
+ if method_id == :to_ary || method_id == :to_str
+ raise NoMethodError, "undefined method `#{method_id}' for #{inspect}:#{self.class}"
+ end
+
method_name = method_id.to_s
if match = match_attribute_method?(method_name)
guard_private_attribute_method!(method_name, args)
diff --git a/activemodel/test/cases/helper.rb b/activemodel/test/cases/helper.rb
index c1a3f6a4a7..024f2378be 100644
--- a/activemodel/test/cases/helper.rb
+++ b/activemodel/test/cases/helper.rb
@@ -10,6 +10,7 @@ $:.unshift(lib) unless $:.include?('lib') || $:.include?(lib)
require 'config'
require 'active_model'
+require 'active_model/test_case'
# Show backtraces for deprecated behavior for quicker cleanup.
ActiveSupport::Deprecation.debug = true
diff --git a/activemodel/test/cases/tests_database.rb b/activemodel/test/cases/tests_database.rb
index 8dd00ea147..79668dd941 100644
--- a/activemodel/test/cases/tests_database.rb
+++ b/activemodel/test/cases/tests_database.rb
@@ -2,6 +2,7 @@ require 'logger'
$:.unshift(File.dirname(__FILE__) + '/../../../activerecord/lib')
require 'active_record'
+require 'active_record/test_case'
require 'active_record/fixtures'
module ActiveModel