diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 856ab10..012ce54 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -17,3 +17,7 @@ Style/Documentation: - 'lib/letter_opener_web.rb' - 'lib/letter_opener_web/delivery_method.rb' - 'lib/letter_opener_web/engine.rb' + +Metrics/ClassLength: + Exclude: + - 'app/models/letter_opener_web/letter.rb' diff --git a/CHANGELOG.md b/CHANGELOG.md index 440b01e..06c3a7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## [Unreleased](https://github.com/fgrehm/letter_opener_web/compare/v2.0.0...master) + + - Reliably strip Attachment links from the sidebar. [#132](https://github.com/fgrehm/letter_opener_web/pull/132) + ## [v2.0.0](https://github.com/fgrehm/letter_opener_web/compare/v1.4.1...v2.0.0) - Require Rails >= 5.2, run tests against Rails 6.1 [#113](https://github.com/fgrehm/letter_opener_web/pull/113) diff --git a/app/models/letter_opener_web/letter.rb b/app/models/letter_opener_web/letter.rb index f662672..6d30cba 100644 --- a/app/models/letter_opener_web/letter.rb +++ b/app/models/letter_opener_web/letter.rb @@ -81,10 +81,13 @@ def valid? def remove_attachments_link(headers) xml = REXML::Document.new(headers) - if xml.root.elements.size == 10 - xml.delete_element('//dd[last()]') - xml.delete_element('//dt[last()]') + label_element = xml.root.elements.find { |e| e.get_text&.value&.match?(/attachments:/i) } + + if label_element + xml.root.delete_element(label_element.next_element) # the list of attachments + xml.root.delete_element(label_element) end + xml.to_s end