fedux_org-stdlib 0.7.33 → 0.8.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2df3bafb3b745bddbd69a9f0537867eedec950b6
4
- data.tar.gz: 0b1051884555097787efc2771df1479eae33f1d8
3
+ metadata.gz: dba0a7408d790446d802807ca52a3f5ef8e3f81a
4
+ data.tar.gz: 870ffc809e5ea3e9ff10c5950d2825b0a0245ee4
5
5
  SHA512:
6
- metadata.gz: e9f5967d86a4a088582bcc535ba777d90bc9e912414e3db8db9f4464142c17a5b9ed041bfddde2a650ff693e892651e5f54007e3009fee2811bfe4438df42abb
7
- data.tar.gz: 7567209863dbd40e9491b691fc571e4fcddaee1f703e4845b4bbcc624b4e0b7a120a272de106781cac2878f84eeb12dddc1beb30acfedb79a35c781f45f33adf
6
+ metadata.gz: 5a82ec771eaf3053241133c98b5a186096888b0b94d0e4f470800d310d2444faa6863db872d8f4112ec78e74c93c966b0b5b1074e4f536f6e20d68871bdfd01d
7
+ data.tar.gz: 3f6e181070c4e31b9bf8953b44ddeebe91e3fbaa0057af16c04c71bd14383c590b92a90a6c911c7e62eef687e06c09d1b70865d053c2846758bcd8a67f19aa3d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fedux_org-stdlib (0.7.32)
4
+ fedux_org-stdlib (0.7.34)
5
5
  activesupport
6
6
 
7
7
  PATH
@@ -0,0 +1,15 @@
1
+ # encoding: utf-8
2
+ module FeduxOrgStdlib
3
+ class ExternalConfigDirectory
4
+ module Exceptions
5
+ # No allowed config file could be found
6
+ class NoConfigDirectoryFound < StandardError; end
7
+
8
+ # If no module is given on class
9
+ class NamespaceIsMissing < StandardError; end
10
+
11
+ # If no class name is present
12
+ class ClassNameIsMissing < StandardError; end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,148 @@
1
+ # encoding: utf-8
2
+ require 'fedux_org_stdlib/require_files'
3
+ require 'fedux_org_stdlib/config_directory/exceptions'
4
+ require 'fedux_org_stdlib/logging/logger'
5
+ require_library %w(json active_support/core_ext/string/inflections set active_support/core_ext/hash/slice active_support/core_ext/object/blank active_support/core_ext/hash/keys)
6
+
7
+ module FeduxOrgStdlib
8
+ # This class detects the file name for an config file. By default it will
9
+ # look for a suitable config file in the given order:
10
+ #
11
+ # 1. $HOME/.config/<application_name>/<config_directory>
12
+ # 2. $HOME/.<application_name>/<config_directory>
13
+ # 2. $HOME/.<config_directory>
14
+ # 3. /etc/.<application_name>/<config_directory>
15
+ #
16
+ # Please keep in mind
17
+ #
18
+ # * application_name: Module of your class, e.g. "MyApplication" becomes
19
+ # "my_application"
20
+ # * config_directory: Pluarized name of your class and "Config" strip
21
+ # off, e.g "ClientConfig" becomes "clients.yaml" (mind the pluralized name)
22
+ #
23
+ # Most conventions defined by me are implemented as separate methods. If one convention
24
+ # is not suitable for your use case, just overwrite the method.
25
+ #
26
+ # If you prefer to use a different path to the config file or name of the
27
+ # config file one of the following methods needs to be overwritten:
28
+ #
29
+ # * config_directory
30
+ # * config_name
31
+ # * application_name
32
+ #
33
+ # If you want the class to look for your config file at a different place
34
+ # overwrite the following method
35
+ #
36
+ # * allowed_config_directory_paths
37
+ #
38
+ # Below you find some examples for the usage of the class:
39
+ #
40
+ # @example Create config with one writer and reader
41
+ # module MyApplication
42
+ # class ClientConfig < ConfigDirectory
43
+ # end
44
+ # end
45
+ class ConfigDirectory
46
+ # Create a new instance of config
47
+ #
48
+ # It tries to find a suitable configuration file. If it doesn't find one
49
+ # the config is empty and uses the defaults defined within a config class
50
+ #
51
+ # @param [String] file
52
+ # Path where config file is stored. The file will be read by the
53
+ # `config_engine`.
54
+ #
55
+ # @raise [Exceptions::ConfigFileNotReadable]
56
+ # If an avaiable config file could not be read by the config engine
57
+ #
58
+ # @return [ConfigDirectory]
59
+ # The config instance. If the resulting data structure created by the
60
+ # config_engine does not respond to `:[]` an empty config object will be
61
+ # created.
62
+
63
+ attr_reader :directory, :logger
64
+
65
+ def initialize(
66
+ logger: FeduxOrgStdlib::Logging::Logger.new,
67
+ directory: _available_config_directory
68
+ )
69
+ @logger = logger
70
+ @directory = directory
71
+
72
+ unless directory
73
+ logger.debug "No configuration directory found at #{_allowed_config_directory_paths.to_list}, therefor I'm going to use an empty config object instead."
74
+ end
75
+ end
76
+
77
+ # Return the path to the preferred configuration file
78
+ # @return [String]
79
+ # The path to the preferred configuration file
80
+ def preferred_configuration_directory
81
+ _allowed_config_directory_paths.first
82
+ end
83
+
84
+ private
85
+
86
+ # The base name of the config
87
+ #
88
+ # @return [String]
89
+ # This one returns the base name of the config file (without the file
90
+ # extension). It uses the class name of the config class
91
+ #
92
+ # @example Determine the base name of the config
93
+ #
94
+ # class ClientConfig; end
95
+ #
96
+ # This will result in `client` as base name for the config file.
97
+ def _config_directory
98
+ unless (name = _class_name.sub(/Config/, '').underscore.pluralize).blank?
99
+ return name
100
+ end
101
+
102
+ fail Exceptions::ClassNameIsMissing, JSON.dump(klass: _class_name)
103
+ end
104
+
105
+ # The name of your application
106
+ #
107
+ # @return [String]
108
+ # This will strip of the class part of fully qualified class name and
109
+ # converted it to a path.
110
+ #
111
+ # @example Determine application name
112
+ #
113
+ # class MyApplication::MyConfig; end
114
+ #
115
+ # This will be converted to
116
+ #
117
+ # my_application
118
+ def _application_name
119
+ _module_name.underscore
120
+ end
121
+
122
+ # The paths where to look for the config file
123
+ #
124
+ # @return [Array]
125
+ # A list of paths where the config object should look for its config
126
+ # file.
127
+ def _allowed_config_directory_paths
128
+ [
129
+ ::File.expand_path(::File.join('~', '.config', _application_name, _config_directory)),
130
+ ::File.expand_path(::File.join('~', format('.%s', _application_name), _config_directory)),
131
+ ::File.expand_path(::File.join('~', format('.%s', _config_directory))),
132
+ ::File.expand_path(::File.join('/etc', _application_name, _config_directory)),
133
+ ]
134
+ end
135
+
136
+ def _class_name
137
+ self.class.name.to_s.demodulize
138
+ end
139
+
140
+ def _module_name
141
+ self.class.to_s.deconstantize
142
+ end
143
+
144
+ def _available_config_directory
145
+ _allowed_config_directory_paths.find { |f| ::File.directory? f }
146
+ end
147
+ end
148
+ end
@@ -0,0 +1,15 @@
1
+ # encoding: utf-8
2
+ module FeduxOrgStdlib
3
+ class ConfigFile
4
+ module Exceptions
5
+ # No allowed config file could be found
6
+ class NoConfigFileFound < StandardError; end
7
+
8
+ # If no module is given on class
9
+ class NamespaceIsMissing < StandardError; end
10
+
11
+ # If no class name is present
12
+ class ClassNameIsMissing < StandardError; end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,168 @@
1
+ # encoding: utf-8
2
+ require 'fedux_org_stdlib/require_files'
3
+ require 'fedux_org_stdlib/config_file/exceptions'
4
+ require 'fedux_org_stdlib/logging/logger'
5
+ require_library %w(json active_support/core_ext/string/inflections set active_support/core_ext/hash/slice active_support/core_ext/object/blank active_support/core_ext/hash/keys)
6
+
7
+ module FeduxOrgStdlib
8
+ # This class detects the file name for an config file. By default it will
9
+ # look for a suitable config file in the given order:
10
+ #
11
+ # 1. $HOME/.config/<application_name>/<config_file>.yaml
12
+ # 2. $HOME/.<application_name>/<config_file>.yaml
13
+ # 2. $HOME/.<config_file>.yaml
14
+ # 2. $HOME/.<config_file>rc
15
+ # 3. /etc/.<application_name>/<config_file>.yaml
16
+ #
17
+ # Please keep in mind
18
+ #
19
+ # * application_name: Module of your class, e.g. "MyApplication" becomes
20
+ # "my_application"
21
+ # * config_file: Pluarized name of your class and "Config" strip
22
+ # off, e.g "ClientConfig" becomes "clients.yaml" (mind the pluralized name)
23
+ #
24
+ # Most conventions defined by me are implemented as separate methods. If one convention
25
+ # is not suitable for your use case, just overwrite the method.
26
+ #
27
+ # If you prefer to use a different path to the config file or name of the
28
+ # config file one of the following methods needs to be overwritten:
29
+ #
30
+ # * config_file
31
+ # * config_name
32
+ # * application_name
33
+ #
34
+ # If you want the class to look for your config file at a different place
35
+ # overwrite the following method
36
+ #
37
+ # * allowed_config_file_paths
38
+ #
39
+ # Below you find some examples for the usage of the class:
40
+ #
41
+ # @example Create config with one writer and reader
42
+ # module MyApplication
43
+ # class ClientConfig < ConfigFile
44
+ # end
45
+ # end
46
+ class ConfigFile
47
+ # Create a new instance of config
48
+ #
49
+ # It tries to find a suitable configuration file. If it doesn't find one
50
+ # the config is empty and uses the defaults defined within a config class
51
+ #
52
+ # @param [String] file
53
+ # Path where config file is stored. The file will be read by the
54
+ # `config_engine`.
55
+ #
56
+ # @raise [Exceptions::ConfigFileNotReadable]
57
+ # If an avaiable config file could not be read by the config engine
58
+ #
59
+ # @return [ConfigFile]
60
+ # The config instance. If the resulting data structure created by the
61
+ # config_engine does not respond to `:[]` an empty config object will be
62
+ # created.
63
+
64
+ attr_reader :file, :logger
65
+
66
+ def initialize(
67
+ logger: FeduxOrgStdlib::Logging::Logger.new,
68
+ file: _available_config_file
69
+ )
70
+ @logger = logger
71
+ @file = file
72
+
73
+ unless file
74
+ logger.debug "No configuration file found at #{_allowed_config_file_paths.to_list}, therefor I'm going to use an empty config object instead."
75
+ end
76
+ end
77
+
78
+ # Return the path to the preferred configuration file
79
+ # @return [String]
80
+ # The path to the preferred configuration file
81
+ def preferred_configuration_file
82
+ _allowed_config_file_paths.first
83
+ end
84
+
85
+ private
86
+
87
+ # The name of the config file
88
+ #
89
+ # @return [String]
90
+ # The name of the config file. It defaults to `<config_name>.yaml`. If
91
+ # you want to use a different file name you need to overwrite this
92
+ # method.
93
+ def _config_file
94
+ "#{_config_name}#{_config_file_suffix}"
95
+ end
96
+
97
+ # The suffix of the config file
98
+ #
99
+ # @return [String]
100
+ # The suffix of the config file
101
+ def _config_file_suffix
102
+ '.yaml'
103
+ end
104
+
105
+ # The base name of the config
106
+ #
107
+ # @return [String]
108
+ # This one returns the base name of the config file (without the file
109
+ # extension). It uses the class name of the config class
110
+ #
111
+ # @example Determine the base name of the config
112
+ #
113
+ # class ClientConfig; end
114
+ #
115
+ # This will result in `client` as base name for the config file.
116
+ def _config_name
117
+ unless (name = _class_name.sub(/Config/, '').underscore.pluralize).blank?
118
+ return name
119
+ end
120
+
121
+ fail Exceptions::ClassNameIsMissing, JSON.dump(klass: _class_name)
122
+ end
123
+
124
+ # The name of your application
125
+ #
126
+ # @return [String]
127
+ # This will strip of the class part of fully qualified class name and
128
+ # converted it to a path.
129
+ #
130
+ # @example Determine application name
131
+ #
132
+ # class MyApplication::MyConfig; end
133
+ #
134
+ # This will be converted to
135
+ #
136
+ # my_application
137
+ def _application_name
138
+ _module_name.underscore
139
+ end
140
+
141
+ # The paths where to look for the config file
142
+ #
143
+ # @return [Array]
144
+ # A list of paths where the config object should look for its config
145
+ # file.
146
+ def _allowed_config_file_paths
147
+ [
148
+ ::File.expand_path(::File.join('~', '.config', _application_name, _config_file)),
149
+ ::File.expand_path(::File.join('~', format('.%s', _application_name), _config_file)),
150
+ ::File.expand_path(::File.join('~', format('.%s', _config_file))),
151
+ ::File.expand_path(::File.join('~', format('.%src', _config_name))),
152
+ ::File.expand_path(::File.join('/etc', _application_name, _config_file)),
153
+ ]
154
+ end
155
+
156
+ def _class_name
157
+ self.class.name.to_s.demodulize
158
+ end
159
+
160
+ def _module_name
161
+ self.class.to_s.deconstantize
162
+ end
163
+
164
+ def _available_config_file
165
+ _allowed_config_file_paths.find { |f| ::File.exist? f }
166
+ end
167
+ end
168
+ end
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
  # FeduxOrgStdlib
3
3
  module FeduxOrgStdlib
4
- VERSION = '0.7.33'
4
+ VERSION = '0.8.0'
5
5
  end
@@ -0,0 +1,126 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'fedux_org_stdlib/config_directory'
4
+
5
+ RSpec.describe ConfigDirectory do
6
+
7
+ context '#preferred_configuration_file' do
8
+ it 'has a default configuration file which is the preferred place to store the configuration' do
9
+ with_env 'HOME' => absolute_path('.') do
10
+ config_klass = Class.new(ConfigDirectory) do
11
+
12
+ def _class_name
13
+ 'TestConfig'
14
+ end
15
+
16
+ def _module_name
17
+ 'MyApplication'
18
+ end
19
+ end
20
+
21
+ config = config_klass.new
22
+ expect(config.preferred_configuration_directory).to eq File.expand_path('~/.config/my_application/tests')
23
+ end
24
+ end
25
+
26
+ it 'works with nested module names' do
27
+ with_env 'HOME' => absolute_path('.') do
28
+ config_klass = Class.new(ConfigDirectory) do
29
+
30
+ def _class_name
31
+ 'TestConfig'
32
+ end
33
+
34
+ def _module_name
35
+ 'MyApplication::MySub'
36
+ end
37
+ end
38
+
39
+ config = config_klass.new
40
+ expect(config.preferred_configuration_directory).to eq File.expand_path('~/.config/my_application/my_sub/tests')
41
+ end
42
+ end
43
+ end
44
+
45
+ context 'config files' do
46
+ it 'looks at ~/.test.yaml' do
47
+ with_env 'HOME' => absolute_path('.') do
48
+ create_dir '.tests'
49
+
50
+ config_klass = Class.new(ConfigDirectory) do
51
+
52
+ def _class_name
53
+ 'TestConfig'
54
+ end
55
+
56
+ def _module_name
57
+ 'MyApplication'
58
+ end
59
+ end
60
+
61
+ config = config_klass.new
62
+ expect(config.directory).to eq absolute_path('.tests')
63
+ end
64
+ end
65
+
66
+ it 'looks at ~/.config/my_application/tests.yaml' do
67
+ with_env 'HOME' => absolute_path('.') do
68
+ create_dir '.config/my_application/tests'
69
+
70
+ config_klass = Class.new(ConfigDirectory) do
71
+
72
+ def _class_name
73
+ 'TestConfig'
74
+ end
75
+
76
+ def _module_name
77
+ 'MyApplication'
78
+ end
79
+ end
80
+
81
+ config = config_klass.new
82
+ expect(config.directory).to eq absolute_path('.config/my_application/tests')
83
+ end
84
+ end
85
+
86
+ it 'looks at ~/.my_application/tests.yaml' do
87
+ with_env 'HOME' => absolute_path('.') do
88
+ create_dir '.my_application/tests'
89
+
90
+ config_klass = Class.new(ConfigDirectory) do
91
+
92
+ def _class_name
93
+ 'TestConfig'
94
+ end
95
+
96
+ def _module_name
97
+ 'MyApplication'
98
+ end
99
+ end
100
+
101
+ config = config_klass.new
102
+ expect(config.directory).to eq absolute_path('.my_application/tests')
103
+ end
104
+ end
105
+
106
+ it 'looks at ~/.tests' do
107
+ with_env 'HOME' => absolute_path('.') do
108
+ create_dir '.tests'
109
+
110
+ config_klass = Class.new(ConfigDirectory) do
111
+
112
+ def _class_name
113
+ 'TestConfig'
114
+ end
115
+
116
+ def _module_name
117
+ 'MyApplication'
118
+ end
119
+ end
120
+
121
+ config = config_klass.new
122
+ expect(config.directory).to eq absolute_path('.tests')
123
+ end
124
+ end
125
+ end
126
+ end
@@ -0,0 +1,126 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'fedux_org_stdlib/config_file'
4
+
5
+ RSpec.describe ConfigFile do
6
+
7
+ context '#preferred_configuration_file' do
8
+ it 'has a default configuration file which is the preferred place to store the configuration' do
9
+ with_env 'HOME' => absolute_path('.') do
10
+ config_klass = Class.new(ConfigFile) do
11
+
12
+ def _class_name
13
+ 'TestConfig'
14
+ end
15
+
16
+ def _module_name
17
+ 'MyApplication'
18
+ end
19
+ end
20
+
21
+ config = config_klass.new
22
+ expect(config.preferred_configuration_file).to eq File.expand_path('~/.config/my_application/tests.yaml')
23
+ end
24
+ end
25
+
26
+ it 'works with nested module names' do
27
+ with_env 'HOME' => absolute_path('.') do
28
+ config_klass = Class.new(ConfigFile) do
29
+
30
+ def _class_name
31
+ 'TestConfig'
32
+ end
33
+
34
+ def _module_name
35
+ 'MyApplication::MySub'
36
+ end
37
+ end
38
+
39
+ config = config_klass.new
40
+ expect(config.preferred_configuration_file).to eq File.expand_path('~/.config/my_application/my_sub/tests.yaml')
41
+ end
42
+ end
43
+ end
44
+
45
+ context 'config files' do
46
+ it 'looks at ~/.test.yaml' do
47
+ with_env 'HOME' => absolute_path('.') do
48
+ touch_file '.tests.yaml'
49
+
50
+ config_klass = Class.new(ConfigFile) do
51
+
52
+ def _class_name
53
+ 'TestConfig'
54
+ end
55
+
56
+ def _module_name
57
+ 'MyApplication'
58
+ end
59
+ end
60
+
61
+ config = config_klass.new
62
+ expect(config.file).to eq absolute_path('.tests.yaml')
63
+ end
64
+ end
65
+
66
+ it 'looks at ~/.config/my_application/tests.yaml' do
67
+ with_env 'HOME' => absolute_path('.') do
68
+ touch_file '.config/my_application/tests.yaml'
69
+
70
+ config_klass = Class.new(ConfigFile) do
71
+
72
+ def _class_name
73
+ 'TestConfig'
74
+ end
75
+
76
+ def _module_name
77
+ 'MyApplication'
78
+ end
79
+ end
80
+
81
+ config = config_klass.new
82
+ expect(config.file).to eq absolute_path('.config/my_application/tests.yaml')
83
+ end
84
+ end
85
+
86
+ it 'looks at ~/.my_application/tests.yaml' do
87
+ with_env 'HOME' => absolute_path('.') do
88
+ touch_file '.my_application/tests.yaml'
89
+
90
+ config_klass = Class.new(ConfigFile) do
91
+
92
+ def _class_name
93
+ 'TestConfig'
94
+ end
95
+
96
+ def _module_name
97
+ 'MyApplication'
98
+ end
99
+ end
100
+
101
+ config = config_klass.new
102
+ expect(config.file).to eq absolute_path('.my_application/tests.yaml')
103
+ end
104
+ end
105
+
106
+ it 'looks at ~/.testsrc' do
107
+ with_env 'HOME' => absolute_path('.') do
108
+ touch_file '.testsrc'
109
+
110
+ config_klass = Class.new(ConfigFile) do
111
+
112
+ def _class_name
113
+ 'TestConfig'
114
+ end
115
+
116
+ def _module_name
117
+ 'MyApplication'
118
+ end
119
+ end
120
+
121
+ config = config_klass.new
122
+ expect(config.file).to eq absolute_path('.testsrc')
123
+ end
124
+ end
125
+ end
126
+ end
@@ -15,16 +15,11 @@ RSpec.describe GemPlugins::PluginManager do
15
15
  end
16
16
 
17
17
  context '#activate_plugin' do
18
- it 'loads available plugins by its name' do
19
- FeduxOrgStdlib::Fixtures::PluginManager::Load::PluginManager.new
20
-
21
- expect('FeduxOrgStdlib::Fixtures::PluginManager::Plugin::Load').not_to be_defined
22
- end
23
-
24
18
  it 'loads available plugins only on request' do
25
19
  manager = FeduxOrgStdlib::Fixtures::PluginManager::Load::PluginManager.new
26
- manager.activate_plugin 'fedux_org_stdlib-fixtures-plugin_manager-load'
20
+ expect('FeduxOrgStdlib::Fixtures::PluginManager::Plugin::Load').not_to be_defined
27
21
 
22
+ manager.activate_plugin 'fedux_org_stdlib-fixtures-plugin_manager-load'
28
23
  expect('FeduxOrgStdlib::Fixtures::PluginManager::Plugin::Load').to be_defined
29
24
  end
30
25
  end
@@ -39,12 +34,12 @@ RSpec.describe GemPlugins::PluginManager do
39
34
  expect(result).to include 'plugin-blub'
40
35
  end
41
36
 
42
- context '#to_s' do
43
- it 'has a string representation' do
44
- manager = FeduxOrgStdlib::Fixtures::PluginManager::Load::PluginManager.new
45
- manager.activate_plugin 'fedux_org_stdlib-fixtures-plugin_manager-load'
37
+ #context '#to_s' do
38
+ # it 'has a string representation' do
39
+ # manager = FeduxOrgStdlib::Fixtures::PluginManager::Load::PluginManager.new
40
+ # manager.activate_plugin 'fedux_org_stdlib-fixtures-plugin_manager-load'
46
41
 
47
- expect(manager.to_s).to include '1 row in set'
48
- end
49
- end
42
+ # expect(manager.to_s).to include '1 row in set'
43
+ # end
44
+ #end
50
45
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fedux_org-stdlib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.33
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max Meyer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-14 00:00:00.000000000 Z
11
+ date: 2014-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -62,6 +62,10 @@ files:
62
62
  - lib/fedux_org_stdlib/command/command_result.rb
63
63
  - lib/fedux_org_stdlib/command/run_command.rb
64
64
  - lib/fedux_org_stdlib/command/which.rb
65
+ - lib/fedux_org_stdlib/config_directory.rb
66
+ - lib/fedux_org_stdlib/config_directory/exceptions.rb
67
+ - lib/fedux_org_stdlib/config_file.rb
68
+ - lib/fedux_org_stdlib/config_file/exceptions.rb
65
69
  - lib/fedux_org_stdlib/core_ext/array.rb
66
70
  - lib/fedux_org_stdlib/core_ext/array/list.rb
67
71
  - lib/fedux_org_stdlib/core_ext/hash.rb
@@ -166,6 +170,8 @@ files:
166
170
  - spec/colors/html_color_spec.rb
167
171
  - spec/command/run_command_spec.rb
168
172
  - spec/command/which_spec.rb
173
+ - spec/config_directory_spec.rb
174
+ - spec/config_file_spec.rb
169
175
  - spec/core_ext/array/list_spec.rb
170
176
  - spec/core_ext/hash/list_spec.rb
171
177
  - spec/core_ext/hash/options_spec.rb
@@ -245,6 +251,8 @@ test_files:
245
251
  - spec/colors/html_color_spec.rb
246
252
  - spec/command/run_command_spec.rb
247
253
  - spec/command/which_spec.rb
254
+ - spec/config_directory_spec.rb
255
+ - spec/config_file_spec.rb
248
256
  - spec/core_ext/array/list_spec.rb
249
257
  - spec/core_ext/hash/list_spec.rb
250
258
  - spec/core_ext/hash/options_spec.rb