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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 79790874d3e01606cda561899935a3161a7a018606ca7c2e1ea37e5675576b4e
4
- data.tar.gz: 27ae8bc8e77f8e6dd3ca586c14ee2e435c6af695f5924d0de5b44ad6c262e167
3
+ metadata.gz: d1b2ff20300f6b643a7c83f8885c640b375babed55cd30798ca079bbd67b0506
4
+ data.tar.gz: ba841ff80433e9ff917a2d006eca7a53f618193640815e7594415a8945003c57
5
5
  SHA512:
6
- metadata.gz: 571d8aa49dfbe9a66cacf7c92e2bd9b1817146c4d02b56003f737c0e1dbd385f702d59bdb952a76fccff5e97c3adf499183422297cd935d09a955e217917d702
7
- data.tar.gz: 5b8531e7ec4c675fe2ee9b547a677660712641ac0f634ec9ca023802bec0ab57b5a0f7e897684e378783bc4f0949124de6d19e605a3a687bca54de9201b688dc
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("spec/dummy/Rakefile", __dir__)
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
@@ -17,7 +17,7 @@ module MetadataPresenter
17
17
  private
18
18
 
19
19
  def not_found
20
- render template: 'errors/404', status: 404
20
+ render template: 'errors/404', status: :not_found
21
21
  end
22
22
 
23
23
  def redirect_to_page(url)
@@ -12,9 +12,9 @@ module MetadataPresenter
12
12
  # <%=m '# Some markdown' %>
13
13
  #
14
14
  def m(text)
15
- (Kramdown::Document.new(text).to_html).html_safe
15
+ Kramdown::Document.new(text).to_html.html_safe
16
16
  end
17
- alias to_markdown m
17
+ alias_method :to_markdown, :m
18
18
 
19
19
  def default_text(property)
20
20
  MetadataPresenter::DefaultText[property]
@@ -4,7 +4,7 @@ class MetadataPresenter::Component < MetadataPresenter::Metadata
4
4
  end
5
5
 
6
6
  def humanised_title
7
- self.label || self.legend
7
+ label || legend
8
8
  end
9
9
 
10
10
  def items
@@ -9,7 +9,9 @@ module MetadataPresenter
9
9
  end
10
10
 
11
11
  def present?
12
+ # rubocop:disable Rails/Present
12
13
  !blank?
14
+ # rubocop:enable Rails/Present
13
15
  end
14
16
 
15
17
  def blank?
@@ -9,8 +9,8 @@ class MetadataPresenter::Metadata
9
9
  @editor = editor
10
10
  end
11
11
 
12
- def to_json
13
- self.to_h.to_json
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, include_private = false)
24
+ def respond_to_missing?(method_name, _include_private = false)
25
25
  metadata.respond_to?(method_name)
26
26
  end
27
27
 
@@ -11,7 +11,7 @@ module MetadataPresenter
11
11
  end
12
12
 
13
13
  def editable_attributes
14
- self.to_h.reject { |k,_| k.in?([:_id, :_type, :steps]) }
14
+ to_h.reject { |k, _| k.in?(%i[_id _type steps]) }
15
15
  end
16
16
 
17
17
  def components
@@ -12,16 +12,14 @@ module MetadataPresenter
12
12
  ValidateAnswers.new(self, components: components).valid?
13
13
  end
14
14
 
15
- def components
16
- page.components
17
- end
15
+ delegate :components, to: :page
18
16
 
19
- def respond_to_missing?(method_name, include_private = false)
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, *args, &block)
24
- component = components.find { |component| component.id == method_name.to_s }
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.to_s}(#{segment})"]
43
+ answers["#{component_id}(#{segment})"]
46
44
  end
47
45
  end
48
46
 
@@ -1,6 +1,6 @@
1
1
  class MetadataPresenter::Service < MetadataPresenter::Metadata
2
2
  def pages
3
- @_pages ||= metadata.pages.map do |page|
3
+ @pages ||= metadata.pages.map do |page|
4
4
  MetadataPresenter::Page.new(page, editor: editor?)
5
5
  end
6
6
  end
@@ -1,10 +1,10 @@
1
1
  module MetadataPresenter
2
2
  class PageAnswersPresenter
3
- FIRST_ANSWER = 0.freeze
4
- NO_USER_INPUT = %w(page.checkanswers page.confirmation page.content).freeze
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 do |page|
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
- end.reject { |page| page.empty? }
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("<br>").html_safe
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 { |validator| validator.valid? }.all?
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 do |component|
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
- end.compact.flatten
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.new("Schema not found => #{schema_name}")
40
+ raise SchemaNotFoundError, "Schema not found => #{schema_name}"
41
41
  end
42
42
  end
43
43
  end
@@ -5,7 +5,7 @@ module MetadataPresenter
5
5
  end
6
6
 
7
7
  def fixtures_directory
8
- @_fixtures_directory ||=
8
+ @fixtures_directory ||=
9
9
  Pathname.new(MetadataPresenter::Engine.root.join('fixtures'))
10
10
  end
11
11
 
@@ -1,3 +1,3 @@
1
1
  module MetadataPresenter
2
- VERSION = '0.22.0'
2
+ VERSION = '0.23.0'.freeze
3
3
  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.22.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-30 00:00:00.000000000 Z
11
+ date: 2021-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
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: 6.0.3.4
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: 6.0.3.4
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: 6.2.0
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: govuk_design_system_formbuilder
56
+ name: rails
49
57
  requirement: !ruby/object:Gem::Requirement
50
58
  requirements:
51
59
  - - ">="
52
60
  - !ruby/object:Gem::Version
53
- version: 2.1.5
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: 2.1.5
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: json-schema
76
+ name: better_errors
63
77
  requirement: !ruby/object:Gem::Requirement
64
78
  requirements:
65
79
  - - ">="
66
80
  - !ruby/object:Gem::Version
67
- version: 2.8.1
68
- type: :runtime
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: 2.8.1
88
+ version: '0'
75
89
  - !ruby/object:Gem::Dependency
76
- name: sqlite3
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: byebug
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: rspec-rails
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: better_errors
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: binding_of_caller
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: site_prism
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: simplecov-console
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: yard
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: brakeman
230
+ name: yard
203
231
  requirement: !ruby/object:Gem::Requirement
204
232
  requirements:
205
233
  - - ">="