ripple 0.7.1 → 0.8.0.beta
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/Rakefile +5 -4
- data/lib/rails/generators/ripple/model/model_generator.rb +20 -0
- data/lib/rails/generators/ripple/model/templates/model.rb +10 -0
- data/lib/rails/generators/ripple_generator.rb +60 -0
- data/lib/ripple.rb +24 -6
- data/lib/ripple/associations.rb +70 -3
- data/lib/ripple/associations/linked.rb +17 -5
- data/lib/ripple/associations/many.rb +5 -4
- data/lib/ripple/associations/many_embedded_proxy.rb +2 -0
- data/lib/ripple/associations/many_linked_proxy.rb +35 -0
- data/lib/ripple/associations/one.rb +4 -0
- data/lib/ripple/associations/one_embedded_proxy.rb +1 -1
- data/lib/ripple/associations/one_linked_proxy.rb +29 -0
- data/lib/ripple/attribute_methods/dirty.rb +2 -2
- data/lib/ripple/core_ext.rb +1 -0
- data/lib/ripple/core_ext/casting.rb +6 -8
- data/lib/ripple/document.rb +1 -0
- data/lib/ripple/document/bucket_access.rb +1 -1
- data/lib/ripple/document/finders.rb +1 -1
- data/lib/ripple/document/persistence.rb +28 -8
- data/lib/ripple/embedded_document.rb +1 -0
- data/lib/ripple/embedded_document/persistence.rb +11 -1
- data/lib/ripple/inspection.rb +26 -0
- data/lib/ripple/locale/en.yml +8 -5
- data/lib/ripple/railtie.rb +2 -12
- data/lib/ripple/validations.rb +5 -0
- data/lib/ripple/validations/associated_validator.rb +1 -2
- data/spec/fixtures/config.yml +6 -1
- data/spec/integration/ripple/associations_spec.rb +21 -0
- data/spec/ripple/associations/many_embedded_proxy_spec.rb +6 -0
- data/spec/ripple/associations/many_linked_proxy_spec.rb +103 -0
- data/spec/ripple/associations/one_embedded_proxy_spec.rb +5 -0
- data/spec/ripple/associations/one_linked_proxy_spec.rb +76 -0
- data/spec/ripple/associations/proxy_spec.rb +1 -1
- data/spec/ripple/bucket_access_spec.rb +3 -4
- data/spec/ripple/core_ext_spec.rb +11 -0
- data/spec/ripple/embedded_document/persistence_spec.rb +12 -0
- data/spec/ripple/finders_spec.rb +1 -1
- data/spec/ripple/inspection_spec.rb +48 -0
- data/spec/ripple/persistence_spec.rb +52 -6
- data/spec/ripple/properties_spec.rb +6 -0
- data/spec/ripple/ripple_spec.rb +12 -1
- data/spec/support/models/tasks.rb +13 -0
- data/spec/support/models/widget.rb +5 -1
- metadata +43 -18
@@ -87,6 +87,11 @@ describe Ripple::Associations::OneEmbeddedProxy do
|
|
87
87
|
@gchild._root_document.should == @parent
|
88
88
|
@gchild._parent_document.should == @child
|
89
89
|
end
|
90
|
+
|
91
|
+
it "should refuse assigning a document of the wrong type" do
|
92
|
+
lambda { @parent.child = @gchild }.should raise_error
|
93
|
+
lambda { @child.gchild = [] }.should raise_error
|
94
|
+
end
|
90
95
|
|
91
96
|
describe "callbacks" do
|
92
97
|
before :each do
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# Copyright 2010 Sean Cribbs, Sonian Inc., and Basho Technologies, Inc.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
require File.expand_path("../../../spec_helper", __FILE__)
|
15
|
+
|
16
|
+
describe Ripple::Associations::OneLinkedProxy do
|
17
|
+
require 'support/models/tasks'
|
18
|
+
|
19
|
+
before :each do
|
20
|
+
@person = Person.new {|p| p.key = "riak-user" }
|
21
|
+
@profile = Profile.new {|t| t.key = "one" }
|
22
|
+
@other_profile = Profile.new {|t| t.key = "two" }
|
23
|
+
[@person, @profile, @other_profile].each do |doc|
|
24
|
+
doc.stub!(:new?).and_return(false)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should be blank before the associated document is set" do
|
29
|
+
@person.profile.should_not be_present
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should accept a single document" do
|
33
|
+
lambda { @person.profile = @profile }.should_not raise_error
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should set the link on the RObject when assigning" do
|
37
|
+
@person.profile = @profile
|
38
|
+
@person.robject.links.should include(@profile.robject.to_link("profile"))
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should return the assigned document when assigning" do
|
42
|
+
ret = (@person.profile = @profile)
|
43
|
+
ret.should == @profile
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should save the new document when assigning" do
|
47
|
+
@profile.should_receive(:new?).and_return(true)
|
48
|
+
@profile.should_receive(:save).and_return(true)
|
49
|
+
@person.profile = @profile
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should link-walk to the associated document when accessing" do
|
53
|
+
@person.robject.links << @profile.robject.to_link("profile")
|
54
|
+
@person.robject.should_receive(:walk).with(Riak::WalkSpec.new(:bucket => "profiles", :tag => "profile")).and_return([[@profile.robject]])
|
55
|
+
@person.profile.should be_present
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should return nil immediately if the association link is missing" do
|
59
|
+
@person.robject.links.should be_empty
|
60
|
+
@person.profile.should be_nil
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should replace associated document with a new one" do
|
64
|
+
@person.profile = @profile
|
65
|
+
@person.profile = @other_profile
|
66
|
+
@person.profile.should == @other_profile
|
67
|
+
end
|
68
|
+
|
69
|
+
# it "should be able to build a new associated document" do
|
70
|
+
# @person.profile.build
|
71
|
+
# end
|
72
|
+
|
73
|
+
it "should refuse assigning a document of the wrong type" do
|
74
|
+
lambda { @person.profile = @person }.should raise_error
|
75
|
+
end
|
76
|
+
end
|
@@ -58,7 +58,7 @@ describe Ripple::Associations::Proxy do
|
|
58
58
|
end
|
59
59
|
|
60
60
|
it "should send resulting in a method missing if neither the proxy nor the target respond to the method" do
|
61
|
-
lambda { @proxy.send(:
|
61
|
+
lambda { @proxy.send(:explode) }.should raise_error(NoMethodError)
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
@@ -31,9 +31,8 @@ describe Ripple::Document::BucketAccess do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
it "should allow access to the bucket" do
|
34
|
-
bucket
|
35
|
-
|
36
|
-
Invoice.bucket.should ==
|
34
|
+
Invoice.bucket.should be_kind_of(Riak::Bucket)
|
35
|
+
Invoice.bucket.client.should == Ripple.client
|
36
|
+
Invoice.bucket.name.should == "invoices"
|
37
37
|
end
|
38
|
-
|
39
38
|
end
|
@@ -21,3 +21,14 @@ describe DateTime do
|
|
21
21
|
DateTime.civil(2010,3,16,12).as_json.should == "Tue, 16 Mar 2010 12:00:00 +0000"
|
22
22
|
end
|
23
23
|
end
|
24
|
+
|
25
|
+
describe "Boolean" do
|
26
|
+
it "should be available to properties on documents" do
|
27
|
+
lambda {
|
28
|
+
class BooleanTest
|
29
|
+
include Ripple::Document
|
30
|
+
property :foo, Boolean
|
31
|
+
end
|
32
|
+
}.should_not raise_error(NameError)
|
33
|
+
end
|
34
|
+
end
|
@@ -71,4 +71,16 @@ describe Ripple::EmbeddedDocument::Persistence do
|
|
71
71
|
@root.addresses << @addr
|
72
72
|
@root.attributes_for_persistence.should == {'_type' => 'User', 'addresses' => [{'_type' => 'Address', 'street' => nil}]}
|
73
73
|
end
|
74
|
+
|
75
|
+
it "should modify its attributes and save" do
|
76
|
+
@addr.should_receive(:save).and_return(true)
|
77
|
+
@addr.update_attributes(:street => "4 Folsom Ave")
|
78
|
+
@addr.street.should == "4 Folsom Ave"
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should update a single attribute and save without validations" do
|
82
|
+
@addr.should_receive(:save).with(:validate => false).and_return(true)
|
83
|
+
@addr.update_attribute(:street, "4 Folsom Ave")
|
84
|
+
@addr.street.should == "4 Folsom Ave"
|
85
|
+
end
|
74
86
|
end
|
data/spec/ripple/finders_spec.rb
CHANGED
@@ -22,7 +22,7 @@ describe Ripple::Document::Finders do
|
|
22
22
|
@client = Ripple.client
|
23
23
|
@client.stub!(:http).and_return(@http)
|
24
24
|
@bucket = Riak::Bucket.new(@client, "boxes")
|
25
|
-
|
25
|
+
Box.stub!(:bucket).and_return(@bucket)
|
26
26
|
end
|
27
27
|
|
28
28
|
it "should return an empty array if no keys are passed to find" do
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# Copyright 2010 Sean Cribbs, Sonian Inc., and Basho Technologies, Inc.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
require File.expand_path("../../spec_helper", __FILE__)
|
15
|
+
|
16
|
+
describe Ripple::Inspection do
|
17
|
+
require 'support/models/box'
|
18
|
+
require 'support/models/address'
|
19
|
+
|
20
|
+
before :each do
|
21
|
+
@box = Box.new
|
22
|
+
@address = Address.new
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should include the class name in the inspect string" do
|
26
|
+
@box.inspect.should be_starts_with("<Box")
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should include the key in the inspect string for documents" do
|
30
|
+
@box.key = "square"
|
31
|
+
@box.inspect.should be_starts_with("<Box:square")
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should indicate a new document when no key is specified" do
|
35
|
+
@box.inspect.should be_starts_with("<Box:[new]")
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should enumerate the document's properties and their values" do
|
39
|
+
@box.shape = "square"
|
40
|
+
@box.inspect.should include("shape=\"square\"")
|
41
|
+
@box.inspect.should include("created_at=")
|
42
|
+
@box.inspect.should include("updated_at=")
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should not display a key for embedded documents" do
|
46
|
+
@address.inspect.should_not include("[new]")
|
47
|
+
end
|
48
|
+
end
|
@@ -33,7 +33,26 @@ describe Ripple::Document::Persistence do
|
|
33
33
|
@widget.should_not be_a_new_record
|
34
34
|
@widget.changes.should be_blank
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
|
+
it "should modify attributes and save a new object" do
|
38
|
+
json = @widget.attributes.merge("_type" => "Widget", "size" => 5).to_json
|
39
|
+
@http.should_receive(:post).with(201, "/riak/", "widgets", an_instance_of(Hash), json, hash_including("Content-Type" => "application/json")).and_return(:code => 201, :headers => {'location' => ["/riak/widgets/new_widget"]})
|
40
|
+
@widget.update_attributes(:size => 5)
|
41
|
+
@widget.key.should == "new_widget"
|
42
|
+
@widget.should_not be_a_new_record
|
43
|
+
@widget.changes.should be_blank
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should modify a single attribute and save a new object" do
|
47
|
+
json = @widget.attributes.merge("_type" => "Widget", "size" => 5).to_json
|
48
|
+
@http.should_receive(:post).with(201, "/riak/", "widgets", an_instance_of(Hash), json, hash_including("Content-Type" => "application/json")).and_return(:code => 201, :headers => {'location' => ["/riak/widgets/new_widget"]})
|
49
|
+
@widget.update_attribute(:size, 5)
|
50
|
+
@widget.key.should == "new_widget"
|
51
|
+
@widget.should_not be_a_new_record
|
52
|
+
@widget.changes.should be_blank
|
53
|
+
@widget.size.should == 5
|
54
|
+
end
|
55
|
+
|
37
56
|
it "should instantiate and save a new object to riak" do
|
38
57
|
json = @widget.attributes.merge(:size => 10, :_type => 'Widget').to_json
|
39
58
|
@http.should_receive(:post).with(201, "/riak/", "widgets", an_instance_of(Hash), json, hash_including("Content-Type" => "application/json")).and_return(:code => 201, :headers => {'location' => ["/riak/widgets/new_widget"]})
|
@@ -41,7 +60,7 @@ describe Ripple::Document::Persistence do
|
|
41
60
|
@widget.size.should == 10
|
42
61
|
@widget.should_not be_a_new_record
|
43
62
|
end
|
44
|
-
|
63
|
+
|
45
64
|
it "should instantiate and save a new object to riak and allow its attributes to be set via a block" do
|
46
65
|
json = @widget.attributes.merge(:size => 10, :_type => 'Widget').to_json
|
47
66
|
@http.should_receive(:post).with(201, "/riak/", "widgets", an_instance_of(Hash), json, hash_including("Content-Type" => "application/json")).and_return(:code => 201, :headers => {'location' => ["/riak/widgets/new_widget"]})
|
@@ -82,15 +101,12 @@ describe Ripple::Document::Persistence do
|
|
82
101
|
@widget.destroy.should be_true
|
83
102
|
@widget.should be_frozen
|
84
103
|
end
|
85
|
-
|
104
|
+
|
86
105
|
it "should be a root document" do
|
87
106
|
@widget._root_document.should == @widget
|
88
107
|
end
|
89
108
|
|
90
109
|
describe "when storing a class using single-bucket inheritance" do
|
91
|
-
|
92
|
-
class Cog < Widget; property :name, String, :default => "cog"; end
|
93
|
-
|
94
110
|
before :each do
|
95
111
|
@cog = Cog.new(:size => 1000)
|
96
112
|
end
|
@@ -103,4 +119,34 @@ describe Ripple::Document::Persistence do
|
|
103
119
|
end
|
104
120
|
|
105
121
|
end
|
122
|
+
|
123
|
+
describe "modifying the default quorum values" do
|
124
|
+
before :each do
|
125
|
+
Widget.set_quorums :r => 1, :w => 1, :dw => 0, :rw => 1
|
126
|
+
@bucket = mock("bucket", :name => "widgets")
|
127
|
+
@robject = mock("object", :data => {"name" => "bar"}, :key => "gear")
|
128
|
+
Widget.stub(:bucket).and_return(@bucket)
|
129
|
+
end
|
130
|
+
|
131
|
+
it "should use the supplied R value when reading" do
|
132
|
+
@bucket.should_receive(:get).with("gear", :r => 1).and_return(@robject)
|
133
|
+
Widget.find("gear")
|
134
|
+
end
|
135
|
+
|
136
|
+
it "should use the supplied W and DW values when storing" do
|
137
|
+
Widget.new do |widget|
|
138
|
+
widget.key = "gear"
|
139
|
+
widget.send(:robject).should_receive(:store).with({:w => 1, :dw => 0})
|
140
|
+
widget.save
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
it "should use the supplied RW when deleting" do
|
145
|
+
widget = Widget.new
|
146
|
+
widget.key = "gear"
|
147
|
+
widget.instance_variable_set(:@new, false)
|
148
|
+
widget.send(:robject).should_receive(:delete).with({:rw => 1})
|
149
|
+
widget.destroy
|
150
|
+
end
|
151
|
+
end
|
106
152
|
end
|
@@ -115,12 +115,18 @@ describe Ripple::Property do
|
|
115
115
|
@prop.type_cast("s").should == "s"
|
116
116
|
@prop.type_cast(1).should == "1"
|
117
117
|
@prop.type_cast(true).should == "true"
|
118
|
+
@prop.type_cast(false).should == "false"
|
118
119
|
if RUBY_VERSION < "1.9"
|
119
120
|
@prop.type_cast([]).should == ""
|
120
121
|
else
|
121
122
|
@prop.type_cast([]).should == "[]"
|
122
123
|
end
|
123
124
|
end
|
125
|
+
|
126
|
+
it "should not cast nil" do
|
127
|
+
@prop.type_cast(nil).should be_nil
|
128
|
+
end
|
129
|
+
|
124
130
|
end
|
125
131
|
|
126
132
|
describe "when type is an Integer type" do
|
data/spec/ripple/ripple_spec.rb
CHANGED
@@ -43,7 +43,18 @@ describe Ripple do
|
|
43
43
|
end
|
44
44
|
|
45
45
|
it "should raise No Such File or Directory when given a bad configuration file" do
|
46
|
-
lambda { Ripple.load_config('not-here') }.should raise_error(
|
46
|
+
lambda { Ripple.load_config('not-here') }.should raise_error(Ripple::MissingConfiguration)
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should pass an empty hash into configure if the configuration file is missing the key" do
|
50
|
+
Ripple.should_receive(:config=).with({})
|
51
|
+
Ripple.load_config(File.join(File.dirname(__FILE__), '..', 'fixtures', 'config.yml'), [:ripple, 'not-here'])
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should select the configuration hash from the config keys provided" do
|
55
|
+
Ripple.load_config(File.join(File.dirname(__FILE__), '..', 'fixtures', 'config.yml'), ['ripple_rails', 'development'])
|
56
|
+
Ripple.client.port.should == 9001
|
57
|
+
Ripple.client.host.should == '127.0.0.1'
|
47
58
|
end
|
48
59
|
|
49
60
|
it "should apply the configuration under the ripple key" do
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ripple
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
4
|
+
prerelease: true
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
|
7
|
+
- 8
|
8
|
+
- 0
|
9
|
+
- beta
|
10
|
+
version: 0.8.0.beta
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Sean Cribbs
|
@@ -14,13 +15,14 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2010-
|
18
|
+
date: 2010-08-24 00:00:00 -04:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: rspec
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
27
|
- - ~>
|
26
28
|
- !ruby/object:Gem::Version
|
@@ -29,28 +31,31 @@ dependencies:
|
|
29
31
|
- 0
|
30
32
|
- 0
|
31
33
|
- beta
|
32
|
-
-
|
33
|
-
version: 2.0.0.beta.
|
34
|
+
- 18
|
35
|
+
version: 2.0.0.beta.18
|
34
36
|
type: :development
|
35
37
|
version_requirements: *id001
|
36
38
|
- !ruby/object:Gem::Dependency
|
37
39
|
name: riak-client
|
38
40
|
prerelease: false
|
39
41
|
requirement: &id002 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
40
43
|
requirements:
|
41
44
|
- - "="
|
42
45
|
- !ruby/object:Gem::Version
|
43
46
|
segments:
|
44
47
|
- 0
|
45
|
-
-
|
46
|
-
-
|
47
|
-
|
48
|
+
- 8
|
49
|
+
- 0
|
50
|
+
- beta
|
51
|
+
version: 0.8.0.beta
|
48
52
|
type: :runtime
|
49
53
|
version_requirements: *id002
|
50
54
|
- !ruby/object:Gem::Dependency
|
51
55
|
name: activesupport
|
52
56
|
prerelease: false
|
53
57
|
requirement: &id003 !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
54
59
|
requirements:
|
55
60
|
- - "="
|
56
61
|
- !ruby/object:Gem::Version
|
@@ -58,14 +63,15 @@ dependencies:
|
|
58
63
|
- 3
|
59
64
|
- 0
|
60
65
|
- 0
|
61
|
-
-
|
62
|
-
version: 3.0.0.
|
66
|
+
- rc2
|
67
|
+
version: 3.0.0.rc2
|
63
68
|
type: :runtime
|
64
69
|
version_requirements: *id003
|
65
70
|
- !ruby/object:Gem::Dependency
|
66
71
|
name: activemodel
|
67
72
|
prerelease: false
|
68
73
|
requirement: &id004 !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
69
75
|
requirements:
|
70
76
|
- - "="
|
71
77
|
- !ruby/object:Gem::Version
|
@@ -73,8 +79,8 @@ dependencies:
|
|
73
79
|
- 3
|
74
80
|
- 0
|
75
81
|
- 0
|
76
|
-
-
|
77
|
-
version: 3.0.0.
|
82
|
+
- rc2
|
83
|
+
version: 3.0.0.rc2
|
78
84
|
type: :runtime
|
79
85
|
version_requirements: *id004
|
80
86
|
description: ripple is an object-mapper library for Riak, the distributed database by Basho. It uses ActiveModel to provide an experience that integrates well with Rails 3 applications.
|
@@ -86,13 +92,18 @@ extensions: []
|
|
86
92
|
extra_rdoc_files: []
|
87
93
|
|
88
94
|
files:
|
95
|
+
- lib/rails/generators/ripple/model/model_generator.rb
|
96
|
+
- lib/rails/generators/ripple/model/templates/model.rb
|
97
|
+
- lib/rails/generators/ripple_generator.rb
|
89
98
|
- lib/ripple/associations/embedded.rb
|
90
99
|
- lib/ripple/associations/instantiators.rb
|
91
100
|
- lib/ripple/associations/linked.rb
|
92
101
|
- lib/ripple/associations/many.rb
|
93
102
|
- lib/ripple/associations/many_embedded_proxy.rb
|
103
|
+
- lib/ripple/associations/many_linked_proxy.rb
|
94
104
|
- lib/ripple/associations/one.rb
|
95
105
|
- lib/ripple/associations/one_embedded_proxy.rb
|
106
|
+
- lib/ripple/associations/one_linked_proxy.rb
|
96
107
|
- lib/ripple/associations/proxy.rb
|
97
108
|
- lib/ripple/associations.rb
|
98
109
|
- lib/ripple/attribute_methods/dirty.rb
|
@@ -103,6 +114,7 @@ files:
|
|
103
114
|
- lib/ripple/callbacks.rb
|
104
115
|
- lib/ripple/conversion.rb
|
105
116
|
- lib/ripple/core_ext/casting.rb
|
117
|
+
- lib/ripple/core_ext.rb
|
106
118
|
- lib/ripple/document/bucket_access.rb
|
107
119
|
- lib/ripple/document/finders.rb
|
108
120
|
- lib/ripple/document/persistence.rb
|
@@ -111,6 +123,7 @@ files:
|
|
111
123
|
- lib/ripple/embedded_document/persistence.rb
|
112
124
|
- lib/ripple/embedded_document.rb
|
113
125
|
- lib/ripple/i18n.rb
|
126
|
+
- lib/ripple/inspection.rb
|
114
127
|
- lib/ripple/locale/en.yml
|
115
128
|
- lib/ripple/properties.rb
|
116
129
|
- lib/ripple/property_type_mismatch.rb
|
@@ -125,7 +138,9 @@ files:
|
|
125
138
|
- spec/integration/ripple/associations_spec.rb
|
126
139
|
- spec/integration/ripple/persistence_spec.rb
|
127
140
|
- spec/ripple/associations/many_embedded_proxy_spec.rb
|
141
|
+
- spec/ripple/associations/many_linked_proxy_spec.rb
|
128
142
|
- spec/ripple/associations/one_embedded_proxy_spec.rb
|
143
|
+
- spec/ripple/associations/one_linked_proxy_spec.rb
|
129
144
|
- spec/ripple/associations/proxy_spec.rb
|
130
145
|
- spec/ripple/associations_spec.rb
|
131
146
|
- spec/ripple/attribute_methods_spec.rb
|
@@ -138,6 +153,7 @@ files:
|
|
138
153
|
- spec/ripple/embedded_document/persistence_spec.rb
|
139
154
|
- spec/ripple/embedded_document_spec.rb
|
140
155
|
- spec/ripple/finders_spec.rb
|
156
|
+
- spec/ripple/inspection_spec.rb
|
141
157
|
- spec/ripple/persistence_spec.rb
|
142
158
|
- spec/ripple/properties_spec.rb
|
143
159
|
- spec/ripple/ripple_spec.rb
|
@@ -159,6 +175,7 @@ files:
|
|
159
175
|
- spec/support/models/note.rb
|
160
176
|
- spec/support/models/page.rb
|
161
177
|
- spec/support/models/paid_invoice.rb
|
178
|
+
- spec/support/models/tasks.rb
|
162
179
|
- spec/support/models/tree.rb
|
163
180
|
- spec/support/models/user.rb
|
164
181
|
- spec/support/models/widget.rb
|
@@ -172,6 +189,7 @@ rdoc_options: []
|
|
172
189
|
require_paths:
|
173
190
|
- lib
|
174
191
|
required_ruby_version: !ruby/object:Gem::Requirement
|
192
|
+
none: false
|
175
193
|
requirements:
|
176
194
|
- - ">="
|
177
195
|
- !ruby/object:Gem::Version
|
@@ -179,16 +197,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
179
197
|
- 0
|
180
198
|
version: "0"
|
181
199
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
200
|
+
none: false
|
182
201
|
requirements:
|
183
|
-
- - "
|
202
|
+
- - ">"
|
184
203
|
- !ruby/object:Gem::Version
|
185
204
|
segments:
|
186
|
-
-
|
187
|
-
|
205
|
+
- 1
|
206
|
+
- 3
|
207
|
+
- 1
|
208
|
+
version: 1.3.1
|
188
209
|
requirements: []
|
189
210
|
|
190
211
|
rubyforge_project:
|
191
|
-
rubygems_version: 1.3.
|
212
|
+
rubygems_version: 1.3.7
|
192
213
|
signing_key:
|
193
214
|
specification_version: 3
|
194
215
|
summary: ripple is an object-mapper library for Riak, the distributed database by Basho.
|
@@ -196,7 +217,9 @@ test_files:
|
|
196
217
|
- spec/integration/ripple/associations_spec.rb
|
197
218
|
- spec/integration/ripple/persistence_spec.rb
|
198
219
|
- spec/ripple/associations/many_embedded_proxy_spec.rb
|
220
|
+
- spec/ripple/associations/many_linked_proxy_spec.rb
|
199
221
|
- spec/ripple/associations/one_embedded_proxy_spec.rb
|
222
|
+
- spec/ripple/associations/one_linked_proxy_spec.rb
|
200
223
|
- spec/ripple/associations/proxy_spec.rb
|
201
224
|
- spec/ripple/associations_spec.rb
|
202
225
|
- spec/ripple/attribute_methods_spec.rb
|
@@ -209,6 +232,7 @@ test_files:
|
|
209
232
|
- spec/ripple/embedded_document/persistence_spec.rb
|
210
233
|
- spec/ripple/embedded_document_spec.rb
|
211
234
|
- spec/ripple/finders_spec.rb
|
235
|
+
- spec/ripple/inspection_spec.rb
|
212
236
|
- spec/ripple/persistence_spec.rb
|
213
237
|
- spec/ripple/properties_spec.rb
|
214
238
|
- spec/ripple/ripple_spec.rb
|
@@ -230,6 +254,7 @@ test_files:
|
|
230
254
|
- spec/support/models/note.rb
|
231
255
|
- spec/support/models/page.rb
|
232
256
|
- spec/support/models/paid_invoice.rb
|
257
|
+
- spec/support/models/tasks.rb
|
233
258
|
- spec/support/models/tree.rb
|
234
259
|
- spec/support/models/user.rb
|
235
260
|
- spec/support/models/widget.rb
|