mongoid 0.5.2 → 0.5.3
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.
- data/VERSION +1 -1
- data/lib/mongoid/criteria.rb +1 -1
- data/lib/mongoid/extensions.rb +27 -0
- data/lib/mongoid/extensions/boolean/conversions.rb +12 -0
- data/lib/mongoid/extensions/date/conversions.rb +11 -0
- data/lib/mongoid/extensions/float/conversions.rb +11 -0
- data/lib/mongoid/extensions/integer/conversions.rb +11 -0
- data/lib/mongoid/extensions/object/casting.rb +0 -0
- data/lib/mongoid/extensions/string/conversions.rb +11 -0
- data/lib/mongoid/extensions/time/conversions.rb +11 -0
- data/lib/mongoid/field.rb +4 -2
- data/lib/mongoid/timestamps.rb +2 -2
- data/mongoid.gemspec +20 -1
- data/spec/unit/mongoid/criteria_spec.rb +18 -5
- data/spec/unit/mongoid/extensions/boolean/conversions_spec.rb +25 -0
- data/spec/unit/mongoid/extensions/date/conversions_spec.rb +24 -0
- data/spec/unit/mongoid/extensions/float/conversions_spec.rb +13 -0
- data/spec/unit/mongoid/extensions/integer/conversions_spec.rb +11 -0
- data/spec/unit/mongoid/extensions/string/conversions_spec.rb +10 -0
- data/spec/unit/mongoid/extensions/time/conversions_spec.rb +14 -0
- data/spec/unit/mongoid/field_spec.rb +17 -3
- metadata +20 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.3
|
data/lib/mongoid/criteria.rb
CHANGED
@@ -268,7 +268,7 @@ module Mongoid #:nodoc:
|
|
268
268
|
#
|
269
269
|
# Returns: <tt>self</tt>
|
270
270
|
def select(*args)
|
271
|
-
@options[:fields] = args.flatten
|
271
|
+
@options[:fields] = args.flatten if args.any?; self
|
272
272
|
end
|
273
273
|
|
274
274
|
# Adds a criterion to the +Criteria+ that specifies how many results to skip
|
data/lib/mongoid/extensions.rb
CHANGED
@@ -1,29 +1,56 @@
|
|
1
1
|
require "mongoid/extensions/array/conversions"
|
2
2
|
require "mongoid/extensions/array/parentization"
|
3
|
+
require "mongoid/extensions/boolean/conversions"
|
4
|
+
require "mongoid/extensions/date/conversions"
|
5
|
+
require "mongoid/extensions/float/conversions"
|
3
6
|
require "mongoid/extensions/hash/accessors"
|
7
|
+
require "mongoid/extensions/integer/conversions"
|
4
8
|
require "mongoid/extensions/object/conversions"
|
5
9
|
require "mongoid/extensions/object/parentization"
|
10
|
+
require "mongoid/extensions/string/conversions"
|
6
11
|
require "mongoid/extensions/string/inflections"
|
7
12
|
require "mongoid/extensions/symbol/inflections"
|
13
|
+
require "mongoid/extensions/time/conversions"
|
8
14
|
|
9
15
|
class Array #:nodoc:
|
10
16
|
include Mongoid::Extensions::Array::Conversions
|
11
17
|
include Mongoid::Extensions::Array::Parentization
|
12
18
|
end
|
13
19
|
|
20
|
+
class Boolean #:nodoc
|
21
|
+
extend Mongoid::Extensions::Boolean::Conversions
|
22
|
+
end
|
23
|
+
|
24
|
+
class Date #:nodoc
|
25
|
+
extend Mongoid::Extensions::Date::Conversions
|
26
|
+
end
|
27
|
+
|
28
|
+
class Float #:nodoc
|
29
|
+
extend Mongoid::Extensions::Float::Conversions
|
30
|
+
end
|
31
|
+
|
14
32
|
class Hash #:nodoc
|
15
33
|
include Mongoid::Extensions::Hash::Accessors
|
16
34
|
end
|
17
35
|
|
36
|
+
class Integer #:nodoc
|
37
|
+
extend Mongoid::Extensions::Integer::Conversions
|
38
|
+
end
|
39
|
+
|
18
40
|
class Object #:nodoc:
|
19
41
|
include Mongoid::Extensions::Object::Conversions
|
20
42
|
include Mongoid::Extensions::Object::Parentization
|
21
43
|
end
|
22
44
|
|
23
45
|
class String #:nodoc
|
46
|
+
extend Mongoid::Extensions::String::Conversions
|
24
47
|
include Mongoid::Extensions::String::Inflections
|
25
48
|
end
|
26
49
|
|
27
50
|
class Symbol #:nodoc
|
28
51
|
include Mongoid::Extensions::Symbol::Inflections
|
29
52
|
end
|
53
|
+
|
54
|
+
class Time #:nodoc
|
55
|
+
extend Mongoid::Extensions::Time::Conversions
|
56
|
+
end
|
File without changes
|
data/lib/mongoid/field.rb
CHANGED
@@ -3,7 +3,8 @@ module Mongoid #:nodoc:
|
|
3
3
|
|
4
4
|
attr_reader \
|
5
5
|
:default,
|
6
|
-
:name
|
6
|
+
:name,
|
7
|
+
:type
|
7
8
|
|
8
9
|
# Create the new field with a name and optional additional options. Valid
|
9
10
|
# options are :default
|
@@ -19,12 +20,13 @@ module Mongoid #:nodoc:
|
|
19
20
|
def initialize(name, options = {})
|
20
21
|
@name = name
|
21
22
|
@default = options[:default]
|
23
|
+
@type = options[:type] || String
|
22
24
|
end
|
23
25
|
|
24
26
|
# Gets the value for the supplied object. If the object is nil, then the
|
25
27
|
# default value will be returned.
|
26
28
|
def value(object)
|
27
|
-
object ? object : default
|
29
|
+
object ? type.cast(object) : default
|
28
30
|
end
|
29
31
|
|
30
32
|
end
|
data/lib/mongoid/timestamps.rb
CHANGED
@@ -4,8 +4,8 @@ module Mongoid
|
|
4
4
|
def self.included(base)
|
5
5
|
base.class_eval do
|
6
6
|
include InstanceMethods
|
7
|
-
field :created_at
|
8
|
-
field :modified_at
|
7
|
+
field :created_at, :type => Time
|
8
|
+
field :modified_at, :type => Time
|
9
9
|
before_create :update_created_at, :update_modified_at
|
10
10
|
before_save :update_modified_at
|
11
11
|
end
|
data/mongoid.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{mongoid}
|
8
|
-
s.version = "0.5.
|
8
|
+
s.version = "0.5.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Durran Jordan"]
|
@@ -40,11 +40,18 @@ Gem::Specification.new do |s|
|
|
40
40
|
"lib/mongoid/extensions.rb",
|
41
41
|
"lib/mongoid/extensions/array/conversions.rb",
|
42
42
|
"lib/mongoid/extensions/array/parentization.rb",
|
43
|
+
"lib/mongoid/extensions/boolean/conversions.rb",
|
44
|
+
"lib/mongoid/extensions/date/conversions.rb",
|
45
|
+
"lib/mongoid/extensions/float/conversions.rb",
|
43
46
|
"lib/mongoid/extensions/hash/accessors.rb",
|
47
|
+
"lib/mongoid/extensions/integer/conversions.rb",
|
48
|
+
"lib/mongoid/extensions/object/casting.rb",
|
44
49
|
"lib/mongoid/extensions/object/conversions.rb",
|
45
50
|
"lib/mongoid/extensions/object/parentization.rb",
|
51
|
+
"lib/mongoid/extensions/string/conversions.rb",
|
46
52
|
"lib/mongoid/extensions/string/inflections.rb",
|
47
53
|
"lib/mongoid/extensions/symbol/inflections.rb",
|
54
|
+
"lib/mongoid/extensions/time/conversions.rb",
|
48
55
|
"lib/mongoid/field.rb",
|
49
56
|
"lib/mongoid/timestamps.rb",
|
50
57
|
"mongoid.gemspec",
|
@@ -68,11 +75,17 @@ Gem::Specification.new do |s|
|
|
68
75
|
"spec/unit/mongoid/document_spec.rb",
|
69
76
|
"spec/unit/mongoid/extensions/array/conversions_spec.rb",
|
70
77
|
"spec/unit/mongoid/extensions/array/parentization_spec.rb",
|
78
|
+
"spec/unit/mongoid/extensions/boolean/conversions_spec.rb",
|
79
|
+
"spec/unit/mongoid/extensions/date/conversions_spec.rb",
|
80
|
+
"spec/unit/mongoid/extensions/float/conversions_spec.rb",
|
71
81
|
"spec/unit/mongoid/extensions/hash/accessors_spec.rb",
|
82
|
+
"spec/unit/mongoid/extensions/integer/conversions_spec.rb",
|
72
83
|
"spec/unit/mongoid/extensions/object/conversions_spec.rb",
|
73
84
|
"spec/unit/mongoid/extensions/object/parentization_spec.rb",
|
85
|
+
"spec/unit/mongoid/extensions/string/conversions_spec.rb",
|
74
86
|
"spec/unit/mongoid/extensions/string/inflections_spec.rb",
|
75
87
|
"spec/unit/mongoid/extensions/symbol/inflections_spec.rb",
|
88
|
+
"spec/unit/mongoid/extensions/time/conversions_spec.rb",
|
76
89
|
"spec/unit/mongoid/field_spec.rb",
|
77
90
|
"spec/unit/mongoid/timestamps_spec.rb"
|
78
91
|
]
|
@@ -101,11 +114,17 @@ Gem::Specification.new do |s|
|
|
101
114
|
"spec/unit/mongoid/document_spec.rb",
|
102
115
|
"spec/unit/mongoid/extensions/array/conversions_spec.rb",
|
103
116
|
"spec/unit/mongoid/extensions/array/parentization_spec.rb",
|
117
|
+
"spec/unit/mongoid/extensions/boolean/conversions_spec.rb",
|
118
|
+
"spec/unit/mongoid/extensions/date/conversions_spec.rb",
|
119
|
+
"spec/unit/mongoid/extensions/float/conversions_spec.rb",
|
104
120
|
"spec/unit/mongoid/extensions/hash/accessors_spec.rb",
|
121
|
+
"spec/unit/mongoid/extensions/integer/conversions_spec.rb",
|
105
122
|
"spec/unit/mongoid/extensions/object/conversions_spec.rb",
|
106
123
|
"spec/unit/mongoid/extensions/object/parentization_spec.rb",
|
124
|
+
"spec/unit/mongoid/extensions/string/conversions_spec.rb",
|
107
125
|
"spec/unit/mongoid/extensions/string/inflections_spec.rb",
|
108
126
|
"spec/unit/mongoid/extensions/symbol/inflections_spec.rb",
|
127
|
+
"spec/unit/mongoid/extensions/time/conversions_spec.rb",
|
109
128
|
"spec/unit/mongoid/field_spec.rb",
|
110
129
|
"spec/unit/mongoid/timestamps_spec.rb"
|
111
130
|
]
|
@@ -332,13 +332,26 @@ describe Mongoid::Criteria do
|
|
332
332
|
|
333
333
|
describe "#select" do
|
334
334
|
|
335
|
-
|
336
|
-
|
337
|
-
|
335
|
+
context "when args are provided" do
|
336
|
+
|
337
|
+
it "adds the options for limiting by fields" do
|
338
|
+
@criteria.select(:title, :text)
|
339
|
+
@criteria.options.should == { :fields => [ :title, :text ] }
|
340
|
+
end
|
341
|
+
|
342
|
+
it "returns self" do
|
343
|
+
@criteria.select.should == @criteria
|
344
|
+
end
|
345
|
+
|
338
346
|
end
|
339
347
|
|
340
|
-
|
341
|
-
|
348
|
+
context "when no args provided" do
|
349
|
+
|
350
|
+
it "does not add the field option" do
|
351
|
+
@criteria.select
|
352
|
+
@criteria.options[:fields].should be_nil
|
353
|
+
end
|
354
|
+
|
342
355
|
end
|
343
356
|
|
344
357
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "/../../../../spec_helper.rb")
|
2
|
+
|
3
|
+
describe Mongoid::Extensions::Boolean::Conversions do
|
4
|
+
|
5
|
+
describe "#cast" do
|
6
|
+
|
7
|
+
context "when 'true'" do
|
8
|
+
|
9
|
+
it "returns true" do
|
10
|
+
Boolean.cast("true").should be_true
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
context "when 'false'" do
|
16
|
+
|
17
|
+
it "returns false" do
|
18
|
+
Boolean.cast("false").should be_false
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "/../../../../spec_helper.rb")
|
2
|
+
|
3
|
+
describe Mongoid::Extensions::Date::Conversions do
|
4
|
+
|
5
|
+
describe "#cast" do
|
6
|
+
|
7
|
+
context "when string provided" do
|
8
|
+
|
9
|
+
it "parses the string" do
|
10
|
+
Date.cast("1976/11/19").should == Date.new(1976, 11, 19)
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
context "when time provided" do
|
16
|
+
|
17
|
+
it "parses the time" do
|
18
|
+
Date.cast(30.seconds.ago).should == Date.today
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "/../../../../spec_helper.rb")
|
2
|
+
|
3
|
+
describe Mongoid::Extensions::Float::Conversions do
|
4
|
+
|
5
|
+
describe "#cast" do
|
6
|
+
|
7
|
+
it "converts the string to a float" do
|
8
|
+
Float.cast("3.45").should == 3.45
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "/../../../../spec_helper.rb")
|
2
|
+
|
3
|
+
describe Mongoid::Extensions::Time::Conversions do
|
4
|
+
|
5
|
+
describe "#cast" do
|
6
|
+
context "when value is a string" do
|
7
|
+
it "converts to a time" do
|
8
|
+
time = Time.local(1976, 11, 19).utc
|
9
|
+
Time.cast(time.to_s).should == time
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
@@ -26,10 +26,23 @@ describe Mongoid::Field do
|
|
26
26
|
|
27
27
|
end
|
28
28
|
|
29
|
+
describe "#type" do
|
30
|
+
|
31
|
+
before do
|
32
|
+
@field = Mongoid::Field.new(:name)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "defaults to String" do
|
36
|
+
@field.type.should == String
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
29
41
|
describe "#value" do
|
30
42
|
|
31
43
|
before do
|
32
|
-
@
|
44
|
+
@type = mock
|
45
|
+
@field = Mongoid::Field.new(:score, :default => 10, :type => @type)
|
33
46
|
end
|
34
47
|
|
35
48
|
context "nil is provided" do
|
@@ -42,8 +55,9 @@ describe Mongoid::Field do
|
|
42
55
|
|
43
56
|
context "value is provided" do
|
44
57
|
|
45
|
-
it "
|
46
|
-
@
|
58
|
+
it "casts the value" do
|
59
|
+
@type.expects(:cast).with("30").returns(30)
|
60
|
+
@field.value("30").should == 30
|
47
61
|
end
|
48
62
|
|
49
63
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Durran Jordan
|
@@ -86,11 +86,18 @@ files:
|
|
86
86
|
- lib/mongoid/extensions.rb
|
87
87
|
- lib/mongoid/extensions/array/conversions.rb
|
88
88
|
- lib/mongoid/extensions/array/parentization.rb
|
89
|
+
- lib/mongoid/extensions/boolean/conversions.rb
|
90
|
+
- lib/mongoid/extensions/date/conversions.rb
|
91
|
+
- lib/mongoid/extensions/float/conversions.rb
|
89
92
|
- lib/mongoid/extensions/hash/accessors.rb
|
93
|
+
- lib/mongoid/extensions/integer/conversions.rb
|
94
|
+
- lib/mongoid/extensions/object/casting.rb
|
90
95
|
- lib/mongoid/extensions/object/conversions.rb
|
91
96
|
- lib/mongoid/extensions/object/parentization.rb
|
97
|
+
- lib/mongoid/extensions/string/conversions.rb
|
92
98
|
- lib/mongoid/extensions/string/inflections.rb
|
93
99
|
- lib/mongoid/extensions/symbol/inflections.rb
|
100
|
+
- lib/mongoid/extensions/time/conversions.rb
|
94
101
|
- lib/mongoid/field.rb
|
95
102
|
- lib/mongoid/timestamps.rb
|
96
103
|
- mongoid.gemspec
|
@@ -114,11 +121,17 @@ files:
|
|
114
121
|
- spec/unit/mongoid/document_spec.rb
|
115
122
|
- spec/unit/mongoid/extensions/array/conversions_spec.rb
|
116
123
|
- spec/unit/mongoid/extensions/array/parentization_spec.rb
|
124
|
+
- spec/unit/mongoid/extensions/boolean/conversions_spec.rb
|
125
|
+
- spec/unit/mongoid/extensions/date/conversions_spec.rb
|
126
|
+
- spec/unit/mongoid/extensions/float/conversions_spec.rb
|
117
127
|
- spec/unit/mongoid/extensions/hash/accessors_spec.rb
|
128
|
+
- spec/unit/mongoid/extensions/integer/conversions_spec.rb
|
118
129
|
- spec/unit/mongoid/extensions/object/conversions_spec.rb
|
119
130
|
- spec/unit/mongoid/extensions/object/parentization_spec.rb
|
131
|
+
- spec/unit/mongoid/extensions/string/conversions_spec.rb
|
120
132
|
- spec/unit/mongoid/extensions/string/inflections_spec.rb
|
121
133
|
- spec/unit/mongoid/extensions/symbol/inflections_spec.rb
|
134
|
+
- spec/unit/mongoid/extensions/time/conversions_spec.rb
|
122
135
|
- spec/unit/mongoid/field_spec.rb
|
123
136
|
- spec/unit/mongoid/timestamps_spec.rb
|
124
137
|
has_rdoc: true
|
@@ -169,10 +182,16 @@ test_files:
|
|
169
182
|
- spec/unit/mongoid/document_spec.rb
|
170
183
|
- spec/unit/mongoid/extensions/array/conversions_spec.rb
|
171
184
|
- spec/unit/mongoid/extensions/array/parentization_spec.rb
|
185
|
+
- spec/unit/mongoid/extensions/boolean/conversions_spec.rb
|
186
|
+
- spec/unit/mongoid/extensions/date/conversions_spec.rb
|
187
|
+
- spec/unit/mongoid/extensions/float/conversions_spec.rb
|
172
188
|
- spec/unit/mongoid/extensions/hash/accessors_spec.rb
|
189
|
+
- spec/unit/mongoid/extensions/integer/conversions_spec.rb
|
173
190
|
- spec/unit/mongoid/extensions/object/conversions_spec.rb
|
174
191
|
- spec/unit/mongoid/extensions/object/parentization_spec.rb
|
192
|
+
- spec/unit/mongoid/extensions/string/conversions_spec.rb
|
175
193
|
- spec/unit/mongoid/extensions/string/inflections_spec.rb
|
176
194
|
- spec/unit/mongoid/extensions/symbol/inflections_spec.rb
|
195
|
+
- spec/unit/mongoid/extensions/time/conversions_spec.rb
|
177
196
|
- spec/unit/mongoid/field_spec.rb
|
178
197
|
- spec/unit/mongoid/timestamps_spec.rb
|