Module: Sensu::Utilities
- Included in:
- Daemon
- Defined in:
- lib/sensu/utilities.rb
Instance Method Summary collapse
- #deep_merge(hash_one, hash_two) ⇒ Object
- #random_uuid ⇒ Object
- #redact_sensitive(hash, keys = nil) ⇒ Object
- #retry_until_true(wait = 0.5, &block) ⇒ Object
- #testing? ⇒ Boolean
Instance Method Details
#deep_merge(hash_one, hash_two) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/sensu/utilities.rb', line 19 def deep_merge(hash_one, hash_two) merged = hash_one.dup hash_two.each do |key, value| merged[key] = case when hash_one[key].is_a?(Hash) && value.is_a?(Hash) deep_merge(hash_one[key], value) when hash_one[key].is_a?(Array) && value.is_a?(Array) hash_one[key].concat(value).uniq else value end end merged end |
#random_uuid ⇒ Object
34 35 36 |
# File 'lib/sensu/utilities.rb', line 34 def random_uuid UUIDTools::UUID.random_create.to_s end |
#redact_sensitive(hash, keys = nil) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/sensu/utilities.rb', line 38 def redact_sensitive(hash, keys=nil) keys ||= %w[ password passwd pass api_key api_token access_key secret_key private_key secret ] hash = hash.dup hash.each do |key, value| if keys.include?(key.to_s) hash[key] = "REDACTED" elsif value.is_a?(Hash) hash[key] = redact_sensitive(value, keys) elsif value.is_a?(Array) hash[key] = value.map do |item| item.is_a?(Hash) ? redact_sensitive(item, keys) : item end end end hash end |
#retry_until_true(wait = 0.5, &block) ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/sensu/utilities.rb', line 11 def retry_until_true(wait=0.5, &block) EM::Timer.new(wait) do unless block.call retry_until_true(wait, &block) end end end |
#testing? ⇒ Boolean
7 8 9 |
# File 'lib/sensu/utilities.rb', line 7 def testing? File.basename($0) == 'rspec' end |