metadata_presenter 0.7.1 → 0.8.0

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: b189562f676341b0c9b1d6ad3e06eb514e7563d43273bb5397a27871bba72d3b
4
- data.tar.gz: 65fbe4941dfca36471ce0e4349f932d0209fa7abef0155416b4e855fd54fa568
3
+ metadata.gz: 066133455b4cf94730e5bebe20ac439262cacd2128e3004d988035e822efc818
4
+ data.tar.gz: c4513e4dc197c1730ba538b2fc50f1c5302ad70c5a31d3377cb0a23f581fae33
5
5
  SHA512:
6
- metadata.gz: 8c872d7137b780e33cfa485e6d6d7dbd6647e7eaf48fea01d94003faede70531d22caf02867d8bdea634ff43b1f7878fee1ac060855d16b3db27bc9e8de7eea0
7
- data.tar.gz: 517418f03929151d2dfbc420e1fec644903bf4b72cbda01f2a3d1f4fe2192d433dbda1799ed73ef664791c0be36c5dc2c92e346085de6087d48e3eecf917c794
6
+ metadata.gz: 6a83357fac7381b7191f9c46edf93f4090be55e40491e06427f108430e5ee4069cc5d797da46d32f289d7785e05a02ae2808059eb7bf470b113bdbf56caf4b91
7
+ data.tar.gz: 31760a4dcedb66f45ac8be4bb93882d8278d58fcccf686f734dbf3dc0a762c09608cd54bf20718220ae2b8d0c7e3b47bd546a3f2edb9bf53aa30fe9e19703ca3
@@ -62,6 +62,12 @@ module MetadataPresenter
62
62
  message % error_message_hash if message.present?
63
63
  end
64
64
 
65
+ # @return [String] user answer for the specific component
66
+ #
67
+ def user_answer
68
+ answers[component.name]
69
+ end
70
+
65
71
  # The default error message will be look using the schema key.
66
72
  # Assuming the schema key is 'grogu' then the default message
67
73
  # will look for 'error.grogu.value'.
@@ -1,7 +1,7 @@
1
1
  module MetadataPresenter
2
2
  class MaxLengthValidator < BaseValidator
3
3
  def invalid_answer?
4
- answers[component.name].to_s.size > component.validation[schema_key]
4
+ user_answer.to_s.size > component.validation[schema_key]
5
5
  end
6
6
  end
7
7
  end
@@ -1,7 +1,7 @@
1
1
  module MetadataPresenter
2
2
  class MinLengthValidator < BaseValidator
3
3
  def invalid_answer?
4
- answers[component.name].to_s.size < component.validation[schema_key]
4
+ user_answer.to_s.size < component.validation[schema_key]
5
5
  end
6
6
  end
7
7
  end
@@ -0,0 +1,7 @@
1
+ module MetadataPresenter
2
+ class NumberValidator < BaseValidator
3
+ def invalid_answer?
4
+ Float(user_answer, exception: false).blank?
5
+ end
6
+ end
7
+ end
@@ -1,7 +1,7 @@
1
1
  module MetadataPresenter
2
2
  class RequiredValidator < BaseValidator
3
3
  def invalid_answer?
4
- answers[component.name].blank?
4
+ user_answer.blank?
5
5
  end
6
6
  end
7
7
  end
@@ -0,0 +1,8 @@
1
+ <%=
2
+ f.govuk_text_field component.id.to_sym,
3
+ label: { text: component.label },
4
+ hint: { text: component.hint },
5
+ name: "answers[#{component.name}]",
6
+ value: answer(component.name),
7
+ width: component.width_class_input.to_i
8
+ %>
@@ -0,0 +1,12 @@
1
+ {
2
+ "_id": "component.number",
3
+ "_type": "number",
4
+ "errors": {},
5
+ "hint": "Component hint",
6
+ "label": "Component label",
7
+ "name": "component-name",
8
+ "width_class_input": "10",
9
+ "validation": {
10
+ "number": true
11
+ }
12
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "_id": "error.number",
3
+ "_type": "string.error",
4
+ "description": "Input (number) is not a number",
5
+ "value": "Enter a number for %{control}"
6
+ }
@@ -124,6 +124,28 @@
124
124
  "heading": "Parent name",
125
125
  "url": "/parent-name"
126
126
  },
127
+ {
128
+ "_id": "page.your_age",
129
+ "url": "your-age",
130
+ "_type":"page.singlequestion",
131
+ "_uuid":"59d1326c-32e6-45e9-b57a-bcc8e2fb6b2c",
132
+ "heading":"Your age",
133
+ "components": [
134
+ {
135
+ "_id": "your_age_number_1",
136
+ "hint": "Component hint",
137
+ "name": "your_age_number_1",
138
+ "_type": "number",
139
+ "label": "Your age",
140
+ "errors": {},
141
+ "validation": {
142
+ "required": true,
143
+ "number": true
144
+ },
145
+ "width_class_input": "10"
146
+ }
147
+ ]
148
+ },
127
149
  {
128
150
  "_uuid": "7b748584-100e-4d81-a54a-5049190136cc",
129
151
  "_id": "page.family_hobbies",
@@ -1,3 +1,3 @@
1
1
  module MetadataPresenter
2
- VERSION = '0.7.1'
2
+ VERSION = '0.8.0'
3
3
  end
@@ -0,0 +1,29 @@
1
+ {
2
+ "$id": "http://gov.uk/schema/v1.0.0/number",
3
+ "_name": "component.number",
4
+ "title": "Number",
5
+ "description": "Let users enter a number",
6
+ "type": "object",
7
+ "properties": {
8
+ "_type": {
9
+ "const": "number"
10
+ },
11
+ "name": {
12
+ "inputType": "number"
13
+ },
14
+ "width_class_input": {
15
+ "default": "10"
16
+ }
17
+ },
18
+ "allOf": [
19
+ {
20
+ "$ref": "definition.field"
21
+ },
22
+ {
23
+ "$ref": "validations#/definitions/number_bundle"
24
+ },
25
+ {
26
+ "$ref": "definition.width_class.input"
27
+ }
28
+ ]
29
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metadata_presenter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - MoJ Online
@@ -240,11 +240,13 @@ files:
240
240
  - app/validators/metadata_presenter/base_validator.rb
241
241
  - app/validators/metadata_presenter/max_length_validator.rb
242
242
  - app/validators/metadata_presenter/min_length_validator.rb
243
+ - app/validators/metadata_presenter/number_validator.rb
243
244
  - app/validators/metadata_presenter/required_validator.rb
244
245
  - app/validators/metadata_presenter/validate_answers.rb
245
246
  - app/validators/metadata_presenter/validate_schema.rb
246
247
  - app/views/errors/404.html
247
248
  - app/views/layouts/metadata_presenter/application.html.erb
249
+ - app/views/metadata_presenter/component/_number.html.erb
248
250
  - app/views/metadata_presenter/component/_text.html.erb
249
251
  - app/views/metadata_presenter/component/_textarea.html.erb
250
252
  - app/views/metadata_presenter/header/show.html.erb
@@ -256,6 +258,7 @@ files:
256
258
  - config/initializers/default_metadata.rb
257
259
  - config/initializers/schemas.rb
258
260
  - config/routes.rb
261
+ - default_metadata/component/number.json
259
262
  - default_metadata/component/text.json
260
263
  - default_metadata/component/textarea.json
261
264
  - default_metadata/config/meta.json
@@ -267,6 +270,7 @@ files:
267
270
  - default_metadata/service/base.json
268
271
  - default_metadata/string/error.max_length.json
269
272
  - default_metadata/string/error.min_length.json
273
+ - default_metadata/string/error.number.json
270
274
  - default_metadata/string/error.required.json
271
275
  - fixtures/non_finished_service.json
272
276
  - fixtures/service.json
@@ -276,6 +280,7 @@ files:
276
280
  - lib/metadata_presenter/test_helpers.rb
277
281
  - lib/metadata_presenter/version.rb
278
282
  - lib/tasks/metadata_presenter_tasks.rake
283
+ - schemas/component/number.json
279
284
  - schemas/component/text.json
280
285
  - schemas/component/textarea.json
281
286
  - schemas/condition/condition.json