pik 0.2.6 → 0.2.7

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 (47) hide show
  1. data/History.txt +20 -0
  2. data/Manifest.txt +4 -1
  3. data/README.rdoc +40 -17
  4. data/Rakefile +68 -59
  5. data/bin/pik_install +42 -14
  6. data/features/add_command.feature +8 -8
  7. data/features/config_command.feature +1 -2
  8. data/features/default_command.feature +3 -3
  9. data/features/gemsync_command.feature +1 -1
  10. data/features/info_command.feature +62 -0
  11. data/features/install_command.feature +22 -17
  12. data/features/list_command.feature +5 -5
  13. data/features/pik_install.feature +34 -2
  14. data/features/remove_command.feature +2 -2
  15. data/features/run_command.feature +6 -5
  16. data/features/step_definitions/pik_commands.rb +21 -7
  17. data/features/support/env.rb +75 -0
  18. data/features/support/proxy.ru +81 -0
  19. data/features/switch_command.feature +14 -13
  20. data/features/tag_command.feature +5 -5
  21. data/features/uninstall_command.feature +5 -6
  22. data/features/version.feature +2 -1
  23. data/lib/pik.rb +13 -6
  24. data/lib/pik/commands/add_command.rb +13 -1
  25. data/lib/pik/commands/command.rb +6 -6
  26. data/lib/pik/commands/config_command.rb +4 -2
  27. data/lib/pik/commands/devkit_command.rb +69 -0
  28. data/lib/pik/commands/gemsync_command.rb +4 -2
  29. data/lib/pik/commands/help_command.rb +1 -1
  30. data/lib/pik/commands/info_command.rb +35 -14
  31. data/lib/pik/commands/install_command.rb +6 -11
  32. data/lib/pik/commands/list_command.rb +26 -7
  33. data/lib/pik/commands/uninstall_command.rb +4 -4
  34. data/lib/pik/contrib/uri_ext.rb +1 -1
  35. data/lib/pik/core_ext/pathname.rb +2 -2
  36. data/lib/pik/implementations.rb +51 -7
  37. data/lib/pik/version_parser.rb +8 -5
  38. data/spec/html/ruby.htm +61 -15
  39. data/spec/implementations_spec.rb +4 -4
  40. data/spec/pathname_spec.rb +12 -4
  41. data/spec/version_parser_spec.rb +9 -2
  42. data/tools/pik.bat +1 -1
  43. data/tools/pik/pik_runner +1 -1
  44. data/tools/pik/pik_runner.exe +0 -0
  45. data/tools/pik/pik_runner.exy +121 -114
  46. metadata +58 -15
  47. data/features/env.rb +0 -45
@@ -1,3 +1,23 @@
1
+
2
+ === 0.2.7 / 2010-06-15
3
+ * cleaner list output
4
+ * pik switch/use is no longer case sensitive
5
+ '>pik iron' vice '>pik Iron'
6
+ * created devkit implmentation (pik install devkit)
7
+ * created devkit update command (pik devkit update) creates batch files if you install
8
+ a newer version of ruby after devkit.
9
+ * added devkit config option, if you already have it installed:
10
+ >pik config devkit=c:\ruby\devkit
11
+ >pik devkit update
12
+ * fixed Implementations::IronRuby to catch newer versions, and ignore ipy packages
13
+ * improved pik_install instructions
14
+ * pik_install displays usage message when no argument is given
15
+ * fixed some bugs in info command
16
+ * fixed pik.bat to run in tcc/le
17
+ * removed RubyGems dependency ( the executable was causing weird errors with plugins)
18
+ * fixed Implementations::Ruby to catch RC1 7z files
19
+ * fixed regression in version option
20
+
1
21
  === 0.2.6 / 2009-11-08
2
22
 
3
23
  * deprecated checkup command in favor of info command
@@ -6,16 +6,18 @@ bin/pik_install
6
6
  features/add_command.feature
7
7
  features/config_command.feature
8
8
  features/default_command.feature
9
- features/env.rb
10
9
  features/gemsync_command.feature
11
10
  features/help_command.feature
12
11
  features/implode_command.feature
12
+ features/info_command.feature
13
13
  features/install_command.feature
14
14
  features/list_command.feature
15
15
  features/pik_install.feature
16
16
  features/remove_command.feature
17
17
  features/run_command.feature
18
18
  features/step_definitions/pik_commands.rb
19
+ features/support/env.rb
20
+ features/support/proxy.ru
19
21
  features/switch_command.feature
20
22
  features/tag_command.feature
21
23
  features/uninstall_command.feature
@@ -29,6 +31,7 @@ lib/pik/commands/command.rb
29
31
  lib/pik/commands/config_command.rb
30
32
  lib/pik/commands/config_file_editor.rb
31
33
  lib/pik/commands/default_command.rb
34
+ lib/pik/commands/devkit_command.rb
32
35
  lib/pik/commands/gemsync_command.rb
33
36
  lib/pik/commands/help_command.rb
34
37
  lib/pik/commands/implode_command.rb
@@ -44,32 +44,55 @@ Pik is a tool to manage multiple versions of ruby on Windows.
44
44
 
45
45
  Windows, more than one version of Ruby (otherwise, what's the point?) and Rubygems
46
46
 
47
+ * Build dependencies: exerb-mingw, highline, hpricot, crown, upx, wix
48
+
49
+ * Development dependencies: rake, cucumber, rspec, hoe, hoe-git, rack, rack-cache
50
+
47
51
  == INSTALL:
48
52
 
49
- * If you're upgrading from a version <= 0.1.1, you'll want to delete the pik.bat file
50
- from all of your ruby versions. Gem uninstall should do the trick.
51
-
52
- * Install pik to a location that's in your path, but someplace other than your ruby\bin dir
53
- If you're upgrading from a more recent version, pik_install will overwrite the older files as needed.
53
+ * install pik using rubygems.
54
+
55
+ >gem install pik
56
+ ...
54
57
 
55
- >path
56
- PATH=C:\tools\;C:\ruby\186-p368-mingw32\bin;C:\WINDOWS\system32;C:\WINDOWS
58
+ Successfully installed pik-0.2.6
59
+ 1 gem installed
57
60
 
58
- >pik_install C:\tools
59
-
60
- * If this is a first-time install, add all the versions of ruby that you want to use with pik
61
+ After the gem is installed, you can use the 'pik_install' script to install the pik executable. Install pik to a location that's in your path, but someplace other than your ruby\bin dir. For instance, the directory C:\bin is in my path:
62
+
63
+ >path
64
+ PATH=c:\bin;C:\Program Files\Windows Resource Kits\Tools\;c:\ruby\Ruby-186-p383\bin;
65
+
66
+ So I run:
61
67
 
62
- >pik add
63
- Adding: 186: ruby 1.8.6 (2009-03-31 patchlevel 368) [i386-mingw32]
64
- Located at: c:/ruby/186-p368-mingw32/bin
68
+ >pik_install C:\bin
69
+ Thank you for using pik.
70
+
71
+ Installing to C:\bin
72
+
73
+ ...
74
+
75
+ pik is installed
65
76
 
77
+ If you install to a directory that's not in your path, you'll need to add it to the path yourself. Microsoft has good instructions[http://support.microsoft.com/kb/310519] on that. After that, you should be ready to run pik.
78
+
79
+ * If this is a first-time install, look at pik add, and pik install to set up your environment.
80
+
66
81
  >pik add C:\ruby\IronRuby-091\bin
67
82
  Adding: 091: IronRuby 0.9.1.0 on .NET 2.0.0.0
68
83
  Located at: C:/ruby/IronRuby-091/bin
69
84
 
70
- >pik add C:\ruby\jruby-1.4.0RC1\bin
71
- Adding: 140: jruby 1.4.0RC1 (ruby 1.8.7 patchlevel 174) (2009-09-30 80c263b) (Java HotSpot(TM) Client VM 1.6.0_14) [x86-java]
72
- Located at: C:/ruby/jruby-1.4.0RC1/bin
85
+ >pik install ruby
86
+ ** Downloading: http://rubyforge.org/frs/download.php/66874/ruby-1.9.1-p243-i386-mingw32-rc1.7z
87
+ to: c:\installs\ruby-1.9.1-p243-i386-mingw32-rc1.7z
88
+
89
+ ...
90
+
91
+ * If you're upgrading from version 0.2.6, you should be able to upgrade with 'pik update'
92
+
93
+ * If you're upgrading from a version <= 0.1.1, you'll want to delete the pik.bat file
94
+ from all of your ruby versions. Gem uninstall should do the trick.
95
+
73
96
 
74
97
  Note:
75
98
 
@@ -207,7 +230,7 @@ pik run # there
207
230
 
208
231
  (The MIT License)
209
232
 
210
- Copyright (c) 2009 Gordon Thiesfeld
233
+ Copyright (c) 2010 Gordon Thiesfeld
211
234
 
212
235
  Permission is hereby granted, free of charge, to any person obtaining
213
236
  a copy of this software and associated documentation files (the
data/Rakefile CHANGED
@@ -2,11 +2,29 @@
2
2
 
3
3
  require 'rubygems'
4
4
  require 'rbconfig'
5
- require 'win32/process'
5
+ require 'uuid'
6
+ require 'hoe'
7
+
8
+ $LOAD_PATH.unshift('lib')
9
+ require 'pik'
10
+
11
+
12
+ EXE_VERSION = {
13
+ 'version' => {
14
+ 'file_version_number' => "#{Pik::VERSION}.0",
15
+ 'comments' => 'The Ruby version manager for Windows',
16
+ 'product_name' => 'Pik',
17
+ 'file_description' => 'Pik Runner',
18
+ 'original_filename' => 'pik_runner.exe'
19
+ }
20
+ }
21
+
6
22
 
7
23
  ENV['SPEC_OPTS']= '-O spec/spec.opts'
8
24
 
9
- file 'tools/pik/pik_runner.exy' do
25
+ lib = FileList["lib/**/*.rb"]
26
+
27
+ file 'tools/pik/pik_runner.exy', :needs => ['tools/pik/pik_runner'] + lib do
10
28
  Dir.chdir 'tools/pik' do
11
29
  sh('ruby -rexerb/mkexy pik_runner -v')
12
30
  end
@@ -16,24 +34,26 @@ file 'tools/pik/pik_runner.exy' do
16
34
  'type' => 'extension-library'
17
35
  }
18
36
  exy['file']['zlib1.dll'] = zlib1
37
+ exy['resource'] = EXE_VERSION
38
+
19
39
  File.open('tools/pik/pik_runner.exy', 'w+'){ |f| f.puts YAML.dump(exy) }
20
40
  end
21
41
 
22
- file 'tools/pik/pik.exe', :needs => ['tools/pik/pik_runner.exy'] do
42
+ file 'tools/pik/pik_runner.exe', :needs => ['tools/pik/pik_runner.exy'] do
23
43
  Dir.chdir 'tools/pik' do
24
44
  sh('ruby -S exerb pik_runner.exy')
25
45
  sh('upx -9 pik_runner.exe') unless ENV['QUICK']
26
46
  end
27
47
  end
28
48
 
29
- task :build, :needs => 'tools/pik/pik.exe'
49
+ task :build, :needs => 'tools/pik/pik_runner.exe'
30
50
 
31
51
  task :install, :needs => :build do
32
52
  sh('ruby bin/pik_install C:\\bin')
33
53
  end
34
54
 
35
55
  task :clobber_exe do
36
- rm_rf 'tools/pik/pik.exe'
56
+ rm_rf 'tools/pik/pik_runner.exe'
37
57
  end
38
58
 
39
59
  task :clobber_exy, :needs => :clobber_exe do
@@ -45,10 +65,6 @@ task :reinstall, :needs => [:clobber_exy, :install]
45
65
 
46
66
  task :package => :rebuild
47
67
 
48
- require 'hoe'
49
-
50
- $LOAD_PATH.unshift('lib')
51
- require 'pik'
52
68
 
53
69
  Hoe.plugin :git
54
70
 
@@ -98,61 +114,54 @@ end
98
114
  require 'cucumber'
99
115
  require 'cucumber/rake/task'
100
116
 
101
- namespace :cucumber do
117
+ @dir = Pathname(File.dirname(__FILE__))
118
+ @test_versions = {
119
+ 'JRuby' => ['1.5.1'],
120
+ 'IronRuby' => ['0.9.2'],
121
+ 'Ruby' => [
122
+ '1.9.1-p378-1',
123
+ '1.8.6-p398-2',
124
+ '1.8.7-p249-1'
125
+ ]
126
+ }
102
127
 
103
- directory "C:/temp"
104
-
105
- desc "sets up C:\\temp for pik's cuke tests"
106
- task :setup => "C:/temp" do
107
- ENV['HOME'] = "C:\\temp"
108
- sh "pik config installs=\"C:\\temp\\more spaces in path\\ruby\""
109
- sh "pik install jruby"
110
- sh "pik install ironruby"
111
- sh "pik install ruby"
112
- sh "pik install ruby 1.8"
113
- sh "pik gem in rake"
114
- end
115
-
116
- namespace :phonyweb do
117
-
118
- task :start => 'hosts:add' do
119
- @web = Process.create(:app_name => "ruby C:\\scripts\\repo\\pik\\phony_web\\server.rb")
120
- end
121
-
122
- task :kill => 'hosts:remove' do
123
- Process.kill(3, @web.process_id)
124
- end
125
- end
126
-
127
- # this is used with the phony web server for
128
- # testing the install and list command
129
- # without sucking up bandwidth. It also makes the
130
- # tests run faster
131
- namespace :hosts do
132
-
133
- HOSTS = File.join(ENV['SystemRoot'], 'System32','drivers','etc','hosts')
134
- desc "adds fake hosts to system's hosts file"
135
- task :add do
136
- File.open(HOSTS,'a+'){|f|
137
- f.puts "127.0.0.1 www.jruby.org rubyforge.org www.rubyforge.org jruby.kenai.com dist.codehaus.org"
138
- }
139
- end
140
-
141
- desc "remove fake hosts from system's hosts file"
142
- task :remove do
143
- new_hosts = File.open(HOSTS, 'r').readlines.reject{ |i| i =~ /^127\.0\.0\.1 www\.jruby\.org/ }
144
- File.open(HOSTS, 'w+'){|f| f.puts new_hosts }
145
- end
146
-
147
- task :rm => :remove
148
-
149
- end
150
- end
151
128
 
152
129
  Cucumber::Rake::Task.new(:features) do |t|
153
130
  t.cucumber_opts = "features -f html -o ../pik_cucumber.html -f progress"
154
131
  end
155
132
 
156
- task :cuke => ['cucumber:phonyweb:start', :features, 'cucumber:phonyweb:kill']
133
+ task :guid do
134
+ puts
135
+ puts UUID.new.generate.upcase
136
+ end
137
+
138
+ directory 'pkg'
139
+
140
+ @package = 'pik'
141
+
142
+ msi_file = "pkg/#{@package}-#{Pik::VERSION}.msi"
143
+ file msi_file, :needs => 'tools/pik/pik_runner.exe'
144
+
145
+ task :installer, :needs => [msi_file, :light]
146
+
147
+ task :build_env do
148
+ ENV['PATH'] = "#{ENV['ProgramFiles(x86)']}\\Windows Installer XML v3.5\\bin;#{ENV['PATH']}"
149
+ end
150
+
151
+ task :candle, :needs => [:build_env] do
152
+ chdir 'lib/installer/' do
153
+ wxs_files = ["MyInstallDirDialog.wxs",'WixUI_MyInstallDir.wxs' , "#{@package}.wxs"].join(' ')
154
+ # wxs_files = ["#{@package}.wxs"].join(' ')
155
+ sh("candle -nologo #{wxs_files}")
156
+ end
157
+ end
157
158
 
159
+ task :light, :needs => :candle do
160
+ chdir 'lib/installer/' do
161
+ wixobj_files = ["MyInstallDirDialog.wixobj", 'WixUI_MyInstallDir.wixobj', "#{@package}.wixobj"].join(' ')
162
+ # wixobj_files = ["#{@package}.wixobj"].join(' ')
163
+ sh("light -nologo -ext WixUtilExtension -ext WixUIExtension #{wixobj_files} -o ../../#{msi_file}")
164
+ end
165
+ end
158
166
  # vim: syntax=Ruby
167
+
@@ -4,24 +4,52 @@ require 'fileutils'
4
4
 
5
5
  include FileUtils
6
6
 
7
+ usage =<<USAGE
8
+ Usage: pik_install path\\to\\install
9
+
10
+ You should install to a directory that is in your system path,
11
+ or add the directory to your system path. Do not install to
12
+ your ruby's bin directory because pik will remove it from the
13
+ path when switching versions.
14
+
15
+ Example:
16
+
17
+ C:\\>path
18
+
19
+ PATH=C:\\tools;C:\\ruby\\Ruby-186-p383\\bin;C:\\WINDOWS\\system32;...
20
+
21
+ C:\\>pik_install C:\\tools
22
+
23
+ USAGE
24
+ abort usage unless ARGV.first
25
+
7
26
  puts "Thank you for using pik.\n\n"
8
27
 
9
28
  install_dir = ARGV.first
10
29
  tools_dir = File.join(File.dirname(__FILE__), '..', 'tools')
11
30
 
12
- if File.directory?(install_dir)
13
- puts "Installing to #{install_dir}\n\n"
14
- cp File.join(tools_dir, 'pik.bat'), install_dir ,
15
- :verbose => true
16
- mkdir_p File.join(install_dir, 'pik'), :verbose => true
17
- cp File.join(tools_dir, 'pik', 'pik_runner.exe'),
18
- File.join(install_dir, 'pik') ,
19
- :verbose => true
20
-
21
- old_exe = File.join(install_dir, 'pik', 'pik.exe')
22
- rm(old_exe, :verbose => true) if File.exist?(old_exe)
31
+ puts "Installing to #{install_dir}\n\n"
32
+ cp File.join(tools_dir, 'pik.bat'), install_dir ,
33
+ :verbose => true
34
+
35
+ mkdir_p File.join(install_dir, 'pik'), :verbose => true
36
+ cp File.join(tools_dir, 'pik', 'pik_runner.exe'),
37
+ File.join(install_dir, 'pik') ,
38
+ :verbose => true
39
+
40
+ puts "\npik is installed"
41
+
42
+ unless ENV['PATH'].downcase.include?( install_dir.downcase.gsub('/',"\\") )
43
+
44
+ system_path_msg =<<SYSTEM_PATH_MSG
45
+
46
+ The directory you installed to is not in the sytem path.
47
+ #{install_dir}
48
+
49
+ You will need to add it.
23
50
 
24
- puts "\npik is installed"
25
- else
26
- puts "#{install_dir} is not a directory. pik was not installed."
51
+ SYSTEM_PATH_MSG
52
+
53
+ puts system_path_msg
54
+
27
55
  end
@@ -13,13 +13,13 @@ Feature: add command
13
13
 
14
14
  Scenario: add a version
15
15
  Given I have an empty config.yml
16
- When I run "pik add C:\ruby\186-p368-mingw32\bin"
17
- Then I should see "Adding: 186: ruby 1.8.6 (2009-03-31 patchlevel 368) [i386-mingw32]"
18
- And I should see "Located at: C:\ruby\186-p368-mingw32\bin"
16
+ When I run "pik add c:\bin\Pik\Ruby-186-p398\bin"
17
+ Then I should see "Adding: 186: ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32]"
18
+ And I should see "Located at: C:\bin\Pik\Ruby-186-p398\bin"
19
19
 
20
20
  Scenario: add a version that has already been added
21
- Given I have already added "ruby 1.8.6 (2009-08-04 patchlevel 383) [i386-mingw32]"
22
- When I run "pik add "C:\temp\more spaces in path\ruby\Ruby-186-p383\bin""
21
+ Given I have already added "ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32]"
22
+ When I run "pik add "C:\temp\more spaces in path\ruby\Ruby-186-p398-2\bin""
23
23
  Then I should see "This version has already been added."
24
24
  And nothing should be added to the config file.
25
25
 
@@ -29,8 +29,8 @@ Feature: add command
29
29
 
30
30
  Scenario: add a version with spaces in the path.
31
31
  Given I have an empty config.yml
32
- When I run "pik add "C:\temp\more spaces in path\ruby\jruby-140RC2\bin""
33
- Then I should see "Adding: 140: jruby 1.4.0RC2 (ruby 1.8.7 patchlevel 174)"
34
- And I should see "Located at: C:\temp\more spaces in path\ruby\jruby-140RC2\bin"
32
+ When I run "pik add "C:\temp\more spaces in path\ruby\JRuby-151\bin""
33
+ Then I should see "Adding: 151: jruby 1.5.1 (ruby 1.8.7 patchlevel 249)"
34
+ And I should see "Located at: C:\temp\more spaces in path\ruby\JRuby-151\bin"
35
35
 
36
36
 
@@ -5,8 +5,7 @@ Feature: config command
5
5
  That allows her to configure pik's behavior.
6
6
 
7
7
  Scenario: config gem_home
8
- Given I have already added "ruby 1.8.6 (2009-08-04 patchlevel 383) [i386-mingw32]"
9
- And I am currently using it.
8
+ Given I am currently using "ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32]"
10
9
  When I run "pik config gem_home default"
11
10
  Then a gem_home option should be added to the config.
12
11
 
@@ -5,7 +5,7 @@ Feature: default command
5
5
  That allows her to switch back to the system defined version.
6
6
 
7
7
  Scenario: switching to the default version
8
- Given I am currently using "ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32]"
8
+ Given I am currently using "ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32]"
9
9
  When I run "pik default -v" and check the path
10
- Then I should see "ruby 1.8.6 (2009-08-04 patchlevel 383) [i386-mingw32]"
11
- And the path should point to "c:\ruby\Ruby-186-p383\bin"
10
+ Then I should see "ruby 1.8.7 (2010-01-10 patchlevel 249) [i386-mingw32]"
11
+ And the path should point to "C:\Ruby\ruby-187-p249\bin"
@@ -12,7 +12,7 @@ Feature: gemsync command
12
12
  And I should see "Installing hoe"
13
13
 
14
14
  Scenario: attempt to sync to different platform
15
- When I run "pik Ir 91" and "pik gemsync 186 mi -q -d",
15
+ When I run "pik iron" and "pik gemsync 186 mi -q -d",
16
16
  Then I should see "You appear to be attempting a gemsync from a different platform."
17
17
 
18
18
 
@@ -0,0 +1,62 @@
1
+ Feature: info command
2
+ In order to add ruby versions to pik
3
+ A developer
4
+ Wants a command line interface
5
+ So that she can add versions.
6
+
7
+ Scenario: Info command
8
+ When I run "pik info"
9
+ Then I should see
10
+ """
11
+ ruby:
12
+ interpreter: "ruby"
13
+ version: "1.8.6"
14
+ date: "2010-02-04"
15
+ platform: "i386-mingw32"
16
+ patchlevel: "398"
17
+ full_version: "ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32]"
18
+
19
+ homes:
20
+ gem: "C:\temp\more spaces in path\ruby\Ruby-186-p398-2\lib\ruby\gems\1.8"
21
+ ruby: "C:\temp\more spaces in path\ruby\Ruby-186-p398-2"
22
+
23
+ binaries:
24
+ ruby: "C:\temp\more spaces in path\ruby\Ruby-186-p398-2\bin"
25
+ irb: "C:\temp\more spaces in path\ruby\Ruby-186-p398-2\bin\irb.bat"
26
+ gem: "C:\temp\more spaces in path\ruby\Ruby-186-p398-2\bin\gem.bat"
27
+ rake: "C:\temp\more spaces in path\ruby\Ruby-186-p398-2\bin\rake.bat"
28
+
29
+ environment:
30
+ GEM_HOME: ""
31
+ HOME: "C:\temp\path with spaces"
32
+ IRBRC: ""
33
+ RUBYOPT: "-rubygems"
34
+
35
+ file associations:
36
+ .rb: "C:\Ruby\ruby-187-p249\bin\ruby.exe" "%1" %*
37
+ .rbw: "C:\Ruby\ruby-187-p249\bin\rubyw.exe" "%1" %*
38
+ """
39
+
40
+
41
+ Scenario: No ruby in path
42
+ Given there is no ruby version in the path
43
+ When I run "pik info"
44
+ Then I should see
45
+ """
46
+
47
+ Pik info will not work unless there is a version of ruby in the path.
48
+
49
+ You can use pik switch to add one.
50
+
51
+ """
52
+
53
+ Scenario: Multiple rubies in path
54
+ Given there is more than one ruby version in the path
55
+ When I run "pik info"
56
+ Then I should see
57
+ """
58
+
59
+ warning: There is more than one version of ruby in the system path
60
+ C:\temp\more spaces in path\ruby\Ruby-191-p378-1\bin
61
+ C:\temp\more spaces in path\ruby\Ruby-186-p398-2\bin
62
+ """