metadata_presenter 0.22.0 → 0.23.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 +4 -4
- data/Rakefile +1 -1
- data/app/controllers/metadata_presenter/engine_controller.rb +1 -1
- data/app/helpers/metadata_presenter/application_helper.rb +2 -2
- data/app/models/metadata_presenter/component.rb +1 -1
- data/app/models/metadata_presenter/date_field.rb +2 -0
- data/app/models/metadata_presenter/metadata.rb +3 -3
- data/app/models/metadata_presenter/page.rb +1 -1
- data/app/models/metadata_presenter/page_answers.rb +5 -7
- data/app/models/metadata_presenter/service.rb +1 -1
- data/app/presenters/metadata_presenter/page_answers_presenter.rb +7 -5
- data/app/validators/metadata_presenter/validate_answers.rb +4 -4
- data/app/validators/metadata_presenter/validate_schema.rb +1 -1
- data/lib/metadata_presenter/test_helpers.rb +1 -1
- data/lib/metadata_presenter/version.rb +1 -1
- metadata +54 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1b2ff20300f6b643a7c83f8885c640b375babed55cd30798ca079bbd67b0506
|
4
|
+
data.tar.gz: ba841ff80433e9ff917a2d006eca7a53f618193640815e7594415a8945003c57
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1298d445703206b693fb9153255362433a4476bca5e982aac89a847c8a902013d066e729bdf645ba48fd0b5f4a780b972a94a14740b3db8ba55879439e6fd33f
|
7
|
+
data.tar.gz: 12439df97cda7c675df1f53ebb4151ebdfc64509c64ce08b466c9f16ed67b2f02fb06e9777458c5da37bfc27c54ad5f4368372f07c56292a624d2d36f24196ef
|
data/Rakefile
CHANGED
@@ -21,7 +21,7 @@ end
|
|
21
21
|
|
22
22
|
task default: :rspec
|
23
23
|
|
24
|
-
APP_RAKEFILE = File.expand_path(
|
24
|
+
APP_RAKEFILE = File.expand_path('spec/dummy/Rakefile', __dir__)
|
25
25
|
load 'rails/tasks/engine.rake'
|
26
26
|
load 'rails/tasks/statistics.rake'
|
27
27
|
Bundler::GemHelper.install_tasks
|
@@ -12,9 +12,9 @@ module MetadataPresenter
|
|
12
12
|
# <%=m '# Some markdown' %>
|
13
13
|
#
|
14
14
|
def m(text)
|
15
|
-
|
15
|
+
Kramdown::Document.new(text).to_html.html_safe
|
16
16
|
end
|
17
|
-
|
17
|
+
alias_method :to_markdown, :m
|
18
18
|
|
19
19
|
def default_text(property)
|
20
20
|
MetadataPresenter::DefaultText[property]
|
@@ -9,8 +9,8 @@ class MetadataPresenter::Metadata
|
|
9
9
|
@editor = editor
|
10
10
|
end
|
11
11
|
|
12
|
-
def to_json
|
13
|
-
|
12
|
+
def to_json(*_args)
|
13
|
+
to_h.to_json
|
14
14
|
end
|
15
15
|
|
16
16
|
def id
|
@@ -21,7 +21,7 @@ class MetadataPresenter::Metadata
|
|
21
21
|
metadata._type
|
22
22
|
end
|
23
23
|
|
24
|
-
def respond_to_missing?(method_name,
|
24
|
+
def respond_to_missing?(method_name, _include_private = false)
|
25
25
|
metadata.respond_to?(method_name)
|
26
26
|
end
|
27
27
|
|
@@ -12,16 +12,14 @@ module MetadataPresenter
|
|
12
12
|
ValidateAnswers.new(self, components: components).valid?
|
13
13
|
end
|
14
14
|
|
15
|
-
|
16
|
-
page.components
|
17
|
-
end
|
15
|
+
delegate :components, to: :page
|
18
16
|
|
19
|
-
def respond_to_missing?(method_name,
|
17
|
+
def respond_to_missing?(method_name, _include_private = false)
|
20
18
|
method_name.to_s.in?(components.map(&:id))
|
21
19
|
end
|
22
20
|
|
23
|
-
def method_missing(method_name, *
|
24
|
-
component = components.find { |
|
21
|
+
def method_missing(method_name, *_args)
|
22
|
+
component = components.find { |c| c.id == method_name.to_s }
|
25
23
|
|
26
24
|
if component && component.type == 'date'
|
27
25
|
date_answer(component.id)
|
@@ -42,7 +40,7 @@ module MetadataPresenter
|
|
42
40
|
GOVUKDesignSystemFormBuilder::Elements::Date::SEGMENTS[:month],
|
43
41
|
GOVUKDesignSystemFormBuilder::Elements::Date::SEGMENTS[:year]
|
44
42
|
].map do |segment|
|
45
|
-
answers["#{component_id
|
43
|
+
answers["#{component_id}(#{segment})"]
|
46
44
|
end
|
47
45
|
end
|
48
46
|
|
@@ -1,10 +1,10 @@
|
|
1
1
|
module MetadataPresenter
|
2
2
|
class PageAnswersPresenter
|
3
|
-
FIRST_ANSWER = 0
|
4
|
-
NO_USER_INPUT = %w
|
3
|
+
FIRST_ANSWER = 0
|
4
|
+
NO_USER_INPUT = %w[page.checkanswers page.confirmation page.content].freeze
|
5
5
|
|
6
6
|
def self.map(view:, pages:, answers:)
|
7
|
-
user_input_pages(pages).map
|
7
|
+
user_input_pages(pages).map { |page|
|
8
8
|
Array(page.components).map do |component|
|
9
9
|
new(
|
10
10
|
view: view,
|
@@ -13,7 +13,7 @@ module MetadataPresenter
|
|
13
13
|
answers: answers
|
14
14
|
)
|
15
15
|
end
|
16
|
-
|
16
|
+
}.reject(&:empty?)
|
17
17
|
end
|
18
18
|
|
19
19
|
def self.user_input_pages(pages)
|
@@ -21,6 +21,7 @@ module MetadataPresenter
|
|
21
21
|
end
|
22
22
|
|
23
23
|
attr_reader :view, :component, :page, :answers
|
24
|
+
|
24
25
|
delegate :url, to: :page
|
25
26
|
delegate :humanised_title, to: :component
|
26
27
|
|
@@ -37,6 +38,7 @@ module MetadataPresenter
|
|
37
38
|
value = @page_answers.send(component.id)
|
38
39
|
|
39
40
|
return '' if value.blank?
|
41
|
+
|
40
42
|
if self.class.private_method_defined?(component.type.to_sym)
|
41
43
|
send(component.type.to_sym, value)
|
42
44
|
else
|
@@ -62,7 +64,7 @@ module MetadataPresenter
|
|
62
64
|
end
|
63
65
|
|
64
66
|
def checkboxes(value)
|
65
|
-
value.join(
|
67
|
+
value.join('<br>').html_safe
|
66
68
|
end
|
67
69
|
end
|
68
70
|
end
|
@@ -8,7 +8,7 @@ module MetadataPresenter
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def valid?
|
11
|
-
validators.map
|
11
|
+
validators.map(&:valid?).all?
|
12
12
|
end
|
13
13
|
|
14
14
|
def invalid?
|
@@ -18,20 +18,20 @@ module MetadataPresenter
|
|
18
18
|
private
|
19
19
|
|
20
20
|
def validators
|
21
|
-
components.map
|
21
|
+
components.map { |component|
|
22
22
|
component_validations(component).map do |key|
|
23
23
|
"MetadataPresenter::#{key.classify}Validator".constantize.new(
|
24
24
|
page_answers: page_answers,
|
25
25
|
component: component
|
26
26
|
)
|
27
27
|
end
|
28
|
-
|
28
|
+
}.compact.flatten
|
29
29
|
end
|
30
30
|
|
31
31
|
def component_validations(component)
|
32
32
|
return [] if component.validation.blank?
|
33
33
|
|
34
|
-
component.validation.select { |_,value| value.present? }.keys
|
34
|
+
component.validation.select { |_, value| value.present? }.keys
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
@@ -37,7 +37,7 @@ class MetadataPresenter::ValidateSchema
|
|
37
37
|
JSON::Validator.add_schema(jschema)
|
38
38
|
JSON::Validator.schema_for_uri(schema_name).schema
|
39
39
|
rescue Errno::ENOENT
|
40
|
-
raise SchemaNotFoundError
|
40
|
+
raise SchemaNotFoundError, "Schema not found => #{schema_name}"
|
41
41
|
end
|
42
42
|
end
|
43
43
|
end
|
metadata
CHANGED
@@ -1,35 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metadata_presenter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MoJ Online
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-03-
|
11
|
+
date: 2021-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: govuk_design_system_formbuilder
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 6.2.0
|
19
|
+
version: 2.1.5
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
24
|
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
30
|
-
|
26
|
+
version: 2.1.5
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: json-schema
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
31
32
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
33
|
+
version: 2.8.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.8.1
|
33
41
|
- !ruby/object:Gem::Dependency
|
34
42
|
name: kramdown
|
35
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -45,35 +53,41 @@ dependencies:
|
|
45
53
|
- !ruby/object:Gem::Version
|
46
54
|
version: 2.3.0
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
56
|
+
name: rails
|
49
57
|
requirement: !ruby/object:Gem::Requirement
|
50
58
|
requirements:
|
51
59
|
- - ">="
|
52
60
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
61
|
+
version: 6.0.3.4
|
62
|
+
- - "<"
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: 6.2.0
|
54
65
|
type: :runtime
|
55
66
|
prerelease: false
|
56
67
|
version_requirements: !ruby/object:Gem::Requirement
|
57
68
|
requirements:
|
58
69
|
- - ">="
|
59
70
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
71
|
+
version: 6.0.3.4
|
72
|
+
- - "<"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 6.2.0
|
61
75
|
- !ruby/object:Gem::Dependency
|
62
|
-
name:
|
76
|
+
name: better_errors
|
63
77
|
requirement: !ruby/object:Gem::Requirement
|
64
78
|
requirements:
|
65
79
|
- - ">="
|
66
80
|
- !ruby/object:Gem::Version
|
67
|
-
version:
|
68
|
-
type: :
|
81
|
+
version: '0'
|
82
|
+
type: :development
|
69
83
|
prerelease: false
|
70
84
|
version_requirements: !ruby/object:Gem::Requirement
|
71
85
|
requirements:
|
72
86
|
- - ">="
|
73
87
|
- !ruby/object:Gem::Version
|
74
|
-
version:
|
88
|
+
version: '0'
|
75
89
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
90
|
+
name: binding_of_caller
|
77
91
|
requirement: !ruby/object:Gem::Requirement
|
78
92
|
requirements:
|
79
93
|
- - ">="
|
@@ -87,7 +101,7 @@ dependencies:
|
|
87
101
|
- !ruby/object:Gem::Version
|
88
102
|
version: '0'
|
89
103
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
104
|
+
name: brakeman
|
91
105
|
requirement: !ruby/object:Gem::Requirement
|
92
106
|
requirements:
|
93
107
|
- - ">="
|
@@ -101,7 +115,7 @@ dependencies:
|
|
101
115
|
- !ruby/object:Gem::Version
|
102
116
|
version: '0'
|
103
117
|
- !ruby/object:Gem::Dependency
|
104
|
-
name:
|
118
|
+
name: byebug
|
105
119
|
requirement: !ruby/object:Gem::Requirement
|
106
120
|
requirements:
|
107
121
|
- - ">="
|
@@ -115,7 +129,7 @@ dependencies:
|
|
115
129
|
- !ruby/object:Gem::Version
|
116
130
|
version: '0'
|
117
131
|
- !ruby/object:Gem::Dependency
|
118
|
-
name:
|
132
|
+
name: rspec-rails
|
119
133
|
requirement: !ruby/object:Gem::Requirement
|
120
134
|
requirements:
|
121
135
|
- - ">="
|
@@ -129,7 +143,21 @@ dependencies:
|
|
129
143
|
- !ruby/object:Gem::Version
|
130
144
|
version: '0'
|
131
145
|
- !ruby/object:Gem::Dependency
|
132
|
-
name:
|
146
|
+
name: rubocop
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - "~>"
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: 1.10.0
|
152
|
+
type: :development
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - "~>"
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: 1.10.0
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: rubocop-govuk
|
133
161
|
requirement: !ruby/object:Gem::Requirement
|
134
162
|
requirements:
|
135
163
|
- - ">="
|
@@ -157,7 +185,7 @@ dependencies:
|
|
157
185
|
- !ruby/object:Gem::Version
|
158
186
|
version: '0'
|
159
187
|
- !ruby/object:Gem::Dependency
|
160
|
-
name:
|
188
|
+
name: simplecov-console
|
161
189
|
requirement: !ruby/object:Gem::Requirement
|
162
190
|
requirements:
|
163
191
|
- - ">="
|
@@ -171,7 +199,7 @@ dependencies:
|
|
171
199
|
- !ruby/object:Gem::Version
|
172
200
|
version: '0'
|
173
201
|
- !ruby/object:Gem::Dependency
|
174
|
-
name:
|
202
|
+
name: site_prism
|
175
203
|
requirement: !ruby/object:Gem::Requirement
|
176
204
|
requirements:
|
177
205
|
- - ">="
|
@@ -185,7 +213,7 @@ dependencies:
|
|
185
213
|
- !ruby/object:Gem::Version
|
186
214
|
version: '0'
|
187
215
|
- !ruby/object:Gem::Dependency
|
188
|
-
name:
|
216
|
+
name: sqlite3
|
189
217
|
requirement: !ruby/object:Gem::Requirement
|
190
218
|
requirements:
|
191
219
|
- - ">="
|
@@ -199,7 +227,7 @@ dependencies:
|
|
199
227
|
- !ruby/object:Gem::Version
|
200
228
|
version: '0'
|
201
229
|
- !ruby/object:Gem::Dependency
|
202
|
-
name:
|
230
|
+
name: yard
|
203
231
|
requirement: !ruby/object:Gem::Requirement
|
204
232
|
requirements:
|
205
233
|
- - ">="
|