simply_stored 0.3.7 → 0.3.8
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/CHANGELOG.md +4 -0
- data/lib/simply_stored/couch/has_many.rb +1 -1
- data/lib/simply_stored/couch/has_one.rb +1 -1
- data/lib/simply_stored/instance_methods.rb +1 -1
- data/lib/simply_stored.rb +1 -1
- data/test/couchdb/couch_has_many_test.rb +9 -0
- data/test/couchdb/couch_has_one_test.rb +9 -0
- data/test/fixtures/couch.rb +21 -0
- metadata +3 -3
data/CHANGELOG.md
CHANGED
@@ -163,7 +163,7 @@ module SimplyStored
|
|
163
163
|
:dependent => :nullify,
|
164
164
|
:through => nil,
|
165
165
|
:class_name => name.to_s.singularize.camelize,
|
166
|
-
:foreign_key =>
|
166
|
+
:foreign_key => nil
|
167
167
|
}.update(options)
|
168
168
|
@name, @options = name, options
|
169
169
|
|
@@ -64,7 +64,7 @@ module SimplyStored
|
|
64
64
|
options = {
|
65
65
|
:dependent => :nullify,
|
66
66
|
:class_name => name.to_s.singularize.camelize,
|
67
|
-
:foreign_key =>
|
67
|
+
:foreign_key => nil
|
68
68
|
}.update(options)
|
69
69
|
@name, @options = name, options
|
70
70
|
|
@@ -175,7 +175,7 @@ module SimplyStored
|
|
175
175
|
end
|
176
176
|
|
177
177
|
def find_associated(from, to, options = {})
|
178
|
-
foreign_key = options.delete(:foreign_key).gsub(/_id$/, '')
|
178
|
+
foreign_key = (options.delete(:foreign_key) || self.class.name.singularize.underscore.foreign_key ).gsub(/_id$/, '')
|
179
179
|
view_options = {}
|
180
180
|
view_options[:reduce] = false
|
181
181
|
view_options[:descending] = options[:descending] if options[:descending]
|
data/lib/simply_stored.rb
CHANGED
@@ -4,7 +4,7 @@ require File.expand_path(File.dirname(__FILE__) + '/simply_stored/storage')
|
|
4
4
|
require File.expand_path(File.dirname(__FILE__) + '/simply_stored/class_methods_base')
|
5
5
|
|
6
6
|
module SimplyStored
|
7
|
-
VERSION = '0.3.
|
7
|
+
VERSION = '0.3.8'
|
8
8
|
class Error < RuntimeError; end
|
9
9
|
class RecordNotFound < RuntimeError; end
|
10
10
|
end
|
@@ -155,6 +155,15 @@ class CouchHasManyTest < Test::Unit::TestCase
|
|
155
155
|
assert_equal [post], user.posts(:force_reload => true)
|
156
156
|
end
|
157
157
|
|
158
|
+
should "use the correct view when handling inheritance" do
|
159
|
+
problem = Problem.create
|
160
|
+
big_problem = BigProblem.create
|
161
|
+
issue = Issue.create(:name => 'Thing', :problem => problem)
|
162
|
+
assert_equal 1, problem.issues.size
|
163
|
+
issue.update_attributes(:problem_id => nil, :big_problem_id => big_problem.id)
|
164
|
+
assert_equal 1, big_problem.issues.size
|
165
|
+
end
|
166
|
+
|
158
167
|
context "when adding items" do
|
159
168
|
should "add the item to the internal cache" do
|
160
169
|
daddy = User.new(:title => "Mr.")
|
@@ -26,6 +26,15 @@ class CouchHasOneTest < Test::Unit::TestCase
|
|
26
26
|
assert_equal instance, instance.identity.instance
|
27
27
|
end
|
28
28
|
|
29
|
+
should "use the correct view when handling inheritance" do
|
30
|
+
problem = Problem.create
|
31
|
+
big_problem = BigProblem.create
|
32
|
+
issue = Issue.create(:name => 'Thing', :problem => problem)
|
33
|
+
assert_equal issue, problem.issue
|
34
|
+
issue.update_attributes(:problem_id => nil, :big_problem_id => big_problem.id)
|
35
|
+
assert_equal issue, big_problem.issue
|
36
|
+
end
|
37
|
+
|
29
38
|
should "verify the given options for the accessor method" do
|
30
39
|
instance = Instance.create
|
31
40
|
assert_raise(ArgumentError) do
|
data/test/fixtures/couch.rb
CHANGED
@@ -208,3 +208,24 @@ class Servant
|
|
208
208
|
|
209
209
|
belongs_to :master
|
210
210
|
end
|
211
|
+
|
212
|
+
class Issue
|
213
|
+
include SimplyStored::Couch
|
214
|
+
|
215
|
+
belongs_to :problem
|
216
|
+
belongs_to :big_problem
|
217
|
+
|
218
|
+
property :name
|
219
|
+
end
|
220
|
+
|
221
|
+
class Problem
|
222
|
+
include SimplyStored::Couch
|
223
|
+
|
224
|
+
has_many :issues
|
225
|
+
has_one :issue
|
226
|
+
end
|
227
|
+
|
228
|
+
class BigProblem < Problem
|
229
|
+
|
230
|
+
end
|
231
|
+
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simply_stored
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 8
|
10
|
+
version: 0.3.8
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Mathias Meyer, Jonathan Weiss
|