lucid-utils 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: a92ccf260f8f9135d3aa8bc3c4ebfcb3c48795424a4bdf49a12c9b2641f54aa4
4
+ data.tar.gz: a4c9529ec821b0ea100e21166233136072f958ae08dfd4c02878b4da6815559f
5
+ SHA512:
6
+ metadata.gz: f09eee100593c5a37dbdb9632ceade74575a73689b826862e25ec34dec356e0c7e3a7ff3554afc5c704a2be6c82f42b6143ede2835eee42e9a894df69ed479ae
7
+ data.tar.gz: 98c48fc8a73647e290fbf1986c0ddebdefd0c386bf4006a40572d252c34e3b8e8857d043ff09f050e17527d79e678610b492dcaa599080b6f98f3d21ab5f5dfa
data/README.md ADDED
@@ -0,0 +1,4 @@
1
+ lucid-utils
2
+ ===========
3
+
4
+ ...
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lucid
4
+ module Utils
5
+ class ConfigFromFile
6
+ # @param path [String]
7
+ # @param env_prefix [String, nil] environment variables override values in the file
8
+ #
9
+ # @return [Hash]
10
+ def call(path, env_prefix: nil)
11
+ instance_eval(File.read(path)).tap do |result|
12
+ raise TypeError, 'not and instance of Hash' unless result.is_a?(Hash)
13
+ end.then do |config|
14
+ env_prefix ? env_overrides(config, env_prefix) : config
15
+ end
16
+ end
17
+
18
+
19
+ # @param config [Hash]
20
+ # @param env_prefix [String]
21
+ #
22
+ # @return [Hash]
23
+ private def env_overrides(config, env_prefix)
24
+ config.each_with_object({}) do |(k, v), config|
25
+ env_key = [env_prefix, k].join('_').upcase
26
+
27
+ if v.is_a?(Hash)
28
+ config[k] = env_overrides(v, env_key)
29
+ else
30
+ config[k] = ENV.fetch(env_key, v)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lucid
4
+ module Utils
5
+ VERSION = '0.1.0'
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lucid
4
+ module Utils
5
+ autoload :ConfigFromFile, 'lucid/utils/config_from_file'
6
+ autoload :VERSION, 'lucid/utils/version'
7
+ end
8
+ end
@@ -0,0 +1 @@
1
+ lib/lucid/utils.rb
metadata ADDED
@@ -0,0 +1,47 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lucid-utils
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Kelsey Judson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-10-13 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email: kelsey@lucid.nz
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - README.md
20
+ - lib/lucid-utils.rb
21
+ - lib/lucid/utils.rb
22
+ - lib/lucid/utils/config_from_file.rb
23
+ - lib/lucid/utils/version.rb
24
+ homepage: https://github.com/lucidnz/gem-lucid-utils
25
+ licenses:
26
+ - ISC
27
+ metadata: {}
28
+ post_install_message:
29
+ rdoc_options: []
30
+ require_paths:
31
+ - lib
32
+ required_ruby_version: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ required_rubygems_version: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ requirements: []
43
+ rubygems_version: 3.0.3
44
+ signing_key:
45
+ specification_version: 4
46
+ summary: Common helpers for Lucid gems
47
+ test_files: []