penthouse 0.8.0 → 0.9.0
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.
- checksums.yaml +4 -4
- data/lib/penthouse/migrator.rb +32 -9
- data/lib/penthouse/version.rb +1 -1
- data/penthouse.gemspec +1 -0
- metadata +16 -3
- data/lib/penthouse/tasks/enhancements.rb +0 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ddf585328bcdfaa3c9899c24c391500330ddcc84
|
4
|
+
data.tar.gz: 1b1ab82b1efdb9fd4e9defb3819317d47ae4e4f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c3a1758e69b996836f73cdb094217bec0ae9b8584692e678708579e05ff9589ef8d48abd285fcc8f4c085c0a67f2331992db879b372f54e6531ad6e9ae472fe
|
7
|
+
data.tar.gz: 43f988b517f943dd75d4924dc78016f1ccadd1255e7e4a48e9668738933f7e76a489f8964df2f186689563ad2f747dd4d1e7e85211e9e4aa6a15a3d57dfa2d0c
|
data/lib/penthouse/migrator.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
require 'active_record'
|
2
|
-
require 'set'
|
3
2
|
require 'active_support/core_ext/module/aliasing'
|
4
|
-
require 'active_support/core_ext/array/wrap'
|
5
3
|
|
6
4
|
module Penthouse
|
7
5
|
module Migration
|
@@ -37,16 +35,33 @@ module Penthouse
|
|
37
35
|
alias_method :down_with_octopus, :down_with_penthouse
|
38
36
|
alias_method :run_with_octopus, :run_with_penthouse
|
39
37
|
end
|
38
|
+
|
39
|
+
alias_method_chain :migrate, :penthouse
|
40
|
+
alias_method_chain :migrations, :penthouse
|
41
|
+
|
42
|
+
# override any new Octopus methods with the new Penthouse ones
|
43
|
+
alias_method :migrate_with_octopus, :migrate_with_penthouse
|
44
|
+
alias_method :migrations_with_octopus, :migrations_with_penthouse
|
40
45
|
end
|
41
46
|
end
|
42
47
|
|
48
|
+
# this may seem stupid but it gets around issues with Octopus
|
49
|
+
def migrate_with_penthouse(*args)
|
50
|
+
migrate_without_penthouse(*args)
|
51
|
+
end
|
52
|
+
|
53
|
+
# this may seem stupid but it gets around issues with Octopus
|
54
|
+
def migrations_with_penthouse
|
55
|
+
migrations_without_penthouse
|
56
|
+
end
|
57
|
+
|
43
58
|
module ClassMethods
|
44
59
|
def migrate_with_penthouse(migrations_paths, target_version = nil, &block)
|
45
60
|
unless Penthouse.configuration.migrate_tenants?
|
46
61
|
return migrate_without_penthouse(migrations_paths, target_version, &block)
|
47
62
|
end
|
48
63
|
|
49
|
-
|
64
|
+
wrap_penthouse do
|
50
65
|
migrate_without_penthouse(migrations_paths, target_version, &block)
|
51
66
|
end
|
52
67
|
end
|
@@ -56,18 +71,18 @@ module Penthouse
|
|
56
71
|
return up_without_penthouse(migrations_paths, target_version, &block)
|
57
72
|
end
|
58
73
|
|
59
|
-
|
60
|
-
up_without_penthouse(migrations_paths, target_version
|
74
|
+
wrap_penthouse do
|
75
|
+
up_without_penthouse(migrations_paths, target_version)
|
61
76
|
end
|
62
77
|
end
|
63
78
|
|
64
79
|
def down_with_penthouse(migrations_paths, target_version = nil, &block)
|
65
80
|
unless Penthouse.configuration.migrate_tenants?
|
66
|
-
return down_without_penthouse(migrations_paths, target_version
|
81
|
+
return down_without_penthouse(migrations_paths, target_version)
|
67
82
|
end
|
68
83
|
|
69
|
-
|
70
|
-
down_without_penthouse(migrations_paths, target_version
|
84
|
+
wrap_penthouse do
|
85
|
+
down_without_penthouse(migrations_paths, target_version)
|
71
86
|
end
|
72
87
|
end
|
73
88
|
|
@@ -76,13 +91,21 @@ module Penthouse
|
|
76
91
|
return run_without_penthouse(direction, migrations_paths, target_version)
|
77
92
|
end
|
78
93
|
|
79
|
-
|
94
|
+
wrap_penthouse do
|
80
95
|
run_without_penthouse(direction, migrations_paths, target_version)
|
81
96
|
end
|
82
97
|
end
|
83
98
|
|
84
99
|
private
|
85
100
|
|
101
|
+
def wrap_penthouse(&block)
|
102
|
+
if Penthouse.tenant
|
103
|
+
block.yield
|
104
|
+
else
|
105
|
+
Penthouse.each_tenant(tenant_identifiers: tenants_to_migrate, &block)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
86
109
|
def tenants_to_migrate
|
87
110
|
return @tenants_to_migrate if defined?(@tenants_to_migrate)
|
88
111
|
@tenants_to_migrate = begin
|
data/lib/penthouse/version.rb
CHANGED
data/penthouse.gemspec
CHANGED
@@ -29,6 +29,7 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_development_dependency 'rack', '~> 1.6.4'
|
30
30
|
# db
|
31
31
|
spec.add_development_dependency 'ar-octopus', '~> 0.8.6'
|
32
|
+
spec.add_development_dependency 'activesupport', '~> 4.2.6'
|
32
33
|
spec.add_development_dependency 'activerecord', '~> 4.2.6'
|
33
34
|
spec.add_development_dependency 'pg'
|
34
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: penthouse
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Townsend
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -122,6 +122,20 @@ dependencies:
|
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: 0.8.6
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: activesupport
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 4.2.6
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 4.2.6
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: activerecord
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -178,7 +192,6 @@ files:
|
|
178
192
|
- lib/penthouse/sidekiq/middleware/client.rb
|
179
193
|
- lib/penthouse/sidekiq/middleware/server.rb
|
180
194
|
- lib/penthouse/sidekiq/railtie.rb
|
181
|
-
- lib/penthouse/tasks/enhancements.rb
|
182
195
|
- lib/penthouse/tenants/base_tenant.rb
|
183
196
|
- lib/penthouse/tenants/migratable.rb
|
184
197
|
- lib/penthouse/tenants/octopus_schema_tenant.rb
|
@@ -1,35 +0,0 @@
|
|
1
|
-
# Require this file to append Penthouse rake tasks to ActiveRecord db rake tasks
|
2
|
-
# Enabled by default in the initializer
|
3
|
-
|
4
|
-
# shamelessly copied & adjusted from Apartment
|
5
|
-
# @see https://github.com/influitive/apartment/blob/development/lib/apartment/tasks/enhancements.rb
|
6
|
-
|
7
|
-
module Penthouse
|
8
|
-
class RakeTaskEnhancer
|
9
|
-
TASKS = %w(db:migrate db:rollback db:migrate:up db:migrate:down db:migrate:redo db:seed)
|
10
|
-
|
11
|
-
class << self
|
12
|
-
def enhance!
|
13
|
-
TASKS.each do |name|
|
14
|
-
task = Rake::Task[name]
|
15
|
-
task.enhance do
|
16
|
-
if should_enhance?
|
17
|
-
enhance_task(task)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def should_enhance?
|
24
|
-
Penthouse.configuration.migrate_tenants?
|
25
|
-
end
|
26
|
-
|
27
|
-
def enhance_task(task)
|
28
|
-
Rake::Task[task.name.sub(/db:/, 'penthouse:')].invoke
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
Penthouse::RakeTaskEnhancer.enhance!
|