diff --git a/lib/content_block_tools/presenters/base_presenter.rb b/lib/content_block_tools/presenters/base_presenter.rb index d2c9180..a7bb60b 100644 --- a/lib/content_block_tools/presenters/base_presenter.rb +++ b/lib/content_block_tools/presenters/base_presenter.rb @@ -29,12 +29,15 @@ def render content_block: "", document_type: content_block.document_type, content_id: content_block.content_id, + field_names: field_names.to_s, }, ) end private + attr_reader :content_block + # The default representation of the content block - this can be overridden in a subclass # by overriding the content, default_content or content_for_fields methods # @@ -57,14 +60,12 @@ def content_for_fields end def field_names - embed_code_match = ContentBlockReference::EMBED_REGEX.match(@content_block.embed_code) + embed_code_match = ContentBlockReference::EMBED_REGEX.match(content_block.embed_code) if embed_code_match.present? all_fields = embed_code_match[4]&.reverse&.chomp("/")&.reverse all_fields&.split("/")&.map(&:to_sym) end end - - attr_reader :content_block end end end diff --git a/spec/content_block_tools/presenters/base_presenter_spec.rb b/spec/content_block_tools/presenters/base_presenter_spec.rb index 20ebb1f..6a7f1ae 100644 --- a/spec/content_block_tools/presenters/base_presenter_spec.rb +++ b/spec/content_block_tools/presenters/base_presenter_spec.rb @@ -18,7 +18,8 @@ class="content-embed content-embed__something" data-content-block="" data-document-type="something" - data-content-id="#{content_id}">My content block + data-content-id="#{content_id}" + data-field-names="">My content block HTML expect(presenter.render.squish).to eq(expected_html.squish) @@ -45,7 +46,8 @@ class="content-embed content-embed__something" data-content-block="" data-document-type="something" - data-content-id="#{content_id}">hello world + data-content-id="#{content_id}" + data-field-names="[:first_field, :second_field, :third_field]">hello world HTML expect(presenter.render.squish).to eq(expected_html.squish) @@ -72,7 +74,8 @@ class="content-embed content-embed__something" data-content-block="" data-document-type="something" - data-content-id="#{content_id}"> + data-content-id="#{content_id}" + data-field-names="[:first_field, :second_field, :fake_field]"> HTML expect(presenter.render.squish).to eq(expected_html.squish) diff --git a/spec/content_block_tools/presenters/email_address_presenter_spec.rb b/spec/content_block_tools/presenters/email_address_presenter_spec.rb index c827eaa..c8749c6 100644 --- a/spec/content_block_tools/presenters/email_address_presenter_spec.rb +++ b/spec/content_block_tools/presenters/email_address_presenter_spec.rb @@ -19,7 +19,8 @@ class="content-embed content-embed__something" data-content-block="" data-document-type="something" - data-content-id="#{content_id}">#{email_address} + data-content-id="#{content_id}" + data-field-names="">#{email_address} HTML expect(presenter.render.squish).to eq(expected_html.squish) diff --git a/spec/content_block_tools/presenters/postal_address_presenter_spec.rb b/spec/content_block_tools/presenters/postal_address_presenter_spec.rb index acd5dc3..af627b2 100644 --- a/spec/content_block_tools/presenters/postal_address_presenter_spec.rb +++ b/spec/content_block_tools/presenters/postal_address_presenter_spec.rb @@ -29,7 +29,8 @@ class="content-embed content-embed__something" data-content-block="" data-document-type="something" - data-content-id="#{content_id}">#{postal_html_string} + data-content-id="#{content_id}" + data-field-names="">#{postal_html_string} HTML expect(presenter.render.squish).to eq(expected_html.squish) @@ -63,7 +64,8 @@ class="content-embed content-embed__something" data-content-block="" data-document-type="something" - data-content-id="#{content_id}">Somewhereville + data-content-id="#{content_id}" + data-field-names="[:town_or_city]">Somewhereville HTML expect(presenter.render.squish).to eq(expected_html.squish) @@ -76,7 +78,8 @@ class="content-embed content-embed__something" data-content-block="" data-document-type="something" - data-content-id="#{content_id}"> + data-content-id="#{content_id}" + data-field-names="[:nothing]"> HTML expect(presenter.render.squish).to eq(expected_html.squish)