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.
- data/History.txt +20 -0
- data/Manifest.txt +4 -1
- data/README.rdoc +40 -17
- data/Rakefile +68 -59
- data/bin/pik_install +42 -14
- data/features/add_command.feature +8 -8
- data/features/config_command.feature +1 -2
- data/features/default_command.feature +3 -3
- data/features/gemsync_command.feature +1 -1
- data/features/info_command.feature +62 -0
- data/features/install_command.feature +22 -17
- data/features/list_command.feature +5 -5
- data/features/pik_install.feature +34 -2
- data/features/remove_command.feature +2 -2
- data/features/run_command.feature +6 -5
- data/features/step_definitions/pik_commands.rb +21 -7
- data/features/support/env.rb +75 -0
- data/features/support/proxy.ru +81 -0
- data/features/switch_command.feature +14 -13
- data/features/tag_command.feature +5 -5
- data/features/uninstall_command.feature +5 -6
- data/features/version.feature +2 -1
- data/lib/pik.rb +13 -6
- data/lib/pik/commands/add_command.rb +13 -1
- data/lib/pik/commands/command.rb +6 -6
- data/lib/pik/commands/config_command.rb +4 -2
- data/lib/pik/commands/devkit_command.rb +69 -0
- data/lib/pik/commands/gemsync_command.rb +4 -2
- data/lib/pik/commands/help_command.rb +1 -1
- data/lib/pik/commands/info_command.rb +35 -14
- data/lib/pik/commands/install_command.rb +6 -11
- data/lib/pik/commands/list_command.rb +26 -7
- data/lib/pik/commands/uninstall_command.rb +4 -4
- data/lib/pik/contrib/uri_ext.rb +1 -1
- data/lib/pik/core_ext/pathname.rb +2 -2
- data/lib/pik/implementations.rb +51 -7
- data/lib/pik/version_parser.rb +8 -5
- data/spec/html/ruby.htm +61 -15
- data/spec/implementations_spec.rb +4 -4
- data/spec/pathname_spec.rb +12 -4
- data/spec/version_parser_spec.rb +9 -2
- data/tools/pik.bat +1 -1
- data/tools/pik/pik_runner +1 -1
- data/tools/pik/pik_runner.exe +0 -0
- data/tools/pik/pik_runner.exy +121 -114
- metadata +58 -15
- data/features/env.rb +0 -45
@@ -5,25 +5,30 @@ Feature: install command
|
|
5
5
|
So that he can download and install them
|
6
6
|
|
7
7
|
Scenario: install from the intarwebs
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
And I should see "
|
12
|
-
And I should see "**
|
8
|
+
When I run "pik rm 191 -f -q"
|
9
|
+
When I run "pik install ruby 1.9.1"
|
10
|
+
Then I should see "** Downloading: http://rubyforge.org/frs/download.php/71082/ruby-1.9.1-p378-i386-mingw32-1.7z"
|
11
|
+
And I should see " to: C:\temp\path with spaces\downloads\ruby-1.9.1-p378-i386-mingw32-1.7z"
|
12
|
+
And I should see "** Extracting: C:\temp\path with spaces\downloads\ruby-1.9.1-p378-i386-mingw32-1.7z"
|
13
|
+
And I should see "** Adding: 191: ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32]"
|
13
14
|
|
14
15
|
|
15
16
|
Scenario: install IronRuby
|
16
|
-
When I run "pik
|
17
|
-
|
18
|
-
|
19
|
-
And I should see "
|
20
|
-
And I should see "**
|
21
|
-
And I should see "
|
17
|
+
When I run "pik rm iron 92 -f -q"
|
18
|
+
When I run "pik in ironruby 0.9.2"
|
19
|
+
Then I should see "** Downloading: http://rubyforge.org/frs/download.php/66606/ironruby-0.9.2.zip"
|
20
|
+
And I should see " to: C:\temp\path with spaces\downloads\ironruby-0.9.2.zip"
|
21
|
+
And I should see "** Extracting: C:\temp\path with spaces\downloads\ironruby-0.9.2.zip"
|
22
|
+
And I should see "** Adding: 092: IronRuby 0.9.2.0 on .NET 2.0.0.0"
|
23
|
+
And I should see " Located at: C:\temp\path with spaces\IronRuby-092\bin"
|
22
24
|
|
23
|
-
Scenario: install Ruby 1.8.
|
25
|
+
Scenario: install Ruby 1.8.7
|
26
|
+
When I run "pik rm 187-test -f -q"
|
27
|
+
When I run "pik rm 187 249 -f -q"
|
24
28
|
When I run "pik in ruby 1.8"
|
25
|
-
Then I should see "** Downloading: http://rubyforge.org/frs/download.php/
|
26
|
-
And I should see " to: C:\temp\path with spaces\downloads\ruby-1.8.
|
27
|
-
And I should see "** Extracting: C:\temp\path with spaces\downloads\ruby-1.8.
|
28
|
-
And I should see "** Adding:
|
29
|
-
And I should see " Located at: C:\temp\path with spaces\Ruby-
|
29
|
+
Then I should see "** Downloading: http://rubyforge.org/frs/download.php/71081/ruby-1.8.7-p249-i386-mingw32-1.7z"
|
30
|
+
And I should see " to: C:\temp\path with spaces\downloads\ruby-1.8.7-p249-i386-mingw32-1.7z"
|
31
|
+
And I should see "** Extracting: C:\temp\path with spaces\downloads\ruby-1.8.7-p249-i386-mingw32-1.7z"
|
32
|
+
And I should see "** Adding: 187: ruby 1.8.7 (2010-01-10 patchlevel 249) [i386-mingw32]"
|
33
|
+
And I should see " Located at: C:\temp\path with spaces\Ruby-187-p249-1\bin"
|
34
|
+
|
@@ -6,15 +6,15 @@ Feature: list command
|
|
6
6
|
|
7
7
|
Scenario: list versions
|
8
8
|
When I run "pik list"
|
9
|
-
Then I should find "
|
9
|
+
Then I should find "^ \d+\: .+ruby"
|
10
10
|
|
11
11
|
Scenario: Determining the current ruby version from the list
|
12
12
|
When I run "pik list"
|
13
|
-
Then I should find "
|
13
|
+
Then I should find "^\* \d+\: .+$"
|
14
14
|
|
15
15
|
Scenario: list verbose output
|
16
16
|
When I run "pik list -v"
|
17
|
-
Then I should find "
|
17
|
+
Then I should find "^\* \d+\: .+$"
|
18
18
|
And I should find "path\: C\:[\\\/].+"
|
19
19
|
|
20
20
|
Scenario: list remote packages
|
@@ -22,6 +22,6 @@ Feature: list command
|
|
22
22
|
And I should see "IronRuby:"
|
23
23
|
And I should see "0.9.1:"
|
24
24
|
And I should see "JRuby:"
|
25
|
-
And I should see "1.4.
|
25
|
+
And I should see "1.4.1:"
|
26
26
|
Then I should see "Ruby:"
|
27
|
-
And I should see " 1.
|
27
|
+
And I should see " 1.9.1-p378"
|
@@ -13,7 +13,6 @@ Feature: pik_install binary script
|
|
13
13
|
And I should see "pik is installed"
|
14
14
|
And I should see "To get help with a command"
|
15
15
|
|
16
|
-
|
17
16
|
Scenario: pik_install to path with spaces
|
18
17
|
Given I have not installed pik to C:\temp\path with spaces\bin
|
19
18
|
And "C:\temp\path with spaces\bin" is in the system path
|
@@ -21,4 +20,37 @@ Feature: pik_install binary script
|
|
21
20
|
And then I run "pik help"
|
22
21
|
Then I should see "Installing to C:\temp\path with spaces\bin"
|
23
22
|
And I should see "pik is installed"
|
24
|
-
And I should see "To get help with a command"
|
23
|
+
And I should see "To get help with a command"
|
24
|
+
|
25
|
+
Scenario: pik_install with no arguments
|
26
|
+
Given I have not installed pik to C:\temp\path with spaces\bin
|
27
|
+
When I run "pik_install"
|
28
|
+
Then I should see
|
29
|
+
"""
|
30
|
+
Usage: pik_install path\to\install
|
31
|
+
|
32
|
+
You should install to a directory that is in your system path,
|
33
|
+
or add the directory to your system path. Do not install to
|
34
|
+
your ruby's bin directory because pik will remove it from the
|
35
|
+
path when switching versions.
|
36
|
+
|
37
|
+
Example:
|
38
|
+
|
39
|
+
C:\>path
|
40
|
+
|
41
|
+
PATH=C:\tools;C:\ruby\Ruby-186-p383\bin;C:\WINDOWS\system32;...
|
42
|
+
|
43
|
+
C:\>pik_install C:\tools
|
44
|
+
|
45
|
+
"""
|
46
|
+
|
47
|
+
Scenario: pik_install to dir not in system path
|
48
|
+
Given I have not installed pik to C:\temp\path with spaces\bin
|
49
|
+
When I run "pik_install "C:\temp\path with spaces\bin""
|
50
|
+
Then I should see
|
51
|
+
"""
|
52
|
+
The directory you installed to is not in the sytem path.
|
53
|
+
C:\temp\path with spaces\bin
|
54
|
+
|
55
|
+
You will need to add it.
|
56
|
+
"""
|
@@ -5,7 +5,7 @@ Feature: remove command
|
|
5
5
|
So that she can remove versions.
|
6
6
|
|
7
7
|
Scenario: remove a version from the config
|
8
|
-
Given I have already added "ruby 1.8.6 (
|
9
|
-
When I run "pik remove 186
|
8
|
+
Given I have already added "ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32]"
|
9
|
+
When I run "pik remove 186 398 -f"
|
10
10
|
Then I should see "removed"
|
11
11
|
And the version should be removed.
|
@@ -6,22 +6,23 @@ Feature: run command
|
|
6
6
|
|
7
7
|
Scenario: run code
|
8
8
|
When I run "pik run "path""
|
9
|
-
Then I should find "PATH="
|
9
|
+
Then I should find "PATH=" 6 times
|
10
10
|
And I should see each version's path listed
|
11
11
|
And I should see each version listed.
|
12
12
|
|
13
13
|
Scenario: ruby command
|
14
14
|
When I run "pik ruby -e "puts 'hello world!'" "
|
15
|
-
Then I should find "hello world!"
|
15
|
+
Then I should find "hello world!" 6 times
|
16
16
|
And I should see each version listed.
|
17
17
|
|
18
18
|
Scenario: gem command
|
19
19
|
When I run "pik gem -v"
|
20
|
-
Then I should find "\n\d\.\d\.\d\n"
|
20
|
+
#Then I should find "\n\d\.\d\.\d\n" 6 times
|
21
21
|
And I should see each version listed.
|
22
22
|
|
23
23
|
Scenario: rake command
|
24
24
|
When I run "pik rake -V"
|
25
|
-
Then I should find "rake, version \d\.\d\.\d\n"
|
25
|
+
Then I should find "rake, version \d\.\d\.\d\n" 6 times
|
26
26
|
And I should see each version listed.
|
27
|
-
|
27
|
+
|
28
|
+
|
@@ -54,18 +54,22 @@ Given /^there is no ruby version in the path$/ do
|
|
54
54
|
ENV['PATH'] = SearchPath.new(REAL_PATH).remove(Which::Ruby.find).join
|
55
55
|
end
|
56
56
|
|
57
|
-
Given /^
|
58
|
-
|
59
|
-
FileUtils.mkdir_p path
|
60
|
-
Dir[path + "\\pik.bat"].should be_empty
|
57
|
+
Given /^there is more than one ruby version in the path$/ do
|
58
|
+
Given "\"#{OTHER_RUBY}\" is in the system path"
|
61
59
|
end
|
62
60
|
|
63
61
|
Given /^"(.*)" is in the system path$/ do |arg1|
|
64
62
|
ENV['PATH'] = [arg1, ENV['PATH']].join(';')
|
65
63
|
end
|
66
64
|
|
67
|
-
|
68
|
-
|
65
|
+
Given /^I have not installed pik to (.+)$/ do |path|
|
66
|
+
FileUtils.rm_rf path if File.exist? path
|
67
|
+
FileUtils.mkdir_p path
|
68
|
+
Dir[path + "\\pik.bat"].should be_empty
|
69
|
+
end
|
70
|
+
|
71
|
+
When /^I run "pik_install(.*)"$/ do |args|
|
72
|
+
%x[ruby bin/pik_install#{args} > #{PIK_LOG} 2>&1 ]
|
69
73
|
end
|
70
74
|
|
71
75
|
When /^I run "pik (.+?)" and "pik (.+)",$/ do |args1, args2|
|
@@ -94,7 +98,12 @@ Then /^I should see the Pik::VERSION$/ do
|
|
94
98
|
stdout = File.read(PIK_LOG)
|
95
99
|
stdout.should match(Regexp.new(Regexp.escape(Pik::VERSION)))
|
96
100
|
end
|
97
|
-
|
101
|
+
|
102
|
+
Then /^I should not see "([^\"]*)"$/ do |arg1|
|
103
|
+
stdout = File.read(PIK_LOG)
|
104
|
+
stdout.should_not match(Regexp.new(Regexp.escape(arg1)))
|
105
|
+
end
|
106
|
+
|
98
107
|
Then /^I should find "(.*)"$/ do |regexp|
|
99
108
|
stdout = File.read(PIK_LOG)
|
100
109
|
stdout.should match(Regexp.new(regexp))
|
@@ -168,4 +177,9 @@ Then /^a gem_home option should be added to the config\.$/ do
|
|
168
177
|
@current_config = YAML.load(File.read(@config_file))
|
169
178
|
@ver = @current_config.keys.grep(@version_reg){|k| @current_config[k] }
|
170
179
|
@ver[0][:gem_home].should_not be_nil
|
180
|
+
end
|
181
|
+
|
182
|
+
Then /^I should see$/ do |string|
|
183
|
+
stdout = File.read(PIK_LOG)
|
184
|
+
stdout.should include(string)
|
171
185
|
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
config=<<CONFIG
|
2
|
+
---
|
3
|
+
"092: IronRuby 0.9.2.0 on .NET 2.0.0.0":
|
4
|
+
:path: !ruby/object:Pathname
|
5
|
+
path: C:/temp/more spaces in path/ruby/IronRuby-092/bin
|
6
|
+
"151: jruby 1.5.1 (ruby 1.8.7 patchlevel 249) (2010-06-06 f3a3480) (Java HotSpot(TM) Client VM 1.6.0_18) [x86-java]":
|
7
|
+
:path: !ruby/object:Pathname
|
8
|
+
path: C:/temp/more spaces in path/ruby/JRuby-151/bin
|
9
|
+
"186: ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32]":
|
10
|
+
:path: !ruby/object:Pathname
|
11
|
+
path: C:/temp/more spaces in path/ruby/Ruby-186-p398-2/bin
|
12
|
+
"187-test: ruby 1.8.7 (2010-01-10 patchlevel 249) [i386-mingw32]":
|
13
|
+
:path: !ruby/object:Pathname
|
14
|
+
path: C:/temp/more spaces in path/ruby/Ruby-187-p249-1/bin
|
15
|
+
"187: ruby 1.8.7 (2010-01-10 patchlevel 249) [i386-mingw32]":
|
16
|
+
:path: !ruby/object:Pathname
|
17
|
+
path: C:/Ruby/ruby-187-p249/bin
|
18
|
+
"191: ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32]":
|
19
|
+
:path: !ruby/object:Pathname
|
20
|
+
path: C:/temp/more spaces in path/ruby/Ruby-191-p378-1/bin
|
21
|
+
---
|
22
|
+
:download_dir: !ruby/object:Pathname
|
23
|
+
path: C:\\temp\\path with spaces\\downloads
|
24
|
+
:install_dir: !ruby/object:Pathname
|
25
|
+
path: C:\\temp\\path with spaces
|
26
|
+
CONFIG
|
27
|
+
|
28
|
+
require 'yaml'
|
29
|
+
require 'pathname'
|
30
|
+
require 'fileutils'
|
31
|
+
require 'lib/pik'
|
32
|
+
require 'rbconfig'
|
33
|
+
require 'win32/process'
|
34
|
+
|
35
|
+
REAL_PATH = SearchPath.new(ENV['PATH']).replace(RbConfig::CONFIG['bindir'], 'C:\temp\more spaces in path\ruby\Ruby-186-p398-2\bin').join
|
36
|
+
OTHER_RUBY = 'c:\\temp\\more spaces in path\\ruby\\Ruby-191-p378-1\\bin'
|
37
|
+
|
38
|
+
ENV['HOME'] = "C:\\temp\\path with spaces"
|
39
|
+
ENV['http_proxy'] = "http://localhost:9292"
|
40
|
+
|
41
|
+
PIK_LOG = 'log\\output.log'
|
42
|
+
TEST_PIK_HOME = Pathname.new( ENV['HOME'] || ENV['USERPROFILE'] ) + '.pik'
|
43
|
+
FAKE_PIK_HOME = 'c:/temp/path with spaces/.pik'
|
44
|
+
PID_FILE = 'c:/temp/proxy/proxy.pid'
|
45
|
+
|
46
|
+
|
47
|
+
def start_proxy
|
48
|
+
proxy = Pathname.new( File.dirname(__FILE__)) + 'proxy.ru'
|
49
|
+
log = File.new("c:/temp/proxy/proxy.log", 'w+')
|
50
|
+
Process.create(:app_name => "rackup.bat #{proxy} -s webrick --pid \"#{PID_FILE}\"", :startup_info => {:stdout => log.fileno, :stderr => log.fileno})
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
def stop_proxy
|
55
|
+
if File.exist?(PID_FILE)
|
56
|
+
pid = File.read(PID_FILE).to_i
|
57
|
+
Process.kill(3,pid)
|
58
|
+
FileUtils.rm(PID_FILE)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
start_proxy
|
63
|
+
|
64
|
+
at_exit do
|
65
|
+
stop_proxy
|
66
|
+
end
|
67
|
+
|
68
|
+
|
69
|
+
Before do
|
70
|
+
ENV['PATH'] = REAL_PATH
|
71
|
+
FileUtils.rm_rf FAKE_PIK_HOME
|
72
|
+
FileUtils.mkdir_p FAKE_PIK_HOME
|
73
|
+
File.open(File.join(FAKE_PIK_HOME, 'config.yml'), 'w'){|f| f.puts config }
|
74
|
+
end
|
75
|
+
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# require "net/http"
|
2
|
+
|
3
|
+
# Example Usage:
|
4
|
+
|
5
|
+
# use Rack::Proxy do |req|
|
6
|
+
# if req.path =~ %r{^/remote/service.php$}
|
7
|
+
# URI.parse("http://remote-service-provider.com/service-end-point.php?#{req.query}")
|
8
|
+
# end
|
9
|
+
# end
|
10
|
+
#
|
11
|
+
# run proc{|env| [200, {"Content-Type" => "text/plain"}, ["Ha ha ha"]] }
|
12
|
+
#
|
13
|
+
|
14
|
+
require 'rack/cache'
|
15
|
+
require 'logger'
|
16
|
+
|
17
|
+
module Rack::Cache
|
18
|
+
class Request < Rack::Request
|
19
|
+
# True when the Cache-Control/no-cache directive is present or the
|
20
|
+
# Pragma header is set to no-cache.
|
21
|
+
def no_cache?
|
22
|
+
false
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class Response
|
27
|
+
# Determine if the response is "fresh". Fresh responses may be served from
|
28
|
+
# cache without any interaction with the origin. A response is considered
|
29
|
+
# fresh when it includes a Cache-Control/max-age indicator or Expiration
|
30
|
+
# header and the calculated age is less than the freshness lifetime.
|
31
|
+
def fresh?
|
32
|
+
true
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
use Rack::Cache,
|
38
|
+
:verbose => false,
|
39
|
+
:metastore => 'file:C:/temp/proxy/meta',
|
40
|
+
:entitystore => 'file:C:/temp/proxy/entity'
|
41
|
+
|
42
|
+
class Rack::Proxy
|
43
|
+
def initialize(app, &block)
|
44
|
+
self.class.send(:define_method, :uri_for, &block)
|
45
|
+
@app = app
|
46
|
+
end
|
47
|
+
|
48
|
+
def call(env)
|
49
|
+
req = Rack::Request.new(env)
|
50
|
+
method = req.request_method.downcase
|
51
|
+
method[0..0] = method[0..0].upcase
|
52
|
+
return @app.call(env) unless uri = uri_for(req)
|
53
|
+
# env['rack.errors'].write(uri.query)
|
54
|
+
sub_request = Net::HTTP.const_get(method).new("#{uri.path}#{"?" if uri.query}#{uri.query}")
|
55
|
+
|
56
|
+
if sub_request.request_body_permitted? and req.body
|
57
|
+
sub_request.body_stream = req.body
|
58
|
+
sub_request.content_length = req.content_length
|
59
|
+
sub_request.content_type = req.content_type
|
60
|
+
end
|
61
|
+
|
62
|
+
sub_request["X-Forwarded-For"] = (req.env["X-Forwarded-For"].to_s.split(/, +/) + [req.env['REMOTE_ADDR']]).join(", ")
|
63
|
+
sub_request["Accept-Encoding"] = req.accept_encoding
|
64
|
+
sub_request["Referer"] = req.referer
|
65
|
+
|
66
|
+
sub_response = Net::HTTP.start(uri.host, uri.port) do |http|
|
67
|
+
http.request(sub_request)
|
68
|
+
end
|
69
|
+
|
70
|
+
headers = {}
|
71
|
+
sub_response.each_header do |k,v|
|
72
|
+
headers[k] = v unless k.to_s =~ /status|cookie|content-length|transfer-encoding/i
|
73
|
+
end
|
74
|
+
|
75
|
+
[sub_response.code.to_i, headers, [sub_response.read_body]]
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
proxy = use(Rack::Proxy){ |req| URI.parse(req.url) }
|
80
|
+
|
81
|
+
run proxy
|
@@ -13,10 +13,10 @@ Feature: switch command
|
|
13
13
|
|
14
14
|
Examples:
|
15
15
|
| version | patterns |
|
16
|
-
| IronRuby 0.9.
|
17
|
-
| jruby 1.
|
18
|
-
| ruby 1.8.6 (
|
19
|
-
| ruby 1.9.
|
16
|
+
| IronRuby 0.9.2.0 on .NET 2.0.0.0 | iron 92 |
|
17
|
+
| jruby 1.5.1 (ruby 1.8.7 patchlevel 249) | jruby 1.5 |
|
18
|
+
| ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32] | 186 398 |
|
19
|
+
| ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32] | 191 p3 |
|
20
20
|
|
21
21
|
Scenario Outline: Switching versions with pattern only
|
22
22
|
Given I have added "<version>" to pik
|
@@ -26,11 +26,11 @@ Feature: switch command
|
|
26
26
|
|
27
27
|
Examples:
|
28
28
|
| version | patterns |
|
29
|
-
| IronRuby 0.9.
|
30
|
-
| jruby 1.
|
31
|
-
| ruby 1.8.6 (
|
32
|
-
| ruby 1.9.
|
33
|
-
|
29
|
+
| IronRuby 0.9.2.0 on .NET 2.0.0.0 | iron 92 |
|
30
|
+
| jruby 1.5.1 (ruby 1.8.7 patchlevel 249) | jruby 1.5 |
|
31
|
+
| ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32] | 186 398 |
|
32
|
+
| ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32] | 191 p3 |
|
33
|
+
|
34
34
|
Scenario Outline: Switching versions with no ruby in the path
|
35
35
|
Given I have added "<version>" to pik
|
36
36
|
And there is no ruby version in the path
|
@@ -40,7 +40,8 @@ Feature: switch command
|
|
40
40
|
|
41
41
|
Examples:
|
42
42
|
| version | patterns |
|
43
|
-
| IronRuby 0.9.
|
44
|
-
| jruby 1.
|
45
|
-
| ruby 1.8.6 (
|
46
|
-
| ruby 1.9.
|
43
|
+
| IronRuby 0.9.2.0 on .NET 2.0.0.0 | iron 92 |
|
44
|
+
| jruby 1.5.1 (ruby 1.8.7 patchlevel 249) | jruby 1.5 |
|
45
|
+
| ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32] | 186 398 |
|
46
|
+
| ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32] | 191 p3 |
|
47
|
+
|
@@ -5,17 +5,17 @@ Feature: tag command
|
|
5
5
|
So that he can tag versions that pik is aware of
|
6
6
|
|
7
7
|
Scenario: tag version
|
8
|
-
When I run "pik Ir
|
8
|
+
When I run "pik Ir 92" and "pik tag iron",
|
9
9
|
And I run "pik config list"
|
10
10
|
Then I should find "tags: \n iron:"
|
11
|
-
And I should see " -
|
11
|
+
And I should see " - 092: IronRuby 0.9.2.0 on .NET 2.0.0.0"
|
12
12
|
|
13
13
|
Scenario: run tagged versions
|
14
14
|
When I run "pik 191" and "pik tag mingw",
|
15
|
-
And I run "pik 186
|
15
|
+
And I run "pik 186" and "pik tag mingw",
|
16
16
|
And I run "pik tags mingw run echo."
|
17
|
-
Then I should see "ruby 1.8.6 (
|
18
|
-
And I should see "ruby 1.9.
|
17
|
+
Then I should see "ruby 1.8.6 (2010-02-04 patchlevel 398) [i386-mingw32]"
|
18
|
+
And I should see "ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32]"
|
19
19
|
|
20
20
|
Scenario: run tags with no options
|
21
21
|
When I run "pik tags"
|
@@ -5,9 +5,8 @@ Feature: uninstall command
|
|
5
5
|
So that he can download and uninstall older ruby versions
|
6
6
|
|
7
7
|
Scenario: uninstall IronRuby
|
8
|
-
When I run "pik rm
|
9
|
-
And I run "pik
|
10
|
-
And I run "pik unin
|
11
|
-
Then I should see "** Deleting C:\temp\path with spaces\IronRuby-
|
12
|
-
And I should see "
|
13
|
-
|
8
|
+
When I run "pik rm iron 92 -f -q"
|
9
|
+
And I run "pik install ironruby 0.9.2"
|
10
|
+
And I run "pik unin iron 92 -f"
|
11
|
+
Then I should see "** Deleting C:\temp\path with spaces\IronRuby-092"
|
12
|
+
And I should see "092: IronRuby 0.9.2.0 on .NET 2.0.0.0 has been uninstalled."
|