metadata_presenter 1.2.1 → 1.5.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.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/metadata_presenter/answers_controller.rb +31 -4
  3. data/app/models/metadata_presenter/component.rb +5 -1
  4. data/app/models/metadata_presenter/condition.rb +13 -0
  5. data/app/models/metadata_presenter/criteria.rb +25 -0
  6. data/app/models/metadata_presenter/evaluate_conditions.rb +29 -0
  7. data/app/models/metadata_presenter/file_uploader.rb +24 -0
  8. data/app/models/metadata_presenter/flow.rb +17 -0
  9. data/app/models/metadata_presenter/next_page.rb +53 -8
  10. data/app/models/metadata_presenter/offline_upload_adapter.rb +10 -0
  11. data/app/models/metadata_presenter/page.rb +4 -0
  12. data/app/models/metadata_presenter/page_answers.rb +2 -0
  13. data/app/models/metadata_presenter/service.rb +6 -0
  14. data/app/models/metadata_presenter/uploaded_file.rb +14 -0
  15. data/app/operators/metadata_presenter/base_operator.rb +20 -0
  16. data/app/operators/metadata_presenter/is_answered_operator.rb +7 -0
  17. data/app/operators/metadata_presenter/is_not_answered_operator.rb +7 -0
  18. data/app/operators/metadata_presenter/is_not_operator.rb +11 -0
  19. data/app/operators/metadata_presenter/is_operator.rb +11 -0
  20. data/app/operators/metadata_presenter/operator.rb +29 -0
  21. data/app/views/metadata_presenter/component/_upload.html.erb +1 -1
  22. data/config/initializers/inflections.rb +3 -0
  23. data/config/routes.rb +4 -1
  24. data/default_metadata/component/upload.json +1 -0
  25. data/fixtures/branching.json +883 -0
  26. data/lib/metadata_presenter/version.rb +1 -1
  27. data/lib/tasks/metadata_presenter_tasks.rake +52 -4
  28. metadata +17 -2
@@ -1,3 +1,3 @@
1
1
  module MetadataPresenter
2
- VERSION = '1.2.1'.freeze
2
+ VERSION = '1.5.0'.freeze
3
3
  end
@@ -1,4 +1,52 @@
1
- # desc "Explaining what the task does"
2
- # task :metadata_presenter do
3
- # # Task goes here
4
- # end
1
+ require 'metadata_presenter/test_helpers'
2
+
3
+ namespace :metadata do
4
+ include MetadataPresenter::TestHelpers
5
+
6
+ desc 'Represent the flow objects in human readable form'
7
+ task flow: :environment do
8
+ service = MetadataPresenter::Service.new(metadata_fixture('branching'))
9
+
10
+ start_page = service.start_page
11
+ flow = service.flow(start_page.uuid)
12
+ first_page = service.find_page_by_uuid(flow.default_next)
13
+
14
+ humanized_flow = {}
15
+
16
+ humanized_flow[start_page.url] = {
17
+ next: first_page.url
18
+ }
19
+
20
+ service.metadata['flow'].each do |id, _metadata|
21
+ flow = service.flow(id)
22
+
23
+ if flow.branch?
24
+ page = service.find_page_by_uuid(flow.default_next)
25
+ humanized_flow[page.url] = {
26
+ conditions: flow.conditions.map do |condition|
27
+ {
28
+ condition_type: condition.condition_type,
29
+ criterias: condition.criterias.map do |criteria|
30
+ criteria.service = service
31
+ {
32
+ operator: criteria.operator,
33
+ page: criteria.criteria_page.url,
34
+ component: criteria.criteria_component.humanised_title,
35
+ field: criteria.field_label
36
+ }
37
+ end
38
+ }
39
+ end
40
+ }
41
+ else
42
+ page = service.find_page_by_uuid(id)
43
+ next_page = service.find_page_by_uuid(flow.default_next)
44
+ if next_page
45
+ humanized_flow[page.url] = { next: next_page.url }
46
+ end
47
+ end
48
+ end
49
+
50
+ pp humanized_flow
51
+ end
52
+ 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: 1.2.1
4
+ version: 1.5.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-06-03 00:00:00.000000000 Z
11
+ date: 2021-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govuk_design_system_formbuilder
@@ -263,15 +263,28 @@ files:
263
263
  - app/helpers/metadata_presenter/default_text.rb
264
264
  - app/jobs/metadata_presenter/application_job.rb
265
265
  - app/models/metadata_presenter/component.rb
266
+ - app/models/metadata_presenter/condition.rb
267
+ - app/models/metadata_presenter/criteria.rb
266
268
  - app/models/metadata_presenter/date_field.rb
269
+ - app/models/metadata_presenter/evaluate_conditions.rb
270
+ - app/models/metadata_presenter/file_uploader.rb
271
+ - app/models/metadata_presenter/flow.rb
267
272
  - app/models/metadata_presenter/item.rb
268
273
  - app/models/metadata_presenter/meta.rb
269
274
  - app/models/metadata_presenter/meta_item.rb
270
275
  - app/models/metadata_presenter/metadata.rb
271
276
  - app/models/metadata_presenter/next_page.rb
277
+ - app/models/metadata_presenter/offline_upload_adapter.rb
272
278
  - app/models/metadata_presenter/page.rb
273
279
  - app/models/metadata_presenter/page_answers.rb
274
280
  - app/models/metadata_presenter/service.rb
281
+ - app/models/metadata_presenter/uploaded_file.rb
282
+ - app/operators/metadata_presenter/base_operator.rb
283
+ - app/operators/metadata_presenter/is_answered_operator.rb
284
+ - app/operators/metadata_presenter/is_not_answered_operator.rb
285
+ - app/operators/metadata_presenter/is_not_operator.rb
286
+ - app/operators/metadata_presenter/is_operator.rb
287
+ - app/operators/metadata_presenter/operator.rb
275
288
  - app/presenters/metadata_presenter/page_answers_presenter.rb
276
289
  - app/validators/metadata_presenter/accept_validator.rb
277
290
  - app/validators/metadata_presenter/base_validator.rb
@@ -313,6 +326,7 @@ files:
313
326
  - app/views/metadata_presenter/page/start.html.erb
314
327
  - config/initializers/default_metadata.rb
315
328
  - config/initializers/default_text.rb
329
+ - config/initializers/inflections.rb
316
330
  - config/initializers/page_components.rb
317
331
  - config/initializers/schemas.rb
318
332
  - config/routes.rb
@@ -345,6 +359,7 @@ files:
345
359
  - default_metadata/string/error.required.json
346
360
  - default_metadata/string/error.virus_scan.json
347
361
  - default_text/content.json
362
+ - fixtures/branching.json
348
363
  - fixtures/invalid_content_page.json
349
364
  - fixtures/no_component_page.json
350
365
  - fixtures/non_finished_service.json