couchrest_model 2.0.4 → 2.1.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +6 -2
- data/README.md +12 -3
- data/VERSION +1 -1
- data/benchmarks/Gemfile +7 -0
- data/benchmarks/connections.rb +69 -0
- data/couchrest_model.gemspec +11 -13
- data/history.md +6 -0
- data/lib/couchrest/model/design.rb +0 -2
- data/lib/couchrest/model/designs/view.rb +36 -16
- data/lib/couchrest/model/document_queries.rb +5 -9
- data/lib/couchrest/model/errors.rb +8 -0
- data/lib/couchrest/model/support/couchrest_database.rb +12 -4
- data/lib/couchrest/model/validations.rb +1 -1
- data/lib/couchrest/model/validations/uniqueness.rb +11 -1
- data/spec/fixtures/models/course.rb +1 -1
- data/spec/spec_helper.rb +2 -2
- data/spec/unit/assocations_spec.rb +1 -1
- data/spec/unit/attachment_spec.rb +1 -1
- data/spec/unit/base_spec.rb +5 -5
- data/spec/unit/casted_spec.rb +2 -2
- data/spec/unit/connection_spec.rb +3 -3
- data/spec/unit/design_spec.rb +2 -2
- data/spec/unit/designs/design_mapper_spec.rb +1 -1
- data/spec/unit/designs/migrations_spec.rb +1 -1
- data/spec/unit/designs/view_spec.rb +118 -43
- data/spec/unit/designs_spec.rb +10 -13
- data/spec/unit/embeddable_spec.rb +2 -4
- data/spec/unit/persistence_spec.rb +13 -5
- data/spec/unit/property_protection_spec.rb +5 -5
- data/spec/unit/property_spec.rb +9 -9
- data/spec/unit/proxyable_spec.rb +15 -15
- data/spec/unit/subclass_spec.rb +1 -1
- data/spec/unit/utils/migrate_spec.rb +3 -3
- data/spec/unit/validations_spec.rb +7 -7
- metadata +60 -44
data/spec/unit/designs_spec.rb
CHANGED
@@ -136,7 +136,7 @@ describe CouchRest::Model::Designs do
|
|
136
136
|
|
137
137
|
it "will fail if reduce is not specific in view" do
|
138
138
|
@mod.create(:title => 'This is a test')
|
139
|
-
lambda { @mod.by_title_fail.first }.should raise_error(
|
139
|
+
lambda { @mod.by_title_fail.first }.should raise_error(CouchRest::NotFound)
|
140
140
|
end
|
141
141
|
|
142
142
|
it "will perform view request" do
|
@@ -212,14 +212,16 @@ describe CouchRest::Model::Designs do
|
|
212
212
|
end
|
213
213
|
end
|
214
214
|
it "should barf on all if no database given" do
|
215
|
-
|
215
|
+
expect do
|
216
|
+
Unattached.all.first
|
217
|
+
end.to raise_error(CouchRest::Model::DatabaseNotDefined)
|
216
218
|
end
|
217
219
|
it "should query all" do
|
218
220
|
rs = Unattached.all.database(@db).all
|
219
|
-
rs.length.
|
221
|
+
expect(rs.length).to eql(4)
|
220
222
|
end
|
221
223
|
it "should barf on query if no database given" do
|
222
|
-
|
224
|
+
expect() { Unattached.by_title.all }.to raise_error(CouchRest::Model::DatabaseNotDefined)
|
223
225
|
end
|
224
226
|
it "should make the design doc upon first query" do
|
225
227
|
Unattached.by_title.database(@db)
|
@@ -230,22 +232,17 @@ describe CouchRest::Model::Designs do
|
|
230
232
|
rs = Unattached.by_title.database(@db).startkey("bbb").endkey("eee")
|
231
233
|
rs.length.should == 3
|
232
234
|
end
|
233
|
-
it "should return nil on get if no database given" do
|
234
|
-
Unattached.get("aaa").should be_nil
|
235
|
-
end
|
236
|
-
it "should barf on get! if no database given" do
|
237
|
-
lambda{Unattached.get!("aaa")}.should raise_error
|
238
|
-
end
|
239
235
|
it "should get from specific database" do
|
240
236
|
u = Unattached.get(@first_id, @db)
|
241
237
|
u.title.should == "aaa"
|
242
238
|
end
|
243
239
|
it "should barf on first if no database given" do
|
244
|
-
|
240
|
+
expect{ Unattached.first }.to raise_error(CouchRest::Model::DatabaseNotDefined)
|
245
241
|
end
|
246
|
-
it "should get first" do
|
242
|
+
it "should get first with database set" do
|
247
243
|
u = Unattached.all.database(@db).first
|
248
|
-
u.title.
|
244
|
+
expect(u.title).to match(/\A...\z/)
|
245
|
+
expect(u.database).to eql(@db)
|
249
246
|
end
|
250
247
|
it "should get last" do
|
251
248
|
u = Unattached.all.database(@db).last
|
@@ -15,8 +15,7 @@ class OldFashionedMixin < Hash
|
|
15
15
|
end
|
16
16
|
|
17
17
|
class DummyModel < CouchRest::Model::Base
|
18
|
-
use_database
|
19
|
-
raise "Default DB not set" if TEST_SERVER.default_database.nil?
|
18
|
+
use_database DB
|
20
19
|
property :casted_attribute, WithCastedModelMixin
|
21
20
|
property :keywords, [String]
|
22
21
|
property :old_casted_attribute, OldFashionedMixin
|
@@ -45,8 +44,7 @@ class WithCastedCallBackModel
|
|
45
44
|
end
|
46
45
|
|
47
46
|
class CastedCallbackDoc < CouchRest::Model::Base
|
48
|
-
use_database
|
49
|
-
raise "Default DB not set" if TEST_SERVER.default_database.nil?
|
47
|
+
use_database DB
|
50
48
|
property :callback_model, WithCastedCallBackModel
|
51
49
|
end
|
52
50
|
|
@@ -262,7 +262,7 @@ describe CouchRest::Model::Persistence do
|
|
262
262
|
end
|
263
263
|
it "should make it go away" do
|
264
264
|
@dobj.destroy
|
265
|
-
|
265
|
+
expect(Basic.get(@dobj.id)).to be_nil
|
266
266
|
end
|
267
267
|
it "should freeze the object" do
|
268
268
|
@dobj.destroy
|
@@ -272,7 +272,7 @@ describe CouchRest::Model::Persistence do
|
|
272
272
|
it "trying to save after should fail" do
|
273
273
|
@dobj.destroy
|
274
274
|
lambda { @dobj.save }.should raise_error(StandardError)
|
275
|
-
|
275
|
+
expect(Basic.get(@dobj.id)).to be_nil
|
276
276
|
end
|
277
277
|
it "should make destroyed? true" do
|
278
278
|
@dobj.destroyed?.should be_false
|
@@ -303,13 +303,21 @@ describe CouchRest::Model::Persistence do
|
|
303
303
|
Article.get("").should be_nil
|
304
304
|
end
|
305
305
|
it "should raise an error if `get!` is used and the document doesn't exist" do
|
306
|
-
expect{ Article.get!('matt aimonetti') }.to raise_error
|
306
|
+
expect{ Article.get!('matt aimonetti') }.to raise_error(CouchRest::Model::DocumentNotFound)
|
307
307
|
end
|
308
308
|
it "should raise an error if `get!` is requested with a blank id" do
|
309
|
-
expect{ Article.get!("") }.to raise_error
|
309
|
+
expect{ Article.get!("") }.to raise_error(CouchRest::Model::DocumentNotFound)
|
310
310
|
end
|
311
311
|
it "should raise an error if `find!` is used and the document doesn't exist" do
|
312
|
-
expect{ Article.find!('matt aimonetti') }.to raise_error
|
312
|
+
expect{ Article.find!('matt aimonetti') }.to raise_error(CouchRest::Model::DocumentNotFound)
|
313
|
+
end
|
314
|
+
context "without a database" do
|
315
|
+
it "should cause #get to raise an error" do
|
316
|
+
Article.stub(:database).and_return(nil)
|
317
|
+
expect{ Article.get('foo') }.to raise_error(CouchRest::Model::DatabaseNotDefined)
|
318
|
+
expect{ Article.get!('foo') }.to raise_error(CouchRest::Model::DatabaseNotDefined)
|
319
|
+
end
|
320
|
+
|
313
321
|
end
|
314
322
|
end
|
315
323
|
|
@@ -4,7 +4,7 @@ describe "Model Attributes" do
|
|
4
4
|
|
5
5
|
describe "no declarations" do
|
6
6
|
class NoProtection < CouchRest::Model::Base
|
7
|
-
use_database
|
7
|
+
use_database DB
|
8
8
|
property :name
|
9
9
|
property :phone
|
10
10
|
end
|
@@ -44,7 +44,7 @@ describe "Model Attributes" do
|
|
44
44
|
|
45
45
|
describe "Model Base", "accessible flag" do
|
46
46
|
class WithAccessible < CouchRest::Model::Base
|
47
|
-
use_database
|
47
|
+
use_database DB
|
48
48
|
property :name, :accessible => true
|
49
49
|
property :admin, :default => false
|
50
50
|
end
|
@@ -81,7 +81,7 @@ describe "Model Attributes" do
|
|
81
81
|
|
82
82
|
describe "Model Base", "protected flag" do
|
83
83
|
class WithProtected < CouchRest::Model::Base
|
84
|
-
use_database
|
84
|
+
use_database DB
|
85
85
|
property :name
|
86
86
|
property :admin, :default => false, :protected => true
|
87
87
|
end
|
@@ -127,7 +127,7 @@ describe "Model Attributes" do
|
|
127
127
|
|
128
128
|
describe "Model Base", "mixing protected and accessible flags" do
|
129
129
|
class WithBothAndUnspecified < CouchRest::Model::Base
|
130
|
-
use_database
|
130
|
+
use_database DB
|
131
131
|
property :name, :accessible => true
|
132
132
|
property :admin, :default => false, :protected => true
|
133
133
|
property :phone, :default => 'unset phone number'
|
@@ -147,7 +147,7 @@ describe "Model Attributes" do
|
|
147
147
|
|
148
148
|
describe "from database" do
|
149
149
|
class WithProtected < CouchRest::Model::Base
|
150
|
-
use_database
|
150
|
+
use_database DB
|
151
151
|
property :name
|
152
152
|
property :admin, :default => false, :protected => true
|
153
153
|
design do
|
data/spec/unit/property_spec.rb
CHANGED
@@ -509,26 +509,26 @@ describe "Property Class" do
|
|
509
509
|
describe "casting" do
|
510
510
|
it "should cast a value" do
|
511
511
|
property = CouchRest::Model::Property.new(:test, :type => Date)
|
512
|
-
parent =
|
512
|
+
parent = double("FooObject")
|
513
513
|
property.cast(parent, "2010-06-16").should eql(Date.new(2010, 6, 16))
|
514
514
|
property.cast_value(parent, "2010-06-16").should eql(Date.new(2010, 6, 16))
|
515
515
|
end
|
516
516
|
|
517
517
|
it "should cast an array of values" do
|
518
518
|
property = CouchRest::Model::Property.new(:test, :type => [Date])
|
519
|
-
parent =
|
519
|
+
parent = double("FooObject")
|
520
520
|
property.cast(parent, ["2010-06-01", "2010-06-02"]).should eql([Date.new(2010, 6, 1), Date.new(2010, 6, 2)])
|
521
521
|
end
|
522
522
|
|
523
523
|
it "should cast an array of values with array option" do
|
524
524
|
property = CouchRest::Model::Property.new(:test, :type => Date, :array => true)
|
525
|
-
parent =
|
525
|
+
parent = double("FooObject")
|
526
526
|
property.cast(parent, ["2010-06-01", "2010-06-02"]).should eql([Date.new(2010, 6, 1), Date.new(2010, 6, 2)])
|
527
527
|
end
|
528
528
|
|
529
529
|
context "when allow_blank is false" do
|
530
530
|
let :parent do
|
531
|
-
|
531
|
+
double("FooObject")
|
532
532
|
end
|
533
533
|
|
534
534
|
it "should convert blank to nil" do
|
@@ -544,13 +544,13 @@ describe "Property Class" do
|
|
544
544
|
|
545
545
|
it "should set a CastedArray on array of Objects" do
|
546
546
|
property = CouchRest::Model::Property.new(:test, :type => [Object])
|
547
|
-
parent =
|
547
|
+
parent = double("FooObject")
|
548
548
|
property.cast(parent, ["2010-06-01", "2010-06-02"]).class.should eql(CouchRest::Model::CastedArray)
|
549
549
|
end
|
550
550
|
|
551
551
|
it "should set a CastedArray on array of Strings" do
|
552
552
|
property = CouchRest::Model::Property.new(:test, :type => [String])
|
553
|
-
parent =
|
553
|
+
parent = double("FooObject")
|
554
554
|
property.cast(parent, ["2010-06-01", "2010-06-02"]).class.should eql(CouchRest::Model::CastedArray)
|
555
555
|
end
|
556
556
|
|
@@ -573,20 +573,20 @@ describe "Property Class" do
|
|
573
573
|
def as_json; ary; end
|
574
574
|
end
|
575
575
|
property = CouchRest::Model::Property.new(:test, :type => prop)
|
576
|
-
parent =
|
576
|
+
parent = double("FooClass")
|
577
577
|
cast = property.cast(parent, [1, 2])
|
578
578
|
cast.ary.should eql([1, 2])
|
579
579
|
end
|
580
580
|
|
581
581
|
it "should set parent as casted_by object in CastedArray" do
|
582
582
|
property = CouchRest::Model::Property.new(:test, :type => [Object])
|
583
|
-
parent =
|
583
|
+
parent = double("FooObject")
|
584
584
|
property.cast(parent, ["2010-06-01", "2010-06-02"]).casted_by.should eql(parent)
|
585
585
|
end
|
586
586
|
|
587
587
|
it "should set casted_by on new value" do
|
588
588
|
property = CouchRest::Model::Property.new(:test, :type => CatToy)
|
589
|
-
parent =
|
589
|
+
parent = double("CatObject")
|
590
590
|
cast = property.cast(parent, {:name => 'catnip'})
|
591
591
|
cast.casted_by.should eql(parent)
|
592
592
|
end
|
data/spec/unit/proxyable_spec.rb
CHANGED
@@ -27,9 +27,9 @@ describe CouchRest::Model::Proxyable do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
it "should provide proxy database from method" do
|
30
|
-
@class.
|
31
|
-
@obj.proxy_database.
|
32
|
-
@obj.proxy_database.name.
|
30
|
+
expect(@class).to receive(:proxy_database_method).at_least(:twice).and_return(:slug)
|
31
|
+
expect(@obj.proxy_database).to be_a(CouchRest::Database)
|
32
|
+
expect(@obj.proxy_database.name).to eql('couchrest_proxy')
|
33
33
|
end
|
34
34
|
|
35
35
|
it "should raise an error if called and no proxy_database_method set" do
|
@@ -84,7 +84,7 @@ describe CouchRest::Model::Proxyable do
|
|
84
84
|
end
|
85
85
|
|
86
86
|
it "should create a new method" do
|
87
|
-
DummyProxyable.stub
|
87
|
+
DummyProxyable.stub(:method_defined?).and_return(true)
|
88
88
|
DummyProxyable.proxy_for(:cats)
|
89
89
|
DummyProxyable.new.should respond_to(:cats)
|
90
90
|
end
|
@@ -178,10 +178,10 @@ describe CouchRest::Model::Proxyable do
|
|
178
178
|
end
|
179
179
|
|
180
180
|
before :each do
|
181
|
-
@design_doc =
|
182
|
-
@design_doc.stub
|
183
|
-
@model =
|
184
|
-
@model.stub
|
181
|
+
@design_doc = double('Design')
|
182
|
+
@design_doc.stub(:view_names).and_return(['all', 'by_name'])
|
183
|
+
@model = double('Cat')
|
184
|
+
@model.stub(:design_docs).and_return([@design_doc])
|
185
185
|
@obj = @klass.new(@model, 'owner', 'owner_name', 'database')
|
186
186
|
end
|
187
187
|
|
@@ -213,7 +213,7 @@ describe CouchRest::Model::Proxyable do
|
|
213
213
|
end
|
214
214
|
|
215
215
|
it "should create 'find_by_name' view that forwards to normal view" do
|
216
|
-
view =
|
216
|
+
view = double('view')
|
217
217
|
view.should_receive('key').with('name').and_return(view)
|
218
218
|
view.should_receive('first').and_return(nil)
|
219
219
|
@obj.should_receive(:by_name).and_return(view)
|
@@ -221,7 +221,7 @@ describe CouchRest::Model::Proxyable do
|
|
221
221
|
end
|
222
222
|
|
223
223
|
it "should create 'find_by_name!' that raises error when there are no results" do
|
224
|
-
view =
|
224
|
+
view = double('view')
|
225
225
|
view.should_receive('key').with('name').and_return(view)
|
226
226
|
view.should_receive('first').and_return(nil)
|
227
227
|
@obj.should_receive(:by_name).and_return(view)
|
@@ -243,21 +243,21 @@ describe CouchRest::Model::Proxyable do
|
|
243
243
|
end
|
244
244
|
|
245
245
|
it "should proxy #count" do
|
246
|
-
view =
|
246
|
+
view = double('View')
|
247
247
|
view.should_receive(:count).and_return(nil)
|
248
248
|
@model.should_receive(:all).and_return(view)
|
249
249
|
@obj.count
|
250
250
|
end
|
251
251
|
|
252
252
|
it "should proxy #first" do
|
253
|
-
view =
|
253
|
+
view = double('View')
|
254
254
|
view.should_receive(:first).and_return(nil)
|
255
255
|
@model.should_receive(:all).and_return(view)
|
256
256
|
@obj.first
|
257
257
|
end
|
258
258
|
|
259
259
|
it "should proxy #last" do
|
260
|
-
view =
|
260
|
+
view = double('View')
|
261
261
|
view.should_receive(:last).and_return(nil)
|
262
262
|
@model.should_receive(:all).and_return(view)
|
263
263
|
@obj.last
|
@@ -279,7 +279,7 @@ describe CouchRest::Model::Proxyable do
|
|
279
279
|
|
280
280
|
describe "#proxy_update" do
|
281
281
|
it "should set returned doc fields" do
|
282
|
-
doc =
|
282
|
+
doc = double(:Document)
|
283
283
|
doc.should_receive(:is_a?).with(@model).and_return(true)
|
284
284
|
doc.should_receive(:database=).with('database')
|
285
285
|
doc.should_receive(:model_proxy=).with(@obj)
|
@@ -288,7 +288,7 @@ describe CouchRest::Model::Proxyable do
|
|
288
288
|
end
|
289
289
|
|
290
290
|
it "should not set anything if matching document not provided" do
|
291
|
-
doc =
|
291
|
+
doc = double(:DocumentFoo)
|
292
292
|
doc.should_receive(:is_a?).with(@model).and_return(false)
|
293
293
|
doc.should_not_receive(:database=)
|
294
294
|
doc.should_not_receive(:model_proxy=)
|
data/spec/unit/subclass_spec.rb
CHANGED
@@ -12,10 +12,10 @@ describe CouchRest::Model::Utils::Migrate do
|
|
12
12
|
@module.load_all_models
|
13
13
|
end
|
14
14
|
it "should detect if Rails is available and require models" do
|
15
|
-
Rails =
|
16
|
-
Rails.stub
|
15
|
+
Rails = double()
|
16
|
+
Rails.stub(:root).and_return("")
|
17
17
|
Dir.should_receive(:[]).with("app/models/**/*.rb").and_return(['failed_require'])
|
18
|
-
# we can't
|
18
|
+
# we can't double require, so just expect an error
|
19
19
|
expect {
|
20
20
|
@module.load_all_models
|
21
21
|
}.to raise_error(LoadError)
|
@@ -76,9 +76,9 @@ describe CouchRest::Model::Validations do
|
|
76
76
|
it "should allow specific view" do
|
77
77
|
@obj = WithUniqueValidationProxy.new(:title => 'test 7')
|
78
78
|
@obj.class.should_not_receive('by_title')
|
79
|
-
view =
|
80
|
-
view.stub
|
81
|
-
proxy =
|
79
|
+
view = double('View')
|
80
|
+
view.stub(:rows).and_return([])
|
81
|
+
proxy = double('Proxy')
|
82
82
|
proxy.should_receive('by_title').and_return(view)
|
83
83
|
proxy.should_receive('respond_to?').with('by_title').and_return(true)
|
84
84
|
@obj.should_receive('proxy').and_return(proxy)
|
@@ -88,12 +88,12 @@ describe CouchRest::Model::Validations do
|
|
88
88
|
|
89
89
|
context "when proxied" do
|
90
90
|
it "should lookup the model_proxy" do
|
91
|
-
view =
|
92
|
-
view.stub
|
93
|
-
mp =
|
91
|
+
view = double('View')
|
92
|
+
view.stub(:rows).and_return([])
|
93
|
+
mp = double(:ModelProxy)
|
94
94
|
mp.should_receive(:by_title).and_return(view)
|
95
95
|
@obj = WithUniqueValidation.new(:title => 'test 8')
|
96
|
-
@obj.stub
|
96
|
+
@obj.stub(:model_proxy).twice.and_return(mp)
|
97
97
|
@obj.valid?
|
98
98
|
end
|
99
99
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: couchrest_model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.1.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- J. Chris Anderson
|
@@ -12,56 +12,36 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2015-
|
15
|
+
date: 2015-07-10 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: couchrest
|
19
19
|
requirement: !ruby/object:Gem::Requirement
|
20
20
|
requirements:
|
21
|
-
- -
|
21
|
+
- - '='
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
23
|
+
version: 2.0.0.rc3
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
|
-
- -
|
28
|
+
- - '='
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version:
|
31
|
-
- !ruby/object:Gem::Dependency
|
32
|
-
name: mime-types
|
33
|
-
requirement: !ruby/object:Gem::Requirement
|
34
|
-
requirements:
|
35
|
-
- - ">="
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '1.16'
|
38
|
-
type: :runtime
|
39
|
-
prerelease: false
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
requirements:
|
42
|
-
- - ">="
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version: '1.16'
|
30
|
+
version: 2.0.0.rc3
|
45
31
|
- !ruby/object:Gem::Dependency
|
46
32
|
name: activemodel
|
47
33
|
requirement: !ruby/object:Gem::Requirement
|
48
34
|
requirements:
|
49
|
-
- - "
|
35
|
+
- - "~>"
|
50
36
|
- !ruby/object:Gem::Version
|
51
37
|
version: '4.0'
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '3.0'
|
55
38
|
type: :runtime
|
56
39
|
prerelease: false
|
57
40
|
version_requirements: !ruby/object:Gem::Requirement
|
58
41
|
requirements:
|
59
|
-
- - "
|
42
|
+
- - "~>"
|
60
43
|
- !ruby/object:Gem::Version
|
61
44
|
version: '4.0'
|
62
|
-
- - ">="
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
version: '3.0'
|
65
45
|
- !ruby/object:Gem::Dependency
|
66
46
|
name: tzinfo
|
67
47
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,70 +62,104 @@ dependencies:
|
|
82
62
|
requirements:
|
83
63
|
- - "~>"
|
84
64
|
- !ruby/object:Gem::Version
|
85
|
-
version: 2.
|
65
|
+
version: 2.14.1
|
86
66
|
type: :development
|
87
67
|
prerelease: false
|
88
68
|
version_requirements: !ruby/object:Gem::Requirement
|
89
69
|
requirements:
|
90
70
|
- - "~>"
|
91
71
|
- !ruby/object:Gem::Version
|
92
|
-
version: 2.
|
72
|
+
version: 2.14.1
|
93
73
|
- !ruby/object:Gem::Dependency
|
94
|
-
name:
|
74
|
+
name: rack-test
|
95
75
|
requirement: !ruby/object:Gem::Requirement
|
96
76
|
requirements:
|
97
|
-
- - "
|
77
|
+
- - ">="
|
98
78
|
- !ruby/object:Gem::Version
|
99
|
-
version:
|
79
|
+
version: 0.5.7
|
100
80
|
type: :development
|
101
81
|
prerelease: false
|
102
82
|
version_requirements: !ruby/object:Gem::Requirement
|
103
83
|
requirements:
|
104
|
-
- - "
|
84
|
+
- - ">="
|
105
85
|
- !ruby/object:Gem::Version
|
106
|
-
version:
|
86
|
+
version: 0.5.7
|
107
87
|
- !ruby/object:Gem::Dependency
|
108
|
-
name:
|
88
|
+
name: rake
|
109
89
|
requirement: !ruby/object:Gem::Requirement
|
110
90
|
requirements:
|
111
91
|
- - ">="
|
112
92
|
- !ruby/object:Gem::Version
|
113
|
-
version: 0.
|
93
|
+
version: 0.8.0
|
114
94
|
type: :development
|
115
95
|
prerelease: false
|
116
96
|
version_requirements: !ruby/object:Gem::Requirement
|
117
97
|
requirements:
|
118
98
|
- - ">="
|
119
99
|
- !ruby/object:Gem::Version
|
120
|
-
version: 0.
|
100
|
+
version: 0.8.0
|
121
101
|
- !ruby/object:Gem::Dependency
|
122
|
-
name:
|
102
|
+
name: test-unit
|
123
103
|
requirement: !ruby/object:Gem::Requirement
|
124
104
|
requirements:
|
125
105
|
- - ">="
|
126
106
|
- !ruby/object:Gem::Version
|
127
|
-
version: 0
|
107
|
+
version: '0'
|
128
108
|
type: :development
|
129
109
|
prerelease: false
|
130
110
|
version_requirements: !ruby/object:Gem::Requirement
|
131
111
|
requirements:
|
132
112
|
- - ">="
|
133
113
|
- !ruby/object:Gem::Version
|
134
|
-
version: 0
|
114
|
+
version: '0'
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
name: minitest
|
117
|
+
requirement: !ruby/object:Gem::Requirement
|
118
|
+
requirements:
|
119
|
+
- - ">"
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '4.1'
|
122
|
+
type: :development
|
123
|
+
prerelease: false
|
124
|
+
version_requirements: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - ">"
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '4.1'
|
135
129
|
- !ruby/object:Gem::Dependency
|
136
130
|
name: kaminari
|
137
131
|
requirement: !ruby/object:Gem::Requirement
|
138
132
|
requirements:
|
139
|
-
- - "
|
133
|
+
- - ">="
|
140
134
|
- !ruby/object:Gem::Version
|
141
135
|
version: 0.14.1
|
136
|
+
- - "<"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 0.16.0
|
142
139
|
type: :development
|
143
140
|
prerelease: false
|
144
141
|
version_requirements: !ruby/object:Gem::Requirement
|
145
142
|
requirements:
|
146
|
-
- - "
|
143
|
+
- - ">="
|
147
144
|
- !ruby/object:Gem::Version
|
148
145
|
version: 0.14.1
|
146
|
+
- - "<"
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
version: 0.16.0
|
149
|
+
- !ruby/object:Gem::Dependency
|
150
|
+
name: mime-types
|
151
|
+
requirement: !ruby/object:Gem::Requirement
|
152
|
+
requirements:
|
153
|
+
- - "<"
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: '3.0'
|
156
|
+
type: :development
|
157
|
+
prerelease: false
|
158
|
+
version_requirements: !ruby/object:Gem::Requirement
|
159
|
+
requirements:
|
160
|
+
- - "<"
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: '3.0'
|
149
163
|
description: CouchRest Model provides aditional features to the standard CouchRest
|
150
164
|
Document class such as properties, view designs, associations, callbacks, typecasting
|
151
165
|
and validations.
|
@@ -166,6 +180,8 @@ files:
|
|
166
180
|
- Rakefile
|
167
181
|
- THANKS.md
|
168
182
|
- VERSION
|
183
|
+
- benchmarks/Gemfile
|
184
|
+
- benchmarks/connections.rb
|
169
185
|
- benchmarks/dirty.rb
|
170
186
|
- couchrest_model.gemspec
|
171
187
|
- history.md
|
@@ -293,7 +309,7 @@ rubyforge_project:
|
|
293
309
|
rubygems_version: 2.4.6
|
294
310
|
signing_key:
|
295
311
|
specification_version: 4
|
296
|
-
summary: Extends the CouchRest Document for advanced modelling.
|
312
|
+
summary: Extends the CouchRest Document class for advanced modelling.
|
297
313
|
test_files:
|
298
314
|
- spec/fixtures/attachments/README
|
299
315
|
- spec/fixtures/attachments/couchdb.png
|