metadata_presenter 3.4.9 → 3.4.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 44bda2eb44db91a61b8486fd71085510cfeb2442f73500c05d9b8c739a6bdc7b
4
- data.tar.gz: fa1ce1715342a69ec8015219dde8feacc5c89e07ae0f92e9bb6850e5cc3f2041
3
+ metadata.gz: 16c6a120a7bc4e66e2edab3d1a303d100c73f566adb55d921dbc89025262b590
4
+ data.tar.gz: 388908442477d54f6ab6af80938936c7ac48eee6a7f7b74998d71aab6f2f465e
5
5
  SHA512:
6
- metadata.gz: 1fd0c36ae20b3e99f383608b72172c7ae25cb6a8580d9bd8a61eaa7241f29133f0b6dbf5517e719183f581d9b592f598e8840674dc0eaaeaac546854d3d735c3
7
- data.tar.gz: 791af25da8dd6022e25ffcf1ae4fed2a79b2149ac1b53fecdb9b375d8e6f045ed33f0bf2cdbe955bc595d0226595e004520736f8b14d4e51dfed4201860caa0e
6
+ metadata.gz: b96724804dc1a34821537c278bc5264408cb92597889e0fde437795607b23a5934cada2a8ddeb97c5a1e4983eb549fb2912cc9cc7b0a6c4dff6311bc62dec9bd
7
+ data.tar.gz: aa348f238415662e6bfb884d5a89d33adb8e35a7991db94e669d96016e8d4dd886ecaed1edb8afca7370e2a8bbbaa9d4f62d4e6891caf1fab1f9eab3fe8e0b13
@@ -3,6 +3,7 @@ module MetadataPresenter
3
3
  extend ActiveModel::Translation
4
4
  include ActiveModel::Validations
5
5
  include ActionView::Helpers
6
+ include SpecialCharacterUnescaper
6
7
 
7
8
  DEFAULT_COUNTRY = 'United Kingdom'.freeze
8
9
  FIELDS = %w[
@@ -35,7 +36,7 @@ module MetadataPresenter
35
36
  end
36
37
 
37
38
  def conform(address_field)
38
- sanitize(address_field, tags: [], attributes: []).strip
39
+ unescape_special_characters(sanitize(address_field, tags: [], attributes: []).strip)
39
40
  end
40
41
  end
41
42
  end
@@ -3,6 +3,7 @@ module MetadataPresenter
3
3
  include ActiveModel::Model
4
4
  include ActiveModel::Validations
5
5
  include ActionView::Helpers
6
+ include SpecialCharacterUnescaper
6
7
  attr_reader :page, :answers, :uploaded_files, :autocomplete_items
7
8
  attr_accessor :count
8
9
 
@@ -37,7 +38,7 @@ module MetadataPresenter
37
38
  elsif component && component.type == 'address'
38
39
  address_answer(method_name.to_s)
39
40
  else
40
- sanitize(answers[method_name.to_s])
41
+ unescape_special_characters(sanitize(answers[method_name.to_s]))
41
42
  end
42
43
  end
43
44
 
@@ -0,0 +1,15 @@
1
+ module MetadataPresenter
2
+ module SpecialCharacterUnescaper
3
+ SPECIAL_CHARACTER_MAPPING = {
4
+ '&' => '&',
5
+ '\u0026' => '&',
6
+ '&lt;' => '<',
7
+ '&gt;' => '>'
8
+ }.freeze
9
+
10
+ def unescape_special_characters(text)
11
+ pattern = Regexp.union(SPECIAL_CHARACTER_MAPPING.keys)
12
+ text&.gsub(pattern) { |m| SPECIAL_CHARACTER_MAPPING[m] }
13
+ end
14
+ end
15
+ end
@@ -1,3 +1,3 @@
1
1
  module MetadataPresenter
2
- VERSION = '3.4.9'.freeze
2
+ VERSION = '3.4.10'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metadata_presenter
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.9
4
+ version: 3.4.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - MoJ Forms
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-08-21 00:00:00.000000000 Z
11
+ date: 2025-12-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govuk_design_system_formbuilder
@@ -363,6 +363,7 @@ files:
363
363
  - app/models/metadata_presenter/row_number.rb
364
364
  - app/models/metadata_presenter/saved_form.rb
365
365
  - app/models/metadata_presenter/service.rb
366
+ - app/models/metadata_presenter/special_character_unescaper.rb
366
367
  - app/models/metadata_presenter/traversed_pages.rb
367
368
  - app/models/metadata_presenter/uploaded_file.rb
368
369
  - app/operators/metadata_presenter/base_operator.rb