提交 3ec44308 编写于 作者: R Rafael Mendonça França

Merge pull request #8312 from senny/make_active_model_parts_individually_loadable

make sure that individual parts `ActiveModel` can be required by itself
## Rails 4.0.0 (unreleased) ##
* Removed dispensable `require` statements. Make sure to require `active_model` before requiring
individual parts of the framework.
*Yves Senn*
* Use BCrypt's MIN_COST in the test environment for speedier tests when using `has_secure_pasword`.
*Brian Cardarella + Jeremy Kemper + Trevor Turk*
......
......@@ -8,7 +8,7 @@ module ActiveModel
#
# user = User.first
# user.pets.select(:id).first.user_id
# # => ActiveModel::MissingAttributeError: missing attribute: user_id
# # => ActiveModel::MissingAttributeError: missing attribute: user_id
class MissingAttributeError < NoMethodError
end
# == Active \Model Attribute Methods
......@@ -202,7 +202,7 @@ def attribute_method_affix(*affixes)
# person.name # => "Bob"
# person.nickname # => "Bob"
# person.name_short? # => true
# person.nickname_short? # => true
# person.nickname_short? # => true
def alias_attribute(new_name, old_name)
self.attribute_aliases = attribute_aliases.merge(new_name.to_s => old_name.to_s)
attribute_method_matchers.each do |matcher|
......
require 'active_support/callbacks'
module ActiveModel
# == Active \Model \Callbacks
#
......
require 'active_support/inflector'
module ActiveModel
# == Active \Model Conversions
#
......
require 'active_model/attribute_methods'
require 'active_support/hash_with_indifferent_access'
require 'active_support/core_ext/object/duplicable'
......
require 'active_support/inflector'
require 'active_support/core_ext/hash/except'
require 'active_support/core_ext/module/introspection'
......@@ -56,8 +55,8 @@ class Name
# end
#
# BlogPost.model_name <=> 'BlogPost' # => 0
# BlogPost.model_name <=> 'Blog' # => 1
# BlogPost.model_name <=> 'BlogPosts' # => -1
# BlogPost.model_name <=> 'Blog' # => 1
# BlogPost.model_name <=> 'BlogPosts' # => -1
##
# :method: =~
......
......@@ -5,7 +5,6 @@
require 'active_support/core_ext/string/inflections'
require 'active_support/core_ext/enumerable'
require 'active_support/core_ext/object/try'
require 'active_support/descendants_tracker'
module ActiveModel
# == Active \Model Observers Activation
......@@ -49,7 +48,7 @@ def observers=(*values)
# end
#
# ORM.observers = :cacher, :garbage_collector
# ORM.observers # => [:cacher, :garbage_collector]
# ORM.observers # => [:cacher, :garbage_collector]
# ORM.observers.class # => ActiveModel::ObserverArray
def observers
@observers ||= ObserverArray.new(self)
......@@ -328,8 +327,8 @@ def observed_classes
# Returns the class observed by default. It's inferred from the observer's
# class name.
#
# PersonObserver.observed_class # => Person
# AccountObserver.observed_class # => Account
# PersonObserver.observed_class # => Person
# AccountObserver.observed_class # => Account
def observed_class
name[/(.*)Observer/, 1].try :constantize
end
......
require 'active_support/core_ext/array/extract_options'
require 'active_support/core_ext/hash/keys'
require 'active_support/core_ext/hash/except'
require 'active_model/errors'
require 'active_model/validations/callbacks'
require 'active_model/validator'
module ActiveModel
......
require 'active_support/callbacks'
module ActiveModel
module Validations
# == Active \Model Validation Callbacks
......@@ -85,8 +83,8 @@ def before_validation(*args, &block)
# person = Person.new
# person.name = ''
# person.valid? # => false
# person.status # => false
#  person.name = 'bob'
# person.status # => false
# person.name = 'bob'
# person.valid? # => true
# person.status # => true
def after_validation(*args, &block)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册