Class: Sheetah::Headers
- Inherits:
-
Object
- Object
- Sheetah::Headers
- Includes:
- Utils::MonadicResult
- Defined in:
- lib/sheetah/headers.rb
Defined Under Namespace
Classes: Header
Constant Summary
Constants included from Utils::MonadicResult
Instance Method Summary collapse
- #add(header) ⇒ Object
-
#initialize(specification:, messenger:) ⇒ Headers
constructor
A new instance of Headers.
- #result ⇒ Object
Methods included from Utils::MonadicResult
Constructor Details
#initialize(specification:, messenger:) ⇒ Headers
Returns a new instance of Headers.
31 32 33 34 35 36 37 |
# File 'lib/sheetah/headers.rb', line 31 def initialize(specification:, messenger:) @specification = specification @messenger = messenger @headers = [] @columns = Set.new @failure = false end |
Instance Method Details
#add(header) ⇒ Object
39 40 41 42 43 44 45 46 47 48 |
# File 'lib/sheetah/headers.rb', line 39 def add(header) @messenger.scope_col!(header.col) do column = @specification.get(header.value) return unless add_ensure_column_is_specified(header, column) return unless add_ensure_column_is_unique(header, column) @headers << Header.new(header, column) end end |
#result ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/sheetah/headers.rb', line 50 def result missing_columns = @specification.required_columns - @columns.to_a unless missing_columns.empty? @failure = true missing_columns.each do |column| @messenger.error( Messaging::Messages::MissingColumn.new(code_data: { value: column.header }) ) end end if @failure Failure() else Success(@headers) end end |