From 1caf018c74818551a96b75bf433e880faa7d8e65 Mon Sep 17 00:00:00 2001 From: FlexonyoPizza Date: Fri, 17 Apr 2026 11:55:03 -0400 Subject: [PATCH 1/9] Disabled 'AccessModifierDeclarations' cop to disregard declared inlined private methods --- .rubocop.yml | 2 + Gemfile.lock | 140 +++++++++++++++++++++++++++++---------------------- 2 files changed, 82 insertions(+), 60 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 871542bb..67922eed 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -27,6 +27,8 @@ Style/HashTransformKeys: Enabled: true Style/HashTransformValues: Enabled: true +Style/AccessModifierDeclarations: + Enabled: false Style/ModuleFunction: Enabled: false Style/SymbolArray: diff --git a/Gemfile.lock b/Gemfile.lock index 4e3a94e6..1d3cc910 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -10,29 +10,35 @@ PATH GEM remote: https://rubygems.org/ specs: - ast (2.4.2) + ast (2.4.3) bcp47 (0.3.3) i18n byebug (11.1.3) + cgi (0.5.1) coderay (1.1.3) - concurrent-ruby (1.3.1) + concurrent-ruby (1.3.6) coolline (0.5.0) unicode_utils (~> 1.4) + date (3.5.1) date_time_precision (0.8.1) - debug (1.9.2) + debug (1.11.1) irb (~> 1.10) reline (>= 0.3.8) - diff-lcs (1.4.4) - docile (1.3.2) - ffi (1.13.1) - formatador (0.2.5) - guard (2.16.2) + diff-lcs (1.6.2) + docile (1.4.1) + erb (4.0.4) + cgi (>= 0.3.3) + ffi (1.17.4) + formatador (1.2.3) + reline + guard (2.20.1) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) + logger (~> 1.6) lumberjack (>= 1.0.12, < 2.0) nenv (~> 0.1) notiffany (~> 0.0) - pry (>= 0.9.12) + pry (>= 0.13.0) shellany (~> 0.0) thor (>= 0.18.1) guard-compat (1.2.1) @@ -43,73 +49,86 @@ GEM guard-test (2.0.8) guard-compat (~> 1.2) test-unit (~> 3.0) - i18n (1.14.5) + i18n (1.14.8) concurrent-ruby (~> 1.0) - io-console (0.7.2) - irb (1.13.2) + io-console (0.8.2) + irb (1.17.0) + pp (>= 0.6.0) + prism (>= 1.3.0) rdoc (>= 4.0.0) reline (>= 0.4.2) - json (2.3.1) - listen (3.3.1) + json (2.19.3) + listen (3.10.0) + logger rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - lumberjack (1.2.8) - method_source (1.0.0) - mime-types (3.5.2) - mime-types-data (~> 3.2015) - mime-types-data (3.2024.0702) - mini_portile2 (2.8.6) + logger (1.7.0) + lumberjack (1.4.2) + method_source (1.1.0) + mime-types (3.7.0) + logger + mime-types-data (~> 3.2025, >= 3.2025.0507) + mime-types-data (3.2026.0414) + mini_portile2 (2.8.9) nenv (0.3.0) - nokogiri (1.16.5) + nokogiri (1.18.10) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri-diff (0.2.0) + nokogiri-diff (0.3.0) nokogiri (~> 1.5) - tdiff (~> 0.3, >= 0.3.2) + tdiff (~> 0.4) notiffany (0.1.3) nenv (~> 0.1) shellany (~> 0.0) - parallel (1.23.0) - parser (3.2.2.4) + parallel (1.28.0) + parser (3.3.11.1) ast (~> 2.4.1) racc - power_assert (1.2.0) - pry (0.14.2) + power_assert (3.0.1) + pp (0.6.3) + prettyprint + prettyprint (0.2.0) + prism (1.9.0) + pry (0.16.0) coderay (~> 1.1) method_source (~> 1.0) - pry-byebug (3.10.1) + reline (>= 0.6.0) + pry-byebug (3.8.0) byebug (~> 11.0) - pry (>= 0.13, < 0.15) - pry-coolline (0.2.5) + pry (~> 0.10) + pry-coolline (0.2.6) coolline (~> 0.5) - psych (5.1.2) + pry (~> 0.13) + psych (5.3.1) + date stringio - racc (1.8.0) + racc (1.8.1) rainbow (3.1.1) - rake (13.0.1) - rb-fsevent (0.10.4) - rb-inotify (0.10.1) + rake (13.4.2) + rb-fsevent (0.11.2) + rb-inotify (0.11.1) ffi (~> 1.0) - rdoc (6.7.0) + rdoc (7.2.0) + erb psych (>= 4.0.0) - regexp_parser (2.8.2) - reline (0.5.9) + tsort + regexp_parser (2.12.0) + reline (0.6.3) io-console (~> 0.5) - rexml (3.2.8) - strscan (>= 3.0.9) - rspec (3.10.0) - rspec-core (~> 3.10.0) - rspec-expectations (~> 3.10.0) - rspec-mocks (~> 3.10.0) - rspec-core (3.10.0) - rspec-support (~> 3.10.0) - rspec-expectations (3.10.0) + rexml (3.4.4) + rspec (3.13.2) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-core (3.13.6) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.5) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) - rspec-mocks (3.10.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.8) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) - rspec-support (3.10.0) + rspec-support (~> 3.13.0) + rspec-support (3.13.7) rubocop (1.23.0) parallel (~> 1.10) parser (>= 3.0.0.0) @@ -119,8 +138,9 @@ GEM rubocop-ast (>= 1.12.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.30.0) - parser (>= 3.2.1.0) + rubocop-ast (1.49.1) + parser (>= 3.3.7.2) + prism (~> 1.7) ruby-progressbar (1.13.0) shellany (0.0.1) simplecov (0.17.1) @@ -128,13 +148,13 @@ GEM json (>= 1.8, < 3) simplecov-html (~> 0.10.0) simplecov-html (0.10.2) - stringio (3.1.1) - strscan (3.1.0) - tdiff (0.3.4) - test-unit (3.3.6) + stringio (3.2.0) + tdiff (0.4.0) + test-unit (3.7.7) power_assert - thor (1.0.1) - unicode-display_width (2.5.0) + thor (1.5.0) + tsort (0.2.0) + unicode-display_width (2.6.0) unicode_utils (1.4.0) PLATFORMS @@ -160,4 +180,4 @@ RUBY VERSION ruby 3.1.2p20 BUNDLED WITH - 2.2.21 + 2.3.7 From 3419cb94d867fa137667b9ab0f097e15bcc1cd18 Mon Sep 17 00:00:00 2001 From: FlexonyoPizza Date: Fri, 17 Apr 2026 14:20:03 -0400 Subject: [PATCH 2/9] Addressed RuboCop Offenses --- Gemfile | 2 ++ Gemfile.lock | 27 +++++++++++-------- fhir_models.gemspec | 4 +-- lib/fhir_models/bootstrap/model.rb | 8 +++--- lib/fhir_models/bootstrap/preprocess.rb | 2 +- lib/fhir_models/fhir.rb | 2 +- .../fhir_ext/common_structure_definition.rb | 4 +-- .../common_structure_definition_compare.rb | 8 +++--- lib/fhir_models/fhirpath/parse.rb | 2 +- lib/fhir_models/generator/class_generator.rb | 2 +- lib/fhir_models/generator/ig_resources.rb | 2 +- 11 files changed, 35 insertions(+), 28 deletions(-) diff --git a/Gemfile b/Gemfile index 9bd327ec..ceb103de 100644 --- a/Gemfile +++ b/Gemfile @@ -3,6 +3,8 @@ ruby RUBY_VERSION # Specify your gem's dependencies in fhir_models.gemspec gemspec +gem 'rubocop', '~> 1.82', require: false + group :development, :test do gem 'debug' gem 'pry' diff --git a/Gemfile.lock b/Gemfile.lock index 1d3cc910..5cbae2f6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -5,7 +5,7 @@ PATH bcp47 (>= 0.3) date_time_precision (>= 0.8) mime-types (>= 3.0) - nokogiri (>= 1.11.4) + nokogiri (>= 1.18.0) GEM remote: https://rubygems.org/ @@ -58,6 +58,8 @@ GEM rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.19.3) + language_server-protocol (3.17.0.5) + lint_roller (1.1.0) listen (3.10.0) logger rb-fsevent (~> 0.10, >= 0.10.3) @@ -115,7 +117,6 @@ GEM regexp_parser (2.12.0) reline (0.6.3) io-console (~> 0.5) - rexml (3.4.4) rspec (3.13.2) rspec-core (~> 3.13.0) rspec-expectations (~> 3.13.0) @@ -129,15 +130,17 @@ GEM diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) rspec-support (3.13.7) - rubocop (1.23.0) - parallel (~> 1.10) - parser (>= 3.0.0.0) + rubocop (1.86.1) + json (~> 2.3) + language_server-protocol (~> 3.17.0.2) + lint_roller (~> 1.1.0) + parallel (>= 1.10) + parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8, < 3.0) - rexml - rubocop-ast (>= 1.12.0, < 2.0) + regexp_parser (>= 2.9.3, < 3.0) + rubocop-ast (>= 1.49.0, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 3.0) + unicode-display_width (>= 2.4.0, < 4.0) rubocop-ast (1.49.1) parser (>= 3.3.7.2) prism (~> 1.7) @@ -154,7 +157,9 @@ GEM power_assert thor (1.5.0) tsort (0.2.0) - unicode-display_width (2.6.0) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.2.0) unicode_utils (1.4.0) PLATFORMS @@ -172,7 +177,7 @@ DEPENDENCIES pry-coolline rake rspec - rubocop (= 1.23.0) + rubocop (~> 1.82) simplecov (~> 0.17.0) test-unit diff --git a/fhir_models.gemspec b/fhir_models.gemspec index 0ac4f527..966265c4 100644 --- a/fhir_models.gemspec +++ b/fhir_models.gemspec @@ -22,7 +22,7 @@ Gem::Specification.new do |spec| spec.require_paths = ['lib'] spec.required_ruby_version = '>= 3.0.0' - spec.add_dependency 'nokogiri', '>= 1.11.4' + spec.add_dependency 'nokogiri', '>= 1.18.0' spec.add_dependency 'date_time_precision', '>= 0.8' spec.add_dependency 'bcp47', '>= 0.3' spec.add_dependency 'mime-types', '>= 3.0' @@ -35,7 +35,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'rspec' spec.add_development_dependency 'simplecov', '~> 0.17.0' spec.add_development_dependency 'nokogiri-diff' - spec.add_development_dependency 'rubocop', '1.23.0' + spec.add_development_dependency 'rubocop', '~> 1.82' spec.add_development_dependency 'guard-rspec' spec.add_development_dependency 'guard-test' end diff --git a/lib/fhir_models/bootstrap/model.rb b/lib/fhir_models/bootstrap/model.rb index 3ed4ebec..2e6cc80b 100644 --- a/lib/fhir_models/bootstrap/model.rb +++ b/lib/fhir_models/bootstrap/model.rb @@ -163,7 +163,7 @@ def validate_profile(metadata, contained = nil) errors.delete(typename) unless present.include?(typename) end end - errors.keep_if { |_k, v| (v && !v.empty?) } + errors.keep_if { |_k, v| v && !v.empty? } end # ----- validate a field ----- @@ -232,7 +232,7 @@ def validate_field(field, value, contained_here, meta, errors) end has_valid_code = false if meta['valid_codes'] - meta['valid_codes'].each do |_key, codes| + meta['valid_codes'].each_value do |codes| has_valid_code = true unless (codes & the_codes).empty? break if has_valid_code end @@ -287,7 +287,7 @@ def primitive?(datatype, value) def check_binding_uri(uri, value) valid = false # Strip off the |4.0.0 or |4.0.1 or |2014-03-26 or similar from the ends of URLs - uri&.gsub!(/\|[A-Za-z0-9.\-]*/, '') + uri&.gsub!(/\|[A-Za-z0-9.-]*/, '') valueset = versioned_fhir_module::Definitions.get_codes(uri) if ['http://hl7.org/fhir/ValueSet/mimetypes', 'http://www.rfc-editor.org/bcp/bcp13.txt'].include?(uri) @@ -332,7 +332,7 @@ def find_extension(extension_source, method_name) extension_source.select do |extension| name = extension.url.tr('-', '_').split('/').last anchor = name.split('#').last - (method_name.to_s == name || method_name.to_s == anchor) + [name, anchor].include?(method_name.to_s) end end diff --git a/lib/fhir_models/bootstrap/preprocess.rb b/lib/fhir_models/bootstrap/preprocess.rb index 273e0fc6..af960288 100644 --- a/lib/fhir_models/bootstrap/preprocess.rb +++ b/lib/fhir_models/bootstrap/preprocess.rb @@ -92,7 +92,7 @@ def self.pre_process_searchparam(hash) def self.remove_fhir_comments(hash) hash.delete('fhir_comments') - hash.each do |_key, value| + hash.each_value do |value| case value when Hash remove_fhir_comments(value) diff --git a/lib/fhir_models/fhir.rb b/lib/fhir_models/fhir.rb index 230f19ce..0f8dcb75 100644 --- a/lib/fhir_models/fhir.rb +++ b/lib/fhir_models/fhir.rb @@ -74,7 +74,7 @@ def self.primitive?(datatype:, value:) !(value.to_s =~ /\A[A-Za-z0-9\-.]{1,64}\Z/).nil? when 'xhtml' fragment = Nokogiri::HTML::DocumentFragment.parse(value) - value.is_a?(String) && fragment.errors.size.zero? + value.is_a?(String) && fragment.errors.empty? when 'unsignedint' !(value.to_s =~ /\A(0|([1-9][0-9]*))\Z/).nil? when 'positiveint' diff --git a/lib/fhir_models/fhir_ext/common_structure_definition.rb b/lib/fhir_models/fhir_ext/common_structure_definition.rb index 42e8c0e1..dc607d32 100644 --- a/lib/fhir_models/fhir_ext/common_structure_definition.rb +++ b/lib/fhir_models/fhir_ext/common_structure_definition.rb @@ -78,7 +78,7 @@ def valid_json?(json) verify_element(element, json) end - @errors.size.zero? + @errors.empty? end deprecate :is_valid_json?, :valid_json? @@ -410,7 +410,7 @@ def check_binding_element(element, value) if ['http://hl7.org/fhir/ValueSet/mimetypes', 'http://www.rfc-editor.org/bcp/bcp13.txt'].include?(vs_uri) matches = MIME::Types[value] known_weird = ['text/cql', 'application/cql+text', 'application/hl7-v2'].include?(value) - if (matches.nil? || matches.size.zero? || known_weird) && !some_type_of_xml_or_json?(value) + if (matches.nil? || matches.empty? || known_weird) && !some_type_of_xml_or_json?(value) @errors << "#{element.path} has invalid mime-type: '#{value}'" matching_type -= 1 if element.binding.strength == 'required' end diff --git a/lib/fhir_models/fhir_ext/common_structure_definition_compare.rb b/lib/fhir_models/fhir_ext/common_structure_definition_compare.rb index 3599c4fd..bd7aa1b3 100644 --- a/lib/fhir_models/fhir_ext/common_structure_definition_compare.rb +++ b/lib/fhir_models/fhir_ext/common_structure_definition_compare.rb @@ -140,7 +140,7 @@ def compatible?(another_definition) end @errors.flatten! @warnings.flatten! - @errors.size.zero? + @errors.empty? end deprecate :is_compatible?, :compatible? @@ -225,7 +225,7 @@ def compare_extension_definition(x, y, another_definition) x_only = x_profiles - y_profiles shared = x_profiles - x_only - if !shared.nil? && shared.size.zero? + if !shared.nil? && shared.empty? # same name, but different profiles # maybe the profiles are the same, just with different URLs... # ... so we have to compare them, if we can. @@ -269,7 +269,7 @@ def compare_element_definitions(x, y, another_definition) y_only = y_types - x_types shared = x_types - x_only - if !shared.nil? && shared.size.zero? && !x_types.empty? && !y_types.empty? && !x.constraint.empty? && !y.constraint.empty? + if !shared.nil? && shared.empty? && !x_types.empty? && !y_types.empty? && !x.constraint.empty? && !y.constraint.empty? @errors << @finding.error(x.path.to_s, 'type.code', 'Incompatible data types', x_types.to_s, y_types.to_s) end if !x_only.nil? && !x_only.empty? @@ -359,7 +359,7 @@ def compare_element_definitions(x, y, another_definition) y_only = y_constraints - x_constraints shared = x_constraints - x_only - if !shared.nil? && shared.size.zero? && !x.constraint.empty? && !y.constraint.empty? + if !shared.nil? && shared.empty? && !x.constraint.empty? && !y.constraint.empty? @errors << @finding.error(x.path.to_s, 'constraint.xpath', 'Incompatible constraints', x_constraints.map { |z| z.tr(',', ';') }.join(' && ').to_s, y_constraints.map { |z| z.tr(',', ';') }.join(' && ').to_s) end if !x_only.nil? && !x_only.empty? diff --git a/lib/fhir_models/fhirpath/parse.rb b/lib/fhir_models/fhirpath/parse.rb index 676946a7..6b93a449 100644 --- a/lib/fhir_models/fhirpath/parse.rb +++ b/lib/fhir_models/fhirpath/parse.rb @@ -36,7 +36,7 @@ def self.tokenize(expression) end # we may need to reassemble quoted strings again reassemble_strings(tokens) - tokens.delete_if { |token| (token.length.zero? || (token.is_a?(String) && token.match(/\S/).nil?)) } + tokens.delete_if { |token| token.empty? || (token.is_a?(String) && token.match(/\S/).nil?) } FHIR.logger.debug "TOKENS: #{tokens}" tokens end diff --git a/lib/fhir_models/generator/class_generator.rb b/lib/fhir_models/generator/class_generator.rb index fe0c016b..2a8b7fe7 100644 --- a/lib/fhir_models/generator/class_generator.rb +++ b/lib/fhir_models/generator/class_generator.rb @@ -96,7 +96,7 @@ def generate_class(hierarchy, structure_def, top_level: false) if !element['type'].nil? # profiles contains a list of profiles if the datatype is Reference or Extension profiles = [] - element['type'].select { |t| t['code'] == 'Reference' || t['code'] == 'Extension' }.each do |data_type| + element['type'].select { |t| ['Reference', 'Extension'].include?(t['code']) }.each do |data_type| profiles << data_type['targetProfile'] end profiles.reject!(&:nil?) diff --git a/lib/fhir_models/generator/ig_resources.rb b/lib/fhir_models/generator/ig_resources.rb index 3e644374..c193ffea 100644 --- a/lib/fhir_models/generator/ig_resources.rb +++ b/lib/fhir_models/generator/ig_resources.rb @@ -124,7 +124,7 @@ def get_codes(url) end end end - transformed_expansion[url].each { |_system, codes| codes.uniq! } + transformed_expansion[url].each_value(&:uniq!) end transformed_expansion[url] end From c7a34d44abf71ecd12f40e02670b0d60da64a2a9 Mon Sep 17 00:00:00 2001 From: FlexonyoPizza Date: Fri, 17 Apr 2026 16:47:07 -0400 Subject: [PATCH 3/9] Addressed RuboCop Offenses --- .ruby-version | 2 +- Gemfile | 3 +-- Gemfile.lock | 23 +++++++++++------------ fhir_models.gemspec | 3 +-- 4 files changed, 14 insertions(+), 17 deletions(-) diff --git a/.ruby-version b/.ruby-version index ef538c28..9c25013d 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.1.2 +3.3.6 diff --git a/Gemfile b/Gemfile index ceb103de..492643e9 100644 --- a/Gemfile +++ b/Gemfile @@ -3,10 +3,9 @@ ruby RUBY_VERSION # Specify your gem's dependencies in fhir_models.gemspec gemspec -gem 'rubocop', '~> 1.82', require: false - group :development, :test do gem 'debug' gem 'pry' gem 'pry-byebug' + gem 'rubocop', '~> 1.86', require: false end diff --git a/Gemfile.lock b/Gemfile.lock index 5cbae2f6..2138fbb8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -5,7 +5,7 @@ PATH bcp47 (>= 0.3) date_time_precision (>= 0.8) mime-types (>= 3.0) - nokogiri (>= 1.18.0) + nokogiri (>= 1.19.1) GEM remote: https://rubygems.org/ @@ -13,8 +13,8 @@ GEM ast (2.4.3) bcp47 (0.3.3) i18n - byebug (11.1.3) - cgi (0.5.1) + byebug (13.0.0) + reline (>= 0.6.0) coderay (1.1.3) concurrent-ruby (1.3.6) coolline (0.5.0) @@ -26,8 +26,7 @@ GEM reline (>= 0.3.8) diff-lcs (1.6.2) docile (1.4.1) - erb (4.0.4) - cgi (>= 0.3.3) + erb (6.0.3) ffi (1.17.4) formatador (1.2.3) reline @@ -73,7 +72,7 @@ GEM mime-types-data (3.2026.0414) mini_portile2 (2.8.9) nenv (0.3.0) - nokogiri (1.18.10) + nokogiri (1.19.2) mini_portile2 (~> 2.8.2) racc (~> 1.4) nokogiri-diff (0.3.0) @@ -82,7 +81,7 @@ GEM notiffany (0.1.3) nenv (~> 0.1) shellany (~> 0.0) - parallel (1.28.0) + parallel (2.0.1) parser (3.3.11.1) ast (~> 2.4.1) racc @@ -95,9 +94,9 @@ GEM coderay (~> 1.1) method_source (~> 1.0) reline (>= 0.6.0) - pry-byebug (3.8.0) - byebug (~> 11.0) - pry (~> 0.10) + pry-byebug (3.12.0) + byebug (~> 13.0) + pry (>= 0.13, < 0.17) pry-coolline (0.2.6) coolline (~> 0.5) pry (~> 0.13) @@ -177,12 +176,12 @@ DEPENDENCIES pry-coolline rake rspec - rubocop (~> 1.82) + rubocop (~> 1.86) simplecov (~> 0.17.0) test-unit RUBY VERSION - ruby 3.1.2p20 + ruby 3.3.6p108 BUNDLED WITH 2.3.7 diff --git a/fhir_models.gemspec b/fhir_models.gemspec index 966265c4..a2486112 100644 --- a/fhir_models.gemspec +++ b/fhir_models.gemspec @@ -22,7 +22,7 @@ Gem::Specification.new do |spec| spec.require_paths = ['lib'] spec.required_ruby_version = '>= 3.0.0' - spec.add_dependency 'nokogiri', '>= 1.18.0' + spec.add_dependency 'nokogiri', '>= 1.19.1' spec.add_dependency 'date_time_precision', '>= 0.8' spec.add_dependency 'bcp47', '>= 0.3' spec.add_dependency 'mime-types', '>= 3.0' @@ -35,7 +35,6 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'rspec' spec.add_development_dependency 'simplecov', '~> 0.17.0' spec.add_development_dependency 'nokogiri-diff' - spec.add_development_dependency 'rubocop', '~> 1.82' spec.add_development_dependency 'guard-rspec' spec.add_development_dependency 'guard-test' end From fc59692af8a29ce030431f92b09ab0457994c677 Mon Sep 17 00:00:00 2001 From: FlexonyoPizza Date: Mon, 20 Apr 2026 09:29:31 -0400 Subject: [PATCH 4/9] Updated github/workflow ruby versions --- .github/workflows/ruby.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 266855f8..2b28b2a6 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - ruby-version: ['3.0', '3.1', '3.2'] + ruby-version: ['3.2', '3.3'] steps: - uses: actions/checkout@v2 From 88b36a824bd5cc444afa712298b5c75650df914c Mon Sep 17 00:00:00 2001 From: FlexonyoPizza Date: Mon, 20 Apr 2026 12:30:04 -0400 Subject: [PATCH 5/9] parallel version regressed to 1.26.3 to be compatible with ruby 3.2 --- Gemfile | 2 ++ Gemfile.lock | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index 492643e9..94a64a89 100644 --- a/Gemfile +++ b/Gemfile @@ -3,6 +3,8 @@ ruby RUBY_VERSION # Specify your gem's dependencies in fhir_models.gemspec gemspec +gem 'parallel', '1.26.3' + group :development, :test do gem 'debug' gem 'pry' diff --git a/Gemfile.lock b/Gemfile.lock index 2138fbb8..a38c868a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -56,7 +56,7 @@ GEM prism (>= 1.3.0) rdoc (>= 4.0.0) reline (>= 0.4.2) - json (2.19.3) + json (2.19.4) language_server-protocol (3.17.0.5) lint_roller (1.1.0) listen (3.10.0) @@ -81,7 +81,7 @@ GEM notiffany (0.1.3) nenv (~> 0.1) shellany (~> 0.0) - parallel (2.0.1) + parallel (1.26.3) parser (3.3.11.1) ast (~> 2.4.1) racc @@ -171,6 +171,7 @@ DEPENDENCIES guard-rspec guard-test nokogiri-diff + parallel (= 1.26.3) pry pry-byebug pry-coolline From 2b0bdcf05d67878199e5c796d8d1a3fdc06fab11 Mon Sep 17 00:00:00 2001 From: FlexonyoPizza Date: Mon, 20 Apr 2026 14:00:23 -0400 Subject: [PATCH 6/9] require 'ostruct' added to build mock objects. Was autoloaded in previous ruby versions but has to be explicitly stated in ruby 3.3 --- test/unit/profile_validation_test.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/test/unit/profile_validation_test.rb b/test/unit/profile_validation_test.rb index 4dd7dadf..404c7bf8 100644 --- a/test/unit/profile_validation_test.rb +++ b/test/unit/profile_validation_test.rb @@ -1,4 +1,5 @@ require_relative '../test_helper' +require 'ostruct' class ProfileValidationTest < Test::Unit::TestCase ERROR_DIR = File.join('tmp', 'errors', 'ProfileValidationTest') From 6ce11f8ee832ef69c8aeb5fd6d47a5efb6151e0b Mon Sep 17 00:00:00 2001 From: FlexonyoPizza Date: Mon, 27 Apr 2026 14:23:03 -0400 Subject: [PATCH 7/9] Added parallel to test development group --- Gemfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index 94a64a89..7365d7d0 100644 --- a/Gemfile +++ b/Gemfile @@ -3,10 +3,9 @@ ruby RUBY_VERSION # Specify your gem's dependencies in fhir_models.gemspec gemspec -gem 'parallel', '1.26.3' - group :development, :test do gem 'debug' + gem 'parallel', '1.26.3' gem 'pry' gem 'pry-byebug' gem 'rubocop', '~> 1.86', require: false From e170f3715ed35bafab63912d266e865362e9cc0f Mon Sep 17 00:00:00 2001 From: FlexonyoPizza Date: Thu, 30 Apr 2026 09:24:49 -0400 Subject: [PATCH 8/9] Included ruby 3.4 in the CL matrix --- .github/workflows/ruby.yml | 2 +- .tool-versions | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 2b28b2a6..21083154 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - ruby-version: ['3.2', '3.3'] + ruby-version: ['3.2', '3.3' , '3.4'] steps: - uses: actions/checkout@v2 diff --git a/.tool-versions b/.tool-versions index 0b2d8587..5aa8e0c3 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1 +1 @@ -ruby 3.1.2 +ruby 3.3.6 From bfeb5d42bdd458472bc207feaac8bb1d6095f6a9 Mon Sep 17 00:00:00 2001 From: FlexonyoPizza Date: Thu, 30 Apr 2026 09:34:18 -0400 Subject: [PATCH 9/9] removed 3.4 from CL matrix --- .github/workflows/ruby.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 21083154..2b28b2a6 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - ruby-version: ['3.2', '3.3' , '3.4'] + ruby-version: ['3.2', '3.3'] steps: - uses: actions/checkout@v2