Class: Kitsune::Kit::Change

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

Constant Summary collapse

ACTIONS =
%w[create update delete no_change].freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resource:, action:, summary:, details: {}, destructive: false) ⇒ Change

Returns a new instance of Change.

Raises:

  • (ArgumentError)


8
9
10
11
12
13
14
15
16
17
18
# File 'lib/kitsune/kit/plan.rb', line 8

def initialize(resource:, action:, summary:, details: {}, destructive: false)
  raise ArgumentError, "unknown action: #{action}" unless ACTIONS.include?(action.to_s)

  super(
    resource: resource.to_s,
    action: action.to_s,
    summary: summary.to_s,
    details: details.freeze,
    destructive: !!destructive
  )
end

Class Method Details

.from_h(value) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/kitsune/kit/plan.rb', line 33

def self.from_h(value)
  new(
    resource: value.fetch("resource"),
    action: value.fetch("action"),
    summary: value.fetch("summary"),
    details: value.fetch("details", {}),
    destructive: value.fetch("destructive", false)
  )
end

Instance Method Details

#changed?Boolean

Returns:

  • (Boolean)


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

def changed? = action != "no_change"

#destructive?Boolean

Returns:

  • (Boolean)


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

def destructive? = destructive

#to_hObject



23
24
25
26
27
28
29
30
31
# File 'lib/kitsune/kit/plan.rb', line 23

def to_h
  {
    resource: resource,
    action: action,
    summary: summary,
    details: details,
    destructive: destructive
  }
end