config_files 0.1.5 → 0.1.6
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/Gemfile.lock +34 -0
- data/lib/config_files.rb +20 -4
- data/lib/config_files/version.rb +1 -1
- data/test/config_files_test.rb +9 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e601554ecea9bc4ad625f62936f005413b5cc13e76c25776a6abd1455dca6ff
|
4
|
+
data.tar.gz: 91b7f6eeb1e07b2646c3086d4ef008b91ee04d63fee1b7b6ccb9a73c8adfd67a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d086ca2975a90d9035a7e81eac2a7ddaadfcbd42ca61a3cb33fbde4675b42c226bfd181c48a9dcc6206f6fd6167e26b016af977fee61b2ab02d5bb132c67da53
|
7
|
+
data.tar.gz: 84211ae6ba278ebec36df53a7e0f7275b35430118b135ae6ecc5e73f3ad5ca02833691e4655e38f61f67857c62beb7a041189d3b00a3395e33526f96730c1520
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
config_files (0.1.5)
|
5
|
+
activesupport (>= 2.2.1)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
activesupport (6.0.3.3)
|
11
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
12
|
+
i18n (>= 0.7, < 2)
|
13
|
+
minitest (~> 5.1)
|
14
|
+
tzinfo (~> 1.1)
|
15
|
+
zeitwerk (~> 2.2, >= 2.2.2)
|
16
|
+
concurrent-ruby (1.1.7)
|
17
|
+
i18n (1.8.5)
|
18
|
+
concurrent-ruby (~> 1.0)
|
19
|
+
minitest (5.14.2)
|
20
|
+
rake (13.0.1)
|
21
|
+
thread_safe (0.3.6)
|
22
|
+
tzinfo (1.2.7)
|
23
|
+
thread_safe (~> 0.1)
|
24
|
+
zeitwerk (2.4.0)
|
25
|
+
|
26
|
+
PLATFORMS
|
27
|
+
ruby
|
28
|
+
|
29
|
+
DEPENDENCIES
|
30
|
+
config_files!
|
31
|
+
rake
|
32
|
+
|
33
|
+
BUNDLED WITH
|
34
|
+
1.16.1
|
data/lib/config_files.rb
CHANGED
@@ -7,20 +7,28 @@ require 'active_support/core_ext/object/blank'
|
|
7
7
|
|
8
8
|
require 'meta'
|
9
9
|
require 'yaml'
|
10
|
+
|
11
|
+
class NoDirectoryEntry < NoMethodError; end
|
10
12
|
module ConfigFiles
|
11
13
|
|
12
14
|
class << self
|
13
15
|
def included(base)
|
14
16
|
base.class_eval do
|
15
|
-
extend
|
17
|
+
extend ConfigFilesClassMethods
|
16
18
|
end
|
17
19
|
end
|
18
20
|
end
|
19
21
|
|
20
|
-
module
|
22
|
+
module ConfigFilesClassMethods
|
21
23
|
include Meta
|
22
24
|
attr_accessor :directories
|
23
25
|
|
26
|
+
def self.extended(base)
|
27
|
+
base.instance_eval do
|
28
|
+
self.directories=default_directories
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
24
32
|
def any_extension
|
25
33
|
'*'
|
26
34
|
end
|
@@ -29,8 +37,12 @@ module ConfigFiles
|
|
29
37
|
:etc
|
30
38
|
end
|
31
39
|
|
40
|
+
def default_directories
|
41
|
+
{ :etc => ['config', 'etc', '/etc'] }
|
42
|
+
end
|
43
|
+
|
32
44
|
def config_directories(*arr)
|
33
|
-
self.directories||=
|
45
|
+
self.directories||=default_directories
|
34
46
|
arr.each do |directory_list|
|
35
47
|
directory_list.each do |key, value|
|
36
48
|
self.directories[key]=value.map { |dir| ::File.expand_path(dir) }
|
@@ -68,7 +80,11 @@ module ConfigFiles
|
|
68
80
|
end
|
69
81
|
|
70
82
|
def first_directory(file, key=config_key)
|
71
|
-
|
83
|
+
begin
|
84
|
+
self.directories[key]&.detect { |directory| directory_listing(directory, file).presence } || ''
|
85
|
+
rescue NoMethodError=>e
|
86
|
+
raise NoDirectoryEntry, "Unable to find #{key} in #{self.directories}"
|
87
|
+
end
|
72
88
|
end
|
73
89
|
|
74
90
|
def files(file, key=config_key)
|
data/lib/config_files/version.rb
CHANGED
data/test/config_files_test.rb
CHANGED
@@ -16,6 +16,11 @@ class Dummy2 < Dummy
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
+
class Defaults
|
20
|
+
include ConfigFiles
|
21
|
+
static_config_files :dummy
|
22
|
+
end
|
23
|
+
|
19
24
|
class ConfigFilesTest < MiniTest::Test
|
20
25
|
def test_config_key
|
21
26
|
assert_equal(:etc, Dummy.config_key)
|
@@ -44,4 +49,8 @@ class ConfigFilesTest < MiniTest::Test
|
|
44
49
|
def test_yaml_and_config_override
|
45
50
|
assert_equal('test', Dummy2.dummy[:config_test])
|
46
51
|
end
|
52
|
+
|
53
|
+
def test_defaults_are_picked_up_when_no_directories_used
|
54
|
+
assert_equal('test', Defaults.dummy[:config_test])
|
55
|
+
end
|
47
56
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: config_files
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul McKibbin
|
@@ -48,6 +48,7 @@ extra_rdoc_files: []
|
|
48
48
|
files:
|
49
49
|
- ".gitignore"
|
50
50
|
- Gemfile
|
51
|
+
- Gemfile.lock
|
51
52
|
- LICENCE.txt
|
52
53
|
- README.md
|
53
54
|
- Rakefile
|
@@ -85,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
85
86
|
- !ruby/object:Gem::Version
|
86
87
|
version: '0'
|
87
88
|
requirements: []
|
88
|
-
rubygems_version: 3.1.
|
89
|
+
rubygems_version: 3.1.4
|
89
90
|
signing_key:
|
90
91
|
specification_version: 4
|
91
92
|
summary: ConfigFiles is a configuration file access tool. It parses multiple configuration
|