metadata_presenter 2.16.2 → 2.16.5

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: ee73fa8e7ee6915b954a8a58f136bed3332a9fbcfbb2ecd006cf97f9127d6ea4
4
- data.tar.gz: 8d85729879781b65bef1f480c1ac2592e43425392f04c9dee32aef83f3bd2a0f
3
+ metadata.gz: 70811b7dcebfe0ac13785d7ed31727608a70ebd8456f4bd142f0587149aaca63
4
+ data.tar.gz: 343e9eeac89db129ffef7ebc7cf26941bea96d3bea55956e6f140691e4c8da84
5
5
  SHA512:
6
- metadata.gz: 99ef1bda6a48e398dbb44c17fdb7d8a388f710a72f7e50d3b20ff6bceb4d90e7ffe0f266f49fe8df16e87400e5ff5a5e4c7230d12e43bbab252ad62cd7be82e0
7
- data.tar.gz: 4ab75d6e8c8f974fd0fdc164f2f4e4ecafee18401464170f5186851bb959ecae7611dd5fc69e1aca53ab5ece72dbfe9ab272c9b878dbe6d7d2871c08c045d6f1
6
+ metadata.gz: f99d6e22db36b85c63e0ffba62e669f7ec97154ed6ef569a949b523f329e1ef027448f9da54e98ef3a8148f9cf4987b593221729fc0f1ae4216135ca55ce02b1
7
+ data.tar.gz: 8bb5143caa40c516352afed3e5ec44b30986c3dbd40fb2ce038bcf8ad21380744c02f0216c4339bbddd77e3b9345cdd7e251c086a70dc3e8e9fa93f3bfe4a25a
@@ -1,4 +1,6 @@
1
1
  class MetadataPresenter::Component < MetadataPresenter::Metadata
2
+ VALIDATION_BUNDLES = { 'number' => 'number' }.freeze
3
+
2
4
  def to_partial_path
3
5
  "metadata_presenter/component/#{type}"
4
6
  end
@@ -30,4 +32,22 @@ class MetadataPresenter::Component < MetadataPresenter::Metadata
30
32
  def find_item_by_uuid(uuid)
31
33
  items.find { |item| item.uuid == uuid }
32
34
  end
35
+
36
+ def supported_validations
37
+ return [] if validation_bundle_key.nil?
38
+
39
+ JSON::Validator.schema_for_uri(validation_bundle_key)
40
+ .schema['properties']['validation']['properties']
41
+ .keys
42
+ end
43
+
44
+ private
45
+
46
+ def validation_bundle_key
47
+ @validation_bundle_key ||=
48
+ if type.in?(VALIDATION_BUNDLES.keys)
49
+ definition_bundle = VALIDATION_BUNDLES[type]
50
+ "validations.#{definition_bundle}_bundle"
51
+ end
52
+ end
33
53
  end
@@ -0,0 +1,7 @@
1
+ module MetadataPresenter
2
+ class MaximumValidator < BaseValidator
3
+ def invalid_answer?
4
+ Float(user_answer, exception: false) > Float(component.validation[schema_key], exception: false)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module MetadataPresenter
2
+ class MinimumValidator < BaseValidator
3
+ def invalid_answer?
4
+ Float(user_answer, exception: false) < Float(component.validation[schema_key], exception: false)
5
+ end
6
+ end
7
+ end
@@ -30,7 +30,6 @@
30
30
  </div>
31
31
  <%= render template: 'metadata_presenter/footer/footer' %>
32
32
 
33
- <%= javascript_pack_tag 'application' %>
34
33
  <%= javascript_pack_tag 'govuk' %>
35
34
  </body>
36
35
  </html>
@@ -1,5 +1,5 @@
1
1
  <div class="fb-main-grid-wrapper" data-fb-pagetype="<%= @page.type %>">
2
- <div class="govuk-panel govuk-panel--confirmation">
2
+ <div class="govuk-panel govuk-panel--confirmation govuk-grid-column-two-thirds">
3
3
  <h1 class="fb-editable govuk-panel__title"
4
4
  data-fb-content-type="element"
5
5
  data-fb-content-id="page[heading]">
@@ -7,7 +7,7 @@ default_metadata = Dir.glob("#{Rails.application.config.default_metadata_directo
7
7
  default_metadata.each do |metadata_file|
8
8
  metadata = JSON.parse(File.read(metadata_file))
9
9
 
10
- key = metadata['_id'] || metadata['_type']
10
+ key = metadata['_id'] || metadata['_type'] || "#{metadata_file.split('/')[-2]}.#{File.basename(metadata_file, '.*')}"
11
11
  Rails.logger.info(key)
12
12
 
13
13
  Rails.application.config.default_metadata[key] = metadata
@@ -8,6 +8,15 @@ schemas.each do |schema_file|
8
8
  Rails.logger.info(schema['_name'])
9
9
  jschema = JSON::Schema.new(schema, Addressable::URI.parse(schema['_name']))
10
10
  JSON::Validator.add_schema(jschema)
11
+
12
+ if schema.key?('definitions')
13
+ schema['definitions'].each do |key, definition|
14
+ definition_key = "#{schema['_name']}.#{key}"
15
+ Rails.logger.info(definition_key)
16
+ jschema = JSON::Schema.new(definition, Addressable::URI.parse(definition_key))
17
+ JSON::Validator.add_schema(jschema)
18
+ end
19
+ end
11
20
  end
12
21
 
13
22
  Rails.logger.info("Total loaded schemas => #{JSON::Validator.schemas.count}")
@@ -0,0 +1,6 @@
1
+ {
2
+ "_id": "error.maximum",
3
+ "_type": "string.error",
4
+ "description": "Input (number) is larger than the maximum allowed",
5
+ "value": "Enter a lower number for %{control}"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "_id": "error.minimum",
3
+ "_type": "string.error",
4
+ "description": "Input (number) is lower than the minimum allowed",
5
+ "value": "Enter a higher number for %{control}"
6
+ }
@@ -0,0 +1 @@
1
+ { "minimum": "0" }
@@ -1,3 +1,3 @@
1
1
  module MetadataPresenter
2
- VERSION = '2.16.2'.freeze
2
+ VERSION = '2.16.5'.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: 2.16.2
4
+ version: 2.16.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - MoJ Forms
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-22 00:00:00.000000000 Z
11
+ date: 2022-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govuk_design_system_formbuilder
@@ -28,14 +28,14 @@ dependencies:
28
28
  name: json-schema
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '='
32
32
  - !ruby/object:Gem::Version
33
33
  version: 2.8.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '='
39
39
  - !ruby/object:Gem::Version
40
40
  version: 2.8.1
41
41
  - !ruby/object:Gem::Dependency
@@ -317,7 +317,9 @@ files:
317
317
  - app/validators/metadata_presenter/email_validator.rb
318
318
  - app/validators/metadata_presenter/max_length_validator.rb
319
319
  - app/validators/metadata_presenter/max_size_validator.rb
320
+ - app/validators/metadata_presenter/maximum_validator.rb
320
321
  - app/validators/metadata_presenter/min_length_validator.rb
322
+ - app/validators/metadata_presenter/minimum_validator.rb
321
323
  - app/validators/metadata_presenter/number_validator.rb
322
324
  - app/validators/metadata_presenter/required_validator.rb
323
325
  - app/validators/metadata_presenter/upload_validator.rb
@@ -389,10 +391,13 @@ files:
389
391
  - default_metadata/string/error.email.json
390
392
  - default_metadata/string/error.max_length.json
391
393
  - default_metadata/string/error.max_size.json
394
+ - default_metadata/string/error.maximum.json
392
395
  - default_metadata/string/error.min_length.json
396
+ - default_metadata/string/error.minimum.json
393
397
  - default_metadata/string/error.number.json
394
398
  - default_metadata/string/error.required.json
395
399
  - default_metadata/string/error.virus_scan.json
400
+ - default_metadata/validations/minimum.json
396
401
  - default_text/content.json
397
402
  - fixtures/branching.json
398
403
  - fixtures/branching_10.json