db_charmer_env_urls 0.0.2 → 0.0.3
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/.gitignore +1 -0
- data/lib/db_charmer_env_urls/engine.rb +8 -8
- data/lib/db_charmer_env_urls/version.rb +1 -1
- data/lib/db_charmer_env_urls.rb +28 -0
- metadata +2 -6
- data/spec/dummy/log/development.log +0 -7
- data/spec/dummy/log/test.log +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6865fc7fc3e5d23b7ee5ed5d79adaa9856b34703
|
4
|
+
data.tar.gz: 20e510bf10d8ea31a735fa77a724c1f7744c1f63
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 085b886ec7d5caa80d38022e7dcc158d0983c5f30008ec5f123da796ac7fe962ef829a5575f2f37e9e5732e091ba122a52474920930f2de37425d7cdb3d89198
|
7
|
+
data.tar.gz: d721a5062a1b0b335da3a68fe087ba050c11407bf0a298fcd9ccc1b3cce66ceff74546e787af4c1c2d2a5569f44a2a14a3c297bd56b94465203e8c4908e9fe31
|
data/.gitignore
CHANGED
@@ -2,16 +2,16 @@ require 'rails/engine'
|
|
2
2
|
|
3
3
|
module DbCharmerEnvUrls
|
4
4
|
class Engine < ::Rails::Engine
|
5
|
+
# Merges any database urls from the ENV into the current environment's configurations
|
6
|
+
#
|
7
|
+
# @see https://github.com/rails/rails/blob/38af3540ae53b9f2fbdb649a68cde3edf182fe67/activerecord/lib/active_record/railtie.rb#L79 ActiveRecord's default initializer
|
8
|
+
# @see DbCharmerEnvUrls.database_configurations
|
5
9
|
initializer "database_urls.initialize_database", after: "active_record.initialize_database" do
|
6
10
|
ActiveSupport.on_load(:active_record) do
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
B.configurations[Rails.env] ||= {}
|
12
|
-
B.configurations[Rails.env][matches[1].downcase] = config.stringify_keys
|
13
|
-
end
|
14
|
-
end
|
11
|
+
base = ActiveRecord::Base
|
12
|
+
# This will not be set if DATABASE_URL isn't used
|
13
|
+
base.configurations[Rails.env] ||= {}
|
14
|
+
base.configurations[Rails.env].merge!(DbCharmerEnvUrls.database_configurations)
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
data/lib/db_charmer_env_urls.rb
CHANGED
@@ -2,4 +2,32 @@ require "db_charmer_env_urls/engine"
|
|
2
2
|
require "db_charmer_env_urls/version"
|
3
3
|
|
4
4
|
module DbCharmerEnvUrls
|
5
|
+
# Extracts database configs from the ENV where ENV key ends it _DATABASE_URL
|
6
|
+
#
|
7
|
+
# @example Matching ENV variable names
|
8
|
+
# SLAVE_DATABASE_URL, CRIMSON_DATABASE_URL
|
9
|
+
#
|
10
|
+
# @example Usage
|
11
|
+
# ENV["SLAVE_DATABASE_URL"] = "postgres://localhost:5432/name"
|
12
|
+
# DbCharmerEnvUrls.database_configurations
|
13
|
+
# {
|
14
|
+
# "slave" => {
|
15
|
+
# "adapter" => "postgres",
|
16
|
+
# "host" => "localhost",
|
17
|
+
# "port" => 5432,
|
18
|
+
# "database" => "name"
|
19
|
+
# }
|
20
|
+
# }
|
21
|
+
#
|
22
|
+
# @return [Hash] Hash of database configurations whose keys are extracted from the ENV and whose values are hashes of database configs
|
23
|
+
def self.database_configurations
|
24
|
+
base = ActiveRecord::Base
|
25
|
+
ENV.inject({}) do |acc, (key, url)|
|
26
|
+
if matches = key.match(/\A(\w+)_DATABASE_URL\z/)
|
27
|
+
config = base::ConnectionSpecification::Resolver.new(url, base.configurations).spec.config
|
28
|
+
acc[matches[1].downcase] = config.stringify_keys
|
29
|
+
end
|
30
|
+
acc
|
31
|
+
end
|
32
|
+
end
|
5
33
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: db_charmer_env_urls
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Hahn
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -171,8 +171,6 @@ files:
|
|
171
171
|
- spec/dummy/dummy/script/rails
|
172
172
|
- spec/dummy/lib/assets/.gitkeep
|
173
173
|
- spec/dummy/log/.gitkeep
|
174
|
-
- spec/dummy/log/development.log
|
175
|
-
- spec/dummy/log/test.log
|
176
174
|
- spec/dummy/public/404.html
|
177
175
|
- spec/dummy/public/422.html
|
178
176
|
- spec/dummy/public/500.html
|
@@ -264,8 +262,6 @@ test_files:
|
|
264
262
|
- spec/dummy/dummy/script/rails
|
265
263
|
- spec/dummy/lib/assets/.gitkeep
|
266
264
|
- spec/dummy/log/.gitkeep
|
267
|
-
- spec/dummy/log/development.log
|
268
|
-
- spec/dummy/log/test.log
|
269
265
|
- spec/dummy/public/404.html
|
270
266
|
- spec/dummy/public/422.html
|
271
267
|
- spec/dummy/public/500.html
|
@@ -1,7 +0,0 @@
|
|
1
|
-
Connecting to database specified by database.yml
|
2
|
-
Connecting to database specified by database.yml
|
3
|
-
Connecting to database specified by database.yml
|
4
|
-
Connecting to database specified by database.yml
|
5
|
-
Connecting to database specified by database.yml
|
6
|
-
Connecting to database specified by database.yml
|
7
|
-
Connecting to database specified by database.yml
|
data/spec/dummy/log/test.log
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
Connecting to database specified by database.yml
|
2
|
-
Connecting to database specified by database.yml
|
3
|
-
Connecting to database specified by database.yml
|
4
|
-
Connecting to database specified by database.yml
|
5
|
-
Connecting to database specified by database.yml
|
6
|
-
Connecting to database specified by database.yml
|
7
|
-
Connecting to database specified by database.yml
|
8
|
-
Connecting to database specified by database.yml
|
9
|
-
Connecting to database specified by database.yml
|
10
|
-
Connecting to database specified by database.yml
|
11
|
-
Connecting to database specified by database.yml
|
12
|
-
Connecting to database specified by database.yml
|
13
|
-
Connecting to database specified by database.yml
|
14
|
-
Connecting to database specified by database.yml
|
15
|
-
Connecting to database specified by database.yml
|
16
|
-
Connecting to database specified by database.yml
|
17
|
-
Connecting to database specified by database.yml
|
18
|
-
Connecting to database specified by database.yml
|
19
|
-
Connecting to database specified by database.yml
|
20
|
-
Connecting to database specified by database.yml
|
21
|
-
Connecting to database specified by database.yml
|
22
|
-
Connecting to database specified by database.yml
|
23
|
-
Connecting to database specified by database.yml
|
24
|
-
Connecting to database specified by database.yml
|
25
|
-
Connecting to database specified by database.yml
|
26
|
-
Connecting to database specified by database.yml
|
27
|
-
Connecting to database specified by database.yml
|