the-gipper 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: []