Class: Kettle::Jem::FileWorkUnit

Inherits:
Object
  • Object
show all
Defined in:
lib/kettle/jem.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(relative_path:, operations:) ⇒ FileWorkUnit

Returns a new instance of FileWorkUnit.

Raises:

  • (ArgumentError)


1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
# File 'lib/kettle/jem.rb', line 1748

def initialize(relative_path:, operations:)
  @relative_path = relative_path.to_s
  @operations = Array(operations)
  raise ArgumentError, "File work unit requires at least one operation" if @operations.empty?

  mismatched_paths = @operations.reject { |operation| operation.relative_path == @relative_path }
  return if mismatched_paths.empty?

  paths = mismatched_paths.map(&:relative_path).uniq.join(", ")
  raise ArgumentError, "File work unit #{relative_path.inspect} cannot include operations for #{paths}"
end

Instance Attribute Details

#operationsObject (readonly)

Returns the value of attribute operations.



1746
1747
1748
# File 'lib/kettle/jem.rb', line 1746

def operations
  @operations
end

#relative_pathObject (readonly)

Returns the value of attribute relative_path.



1746
1747
1748
# File 'lib/kettle/jem.rb', line 1746

def relative_path
  @relative_path
end

Instance Method Details

#outcomeObject



1760
1761
1762
# File 'lib/kettle/jem.rb', line 1760

def outcome
  operations.last
end