Class: Kitsune::Kit::Plan

Inherits:
Object
  • Object
show all
Defined in:
lib/kitsune/kit/plan.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(environment:, changes:) ⇒ Plan

Returns a new instance of Plan.



45
46
47
# File 'lib/kitsune/kit/plan.rb', line 45

def initialize(environment:, changes:)
  super(environment: environment.to_s, changes: changes.freeze)
end

Class Method Details

.from_h(environment:, changes:) ⇒ Object



67
68
69
# File 'lib/kitsune/kit/plan.rb', line 67

def self.from_h(environment:, changes:)
  new(environment: environment, changes: changes.map { |change| Change.from_h(change) })
end

Instance Method Details

#changed?Boolean

Returns:

  • (Boolean)


49
# File 'lib/kitsune/kit/plan.rb', line 49

def changed? = changes.any?(&:changed?)

#changed_countObject



51
# File 'lib/kitsune/kit/plan.rb', line 51

def changed_count = changes.count(&:changed?)

#countsObject



53
54
55
# File 'lib/kitsune/kit/plan.rb', line 53

def counts
  changes.each_with_object(Hash.new(0)) { |change, total| total[change.action] += 1 }
end

#destructive?Boolean

Returns:

  • (Boolean)


50
# File 'lib/kitsune/kit/plan.rb', line 50

def destructive? = changes.any?(&:destructive)

#to_hObject



57
58
59
60
61
62
63
64
65
# File 'lib/kitsune/kit/plan.rb', line 57

def to_h
  {
    environment: environment,
    changed: changed?,
    destructive: destructive?,
    counts: counts,
    changes: changes.map(&:to_h)
  }
end