inferno_core 0.3.11 → 0.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.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/lib/inferno/apps/cli/main.rb +13 -0
  3. data/lib/inferno/apps/cli/services.rb +56 -0
  4. data/lib/inferno/apps/web/application.rb +1 -0
  5. data/lib/inferno/apps/web/controllers/controller.rb +6 -8
  6. data/lib/inferno/apps/web/controllers/requests/show.rb +3 -3
  7. data/lib/inferno/apps/web/controllers/test_runs/create.rb +13 -17
  8. data/lib/inferno/apps/web/controllers/test_runs/destroy.rb +8 -10
  9. data/lib/inferno/apps/web/controllers/test_runs/results/index.rb +4 -4
  10. data/lib/inferno/apps/web/controllers/test_runs/show.rb +9 -7
  11. data/lib/inferno/apps/web/controllers/test_sessions/create.rb +9 -8
  12. data/lib/inferno/apps/web/controllers/test_sessions/last_test_run.rb +4 -4
  13. data/lib/inferno/apps/web/controllers/test_sessions/results/index.rb +6 -6
  14. data/lib/inferno/apps/web/controllers/test_sessions/session_data/apply_preset.rb +10 -10
  15. data/lib/inferno/apps/web/controllers/test_sessions/session_data/index.rb +5 -3
  16. data/lib/inferno/apps/web/controllers/test_sessions/show.rb +3 -3
  17. data/lib/inferno/apps/web/controllers/test_suites/check_configuration.rb +3 -3
  18. data/lib/inferno/apps/web/controllers/test_suites/index.rb +2 -2
  19. data/lib/inferno/apps/web/controllers/test_suites/show.rb +3 -3
  20. data/lib/inferno/apps/web/index.html.erb +4 -0
  21. data/lib/inferno/apps/web/router.rb +55 -41
  22. data/lib/inferno/apps/web/serializers/message.rb +2 -0
  23. data/lib/inferno/apps/web/serializers/preset.rb +2 -5
  24. data/lib/inferno/apps/web/serializers/request.rb +4 -1
  25. data/lib/inferno/apps/web/serializers/result.rb +5 -1
  26. data/lib/inferno/apps/web/serializers/session_data.rb +2 -0
  27. data/lib/inferno/apps/web/serializers/suite_option.rb +2 -0
  28. data/lib/inferno/apps/web/serializers/test.rb +3 -0
  29. data/lib/inferno/apps/web/serializers/test_group.rb +4 -2
  30. data/lib/inferno/apps/web/serializers/test_run.rb +3 -0
  31. data/lib/inferno/apps/web/serializers/test_suite.rb +5 -1
  32. data/lib/inferno/config/application.rb +1 -6
  33. data/lib/inferno/config/boot/web.rb +2 -7
  34. data/lib/inferno/config/boot.rb +6 -1
  35. data/lib/inferno/dsl/assertions.rb +2 -2
  36. data/lib/inferno/dsl/configurable.rb +4 -4
  37. data/lib/inferno/dsl/fhir_client.rb +3 -2
  38. data/lib/inferno/dsl/fhir_client_builder.rb +2 -2
  39. data/lib/inferno/dsl/fhir_validation.rb +5 -6
  40. data/lib/inferno/dsl/http_client.rb +17 -18
  41. data/lib/inferno/dsl/http_client_builder.rb +4 -4
  42. data/lib/inferno/dsl/input_output_handling.rb +1 -1
  43. data/lib/inferno/dsl/request_storage.rb +2 -2
  44. data/lib/inferno/dsl/resume_test_route.rb +36 -34
  45. data/lib/inferno/dsl/runnable.rb +13 -10
  46. data/lib/inferno/entities/header.rb +7 -7
  47. data/lib/inferno/entities/request.rb +35 -36
  48. data/lib/inferno/entities/session_data.rb +6 -6
  49. data/lib/inferno/entities/test.rb +4 -4
  50. data/lib/inferno/entities/test_group.rb +2 -2
  51. data/lib/inferno/entities/test_run.rb +1 -1
  52. data/lib/inferno/jobs/execute_test_run.rb +1 -1
  53. data/lib/inferno/jobs/resume_test_run.rb +1 -1
  54. data/lib/inferno/public/bundle.js +15 -15
  55. data/lib/inferno/repositories/messages.rb +1 -1
  56. data/lib/inferno/repositories/repository.rb +1 -1
  57. data/lib/inferno/repositories/requests.rb +6 -6
  58. data/lib/inferno/repositories/results.rb +16 -16
  59. data/lib/inferno/repositories/session_data.rb +6 -6
  60. data/lib/inferno/repositories/test_runs.rb +6 -6
  61. data/lib/inferno/repositories/test_sessions.rb +7 -7
  62. data/lib/inferno/test_runner.rb +3 -3
  63. data/lib/inferno/utils/preset_template_generator.rb +1 -1
  64. data/lib/inferno/version.rb +1 -1
  65. data/spec/factories/test_run.rb +1 -1
  66. data/spec/factories/test_session.rb +1 -1
  67. data/spec/fixtures/basic_test_suite.rb +1 -0
  68. metadata +25 -24
@@ -1,62 +1,76 @@
1
1
  require 'erb'
2
2
 
3
+ Dir.glob(File.join(__dir__, 'controllers', '**', '*.rb')).each { |path| require_relative path }
4
+
3
5
  module Inferno
4
6
  module Web
5
7
  client_page = ERB.new(File.read(File.join(Inferno::Application.root, 'lib', 'inferno', 'apps', 'web',
6
8
  'index.html.erb'))).result
7
9
 
8
- Router = Hanami::Router.new(namespace: Inferno::Web::Controllers) do
9
- namespace Application['base_path'] do
10
- namespace 'api' do
11
- resources 'test_runs', only: [:create, :show, :destroy] do
12
- resources 'results', only: [:index]
13
- end
14
-
15
- resources 'test_sessions', only: [:create, :show] do
16
- resources 'results', only: [:index]
17
- resources 'session_data', only: [:index] do
18
- collection do
19
- put '/apply_preset',
20
- to: Inferno::Web::Controllers::TestSessions::SessionData::ApplyPreset,
21
- as: :apply_preset
22
- end
23
- end
24
- end
25
- get 'test_sessions/:test_session_id/last_test_run',
10
+ base_path = Application['base_path']
11
+ base_path = "/#{base_path.delete_prefix('/')}" if base_path.present?
12
+
13
+ Router = Hanami::Router.new(prefix: base_path) do
14
+ scope 'api' do
15
+ scope 'test_runs' do
16
+ post '/', to: Inferno::Web::Controllers::TestRuns::Create, as: :create
17
+ get '/:id', to: Inferno::Web::Controllers::TestRuns::Show, as: :show
18
+ delete '/:id', to: Inferno::Web::Controllers::TestRuns::Destroy, as: :destroy
19
+
20
+ get '/results', to: Inferno::Web::Controllers::TestRuns::Results::Index, as: :results
21
+ end
22
+
23
+ scope 'test_sessions' do
24
+ post '/', to: Inferno::Web::Controllers::TestSessions::Create, as: :create
25
+ get '/:id', to: Inferno::Web::Controllers::TestSessions::Show, as: :show
26
+
27
+ get '/:id/last_test_run',
26
28
  to: Inferno::Web::Controllers::TestSessions::LastTestRun,
27
29
  as: :last_test_run
30
+ get '/:id/results',
31
+ to: Inferno::Web::Controllers::TestSessions::Results::Index,
32
+ as: :results
33
+ get '/:id/session_data',
34
+ to: Inferno::Web::Controllers::TestSessions::SessionData::Index
35
+ put '/:id/session_data/apply_preset',
36
+ to: Inferno::Web::Controllers::TestSessions::SessionData::ApplyPreset,
37
+ as: :session_data_apply_preset
38
+ end
28
39
 
29
- resources 'test_suites', only: [:index, :show]
30
- put 'test_suites/:id/check_configuration',
40
+ scope 'test_suites' do
41
+ get '/', to: Inferno::Web::Controllers::TestSuites::Index, as: :index
42
+ get '/:id', to: Inferno::Web::Controllers::TestSuites::Show, as: :show
43
+
44
+ put '/:id/check_configuration',
31
45
  to: Inferno::Web::Controllers::TestSuites::CheckConfiguration,
32
46
  as: :check_configuration
47
+ end
33
48
 
34
- resources 'requests', only: [:show]
49
+ get '/requests/:id', to: Inferno::Web::Controllers::Requests::Show, as: :requests_show
35
50
 
36
- get '/version', to: ->(_env) { [200, {}, [{ 'version' => Inferno::VERSION.to_s }.to_json]] }, as: :api_version
37
- end
51
+ get '/version', to: ->(_env) { [200, {}, [{ 'version' => Inferno::VERSION.to_s }.to_json]] }, as: :version
52
+ end
38
53
 
39
- # Should not need Content-Type header but GitHub Codespaces will not work without them.
40
- # This could be investigated and likely removed if addressed properly elsewhere.
41
- get '/', to: ->(_env) { [200, { 'Content-Type' => 'text/html' }, [client_page]] }
42
- get '/test_sessions/:id', to: ->(_env) { [200, { 'Content-Type' => 'text/html' }, [client_page]] }
43
-
44
- Inferno.routes.each do |route|
45
- cleaned_id = route[:suite].id.gsub(/[^a-zA-Z\d\-._~]/, '_')
46
- path = "/custom/#{cleaned_id}#{route[:path]}"
47
- Application['logger'].info("Registering custom route: #{path}")
48
- if route[:method] == :all
49
- mount route[:handler], at: path
50
- else
51
- send(route[:method], path, to: route[:handler])
52
- end
53
- end
54
+ # Should not need Content-Type header but GitHub Codespaces will not work without them.
55
+ # This could be investigated and likely removed if addressed properly elsewhere.
56
+ get '/', to: ->(_env) { [200, { 'Content-Type' => 'text/html' }, [client_page]] }
57
+ get '/test_sessions/:id', to: ->(_env) { [200, { 'Content-Type' => 'text/html' }, [client_page]] }
54
58
 
55
- Inferno::Repositories::TestSuites.all.map { |suite| "/#{suite.id}" }.each do |suite_path|
56
- Application['logger'].info("Registering suite route: #{suite_path}")
57
- get suite_path, to: ->(_env) { [200, {}, [client_page]] }
59
+ Inferno.routes.each do |route|
60
+ cleaned_id = route[:suite].id.gsub(/[^a-zA-Z\d\-._~]/, '_')
61
+ path = "/custom/#{cleaned_id}#{route[:path]}"
62
+ Application['logger'].info("Registering custom route: #{path}")
63
+ if route[:method] == :all
64
+ mount route[:handler], at: path
65
+ else
66
+ send(route[:method], path, to: route[:handler])
58
67
  end
59
68
  end
69
+
70
+ Inferno::Repositories::TestSuites.all.map { |suite| "/#{suite.id}" }.each do |suite_path|
71
+ Application['logger'].info("Registering suite route: #{suite_path}")
72
+ get suite_path, to: ->(_env) { [200, {}, [client_page]] }
73
+ end
60
74
  end
61
75
  end
62
76
  end
@@ -1,3 +1,5 @@
1
+ require_relative 'serializer'
2
+
1
3
  module Inferno
2
4
  module Web
3
5
  module Serializers
@@ -1,3 +1,5 @@
1
+ require_relative 'serializer'
2
+
1
3
  module Inferno
2
4
  module Web
3
5
  module Serializers
@@ -6,11 +8,6 @@ module Inferno
6
8
  identifier :id
7
9
  field :title
8
10
  end
9
-
10
- # view :full do
11
- # include_view :summary
12
- # field :inputs, blueprint: Input
13
- # end
14
11
  end
15
12
  end
16
13
  end
@@ -1,9 +1,12 @@
1
+ require_relative 'header'
2
+
1
3
  module Inferno
2
4
  module Web
3
5
  module Serializers
4
6
  class Request < Serializer
5
7
  view :summary do
6
- field :id
8
+ identifier :id
9
+ field :index
7
10
  field :created_at, name: :timestamp
8
11
  field :verb
9
12
  field :url
@@ -1,4 +1,6 @@
1
1
  require 'json'
2
+ require_relative 'message'
3
+ require_relative 'request'
2
4
 
3
5
  module Inferno
4
6
  module Web
@@ -27,7 +29,9 @@ module Inferno
27
29
  end
28
30
 
29
31
  association :messages, blueprint: Message, if: :field_present?
30
- association :requests, blueprint: Request, view: :summary, if: :field_present?
32
+ field :requests do |result, _options|
33
+ Request.render_as_hash(result.requests.sort_by(&:index), view: :summary)
34
+ end
31
35
  end
32
36
  end
33
37
  end
@@ -1,3 +1,5 @@
1
+ require_relative 'serializer'
2
+
1
3
  module Inferno
2
4
  module Web
3
5
  module Serializers
@@ -1,3 +1,5 @@
1
+ require_relative 'serializer'
2
+
1
3
  module Inferno
2
4
  module Web
3
5
  module Serializers
@@ -1,3 +1,6 @@
1
+ require_relative 'hash_value_extractor'
2
+ require_relative 'input'
3
+
1
4
  module Inferno
2
5
  module Web
3
6
  module Serializers
@@ -1,3 +1,5 @@
1
+ require_relative 'test'
2
+
1
3
  module Inferno
2
4
  module Web
3
5
  module Serializers
@@ -19,11 +21,11 @@ module Inferno
19
21
  end
20
22
  field :test_groups do |group, options|
21
23
  suite_options = options[:suite_options]
22
- TestGroup.render_as_hash(group.groups(suite_options), suite_options: suite_options)
24
+ TestGroup.render_as_hash(group.groups(suite_options), suite_options:)
23
25
  end
24
26
  field :tests do |group, options|
25
27
  suite_options = options[:suite_options]
26
- Test.render_as_hash(group.tests(suite_options), suite_options: suite_options)
28
+ Test.render_as_hash(group.tests(suite_options), suite_options:)
27
29
  end
28
30
  field :inputs do |group, options|
29
31
  suite_options = options[:suite_options]
@@ -1,3 +1,6 @@
1
+ require_relative 'input'
2
+ require_relative 'result'
3
+
1
4
  module Inferno
2
5
  module Web
3
6
  module Serializers
@@ -1,3 +1,7 @@
1
+ require_relative 'preset'
2
+ require_relative 'suite_option'
3
+ require_relative 'test_group'
4
+
1
5
  module Inferno
2
6
  module Web
3
7
  module Serializers
@@ -25,7 +29,7 @@ module Inferno
25
29
  include_view :summary
26
30
  field :test_groups do |suite, options|
27
31
  suite_options = options[:suite_options]
28
- TestGroup.render_as_hash(suite.groups(suite_options), suite_options: suite_options)
32
+ TestGroup.render_as_hash(suite.groups(suite_options), suite_options:)
29
33
  end
30
34
  field :configuration_messages
31
35
  field :inputs do |suite, options|
@@ -25,13 +25,8 @@ module Inferno
25
25
 
26
26
  configure do |config|
27
27
  config.root = File.expand_path('../../..', __dir__)
28
- config.default_namespace = 'inferno'
29
- config.system_dir = File.join('lib', 'inferno', 'config')
30
28
  config.bootable_dirs = [File.join('lib', 'inferno', 'config', 'boot')]
31
-
32
- config.auto_register = 'lib'
29
+ config.component_dirs.add 'lib'
33
30
  end
34
-
35
- load_paths!('lib')
36
31
  end
37
32
  end
@@ -1,15 +1,10 @@
1
1
  Inferno::Application.boot(:web) do |_app|
2
2
  init do
3
3
  require 'blueprinter'
4
- require 'hanami-router'
5
- require 'hanami-controller'
4
+ require 'hanami/router'
5
+ require 'hanami/controller'
6
6
  require 'oj'
7
7
 
8
- Hanami::Controller.configure do
9
- default_request_format :json
10
- default_response_format :json
11
- end
12
-
13
8
  Blueprinter.configure do |config|
14
9
  config.generator = Oj
15
10
  end
@@ -4,4 +4,9 @@ ENV['APP_ENV'] ||= 'development'
4
4
 
5
5
  root_path = Dir.pwd
6
6
 
7
- Dotenv.load(File.join(root_path, '.env'), File.join(root_path, ".env.#{ENV.fetch('APP_ENV', nil)}"))
7
+ Dotenv.load(
8
+ File.join(root_path, ".env.#{ENV.fetch('APP_ENV', nil)}.local"),
9
+ File.join(root_path, '.env.local'),
10
+ File.join(root_path, ".env.#{ENV.fetch('APP_ENV', nil)}"),
11
+ File.join(root_path, '.env')
12
+ )
@@ -58,7 +58,7 @@ module Inferno
58
58
  # @param profile_url [String] url of the profile to validate against,
59
59
  # defaults to validating against the base FHIR resource
60
60
  def assert_valid_resource(resource: self.resource, profile_url: nil)
61
- assert resource_is_valid?(resource: resource, profile_url: profile_url),
61
+ assert resource_is_valid?(resource:, profile_url:),
62
62
  invalid_resource_message(profile_url)
63
63
  end
64
64
 
@@ -100,7 +100,7 @@ module Inferno
100
100
  .map(&:resource)
101
101
  .select { |resource| types_to_check.empty? || types_to_check.include?(resource.resourceType) }
102
102
  .reject do |resource|
103
- validation_params = { resource: resource }
103
+ validation_params = { resource: }
104
104
  profile = types_to_check[resource.resourceType]
105
105
  validation_params[:profile_url] = profile if profile
106
106
 
@@ -37,7 +37,7 @@ module Inferno
37
37
  new_configuration
38
38
  end
39
39
 
40
- self.configuration = configuration.deep_merge(config_to_apply.reject { |key, _| key == :inputs })
40
+ self.configuration = configuration.deep_merge(config_to_apply.except(:inputs))
41
41
 
42
42
  config_to_apply[:inputs]&.each do |identifier, new_input|
43
43
  add_input(identifier, new_input.to_hash)
@@ -58,13 +58,13 @@ module Inferno
58
58
  existing_config = input(identifier)
59
59
 
60
60
  if existing_config.nil?
61
- return inputs[identifier] = Entities::Input.new(default_input_params(identifier).merge(new_config))
61
+ return inputs[identifier] = Entities::Input.new(**default_input_params(identifier).merge(new_config))
62
62
  end
63
63
 
64
64
  inputs[identifier] =
65
65
  Entities::Input
66
- .new(existing_config.to_hash)
67
- .merge(Entities::Input.new(new_config))
66
+ .new(**existing_config.to_hash)
67
+ .merge(Entities::Input.new(**new_config))
68
68
  end
69
69
 
70
70
  def default_input_params(identifier)
@@ -1,3 +1,4 @@
1
+ require_relative 'fhir_client_builder'
1
2
  require_relative 'request_storage'
2
3
  require_relative 'tcp_exception_handler'
3
4
 
@@ -136,7 +137,7 @@ module Inferno
136
137
  store_request_and_refresh_token(fhir_client(client), name) do
137
138
  tcp_exception_handler do
138
139
  fhir_client(client)
139
- .search(fhir_class_from_resource_type(resource_type), { search: search })
140
+ .search(fhir_class_from_resource_type(resource_type), { search: })
140
141
  end
141
142
  end
142
143
  end
@@ -194,7 +195,7 @@ module Inferno
194
195
  name: credentials.name,
195
196
  value: credentials,
196
197
  type: 'oauth_credentials',
197
- test_session_id: test_session_id
198
+ test_session_id:
198
199
  )
199
200
  end
200
201
  rescue StandardError => e
@@ -73,8 +73,8 @@ module Inferno
73
73
  end
74
74
 
75
75
  # @private
76
- def method_missing(name, *args, &block)
77
- return runnable.call(name, *args, &block) if runnable.respond_to? name
76
+ def method_missing(name, *args, &)
77
+ return runnable.call(name, *args, &) if runnable.respond_to? name
78
78
 
79
79
  super
80
80
  end
@@ -45,8 +45,8 @@ module Inferno
45
45
  attr_reader :requirements
46
46
 
47
47
  # @private
48
- def initialize(requirements = nil, &block)
49
- instance_eval(&block)
48
+ def initialize(requirements = nil, &)
49
+ instance_eval(&)
50
50
  @requirements = requirements
51
51
  end
52
52
 
@@ -172,11 +172,10 @@ module Inferno
172
172
  # @param profile_url [String]
173
173
  # @return [String] the body of the validation response
174
174
  def validate(resource, profile_url)
175
- RestClient.post(
176
- "#{url}/validate",
177
- resource.source_contents,
175
+ Faraday.new(
176
+ url,
178
177
  params: { profile: profile_url }
179
- ).body
178
+ ).post('validate', resource.source_contents).body
180
179
  end
181
180
  end
182
181
 
@@ -1,5 +1,6 @@
1
1
  require 'faraday_middleware'
2
2
 
3
+ require_relative 'http_client_builder'
3
4
  require_relative 'request_storage'
4
5
  require_relative 'tcp_exception_handler'
5
6
 
@@ -66,18 +67,17 @@ module Inferno
66
67
  # @param client [Symbol]
67
68
  # @param name [Symbol] Name for this request to allow it to be used by
68
69
  # other tests
69
- # @option options [Hash] Input headers here - headers are optional and
70
- # must be entered as the last piece of input to this method
70
+ # @param headers [Hash] Input headers here
71
71
  # @return [Inferno::Entities::Request]
72
- def get(url = '', client: :default, name: nil, **options)
72
+ def get(url = '', client: :default, name: nil, headers: nil)
73
73
  store_request('outgoing', name) do
74
74
  tcp_exception_handler do
75
75
  client = http_client(client)
76
76
 
77
77
  if client
78
- client.get(url, nil, options[:headers])
78
+ client.get(url, nil, headers)
79
79
  elsif url.match?(%r{\Ahttps?://})
80
- connection.get(url, nil, options[:headers])
80
+ connection.get(url, nil, headers)
81
81
  else
82
82
  raise StandardError, 'Must use an absolute url or define an HTTP client with a base url'
83
83
  end
@@ -102,18 +102,17 @@ module Inferno
102
102
  # @param client [Symbol]
103
103
  # @param name [Symbol] Name for this request to allow it to be used by
104
104
  # other tests
105
- # @option options [Hash] Input headers here - headers are optional and
106
- # must be entered as the last piece of input to this method
105
+ # @param headers [Hash] Input headers here
107
106
  # @return [Inferno::Entities::Request]
108
- def post(url = '', body: nil, client: :default, name: nil, **options)
107
+ def post(url = '', body: nil, client: :default, name: nil, headers: nil)
109
108
  store_request('outgoing', name) do
110
109
  tcp_exception_handler do
111
110
  client = http_client(client)
112
111
 
113
112
  if client
114
- client.post(url, body, options[:headers])
113
+ client.post(url, body, headers)
115
114
  elsif url.match?(%r{\Ahttps?://})
116
- connection.post(url, body, options[:headers])
115
+ connection.post(url, body, headers)
117
116
  else
118
117
  raise StandardError, 'Must use an absolute url or define an HTTP client with a base url'
119
118
  end
@@ -129,16 +128,17 @@ module Inferno
129
128
  # @param client [Symbol]
130
129
  # @param name [Symbol] Name for this request to allow it to be used by
131
130
  # other tests
131
+ # @param headers [Hash] Input headers here
132
132
  # @return [Inferno::Entities::Request]
133
- def delete(url = '', client: :default, name: :nil, **options)
133
+ def delete(url = '', client: :default, name: :nil, headers: nil)
134
134
  store_request('outgoing', name) do
135
135
  tcp_exception_handler do
136
136
  client = http_client(client)
137
137
 
138
138
  if client
139
- client.delete(url, nil, options[:headers])
139
+ client.delete(url, nil, headers)
140
140
  elsif url.match?(%r{\Ahttps?://})
141
- connection.delete(url, nil, options[:headers])
141
+ connection.delete(url, nil, headers)
142
142
  else
143
143
  raise StandardError, 'Must use an absolute url or define an HTTP client with a base url'
144
144
  end
@@ -158,10 +158,9 @@ module Inferno
158
158
  # @param client [Symbol]
159
159
  # @param name [Symbol] Name for this request to allow it to be used by
160
160
  # other tests
161
- # @option options [Hash] Input headers here - headers are optional and
162
- # must be entered as the last piece of input to this method
161
+ # @param headers [Hash] Input headers here
163
162
  # @return [Inferno::Entities::Request]
164
- def stream(block, url = '', limit = 100, client: :default, name: nil, **options)
163
+ def stream(block, url = '', limit = 100, client: :default, name: nil, headers: nil)
165
164
  streamed = []
166
165
 
167
166
  collector = proc do |chunk, bytes|
@@ -175,9 +174,9 @@ module Inferno
175
174
  client = http_client(client)
176
175
 
177
176
  if client
178
- response = client.get(url, nil, options[:headers]) { |req| req.options.on_data = collector }
177
+ response = client.get(url, nil, headers) { |req| req.options.on_data = collector }
179
178
  elsif url.match?(%r{\Ahttps?://})
180
- response = connection.get(url, nil, options[:headers]) { |req| req.options.on_data = collector }
179
+ response = connection.get(url, nil, headers) { |req| req.options.on_data = collector }
181
180
  else
182
181
  raise StandardError, 'Must use an absolute url or define an HTTP client with a base url'
183
182
  end
@@ -11,8 +11,8 @@ module Inferno
11
11
  self.runnable = runnable
12
12
  instance_exec(self, &block)
13
13
 
14
- params = { url: url }
15
- params.merge!(headers: headers) if headers
14
+ params = { url: }
15
+ params.merge!(headers:) if headers
16
16
 
17
17
  Faraday.new(params) do |f|
18
18
  f.request :url_encoded
@@ -44,8 +44,8 @@ module Inferno
44
44
  end
45
45
 
46
46
  # @private
47
- def method_missing(name, *args, &block)
48
- return runnable.call(name, *args, &block) if runnable.respond_to? name
47
+ def method_missing(name, *args, &)
48
+ return runnable.call(name, *args, &) if runnable.respond_to? name
49
49
 
50
50
  super
51
51
  end
@@ -183,7 +183,7 @@ module Inferno
183
183
  config.inputs
184
184
  .slice(*inputs)
185
185
  .each_with_object({}) do |(_, input), inputs|
186
- inputs[input.name.to_sym] = Entities::Input.new(input.to_hash)
186
+ inputs[input.name.to_sym] = Entities::Input.new(**input.to_hash)
187
187
  end
188
188
 
189
189
  available_inputs.each do |input, current_definition|
@@ -49,11 +49,11 @@ module Inferno
49
49
  request =
50
50
  if response.is_a? FHIR::ClientReply
51
51
  Entities::Request.from_fhir_client_reply(
52
- response, direction: direction, name: name, test_session_id: test_session_id
52
+ response, direction:, name:, test_session_id:
53
53
  )
54
54
  else
55
55
  Entities::Request.from_http_response(
56
- response, direction: direction, name: name, test_session_id: test_session_id
56
+ response, direction:, name:, test_session_id:
57
57
  )
58
58
  end
59
59