Class: Igniter::Extensions::Contracts::Creator::WriteResult

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(root:, mode:, steps:) ⇒ WriteResult

Returns a new instance of WriteResult.



10
11
12
13
14
15
# File 'lib/igniter/extensions/contracts/creator/write_result.rb', line 10

def initialize(root:, mode:, steps:)
  @root = root
  @mode = mode.to_sym
  @steps = steps.freeze
  freeze
end

Instance Attribute Details

#modeObject (readonly)

Returns the value of attribute mode.



8
9
10
# File 'lib/igniter/extensions/contracts/creator/write_result.rb', line 8

def mode
  @mode
end

#rootObject (readonly)

Returns the value of attribute root.



8
9
10
# File 'lib/igniter/extensions/contracts/creator/write_result.rb', line 8

def root
  @root
end

#stepsObject (readonly)

Returns the value of attribute steps.



8
9
10
# File 'lib/igniter/extensions/contracts/creator/write_result.rb', line 8

def steps
  @steps
end

Instance Method Details

#directories_createdObject



25
26
27
# File 'lib/igniter/extensions/contracts/creator/write_result.rb', line 25

def directories_created
  steps.count { |step| step.kind == :directory && step.status == :created }
end

#files_skippedObject



21
22
23
# File 'lib/igniter/extensions/contracts/creator/write_result.rb', line 21

def files_skipped
  steps.count { |step| step.kind == :file && step.status == :skipped }
end

#files_writtenObject



17
18
19
# File 'lib/igniter/extensions/contracts/creator/write_result.rb', line 17

def files_written
  steps.count { |step| step.kind == :file && %i[written unchanged].include?(step.status) }
end

#success?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/igniter/extensions/contracts/creator/write_result.rb', line 29

def success?
  steps.none?(&:actionable?)
end

#to_hObject



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

def to_h
  {
    root: root,
    mode: mode,
    files_written: files_written,
    files_skipped: files_skipped,
    directories_created: directories_created,
    success: success?,
    steps: steps.map(&:to_h)
  }
end