activemodel 4.0.0 → 4.0.1.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -0
- data/README.rdoc +1 -1
- data/lib/active_model/attribute_methods.rb +4 -1
- data/lib/active_model/errors.rb +5 -5
- data/lib/active_model/secure_password.rb +4 -4
- data/lib/active_model/validations/clusivity.rb +4 -3
- data/lib/active_model/validations/inclusion.rb +1 -1
- data/lib/active_model/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 727f55a42c89f61745846b591fe62b30e2c3fed7
|
4
|
+
data.tar.gz: 0d7b59820bfb10f56102197d265e0bc9ce4f4df2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c1dabb2be822153b375a6c1647889a17bac6e708d40ebf1dcc5b15ba5c74562503b651c774de97e3301e55e0ce96424e04c4d3a3dd81a656bd6426d5a1ec136
|
7
|
+
data.tar.gz: d0ea427fc1c0028467b4a1d86ea0a6d699fad7af8f6c2dca28797c6017bda6793afbaebf7380833ea654a6aed640cb25f15376b8a523419b8cd6c988304b7a23
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
## Rails 4.0.1.rc1 (October 17, 2013) ##
|
2
|
+
|
3
|
+
* Fix `has_secure_password` to honor bcrypt-ruby's cost attribute.
|
4
|
+
|
5
|
+
*T.J. Schuck*
|
6
|
+
|
7
|
+
* `inclusion` / `exclusion` validations with ranges will only use the faster
|
8
|
+
`Range#cover` for numerical ranges, and the more accurate `Range#include?`
|
9
|
+
for non-numerical ones.
|
10
|
+
|
11
|
+
Fixes range validations like `:a..:f` that used to pass with values like `:be`.
|
12
|
+
|
13
|
+
Fixes #10593.
|
14
|
+
|
15
|
+
*Charles Bergeron*
|
16
|
+
|
17
|
+
|
1
18
|
## Rails 4.0.0 (June 25, 2013) ##
|
2
19
|
|
3
20
|
* Fix regression in has_secure_password. When a password is set, but a
|
data/README.rdoc
CHANGED
@@ -227,7 +227,7 @@ The latest version of Active Model can be installed with RubyGems:
|
|
227
227
|
|
228
228
|
Source code can be downloaded as part of the Rails project on GitHub
|
229
229
|
|
230
|
-
* https://github.com/rails/rails/tree/
|
230
|
+
* https://github.com/rails/rails/tree/4-0-stable/activemodel
|
231
231
|
|
232
232
|
|
233
233
|
== License
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'thread_safe'
|
2
|
+
require 'mutex_m'
|
2
3
|
|
3
4
|
module ActiveModel
|
4
5
|
# Raised when an attribute is not defined.
|
@@ -324,7 +325,9 @@ module ActiveModel
|
|
324
325
|
|
325
326
|
# Returns true if the attribute methods defined have been generated.
|
326
327
|
def generated_attribute_methods #:nodoc:
|
327
|
-
@generated_attribute_methods ||= Module.new
|
328
|
+
@generated_attribute_methods ||= Module.new {
|
329
|
+
extend Mutex_m
|
330
|
+
}.tap { |mod| include mod }
|
328
331
|
end
|
329
332
|
|
330
333
|
protected
|
data/lib/active_model/errors.rb
CHANGED
@@ -50,7 +50,7 @@ module ActiveModel
|
|
50
50
|
#
|
51
51
|
# The above allows you to do:
|
52
52
|
#
|
53
|
-
#
|
53
|
+
# person = Person.new
|
54
54
|
# person.validate! # => ["can not be nil"]
|
55
55
|
# person.errors.full_messages # => ["name can not be nil"]
|
56
56
|
# # etc..
|
@@ -238,8 +238,8 @@ module ActiveModel
|
|
238
238
|
# object. You can pass the <tt>:full_messages</tt> option. This determines
|
239
239
|
# if the json object should contain full messages or not (false by default).
|
240
240
|
#
|
241
|
-
# person.as_json # => {:name=>["can not be nil"]}
|
242
|
-
# person.as_json(full_messages: true) # => {:name=>["name can not be nil"]}
|
241
|
+
# person.errors.as_json # => {:name=>["can not be nil"]}
|
242
|
+
# person.errors.as_json(full_messages: true) # => {:name=>["name can not be nil"]}
|
243
243
|
def as_json(options=nil)
|
244
244
|
to_hash(options && options[:full_messages])
|
245
245
|
end
|
@@ -247,8 +247,8 @@ module ActiveModel
|
|
247
247
|
# Returns a Hash of attributes with their error messages. If +full_messages+
|
248
248
|
# is +true+, it will contain full messages (see +full_message+).
|
249
249
|
#
|
250
|
-
# person.to_hash # => {:name=>["can not be nil"]}
|
251
|
-
# person.to_hash(true) # => {:name=>["name can not be nil"]}
|
250
|
+
# person.errors.to_hash # => {:name=>["can not be nil"]}
|
251
|
+
# person.errors.to_hash(true) # => {:name=>["name can not be nil"]}
|
252
252
|
def to_hash(full_messages = false)
|
253
253
|
if full_messages
|
254
254
|
messages = {}
|
@@ -18,9 +18,9 @@ module ActiveModel
|
|
18
18
|
# value to the password_confirmation attribute and the the validation
|
19
19
|
# will not be triggered.
|
20
20
|
#
|
21
|
-
# You need to add bcrypt-ruby (~> 3.
|
21
|
+
# You need to add bcrypt-ruby (~> 3.1.2) to Gemfile to use #has_secure_password:
|
22
22
|
#
|
23
|
-
# gem 'bcrypt-ruby', '~> 3.
|
23
|
+
# gem 'bcrypt-ruby', '~> 3.1.2'
|
24
24
|
#
|
25
25
|
# Example using Active Record (which automatically includes ActiveModel::SecurePassword):
|
26
26
|
#
|
@@ -44,7 +44,7 @@ module ActiveModel
|
|
44
44
|
# This is to avoid ActiveModel (and by extension the entire framework)
|
45
45
|
# being dependent on a binary library.
|
46
46
|
begin
|
47
|
-
gem 'bcrypt-ruby', '~> 3.
|
47
|
+
gem 'bcrypt-ruby', '~> 3.1.2'
|
48
48
|
require 'bcrypt'
|
49
49
|
rescue LoadError
|
50
50
|
$stderr.puts "You don't have bcrypt-ruby installed in your application. Please add it to your Gemfile and run bundle install"
|
@@ -101,7 +101,7 @@ module ActiveModel
|
|
101
101
|
def password=(unencrypted_password)
|
102
102
|
unless unencrypted_password.blank?
|
103
103
|
@password = unencrypted_password
|
104
|
-
cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST : BCrypt::Engine
|
104
|
+
cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST : BCrypt::Engine.cost
|
105
105
|
self.password_digest = BCrypt::Password.create(unencrypted_password, cost: cost)
|
106
106
|
end
|
107
107
|
end
|
@@ -31,10 +31,11 @@ module ActiveModel
|
|
31
31
|
end
|
32
32
|
|
33
33
|
# In Ruby 1.9 <tt>Range#include?</tt> on non-numeric ranges checks all possible values in the
|
34
|
-
# range for equality,
|
35
|
-
#
|
34
|
+
# range for equality, which is slower but more accurate. <tt>Range#cover?</tt> uses
|
35
|
+
# the previous logic of comparing a value with the range endpoints, which is fast
|
36
|
+
# but is only accurate on numeric ranges.
|
36
37
|
def inclusion_method(enumerable)
|
37
|
-
enumerable.is_a?(Range) ? :cover? : :include?
|
38
|
+
(enumerable.is_a?(Range) && enumerable.first.is_a?(Numeric)) ? :cover? : :include?
|
38
39
|
end
|
39
40
|
end
|
40
41
|
end
|
@@ -28,7 +28,7 @@ module ActiveModel
|
|
28
28
|
# Configuration options:
|
29
29
|
# * <tt>:in</tt> - An enumerable object of available items. This can be
|
30
30
|
# supplied as a proc, lambda or symbol which returns an enumerable. If the
|
31
|
-
# enumerable is a range the test is performed with <tt>Range#cover?</tt>,
|
31
|
+
# enumerable is a numerical range the test is performed with <tt>Range#cover?</tt>,
|
32
32
|
# otherwise with <tt>include?</tt>.
|
33
33
|
# * <tt>:within</tt> - A synonym(or alias) for <tt>:in</tt>
|
34
34
|
# * <tt>:message</tt> - Specifies a custom error message (default is: "is
|
data/lib/active_model/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activemodel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.1.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-10-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 4.0.
|
19
|
+
version: 4.0.1.rc1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 4.0.
|
26
|
+
version: 4.0.1.rc1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: builder
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -99,12 +99,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
99
99
|
version: 1.9.3
|
100
100
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- - '
|
102
|
+
- - '>'
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version:
|
104
|
+
version: 1.3.1
|
105
105
|
requirements: []
|
106
106
|
rubyforge_project:
|
107
|
-
rubygems_version: 2.0.
|
107
|
+
rubygems_version: 2.0.6
|
108
108
|
signing_key:
|
109
109
|
specification_version: 4
|
110
110
|
summary: A toolkit for building modeling frameworks (part of Rails).
|