metadata_presenter 0.7.1 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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