pik 0.2.6 → 0.2.7
Sign up to get free protection for your applications and to get access to all the features.
- 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."
|