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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/gipper.rb +87 -0
  3. 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: []