epb_view_models 2.2.20 → 2.2.21

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: 12b6b200213f5b8554c2ca59bf7009e96054443bc55728923a073a2cf7035e19
4
- data.tar.gz: 98c20d42aeccde049c24e2d79a89e1783b502269aa66e288733245522c5799d9
3
+ metadata.gz: b51e29596b157eeebfc686cd69b4376a928c5ba1942bc32765c749d2fa4cf4d9
4
+ data.tar.gz: 784b5e44bade9144169fb83ff1d2b5306f2760306a7771701db0bee110fab0fb
5
5
  SHA512:
6
- metadata.gz: de5b1752a7616c7128c3847bc5b73159f5e4121d7543906da0a50c9632400047069b6da351df1a10ded69335dc29f6474fa47bd84c04d623052d6b2731810b34
7
- data.tar.gz: 8abad0c5c220e0ae811b0b0e110eadae346767f32193dc0e8c1e22578731e1300eff575b1f8fee7bbec76bfee7c41beff94b224fcb93d6149cb492822f5d454b
6
+ metadata.gz: d1321d628ac3a2be04fbbc7662ebe31cbc4448cbafba89f19815d526d41a4d465ffe93af77cf520bcf31315aa508820113653b6b95d3c107390e86e4cd312fb1
7
+ data.tar.gz: 506a4862857dc92e36d9218160c7ada2637b6d57a7f9e167d8318f97fd60a3b9c29d4f0edbcef0a63bca287eb7ea9bba366f63d5a5393863250fdcd91858d000
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.4.7
1
+ 3.4.9
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- ruby ">= 3.3.4", "< 4.0"
3
+ ruby "3.4.9"
4
4
 
5
5
  source "https://rubygems.org"
6
6
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
- activesupport (8.1.2)
4
+ activesupport (8.1.3)
5
5
  base64
6
6
  bigdecimal
7
7
  concurrent-ruby (~> 1.0, >= 1.3.1)
@@ -16,34 +16,34 @@ GEM
16
16
  uri (>= 0.13.1)
17
17
  ast (2.4.3)
18
18
  base64 (0.3.0)
19
- bigdecimal (4.0.1)
20
- concurrent-ruby (1.3.6)
19
+ bigdecimal (4.1.2)
20
+ concurrent-ruby (1.3.8)
21
21
  connection_pool (3.0.2)
22
22
  diff-lcs (1.6.2)
23
23
  drb (2.2.3)
24
- i18n (1.14.8)
24
+ i18n (1.15.2)
25
25
  concurrent-ruby (~> 1.0)
26
- json (2.18.1)
27
- language_server-protocol (3.17.0.5)
26
+ json (2.21.1)
27
+ language_server-protocol (3.17.0.6)
28
28
  lint_roller (1.1.0)
29
29
  logger (1.7.0)
30
30
  mini_portile2 (2.8.9)
31
- minitest (6.0.2)
31
+ minitest (6.0.6)
32
32
  drb (~> 2.0)
33
33
  prism (~> 1.5)
34
- nokogiri (1.19.1)
34
+ nokogiri (1.19.4)
35
35
  mini_portile2 (~> 2.8.2)
36
36
  racc (~> 1.4)
37
- parallel (1.27.0)
38
- parser (3.3.10.2)
37
+ parallel (1.28.0)
38
+ parser (3.3.12.0)
39
39
  ast (~> 2.4.1)
40
40
  racc
41
41
  prism (1.9.0)
42
42
  racc (1.8.1)
43
- rack (3.2.5)
43
+ rack (3.2.6)
44
44
  rainbow (3.1.1)
45
45
  rake (13.0.6)
46
- regexp_parser (2.11.3)
46
+ regexp_parser (2.12.0)
47
47
  rexml (3.4.4)
48
48
  rspec (3.13.2)
49
49
  rspec-core (~> 3.13.0)
@@ -54,11 +54,11 @@ GEM
54
54
  rspec-expectations (3.13.5)
55
55
  diff-lcs (>= 1.2.0, < 2.0)
56
56
  rspec-support (~> 3.13.0)
57
- rspec-mocks (3.13.7)
57
+ rspec-mocks (3.13.8)
58
58
  diff-lcs (>= 1.2.0, < 2.0)
59
59
  rspec-support (~> 3.13.0)
60
60
  rspec-support (3.13.7)
61
- rubocop (1.82.1)
61
+ rubocop (1.86.0)
62
62
  json (~> 2.3)
63
63
  language_server-protocol (~> 3.17.0.2)
64
64
  lint_roller (~> 1.1.0)
@@ -66,18 +66,18 @@ GEM
66
66
  parser (>= 3.3.0.2)
67
67
  rainbow (>= 2.2.2, < 4.0)
68
68
  regexp_parser (>= 2.9.3, < 3.0)
69
- rubocop-ast (>= 1.48.0, < 2.0)
69
+ rubocop-ast (>= 1.49.0, < 2.0)
70
70
  ruby-progressbar (~> 1.7)
71
71
  unicode-display_width (>= 2.4.0, < 4.0)
72
- rubocop-ast (1.49.0)
72
+ rubocop-ast (1.49.1)
73
73
  parser (>= 3.3.7.2)
74
74
  prism (~> 1.7)
75
75
  rubocop-capybara (2.22.1)
76
76
  lint_roller (~> 1.1)
77
77
  rubocop (~> 1.72, >= 1.72.1)
78
- rubocop-govuk (5.2.0)
79
- rubocop (= 1.82.1)
80
- rubocop-ast (= 1.49.0)
78
+ rubocop-govuk (5.2.1)
79
+ rubocop (= 1.86.0)
80
+ rubocop-ast (= 1.49.1)
81
81
  rubocop-capybara (= 2.22.1)
82
82
  rubocop-rails (= 2.34.3)
83
83
  rubocop-rake (= 0.7.1)
@@ -102,7 +102,7 @@ GEM
102
102
  unicode-emoji (~> 4.1)
103
103
  unicode-emoji (4.2.0)
104
104
  uri (1.1.1)
105
- zeitwerk (2.7.5)
105
+ zeitwerk (2.8.2)
106
106
 
107
107
  PLATFORMS
108
108
  ruby
@@ -116,7 +116,7 @@ DEPENDENCIES
116
116
  zeitwerk (~> 2.6)
117
117
 
118
118
  RUBY VERSION
119
- ruby 3.3.4p94
119
+ ruby 3.4.9p82
120
120
 
121
121
  BUNDLED WITH
122
122
  2.3.15
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.summary = "Library used to parse Energy Performance Certificates (EPC)"
11
11
  spec.homepage = "https://github.com/communitiesuk/epb-view-models"
12
12
  spec.license = "MIT"
13
- spec.required_ruby_version = ">= 3.1"
13
+ spec.required_ruby_version = ">= 3.4"
14
14
 
15
15
  # Specify which files should be added to the gem when it is released.
16
16
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = %w[lib]
23
23
 
24
- spec.add_dependency "nokogiri", "~> 1.16"
24
+ spec.add_dependency "nokogiri", "~> 1.18"
25
+ spec.add_dependency "rexml", "~> 3.3"
25
26
  spec.add_dependency "zeitwerk", "~> 2.6"
26
27
  end
@@ -5,7 +5,7 @@ loader = Zeitwerk::Loader.for_gem(warn_on_extra_files: false)
5
5
  loader.setup
6
6
 
7
7
  module EpbViewModels
8
- VERSION = "2.2.20"
8
+ VERSION = "2.2.21"
9
9
  end
10
10
 
11
11
  # Monkey patching to avoid using ActiveRecord::Type::Boolean.new.cast
@@ -103,11 +103,11 @@ module ViewModel
103
103
  @xml_doc
104
104
  .search("Recommendations-Report RR-Recommendations/#{payback}")
105
105
  .map do |node|
106
- {
107
- code: node.at("Recommendation-Code").content,
108
- text: node.at("Recommendation").content,
109
- cO2Impact: node.at("CO2-Impact").content,
110
- }
106
+ {
107
+ code: node.at("Recommendation-Code").content,
108
+ text: node.at("Recommendation").content,
109
+ cO2Impact: node.at("CO2-Impact").content,
110
+ }
111
111
  end
112
112
  end
113
113
  end
@@ -103,11 +103,11 @@ module ViewModel
103
103
  @xml_doc
104
104
  .search("Recommendations-Report RR-Recommendations/#{payback}")
105
105
  .map do |node|
106
- {
107
- code: node.at("Recommendation-Code").content,
108
- text: node.at("Recommendation").content,
109
- cO2Impact: node.at("CO2-Impact").content,
110
- }
106
+ {
107
+ code: node.at("Recommendation-Code").content,
108
+ text: node.at("Recommendation").content,
109
+ cO2Impact: node.at("CO2-Impact").content,
110
+ }
111
111
  end
112
112
  end
113
113
  end
@@ -204,7 +204,7 @@ module ViewModel
204
204
  end
205
205
 
206
206
  def total_energy_savings
207
- xpath(%w[Total-Emission-Savings])
207
+ xpath(%w[Total-Energy-Savings])
208
208
  end
209
209
  end
210
210
  end
@@ -523,14 +523,14 @@ module ViewModel
523
523
  @xml_doc
524
524
  .search("Suggested-Improvements Improvement")
525
525
  .map do |node|
526
- improvement_code = xpath(%w[Improvement-Details Improvement-Number], node)
527
- {
528
- sequence: xpath(%w[Sequence], node).to_i,
529
- improvement_code: xpath(%w[Improvement-Details Improvement-Number], node),
530
- improvement_summary: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-17.3", improvement_number: improvement_code).summary : xpath(%w[Improvement-Summary], node),
531
- improvement_description: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-17.3", improvement_number: improvement_code).description : xpath(%w[Improvement-Description], node),
532
- indicative_cost: xpath(%w[Indicative-Cost], node),
533
- }
526
+ improvement_code = xpath(%w[Improvement-Details Improvement-Number], node)
527
+ {
528
+ sequence: xpath(%w[Sequence], node).to_i,
529
+ improvement_code: xpath(%w[Improvement-Details Improvement-Number], node),
530
+ improvement_summary: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-17.3", improvement_number: improvement_code).summary : xpath(%w[Improvement-Summary], node),
531
+ improvement_description: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-17.3", improvement_number: improvement_code).description : xpath(%w[Improvement-Description], node),
532
+ indicative_cost: xpath(%w[Indicative-Cost], node),
533
+ }
534
534
  end
535
535
  end
536
536
  end
@@ -523,14 +523,14 @@ module ViewModel
523
523
  @xml_doc
524
524
  .search("Suggested-Improvements Improvement")
525
525
  .map do |node|
526
- improvement_code = xpath(%w[Improvement-Details Improvement-Number], node)
527
- {
528
- sequence: xpath(%w[Sequence], node).to_i,
529
- improvement_code: xpath(%w[Improvement-Details Improvement-Number], node),
530
- improvement_summary: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-17.4", improvement_number: improvement_code).summary : xpath(%w[Improvement-Summary], node),
531
- improvement_description: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-17.4", improvement_number: improvement_code).description : xpath(%w[Improvement-Description], node),
532
- indicative_cost: xpath(%w[Indicative-Cost], node),
533
- }
526
+ improvement_code = xpath(%w[Improvement-Details Improvement-Number], node)
527
+ {
528
+ sequence: xpath(%w[Sequence], node).to_i,
529
+ improvement_code: xpath(%w[Improvement-Details Improvement-Number], node),
530
+ improvement_summary: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-17.4", improvement_number: improvement_code).summary : xpath(%w[Improvement-Summary], node),
531
+ improvement_description: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-17.4", improvement_number: improvement_code).description : xpath(%w[Improvement-Description], node),
532
+ indicative_cost: xpath(%w[Indicative-Cost], node),
533
+ }
534
534
  end
535
535
  end
536
536
  end
@@ -523,14 +523,14 @@ module ViewModel
523
523
  @xml_doc
524
524
  .search("Suggested-Improvements Improvement")
525
525
  .map do |node|
526
- improvement_code = xpath(%w[Improvement-Details Improvement-Number], node)
527
- {
528
- sequence: xpath(%w[Sequence], node).to_i,
529
- improvement_code: xpath(%w[Improvement-Details Improvement-Number], node),
530
- improvement_summary: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-18.0", improvement_number: improvement_code).summary : xpath(%w[Improvement-Summary], node),
531
- improvement_description: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-18.0", improvement_number: improvement_code).description : xpath(%w[Improvement-Description], node),
532
- indicative_cost: xpath(%w[Indicative-Cost], node),
533
- }
526
+ improvement_code = xpath(%w[Improvement-Details Improvement-Number], node)
527
+ {
528
+ sequence: xpath(%w[Sequence], node).to_i,
529
+ improvement_code: xpath(%w[Improvement-Details Improvement-Number], node),
530
+ improvement_summary: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-18.0", improvement_number: improvement_code).summary : xpath(%w[Improvement-Summary], node),
531
+ improvement_description: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-18.0", improvement_number: improvement_code).description : xpath(%w[Improvement-Description], node),
532
+ indicative_cost: xpath(%w[Indicative-Cost], node),
533
+ }
534
534
  end
535
535
  end
536
536
  end
@@ -523,14 +523,14 @@ module ViewModel
523
523
  @xml_doc
524
524
  .search("Suggested-Improvements Improvement")
525
525
  .map do |node|
526
- improvement_code = xpath(%w[Improvement-Details Improvement-Number], node)
527
- {
528
- sequence: xpath(%w[Sequence], node).to_i,
529
- improvement_code: xpath(%w[Improvement-Details Improvement-Number], node),
530
- improvement_summary: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-19.0", improvement_number: improvement_code).summary : xpath(%w[Improvement-Summary], node),
531
- improvement_description: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-19.0", improvement_number: improvement_code).description : xpath(%w[Improvement-Description], node),
532
- indicative_cost: xpath(%w[Indicative-Cost], node),
533
- }
526
+ improvement_code = xpath(%w[Improvement-Details Improvement-Number], node)
527
+ {
528
+ sequence: xpath(%w[Sequence], node).to_i,
529
+ improvement_code: xpath(%w[Improvement-Details Improvement-Number], node),
530
+ improvement_summary: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-19.0", improvement_number: improvement_code).summary : xpath(%w[Improvement-Summary], node),
531
+ improvement_description: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-19.0", improvement_number: improvement_code).description : xpath(%w[Improvement-Description], node),
532
+ indicative_cost: xpath(%w[Indicative-Cost], node),
533
+ }
534
534
  end
535
535
  end
536
536
  end
@@ -578,14 +578,14 @@ module ViewModel
578
578
  @xml_doc
579
579
  .search("Suggested-Improvements Improvement")
580
580
  .map do |node|
581
- improvement_code = xpath(%w[Improvement-Details Improvement-Number], node)
582
- {
583
- sequence: xpath(%w[Sequence], node).to_i,
584
- improvement_code: xpath(%w[Improvement-Details Improvement-Number], node),
585
- improvement_summary: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-20.0.0", improvement_number: improvement_code).summary : xpath(%w[Improvement-Summary], node),
586
- improvement_description: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-20.0.0", improvement_number: improvement_code).description : xpath(%w[Improvement-Description], node),
587
- indicative_cost: xpath(%w[Indicative-Cost], node),
588
- }
581
+ improvement_code = xpath(%w[Improvement-Details Improvement-Number], node)
582
+ {
583
+ sequence: xpath(%w[Sequence], node).to_i,
584
+ improvement_code: xpath(%w[Improvement-Details Improvement-Number], node),
585
+ improvement_summary: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-20.0.0", improvement_number: improvement_code).summary : xpath(%w[Improvement-Summary], node),
586
+ improvement_description: improvement_code ? accessor.fetch_details(schema_version: "RdSAP-Schema-NI-20.0.0", improvement_number: improvement_code).description : xpath(%w[Improvement-Description], node),
587
+ indicative_cost: xpath(%w[Indicative-Cost], node),
588
+ }
589
589
  end
590
590
  end
591
591
  end
@@ -543,7 +543,7 @@ module ViewModel
543
543
  @xml_doc
544
544
  .search("SAP-Building-Part")
545
545
  .map do |node|
546
- xpath(%w[Party-Wall-Construction], node)
546
+ xpath(%w[Party-Wall-Construction], node)
547
547
  end
548
548
  end
549
549
 
@@ -551,16 +551,16 @@ module ViewModel
551
551
  @xml_doc
552
552
  .search("SAP-Building-Part")
553
553
  .map do |node|
554
- {
555
- alternative_wall_thickness: node.at_xpath("SAP-Alternative-Wall/Wall-Thickness")&.content,
556
- alternative_wall_thickness_measured: node.at_xpath("SAP-Alternative-Wall/Wall-Thickness-Measured")&.content,
557
- alternative_wall_construction: node.at_xpath("SAP-Alternative-Wall/Wall-Construction")&.content,
558
- alternative_wall_u_value: node.at_xpath("SAP-Alternative-Wall/Wall-U-Value")&.content,
559
- alternative_wall_insulation_thickness: node.at_xpath("SAP-Alternative-Wall/Wall-Insulation-Thickness")&.content,
560
- wall_thickness: node.at_xpath("Wall-Thickness")&.content,
561
- wall_construction: node.at_xpath("Wall-Construction")&.content,
562
- wall_thickness_measured: node.at_xpath("Wall-Thickness-Measured")&.content,
563
- }
554
+ {
555
+ alternative_wall_thickness: node.at_xpath("SAP-Alternative-Wall/Wall-Thickness")&.content,
556
+ alternative_wall_thickness_measured: node.at_xpath("SAP-Alternative-Wall/Wall-Thickness-Measured")&.content,
557
+ alternative_wall_construction: node.at_xpath("SAP-Alternative-Wall/Wall-Construction")&.content,
558
+ alternative_wall_u_value: node.at_xpath("SAP-Alternative-Wall/Wall-U-Value")&.content,
559
+ alternative_wall_insulation_thickness: node.at_xpath("SAP-Alternative-Wall/Wall-Insulation-Thickness")&.content,
560
+ wall_thickness: node.at_xpath("Wall-Thickness")&.content,
561
+ wall_construction: node.at_xpath("Wall-Construction")&.content,
562
+ wall_thickness_measured: node.at_xpath("Wall-Thickness-Measured")&.content,
563
+ }
564
564
  end
565
565
  end
566
566
 
@@ -568,10 +568,10 @@ module ViewModel
568
568
  @xml_doc
569
569
  .search("SAP-Building-Part")
570
570
  .map do |node|
571
- {
572
- roof_insulation_location: node.at_xpath("Roof-Insulation-Location")&.content,
573
- roof_construction: node.at_xpath("Roof-Construction")&.content,
574
- }
571
+ {
572
+ roof_insulation_location: node.at_xpath("Roof-Insulation-Location")&.content,
573
+ roof_construction: node.at_xpath("Roof-Construction")&.content,
574
+ }
575
575
  end
576
576
  end
577
577
 
@@ -579,7 +579,7 @@ module ViewModel
579
579
  @xml_doc
580
580
  .search("SAP-Building-Part")
581
581
  .map do |_node|
582
- xpath(%w[SAP-Room-In-Roof Insulation])
582
+ xpath(%w[SAP-Room-In-Roof Insulation])
583
583
  end
584
584
  end
585
585
 
@@ -587,10 +587,10 @@ module ViewModel
587
587
  @xml_doc
588
588
  .search("SAP-Building-Part")
589
589
  .map do |node|
590
- {
591
- floor_u_value: node.at_xpath("Floor-U-Value")&.content,
592
- floor_insulation_thickness: node.at_xpath("Floor-Insulation-Thickness")&.content,
593
- }
590
+ {
591
+ floor_u_value: node.at_xpath("Floor-U-Value")&.content,
592
+ floor_insulation_thickness: node.at_xpath("Floor-Insulation-Thickness")&.content,
593
+ }
594
594
  end
595
595
  end
596
596
 
@@ -598,13 +598,13 @@ module ViewModel
598
598
  @xml_doc
599
599
  .search("SAP-Building-Part")
600
600
  .map do |node|
601
- {
602
- roof_u_value: node.at_xpath("Roof-U-Value")&.content,
603
- roof_insulation_thickness: node.at_xpath("Roof-Insulation-Thickness")&.content,
604
- rafter_insulation_thickness: node.at_xpath("Rafter-Insulation-Thickness")&.content,
605
- flat_roof_insulation_thickness: node.at_xpath("Flat-Roof-Insulation-Thickness")&.content,
606
- sloping_ceiling_insulation_thickness: node.at_xpath("Sloping-Ceiling-Insulation-Thickness")&.content,
607
- }
601
+ {
602
+ roof_u_value: node.at_xpath("Roof-U-Value")&.content,
603
+ roof_insulation_thickness: node.at_xpath("Roof-Insulation-Thickness")&.content,
604
+ rafter_insulation_thickness: node.at_xpath("Rafter-Insulation-Thickness")&.content,
605
+ flat_roof_insulation_thickness: node.at_xpath("Flat-Roof-Insulation-Thickness")&.content,
606
+ sloping_ceiling_insulation_thickness: node.at_xpath("Sloping-Ceiling-Insulation-Thickness")&.content,
607
+ }
608
608
  end
609
609
  end
610
610
 
@@ -612,10 +612,10 @@ module ViewModel
612
612
  @xml_doc
613
613
  .search("SAP-Building-Part")
614
614
  .map do |node|
615
- {
616
- wall_u_value: node.at_xpath("Wall-U-Value")&.content,
617
- wall_insulation_thickness: node.at_xpath("Wall-Insulation-Thickness")&.content,
618
- }
615
+ {
616
+ wall_u_value: node.at_xpath("Wall-U-Value")&.content,
617
+ wall_insulation_thickness: node.at_xpath("Wall-Insulation-Thickness")&.content,
618
+ }
619
619
  end
620
620
  end
621
621
 
@@ -623,7 +623,7 @@ module ViewModel
623
623
  @xml_doc
624
624
  .search("SAP-Building-Part")
625
625
  .map do |node|
626
- node.at_xpath("SAP-Room-In-Roof")&.content.to_s
626
+ node.at_xpath("SAP-Room-In-Roof")&.content.to_s
627
627
  end
628
628
  end
629
629
 
@@ -631,10 +631,10 @@ module ViewModel
631
631
  @xml_doc
632
632
  .search("SAP-Building-Part")
633
633
  .map do |_node|
634
- {
635
- roof_insulation_thickness: xpath(%w[SAP-Room-In-Roof Roof-Insulation-Thickness]),
636
- room_in_roof_details: xpath(%w[SAP-Room-In-Roof Room-In-Roof-Details]),
637
- }
634
+ {
635
+ roof_insulation_thickness: xpath(%w[SAP-Room-In-Roof Roof-Insulation-Thickness]),
636
+ room_in_roof_details: xpath(%w[SAP-Room-In-Roof Room-In-Roof-Details]),
637
+ }
638
638
  end
639
639
  end
640
640
 
@@ -642,11 +642,11 @@ module ViewModel
642
642
  @xml_doc
643
643
  .search("Main-Heating")
644
644
  .map do |_node|
645
- {
646
- main_heating_index_number: xpath(%w[Main-Heating-Index-Number]),
647
- sap_main_heating_code: xpath(%w[SAP-Main-Heating-Code]),
648
- main_fuel_type: xpath(%w[Main-Fuel-Type]),
649
- }
645
+ {
646
+ main_heating_index_number: xpath(%w[Main-Heating-Index-Number]),
647
+ sap_main_heating_code: xpath(%w[SAP-Main-Heating-Code]),
648
+ main_fuel_type: xpath(%w[Main-Fuel-Type]),
649
+ }
650
650
  end
651
651
  end
652
652
 
@@ -567,7 +567,7 @@ module ViewModel
567
567
  @xml_doc
568
568
  .search("SAP-Building-Part")
569
569
  .map do |node|
570
- xpath(%w[Party-Wall-Construction], node)
570
+ xpath(%w[Party-Wall-Construction], node)
571
571
  end
572
572
  end
573
573
 
@@ -575,16 +575,16 @@ module ViewModel
575
575
  @xml_doc
576
576
  .search("SAP-Building-Part")
577
577
  .map do |node|
578
- {
579
- alternative_wall_thickness: node.at_xpath("SAP-Alternative-Wall/Wall-Thickness")&.content,
580
- alternative_wall_thickness_measured: node.at_xpath("SAP-Alternative-Wall/Wall-Thickness-Measured")&.content,
581
- alternative_wall_construction: node.at_xpath("SAP-Alternative-Wall/Wall-Construction")&.content,
582
- alternative_wall_u_value: node.at_xpath("SAP-Alternative-Wall/Wall-U-Value")&.content,
583
- alternative_wall_insulation_thickness: node.at_xpath("SAP-Alternative-Wall/Wall-Insulation-Thickness")&.content,
584
- wall_thickness: node.at_xpath("Wall-Thickness")&.content,
585
- wall_construction: node.at_xpath("Wall-Construction")&.content,
586
- wall_thickness_measured: node.at_xpath("Wall-Thickness-Measured")&.content,
587
- }
578
+ {
579
+ alternative_wall_thickness: node.at_xpath("SAP-Alternative-Wall/Wall-Thickness")&.content,
580
+ alternative_wall_thickness_measured: node.at_xpath("SAP-Alternative-Wall/Wall-Thickness-Measured")&.content,
581
+ alternative_wall_construction: node.at_xpath("SAP-Alternative-Wall/Wall-Construction")&.content,
582
+ alternative_wall_u_value: node.at_xpath("SAP-Alternative-Wall/Wall-U-Value")&.content,
583
+ alternative_wall_insulation_thickness: node.at_xpath("SAP-Alternative-Wall/Wall-Insulation-Thickness")&.content,
584
+ wall_thickness: node.at_xpath("Wall-Thickness")&.content,
585
+ wall_construction: node.at_xpath("Wall-Construction")&.content,
586
+ wall_thickness_measured: node.at_xpath("Wall-Thickness-Measured")&.content,
587
+ }
588
588
  end
589
589
  end
590
590
 
@@ -592,10 +592,10 @@ module ViewModel
592
592
  @xml_doc
593
593
  .search("SAP-Building-Part")
594
594
  .map do |node|
595
- {
596
- roof_insulation_location: node.at_xpath("Roof-Insulation-Location")&.content,
597
- roof_construction: node.at_xpath("Roof-Construction")&.content,
598
- }
595
+ {
596
+ roof_insulation_location: node.at_xpath("Roof-Insulation-Location")&.content,
597
+ roof_construction: node.at_xpath("Roof-Construction")&.content,
598
+ }
599
599
  end
600
600
  end
601
601
 
@@ -607,10 +607,10 @@ module ViewModel
607
607
  @xml_doc
608
608
  .search("SAP-Building-Part")
609
609
  .map do |node|
610
- {
611
- floor_u_value: node.at_xpath("Floor-U-Value")&.content,
612
- floor_insulation_thickness: node.at_xpath("Floor-Insulation-Thickness")&.content,
613
- }
610
+ {
611
+ floor_u_value: node.at_xpath("Floor-U-Value")&.content,
612
+ floor_insulation_thickness: node.at_xpath("Floor-Insulation-Thickness")&.content,
613
+ }
614
614
  end
615
615
  end
616
616
 
@@ -618,13 +618,13 @@ module ViewModel
618
618
  @xml_doc
619
619
  .search("SAP-Building-Part")
620
620
  .map do |node|
621
- {
622
- roof_u_value: node.at_xpath("Roof-U-Value")&.content,
623
- roof_insulation_thickness: node.at_xpath("Roof-Insulation-Thickness")&.content,
624
- rafter_insulation_thickness: node.at_xpath("Rafter-Insulation-Thickness")&.content,
625
- flat_roof_insulation_thickness: node.at_xpath("Flat-Roof-Insulation-Thickness")&.content,
626
- sloping_ceiling_insulation_thickness: node.at_xpath("Sloping-Ceiling-Insulation-Thickness")&.content,
627
- }
621
+ {
622
+ roof_u_value: node.at_xpath("Roof-U-Value")&.content,
623
+ roof_insulation_thickness: node.at_xpath("Roof-Insulation-Thickness")&.content,
624
+ rafter_insulation_thickness: node.at_xpath("Rafter-Insulation-Thickness")&.content,
625
+ flat_roof_insulation_thickness: node.at_xpath("Flat-Roof-Insulation-Thickness")&.content,
626
+ sloping_ceiling_insulation_thickness: node.at_xpath("Sloping-Ceiling-Insulation-Thickness")&.content,
627
+ }
628
628
  end
629
629
  end
630
630
 
@@ -632,10 +632,10 @@ module ViewModel
632
632
  @xml_doc
633
633
  .search("SAP-Building-Part")
634
634
  .map do |node|
635
- {
636
- wall_u_value: node.at_xpath("Wall-U-Value")&.content,
637
- wall_insulation_thickness: node.at_xpath("Wall-Insulation-Thickness")&.content,
638
- }
635
+ {
636
+ wall_u_value: node.at_xpath("Wall-U-Value")&.content,
637
+ wall_insulation_thickness: node.at_xpath("Wall-Insulation-Thickness")&.content,
638
+ }
639
639
  end
640
640
  end
641
641
 
@@ -651,11 +651,11 @@ module ViewModel
651
651
  @xml_doc
652
652
  .search("Main-Heating")
653
653
  .map do |_node|
654
- {
655
- main_heating_index_number: xpath(%w[Main-Heating-Index-Number]),
656
- sap_main_heating_code: xpath(%w[SAP-Main-Heating-Code]),
657
- main_fuel_type: xpath(%w[Main-Fuel-Type]),
658
- }
654
+ {
655
+ main_heating_index_number: xpath(%w[Main-Heating-Index-Number]),
656
+ sap_main_heating_code: xpath(%w[SAP-Main-Heating-Code]),
657
+ main_fuel_type: xpath(%w[Main-Fuel-Type]),
658
+ }
659
659
  end
660
660
  end
661
661
 
@@ -371,12 +371,12 @@ module ViewModel
371
371
  @xml_doc
372
372
  .search("Fixed-Lights/Fixed-Light")
373
373
  .map do |part|
374
- {
375
- lighting_efficacy:
376
- xpath(%w[Lighting-Efficacy], part),
377
- lighting_outlets:
378
- xpath(%w[Lighting-Outlets], part),
379
- }
374
+ {
375
+ lighting_efficacy:
376
+ xpath(%w[Lighting-Efficacy], part),
377
+ lighting_outlets:
378
+ xpath(%w[Lighting-Outlets], part),
379
+ }
380
380
  end
381
381
  end
382
382
 
@@ -371,12 +371,12 @@ module ViewModel
371
371
  @xml_doc
372
372
  .search("Fixed-Lights/Fixed-Light")
373
373
  .map do |part|
374
- {
375
- lighting_efficacy:
376
- xpath(%w[Lighting-Efficacy], part),
377
- lighting_outlets:
378
- xpath(%w[Lighting-Outlets], part),
379
- }
374
+ {
375
+ lighting_efficacy:
376
+ xpath(%w[Lighting-Efficacy], part),
377
+ lighting_outlets:
378
+ xpath(%w[Lighting-Outlets], part),
379
+ }
380
380
  end
381
381
  end
382
382
 
@@ -371,12 +371,12 @@ module ViewModel
371
371
  @xml_doc
372
372
  .search("Fixed-Lights/Fixed-Light")
373
373
  .map do |part|
374
- {
375
- lighting_efficacy:
376
- xpath(%w[Lighting-Efficacy], part),
377
- lighting_outlets:
378
- xpath(%w[Lighting-Outlets], part),
379
- }
374
+ {
375
+ lighting_efficacy:
376
+ xpath(%w[Lighting-Efficacy], part),
377
+ lighting_outlets:
378
+ xpath(%w[Lighting-Outlets], part),
379
+ }
380
380
  end
381
381
  end
382
382
 
@@ -454,14 +454,14 @@ module ViewModel
454
454
  @xml_doc
455
455
  .search("Suggested-Improvements Improvement")
456
456
  .map do |node|
457
- improvement_code = xpath(%w[Improvement-Details Improvement-Number], node)
458
- {
459
- sequence: xpath(%w[Sequence], node).to_i,
460
- improvement_code: xpath(%w[Improvement-Details Improvement-Number], node),
461
- improvement_summary: improvement_code ? accessor.fetch_details(schema_version: "SAP-Schema-NI-17.3", improvement_number: improvement_code).summary : xpath(%w[Improvement-Summary], node),
462
- improvement_description: improvement_code ? accessor.fetch_details(schema_version: "SAP-Schema-NI-17.3", improvement_number: improvement_code).description : xpath(%w[Improvement-Description], node),
463
- indicative_cost: xpath(%w[Indicative-Cost], node),
464
- }
457
+ improvement_code = xpath(%w[Improvement-Details Improvement-Number], node)
458
+ {
459
+ sequence: xpath(%w[Sequence], node).to_i,
460
+ improvement_code: xpath(%w[Improvement-Details Improvement-Number], node),
461
+ improvement_summary: improvement_code ? accessor.fetch_details(schema_version: "SAP-Schema-NI-17.3", improvement_number: improvement_code).summary : xpath(%w[Improvement-Summary], node),
462
+ improvement_description: improvement_code ? accessor.fetch_details(schema_version: "SAP-Schema-NI-17.3", improvement_number: improvement_code).description : xpath(%w[Improvement-Description], node),
463
+ indicative_cost: xpath(%w[Indicative-Cost], node),
464
+ }
465
465
  end
466
466
  end
467
467
  end
@@ -454,14 +454,14 @@ module ViewModel
454
454
  @xml_doc
455
455
  .search("Suggested-Improvements Improvement")
456
456
  .map do |node|
457
- improvement_code = xpath(%w[Improvement-Details Improvement-Number], node)
458
- {
459
- sequence: xpath(%w[Sequence], node).to_i,
460
- improvement_code: xpath(%w[Improvement-Details Improvement-Number], node),
461
- improvement_summary: improvement_code ? accessor.fetch_details(schema_version: "SAP-Schema-NI-17.4", improvement_number: improvement_code).summary : xpath(%w[Improvement-Summary], node),
462
- improvement_description: improvement_code ? accessor.fetch_details(schema_version: "SAP-Schema-NI-17.4", improvement_number: improvement_code).description : xpath(%w[Improvement-Description], node),
463
- indicative_cost: xpath(%w[Indicative-Cost], node),
464
- }
457
+ improvement_code = xpath(%w[Improvement-Details Improvement-Number], node)
458
+ {
459
+ sequence: xpath(%w[Sequence], node).to_i,
460
+ improvement_code: xpath(%w[Improvement-Details Improvement-Number], node),
461
+ improvement_summary: improvement_code ? accessor.fetch_details(schema_version: "SAP-Schema-NI-17.4", improvement_number: improvement_code).summary : xpath(%w[Improvement-Summary], node),
462
+ improvement_description: improvement_code ? accessor.fetch_details(schema_version: "SAP-Schema-NI-17.4", improvement_number: improvement_code).description : xpath(%w[Improvement-Description], node),
463
+ indicative_cost: xpath(%w[Indicative-Cost], node),
464
+ }
465
465
  end
466
466
  end
467
467
  end
@@ -510,14 +510,14 @@ module ViewModel
510
510
  @xml_doc
511
511
  .search("Suggested-Improvements Improvement")
512
512
  .map do |node|
513
- improvement_code = xpath(%w[Improvement-Details Improvement-Number], node)
514
- {
515
- sequence: xpath(%w[Sequence], node).to_i,
516
- improvement_code: xpath(%w[Improvement-Details Improvement-Number], node),
517
- improvement_summary: improvement_code ? accessor.fetch_details(schema_version: "SAP-Schema-NI-18.0.0", improvement_number: improvement_code).summary : xpath(%w[Improvement-Summary], node),
518
- improvement_description: improvement_code ? accessor.fetch_details(schema_version: "SAP-Schema-NI-18.0.0", improvement_number: improvement_code).description : xpath(%w[Improvement-Description], node),
519
- indicative_cost: xpath(%w[Indicative-Cost], node),
520
- }
513
+ improvement_code = xpath(%w[Improvement-Details Improvement-Number], node)
514
+ {
515
+ sequence: xpath(%w[Sequence], node).to_i,
516
+ improvement_code: xpath(%w[Improvement-Details Improvement-Number], node),
517
+ improvement_summary: improvement_code ? accessor.fetch_details(schema_version: "SAP-Schema-NI-18.0.0", improvement_number: improvement_code).summary : xpath(%w[Improvement-Summary], node),
518
+ improvement_description: improvement_code ? accessor.fetch_details(schema_version: "SAP-Schema-NI-18.0.0", improvement_number: improvement_code).description : xpath(%w[Improvement-Description], node),
519
+ indicative_cost: xpath(%w[Indicative-Cost], node),
520
+ }
521
521
  end
522
522
  end
523
523
  end
@@ -367,12 +367,12 @@ module ViewModel
367
367
  @xml_doc
368
368
  .search("Fixed-Lights/Fixed-Light")
369
369
  .map do |part|
370
- {
371
- lighting_efficacy:
372
- xpath(%w[Lighting-Efficacy], part),
373
- lighting_outlets:
374
- xpath(%w[Lighting-Outlets], part),
375
- }
370
+ {
371
+ lighting_efficacy:
372
+ xpath(%w[Lighting-Efficacy], part),
373
+ lighting_outlets:
374
+ xpath(%w[Lighting-Outlets], part),
375
+ }
376
376
  end
377
377
  end
378
378
 
@@ -600,10 +600,10 @@ module ViewModel
600
600
  @xml_doc
601
601
  .search("SAP-Heating/Main-Heating-Details/Main-Heating")
602
602
  .map do |_node|
603
- {
604
- main_heating_code: xpath(%w[Main-Heating-Code]),
605
- main_heating_index_number: xpath(%w[Main-Heating-Index-Number]),
606
- }
603
+ {
604
+ main_heating_code: xpath(%w[Main-Heating-Code]),
605
+ main_heating_index_number: xpath(%w[Main-Heating-Index-Number]),
606
+ }
607
607
  end
608
608
  end
609
609
 
@@ -611,7 +611,7 @@ module ViewModel
611
611
  @xml_doc
612
612
  .search("SAP-Building-Part")
613
613
  .map do |node|
614
- xpath(%w[Construction-Year], node)
614
+ xpath(%w[Construction-Year], node)
615
615
  end
616
616
  end
617
617
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epb_view_models
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.20
4
+ version: 2.2.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - MHCLG Energy Performance of Buildings
@@ -15,14 +15,28 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '1.16'
18
+ version: '1.18'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '1.16'
25
+ version: '1.18'
26
+ - !ruby/object:Gem::Dependency
27
+ name: rexml
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '3.3'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '3.3'
26
40
  - !ruby/object:Gem::Dependency
27
41
  name: zeitwerk
28
42
  requirement: !ruby/object:Gem::Requirement
@@ -1874,7 +1888,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
1874
1888
  requirements:
1875
1889
  - - ">="
1876
1890
  - !ruby/object:Gem::Version
1877
- version: '3.1'
1891
+ version: '3.4'
1878
1892
  required_rubygems_version: !ruby/object:Gem::Requirement
1879
1893
  requirements:
1880
1894
  - - ">="