Class: Igniter::Extensions::Contracts::Creator::WriteStep

Inherits:
Object
  • Object
show all
Defined in:
lib/igniter/extensions/contracts/creator/write_step.rb

Constant Summary collapse

VALID_KINDS =
%i[directory file].freeze
VALID_STATUSES =
%i[pending created written skipped unchanged].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(kind:, relative_path:, absolute_path:, status:, reason: nil) ⇒ WriteStep

Returns a new instance of WriteStep.



13
14
15
16
17
18
19
20
# File 'lib/igniter/extensions/contracts/creator/write_step.rb', line 13

def initialize(kind:, relative_path:, absolute_path:, status:, reason: nil)
  @kind = normalize_kind(kind)
  @relative_path = relative_path.to_s
  @absolute_path = absolute_path.to_s
  @status = normalize_status(status)
  @reason = reason
  freeze
end

Instance Attribute Details

#absolute_pathObject (readonly)

Returns the value of attribute absolute_path.



11
12
13
# File 'lib/igniter/extensions/contracts/creator/write_step.rb', line 11

def absolute_path
  @absolute_path
end

#kindObject (readonly)

Returns the value of attribute kind.



11
12
13
# File 'lib/igniter/extensions/contracts/creator/write_step.rb', line 11

def kind
  @kind
end

#reasonObject (readonly)

Returns the value of attribute reason.



11
12
13
# File 'lib/igniter/extensions/contracts/creator/write_step.rb', line 11

def reason
  @reason
end

#relative_pathObject (readonly)

Returns the value of attribute relative_path.



11
12
13
# File 'lib/igniter/extensions/contracts/creator/write_step.rb', line 11

def relative_path
  @relative_path
end

#statusObject (readonly)

Returns the value of attribute status.



11
12
13
# File 'lib/igniter/extensions/contracts/creator/write_step.rb', line 11

def status
  @status
end

Instance Method Details

#actionable?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/igniter/extensions/contracts/creator/write_step.rb', line 22

def actionable?
  status == :pending
end

#skipped?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/igniter/extensions/contracts/creator/write_step.rb', line 30

def skipped?
  status == :skipped
end

#to_hObject



34
35
36
37
38
39
40
41
42
# File 'lib/igniter/extensions/contracts/creator/write_step.rb', line 34

def to_h
  {
    kind: kind,
    relative_path: relative_path,
    absolute_path: absolute_path,
    status: status,
    reason: reason
  }
end

#written?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/igniter/extensions/contracts/creator/write_step.rb', line 26

def written?
  %i[created written unchanged].include?(status)
end