Skip to content
This repository has been archived by the owner on Apr 14, 2021. It is now read-only.

Commit

Permalink
Add support for custom branches in ENV["RGV"]
Browse files Browse the repository at this point in the history
  • Loading branch information
deivid-rodriguez committed Nov 30, 2019
1 parent 0044295 commit c1cfa16
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 25 deletions.
2 changes: 1 addition & 1 deletion spec/rubygems/rubygems.rb
Expand Up @@ -2,7 +2,7 @@

require_relative "../support/rubygems_version_manager"

RubygemsVersionManager.new(ENV["RGV"]).switch
RubygemsVersionManager.new(ENV["RGV"]).prepare

$:.delete("#{Spec::Path.spec_dir}/rubygems")

Expand Down
3 changes: 3 additions & 0 deletions spec/support/rubygems_ext.rb
Expand Up @@ -76,6 +76,9 @@ def setup

require "rubygems/user_interaction"
Gem::DefaultUserInteraction.ui = Gem::SilentUI.new

require_relative "rubygems_version_manager"
RubygemsVersionManager.new(ENV["RGV"]).switch
end

private
Expand Down
38 changes: 14 additions & 24 deletions spec/support/rubygems_version_manager.rb
Expand Up @@ -15,9 +15,13 @@ def initialize(env_version)
def switch
return if use_system?

unrequire_rubygems_if_needed

switch_local_copy_if_needed
end

def prepare
return if use_system?

unrequire_rubygems_if_needed

prepare_environment
end
Expand Down Expand Up @@ -56,21 +60,23 @@ def prepare_environment
end

def rubygems_unrequire_needed?
defined?(Gem::VERSION) && Gem::VERSION != target_gem_version
defined?(Gem::VERSION) && Gem::VERSION != local_copy_version
end

def local_copy_switch_needed?
!env_version_is_path? && target_gem_version != local_copy_version
end

def target_gem_version
@target_gem_version ||= resolve_target_gem_version
!env_version_is_path? && target_tag_version != local_copy_tag
end

def target_tag_version
@target_tag_version ||= resolve_target_tag_version
end

def local_copy_tag
Dir.chdir(local_copy_path) do
sys_exec!("git rev-parse --abbrev-ref HEAD")
end
end

def local_copy_version
gemspec_contents = File.read(local_copy_path.join("lib/rubygems.rb"))
version_regexp = /VERSION = ["'](.*)["']/
Expand Down Expand Up @@ -106,22 +112,6 @@ def expanded_env_version
def resolve_target_tag_version
return "v#{@env_version}" if @env_version.match(/^\d/)

return "master" if @env_version == master_gem_version

@env_version
end

def resolve_target_gem_version
return local_copy_version if env_version_is_path?

return @env_version[1..-1] if @env_version.match(/^v/)

return master_gem_version if @env_version == "master"

@env_version
end

def master_gem_version
"3.1.0.pre1"
end
end

0 comments on commit c1cfa16

Please sign in to comment.