env_vars_validator 1.0.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 +7 -0
- data/lib/env_vars_validator.rb +35 -0
- metadata +46 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c20bbd02d1f894106bff87d637ac8ba78cc33db7
|
4
|
+
data.tar.gz: a7a904f4281f25e9cca35a3afca7a41d62a67377
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c41c87847848963125251b7da1e2a536721c1f33e5291f59e2738563fa51ac96ca51e043f61193a849a0270709d65e3d9efdd2f09cca58109a8c7a1647040e32
|
7
|
+
data.tar.gz: 260e8ec317068ed009247e1de1cce12543797b5eb9665a02ab9ea7f8959113f31eec62972817264f77248e0b2a2fa48a7f506a2ec37d142b9a30682cee7c20e8
|
@@ -0,0 +1,35 @@
|
|
1
|
+
class EnvVarsValidator
|
2
|
+
@@last_error = nil
|
3
|
+
|
4
|
+
def self.last_error
|
5
|
+
@@last_error
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.source_from_ruby_files(starting_dir)
|
9
|
+
Dir.glob(File.join(starting_dir, '**', '*.rb')).
|
10
|
+
reject { |file_path| file_path.include?('vendor') }.
|
11
|
+
map { |file_path| File.read(file_path) }.
|
12
|
+
join("\n")
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.used_env_vars(starting_dir)
|
16
|
+
source_from_ruby_files(starting_dir).
|
17
|
+
scan(/ENV\[(?:'|")([^\]]+)(?:'|")\]/).
|
18
|
+
flatten.
|
19
|
+
uniq.
|
20
|
+
sort
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.validate(starting_dir)
|
24
|
+
declared_env_vars = ENV.keys
|
25
|
+
|
26
|
+
missing_env_vars = used_env_vars(starting_dir) - declared_env_vars
|
27
|
+
|
28
|
+
unless missing_env_vars.empty?
|
29
|
+
@@last_error = "The following env vars are required and have not been defined:\n #{missing_env_vars.sort.join("\n ")}"
|
30
|
+
return false
|
31
|
+
end
|
32
|
+
|
33
|
+
true
|
34
|
+
end
|
35
|
+
end
|
metadata
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: env_vars_validator
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jedidiah Hurt
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-03-14 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Greps all Ruby files below the given starting_dir for usage of the ENV
|
14
|
+
hash to ensure that any ENV vars used have been defined.
|
15
|
+
email: j@falset.to
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- lib/env_vars_validator.rb
|
21
|
+
homepage: https://github.com/kad3nce/env_vars_validator
|
22
|
+
licenses:
|
23
|
+
- MIT
|
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.2.2
|
42
|
+
signing_key:
|
43
|
+
specification_version: 4
|
44
|
+
summary: Validate that all used ENV vars are defined
|
45
|
+
test_files: []
|
46
|
+
has_rdoc:
|