Class: RubyTerraform::Models::Change

Inherits:
Object
  • Object
show all
Includes:
ValueEquality
Defined in:
lib/ruby_terraform/models/change.rb

Instance Method Summary collapse

Methods included from ValueEquality

#==, #hash

Constructor Details

#initialize(content) ⇒ Change

Returns a new instance of Change.



11
12
13
# File 'lib/ruby_terraform/models/change.rb', line 11

def initialize(content)
  @content = symbolise_keys(content)
end

Instance Method Details

#actionsObject



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/ruby_terraform/models/change.rb', line 15

def actions
  @content[:actions].map do |action|
    {
      'no-op' => :no_op,
      'create' => :create,
      'read' => :read,
      'update' => :update,
      'delete' => :delete
    }[action]
  end
end

#afterObject



39
40
41
# File 'lib/ruby_terraform/models/change.rb', line 39

def after
  @content[:after]
end

#after_objectObject



51
52
53
54
55
56
57
# File 'lib/ruby_terraform/models/change.rb', line 51

def after_object
  Objects.box(
    after,
    unknown: after_unknown,
    sensitive: after_sensitive
  )
end

#after_sensitiveObject



47
48
49
# File 'lib/ruby_terraform/models/change.rb', line 47

def after_sensitive
  @content[:after_sensitive]
end

#after_unknownObject



43
44
45
# File 'lib/ruby_terraform/models/change.rb', line 43

def after_unknown
  @content[:after_unknown]
end

#beforeObject



27
28
29
# File 'lib/ruby_terraform/models/change.rb', line 27

def before
  @content[:before]
end

#before_objectObject



35
36
37
# File 'lib/ruby_terraform/models/change.rb', line 35

def before_object
  Objects.box(before, sensitive: before_sensitive)
end

#before_sensitiveObject



31
32
33
# File 'lib/ruby_terraform/models/change.rb', line 31

def before_sensitive
  @content[:before_sensitive]
end

#create?Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/ruby_terraform/models/change.rb', line 63

def create?
  actions == [:create]
end

#delete?Boolean

Returns:

  • (Boolean)


87
88
89
# File 'lib/ruby_terraform/models/change.rb', line 87

def delete?
  actions == [:delete]
end

#inspectObject



91
92
93
# File 'lib/ruby_terraform/models/change.rb', line 91

def inspect
  @content.inspect
end

#no_op?Boolean

Returns:

  • (Boolean)


59
60
61
# File 'lib/ruby_terraform/models/change.rb', line 59

def no_op?
  actions == [:no_op]
end

#read?Boolean

Returns:

  • (Boolean)


67
68
69
# File 'lib/ruby_terraform/models/change.rb', line 67

def read?
  actions == [:read]
end

#replace?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/ruby_terraform/models/change.rb', line 83

def replace?
  replace_delete_before_create? || replace_create_before_delete?
end

#replace_create_before_delete?Boolean

Returns:

  • (Boolean)


79
80
81
# File 'lib/ruby_terraform/models/change.rb', line 79

def replace_create_before_delete?
  actions == i[create delete]
end

#replace_delete_before_create?Boolean

Returns:

  • (Boolean)


75
76
77
# File 'lib/ruby_terraform/models/change.rb', line 75

def replace_delete_before_create?
  actions == i[delete create]
end

#stateObject



99
100
101
# File 'lib/ruby_terraform/models/change.rb', line 99

def state
  [@content]
end

#to_hObject



95
96
97
# File 'lib/ruby_terraform/models/change.rb', line 95

def to_h
  @content
end

#update?Boolean

Returns:

  • (Boolean)


71
72
73
# File 'lib/ruby_terraform/models/change.rb', line 71

def update?
  actions == [:update]
end