activemodel 3.0.3 → 3.0.4.rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -46,8 +46,8 @@ module ActiveModel
46
46
  # end
47
47
  # end
48
48
  #
49
- # Notice that whenever you include ActiveModel::AttributeMethods in your class,
50
- # it requires you to implement a <tt>attributes</tt> methods which returns a hash
49
+ # Note that whenever you include ActiveModel::AttributeMethods in your class,
50
+ # it requires you to implement an <tt>attributes</tt> method which returns a hash
51
51
  # with each attribute name in your model as hash key and the attribute value as
52
52
  # hash value.
53
53
  #
@@ -149,7 +149,7 @@ module ActiveModel
149
149
  def empty?
150
150
  all? { |k, v| v && v.empty? }
151
151
  end
152
-
152
+ alias_method :blank?, :empty?
153
153
  # Returns an xml formatted representation of the Errors hash.
154
154
  #
155
155
  # p.errors.add(:name, "can't be blank")
@@ -167,7 +167,13 @@ module ActiveModel
167
167
 
168
168
  # Returns an ActiveSupport::OrderedHash that can be used as the JSON representation for this object.
169
169
  def as_json(options=nil)
170
- self
170
+ to_hash
171
+ end
172
+
173
+ def to_hash
174
+ hash = ActiveSupport::OrderedHash.new
175
+ each { |k, v| (hash[k] ||= []) << v }
176
+ hash
171
177
  end
172
178
 
173
179
  # Adds +message+ to the error messages on +attribute+, which will be returned on a call to
@@ -1,19 +1,19 @@
1
- # == Active Model Lint Tests
2
- #
3
- # You can test whether an object is compliant with the Active Model API by
4
- # including <tt>ActiveModel::Lint::Tests</tt> in your TestCase. It will include
5
- # tests that tell you whether your object is fully compliant, or if not,
6
- # which aspects of the API are not implemented.
7
- #
8
- # These tests do not attempt to determine the semantic correctness of the
9
- # returned values. For instance, you could implement valid? to always
10
- # return true, and the tests would pass. It is up to you to ensure that
11
- # the values are semantically meaningful.
12
- #
13
- # Objects you pass in are expected to return a compliant object from a
14
- # call to to_model. It is perfectly fine for to_model to return self.
15
1
  module ActiveModel
16
2
  module Lint
3
+ # == Active Model Lint Tests
4
+ #
5
+ # You can test whether an object is compliant with the Active Model API by
6
+ # including <tt>ActiveModel::Lint::Tests</tt> in your TestCase. It will include
7
+ # tests that tell you whether your object is fully compliant, or if not,
8
+ # which aspects of the API are not implemented.
9
+ #
10
+ # These tests do not attempt to determine the semantic correctness of the
11
+ # returned values. For instance, you could implement valid? to always
12
+ # return true, and the tests would pass. It is up to you to ensure that
13
+ # the values are semantically meaningful.
14
+ #
15
+ # Objects you pass in are expected to return a compliant object from a
16
+ # call to to_model. It is perfectly fine for to_model to return self.
17
17
  module Tests
18
18
 
19
19
  # == Responds to <tt>to_key</tt>
@@ -17,6 +17,7 @@ module ActiveModel
17
17
 
18
18
  def initialize(name, serializable, raw_value=nil)
19
19
  @name, @serializable = name, serializable
20
+ raw_value = raw_value.in_time_zone if raw_value.respond_to?(:in_time_zone)
20
21
  @value = raw_value || @serializable.send(name)
21
22
  @type = compute_type
22
23
  end
@@ -103,8 +103,10 @@ module ActiveModel
103
103
  { :with => options }
104
104
  when Range, Array
105
105
  { :in => options }
106
+ else
107
+ raise ArgumentError, "#{options.inspect} is an invalid option. Expecting true, Hash, Regexp, Range, or Array"
106
108
  end
107
109
  end
108
110
  end
109
111
  end
110
- end
112
+ end
@@ -2,8 +2,9 @@ module ActiveModel
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 3
4
4
  MINOR = 0
5
- TINY = 3
6
-
7
- STRING = [MAJOR, MINOR, TINY].join('.')
5
+ TINY = 4
6
+ PRE = "rc1"
7
+
8
+ STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
8
9
  end
9
10
  end
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activemodel
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1
5
- prerelease: false
4
+ hash: 977940590
5
+ prerelease: true
6
6
  segments:
7
7
  - 3
8
8
  - 0
9
- - 3
10
- version: 3.0.3
9
+ - 4
10
+ - rc1
11
+ version: 3.0.4.rc1
11
12
  platform: ruby
12
13
  authors:
13
14
  - David Heinemeier Hansson
@@ -15,7 +16,7 @@ autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2010-11-16 00:00:00 -06:00
19
+ date: 2011-01-31 00:00:00 +13:00
19
20
  default_executable:
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency
@@ -26,12 +27,13 @@ dependencies:
26
27
  requirements:
27
28
  - - "="
28
29
  - !ruby/object:Gem::Version
29
- hash: 1
30
+ hash: 977940590
30
31
  segments:
31
32
  - 3
32
33
  - 0
33
- - 3
34
- version: 3.0.3
34
+ - 4
35
+ - rc1
36
+ version: 3.0.4.rc1
35
37
  type: :runtime
36
38
  version_requirements: *id001
37
39
  - !ruby/object:Gem::Dependency
@@ -134,12 +136,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
134
136
  required_rubygems_version: !ruby/object:Gem::Requirement
135
137
  none: false
136
138
  requirements:
137
- - - ">="
139
+ - - ">"
138
140
  - !ruby/object:Gem::Version
139
- hash: 3
141
+ hash: 25
140
142
  segments:
141
- - 0
142
- version: "0"
143
+ - 1
144
+ - 3
145
+ - 1
146
+ version: 1.3.1
143
147
  requirements: []
144
148
 
145
149
  rubyforge_project: activemodel