mongo_mapper-unstable 2010.2.19 → 2010.2.22

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/README.rdoc CHANGED
@@ -24,6 +24,8 @@ http://groups.google.com/group/mongomapper
24
24
  To see if the problem you are having is a verified issue, you can see the MM pivotal tracker project:
25
25
  http://www.pivotaltracker.com/projects/33576
26
26
 
27
+ There is no need to request to join the Pivotal Tracker project as I am only granting access to a select few (easier to keep things organized). If you have a problem, please use the mailing list. If I confirm it to be a bug, I am happy to add it to PT. Thanks!
28
+
27
29
  == Copyright
28
30
 
29
31
  Copyright (c) 2009 John Nunemaker. See LICENSE for details.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2010.02.19
1
+ 2010.02.22
@@ -79,6 +79,7 @@ module MongoMapper
79
79
  unless doc.new?
80
80
  ids << doc.id
81
81
  owner.save
82
+ reset
82
83
  end
83
84
  doc
84
85
  end
@@ -88,6 +89,7 @@ module MongoMapper
88
89
  unless doc.new?
89
90
  ids << doc.id
90
91
  owner.save
92
+ reset
91
93
  end
92
94
  doc
93
95
  end
@@ -52,18 +52,21 @@ module MongoMapper
52
52
  def build(attrs={})
53
53
  doc = klass.new(attrs)
54
54
  apply_scope(doc)
55
+ reset
55
56
  doc
56
57
  end
57
58
 
58
59
  def create(attrs={})
59
60
  doc = klass.new(attrs)
60
61
  apply_scope(doc).save
62
+ reset
61
63
  doc
62
64
  end
63
65
 
64
66
  def create!(attrs={})
65
67
  doc = klass.new(attrs)
66
68
  apply_scope(doc).save!
69
+ reset
67
70
  doc
68
71
  end
69
72
 
@@ -37,7 +37,7 @@ module MongoMapper
37
37
  protected
38
38
  def filter_protected_attrs(attrs)
39
39
  return attrs if protected_attributes.blank?
40
- attrs.dup.delete_if { |key, val| protected_attributes.include?(key) }
40
+ attrs.dup.delete_if { |key, val| protected_attributes.include?(key.to_sym) }
41
41
  end
42
42
  end
43
43
  end
@@ -80,6 +80,12 @@ class InArrayProxyTest < Test::Unit::TestCase
80
80
  should "save doc" do
81
81
  @list.should_not be_new
82
82
  end
83
+
84
+ should "reset cache" do
85
+ @user.lists.size.should == 1
86
+ @user.lists.create(:name => 'Moo!')
87
+ @user.lists.size.should == 2
88
+ end
83
89
  end
84
90
 
85
91
  context "create!" do
@@ -110,6 +116,12 @@ class InArrayProxyTest < Test::Unit::TestCase
110
116
  @user.lists.create!
111
117
  end
112
118
  end
119
+
120
+ should "reset cache" do
121
+ @user.lists.size.should == 1
122
+ @user.lists.create!(:name => 'Moo!')
123
+ @user.lists.size.should == 2
124
+ end
113
125
  end
114
126
 
115
127
  context "Finding scoped to association" do
@@ -54,6 +54,14 @@ class ManyDocumentsProxyTest < Test::Unit::TestCase
54
54
  status = project.statuses.build(:name => 'Foo')
55
55
  status.name.should == 'Foo'
56
56
  end
57
+
58
+ should "reset cache" do
59
+ project = Project.create
60
+ project.statuses.size.should == 0
61
+ status = project.statuses.build(:name => 'Foo')
62
+ status.save!
63
+ project.statuses.size.should == 1
64
+ end
57
65
  end
58
66
 
59
67
  context "create" do
@@ -75,6 +83,13 @@ class ManyDocumentsProxyTest < Test::Unit::TestCase
75
83
  status = project.statuses.create(:name => 'Foo!')
76
84
  status.name.should == 'Foo!'
77
85
  end
86
+
87
+ should "reset cache" do
88
+ project = Project.create
89
+ project.statuses.size.should == 0
90
+ project.statuses.create(:name => 'Foo!')
91
+ project.statuses.size.should == 1
92
+ end
78
93
  end
79
94
 
80
95
  context "create!" do
@@ -103,6 +118,13 @@ class ManyDocumentsProxyTest < Test::Unit::TestCase
103
118
  project.statuses.create!(:name => nil)
104
119
  }.should raise_error(MongoMapper::DocumentNotValid)
105
120
  end
121
+
122
+ should "reset cache" do
123
+ project = Project.create
124
+ project.statuses.size.should == 0
125
+ project.statuses.create!(:name => 'Foo!')
126
+ project.statuses.size.should == 1
127
+ end
106
128
  end
107
129
 
108
130
  context "count" do
@@ -16,7 +16,7 @@ class ProtectedTest < Test::Unit::TestCase
16
16
  should 'have protected attributes class method' do
17
17
  @doc_class.protected_attributes.should == [:admin].to_set
18
18
  end
19
-
19
+
20
20
  should "default protected attributes to nil" do
21
21
  Doc().protected_attributes.should be_nil
22
22
  end
@@ -46,7 +46,7 @@ class ProtectedTest < Test::Unit::TestCase
46
46
  doc = @doc_class.new(:name => 'John')
47
47
  doc.admin = true
48
48
  doc.save!
49
-
49
+
50
50
  doc = @doc_class.first(:name => 'John')
51
51
  doc.admin.should be_true
52
52
  doc.name.should == 'John'
@@ -63,8 +63,14 @@ class ProtectedTest < Test::Unit::TestCase
63
63
  @doc.name.should == 'Stimpson J. Cat'
64
64
  @doc.admin.should be_false
65
65
  end
66
+
67
+ should 'be indifferent to whether the protected keys are strings or symbols' do
68
+ @doc.update_attributes!("name" => 'Stimpson J. Cat', "admin" => true)
69
+ @doc.name.should == 'Stimpson J. Cat'
70
+ @doc.admin.should be_false
71
+ end
66
72
  end
67
-
73
+
68
74
  context "Single collection inherited protected attributes" do
69
75
  setup do
70
76
  class ::GrandParent
@@ -126,7 +132,7 @@ class ProtectedTest < Test::Unit::TestCase
126
132
  should 'have protected attributes class method' do
127
133
  @edoc_class.protected_attributes.should == [:admin].to_set
128
134
  end
129
-
135
+
130
136
  should "default protected attributes to nil" do
131
137
  EDoc().protected_attributes.should be_nil
132
138
  end
@@ -152,4 +158,4 @@ class ProtectedTest < Test::Unit::TestCase
152
158
  @edoc.admin.should be_false
153
159
  end
154
160
  end
155
- end
161
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongo_mapper-unstable
3
3
  version: !ruby/object:Gem::Version
4
- version: 2010.2.19
4
+ version: 2010.2.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Nunemaker
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-02-19 00:00:00 -05:00
12
+ date: 2010-02-22 00:00:00 -05:00
13
13
  default_executable: mmconsole
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency