mongoid 1.2.9 → 1.2.10

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 CHANGED
@@ -1 +1 @@
1
- 1.2.9
1
+ 1.2.10
@@ -46,6 +46,7 @@ require "mongoid/config"
46
46
  require "mongoid/contexts"
47
47
  require "mongoid/criteria"
48
48
  require "mongoid/cursor"
49
+ require "mongoid/deprecation"
49
50
  require "mongoid/extensions"
50
51
  require "mongoid/extras"
51
52
  require "mongoid/errors"
@@ -88,10 +89,20 @@ module Mongoid #:nodoc
88
89
  #
89
90
  # The Mongoid +Config+ singleton instance.
90
91
  def configure
91
- config = Config.instance
92
+ config = Mongoid::Config.instance
92
93
  block_given? ? yield(config) : config
93
94
  end
94
95
 
96
+ # Easy convenience method for having an alert generated from the
97
+ # deprecation module.
98
+ #
99
+ # Example:
100
+ #
101
+ # <tt>Mongoid.deprecate("Method no longer used")</tt>
102
+ def deprecate(message)
103
+ Mongoid::Deprecation.instance.alert(message)
104
+ end
105
+
95
106
  alias :config :configure
96
107
  end
97
108
 
@@ -101,7 +112,7 @@ module Mongoid #:nodoc
101
112
  # Example:
102
113
  #
103
114
  # <tt>Mongoid.database = Mongo::Connection.new.db("test")</tt>
104
- Config.public_instance_methods(false).each do |name|
115
+ Mongoid::Config.public_instance_methods(false).each do |name|
105
116
  (class << self; self; end).class_eval <<-EOT
106
117
  def #{name}(*args)
107
118
  configure.send("#{name}", *args)
@@ -0,0 +1,22 @@
1
+ # encoding: utf-8
2
+ module Mongoid #:nodoc:
3
+ class Deprecation #:nodoc
4
+ include Singleton
5
+
6
+ # Alert of a deprecation. This will delegate to the logger and call warn on
7
+ # it.
8
+ #
9
+ # Example:
10
+ #
11
+ # <tt>deprecation.alert("Method no longer used")</tt>
12
+ def alert(message)
13
+ @logger.warn("Deprecation: #{message}")
14
+ end
15
+
16
+ protected
17
+ # Instantiate a new logger to stdout or a rails logger if available.
18
+ def initialize
19
+ @logger = defined?(Rails) ? Rails.logger : Logger.new($stdout)
20
+ end
21
+ end
22
+ end
@@ -35,7 +35,7 @@ module Mongoid #:nodoc:
35
35
  #
36
36
  # True if cached, false if not.
37
37
  def cached?
38
- self.cached == true
38
+ !!self.cached
39
39
  end
40
40
 
41
41
  # Set whether or not this documents read operations should delegate to
@@ -57,7 +57,7 @@ module Mongoid #:nodoc:
57
57
  #
58
58
  # True if enslaved, false if not.
59
59
  def enslaved?
60
- self.enslaved == true
60
+ !!self.enslaved
61
61
  end
62
62
  end
63
63
  end
@@ -6,9 +6,8 @@ module Mongoid #:nodoc
6
6
  extend ClassMethods
7
7
  # Set up the class attributes that must be available to all subclasses.
8
8
  # These include defaults, fields
9
- class_inheritable_accessor :defaults, :fields
9
+ class_inheritable_accessor :fields
10
10
 
11
- self.defaults = {}
12
11
  self.fields = {}
13
12
 
14
13
  delegate :defaults, :fields, :to => "self.class"
@@ -31,7 +30,15 @@ module Mongoid #:nodoc
31
30
  def field(name, options = {})
32
31
  access = name.to_s
33
32
  set_field(access, options)
34
- set_default(access, options)
33
+ end
34
+
35
+ # Returns the default values for the fields on the document
36
+ def defaults
37
+ fields.inject({}) do |defs,(field_name,field)|
38
+ next(defs) if field.default.nil?
39
+ defs[field_name.to_s] = field.default
40
+ defs
41
+ end
35
42
  end
36
43
 
37
44
  protected
@@ -52,11 +59,6 @@ module Mongoid #:nodoc
52
59
  end
53
60
  end
54
61
 
55
- # Set up a default value for a field.
56
- def set_default(name, options = {})
57
- value = options[:default]
58
- defaults[name] = value unless value.nil?
59
- end
60
62
  end
61
63
  end
62
64
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{mongoid}
8
- s.version = "1.2.9"
8
+ s.version = "1.2.10"
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"]
12
- s.date = %q{2010-03-09}
12
+ s.date = %q{2010-03-12}
13
13
  s.email = %q{durran@gmail.com}
14
14
  s.extra_rdoc_files = [
15
15
  "README.rdoc"
@@ -62,6 +62,7 @@ Gem::Specification.new do |s|
62
62
  "lib/mongoid/criterion/inclusion.rb",
63
63
  "lib/mongoid/criterion/optional.rb",
64
64
  "lib/mongoid/cursor.rb",
65
+ "lib/mongoid/deprecation.rb",
65
66
  "lib/mongoid/document.rb",
66
67
  "lib/mongoid/errors.rb",
67
68
  "lib/mongoid/extensions.rb",
@@ -181,6 +182,7 @@ Gem::Specification.new do |s|
181
182
  "spec/unit/mongoid/criterion/inclusion_spec.rb",
182
183
  "spec/unit/mongoid/criterion/optional_spec.rb",
183
184
  "spec/unit/mongoid/cursor_spec.rb",
185
+ "spec/unit/mongoid/deprecation_spec.rb",
184
186
  "spec/unit/mongoid/document_spec.rb",
185
187
  "spec/unit/mongoid/errors_spec.rb",
186
188
  "spec/unit/mongoid/extensions/array/accessors_spec.rb",
@@ -302,6 +304,7 @@ Gem::Specification.new do |s|
302
304
  "spec/unit/mongoid/criterion/inclusion_spec.rb",
303
305
  "spec/unit/mongoid/criterion/optional_spec.rb",
304
306
  "spec/unit/mongoid/cursor_spec.rb",
307
+ "spec/unit/mongoid/deprecation_spec.rb",
305
308
  "spec/unit/mongoid/document_spec.rb",
306
309
  "spec/unit/mongoid/errors_spec.rb",
307
310
  "spec/unit/mongoid/extensions/array/accessors_spec.rb",
@@ -240,6 +240,12 @@ describe Mongoid::Associations do
240
240
  @person.name.last_name.should == "Brown"
241
241
  end
242
242
 
243
+ it "sets the new_record values properly" do
244
+ from_db = Person.find(@person.id)
245
+ new_name = from_db.create_name(:first_name => "Flash")
246
+ new_name.new_record?.should be_false
247
+ end
248
+
243
249
  end
244
250
 
245
251
  context "multiple levels nested" do
@@ -0,0 +1,24 @@
1
+ require "spec_helper"
2
+
3
+ describe Mongoid::Deprecation do
4
+
5
+ let(:logger) do
6
+ stub.quacks_like(Logger.allocate)
7
+ end
8
+
9
+ before do
10
+ Logger.expects(:new).with($stdout).returns(logger)
11
+ end
12
+
13
+ describe "#alert" do
14
+
15
+ let(:deprecation) do
16
+ Mongoid::Deprecation.instance
17
+ end
18
+
19
+ it "calls warn on the memoized logger" do
20
+ logger.expects(:warn).with("Deprecation: testing")
21
+ deprecation.alert("testing")
22
+ end
23
+ end
24
+ end
@@ -20,13 +20,6 @@ describe Mongoid::Extras do
20
20
 
21
21
  end
22
22
 
23
- describe ".cached" do
24
-
25
- it "defaults to false" do
26
- @klass.cached.should be_false
27
- end
28
- end
29
-
30
23
  describe ".cached?" do
31
24
 
32
25
  context "when the class is cached" do
@@ -73,13 +66,6 @@ describe Mongoid::Extras do
73
66
 
74
67
  end
75
68
 
76
- describe ".enslaved" do
77
-
78
- it "defaults to false" do
79
- @klass.enslaved.should be_false
80
- end
81
- end
82
-
83
69
  describe ".enslaved?" do
84
70
 
85
71
  context "when the class is enslaved" do
@@ -12,6 +12,23 @@ describe Mongoid::Fields do
12
12
 
13
13
  describe "#defaults" do
14
14
 
15
+ context "with defaults specified as a non-primitive" do
16
+ before do
17
+ Person.field(:hash_testing, :type => Hash, :default => {})
18
+ Person.field(:array_testing, :type => Array, :default => [])
19
+ @first_person = Person.new
20
+ @second_person = Person.new
21
+ end
22
+
23
+ it "should not return the same object when calling defaults with a default hash" do
24
+ @first_person.hash_testing.object_id.should_not == @second_person.hash_testing.object_id
25
+ end
26
+
27
+ it "should not return the same object when calling defaults with a default array" do
28
+ @first_person.array_testing.object_id.should_not == @second_person.array_testing.object_id
29
+ end
30
+ end
31
+
15
32
  context "on parent classes" do
16
33
 
17
34
  before do
@@ -9,7 +9,6 @@ describe Mongoid do
9
9
  it "returns the config singleton" do
10
10
  Mongoid.configure.should == Mongoid::Config.instance
11
11
  end
12
-
13
12
  end
14
13
 
15
14
  context "when a block is supplied" do
@@ -29,9 +28,19 @@ describe Mongoid do
29
28
  it "sets the values on the config instance" do
30
29
  Mongoid.allow_dynamic_fields.should be_false
31
30
  end
31
+ end
32
+ end
32
33
 
34
+ describe ".deprecate" do
35
+
36
+ before do
37
+ @deprecation = mock
38
+ Mongoid::Deprecation.expects(:instance).returns(@deprecation)
33
39
  end
34
40
 
41
+ it "calls alert on the deprecation singleton" do
42
+ @deprecation.expects(:alert).with("testing")
43
+ Mongoid.deprecate("testing")
44
+ end
35
45
  end
36
-
37
46
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 2
8
- - 9
9
- version: 1.2.9
8
+ - 10
9
+ version: 1.2.10
10
10
  platform: ruby
11
11
  authors:
12
12
  - Durran Jordan
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-09 00:00:00 -05:00
17
+ date: 2010-03-12 00:00:00 -05:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -156,6 +156,7 @@ files:
156
156
  - lib/mongoid/criterion/inclusion.rb
157
157
  - lib/mongoid/criterion/optional.rb
158
158
  - lib/mongoid/cursor.rb
159
+ - lib/mongoid/deprecation.rb
159
160
  - lib/mongoid/document.rb
160
161
  - lib/mongoid/errors.rb
161
162
  - lib/mongoid/extensions.rb
@@ -275,6 +276,7 @@ files:
275
276
  - spec/unit/mongoid/criterion/inclusion_spec.rb
276
277
  - spec/unit/mongoid/criterion/optional_spec.rb
277
278
  - spec/unit/mongoid/cursor_spec.rb
279
+ - spec/unit/mongoid/deprecation_spec.rb
278
280
  - spec/unit/mongoid/document_spec.rb
279
281
  - spec/unit/mongoid/errors_spec.rb
280
282
  - spec/unit/mongoid/extensions/array/accessors_spec.rb
@@ -420,6 +422,7 @@ test_files:
420
422
  - spec/unit/mongoid/criterion/inclusion_spec.rb
421
423
  - spec/unit/mongoid/criterion/optional_spec.rb
422
424
  - spec/unit/mongoid/cursor_spec.rb
425
+ - spec/unit/mongoid/deprecation_spec.rb
423
426
  - spec/unit/mongoid/document_spec.rb
424
427
  - spec/unit/mongoid/errors_spec.rb
425
428
  - spec/unit/mongoid/extensions/array/accessors_spec.rb