From 08736e0c5a83b14035ff5521803bf7ea565b3523 Mon Sep 17 00:00:00 2001 From: Erwan Thomas Date: Fri, 1 Sep 2023 16:29:51 +0200 Subject: [PATCH] Prefer Hash-based code_data --- lib/sheetah/headers.rb | 6 +++--- lib/sheetah/messaging/messages/duplicated_header.rb | 7 ++++++- lib/sheetah/messaging/messages/invalid_header.rb | 7 ++++++- lib/sheetah/messaging/messages/missing_column.rb | 7 ++++++- spec/sheetah/headers_spec.rb | 4 ++-- spec/sheetah/messaging/messages/duplicated_header_spec.rb | 2 +- spec/sheetah/messaging/messages/invalid_header_spec.rb | 2 +- spec/sheetah/messaging/messages/missing_column_spec.rb | 2 +- spec/sheetah_spec.rb | 8 ++++---- 9 files changed, 30 insertions(+), 15 deletions(-) diff --git a/lib/sheetah/headers.rb b/lib/sheetah/headers.rb index ddbfa4c..8d0b273 100644 --- a/lib/sheetah/headers.rb +++ b/lib/sheetah/headers.rb @@ -55,7 +55,7 @@ def result missing_columns.each do |column| @messenger.error( - Messaging::Messages::MissingColumn.new(code_data: column.header) + Messaging::Messages::MissingColumn.new(code_data: { value: column.header }) ) end end @@ -75,7 +75,7 @@ def add_ensure_column_is_specified(header, column) unless @specification.ignore_unspecified_columns? @failure = true @messenger.error( - Messaging::Messages::InvalidHeader.new(code_data: header.value) + Messaging::Messages::InvalidHeader.new(code_data: { value: header.value }) ) end @@ -87,7 +87,7 @@ def add_ensure_column_is_unique(header, column) @failure = true @messenger.error( - Messaging::Messages::DuplicatedHeader.new(code_data: header.value) + Messaging::Messages::DuplicatedHeader.new(code_data: { value: header.value }) ) false diff --git a/lib/sheetah/messaging/messages/duplicated_header.rb b/lib/sheetah/messaging/messages/duplicated_header.rb index 500abe0..1a4f6e8 100644 --- a/lib/sheetah/messaging/messages/duplicated_header.rb +++ b/lib/sheetah/messaging/messages/duplicated_header.rb @@ -12,7 +12,12 @@ class DuplicatedHeader < Message col def validate_code_data(message) - message.code_data.is_a?(String) + case message.code_data + in { value: String } + true + else + false + end end end end diff --git a/lib/sheetah/messaging/messages/invalid_header.rb b/lib/sheetah/messaging/messages/invalid_header.rb index d454c95..e6961c6 100644 --- a/lib/sheetah/messaging/messages/invalid_header.rb +++ b/lib/sheetah/messaging/messages/invalid_header.rb @@ -12,7 +12,12 @@ class InvalidHeader < Message col def validate_code_data(message) - message.code_data.is_a?(String) + case message.code_data + in { value: String } + true + else + false + end end end end diff --git a/lib/sheetah/messaging/messages/missing_column.rb b/lib/sheetah/messaging/messages/missing_column.rb index 2104bda..a560040 100644 --- a/lib/sheetah/messaging/messages/missing_column.rb +++ b/lib/sheetah/messaging/messages/missing_column.rb @@ -12,7 +12,12 @@ class MissingColumn < Message sheet def validate_code_data(message) - message.code_data.is_a?(String) + case message.code_data + in { value: String } + true + else + false + end end end end diff --git a/spec/sheetah/headers_spec.rb b/spec/sheetah/headers_spec.rb index e47bf50..1f98954 100644 --- a/spec/sheetah/headers_spec.rb +++ b/spec/sheetah/headers_spec.rb @@ -98,7 +98,7 @@ def stub_specification(column_by_header) be_a(Sheetah::Messaging::Message) & have_attributes( severity: "ERROR", code: "invalid_header", - code_data: sheet_headers[4].value, + code_data: { value: sheet_headers[4].value }, scope: "COL", scope_data: { col: sheet_headers[4].col } ) @@ -122,7 +122,7 @@ def stub_specification(column_by_header) be_a(Sheetah::Messaging::Message) & have_attributes( severity: "ERROR", code: "duplicated_header", - code_data: sheet_headers[1].value, + code_data: { value: sheet_headers[1].value }, scope: "COL", scope_data: { col: sheet_headers[1].col } ) diff --git a/spec/sheetah/messaging/messages/duplicated_header_spec.rb b/spec/sheetah/messaging/messages/duplicated_header_spec.rb index 89faad7..6b0b78d 100644 --- a/spec/sheetah/messaging/messages/duplicated_header_spec.rb +++ b/spec/sheetah/messaging/messages/duplicated_header_spec.rb @@ -10,7 +10,7 @@ it "may be valid" do msg = described_class.new( code: "duplicated_header", - code_data: "header_foo", + code_data: { value: "header_foo" }, scope: "COL", scope_data: { col: "FOO" }, validatable: true diff --git a/spec/sheetah/messaging/messages/invalid_header_spec.rb b/spec/sheetah/messaging/messages/invalid_header_spec.rb index 045579a..e1e6802 100644 --- a/spec/sheetah/messaging/messages/invalid_header_spec.rb +++ b/spec/sheetah/messaging/messages/invalid_header_spec.rb @@ -10,7 +10,7 @@ it "may be valid" do msg = described_class.new( code: "invalid_header", - code_data: "header_foo", + code_data: { value: "header_foo" }, scope: "COL", scope_data: { col: "FOO" }, validatable: true diff --git a/spec/sheetah/messaging/messages/missing_column_spec.rb b/spec/sheetah/messaging/messages/missing_column_spec.rb index 39d431a..341dd0e 100644 --- a/spec/sheetah/messaging/messages/missing_column_spec.rb +++ b/spec/sheetah/messaging/messages/missing_column_spec.rb @@ -10,7 +10,7 @@ it "may be valid" do msg = described_class.new( code: "missing_column", - code_data: "header_foo", + code_data: { value: "header_foo" }, scope: "SHEET", scope_data: nil, validatable: true diff --git a/spec/sheetah_spec.rb b/spec/sheetah_spec.rb index e3afae3..21c5ce2 100644 --- a/spec/sheetah_spec.rb +++ b/spec/sheetah_spec.rb @@ -152,14 +152,14 @@ def process_to_a(*args, **opts) messages: contain_exactly( have_attributes( code: "invalid_header", - code_data: "oof", + code_data: { value: "oof" }, scope: Sheetah::Messaging::SCOPES::COL, scope_data: { col: "C" }, severity: Sheetah::Messaging::SEVERITIES::ERROR ), have_attributes( code: "invalid_header", - code_data: "rab", + code_data: { value: "rab" }, scope: Sheetah::Messaging::SCOPES::COL, scope_data: { col: "F" }, severity: Sheetah::Messaging::SEVERITIES::ERROR @@ -188,14 +188,14 @@ def process_to_a(*args, **opts) messages: contain_exactly( have_attributes( code: "missing_column", - code_data: "Foo", + code_data: { value: "Foo" }, scope: Sheetah::Messaging::SCOPES::SHEET, scope_data: nil, severity: Sheetah::Messaging::SEVERITIES::ERROR ), have_attributes( code: "missing_column", - code_data: "Bar 5", + code_data: { value: "Bar 5" }, scope: Sheetah::Messaging::SCOPES::SHEET, scope_data: nil, severity: Sheetah::Messaging::SEVERITIES::ERROR