Module: Cibuildgem::RubySeries
Instance Method Summary collapse
- #cross_rubies ⇒ Object
- #latest_rubies ⇒ Object
- #latest_version_for_requirements(requirements) ⇒ Object
-
#runtime_version_for_compilation(requirements) ⇒ Object
Get the minimum Ruby version to run the compilation.
- #versions_to_compile_against(requirements) ⇒ Object
- #versions_to_test_against(requirements) ⇒ Object
Instance Method Details
#cross_rubies ⇒ Object
38 39 40 41 42 43 44 45 |
# File 'lib/cibuildgem/ruby_series.rb', line 38 def cross_rubies [ Gem::Version.new("3.4.6"), Gem::Version.new("3.3.8"), Gem::Version.new("3.2.8"), Gem::Version.new("3.1.6"), ] end |
#latest_rubies ⇒ Object
47 48 49 50 51 52 53 54 |
# File 'lib/cibuildgem/ruby_series.rb', line 47 def latest_rubies [ Gem::Version.new("3.4.7"), Gem::Version.new("3.3.9"), Gem::Version.new("3.2.9"), Gem::Version.new("3.1.7"), ] end |
#latest_version_for_requirements(requirements) ⇒ Object
7 8 9 10 11 |
# File 'lib/cibuildgem/ruby_series.rb', line 7 def latest_version_for_requirements(requirements) latest_rubies.find do |ruby_version| requirements.satisfied_by?(ruby_version) end end |
#runtime_version_for_compilation(requirements) ⇒ Object
Get the minimum Ruby version to run the compilation. Getting the minimum Ruby version allows ruby/setup-ruby to download the right MSYS2 toolchain and get the right GCC version. GCC 15.1 is incompatible with Ruby 3.0 and 3.1.
16 17 18 19 20 |
# File 'lib/cibuildgem/ruby_series.rb', line 16 def runtime_version_for_compilation(requirements) latest_rubies.reverse.find do |ruby_version| requirements.satisfied_by?(ruby_version) end end |
#versions_to_compile_against(requirements) ⇒ Object
22 23 24 25 26 |
# File 'lib/cibuildgem/ruby_series.rb', line 22 def versions_to_compile_against(requirements) cross_rubies.select do |ruby_version| requirements.satisfied_by?(ruby_version) end end |
#versions_to_test_against(requirements) ⇒ Object
28 29 30 31 32 33 34 35 36 |
# File 'lib/cibuildgem/ruby_series.rb', line 28 def versions_to_test_against(requirements) selected_rubies = latest_rubies.select do |ruby_version| requirements.satisfied_by?(ruby_version) end.reverse selected_rubies.map do |version| version.segments.tap(&:pop).join(".") end end |