mu-ruby 0.1.0 → 0.2.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/mu/logger.rb +32 -2
  3. data/lib/mu/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8f0ec48050129702f841631856f087e9ed43a400
4
- data.tar.gz: 3d8d6b2b0203ca56f1a1e1595841d3bb115a9467
3
+ metadata.gz: 4df10b9b7c093567fcdf462dc90e18c4252a27f8
4
+ data.tar.gz: 30c0f7df1ed69d97a927e34f3b67ffe24d962720
5
5
  SHA512:
6
- metadata.gz: 17064e9306c060115a9f0868073aefba580fcc7fb3e52101c82e0895b358670dee8292653eb28628dd229d169f6b2339ed1bdb847137e585a0ce0010d5333af3
7
- data.tar.gz: e1fff4414f7edf36b71da219d39c99d64d60779c9899fd6d392d8adf99cf3879a9f3e096d5125cee1e01cfe1fd9317c06ce3d5840a1621c295d0dd6b817238cf
6
+ metadata.gz: e2828804707e577896042d734f1c8c5bb0e23d54127f58be4097ca842aa13b45e23d99d477dec9e1f5022f531aeee8687e3a3eb13b67b2d504b7b5edc48e8a86
7
+ data.tar.gz: c8a0194f847623942c5048dcf4580f8ea9a04c896342b53ebab2bc2ef8d2fe9d11f1c627d2dff5ab065b02c00be5a0190f9e70c98f8af65eaa3e5b174c8511c2
data/lib/mu/logger.rb CHANGED
@@ -32,8 +32,24 @@ module Mu
32
32
  RubyCompatibleLogger.new(event, @logger)
33
33
  end
34
34
 
35
+ def mask(key)
36
+ key = case key
37
+ when String
38
+ /#{key}/
39
+ when Symbol
40
+ /#{key.to_s}/
41
+ when Regexp
42
+ key
43
+ end
44
+ mask_keys << key
45
+ end
46
+
35
47
  private
36
48
 
49
+ def mask_keys
50
+ @mask_keys ||= []
51
+ end
52
+
37
53
  def create_logger(args)
38
54
  return ::Logger.new(STDOUT) if args.empty? # Default to STDOUT
39
55
  return args[0] if logger?(args[0])
@@ -67,10 +83,10 @@ module Mu
67
83
  raise
68
84
  ensure
69
85
  extra['duration'] = (now - t0)
70
- @logger.send(method, prefix_and_flatten_hash(extra))
86
+ @logger.send(method, enrich_log_data(extra))
71
87
  end
72
88
  else
73
- @logger.send(method, prefix_and_flatten_hash(extra))
89
+ @logger.send(method, enrich_log_data(extra))
74
90
  end
75
91
  end
76
92
 
@@ -82,6 +98,20 @@ module Mu
82
98
  Time.now.to_f * 1000
83
99
  end
84
100
 
101
+ def enrich_log_data(data)
102
+ data = mask_values(data)
103
+ prefix_and_flatten_hash(data)
104
+ end
105
+
106
+ def mask_values(data)
107
+ data.each { |k, v| data[k] = v.gsub(/./, '#') if should_mask?(k)}
108
+ end
109
+
110
+ def should_mask?(key)
111
+ return false unless @mask_keys
112
+ @mask_keys.find {|maskable| key =~ maskable }
113
+ end
114
+
85
115
  MAX_NESTED_LEVELS = 7
86
116
 
87
117
  def prefix_and_flatten_hash(hash, prefix = '', level = 1)
data/lib/mu/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mu
2
- VERSION = '0.1.0'.freeze
2
+ VERSION = '0.2.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mu-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Pfister
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-09-23 00:00:00.000000000 Z
11
+ date: 2016-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv