his_emr_api_lab 2.1.7.pre.gamma → 2.1.8

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: 593219b282a6f5cbe26cdd80a8324412650f3242d6ab48d622d1572699033c82
4
- data.tar.gz: fb5bf82bc4569423c1e8b3ac5ff5d076e7734c565736e51ab0d453a61269d027
3
+ metadata.gz: 44e72036503453b83d8f3cfcdff281e1085e461c476a8f793e24a3d72f12f223
4
+ data.tar.gz: 0100d95046a1a81db0fc8b7eace3e9fa02dc2f9be6f396f073954bbfa5578993
5
5
  SHA512:
6
- metadata.gz: 1a941f7c1be9866e55bdbc035e23566b9e185f6131ab52f5fb17b3dd362cbfeb2d2b630929aea6904121232247edcb69ff451a1bc5a3d4528a1373e8db79f907
7
- data.tar.gz: 60e00f01de37eb379b7f1a816baa793452f0b4b05cdda4596c495f5049a2431d69946aa33c3cae26c23847a69e1a99a9903b25a6dcf48b73c4cd237896653671
6
+ metadata.gz: 25cb61dabafa209680d649747e35a06e19ed3685c7730bc0c539a35357e9e9529794ed180714c626125ec6ab8104b107e90e6ad0ab0cbebfcaee2ae728ea7815
7
+ data.tar.gz: 0da64fc5aa9647ffcc3252ae597b0492bacb3b77ec97064c4433f72bcd122431e04114323f7f13dc602faa0ccdc7c2f836b098a1090e9a56fa8cae774503101f
data/README.md CHANGED
@@ -22,25 +22,25 @@ For details on how to perform these operations please see the
22
22
  Add this line to your application's Gemfile:
23
23
 
24
24
  ```ruby
25
- gem 'lab', git: 'https://github.com/EGPAFMalawiHIS/HIS-EMR-API-Lab', branch: 'development'
25
+ gem 'his_emr_api_lab', git: 'https://github.com/EGPAFMalawiHIS/HIS-EMR-API-Lab', branch: 'development'
26
26
  ```
27
27
 
28
28
  And then execute:
29
29
 
30
30
  ```bash
31
- $ bundle install lab
31
+ $ bundle install
32
32
  ```
33
33
 
34
34
  Or install it yourself as:
35
35
 
36
36
  ```bash
37
- $ gem install lab
37
+ $ gem install his_emr_api_lab
38
38
  ```
39
39
 
40
40
  Finally run:
41
41
 
42
42
  ```bash
43
- $ bundle exec rails lab:install
43
+ $ bundle exec rails his_emr_api_lab:install
44
44
  ```
45
45
 
46
46
  ## Configuration
@@ -66,6 +66,19 @@ but too much a departure from it is frowned upon. For example, you will be forgi
66
66
  for writing a method with 15 to 20 lines if you clearly justify why you couldn't
67
67
  break that method into multiple smaller methods.
68
68
 
69
+ ## Publishing
70
+
71
+ To publish a new version of the gem, first update the version number in
72
+ `lib/lab/version.rb` and then run the following command:
73
+
74
+ ```bash
75
+ $ gem build his_emr_api_lab.gemspec
76
+ $ gem push his_emr_api_lab-<version>.gem
77
+ ```
78
+ Make sure to replace `<version>` with the version number you set in `lib/lab/version.rb`.
79
+
80
+ NB: You need to have an account on [rubygems.org](https://rubygems.org/) and permission to publish gems.
81
+
69
82
  ## License
70
83
 
71
84
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -7,7 +7,7 @@ module Lab
7
7
  queue_as :default
8
8
  def perform(results_obs_id, serializer, result_enter_by)
9
9
  Rails.logger.info("Lab::ProcessLabResultJob: Processing result completion for #{serializer}")
10
- results_obs = Lab::LabResult.unscoped.find(results_obs_id)
10
+ results_obs = Lab::LabResult.find(results_obs_id)
11
11
  Lab::ResultsService.process_result_completion(results_obs, serializer, result_enter_by)
12
12
  end
13
13
  end
@@ -14,12 +14,9 @@ module Lab
14
14
  date_received: params[:date_received])
15
15
  end
16
16
 
17
- def acknowledgements_pending_sync(batch_size, start_date: nil)
18
- query = Lab::LabAcknowledgement.joins(:order).where(pushed: false)
19
-
20
- query = query.where('orders.date_created >= ?', start_date) if start_date
21
-
22
- query.limit(batch_size)
17
+ def acknowledgements_pending_sync(batch_size)
18
+ Lab::LabAcknowledgement.where(pushed: false)
19
+ .limit(batch_size)
23
20
  end
24
21
 
25
22
  def push_acknowledgement(acknowledgement, lims_api)
@@ -33,8 +30,7 @@ module Lab
33
30
  Rails.logger.info("Updating acknowledgement ##{acknowledgement_dto[:tracking_number]} in LIMS")
34
31
  response = lims_api.acknowledge(acknowledgement_dto)
35
32
  Rails.logger.info("Info #{response}")
36
- if ['results already delivered for test name given', 'test result acknowledged successfully',
37
- 'test result already acknowledged electronically at facility'].include?(response['message'])
33
+ if ['results already delivered for test name given', 'test result acknowledged successfully', 'test result already acknowledged electronically at facility'].include?(response['message'])
38
34
  acknowledgement.pushed = true
39
35
  acknowledgement.date_pushed = Time.now
40
36
  acknowledgement.save!
@@ -34,11 +34,10 @@ module Lab
34
34
 
35
35
  unless specimen_type
36
36
  return ActiveRecord::Base.connection.select_all <<~SQL
37
- SELECT ca.concept_id, ca.value_reference as name, ca2.value_reference as nlims_code, c.uuid
37
+ SELECT ca.concept_id, ca.value_reference as name, ca2.value_reference as nlims_code
38
38
  FROM concept_attribute ca
39
39
  INNER JOIN concept_attribute ca2 ON ca.concept_id = ca2.concept_id
40
40
  AND ca2.attribute_type_id = #{ConceptAttributeType.nlims_code.concept_attribute_type_id}
41
- INNER JOIN concept c ON c.concept_id = ca.concept_id
42
41
  WHERE ca.attribute_type_id = #{ConceptAttributeType.test_catalogue_name.concept_attribute_type_id}
43
42
  AND ca.concept_id IN (#{test_types.select(:concept_id).to_sql})
44
43
  GROUP BY ca.concept_id
@@ -57,11 +56,10 @@ module Lab
57
56
  )
58
57
 
59
58
  return ActiveRecord::Base.connection.select_all <<~SQL
60
- SELECT ca.concept_id, ca.value_reference as name, ca2.value_reference as nlims_code, c.uuid
59
+ SELECT ca.concept_id, ca.value_reference as name, ca2.value_reference as nlims_code
61
60
  FROM concept_attribute ca
62
61
  INNER JOIN concept_attribute ca2 ON ca.concept_id = ca2.concept_id
63
62
  AND ca2.attribute_type_id = #{ConceptAttributeType.nlims_code.concept_attribute_type_id}
64
- INNER JOIN concept c ON c.concept_id = ca.concept_id
65
63
  WHERE ca.attribute_type_id = #{ConceptAttributeType.test_catalogue_name.concept_attribute_type_id}
66
64
  AND ca.concept_id IN (#{concept_set.select(:concept_set).to_sql})
67
65
  GROUP BY ca.concept_id
@@ -74,11 +72,10 @@ module Lab
74
72
 
75
73
  unless test_type
76
74
  return ActiveRecord::Base.connection.select_all <<~SQL
77
- SELECT ca.concept_id, ca.value_reference as name, ca2.value_reference as nlims_code, c.uuid
75
+ SELECT ca.concept_id, ca.value_reference as name, ca2.value_reference as nlims_code
78
76
  FROM concept_attribute ca
79
77
  INNER JOIN concept_attribute ca2 ON ca.concept_id = ca2.concept_id
80
78
  AND ca2.attribute_type_id = #{ConceptAttributeType.nlims_code.concept_attribute_type_id}
81
- INNER JOIN concept c ON c.concept_id = ca.concept_id
82
79
  WHERE ca.attribute_type_id = #{ConceptAttributeType.test_catalogue_name.concept_attribute_type_id}
83
80
  AND ca.concept_id IN (#{specimen_types.select(:concept_id).to_sql})
84
81
  GROUP BY ca.concept_id
@@ -97,11 +94,10 @@ module Lab
97
94
  )
98
95
 
99
96
  return ActiveRecord::Base.connection.select_all <<~SQL
100
- SELECT ca.concept_id, ca.value_reference as name, ca2.value_reference as nlims_code, c.uuid
97
+ SELECT ca.concept_id, ca.value_reference as name, ca2.value_reference as nlims_code
101
98
  FROM concept_attribute ca
102
99
  INNER JOIN concept_attribute ca2 ON ca.concept_id = ca2.concept_id
103
100
  AND ca2.attribute_type_id = #{ConceptAttributeType.nlims_code.concept_attribute_type_id}
104
- INNER JOIN concept c ON c.concept_id = ca.concept_id
105
101
  WHERE ca.attribute_type_id = #{ConceptAttributeType.test_catalogue_name.concept_attribute_type_id}
106
102
  AND ca.concept_id IN (#{concept_set.pluck(:concept_id).push(0).join(',')})
107
103
  GROUP BY ca.concept_id
@@ -118,16 +114,15 @@ module Lab
118
114
  measures = ConceptSet.find_members_by_name(Lab::Metadata::TEST_RESULT_INDICATOR_CONCEPT_NAME)
119
115
  .select(:concept_id)
120
116
 
121
- sets = ConceptSet.where(concept_set: test, concept_id: measures)
117
+ sets = ConceptSet.where(concept_set: measures, concept_id: test)
122
118
 
123
119
  return ActiveRecord::Base.connection.select_all <<~SQL
124
- SELECT ca.concept_id, ca.value_reference as name, ca2.value_reference as nlims_code, c.uuid
120
+ SELECT ca.concept_id, ca.value_reference as name, ca2.value_reference as nlims_code
125
121
  FROM concept_attribute ca
126
122
  INNER JOIN concept_attribute ca2 ON ca.concept_id = ca2.concept_id
127
123
  AND ca2.attribute_type_id = #{ConceptAttributeType.nlims_code.concept_attribute_type_id}
128
- INNER JOIN concept c ON c.concept_id = ca.concept_id
129
124
  WHERE ca.attribute_type_id = #{ConceptAttributeType.test_catalogue_name.concept_attribute_type_id}
130
- AND ca.concept_id IN (#{sets.pluck(:concept_id).push(0).join(',')})
125
+ AND ca.concept_id IN (#{sets.pluck(:concept_set).push(0).join(',')})
131
126
  GROUP BY ca.concept_id
132
127
  SQL
133
128
  end
@@ -4,22 +4,20 @@ module Lab
4
4
  module Lims
5
5
  # This class is responsible for handling the acknowledgement of lab orders
6
6
  class AcknowledgementWorker
7
- attr_reader :lims_api, :start_date
7
+ attr_reader :lims_api
8
8
 
9
9
  include Utils # for logger
10
10
 
11
11
  SECONDS_TO_WAIT_FOR_ORDERS = 30
12
12
 
13
- def initialize(lims_api, start_date: nil)
13
+ def initialize(lims_api)
14
14
  @lims_api = lims_api
15
- @start_date = start_date
16
15
  end
17
16
 
18
17
  def push_acknowledgement(batch_size: 1000, wait: false)
19
18
  loop do
20
19
  logger.info('Looking for new acknowledgements to push to LIMS...')
21
- acknowledgements = Lab::AcknowledgementService.acknowledgements_pending_sync(batch_size,
22
- start_date: start_date).all
20
+ acknowledgements = Lab::AcknowledgementService.acknowledgements_pending_sync(batch_size).all
23
21
 
24
22
  logger.debug("Found #{acknowledgements.size} acknowledgements...")
25
23
  acknowledgements.each do |acknowledgement|
@@ -74,8 +74,8 @@ module Lab
74
74
  { tracking_number: order_dto[:tracking_number] }
75
75
  end
76
76
 
77
- def consume_orders(*_args, patient_id: nil, start_date: nil, **_kwargs)
78
- orders_pending_updates(patient_id, start_date: start_date).each do |order|
77
+ def consume_orders(*_args, patient_id: nil, **_kwargs)
78
+ orders_pending_updates(patient_id).each do |order|
79
79
  order_dto = Lab::Lims::OrderSerializer.serialize_order(order)
80
80
  if order_dto['priority'].nil? || order_dto['sample_type'].casecmp?('not_specified')
81
81
  patch_order_dto_with_lims_order!(order_dto, find_lims_order(order.accession_number))
@@ -510,47 +510,43 @@ module Lab
510
510
  }
511
511
  end
512
512
 
513
- def orders_pending_updates(patient_id = nil, start_date: nil)
513
+ def orders_pending_updates(patient_id = nil)
514
514
  Rails.logger.info('Looking for orders that need to be updated...')
515
515
  orders = {}
516
516
 
517
- orders_without_specimen(patient_id, start_date: start_date).each { |order| orders[order.order_id] = order }
518
- orders_without_results(patient_id, start_date: start_date).each { |order| orders[order.order_id] = order }
519
- orders_without_reason(patient_id, start_date: start_date).each { |order| orders[order.order_id] = order }
517
+ orders_without_specimen(patient_id).each { |order| orders[order.order_id] = order }
518
+ orders_without_results(patient_id).each { |order| orders[order.order_id] = order }
519
+ orders_without_reason(patient_id).each { |order| orders[order.order_id] = order }
520
520
 
521
521
  orders.values
522
522
  end
523
523
 
524
- def orders_without_specimen(patient_id = nil, start_date: nil)
524
+ def orders_without_specimen(patient_id = nil)
525
525
  Rails.logger.debug('Looking for orders without a specimen')
526
526
  unknown_specimen = ConceptName.where(name: Lab::Metadata::UNKNOWN_SPECIMEN)
527
527
  .select(:concept_id)
528
528
  orders = Lab::LabOrder.where(concept_id: unknown_specimen)
529
529
  .where.not(accession_number: Lab::LimsOrderMapping.select(:lims_id))
530
530
  orders = orders.where(patient_id:) if patient_id
531
- orders = orders.where('orders.date_created >= ?', start_date) if start_date
532
531
 
533
532
  orders
534
533
  end
535
534
 
536
- def orders_without_results(patient_id = nil, start_date: nil)
535
+ def orders_without_results(patient_id = nil)
537
536
  Rails.logger.debug('Looking for orders without a result')
538
537
  # Lab::OrdersSearchService.find_orders_without_results(patient_id: patient_id)
539
538
  # .where.not(accession_number: Lab::LimsOrderMapping.select(:lims_id).where("pulled_at IS NULL"))
540
- orders = Lab::OrdersSearchService.find_orders_without_results(patient_id:)
541
- .where(order_id: Lab::LimsOrderMapping.select(:order_id))
542
- orders = orders.where('orders.date_created >= ?', start_date) if start_date
543
- orders
539
+ Lab::OrdersSearchService.find_orders_without_results(patient_id:)
540
+ .where(order_id: Lab::LimsOrderMapping.select(:order_id))
544
541
  end
545
542
 
546
- def orders_without_reason(patient_id = nil, start_date: nil)
543
+ def orders_without_reason(patient_id = nil)
547
544
  Rails.logger.debug('Looking for orders without a reason for test')
548
545
  orders = Lab::LabOrder.joins(:reason_for_test)
549
546
  .merge(Observation.where(value_coded: nil, value_text: nil))
550
547
  .limit(1000)
551
548
  .where.not(accession_number: Lab::LimsOrderMapping.select(:lims_id))
552
549
  orders = orders.where(patient_id:) if patient_id
553
- orders = orders.where('orders.date_created >= ?', start_date) if start_date
554
550
 
555
551
  orders
556
552
  end
@@ -5,15 +5,14 @@ module Lab
5
5
  ##
6
6
  # Pulls orders from a Lims API object and saves them to the local database.
7
7
  class PullWorker
8
- attr_reader :lims_api, :start_date
8
+ attr_reader :lims_api
9
9
 
10
10
  include Utils # for logger
11
11
 
12
12
  LIMS_LOG_PATH = Rails.root.join('log', 'lims')
13
13
 
14
- def initialize(lims_api, start_date: nil)
14
+ def initialize(lims_api)
15
15
  @lims_api = lims_api
16
- @start_date = start_date
17
16
  end
18
17
 
19
18
  ##
@@ -21,7 +20,7 @@ module Lab
21
20
  def pull_orders(batch_size: 10_000, **)
22
21
  logger.info("Retrieving LIMS orders starting from #{last_seq}")
23
22
 
24
- lims_api.consume_orders(from: last_seq, limit: batch_size, start_date: start_date, **) do |order_dto, context|
23
+ lims_api.consume_orders(from: last_seq, limit: batch_size, **) do |order_dto, context|
25
24
  logger.debug("Retrieved order ##{order_dto[:tracking_number]}: #{order_dto}")
26
25
 
27
26
  patient = find_patient_by_nhid(order_dto[:patient][:id], order_dto[:tracking_number])
@@ -5,16 +5,15 @@ module Lab
5
5
  ##
6
6
  # Pushes all local orders to a LIMS Api object.
7
7
  class PushWorker
8
- attr_reader :lims_api, :start_date
8
+ attr_reader :lims_api
9
9
 
10
10
  include Utils # for logger
11
11
 
12
12
  SECONDS_TO_WAIT_FOR_ORDERS = 30
13
13
  START_DATE = Time.parse('2024-09-03').freeze
14
14
 
15
- def initialize(lims_api, start_date: nil)
15
+ def initialize(lims_api)
16
16
  @lims_api = lims_api
17
- @start_date = start_date
18
17
  end
19
18
 
20
19
  def push_orders(batch_size: 1000, wait: false)
@@ -82,8 +81,8 @@ module Lab
82
81
 
83
82
  def void_order_in_lims(order_id)
84
83
  order = Lab::LabOrder.joins(order_type: { name: 'Lab' })
85
- .unscoped
86
- .find(order_id)
84
+ .unscoped
85
+ .find(order_id)
87
86
  order_dto = Lab::Lims::OrderSerializer.serialize_order(order)
88
87
  Rails.logger.info("Deleting order ##{order_dto[:accession_number]} from LIMS")
89
88
  lims_api.delete_order('', order_dto)
@@ -101,16 +100,10 @@ module Lab
101
100
 
102
101
  def new_orders
103
102
  Rails.logger.debug('Looking for new orders that need to be created in LIMS...')
104
- query = Lab::LabOrder.where.not(order_id: Lab::LimsOrderMapping.all.select(:order_id))
105
- .where("accession_number IS NOT NULL AND accession_number !=''")
106
-
107
- query = if start_date
108
- query.where('orders.date_created >= ?', start_date)
109
- else
110
- query.where('orders.date_created >= ? AND orders.date_created <= ?', START_DATE, Date.today + 1.day)
111
- end
112
-
113
- query.order(date_created: :desc)
103
+ Lab::LabOrder.where.not(order_id: Lab::LimsOrderMapping.all.select(:order_id))
104
+ .where("accession_number IS NOT NULL AND accession_number !=''")
105
+ .where(date_created: START_DATE..(Date.today + 1.day))
106
+ .order(date_created: :desc)
114
107
  end
115
108
 
116
109
  def updated_orders
@@ -9,43 +9,43 @@ module Lab
9
9
  ##
10
10
  # Pull/Push orders from/to the LIMS queue (Oops meant CouchDB).
11
11
  module Worker
12
- def self.start(start_date: nil)
12
+ def self.start
13
13
  User.current = Utils.lab_user
14
14
 
15
- fork { start_push_worker(start_date: start_date) }
16
- fork { start_pull_worker(start_date: start_date) }
17
- fork { start_acknowledgement_worker(start_date: start_date) }
18
- fork { start_realtime_pull_worker(start_date: start_date) } if realtime_updates_enabled?
15
+ fork(&method(:start_push_worker))
16
+ fork(&method(:start_pull_worker))
17
+ fork(&method(:start_acknowledgement_worker))
18
+ fork(&method(:start_realtime_pull_worker)) if realtime_updates_enabled?
19
19
 
20
20
  Process.waitall
21
21
  end
22
22
 
23
- def self.start_push_worker(start_date: nil)
23
+ def self.start_push_worker
24
24
  start_worker('push_worker') do
25
- worker = PushWorker.new(lims_api, start_date: start_date)
25
+ worker = PushWorker.new(lims_api)
26
26
 
27
27
  worker.push_orders # (wait: true)
28
28
  end
29
29
  end
30
30
 
31
- def self.start_acknowledgement_worker(start_date: nil)
31
+ def self.start_acknowledgement_worker
32
32
  start_worker('acknowledgement_worker') do
33
- worker = AcknowledgementWorker.new(lims_api, start_date: start_date)
33
+ worker = AcknowledgementWorker.new(lims_api)
34
34
  worker.push_acknowledgement
35
35
  end
36
36
  end
37
37
 
38
- def self.start_pull_worker(start_date: nil)
38
+ def self.start_pull_worker
39
39
  start_worker('pull_worker') do
40
- worker = PullWorker.new(lims_api, start_date: start_date)
40
+ worker = PullWorker.new(lims_api)
41
41
 
42
42
  worker.pull_orders
43
43
  end
44
44
  end
45
45
 
46
- def self.start_realtime_pull_worker(start_date: nil)
46
+ def self.start_realtime_pull_worker
47
47
  start_worker('realtime_pull_worker') do
48
- worker = PullWorker.new(Lims::Api::WsApi.new(Lab::Lims::Config.updates_socket), start_date: start_date)
48
+ worker = PullWorker.new(Lims::Api::WsApi.new(Lab::Lims::Config.updates_socket))
49
49
 
50
50
  worker.pull_orders
51
51
  end
@@ -247,6 +247,7 @@ module Lab
247
247
 
248
248
  concept = params.dig(:specimen, :concept)
249
249
  concept ||= params.dig(:specimen, :concept_id)
250
+ concept ||= unknown_concept_id
250
251
 
251
252
  order_type = nil
252
253
  order_type = OrderType.find_by_order_type_id!(params[:order_type_id])&.id if params[:order_type_id].present?
@@ -259,8 +260,7 @@ module Lab
259
260
  order.date_created = params[:date]&.to_date || Date.today if order.respond_to?(:date_created)
260
261
  order.start_date = params[:date]&.to_date || Date.today if order.respond_to?(:start_date)
261
262
  order.auto_expire_date = params[:end_date]
262
- # Note: comment_to_fulfiller is a has_one association, not a field
263
- # It will be created via add_comment_to_fulfiller method
263
+ order.comment_to_fulfiller = params[:comment_to_fulfiller] if params[:comment_to_fulfiller]
264
264
  order.accession_number = access_number
265
265
  order.orderer = User.current&.user_id
266
266
 
@@ -348,7 +348,7 @@ module Lab
348
348
  end
349
349
 
350
350
  def unknown_concept_id
351
- ConceptName.find_by_name!('Unknown').concept
351
+ ConceptName.find_by_name!('Unknown').concept_id
352
352
  end
353
353
 
354
354
  def update_reason_for_test(order, concept_id, force_update: false)
data/lib/lab/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Lab
4
- VERSION = '2.1.7-gamma'
4
+ VERSION = '2.1.8'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: his_emr_api_lab
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.7.pre.gamma
4
+ version: 2.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elizabeth Glaser Pediatric Foundation Malawi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-02-26 00:00:00.000000000 Z
11
+ date: 2026-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: couchrest
@@ -340,9 +340,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
340
340
  version: '0'
341
341
  required_rubygems_version: !ruby/object:Gem::Requirement
342
342
  requirements:
343
- - - ">"
343
+ - - ">="
344
344
  - !ruby/object:Gem::Version
345
- version: 1.3.1
345
+ version: '0'
346
346
  requirements: []
347
347
  rubygems_version: 3.4.1
348
348
  signing_key: