redox 1.1.0 → 1.4.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: 451221082b696c7421fa2feacde94c0235bbd78348c416d904cba8df3d1ff67b
4
- data.tar.gz: 9934ade2a99d85628444a8845b15bf14c79cb595f1307da196d57d1faa2a2668
3
+ metadata.gz: e2c926b510dc2e56b85369003ee89caf82292929308a18775df049e4a57e1d95
4
+ data.tar.gz: 9799c173cb24daa74f3dfe02eefb3f8c2a456557dafa819fb7ca2760621a3b4e
5
5
  SHA512:
6
- metadata.gz: 192db714b76ee2a5d197577e21c2907f50d211667b1d16f7ee468af71196655da67fc593771e1f713419bc5a382e8b196b315660dba62c4563ee553bc9581e8d
7
- data.tar.gz: 2f72e880e360b4d74e6b8b27b25baf0f9a4bb867615723afa9c40089d1a4debaf42c96aa6ee5997f2bc432d315bcbd6c02d9612c9f73aa096dffed1e6cb18cb9
6
+ metadata.gz: 1499bf55b2c53f0a0dafc2d68d3b420bc5a0a0760d4258103360d32526b32e4f418a59fddb50afb3feb80ac45a979045b943018d24a717129e7db072c7233faf
7
+ data.tar.gz: 2b2eeebee1f5a35c028cee6c77f582e0dff10734cec40ce620fdc02617c01daf42f73d62e4960ec7a7b77ed4290f733c3fb0ce46f408566f826fa86f1d71a970
@@ -4,6 +4,33 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [1.4.0] - 2020-10-13
8
+ ### Added
9
+ - AbstractModel that does not add top level key
10
+ - OrderingProvider that is the base for PCP
11
+ - Provider model
12
+ - Provider#query
13
+ - Created new method that can add helpers dynamically from response
14
+
15
+ ## [1.3.1] - 2020-10-02
16
+ ### Added
17
+ - Transaction#as\_json
18
+ - Visit#as\_json
19
+
20
+ ## [1.3.0] - 2020-09-17
21
+ ### Added
22
+ - Transaction model
23
+ - Financial#create
24
+
25
+ ## [1.2.0] - 2020-07-30
26
+ ### Added
27
+ - Visit model
28
+ - Model#insurances helper for Patient.Insurances || Visit.Insurances
29
+
30
+ ## [1.1.1] - 2020-06-15
31
+ ### Changed
32
+ - Bugfix with patient param in update
33
+
7
34
  ## [1.1.0] - 2020-06-15
8
35
  ### Changed
9
36
  - Moving to Requst classes instead of mixing in logic to models (kept backwards compatibility)
@@ -94,6 +121,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
94
121
  ### Added
95
122
  - Initial Release
96
123
 
124
+ [1.4.0]: https://github.com/WeInfuse/redox/compare/v1.3.1...v1.4.0
125
+ [1.3.1]: https://github.com/WeInfuse/redox/compare/v1.3.0...v1.3.1
126
+ [1.3.0]: https://github.com/WeInfuse/redox/compare/v1.2.0...v1.3.0
127
+ [1.2.0]: https://github.com/WeInfuse/redox/compare/v1.1.1...v1.2.0
128
+ [1.1.1]: https://github.com/WeInfuse/redox/compare/v1.1.0...v1.1.1
97
129
  [1.1.0]: https://github.com/WeInfuse/redox/compare/v1.0.2...v1.1.0
98
130
  [1.0.2]: https://github.com/WeInfuse/redox/compare/v1.0.1...v1.0.2
99
131
  [1.0.1]: https://github.com/WeInfuse/redox/compare/v1.0.0...v1.0.1
@@ -6,14 +6,22 @@ require 'redox/connection'
6
6
  require 'redox/authentication'
7
7
  require 'redox/models/model'
8
8
  require 'redox/models/meta'
9
+ require 'redox/models/ordering_provider'
9
10
  require 'redox/models/patient'
11
+ require 'redox/models/provider'
12
+ require 'redox/models/visit'
13
+ require 'redox/models/transaction'
14
+ require 'redox/models/financial'
10
15
  require 'redox/models/patient/demographics'
11
16
  require 'redox/models/patient/identifier'
12
17
  require 'redox/models/patient/insurance'
13
18
  require 'redox/models/patient/p_c_p'
14
19
  require 'redox/models/potential_matches'
20
+ require 'redox/request/request'
21
+ require 'redox/request/financial'
15
22
  require 'redox/request/patient_admin'
16
23
  require 'redox/request/patient_search'
24
+ require 'redox/request/provider'
17
25
 
18
26
  module Redox
19
27
  class Configuration
@@ -0,0 +1,13 @@
1
+ module Redox
2
+ module Models
3
+ class Financial < AbstractModel
4
+ property :Visit, required: false, from: :visit, default: Redox::Models::Visit.new
5
+ property :Patient, required: false, from: :patient, default: Redox::Models::Patient.new
6
+ property :Transactions, required: false, from: :transactions, default: []
7
+
8
+ alias_method :patient, :Patient
9
+ alias_method :visit, :Visit
10
+ alias_method :transactions, :Transactions
11
+ end
12
+ end
13
+ end
@@ -1,19 +1,95 @@
1
1
  module Redox
2
2
  module Models
3
- class Model < Hashie::Trash
3
+ def self.format_datetime(d)
4
+ if d.respond_to?(:strftime)
5
+ d.strftime(Redox::Models::Meta::TO_DATETIME_FORMAT)
6
+ else
7
+ d
8
+ end
9
+ end
10
+
11
+ class AbstractModel < Hashie::Trash
4
12
  include Hashie::Extensions::IgnoreUndeclared
5
13
  include Hashie::Extensions::IndifferentAccess
6
14
 
15
+ HIGH_LEVEL_KEYS = %w[Meta Patient Visit PotentialMatches]
16
+
7
17
  property :Meta, from: :meta, required: false
8
18
  property :Patient, from: :patient, required: false
19
+ property :Visit, from: :visit, required: false
9
20
  property :PotentialMatches, from: :potential_matches, required: false
10
21
  property :Extensions, from: :extensions, required: false
11
22
  property :response, required: false
12
23
 
13
24
  alias_method :potential_matches, :PotentialMatches
14
25
  alias_method :patient, :Patient
26
+ alias_method :visit, :Visit
15
27
  alias_method :meta, :Meta
16
28
 
29
+ def to_json(args = {})
30
+ return self.to_h.to_json
31
+ end
32
+
33
+ def insurances
34
+ (self.patient&.insurances || []) + (self.visit&.insurances || [])
35
+ end
36
+
37
+ def self.from_response(response)
38
+ model = Model.new
39
+ model.response = response
40
+
41
+ HIGH_LEVEL_KEYS.each do |k|
42
+ begin
43
+ model.send("#{k}=", Module.const_get("Redox::Models::#{k}").new(response[k])) if response[k]
44
+ rescue
45
+ end
46
+ end
47
+
48
+ return model
49
+ end
50
+
51
+ def self.from_response_inflected(response)
52
+ model = self.from_response(response)
53
+
54
+ if (model.response.ok?)
55
+ data = model.response.parsed_response
56
+
57
+ if data.respond_to?(:keys)
58
+ model_class = nil
59
+
60
+ if model.meta&.data_model
61
+ model_class = "Redox::Models::#{model.meta.data_model}"
62
+
63
+ begin
64
+ model_class = Object.const_get(model_class)
65
+ rescue NameError
66
+ model_class = nil
67
+ end
68
+ end
69
+
70
+ data.keys.each do |key|
71
+ next if HIGH_LEVEL_KEYS.include?(key.to_s)
72
+
73
+ helper_name = key.to_s.downcase.to_sym
74
+
75
+ if model_class.nil?
76
+ model.define_singleton_method(helper_name) { data[key] }
77
+ else
78
+ if data[key].is_a?(Array)
79
+ model.define_singleton_method(helper_name) { data[key].map {|obj| model_class.new(obj) } }
80
+ else
81
+ model.define_singleton_method(helper_name) { model_class.new(data[key]) }
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
87
+
88
+ return model
89
+ end
90
+ end
91
+
92
+ class Model < AbstractModel
17
93
  def initialize(data = {})
18
94
  if data.is_a?(Hash)
19
95
  if data.include?(key)
@@ -30,28 +106,7 @@ module Redox
30
106
  return { key => super.to_h }
31
107
  end
32
108
 
33
- def to_json
34
- return self.to_h.to_json
35
- end
36
-
37
- class << self
38
- def from_response(response)
39
- model = Model.new
40
- model.response = response
41
-
42
- %w[Meta Patient PotentialMatches].each do |k|
43
- begin
44
- model.send("#{k}=", Module.const_get("Redox::Models::#{k}").new(response[k])) if response[k]
45
- rescue
46
- end
47
- end
48
-
49
- return model
50
- end
51
- end
52
-
53
109
  private
54
-
55
110
  def key
56
111
  return self.class.to_s.split('::').last.to_s
57
112
  end
@@ -0,0 +1,15 @@
1
+ module Redox
2
+ module Models
3
+ class OrderingProvider < AbstractModel
4
+ property :ID, required: false, from: :id
5
+ property :IDType, required: false, from: :id_type
6
+ property :FirstName, required: false, from: :first_name
7
+ property :LastName, required: false, from: :last_name
8
+
9
+ alias_method :first_name, :FirstName
10
+ alias_method :last_name, :LastName
11
+ alias_method :id, :ID
12
+ alias_method :id_type, :IDType
13
+ end
14
+ end
15
+ end
@@ -1,6 +1,6 @@
1
1
  module Redox
2
2
  module Models
3
- class Demographics < Model
3
+ class Demographics < AbstractModel
4
4
  property :FirstName, required: false, from: :first_name
5
5
  property :MiddleName, required: false, from: :middle_name
6
6
  property :LastName, required: false, from: :last_name
@@ -1,6 +1,6 @@
1
1
  module Redox
2
2
  module Models
3
- class Identifier < Model
3
+ class Identifier < AbstractModel
4
4
  property :ID, from: :id
5
5
  property :IDType, from: :id_type
6
6
 
@@ -1,13 +1,9 @@
1
1
  module Redox
2
2
  module Models
3
- class PCP < Model
3
+ class PCP < OrderingProvider
4
4
  property :NPI, from: :npi
5
- property :FirstName, required: false, from: :first_name
6
- property :LastName, required: false, from: :last_name
7
5
 
8
6
  alias_method :npi, :NPI
9
- alias_method :first_name, :FirstName
10
- alias_method :last_name, :LastName
11
7
  end
12
8
  end
13
9
  end
@@ -0,0 +1,21 @@
1
+ module Redox
2
+ module Models
3
+ class Provider < Model
4
+ property :Identifiers, from: :identifiers, required: false, default: []
5
+ property :Demographics, from: :demographics, required: false
6
+
7
+ alias_method :identifiers, :Identifiers
8
+
9
+ def demographics
10
+ self[:Demographics] = Demographics.new(self[:Demographics]) unless self[:Demographics].is_a?(Redox::Models::Demographics)
11
+ self[:Demographics] ||= Demographics.new
12
+ end
13
+
14
+ def add_identifier(type: , value: )
15
+ self[:Identifiers] << Identifier.new({'ID' => value, 'IDType' => type})
16
+
17
+ return self
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,75 @@
1
+ module Redox
2
+ module Models
3
+ class Transaction < AbstractModel
4
+ property :Chargeable, required: false, from: :chargeable, default: {}
5
+ property :DateTimeOfService, required: false, from: :start
6
+ property :Department, required: false, from: :department, default: {}
7
+ property :Diagnoses, required: false, from: :diagnoses, default: []
8
+ property :EndDateTime, required: false, from: :end
9
+ property :Extensions, required: false, from: :extensions, default: {}
10
+ property :ID, required: false, from: :id
11
+ property :NDC, required: false, from: :ndc, default: {}
12
+ property :OrderID, required: false, from: :order_id
13
+ property :OrderingProviders, required: false, from: :ordering_providers, default: []
14
+ property :Performers, required: false, from: :performers, default: []
15
+ property :Procedure, required: false, from: :procedure, default: {}
16
+ property :Type, required: false, from: :type
17
+
18
+ alias_method :chargeable, :Chargeable
19
+ alias_method :start, :DateTimeOfService
20
+ alias_method :department, :Department
21
+ alias_method :diagnoses, :Diagnoses
22
+ alias_method :end, :EndDateTime
23
+ alias_method :extensions, :Extensions
24
+ alias_method :id, :ID
25
+ alias_method :ndc, :NDC
26
+ alias_method :order_id, :OrderID
27
+ alias_method :ordering_providers, :OrderingProviders
28
+ alias_method :performers, :Performers
29
+ alias_method :procedure, :Procedure
30
+ alias_method :type, :Type
31
+
32
+ def add_medication(ndc_code: nil, quantity: nil, magnitude: nil, unit: nil, description: nil)
33
+ self[:NDC] = { Code: ndc_code, Description: description }
34
+ self[:Extensions] = {
35
+ 'ndc-quantity' => {
36
+ integer: quantity&.to_s
37
+ },
38
+ 'ndc-units-measure' => {
39
+ coding: {
40
+ code: magnitude&.to_s,
41
+ display: unit
42
+ }
43
+ }
44
+ }
45
+ self
46
+ end
47
+
48
+ def add_ordering_provider(**kwargs)
49
+ self[:OrderingProviders] ||= []
50
+ self[:OrderingProviders] << OrderingProvider.new(kwargs)
51
+ self
52
+ end
53
+
54
+ def add_performer(**kwargs)
55
+ self[:Performers] ||= []
56
+ self[:Performers] << OrderingProvider.new(kwargs)
57
+ self
58
+ end
59
+
60
+ def to_h
61
+ result = super.to_h
62
+
63
+ %w[EndDateTime DateTimeOfService].each do |k|
64
+ result[k] = Redox::Models.format_datetime(result[k])
65
+ end
66
+
67
+ result
68
+ end
69
+
70
+ def as_json(args)
71
+ self.to_h
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,53 @@
1
+ module Redox
2
+ module Models
3
+ class Visit < Model
4
+ DEFAULT_LOCATION = {
5
+ Department: nil,
6
+ Facility: nil
7
+ }
8
+
9
+ property :Insurances, from: :insurances, required: false, default: []
10
+ property :Location, from: :location, required: false, default: DEFAULT_LOCATION
11
+ property :VisitDateTime, from: :start, required: false
12
+ property :VisitNumber, from: :visit_number, required: false
13
+ property :AccountNumber, from: :account_number, required: false
14
+
15
+ alias_method :insurances, :Insurances
16
+ alias_method :start, :VisitDateTime
17
+
18
+ def department=(v)
19
+ self[:Location] ||= DEFAULT_LOCATION
20
+ self[:Location][:Department] = v
21
+ self
22
+ end
23
+
24
+ def facility=(v)
25
+ self[:Location] ||= DEFAULT_LOCATION
26
+ self[:Location][:Facility] = v
27
+ self
28
+ end
29
+
30
+ def insurances
31
+ self[:Insurances] = self[:Insurances].map {|ins| ins.is_a?(Redox::Models::Insurance) ? ins : Insurance.new(ins) }
32
+ end
33
+
34
+ def to_h
35
+ result = super.to_h
36
+
37
+ %w[VisitDateTime].each do |k|
38
+ result[key][k] = Redox::Models.format_datetime(result[key][k])
39
+ end
40
+
41
+ result
42
+ end
43
+
44
+ def to_json(args = {})
45
+ self.to_h.to_json
46
+ end
47
+
48
+ def as_json(args = {})
49
+ self.to_h.dig('Visit')
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,12 @@
1
+ module Redox
2
+ module Request
3
+ class Financial
4
+ TRANSACTION_META = Redox::Models::Meta.new(EventType: 'Transaction', DataModel: 'Financial')
5
+
6
+ def self.create(financial, meta: Redox::Models::Meta.new)
7
+ meta = TRANSACTION_META.merge(meta)
8
+ return Redox::Models::Model.from_response((RedoxClient.connection.request(body: Redox::Request.build_body(financial, meta))))
9
+ end
10
+ end
11
+ end
12
+ end
@@ -4,20 +4,14 @@ module Redox
4
4
  CREATE_META = Redox::Models::Meta.new(EventType: 'NewPatient', DataModel: 'PatientAdmin')
5
5
  UPDATE_META = Redox::Models::Meta.new(EventType: 'PatientUpdate', DataModel: 'PatientAdmin')
6
6
 
7
- def self.create(patient: p, meta: Redox::Models::Meta.new)
7
+ def self.create(patient: , meta: Redox::Models::Meta.new)
8
8
  meta = CREATE_META.merge(meta)
9
- return Redox::Models::Model.from_response((RedoxClient.connection.request(body: Redox::Request::PatientAdmin.build_body(p, meta))))
9
+ return Redox::Models::Model.from_response((RedoxClient.connection.request(body: Redox::Request.build_body(patient, meta))))
10
10
  end
11
11
 
12
- def self.update(patient: p, meta: Redox::Models::Meta.new)
12
+ def self.update(patient: , meta: Redox::Models::Meta.new)
13
13
  meta = UPDATE_META.merge(meta)
14
- return Redox::Models::Model.from_response((RedoxClient.connection.request(body: Redox::Request::PatientAdmin.build_body(p, meta))))
15
- end
16
-
17
- def self.build_body(params, meta)
18
- meta = Redox::Models::Meta.new.merge(meta)
19
-
20
- return meta.to_h.merge(params.to_h)
14
+ return Redox::Models::Model.from_response((RedoxClient.connection.request(body: Redox::Request.build_body(patient, meta))))
21
15
  end
22
16
  end
23
17
  end
@@ -6,7 +6,7 @@ module Redox
6
6
 
7
7
  def self.query(params, meta: Redox::Models::Meta.new)
8
8
  meta = QUERY_META.merge(meta)
9
- return Redox::Models::Model.from_response((RedoxClient.connection.request(endpoint: QUERY_ENDPOINT, body: Redox::Request::PatientAdmin.build_body(params, meta))))
9
+ return Redox::Models::Model.from_response((RedoxClient.connection.request(endpoint: QUERY_ENDPOINT, body: Redox::Request.build_body(params, meta))))
10
10
  end
11
11
  end
12
12
  end
@@ -0,0 +1,12 @@
1
+ module Redox
2
+ module Request
3
+ class Provider
4
+ QUERY_META = Redox::Models::Meta.new(EventType: 'ProviderQuery', DataModel: 'Provider')
5
+
6
+ def self.query(provider, meta: Redox::Models::Meta.new)
7
+ meta = QUERY_META.merge(meta)
8
+ return Redox::Models::Model.from_response_inflected((RedoxClient.connection.request(body: Redox::Request.build_body(provider, meta))))
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,9 @@
1
+ module Redox
2
+ module Request
3
+ def self.build_body(params, meta)
4
+ meta = Redox::Models::Meta.new.merge(meta)
5
+
6
+ return meta.to_h.merge(params.to_h)
7
+ end
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module Redox
2
- VERSION = '1.1.0'.freeze
2
+ VERSION = '1.4.0'.freeze
3
3
  end
@@ -5,8 +5,8 @@ require 'redox/version'
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'redox'
7
7
  spec.version = Redox::VERSION
8
- spec.authors = ['Alexander Clark', 'Mike Crockett']
9
- spec.email = ['alexander.clark@weinfuse.com', 'mike.crockett@weinfuse.com']
8
+ spec.authors = ['Alexander Clark', 'Mike Crockett', 'Mike Carr']
9
+ spec.email = ['alexander.clark@weinfuse.com', 'mike.crockett@weinfuse.com', 'michael.carr@weinfuse.com']
10
10
 
11
11
  spec.summary = 'Ruby wrapper for the Redox Engine API'
12
12
  spec.homepage = 'https://github.com/WeInfuse/redox'
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
28
28
  spec.require_paths = ['lib']
29
29
  spec.licenses = ['MIT']
30
30
 
31
- spec.add_dependency 'httparty', '~> 0.17'
31
+ spec.add_dependency 'httparty', '~> 0.18'
32
32
  spec.add_dependency 'hashie', '~> 3.5'
33
33
  spec.add_development_dependency 'bundler', '>=1', '<3'
34
34
  spec.add_development_dependency 'byebug', '~> 11'
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redox
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Clark
8
8
  - Mike Crockett
9
- autorequire:
9
+ - Mike Carr
10
+ autorequire:
10
11
  bindir: exe
11
12
  cert_chain: []
12
- date: 2020-06-15 00:00:00.000000000 Z
13
+ date: 2020-10-13 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: httparty
@@ -17,14 +18,14 @@ dependencies:
17
18
  requirements:
18
19
  - - "~>"
19
20
  - !ruby/object:Gem::Version
20
- version: '0.17'
21
+ version: '0.18'
21
22
  type: :runtime
22
23
  prerelease: false
23
24
  version_requirements: !ruby/object:Gem::Requirement
24
25
  requirements:
25
26
  - - "~>"
26
27
  - !ruby/object:Gem::Version
27
- version: '0.17'
28
+ version: '0.18'
28
29
  - !ruby/object:Gem::Dependency
29
30
  name: hashie
30
31
  requirement: !ruby/object:Gem::Requirement
@@ -129,10 +130,11 @@ dependencies:
129
130
  - - "~>"
130
131
  - !ruby/object:Gem::Version
131
132
  version: '0.9'
132
- description:
133
+ description:
133
134
  email:
134
135
  - alexander.clark@weinfuse.com
135
136
  - mike.crockett@weinfuse.com
137
+ - michael.carr@weinfuse.com
136
138
  executables: []
137
139
  extensions: []
138
140
  extra_rdoc_files: []
@@ -145,17 +147,25 @@ files:
145
147
  - lib/redox.rb
146
148
  - lib/redox/authentication.rb
147
149
  - lib/redox/connection.rb
150
+ - lib/redox/models/financial.rb
148
151
  - lib/redox/models/meta.rb
149
152
  - lib/redox/models/model.rb
153
+ - lib/redox/models/ordering_provider.rb
150
154
  - lib/redox/models/patient.rb
151
155
  - lib/redox/models/patient/demographics.rb
152
156
  - lib/redox/models/patient/identifier.rb
153
157
  - lib/redox/models/patient/insurance.rb
154
158
  - lib/redox/models/patient/p_c_p.rb
155
159
  - lib/redox/models/potential_matches.rb
160
+ - lib/redox/models/provider.rb
161
+ - lib/redox/models/transaction.rb
162
+ - lib/redox/models/visit.rb
156
163
  - lib/redox/redox_exception.rb
164
+ - lib/redox/request/financial.rb
157
165
  - lib/redox/request/patient_admin.rb
158
166
  - lib/redox/request/patient_search.rb
167
+ - lib/redox/request/provider.rb
168
+ - lib/redox/request/request.rb
159
169
  - lib/redox/version.rb
160
170
  - redox.gemspec
161
171
  homepage: https://github.com/WeInfuse/redox
@@ -163,7 +173,7 @@ licenses:
163
173
  - MIT
164
174
  metadata:
165
175
  allowed_push_host: https://rubygems.org
166
- post_install_message:
176
+ post_install_message:
167
177
  rdoc_options: []
168
178
  require_paths:
169
179
  - lib
@@ -178,9 +188,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
178
188
  - !ruby/object:Gem::Version
179
189
  version: '0'
180
190
  requirements: []
181
- rubyforge_project:
191
+ rubyforge_project:
182
192
  rubygems_version: 2.7.6
183
- signing_key:
193
+ signing_key:
184
194
  specification_version: 4
185
195
  summary: Ruby wrapper for the Redox Engine API
186
196
  test_files: []