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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f0a3001450205f4734271598f6b0cd51ca6aba8808434b734d031d3f7c7851b6
4
- data.tar.gz: d62a7f9bf5fc8e4f8a299b7fe9f8eba9f7f547917298a8e0e8b9c7d0944e15f1
3
+ metadata.gz: 0e601554ecea9bc4ad625f62936f005413b5cc13e76c25776a6abd1455dca6ff
4
+ data.tar.gz: 91b7f6eeb1e07b2646c3086d4ef008b91ee04d63fee1b7b6ccb9a73c8adfd67a
5
5
  SHA512:
6
- metadata.gz: 689ac43514f81720d263e6e5f707139b451a32703a5d361937626ce653f3c0494019aeed282d5b3e7e384e6b5a217dbd3f67d1927128a3cd12180148f32aef66
7
- data.tar.gz: '08c8db4aff8046683fafdfa71ef7cc4717a09b0165cac63a97a3ec660f6f344d0432c8823d7d662dddad221ea8202f83aef7d189cf06a70adc7729dc0aa86eaa'
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 ClassMethods
17
+ extend ConfigFilesClassMethods
16
18
  end
17
19
  end
18
20
  end
19
21
 
20
- module ClassMethods
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||={ :etc => ['config', 'etc', '/etc'] }
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
- self.directories[key]&.detect { |directory| directory_listing(directory, file).presence } || ''
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)
@@ -1,3 +1,3 @@
1
1
  module ConfigFiles
2
- VERSION='0.1.5'
2
+ VERSION='0.1.6'
3
3
  end
@@ -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.5
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.2
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