metadata_presenter 1.8.0 → 2.0.1

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.
@@ -1,3 +1,3 @@
1
1
  module MetadataPresenter
2
- VERSION = '1.8.0'.freeze
2
+ VERSION = '2.0.1'.freeze
3
3
  end
@@ -48,12 +48,12 @@ module MetadataPresenter
48
48
  flow_object = service.flow_object(id)
49
49
 
50
50
  if flow_object.branch?
51
- full_description = flow_object.conditions.map.each_with_index do |condition, _index|
52
- condition.criterias.map { |criteria|
53
- criteria.service = service
51
+ full_description = flow_object.conditionals.map.each_with_index do |conditional, _index|
52
+ conditional.expressions.map { |expression|
53
+ expression.service = service
54
54
 
55
- "#{criteria.criteria_component.humanised_title} #{criteria.operator} #{criteria.field_label}"
56
- }.join(" #{condition.condition_type} ")
55
+ "#{expression.expression_component.humanised_title} #{expression.operator} #{expression.field_label}"
56
+ }.join(" #{conditional.type} ")
57
57
  end
58
58
  nodes[id] = @graphviz.add_nodes(full_description.flatten.join(' / '))
59
59
  else
@@ -72,9 +72,9 @@ module MetadataPresenter
72
72
  if flow_object.branch?
73
73
  @graphviz.add_edges(current_node, node_next, label: 'Conditions are not met', labelfontsize: 8) if node_next
74
74
 
75
- flow_object.group_by_page.each do |page_uuid, _conditions|
76
- conditions_node = nodes[page_uuid]
77
- @graphviz.add_edges(current_node, conditions_node, label: 'Conditions are met', labelfontsize: 8) if conditions_node
75
+ flow_object.group_by_page.each do |page_uuid, _conditionals|
76
+ conditionals_node = nodes[page_uuid]
77
+ @graphviz.add_edges(current_node, conditionals_node, label: 'Conditions are met', labelfontsize: 8) if conditionals_node
78
78
  end
79
79
  elsif node_next
80
80
  @graphviz.add_edges(current_node, node_next)
@@ -44,40 +44,6 @@
44
44
  "content"
45
45
  ]
46
46
  },
47
- "steps_heading": {
48
- "title": "Steps heading",
49
- "description": "Name of section to use on step pages (if any)",
50
- "type": "string",
51
- "category": [
52
- "content"
53
- ]
54
- },
55
- "steps": {
56
- "title": "Steps",
57
- "description": "The ‘child’ pages that follow from this ‘parent’ page",
58
- "type": "array",
59
- "items": {
60
- "type": "string"
61
- }
62
- },
63
- "enable_steps": {
64
- "title": "Enable steps",
65
- "description": "Allow current page to have steps",
66
- "type": "boolean"
67
- },
68
- "show_steps": {
69
- "title": "Steps visibility",
70
- "category": [
71
- "logic"
72
- ],
73
- "description": "Whether to show or hide the page’s steps",
74
- "oneOf": [
75
- {
76
- "$ref": "definition.conditional.boolean"
77
- }
78
- ],
79
- "default": true
80
- },
81
47
  "nextPage": {
82
48
  "$ref": "definition.next_page"
83
49
  }
@@ -15,20 +15,20 @@
15
15
  "default": {
16
16
  "type": "string"
17
17
  },
18
- "conditions": {
19
- "$ref": "#/definitions/conditions"
18
+ "conditionals": {
19
+ "$ref": "#/definitions/conditionals"
20
20
  }
21
21
  }
22
22
  }
23
23
  },
24
24
  "additionalProperties": false,
25
25
  "definitions": {
26
- "conditions": {
26
+ "conditionals": {
27
27
  "type": "array",
28
28
  "items": {
29
29
  "type": "object",
30
30
  "properties": {
31
- "condition_type": {
31
+ "_type": {
32
32
  "type": "string",
33
33
  "enum": [
34
34
  "if",
@@ -39,13 +39,13 @@
39
39
  "next": {
40
40
  "type": "string"
41
41
  },
42
- "criterias": {
43
- "$ref": "#/definitions/criterias"
42
+ "expressions": {
43
+ "$ref": "#/definitions/expressions"
44
44
  }
45
45
  }
46
46
  }
47
47
  },
48
- "criterias": {
48
+ "expressions": {
49
49
  "type": "array",
50
50
  "items": {
51
51
  "type": "object",
@@ -15,9 +15,6 @@
15
15
  "title": "Before you start",
16
16
  "description": "A body of text that goes after the Start button"
17
17
  },
18
- "enable_steps": {
19
- "const": true
20
- },
21
18
  "components": {
22
19
  "accepts": [
23
20
  "content"
@@ -37,7 +34,6 @@
37
34
  ]
38
35
  },
39
36
  "required": [
40
- "heading",
41
- "steps"
37
+ "heading"
42
38
  ]
43
39
  }
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.8.0
4
+ version: 2.0.1
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-07-08 00:00:00.000000000 Z
11
+ date: 2021-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govuk_design_system_formbuilder
@@ -277,10 +277,10 @@ files:
277
277
  - app/helpers/metadata_presenter/default_text.rb
278
278
  - app/jobs/metadata_presenter/application_job.rb
279
279
  - app/models/metadata_presenter/component.rb
280
- - app/models/metadata_presenter/condition.rb
281
- - app/models/metadata_presenter/criteria.rb
280
+ - app/models/metadata_presenter/conditional.rb
282
281
  - app/models/metadata_presenter/date_field.rb
283
- - app/models/metadata_presenter/evaluate_conditions.rb
282
+ - app/models/metadata_presenter/evaluate_conditionals.rb
283
+ - app/models/metadata_presenter/expression.rb
284
284
  - app/models/metadata_presenter/file_uploader.rb
285
285
  - app/models/metadata_presenter/flow.rb
286
286
  - app/models/metadata_presenter/item.rb
@@ -359,8 +359,8 @@ files:
359
359
  - default_metadata/definition/checkbox.json
360
360
  - default_metadata/definition/radio.json
361
361
  - default_metadata/flow/branch.json
362
- - default_metadata/flow/condition.json
363
- - default_metadata/flow/criteria.json
362
+ - default_metadata/flow/conditional.json
363
+ - default_metadata/flow/expression.json
364
364
  - default_metadata/flow/page.json
365
365
  - default_metadata/page/checkanswers.json
366
366
  - default_metadata/page/confirmation.json
@@ -385,7 +385,9 @@ files:
385
385
  - fixtures/no_flow_service.json
386
386
  - fixtures/non_finished_service.json
387
387
  - fixtures/service.json
388
+ - fixtures/service_with_flow.json
388
389
  - fixtures/version.json
390
+ - fixtures/version_with_flow.json
389
391
  - lib/metadata_presenter.rb
390
392
  - lib/metadata_presenter/engine.rb
391
393
  - lib/metadata_presenter/test_helpers.rb
@@ -1,13 +0,0 @@
1
- module MetadataPresenter
2
- class Condition < MetadataPresenter::Metadata
3
- def ==(other)
4
- metadata.to_h.deep_symbolize_keys == other.metadata.to_h.deep_symbolize_keys
5
- end
6
-
7
- def criterias
8
- Array(metadata.criterias).map do |criteria|
9
- MetadataPresenter::Criteria.new(criteria)
10
- end
11
- end
12
- end
13
- end
@@ -1,25 +0,0 @@
1
- module MetadataPresenter
2
- class Criteria < MetadataPresenter::Metadata
3
- attr_accessor :service
4
-
5
- def ==(other)
6
- metadata == other.metadata
7
- end
8
-
9
- def criteria_page
10
- service.find_page_by_uuid(page)
11
- end
12
-
13
- def criteria_component
14
- criteria_page.find_component_by_uuid(component)
15
- end
16
-
17
- def criteria_field
18
- criteria_component.find_item_by_uuid(field)
19
- end
20
-
21
- def field_label
22
- criteria_field['label'] if criteria_field
23
- end
24
- end
25
- end
@@ -1,37 +0,0 @@
1
- module MetadataPresenter
2
- class EvaluateConditions
3
- include ActiveModel::Model
4
- attr_accessor :service, :flow, :user_data
5
-
6
- def page
7
- evaluated_page_uuid = page_uuid || flow.default_next
8
-
9
- service.find_page_by_uuid(evaluated_page_uuid)
10
- end
11
-
12
- def page_uuid
13
- @results ||= conditions.map do |condition|
14
- evaluated_criterias = condition.criterias.map do |criteria|
15
- criteria.service = service
16
-
17
- Operator.new(
18
- criteria.operator
19
- ).evaluate(
20
- criteria.field_label,
21
- user_data[criteria.criteria_component.id]
22
- )
23
- end
24
-
25
- if condition.condition_type == 'or' && evaluated_criterias.any?
26
- condition.next
27
- elsif evaluated_criterias.all?
28
- condition.next
29
- end
30
- end
31
-
32
- @results.flatten.compact.first
33
- end
34
-
35
- delegate :conditions, to: :flow
36
- end
37
- end
@@ -1,5 +0,0 @@
1
- {
2
- "condition_type": "",
3
- "next": "",
4
- "criterias": []
5
- }