couch-migrate 1.1.3 → 2.0.2
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/Gemfile +3 -0
- data/Gemfile.lock +15 -0
- data/HISTORY.txt +8 -0
- data/README.rdoc +6 -1
- data/VERSION +1 -1
- data/couch-migrate.gemspec +6 -2
- data/lib/couch_migrate/couch_migrater.rb +14 -0
- data/lib/couch_migrate/couchrest_model/extend.rb +10 -13
- data/spec/couch_migrate/couch_migrater_spec.rb +30 -4
- data/spec/couch_migrate/shared_persisted_list.rb +0 -4
- data/spec/couch_migrate/shared_sequential_migrations.rb +0 -2
- data/spec/spec_helper.rb +10 -0
- metadata +29 -17
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,13 +1,26 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
+
activemodel (3.1.1)
|
5
|
+
activesupport (= 3.1.1)
|
6
|
+
builder (~> 3.0.0)
|
7
|
+
i18n (~> 0.6)
|
8
|
+
activesupport (3.1.1)
|
9
|
+
multi_json (~> 1.0)
|
10
|
+
builder (3.0.0)
|
4
11
|
couchrest (1.1.2)
|
5
12
|
mime-types (~> 1.15)
|
6
13
|
multi_json (~> 1.0.0)
|
7
14
|
rest-client (~> 1.6.1)
|
15
|
+
couchrest_model (1.1.2)
|
16
|
+
activemodel (~> 3.0)
|
17
|
+
couchrest (~> 1.1.2)
|
18
|
+
mime-types (~> 1.15)
|
19
|
+
tzinfo (~> 0.3.22)
|
8
20
|
diff-lcs (1.1.3)
|
9
21
|
fakefs (0.4.0)
|
10
22
|
git (1.2.5)
|
23
|
+
i18n (0.6.0)
|
11
24
|
jeweler (1.6.4)
|
12
25
|
bundler (~> 1.0)
|
13
26
|
git (>= 1.2.5)
|
@@ -26,6 +39,7 @@ GEM
|
|
26
39
|
rspec-expectations (2.6.0)
|
27
40
|
diff-lcs (~> 1.1.2)
|
28
41
|
rspec-mocks (2.6.0)
|
42
|
+
tzinfo (0.3.31)
|
29
43
|
yard (0.6.8)
|
30
44
|
|
31
45
|
PLATFORMS
|
@@ -34,6 +48,7 @@ PLATFORMS
|
|
34
48
|
DEPENDENCIES
|
35
49
|
bundler (~> 1.0.0)
|
36
50
|
couchrest
|
51
|
+
couchrest_model
|
37
52
|
fakefs
|
38
53
|
jeweler (~> 1.6.4)
|
39
54
|
rcov
|
data/HISTORY.txt
ADDED
data/README.rdoc
CHANGED
@@ -44,7 +44,7 @@ db:seed" could provide.
|
|
44
44
|
property :characteristics, [String]
|
45
45
|
timestamps!
|
46
46
|
design do
|
47
|
-
view :by_name
|
47
|
+
view :by_name
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
@@ -62,6 +62,11 @@ db:seed" could provide.
|
|
62
62
|
rescue
|
63
63
|
end
|
64
64
|
|
65
|
+
Thing.save_design_doc # you have to manually save the design
|
66
|
+
# document for the view to work. NOTE:
|
67
|
+
# this will destroy any views not
|
68
|
+
# declared in this file.
|
69
|
+
|
65
70
|
Account.create! do |a|
|
66
71
|
a.name = "A new account"
|
67
72
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
2.0.2
|
data/couch-migrate.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{couch-migrate}
|
8
|
-
s.version = "
|
8
|
+
s.version = "2.0.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Greg Edwards"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-11-16}
|
13
13
|
s.description = %q{A simple migration system for CouchDB.}
|
14
14
|
s.email = %q{greg@greglearns.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
".rspec",
|
22
22
|
"Gemfile",
|
23
23
|
"Gemfile.lock",
|
24
|
+
"HISTORY.txt",
|
24
25
|
"LICENSE.txt",
|
25
26
|
"README.rdoc",
|
26
27
|
"Rakefile",
|
@@ -67,6 +68,7 @@ Gem::Specification.new do |s|
|
|
67
68
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
68
69
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
69
70
|
s.add_development_dependency(%q<fakefs>, [">= 0"])
|
71
|
+
s.add_development_dependency(%q<couchrest_model>, [">= 0"])
|
70
72
|
else
|
71
73
|
s.add_dependency(%q<couchrest>, [">= 0"])
|
72
74
|
s.add_dependency(%q<rspec>, ["~> 2.6.0"])
|
@@ -75,6 +77,7 @@ Gem::Specification.new do |s|
|
|
75
77
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
76
78
|
s.add_dependency(%q<rcov>, [">= 0"])
|
77
79
|
s.add_dependency(%q<fakefs>, [">= 0"])
|
80
|
+
s.add_dependency(%q<couchrest_model>, [">= 0"])
|
78
81
|
end
|
79
82
|
else
|
80
83
|
s.add_dependency(%q<couchrest>, [">= 0"])
|
@@ -84,6 +87,7 @@ Gem::Specification.new do |s|
|
|
84
87
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
85
88
|
s.add_dependency(%q<rcov>, [">= 0"])
|
86
89
|
s.add_dependency(%q<fakefs>, [">= 0"])
|
90
|
+
s.add_dependency(%q<couchrest_model>, [">= 0"])
|
87
91
|
end
|
88
92
|
end
|
89
93
|
|
@@ -11,6 +11,20 @@ module CouchMigrate
|
|
11
11
|
self
|
12
12
|
end
|
13
13
|
|
14
|
+
def migrate(*args)
|
15
|
+
if defined?( CouchRest::Model::Base)
|
16
|
+
orig_auto_update_design_doc = CouchRest::Model::Base.auto_update_design_doc
|
17
|
+
CouchRest::Model::Base.auto_update_design_doc = false
|
18
|
+
end
|
19
|
+
begin
|
20
|
+
super
|
21
|
+
ensure
|
22
|
+
if defined?(CouchRest::Model::Base)
|
23
|
+
CouchRest::Model::Base.auto_update_design_doc = orig_auto_update_design_doc
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
14
28
|
end
|
15
29
|
end
|
16
30
|
|
@@ -1,18 +1,15 @@
|
|
1
|
+
require_relative '../base_executer'
|
2
|
+
require 'couchrest_model'
|
3
|
+
|
1
4
|
# use "use_couchrest_model" in the DSL or
|
2
5
|
# include this module in a migration to use CouchRest::Model
|
3
|
-
if defined?(::CouchRest::Model)
|
4
|
-
module ::CouchRest
|
5
|
-
module Model
|
6
|
-
class Base
|
7
|
-
class << self
|
8
|
-
alias to_s_original to_s
|
9
|
-
|
10
|
-
def to_s
|
11
|
-
to_s_original.sub(/CouchMigrate::BaseExecuter::Namespaced::/, '')
|
12
|
-
end
|
13
|
-
end
|
14
6
|
|
15
|
-
|
16
|
-
|
7
|
+
class << ::CouchRest::Model::Base
|
8
|
+
alias to_s_original to_s
|
9
|
+
|
10
|
+
def to_s
|
11
|
+
to_s_original.sub(/CouchMigrate::BaseExecuter::Namespaced::/, '')
|
17
12
|
end
|
18
13
|
end
|
14
|
+
|
15
|
+
|
@@ -3,18 +3,44 @@ require 'couch-migrate'
|
|
3
3
|
require_relative 'shared_sequential_migrations'
|
4
4
|
|
5
5
|
describe CouchMigrate::CouchMigrater, "#migrate" do
|
6
|
+
let(:path) { Pathname.new("./tmp/spec").expand_path.tap{|it| it.mkpath} }
|
7
|
+
let(:db_uri) { 'http://127.0.0.1:5984/couch-migrate_test' }
|
6
8
|
|
7
9
|
it_should_behave_like "sequential_migrations" do
|
8
|
-
|
10
|
+
let(:path) { Pathname.new("spec/tmp") }
|
9
11
|
|
10
|
-
|
11
|
-
let(:db_path) { 'http://127.0.0.1:5984/couch-migrate_test' }
|
12
|
+
subject { CouchMigrate::CouchMigrater }
|
12
13
|
|
13
14
|
def migrater
|
14
15
|
# allows new migrations to be picked up
|
15
|
-
subject.new(
|
16
|
+
subject.new(db_uri, path)
|
16
17
|
end
|
17
18
|
end
|
18
19
|
|
20
|
+
it "doesn't automatically destroy design documents created in previous runs" do
|
21
|
+
class ::TestModel < CouchRest::Model::Base
|
22
|
+
property :name, String
|
23
|
+
design do
|
24
|
+
view :by_name
|
25
|
+
end
|
26
|
+
end
|
27
|
+
::TestModel.save_design_doc!
|
28
|
+
Object.module_eval { remove_const :TestModel }
|
29
|
+
|
30
|
+
File.open(path + "1_model_wo_by_name-view.rb", 'w'){|f| f << <<-MIGR}
|
31
|
+
use_couchrest_model
|
32
|
+
class TestModel < CouchRest::Model::Base
|
33
|
+
property :name, String
|
34
|
+
end
|
35
|
+
up do
|
36
|
+
TestModel.all
|
37
|
+
end
|
38
|
+
MIGR
|
39
|
+
|
40
|
+
lambda {
|
41
|
+
CouchMigrate::CouchMigrater.new(db_uri, path).migrate(:up, :quiet)
|
42
|
+
}.should_not change { CouchRest::Model::Base.database.get('_design/TestModel') || raise("missing design doc") }
|
43
|
+
end
|
44
|
+
|
19
45
|
end
|
20
46
|
|
@@ -4,8 +4,6 @@ require 'fakefs/spec_helpers'
|
|
4
4
|
shared_examples_for "sequential_migrations" do
|
5
5
|
let(:path){ raise "a path must be defined by the grouping using these shared examples" }
|
6
6
|
|
7
|
-
include FakeFS::SpecHelpers
|
8
|
-
|
9
7
|
def migrater
|
10
8
|
# allows new migrations to be picked up
|
11
9
|
raise "Groups that include shared examples for sequential migrations must implement a migrater function that returns a new migration object"
|
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'fakefs/safe'
|
2
|
+
|
1
3
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
4
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
5
|
require 'rspec'
|
@@ -8,5 +10,13 @@ require 'fakefs/safe'
|
|
8
10
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
9
11
|
|
10
12
|
RSpec.configure do |config|
|
13
|
+
config.before(:each) do
|
14
|
+
FakeFS::FileSystem.clear
|
15
|
+
FakeFS.activate!
|
16
|
+
end
|
11
17
|
|
18
|
+
config.after(:each) do
|
19
|
+
FakeFS.deactivate!
|
20
|
+
FakeFS::FileSystem.clear
|
21
|
+
end
|
12
22
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: couch-migrate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-11-16 00:00:00.000000000 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: couchrest
|
17
|
-
requirement: &
|
17
|
+
requirement: &2163551160 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *2163551160
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: rspec
|
28
|
-
requirement: &
|
28
|
+
requirement: &2163492540 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 2.6.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *2163492540
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: yard
|
39
|
-
requirement: &
|
39
|
+
requirement: &2163491960 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 0.6.0
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *2163491960
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: bundler
|
50
|
-
requirement: &
|
50
|
+
requirement: &2163490880 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 1.0.0
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *2163490880
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: jeweler
|
61
|
-
requirement: &
|
61
|
+
requirement: &2163489340 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ~>
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: 1.6.4
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *2163489340
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rcov
|
72
|
-
requirement: &
|
72
|
+
requirement: &2163487940 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: '0'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *2163487940
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: fakefs
|
83
|
-
requirement: &
|
83
|
+
requirement: &2163486780 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ! '>='
|
@@ -88,7 +88,18 @@ dependencies:
|
|
88
88
|
version: '0'
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *2163486780
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
name: couchrest_model
|
94
|
+
requirement: &2163486040 !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ! '>='
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
100
|
+
type: :development
|
101
|
+
prerelease: false
|
102
|
+
version_requirements: *2163486040
|
92
103
|
description: A simple migration system for CouchDB.
|
93
104
|
email: greg@greglearns.com
|
94
105
|
executables: []
|
@@ -101,6 +112,7 @@ files:
|
|
101
112
|
- .rspec
|
102
113
|
- Gemfile
|
103
114
|
- Gemfile.lock
|
115
|
+
- HISTORY.txt
|
104
116
|
- LICENSE.txt
|
105
117
|
- README.rdoc
|
106
118
|
- Rakefile
|
@@ -145,7 +157,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
145
157
|
version: '0'
|
146
158
|
segments:
|
147
159
|
- 0
|
148
|
-
hash:
|
160
|
+
hash: -4165065190086607812
|
149
161
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
162
|
none: false
|
151
163
|
requirements:
|