database-switcher 0.0.0 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/database-switcher.rb +35 -2
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 09209e77dbff458842efd7d35543f852c5e4db43
4
- data.tar.gz: 3d925465fa485276ea95cacad938eb3e84545a3c
3
+ metadata.gz: 8e46415cd8d2bd4557fa4fc44e9b364c6e512182
4
+ data.tar.gz: 275a7a8a6690064de6bb4131d1c9635c105b20a6
5
5
  SHA512:
6
- metadata.gz: ab65e374adfa2a85ffd43ff8d8ac6a571622baa3d99728f32cc4f7535bba016ab1ea7f1132974eee8c55aed15ea2101572504e7818edda42ab886185e94a5500
7
- data.tar.gz: a5c08720e77a10d2d4c82a6f41446ccced2f73dc460682457589cd8217dc26eae1dc5dc32c513ce05fbc885753c234eb9fa7f74795e5956ffe8419212f4a8d01
6
+ metadata.gz: c8a08952d364d200af140279b4ba4300c8b1c232f5237235d3d74a1b2946834564d5c737f21b2efb21f152844c59e8ccba8544ca53fe7b21651e148186c68923
7
+ data.tar.gz: a5ae583cc4e2ca7c385bb76a8b117e0fa5514c4f910de48a8e52b942b471d9d4b5c3275243a43d143d3c9b385999f5f44f952c687d92921663639a02e021108d
@@ -1,5 +1,38 @@
1
1
  class DatabaseSwitcher
2
- def self.hi
3
- "Hello World!"
2
+ attr_reader :database_name, :config_file_path
3
+
4
+ def initialize(database_name, config_file_path: 'config/database-switcher.yml')
5
+ @database_name = database_name
6
+ @config_file_path = config_file_path
7
+ @main_db_params = ActiveRecord::Base.configurations[Rails.env]
8
+ end
9
+
10
+ def perform(&block)
11
+ switch_db_connection
12
+ return_value = block.call
13
+ restore_main_db_connection
14
+ return_value
15
+ end
16
+
17
+ private
18
+
19
+ def switch_db_connection
20
+ ActiveRecord::Base.establish_connection(target_db_params)
21
+ end
22
+
23
+ def target_db_params
24
+ config[database_name]
25
+ end
26
+
27
+ def config
28
+ @config ||= YAML::load(config_file)
29
+ end
30
+
31
+ def config_file
32
+ @config_file ||= File.read(config_file_path)
33
+ end
34
+
35
+ def restore_main_db_connection
36
+ ActiveRecord::Base.establish_connection(@main_db_params)
4
37
  end
5
38
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: database-switcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kairui Wang
@@ -17,7 +17,7 @@ extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
19
  - lib/database-switcher.rb
20
- homepage: http://rubygems.org/gems/database-switcher
20
+ homepage: https://github.com/kairuiwang/database-switcher
21
21
  licenses:
22
22
  - MIT
23
23
  metadata: {}