Class: Cutlass::EnvDiff
- Inherits:
-
Object
- Object
- Cutlass::EnvDiff
- Defined in:
- lib/cutlass/env_diff.rb
Overview
Diffs the environment
diff = EnvDiff.new
diff.changed? # => false
ENV["LOL"] = "rofl"
diff.changed? # => true
Instance Attribute Summary collapse
-
#before_env ⇒ Object
readonly
Returns the value of attribute before_env.
-
#env ⇒ Object
readonly
Returns the value of attribute env.
-
#skip_keys ⇒ Object
readonly
Returns the value of attribute skip_keys.
Instance Method Summary collapse
- #changed? ⇒ Boolean
- #env_keys ⇒ Object
-
#initialize(before_env: ENV.to_h.dup, skip_keys: [], env: ENV) ⇒ EnvDiff
constructor
A new instance of EnvDiff.
- #same? ⇒ Boolean
- #to_s ⇒ Object
Constructor Details
#initialize(before_env: ENV.to_h.dup, skip_keys: [], env: ENV) ⇒ EnvDiff
Returns a new instance of EnvDiff.
16 17 18 19 20 |
# File 'lib/cutlass/env_diff.rb', line 16 def initialize(before_env: ENV.to_h.dup, skip_keys: [], env: ENV) @env = env @before_env = before_env.freeze @skip_keys = skip_keys end |
Instance Attribute Details
#before_env ⇒ Object (readonly)
Returns the value of attribute before_env.
14 15 16 |
# File 'lib/cutlass/env_diff.rb', line 14 def before_env @before_env end |
#env ⇒ Object (readonly)
Returns the value of attribute env.
14 15 16 |
# File 'lib/cutlass/env_diff.rb', line 14 def env @env end |
#skip_keys ⇒ Object (readonly)
Returns the value of attribute skip_keys.
14 15 16 |
# File 'lib/cutlass/env_diff.rb', line 14 def skip_keys @skip_keys end |
Instance Method Details
#changed? ⇒ Boolean
34 35 36 37 38 |
# File 'lib/cutlass/env_diff.rb', line 34 def changed? env_keys.detect do |k| @env[k] != @before_env[k] end end |
#env_keys ⇒ Object
40 41 42 43 |
# File 'lib/cutlass/env_diff.rb', line 40 def env_keys keys = (@before_env.keys + @env.keys) - skip_keys keys.uniq end |
#same? ⇒ Boolean
30 31 32 |
# File 'lib/cutlass/env_diff.rb', line 30 def same? !changed? end |
#to_s ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/cutlass/env_diff.rb', line 22 def to_s env_keys.map do |k| next if @env[k] == @before_env[k] " ENV['#{k}'] changed from '#{@before_env[k]}' to '#{@env[k]}'" end.compact.join($/) end |