couch_potato 0.2.27 → 0.2.28
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/CHANGES.md +6 -0
- data/README.md +16 -2
- data/VERSION.yml +2 -2
- data/lib/core_ext/string.rb +11 -11
- data/lib/couch_potato.rb +10 -8
- data/lib/couch_potato/rspec.rb +2 -0
- data/lib/couch_potato/rspec/matchers.rb +2 -2
- data/lib/couch_potato/rspec/stub_db.rb +46 -0
- data/lib/couch_potato/validation.rb +2 -2
- data/lib/couch_potato/view/base_view_spec.rb +1 -1
- data/lib/couch_potato/view/custom_views.rb +5 -5
- data/lib/couch_potato/view/view_query.rb +1 -1
- data/rails/reload_classes.rb +31 -5
- data/spec/attachments_spec.rb +1 -1
- data/spec/callbacks_spec.rb +1 -1
- data/spec/create_spec.rb +1 -1
- data/spec/custom_view_spec.rb +1 -1
- data/spec/default_property_spec.rb +1 -1
- data/spec/destroy_spec.rb +1 -1
- data/spec/property_spec.rb +1 -1
- data/spec/rails_spec.rb +38 -7
- data/spec/unit/active_model_compliance_spec.rb +1 -1
- data/spec/unit/attributes_spec.rb +1 -1
- data/spec/unit/base_view_spec_spec.rb +9 -4
- data/spec/unit/callbacks_spec.rb +1 -1
- data/spec/unit/couch_potato_spec.rb +1 -1
- data/spec/unit/create_spec.rb +1 -1
- data/spec/unit/customs_views_spec.rb +1 -1
- data/spec/unit/database_spec.rb +1 -1
- data/spec/unit/date_spec.rb +1 -1
- data/spec/unit/dirty_attributes_spec.rb +1 -1
- data/spec/unit/json_create_id_spec.rb +1 -1
- data/spec/unit/model_view_spec_spec.rb +1 -1
- data/spec/unit/rspec_matchers_spec.rb +2 -2
- data/spec/unit/rspec_stub_db_spec.rb +35 -0
- data/spec/unit/string_spec.rb +8 -4
- data/spec/unit/time_spec.rb +1 -1
- data/spec/unit/validation_spec.rb +1 -1
- data/spec/unit/view_query_spec.rb +1 -1
- data/spec/update_spec.rb +1 -1
- data/spec/view_updates_spec.rb +1 -1
- metadata +35 -17
data/CHANGES.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
## Changes
|
|
2
2
|
|
|
3
|
+
### 0.2.28
|
|
4
|
+
* fixed reloading nested classes (langalex)
|
|
5
|
+
* fixed constant missing error when loading models with uninitialized classes via views (langalex)
|
|
6
|
+
* added rspec helpers for stubbing out views (langalex)
|
|
7
|
+
* fixed design document names for nested model classes (svenfuchs)
|
|
8
|
+
|
|
3
9
|
### 0.2.27
|
|
4
10
|
* workaround for Rails apps using bundler: database name was not initialized from couchdb.yml (langalex)
|
|
5
11
|
|
data/README.md
CHANGED
|
@@ -304,6 +304,20 @@ To make testing easier and faster database logic has been put into its own class
|
|
|
304
304
|
|
|
305
305
|
By creating you own instances of CouchPotato::Database and passing them a fake CouchRest database instance you can completely disconnect your unit tests/spec from the database.
|
|
306
306
|
|
|
307
|
+
For stubbing out the database couch potato offers some helpers:
|
|
308
|
+
|
|
309
|
+
class Comment
|
|
310
|
+
view :by_commenter_id, :key => :commenter_id
|
|
311
|
+
end
|
|
312
|
+
|
|
313
|
+
# RSpec
|
|
314
|
+
require 'couch_potato/rspec'
|
|
315
|
+
|
|
316
|
+
db = stub_db # stubs CouchPotato.database
|
|
317
|
+
db.stub_view(Comment, :by_commenter_id).with('23').and_return([:comment1, :comment2])
|
|
318
|
+
|
|
319
|
+
CouchPotato.database.view(Comment.by_commenter_id('23)) # => [:comment1, :comment2]
|
|
320
|
+
|
|
307
321
|
##### Testing map/reduce functions
|
|
308
322
|
|
|
309
323
|
Couch Potato provides custom RSpec matchers for testing the map and reduce functions of your views. For example you can do this:
|
|
@@ -316,11 +330,11 @@ Couch Potato provides custom RSpec matchers for testing the map and reduce funct
|
|
|
316
330
|
end
|
|
317
331
|
|
|
318
332
|
#RSpec
|
|
319
|
-
require 'couch_potato/rspec
|
|
333
|
+
require 'couch_potato/rspec'
|
|
320
334
|
|
|
321
335
|
describe User, 'by_name' do
|
|
322
336
|
it "should map users to their name" do
|
|
323
|
-
User.by_name.should map(
|
|
337
|
+
User.by_name.should map(User.new(:name => 'bill', :age => 23)).to(['bill', null])
|
|
324
338
|
end
|
|
325
339
|
|
|
326
340
|
it "should reduce the users to the sum of their age" do
|
data/VERSION.yml
CHANGED
data/lib/core_ext/string.rb
CHANGED
|
@@ -4,16 +4,16 @@ module ActiveSupportMethods
|
|
|
4
4
|
$1.upcase
|
|
5
5
|
end
|
|
6
6
|
end
|
|
7
|
-
|
|
8
|
-
# Source
|
|
9
|
-
# http://github.com/rails/rails/blob/b600bf2cd728c90d50cc34456c944b2dfefe8c8d/activesupport/lib/active_support/inflector.rb
|
|
10
|
-
def underscore
|
|
11
|
-
gsub(/::/, '/').
|
|
12
|
-
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
|
13
|
-
gsub(/([a-z\d])([A-Z])/,'\1_\2').
|
|
14
|
-
tr("-", "_").
|
|
15
|
-
downcase
|
|
16
|
-
end
|
|
17
7
|
end
|
|
8
|
+
String.send :include, ActiveSupportMethods unless String.new.respond_to?(:underscore)
|
|
18
9
|
|
|
19
|
-
|
|
10
|
+
class String
|
|
11
|
+
# inspired by http://github.com/rails/rails/blob/b600bf2cd728c90d50cc34456c944b2dfefe8c8d/activesupport/lib/active_support/inflector.rb
|
|
12
|
+
def snake_case(seperator = '/')
|
|
13
|
+
string = seperator == '::' ? dup : gsub(/::/, '/')
|
|
14
|
+
string.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
|
|
15
|
+
string.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
|
|
16
|
+
string.tr!("-", "_")
|
|
17
|
+
string.downcase
|
|
18
|
+
end
|
|
19
|
+
end
|
data/lib/couch_potato.rb
CHANGED
|
@@ -35,11 +35,13 @@ unless defined?(CouchPotato)
|
|
|
35
35
|
end
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
require
|
|
41
|
-
require
|
|
42
|
-
require
|
|
43
|
-
require
|
|
44
|
-
require
|
|
45
|
-
require
|
|
38
|
+
$LOAD_PATH << File.dirname(__FILE__)
|
|
39
|
+
|
|
40
|
+
require 'core_ext/object'
|
|
41
|
+
require 'core_ext/time'
|
|
42
|
+
require 'core_ext/date'
|
|
43
|
+
require 'core_ext/string'
|
|
44
|
+
require 'core_ext/symbol'
|
|
45
|
+
require 'couch_potato/validation'
|
|
46
|
+
require 'couch_potato/persistence'
|
|
47
|
+
require 'couch_potato/railtie' if defined?(Rails)
|
|
@@ -13,8 +13,8 @@ module CouchPotato
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
require
|
|
17
|
-
require
|
|
16
|
+
require 'couch_potato/rspec/matchers/map_to_matcher'
|
|
17
|
+
require 'couch_potato/rspec/matchers/reduce_to_matcher'
|
|
18
18
|
|
|
19
19
|
module Spec
|
|
20
20
|
module Matchers
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
module CouchPotato::RSpec
|
|
2
|
+
|
|
3
|
+
module StubView
|
|
4
|
+
class ViewStub
|
|
5
|
+
def initialize(clazz, view, db)
|
|
6
|
+
@clazz = clazz
|
|
7
|
+
@view = view
|
|
8
|
+
@db = db
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def with(*args)
|
|
12
|
+
@args = args
|
|
13
|
+
self
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def and_return(return_value)
|
|
17
|
+
view_stub = Spec::Mocks::Mock.new("#{@clazz}.#{@view}(#{@args.try(:join, ', ')}) view")
|
|
18
|
+
_stub = @clazz.stub(@view)
|
|
19
|
+
_stub.with(*@args) if @args
|
|
20
|
+
_stub.and_return(view_stub)
|
|
21
|
+
@db.stub(:view).with(view_stub).and_return(return_value)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def stub_view(clazz, view)
|
|
26
|
+
ViewStub.new clazz, view, self
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
module StubDb
|
|
31
|
+
def stub_db(options = {})
|
|
32
|
+
db = stub('db', options)
|
|
33
|
+
db.extend CouchPotato::RSpec::StubView
|
|
34
|
+
CouchPotato.stub(:database => db)
|
|
35
|
+
db
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
module Spec
|
|
41
|
+
module Mocks
|
|
42
|
+
module ExampleMethods
|
|
43
|
+
include CouchPotato::RSpec::StubDb
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -3,10 +3,10 @@ module CouchPotato
|
|
|
3
3
|
def self.included(base) #:nodoc:
|
|
4
4
|
case CouchPotato::Config.validation_framework
|
|
5
5
|
when :validatable
|
|
6
|
-
require
|
|
6
|
+
require 'couch_potato/validation/with_validatable'
|
|
7
7
|
base.send :include, CouchPotato::Validation::WithValidatable
|
|
8
8
|
when :active_model
|
|
9
|
-
require
|
|
9
|
+
require 'couch_potato/validation/with_active_model'
|
|
10
10
|
base.send :include, CouchPotato::Validation::WithActiveModel
|
|
11
11
|
else
|
|
12
12
|
raise "Unknown CouchPotato::Config.validation_framework #{CouchPotato::Config.validation_framework.inspect}, options are :validatable or :active_model"
|
|
@@ -8,7 +8,7 @@ module CouchPotato
|
|
|
8
8
|
normalized_view_parameters = normalize_view_parameters view_parameters
|
|
9
9
|
assert_valid_view_parameters normalized_view_parameters
|
|
10
10
|
@klass = klass
|
|
11
|
-
@design_document = klass.to_s.
|
|
11
|
+
@design_document = klass.to_s.snake_case('::')
|
|
12
12
|
@view_name = view_name
|
|
13
13
|
@options = options
|
|
14
14
|
@view_parameters = {}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
3
|
-
require
|
|
4
|
-
require
|
|
5
|
-
require
|
|
1
|
+
require 'couch_potato/view/base_view_spec'
|
|
2
|
+
require 'couch_potato/view/model_view_spec'
|
|
3
|
+
require 'couch_potato/view/properties_view_spec'
|
|
4
|
+
require 'couch_potato/view/custom_view_spec'
|
|
5
|
+
require 'couch_potato/view/raw_view_spec'
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
module CouchPotato
|
data/rails/reload_classes.rb
CHANGED
|
@@ -1,18 +1,44 @@
|
|
|
1
1
|
module CouchPotato
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
|
|
3
|
+
module ClassReloading
|
|
4
|
+
private
|
|
5
|
+
|
|
6
|
+
def with_class_reloading(&block)
|
|
4
7
|
begin
|
|
5
|
-
|
|
8
|
+
yield
|
|
6
9
|
rescue ArgumentError => e
|
|
7
10
|
if(name = e.message.scan(/(can't find const|undefined class\/module) ([\w\:]+)/).first[1])
|
|
8
|
-
eval name
|
|
11
|
+
eval name.gsub(/\:+$/, '')
|
|
9
12
|
retry
|
|
10
13
|
else
|
|
11
14
|
raise e
|
|
12
15
|
end
|
|
13
16
|
end
|
|
14
17
|
end
|
|
15
|
-
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
View::ViewQuery.class_eval do
|
|
21
|
+
include ClassReloading
|
|
22
|
+
|
|
23
|
+
def query_view_with_class_reloading(*args)
|
|
24
|
+
with_class_reloading do
|
|
25
|
+
query_view_without_class_reloading(*args)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
alias_method :query_view_without_class_reloading, :query_view
|
|
30
|
+
alias_method :query_view, :query_view_with_class_reloading
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
Database.class_eval do
|
|
34
|
+
include ClassReloading
|
|
35
|
+
|
|
36
|
+
def load_document_with_class_reloading(*args)
|
|
37
|
+
with_class_reloading do
|
|
38
|
+
load_document_without_class_reloading *args
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
16
42
|
alias_method :load_document_without_class_reloading, :load_document
|
|
17
43
|
alias_method :load_document, :load_document_with_class_reloading
|
|
18
44
|
alias_method :load, :load_document
|
data/spec/attachments_spec.rb
CHANGED
data/spec/callbacks_spec.rb
CHANGED
data/spec/create_spec.rb
CHANGED
data/spec/custom_view_spec.rb
CHANGED
data/spec/destroy_spec.rb
CHANGED
data/spec/property_spec.rb
CHANGED
data/spec/rails_spec.rb
CHANGED
|
@@ -1,20 +1,51 @@
|
|
|
1
|
-
require
|
|
1
|
+
require 'spec_helper'
|
|
2
2
|
require File.dirname(__FILE__) + '/../rails/reload_classes'
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
def
|
|
6
|
-
|
|
4
|
+
module LoadConst
|
|
5
|
+
def const_missing(name)
|
|
6
|
+
name = "#{self.name}::#{name}"
|
|
7
|
+
eval("#{name} = Class.new; #{name}.send(:include, CouchPotato::Persistence); #{name}.extend(LoadConst)")
|
|
7
8
|
end
|
|
8
9
|
end
|
|
9
10
|
|
|
11
|
+
class Autoloader
|
|
12
|
+
extend LoadConst
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class WithUnloadedEmbedded
|
|
16
|
+
include CouchPotato::Persistence
|
|
17
|
+
extend LoadConst
|
|
18
|
+
|
|
19
|
+
property :embedded
|
|
20
|
+
|
|
21
|
+
view :all, :type => :custom, :map => 'function(doc) {emit(doc._id, null)}', :include_docs => true
|
|
22
|
+
end
|
|
23
|
+
|
|
10
24
|
|
|
11
25
|
describe CouchPotato::Database, 'rails specific behavior' do
|
|
12
26
|
|
|
13
|
-
|
|
27
|
+
before(:each) do
|
|
14
28
|
recreate_db
|
|
15
|
-
CouchPotato.couchrest_database.save_doc(JSON.create_id => 'Autoloader::Uninitialized', '_id' => '1')
|
|
16
|
-
CouchPotato.database.load('1').class.name.should == 'Autoloader::Uninitialized'
|
|
17
29
|
end
|
|
18
30
|
|
|
31
|
+
context 'load a document' do
|
|
32
|
+
it "should load models whose constants are currently uninitialized (like with rails in development mode)" do
|
|
33
|
+
CouchPotato.couchrest_database.save_doc(JSON.create_id => 'Autoloader::Uninitialized', '_id' => '1')
|
|
34
|
+
CouchPotato.database.load('1').class.name.should == 'Autoloader::Uninitialized'
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it "should load nested models" do
|
|
38
|
+
CouchPotato.couchrest_database.save_doc(JSON.create_id => 'Autoloader::Nested::Nested2', '_id' => '1')
|
|
39
|
+
CouchPotato.database.load('1').class.name.should == 'Autoloader::Nested::Nested2'
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
context 'load documents using a view' do
|
|
44
|
+
it "should load models from a view whose constants are currently uninitialized" do
|
|
45
|
+
doc = {JSON.create_id => 'WithUnloadedEmbedded', '_id' => '1', 'embedded' => {JSON.create_id => 'WithUnloadedEmbedded::Uninitialized'}}
|
|
46
|
+
CouchPotato.couchrest_database.save_doc(doc)
|
|
47
|
+
CouchPotato.database.view(WithUnloadedEmbedded.all).first.embedded.class.name.should == 'WithUnloadedEmbedded::Uninitialized'
|
|
48
|
+
end
|
|
49
|
+
end
|
|
19
50
|
end
|
|
20
51
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require
|
|
1
|
+
require 'spec_helper'
|
|
2
2
|
|
|
3
3
|
describe CouchPotato::View::BaseViewSpec, 'initialize' do
|
|
4
4
|
describe "view parameters" do
|
|
@@ -33,14 +33,19 @@ describe CouchPotato::View::BaseViewSpec, 'initialize' do
|
|
|
33
33
|
spec = CouchPotato::View::BaseViewSpec.new Object, 'all', {}, {:key => '1'..'2'}
|
|
34
34
|
spec.view_parameters.should == {:startkey => '1', :endkey => '2'}
|
|
35
35
|
end
|
|
36
|
-
|
|
36
|
+
|
|
37
37
|
it "should convert a plain value to a hash with a key" do
|
|
38
38
|
spec = CouchPotato::View::BaseViewSpec.new Object, 'all', {}, '2'
|
|
39
39
|
spec.view_parameters.should == {:key => '2'}
|
|
40
40
|
end
|
|
41
|
-
|
|
41
|
+
|
|
42
|
+
it "generates the design document path by snake_casing the class name but keeping double colons" do
|
|
43
|
+
spec = CouchPotato::View::BaseViewSpec.new 'Foo::BarBaz', '', {}, ''
|
|
44
|
+
spec.design_document.should == 'foo::bar_baz'
|
|
45
|
+
end
|
|
46
|
+
|
|
42
47
|
end
|
|
43
|
-
|
|
48
|
+
|
|
44
49
|
end
|
|
45
50
|
|
|
46
51
|
|
data/spec/unit/callbacks_spec.rb
CHANGED
data/spec/unit/create_spec.rb
CHANGED
data/spec/unit/database_spec.rb
CHANGED
data/spec/unit/date_spec.rb
CHANGED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'couch_potato/rspec'
|
|
3
|
+
|
|
4
|
+
class WithStubbedView
|
|
5
|
+
include CouchPotato::Persistence
|
|
6
|
+
|
|
7
|
+
view :stubbed_view, :key => :x
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
describe "stubbing the db" do
|
|
11
|
+
it "should replace CouchPotato.database with a stub" do
|
|
12
|
+
stub_db
|
|
13
|
+
CouchPotato.database.should be_a(Spec::Mocks::Mock)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should return the stub" do
|
|
17
|
+
db = stub_db
|
|
18
|
+
CouchPotato.database.should == db
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
describe "stubbing a view" do
|
|
23
|
+
before(:each) do
|
|
24
|
+
@db = stub_db
|
|
25
|
+
@db.stub_view(WithStubbedView, :stubbed_view).with('123').and_return([:result])
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "should stub the view to return a stub" do
|
|
29
|
+
WithStubbedView.stubbed_view('123').should be_a(Spec::Mocks::Mock)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "should stub the database to return fake results when called with the stub" do
|
|
33
|
+
@db.view(WithStubbedView.stubbed_view('123')).should == [:result]
|
|
34
|
+
end
|
|
35
|
+
end
|
data/spec/unit/string_spec.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require
|
|
1
|
+
require 'spec_helper'
|
|
2
2
|
|
|
3
3
|
describe String, 'camelize' do
|
|
4
4
|
it "should camelize a string" do
|
|
@@ -6,8 +6,12 @@ describe String, 'camelize' do
|
|
|
6
6
|
end
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
-
describe String, '
|
|
10
|
-
it "should
|
|
11
|
-
'MyString'.
|
|
9
|
+
describe String, 'snake_case' do
|
|
10
|
+
it "should snake_case a string" do
|
|
11
|
+
'MyString'.snake_case.should == 'my_string'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it "should snake_case a string using a custom separator" do
|
|
15
|
+
'My::String'.snake_case('::').should == 'my::string'
|
|
12
16
|
end
|
|
13
17
|
end
|
data/spec/unit/time_spec.rb
CHANGED
data/spec/update_spec.rb
CHANGED
data/spec/view_updates_spec.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: couch_potato
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
4
|
+
prerelease: false
|
|
5
|
+
segments:
|
|
6
|
+
- 0
|
|
7
|
+
- 2
|
|
8
|
+
- 28
|
|
9
|
+
version: 0.2.28
|
|
5
10
|
platform: ruby
|
|
6
11
|
authors:
|
|
7
12
|
- Alexander Lang
|
|
@@ -9,39 +14,46 @@ autorequire:
|
|
|
9
14
|
bindir: bin
|
|
10
15
|
cert_chain: []
|
|
11
16
|
|
|
12
|
-
date: 2010-03-
|
|
17
|
+
date: 2010-03-31 00:00:00 +02:00
|
|
13
18
|
default_executable:
|
|
14
19
|
dependencies:
|
|
15
20
|
- !ruby/object:Gem::Dependency
|
|
16
21
|
name: json
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
prerelease: false
|
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
20
24
|
requirements:
|
|
21
25
|
- - ">="
|
|
22
26
|
- !ruby/object:Gem::Version
|
|
27
|
+
segments:
|
|
28
|
+
- 0
|
|
23
29
|
version: "0"
|
|
24
|
-
|
|
30
|
+
type: :runtime
|
|
31
|
+
version_requirements: *id001
|
|
25
32
|
- !ruby/object:Gem::Dependency
|
|
26
33
|
name: validatable
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
34
|
+
prerelease: false
|
|
35
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
30
36
|
requirements:
|
|
31
37
|
- - ">="
|
|
32
38
|
- !ruby/object:Gem::Version
|
|
39
|
+
segments:
|
|
40
|
+
- 0
|
|
33
41
|
version: "0"
|
|
34
|
-
|
|
42
|
+
type: :runtime
|
|
43
|
+
version_requirements: *id002
|
|
35
44
|
- !ruby/object:Gem::Dependency
|
|
36
45
|
name: couchrest
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
46
|
+
prerelease: false
|
|
47
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
|
40
48
|
requirements:
|
|
41
49
|
- - ">="
|
|
42
50
|
- !ruby/object:Gem::Version
|
|
51
|
+
segments:
|
|
52
|
+
- 0
|
|
53
|
+
- 24
|
|
43
54
|
version: "0.24"
|
|
44
|
-
|
|
55
|
+
type: :runtime
|
|
56
|
+
version_requirements: *id003
|
|
45
57
|
description: Ruby persistence layer for CouchDB
|
|
46
58
|
email: alex@upstream-berlin.com
|
|
47
59
|
executables: []
|
|
@@ -75,10 +87,12 @@ files:
|
|
|
75
87
|
- lib/couch_potato/persistence/simple_property.rb
|
|
76
88
|
- lib/couch_potato/persistence/type_caster.rb
|
|
77
89
|
- lib/couch_potato/railtie.rb
|
|
90
|
+
- lib/couch_potato/rspec.rb
|
|
78
91
|
- lib/couch_potato/rspec/matchers.rb
|
|
79
92
|
- lib/couch_potato/rspec/matchers/map_to_matcher.rb
|
|
80
93
|
- lib/couch_potato/rspec/matchers/print_r.js
|
|
81
94
|
- lib/couch_potato/rspec/matchers/reduce_to_matcher.rb
|
|
95
|
+
- lib/couch_potato/rspec/stub_db.rb
|
|
82
96
|
- lib/couch_potato/validation.rb
|
|
83
97
|
- lib/couch_potato/validation/with_active_model.rb
|
|
84
98
|
- lib/couch_potato/validation/with_validatable.rb
|
|
@@ -116,6 +130,7 @@ files:
|
|
|
116
130
|
- spec/unit/json_create_id_spec.rb
|
|
117
131
|
- spec/unit/model_view_spec_spec.rb
|
|
118
132
|
- spec/unit/rspec_matchers_spec.rb
|
|
133
|
+
- spec/unit/rspec_stub_db_spec.rb
|
|
119
134
|
- spec/unit/string_spec.rb
|
|
120
135
|
- spec/unit/time_spec.rb
|
|
121
136
|
- spec/unit/validation_spec.rb
|
|
@@ -135,18 +150,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
135
150
|
requirements:
|
|
136
151
|
- - ">="
|
|
137
152
|
- !ruby/object:Gem::Version
|
|
153
|
+
segments:
|
|
154
|
+
- 0
|
|
138
155
|
version: "0"
|
|
139
|
-
version:
|
|
140
156
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
157
|
requirements:
|
|
142
158
|
- - ">="
|
|
143
159
|
- !ruby/object:Gem::Version
|
|
160
|
+
segments:
|
|
161
|
+
- 0
|
|
144
162
|
version: "0"
|
|
145
|
-
version:
|
|
146
163
|
requirements: []
|
|
147
164
|
|
|
148
165
|
rubyforge_project:
|
|
149
|
-
rubygems_version: 1.3.
|
|
166
|
+
rubygems_version: 1.3.6
|
|
150
167
|
signing_key:
|
|
151
168
|
specification_version: 3
|
|
152
169
|
summary: Ruby persistence layer for CouchDB
|
|
@@ -175,6 +192,7 @@ test_files:
|
|
|
175
192
|
- spec/unit/json_create_id_spec.rb
|
|
176
193
|
- spec/unit/model_view_spec_spec.rb
|
|
177
194
|
- spec/unit/rspec_matchers_spec.rb
|
|
195
|
+
- spec/unit/rspec_stub_db_spec.rb
|
|
178
196
|
- spec/unit/string_spec.rb
|
|
179
197
|
- spec/unit/time_spec.rb
|
|
180
198
|
- spec/unit/validation_spec.rb
|