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.
Files changed (45) hide show
  1. data/Rakefile +5 -4
  2. data/lib/rails/generators/ripple/model/model_generator.rb +20 -0
  3. data/lib/rails/generators/ripple/model/templates/model.rb +10 -0
  4. data/lib/rails/generators/ripple_generator.rb +60 -0
  5. data/lib/ripple.rb +24 -6
  6. data/lib/ripple/associations.rb +70 -3
  7. data/lib/ripple/associations/linked.rb +17 -5
  8. data/lib/ripple/associations/many.rb +5 -4
  9. data/lib/ripple/associations/many_embedded_proxy.rb +2 -0
  10. data/lib/ripple/associations/many_linked_proxy.rb +35 -0
  11. data/lib/ripple/associations/one.rb +4 -0
  12. data/lib/ripple/associations/one_embedded_proxy.rb +1 -1
  13. data/lib/ripple/associations/one_linked_proxy.rb +29 -0
  14. data/lib/ripple/attribute_methods/dirty.rb +2 -2
  15. data/lib/ripple/core_ext.rb +1 -0
  16. data/lib/ripple/core_ext/casting.rb +6 -8
  17. data/lib/ripple/document.rb +1 -0
  18. data/lib/ripple/document/bucket_access.rb +1 -1
  19. data/lib/ripple/document/finders.rb +1 -1
  20. data/lib/ripple/document/persistence.rb +28 -8
  21. data/lib/ripple/embedded_document.rb +1 -0
  22. data/lib/ripple/embedded_document/persistence.rb +11 -1
  23. data/lib/ripple/inspection.rb +26 -0
  24. data/lib/ripple/locale/en.yml +8 -5
  25. data/lib/ripple/railtie.rb +2 -12
  26. data/lib/ripple/validations.rb +5 -0
  27. data/lib/ripple/validations/associated_validator.rb +1 -2
  28. data/spec/fixtures/config.yml +6 -1
  29. data/spec/integration/ripple/associations_spec.rb +21 -0
  30. data/spec/ripple/associations/many_embedded_proxy_spec.rb +6 -0
  31. data/spec/ripple/associations/many_linked_proxy_spec.rb +103 -0
  32. data/spec/ripple/associations/one_embedded_proxy_spec.rb +5 -0
  33. data/spec/ripple/associations/one_linked_proxy_spec.rb +76 -0
  34. data/spec/ripple/associations/proxy_spec.rb +1 -1
  35. data/spec/ripple/bucket_access_spec.rb +3 -4
  36. data/spec/ripple/core_ext_spec.rb +11 -0
  37. data/spec/ripple/embedded_document/persistence_spec.rb +12 -0
  38. data/spec/ripple/finders_spec.rb +1 -1
  39. data/spec/ripple/inspection_spec.rb +48 -0
  40. data/spec/ripple/persistence_spec.rb +52 -6
  41. data/spec/ripple/properties_spec.rb +6 -0
  42. data/spec/ripple/ripple_spec.rb +12 -1
  43. data/spec/support/models/tasks.rb +13 -0
  44. data/spec/support/models/widget.rb +5 -1
  45. 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(:gsub) }.should raise_error(NoMethodError)
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 = Riak::Bucket.new(Ripple.client, "invoices")
35
- Ripple.client.should_receive(:[]).with("invoices", {:keys => false}).and_return(bucket)
36
- Invoice.bucket.should == bucket
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
@@ -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
- @client.stub!(:[]).and_return(@bucket)
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
@@ -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(Errno::ENOENT)
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
@@ -0,0 +1,13 @@
1
+ class Person
2
+ include Ripple::Document
3
+ many :tasks
4
+ one :profile
5
+ end
6
+
7
+ class Task
8
+ include Ripple::Document
9
+ end
10
+
11
+ class Profile
12
+ include Ripple::Document
13
+ end
@@ -3,4 +3,8 @@ class Widget
3
3
  include Ripple::Document
4
4
  property :size, Integer
5
5
  property :name, String, :default => "widget"
6
- end
6
+ end
7
+
8
+ class Cog < Widget
9
+ property :name, String, :default => "cog"
10
+ end
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: false
4
+ prerelease: true
5
5
  segments:
6
6
  - 0
7
- - 7
8
- - 1
9
- version: 0.7.1
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-06-08 00:00:00 -04:00
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
- - 6
33
- version: 2.0.0.beta.6
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
- - 7
46
- - 1
47
- version: 0.7.1
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
- - beta3
62
- version: 3.0.0.beta3
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
- - beta3
77
- version: 3.0.0.beta3
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
- - 0
187
- version: "0"
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.6
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