the-gipper 0.0.1
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/gipper.rb +87 -0
- metadata +44 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5d5e1e4073ed8161902d7f5273378af5ad664aa3
|
4
|
+
data.tar.gz: 3cb257dcee9db9e14554368c802a06e6c911310c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 47cda6db3527f6227df5717ac96daf60a6ca8216a72193d8373232098b8901fc742f0835a9c987ceac75746349971484861ed6811bec36534131ec4739362305
|
7
|
+
data.tar.gz: 25646f687fcd1e02debfb09e6cf88bee00d7a3c200d3b16e5271055405b327a449b671555612899968ddf027313e41cfb34098cad373be48191e2e96f740628a
|
data/lib/gipper.rb
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
require 'logger'
|
2
|
+
|
3
|
+
class Gipper
|
4
|
+
|
5
|
+
@@logger = nil
|
6
|
+
|
7
|
+
def initialize *args, &block
|
8
|
+
reset
|
9
|
+
envs = [] + args
|
10
|
+
|
11
|
+
envs.each do |e|
|
12
|
+
@env.merge! e
|
13
|
+
end
|
14
|
+
|
15
|
+
self.instance_eval &block
|
16
|
+
|
17
|
+
if !@errors.empty?
|
18
|
+
message = @errors.map{|k,v| "#{k} is #{v}"}.join(", ")[0..-1]
|
19
|
+
@@logger.error message if @@logger
|
20
|
+
raise GipperError, message
|
21
|
+
end
|
22
|
+
|
23
|
+
if !@warnings.empty?
|
24
|
+
@warnings.map{|k,v|
|
25
|
+
@@logger.warn "#{k} is #{v}"
|
26
|
+
} if @@logger
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def verify *fields
|
31
|
+
options = fields[fields.size].is_a?(Hash) ? fields.delete(fields.size) : nil
|
32
|
+
|
33
|
+
fields.each do |field|
|
34
|
+
unless check_field field
|
35
|
+
@errors[field] = "not set"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def trust *fields
|
41
|
+
options = fields[fields.size].is_a?(Hash) ? fields.delete(fields.size) : nil
|
42
|
+
|
43
|
+
fields.each do |field|
|
44
|
+
unless check_field field
|
45
|
+
@warnings[field] = "not set"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def check_field field
|
51
|
+
@env[field]
|
52
|
+
end
|
53
|
+
|
54
|
+
def reset
|
55
|
+
@env = ENV.to_h
|
56
|
+
@errors = {}
|
57
|
+
@warnings = {}
|
58
|
+
end
|
59
|
+
|
60
|
+
attr_accessor :logger
|
61
|
+
|
62
|
+
def env
|
63
|
+
@env
|
64
|
+
end
|
65
|
+
|
66
|
+
alias doveryai trust
|
67
|
+
alias proveryai verify
|
68
|
+
|
69
|
+
class << self
|
70
|
+
def logger=(logger=Logger.new(STDOUT))
|
71
|
+
@@logger=logger
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
class GipperError < StandardError
|
78
|
+
end
|
79
|
+
|
80
|
+
|
81
|
+
|
82
|
+
#def trust *fields
|
83
|
+
# options = fields[fields.size].is_a?(Hash) ? fields.delete(fields.size) : nil
|
84
|
+
|
85
|
+
# @@logger.warn ("'%s' field is not set" % field) unless @@env[field]
|
86
|
+
#end
|
87
|
+
|
metadata
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: the-gipper
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Trevor Grayson
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-06-06 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: ''
|
14
|
+
email: trevor@trevorgrayson.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/gipper.rb
|
20
|
+
homepage:
|
21
|
+
licenses:
|
22
|
+
- MIT
|
23
|
+
metadata: {}
|
24
|
+
post_install_message:
|
25
|
+
rdoc_options: []
|
26
|
+
require_paths:
|
27
|
+
- lib
|
28
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - ">="
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
requirements: []
|
39
|
+
rubyforge_project:
|
40
|
+
rubygems_version: 2.4.5
|
41
|
+
signing_key:
|
42
|
+
specification_version: 4
|
43
|
+
summary: Configuration Assurance
|
44
|
+
test_files: []
|