config_files 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/config_files.rb +61 -0
- data/lib/meta.rb +12 -0
- metadata +45 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ba83f6bade45d06bfa8a9ea74ba48915cfa9c908790f635aea7c53e5e12ffb2d
|
4
|
+
data.tar.gz: 969daeff600eb0fd4e6e084e33b3d83159e9aded3cae3df02f46528c073182dd
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 70ad5d3313cb4a8a623bf07a0a113ab945b0ef729393d474cb076a392c5d5dbcdb5e87cc7c8dc4da0118a7f64afa31e4a5c8987f08185982590127fb94e9b731
|
7
|
+
data.tar.gz: 15b8aa187cdcd0ce70123ad2c98eb8a7f30652fac7455ea8a7792b570847f7b3923668b415dca9a9f6fbc9db89e008299e22dd7ca694a4d18fdd6fcf29f8548d
|
data/lib/config_files.rb
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'meta'
|
2
|
+
require 'yaml'
|
3
|
+
module ConfigFiles
|
4
|
+
|
5
|
+
class << self
|
6
|
+
def included(base)
|
7
|
+
base.class_eval do
|
8
|
+
extend ClassMethods
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
module ClassMethods
|
14
|
+
include Meta
|
15
|
+
attr_accessor :directories
|
16
|
+
|
17
|
+
def yaml_extension
|
18
|
+
'.yml'
|
19
|
+
end
|
20
|
+
|
21
|
+
def config_key
|
22
|
+
:etc
|
23
|
+
end
|
24
|
+
|
25
|
+
def config_directories(*arr)
|
26
|
+
self.directories||={ :etc => ['etc', '/etc'] }
|
27
|
+
arr.each do |directory_list|
|
28
|
+
directory_list.each do |key, value|
|
29
|
+
self.directories[key]=value.map { |dir| File.expand_path(dir) }
|
30
|
+
meta_def("#{key}_dir") { @directories[key] }
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def static_config_files(*arr)
|
36
|
+
arr.each do |file|
|
37
|
+
content=YAML.load_file(config_file(file))
|
38
|
+
meta_def(file) { content }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def dynamic_config_files(*arr)
|
43
|
+
arr.each do |file|
|
44
|
+
meta_def(file) { YAML.load_file(config_file(file)) }
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
alias_method :config_files, :dynamic_config_files
|
49
|
+
|
50
|
+
private
|
51
|
+
def first_directory(file, key=config_key)
|
52
|
+
self.directories[key].find { |directory|
|
53
|
+
File.exists?(File.join(directory, "#{file}#{yaml_extension}"))
|
54
|
+
} || (raise Errno::ENOENT, "No #{file}#{yaml_extension} in #{self.directories[key]}")
|
55
|
+
end
|
56
|
+
|
57
|
+
def config_file(file, key=config_key)
|
58
|
+
File.join(first_directory(file, key), "#{file}#{yaml_extension}")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
data/lib/meta.rb
ADDED
metadata
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: config_files
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.4
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Paul McKibbin
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-04-08 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: A configuration tool for using multiple configuration files with multiple
|
14
|
+
formats by presenting them as a hash.
|
15
|
+
email: pmckibbin@gmail.com
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- lib/config_files.rb
|
21
|
+
- lib/meta.rb
|
22
|
+
homepage: https://github.com/blackrat/config_files
|
23
|
+
licenses: []
|
24
|
+
metadata: {}
|
25
|
+
post_install_message:
|
26
|
+
rdoc_options: []
|
27
|
+
require_paths:
|
28
|
+
- lib
|
29
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ">="
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
requirements: []
|
40
|
+
rubyforge_project:
|
41
|
+
rubygems_version: 2.6.14
|
42
|
+
signing_key:
|
43
|
+
specification_version: 4
|
44
|
+
summary: Configuration File Manager
|
45
|
+
test_files: []
|