Skip to content

Commit 7793719

Browse files
committed
MONGOID-5222 fix more comments and update compatibility release note
1 parent 9ca06df commit 7793719

File tree

9 files changed

+43
-23
lines changed

9 files changed

+43
-23
lines changed

docs/release-notes/mongoid-8.0.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,12 @@ functionality:
8080
| | ``to_sym`` is | | |
8181
| | assigned: ``[]`` | | |
8282
+--------------+------------------------+------------------------+-------------------+
83+
| Array/Set | When a value that is | return ``[ 1, 2, 3 ]`` | return ``nil`` |
84+
| | not an array or set is | return ``[[ :x, 1 ]]`` | return ``nil`` |
85+
| | assigned, but does | | |
86+
| | respond to ``to_a``: | | |
87+
| | ``1..3``, ``{ x: 1 }`` | | |
88+
+--------------+------------------------+------------------------+-------------------+
8389
| All Other | When an uncastable | undefined behavior, | return ``nil`` |
8490
| Types | value is assigned | occasionally raises | |
8591
| | | ``NoMethodError`` | |

lib/mongoid/extensions/big_decimal.rb

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,7 @@ def demongoize(object)
6666
# representing the object or nil. String if Mongoid.map_big_decimal_to_decimal128
6767
# is false, BSON::Decimal128 otherwise.
6868
def mongoize(object)
69-
return if object.nil?
70-
return if object.is_a?(String) && object.blank?
69+
return if object.blank?
7170
if Mongoid.map_big_decimal_to_decimal128
7271
if object.is_a?(BSON::Decimal128)
7372
object
@@ -79,8 +78,6 @@ def mongoize(object)
7978
else
8079
if object.is_a?(BSON::Decimal128) || object.numeric?
8180
object.to_s
82-
elsif object.numeric?
83-
object.to_d.to_s
8481
end
8582
end
8683
end

lib/mongoid/extensions/boolean.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class << self
1313
#
1414
# @return [ true | false | nil ] The object mongoized or nil.
1515
def mongoize(object)
16-
return if object.nil?
16+
return if object.blank?
1717
if object.to_s =~ (/\A(true|t|yes|y|on|1|1.0)\z/i)
1818
true
1919
elsif object.to_s =~ (/\A(false|f|no|n|off|0|0.0)\z/i)

lib/mongoid/extensions/date.rb

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -52,21 +52,19 @@ def demongoize(object)
5252
#
5353
# @return [ Time | nil ] The object mongoized or nil.
5454
def mongoize(object)
55-
return if object.nil?
56-
unless object.blank?
57-
begin
58-
if object.is_a?(String)
59-
# https://jira.mongodb.org/browse/MONGOID-4460
60-
time = ::Time.parse(object)
61-
else
62-
time = object.__mongoize_time__
63-
end
64-
if time.acts_like?(:time)
65-
::Time.utc(time.year, time.month, time.day)
66-
end
67-
rescue ArgumentError
68-
nil
55+
return if object.blank?
56+
begin
57+
if object.is_a?(String)
58+
# https://jira.mongodb.org/browse/MONGOID-4460
59+
time = ::Time.parse(object)
60+
else
61+
time = object.__mongoize_time__
6962
end
63+
if time.acts_like?(:time)
64+
::Time.utc(time.year, time.month, time.day)
65+
end
66+
rescue ArgumentError
67+
nil
7068
end
7169
end
7270
end

lib/mongoid/extensions/float.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ module ClassMethods
3636
#
3737
# @return [ Float | nil ] The object mongoized or nil.
3838
def mongoize(object)
39-
return if object.nil?
39+
return if object.blank?
4040
if object.numeric?
4141
object.to_f
4242
end

lib/mongoid/extensions/hash.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ module ClassMethods
221221
def mongoize(object)
222222
return if object.nil?
223223
if object.is_a?(Hash)
224-
evolve(object.dup).transform_values!(&:mongoize)
224+
object.dup.transform_values!(&:mongoize)
225225
end
226226
end
227227

lib/mongoid/extensions/integer.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ module ClassMethods
4444
#
4545
# @return [ Integer | nil ] The object mongoized or nil.
4646
def mongoize(object)
47-
return if object.nil?
47+
return if object.blank?
4848
if object.numeric?
4949
object.to_i
5050
end

lib/mongoid/extensions/time.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def demongoize(object)
6565
#
6666
# @return [ Time | nil ] The object mongoized or nil.
6767
def mongoize(object)
68-
return if object.nil?
68+
return if object.blank?
6969
begin
7070
time = object.__mongoize_time__
7171
if time.acts_like?(:time)

spec/mongoid/extensions/date_spec.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,23 @@
7676
expect(date.mongoize).to eq(time)
7777
end
7878
end
79+
80+
describe ".mongoize" do
81+
let(:date) do
82+
Date.new(2010, 1, 1)
83+
end
84+
85+
let(:time) do
86+
Time.utc(2010, 1, 1, 0, 0, 0, 0)
87+
end
88+
89+
let(:mongoized) do
90+
byebug
91+
Date.mongoize(date)
92+
end
93+
94+
it "returns the date as a time" do
95+
expect(mongoized).to eq(time)
96+
end
97+
end
7998
end

0 commit comments

Comments
 (0)