ridgepole-rails 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 20921cf112d6479993b6c11c6678fbb9814ab992
4
- data.tar.gz: 8270126ebd78803bfd36da5b2ecb9a7265038d0c
3
+ metadata.gz: 69049e4874316519f312e8f5903e7b293fdaaf57
4
+ data.tar.gz: 7cd7ea48280f524858b1227f3c5ff6583314502c
5
5
  SHA512:
6
- metadata.gz: 8934a116c5038c175c648f0ed460144bbbefa49dddedadeca997a062edaa320ed59152db44fdd5b56f0f80b2b2ef941c0078e29cb008d13d85e7c0740b0ddd4b
7
- data.tar.gz: 1491d15980d74404a9dfe8e492b47712c873f2bd4caa987b1e3d0e0fe2b050150edadd03b664a7e147be680c47d5fd81babe99099cfe5b9b9f25f1ca5820bf1c
6
+ metadata.gz: b09690dba1a5d24d3555d340140aa9e0131a25d1f81e03e8a92a80adb16fc43b2d2b4d33e6a07faef00ad70bdfdd7302c170bd3f2deb68f03912da09ad3a8ff9
7
+ data.tar.gz: eb987e84629819549303714bdf70f73b0029e96cbf175e7db1d4a46b1d2949946c3fc57730e0c89c8841c4d368884bb91bc96aa08f051a34f8e39ef3f7828feb
@@ -1,6 +1,7 @@
1
1
  require 'rake'
2
2
  require 'rake/tasklib'
3
3
  require 'shellwords'
4
+ require 'ridgepole/rails/restore_extensions_on_purge'
4
5
 
5
6
  module Ridgepole
6
7
  module Rails
@@ -0,0 +1,37 @@
1
+ require 'active_record/base'
2
+ require 'active_record/tasks/database_tasks'
3
+ require 'active_support/core_ext/module/delegation'
4
+
5
+ module Ridgepole
6
+ module Rails
7
+ module RestoreExtensionsOnPurge
8
+ delegate :establish_connection, :connection, to: ActiveRecord::Base
9
+
10
+ # Restore extensions to recreated database if any
11
+ def purge(configuration)
12
+ establish_connection(configuration)
13
+ saved_extensions = connection.extensions
14
+
15
+ super
16
+
17
+ # Re-establish connection since the last one is closed by super#purge
18
+ establish_connection(configuration)
19
+ saved_extensions.each do |extension|
20
+ connection.enable_extension(extension)
21
+ end
22
+ end
23
+
24
+ def self.prepended(mod)
25
+ mod.extend(self)
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+ module ActiveRecord
32
+ module Tasks
33
+ module DatabaseTasks
34
+ prepend Ridgepole::Rails::RestoreExtensionsOnPurge
35
+ end
36
+ end
37
+ end
@@ -1,5 +1,5 @@
1
1
  module Ridgepole
2
2
  module Rails
3
- VERSION = '1.0.2'
3
+ VERSION = '1.0.3'
4
4
  end
5
5
  end
@@ -21,7 +21,7 @@ desc 'Apply Schemafile to the database'
21
21
  task 'db:schema:load' => 'ridgepole:apply'
22
22
 
23
23
  Rake.application.lookup('db:test:load').clear
24
- task 'db:test:load' do
24
+ task 'db:test:load' => 'db:test:purge' do
25
25
  Rake::Task['ridgepole:apply'].invoke('test')
26
26
  end
27
27
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ridgepole-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - OZAWA Sakuro
@@ -67,6 +67,7 @@ files:
67
67
  - lib/ridgepole/rails.rb
68
68
  - lib/ridgepole/rails/engine.rb
69
69
  - lib/ridgepole/rails/rake_task.rb
70
+ - lib/ridgepole/rails/restore_extensions_on_purge.rb
70
71
  - lib/ridgepole/rails/version.rb
71
72
  - lib/tasks/ridgepole.rake
72
73
  homepage: https://github.com/sakuro/ridgepole-rails