Skip to content

Commit d58057a

Browse files
committed
Fix preview version resolution
1 parent 16bb3b2 commit d58057a

File tree

2 files changed

+35
-5
lines changed

2 files changed

+35
-5
lines changed

lib/shopify_ruby_definitions/ruby_versions.rb

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,19 @@
22

33
module ShopifyRubyDefinitions
44
module RubyVersions
5+
class << self
6+
def build_version_overrides(all_versions)
7+
all_versions.sort_by do |version|
8+
version.scan(/\d+/).map(&:to_i)
9+
end.to_h do |version|
10+
[version.partition("-pshopify").first, version]
11+
end.freeze
12+
end
13+
end
14+
515
VERSIONS_DIRECTORY = File.expand_path("../../../rubies", __FILE__)
616
ALL_VERSIONS = Dir["#{VERSIONS_DIRECTORY}/*"].map { |f| File.basename(f) }
7-
VERSION_OVERRIDES = ALL_VERSIONS.sort_by do |version|
8-
version.scan(/\d+/).map(&:to_i)
9-
end.to_h do |version|
10-
[version.split("-").first, version]
11-
end.freeze
17+
VERSION_OVERRIDES = build_version_overrides(ALL_VERSIONS)
1218

1319
def version_overrides
1420
VERSION_OVERRIDES

test/shopify_ruby_definitions/test_ruby_versions.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,29 @@ def test_version_overrides
2020
def test_resolve_version
2121
assert_equal("3.0.2-pshopify3", ShopifyRubyDefinitions.resolve_version("3.0"))
2222
end
23+
24+
def test_resolve_preview_version
25+
with_versions(["3.3.0-preview2-pshopify1", "3.3.0-pshopify1"]) do
26+
assert_equal("3.3.0-preview2-pshopify1", ShopifyRubyDefinitions.resolve_version("3.3.0-preview2"))
27+
assert_equal("3.3.0-pshopify1", ShopifyRubyDefinitions.resolve_version("3.3"))
28+
end
29+
end
30+
31+
private
32+
33+
def with_versions(new_versions)
34+
old_versions = RubyVersions::ALL_VERSIONS
35+
old_version_overrides = RubyVersions::VERSION_OVERRIDES
36+
RubyVersions.send(:remove_const, :ALL_VERSIONS)
37+
RubyVersions.const_set(:ALL_VERSIONS, new_versions)
38+
RubyVersions.send(:remove_const, :VERSION_OVERRIDES)
39+
RubyVersions.const_set(:VERSION_OVERRIDES, RubyVersions.build_version_overrides(new_versions))
40+
yield
41+
ensure
42+
RubyVersions.send(:remove_const, :ALL_VERSIONS)
43+
RubyVersions.const_set(:ALL_VERSIONS, old_versions)
44+
RubyVersions.send(:remove_const, :VERSION_OVERRIDES)
45+
RubyVersions.const_set(:VERSION_OVERRIDES, old_version_overrides)
46+
end
2347
end
2448
end

0 commit comments

Comments
 (0)