pik 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +6 -1
- data/Manifest.txt +0 -1
- data/README.rdoc +4 -1
- data/Rakefile +34 -31
- data/features/add_command.feature +8 -0
- data/features/env.rb +18 -25
- data/features/implode_command.feature +1 -1
- data/features/install_command.feature +3 -4
- data/features/remove_command.feature +5 -5
- data/features/run_command.feature +3 -3
- data/features/step_definitions/pik_commands.rb +14 -16
- data/features/switch_command.feature +2 -4
- data/features/tag_command.feature +5 -5
- data/features/version.feature +2 -1
- data/lib/pik.rb +1 -1
- data/lib/pik/commands/command.rb +1 -1
- data/lib/pik/commands/run_command.rb +1 -1
- data/tools/pik/pik.exe +0 -0
- data/tools/pik/pik.exy +1 -1
- metadata +23 -10
- data/features/checkup_command.feature +0 -0
data/History.txt
CHANGED
@@ -1,6 +1,11 @@
|
|
1
|
+
=== 0.2.2 / 2009-10-20
|
2
|
+
|
3
|
+
* Pik::Command#get_version now handles paths with spaces. Thanks to Dominic Sisneros and Vassilis Rizopoulos
|
4
|
+
* All Cucumber scenarios are run against 'C:\temp\path with spaces' instead of 'C:\temp'
|
5
|
+
|
1
6
|
=== 0.2.1 / 2009-10-19
|
2
7
|
|
3
|
-
* bugfix - path to pik could have spaces
|
8
|
+
* bugfix - path to pik could have spaces - thanks, Dominic Sisneros
|
4
9
|
* update install instructions
|
5
10
|
|
6
11
|
=== 0.2.0 / 2009-10-18
|
data/Manifest.txt
CHANGED
data/README.rdoc
CHANGED
data/Rakefile
CHANGED
@@ -1,6 +1,38 @@
|
|
1
1
|
# -*- ruby -*-
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
|
+
|
5
|
+
file 'tools/pik/pik.exy' do
|
6
|
+
Dir.chdir 'tools/pik' do
|
7
|
+
sh('ruby -rexerb/mkexy pik')
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
file 'tools/pik/pik.exe', :needs => 'tools/pik/pik.exy' do
|
12
|
+
Dir.chdir 'tools/pik' do
|
13
|
+
sh('ruby -S exerb pik.exy')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
task :build, :needs => 'tools/pik/pik.exe'
|
18
|
+
|
19
|
+
task :install, :needs => :build do
|
20
|
+
sh('ruby bin/pik_install C:\\bin')
|
21
|
+
end
|
22
|
+
|
23
|
+
task :clobber_exe do
|
24
|
+
rm_rf 'tools/pik/pik.exe'
|
25
|
+
end
|
26
|
+
|
27
|
+
task :clobber_exy, :needs => :clobber_exe do
|
28
|
+
rm_rf 'tools/pik/pik.exy'
|
29
|
+
end
|
30
|
+
|
31
|
+
task :rebuild, :needs => [:clobber_exy, :build]
|
32
|
+
task :reinstall, :needs => [:clobber_exy, :install]
|
33
|
+
|
34
|
+
task :package => :rebuild
|
35
|
+
|
4
36
|
require 'hoe'
|
5
37
|
|
6
38
|
$LOAD_PATH.unshift('lib')
|
@@ -27,7 +59,7 @@ Hoe.spec('pik') do
|
|
27
59
|
|
28
60
|
gem install pik
|
29
61
|
|
30
|
-
3. You need to install pik to a location that's in your path, but someplace other than your ruby
|
62
|
+
3. You need to install pik to a location that's in your path, but someplace other than your ruby\\bin dir
|
31
63
|
|
32
64
|
pik_install C:\\some\\other\\path
|
33
65
|
|
@@ -39,40 +71,11 @@ PIM
|
|
39
71
|
|
40
72
|
end
|
41
73
|
|
42
|
-
file 'tools/pik/pik.exy' do
|
43
|
-
Dir.chdir 'tools/pik' do
|
44
|
-
sh('ruby -rexerb/mkexy pik')
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
file 'tools/pik/pik.exe', :needs => 'tools/pik/pik.exy' do
|
49
|
-
Dir.chdir 'tools/pik' do
|
50
|
-
sh('ruby -S exerb pik.exy')
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
task :build, :needs => 'tools/pik/pik.exe'
|
55
|
-
|
56
|
-
task :install, :needs => :build do
|
57
|
-
sh('ruby bin/pik_install C:\\bin')
|
58
|
-
end
|
59
|
-
|
60
|
-
task :clobber_exe do
|
61
|
-
rm_rf 'tools/pik/pik.exe'
|
62
|
-
end
|
63
|
-
|
64
|
-
task :clobber_exy, :needs => :clobber_exe do
|
65
|
-
rm_rf 'tools/pik/pik.exy'
|
66
|
-
end
|
67
|
-
|
68
|
-
task :rebuild, :needs => [:clobber_exy, :build]
|
69
|
-
task :reinstall, :needs => [:clobber_exy, :install]
|
70
|
-
|
71
74
|
require 'cucumber'
|
72
75
|
require 'cucumber/rake/task'
|
73
76
|
|
74
77
|
Cucumber::Rake::Task.new(:features) do |t|
|
75
|
-
t.cucumber_opts = "features
|
78
|
+
t.cucumber_opts = "features -f html -o ../pik_cucumber.html -f progress"
|
76
79
|
end
|
77
80
|
|
78
81
|
# vim: syntax=Ruby
|
@@ -26,3 +26,11 @@ Feature: add command
|
|
26
26
|
Scenario: add a nonexistent version
|
27
27
|
When I run "pik add C:\ruby\nonexistent_ruby\bin"
|
28
28
|
Then I should see "Couldn't find a Ruby version at C:\ruby\nonexistent_ruby\bin"
|
29
|
+
|
30
|
+
Scenario: add a version with spaces in the path.
|
31
|
+
Given I have an empty config.yml
|
32
|
+
When I run "pik add "C:\temp\more spaces in path\ruby\jruby_140RC1\bin""
|
33
|
+
Then I should see "Adding: 140: jruby 1.4.0RC1 (ruby 1.8.7 patchlevel 174)"
|
34
|
+
And I should see "Located at: C:\temp\more spaces in path\ruby\jruby_140RC1\bin"
|
35
|
+
|
36
|
+
|
data/features/env.rb
CHANGED
@@ -1,48 +1,41 @@
|
|
1
1
|
config=<<CONFIG
|
2
2
|
---
|
3
|
-
"090: IronRuby 0.9.0.0 on .NET 2.0.0.0":
|
4
|
-
:gem_home: !ruby/object:Pathname
|
5
|
-
path: c:\\ruby\\ironruby-0.9.0\\lib\\ironruby\\gems\\1.8
|
6
|
-
:path: !ruby/object:Pathname
|
7
|
-
path: C:/ruby/IronRuby-0.9.0/bin
|
8
3
|
"091: IronRuby 0.9.1.0 on .NET 2.0.0.0":
|
9
|
-
:gem_home: !ruby/object:Pathname
|
10
|
-
path: c:\\temp\\ruby\\ironruby_091\\lib\\ironruby\\gems\\1.8
|
11
|
-
:path: !ruby/object:Pathname
|
12
|
-
path: c:/temp/ruby/ironruby_091/bin
|
13
|
-
"131: jruby 1.3.1 (ruby 1.8.6p287) (2009-06-15 2fd6c3d) (Java HotSpot(TM) Client VM 1.6.0_14) [x86-java]":
|
14
4
|
:path: !ruby/object:Pathname
|
15
|
-
path:
|
5
|
+
path: c:/temp/more spaces in path/ruby/ironruby_091/bin
|
16
6
|
"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]":
|
17
7
|
:path: !ruby/object:Pathname
|
18
|
-
path:
|
19
|
-
"185: ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-mswin32]":
|
20
|
-
:path: !ruby/object:Pathname
|
21
|
-
path: C:/ruby/185-p012-mswin32/bin
|
22
|
-
"186: ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32]":
|
23
|
-
:path: !ruby/object:Pathname
|
24
|
-
path: C:/ruby/186-p287-mswin32/bin
|
8
|
+
path: C:/temp/more spaces in path/ruby/jruby_140RC1/bin
|
25
9
|
"186: ruby 1.8.6 (2009-03-31 patchlevel 368) [i386-mingw32]":
|
26
10
|
:path: !ruby/object:Pathname
|
27
11
|
path: c:/ruby/186-p368-mingw32/bin
|
28
|
-
"
|
12
|
+
"186: ruby 1.8.6 (2009-08-04 patchlevel 383) [i386-mingw32]":
|
29
13
|
:path: !ruby/object:Pathname
|
30
|
-
path:
|
14
|
+
path: c:/temp/more spaces in path/ruby/ruby_186-p383/bin
|
31
15
|
"191: ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32]":
|
32
16
|
:path: !ruby/object:Pathname
|
33
|
-
path:
|
17
|
+
path: c:/temp/more spaces in path/ruby/ruby_191-p243/bin
|
34
18
|
---
|
35
19
|
:download_dir: !ruby/object:Pathname
|
36
|
-
path:
|
20
|
+
path: C:\\temp\\path with spaces\\downloads
|
37
21
|
:install_dir: !ruby/object:Pathname
|
38
|
-
path:
|
22
|
+
path: C:\\temp\\path with spaces
|
39
23
|
CONFIG
|
40
24
|
|
25
|
+
require 'yaml'
|
26
|
+
require 'pathname'
|
27
|
+
require 'fileutils'
|
28
|
+
require 'lib/pik'
|
29
|
+
|
41
30
|
REAL_PATH = ENV['PATH']
|
42
|
-
|
43
|
-
ENV['HOME'] = "C:\\temp"
|
31
|
+
|
32
|
+
ENV['HOME'] = "C:\\temp\\path with spaces"
|
44
33
|
ENV['JAVA_HOME'] = "C:\\Program Files\\Java\\jre6"
|
45
34
|
|
35
|
+
PIK_LOG = 'log\\output.log'
|
36
|
+
TEST_PIK_HOME = Pathname.new( ENV['HOME'] || ENV['USERPROFILE'] ) + '.pik'
|
37
|
+
FAKE_PIK_HOME = 'c:/temp/path with spaces/.pik'
|
38
|
+
|
46
39
|
Before do
|
47
40
|
ENV['PATH'] = REAL_PATH
|
48
41
|
FileUtils.rm_rf FAKE_PIK_HOME
|
@@ -7,7 +7,6 @@ Feature: install command
|
|
7
7
|
Scenario: install from the intarwebs
|
8
8
|
When I run "pik install ruby"
|
9
9
|
Then I should see "** Downloading: http://rubyforge.org/frs/download.php/62269/ruby-1.9.1-p243-i386-mingw32.7z"
|
10
|
-
And I should see " to:
|
11
|
-
And I should see "** Extracting:
|
12
|
-
And I should see "** Adding: "
|
13
|
-
|
10
|
+
And I should see " to: C:\temp\path with spaces\downloads"
|
11
|
+
And I should see "** Extracting: C:\temp\path with spaces\downloads"
|
12
|
+
And I should see "** Adding: 191: ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32]"
|
@@ -6,13 +6,13 @@ Feature: remove command
|
|
6
6
|
|
7
7
|
Scenario: remove a version from the config
|
8
8
|
Given I have already added "ruby 1.8.6 (2009-03-31 patchlevel 368) [i386-mingw32]"
|
9
|
-
When I run "pik remove 186
|
9
|
+
When I run "pik remove 186 383 -f"
|
10
10
|
Then I should see "removed"
|
11
11
|
And the version should be removed.
|
12
12
|
|
13
13
|
Scenario: remove a version from the config and the filesystem
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
# Given I have already added "ruby 1.8.6 (2009-03-31 patchlevel 368) [i386-mingw32]"
|
15
|
+
# When I run "pik remove 186 min -f "
|
16
|
+
# Then I should see "removed"
|
17
|
+
# And the version should be removed.
|
18
18
|
|
@@ -6,17 +6,17 @@ 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=" 5 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!" 5 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" 5 times
|
21
21
|
And I should see each version listed.
|
22
22
|
|
@@ -1,14 +1,7 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
require 'pathname'
|
3
|
-
require 'fileutils'
|
4
|
-
|
5
|
-
PIK_LOG = 'log\\output.log'
|
6
|
-
PIK_HOME = Pathname.new( ENV['HOME'] || ENV['USERPROFILE'] ) + '.pik'
|
7
|
-
|
8
1
|
Given /^I have.+added "(.+)"/ do |version|
|
9
2
|
@version = version
|
10
3
|
@version_reg = Regexp.new(Regexp.escape(version), Regexp::IGNORECASE)
|
11
|
-
@config_file =
|
4
|
+
@config_file = TEST_PIK_HOME + 'config.yml'
|
12
5
|
@original_config = YAML.load(File.read(@config_file))
|
13
6
|
@ver = @original_config.keys.grep(@version_reg){|k| @original_config[k] }
|
14
7
|
@ver.size.should eql(1)
|
@@ -38,12 +31,12 @@ Given /^it contains a config\.yml/ do
|
|
38
31
|
end
|
39
32
|
|
40
33
|
Given /^I have no \.pik directory/ do
|
41
|
-
FileUtils.rm_rf
|
42
|
-
|
34
|
+
FileUtils.rm_rf TEST_PIK_HOME
|
35
|
+
TEST_PIK_HOME.should_not exist
|
43
36
|
end
|
44
37
|
|
45
38
|
Given /^I have an empty config\.yml/ do
|
46
|
-
File.open(
|
39
|
+
File.open(TEST_PIK_HOME + 'config.yml','w'){|f| }
|
47
40
|
end
|
48
41
|
|
49
42
|
Given /^I have not installed pik to (.+)$/ do |path|
|
@@ -61,7 +54,7 @@ When /^I run "pik_install (.+)"$/ do |args|
|
|
61
54
|
end
|
62
55
|
|
63
56
|
When /^I run "pik (.+?)" and "pik (.+)",$/ do |args1, args2|
|
64
|
-
%x[tools\\pik.bat #{args1} > #{PIK_LOG} 2>&1
|
57
|
+
%x[tools\\pik.bat #{args1} > #{PIK_LOG} 2>&1 & tools\\pik.bat #{args2} >> #{PIK_LOG} 2>&1]
|
65
58
|
end
|
66
59
|
|
67
60
|
When /^I run "pik (.+?)"$/ do |args|
|
@@ -80,6 +73,12 @@ Then /^I should see "(.*)"$/ do |data|
|
|
80
73
|
stdout = File.read(PIK_LOG)
|
81
74
|
stdout.should match(Regexp.new(Regexp.escape(data)))
|
82
75
|
end
|
76
|
+
|
77
|
+
|
78
|
+
Then /^I should see the Pik::VERSION$/ do
|
79
|
+
stdout = File.read(PIK_LOG)
|
80
|
+
stdout.should match(Regexp.new(Regexp.escape(Pik::VERSION)))
|
81
|
+
end
|
83
82
|
|
84
83
|
Then /^I should find "(.*)"$/ do |regexp|
|
85
84
|
stdout = File.read(PIK_LOG)
|
@@ -107,7 +106,7 @@ end
|
|
107
106
|
|
108
107
|
Then /^I should see each version.s path listed$/ do
|
109
108
|
stdout = File.read(PIK_LOG)
|
110
|
-
config_file =
|
109
|
+
config_file = TEST_PIK_HOME + 'config.yml'
|
111
110
|
config = YAML.load(File.read(config_file))
|
112
111
|
config.each{|k,v|
|
113
112
|
path = Regexp.new(Regexp.escape(v[:path].to_s.gsub('/','\\')))
|
@@ -117,7 +116,7 @@ end
|
|
117
116
|
|
118
117
|
Then /^I should see each version listed\.$/ do
|
119
118
|
stdout = File.read(PIK_LOG)
|
120
|
-
config_file =
|
119
|
+
config_file = TEST_PIK_HOME + 'config.yml'
|
121
120
|
config = YAML.load(File.read(config_file))
|
122
121
|
config.each{|k,v|
|
123
122
|
version = Regexp.new(Regexp.escape(k.split(': ')[1..-1].join(': ')))
|
@@ -136,7 +135,7 @@ Then /^the GEM_HOME might get set\.$/ do
|
|
136
135
|
end
|
137
136
|
|
138
137
|
Then /^the directory should be deleted$/ do
|
139
|
-
Pathname(
|
138
|
+
Pathname(TEST_PIK_HOME).should_not exist
|
140
139
|
end
|
141
140
|
|
142
141
|
Then /^nothing should be added to the config file\.$/ do
|
@@ -149,7 +148,6 @@ Then /^the version should be removed\.$/ do
|
|
149
148
|
@current_config.size.should eql(@original_config.size - 1)
|
150
149
|
end
|
151
150
|
|
152
|
-
|
153
151
|
Then /^a gem_home option should be added to the config\.$/ do
|
154
152
|
@ver[0][:gem_home].should be_nil
|
155
153
|
@current_config = YAML.load(File.read(@config_file))
|
@@ -15,8 +15,7 @@ Feature: switch command
|
|
15
15
|
| version | patterns |
|
16
16
|
| IronRuby 0.9.1.0 on .NET 2.0.0.0 | Ir 91 |
|
17
17
|
| jruby 1.4.0RC1 (ruby 1.8.7 patchlevel 174) | jruby 1.4 |
|
18
|
-
| ruby 1.8.6 (
|
19
|
-
| ruby 1.8.6 (2009-03-31 patchlevel 368) [i386-mingw32] | 186 mi |
|
18
|
+
| ruby 1.8.6 (2009-08-04 patchlevel 383) [i386-mingw32] | 186 383 |
|
20
19
|
| ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32] | 191 p2 |
|
21
20
|
|
22
21
|
Scenario Outline: Switching versions with pattern only
|
@@ -29,7 +28,6 @@ Feature: switch command
|
|
29
28
|
| version | patterns |
|
30
29
|
| IronRuby 0.9.1.0 on .NET 2.0.0.0 | Ir 91 |
|
31
30
|
| jruby 1.4.0RC1 (ruby 1.8.7 patchlevel 174) | jruby 1.4 |
|
32
|
-
| ruby 1.8.6 (
|
33
|
-
| ruby 1.8.6 (2009-03-31 patchlevel 368) [i386-mingw32] | 186 mi |
|
31
|
+
| ruby 1.8.6 (2009-08-04 patchlevel 383) [i386-mingw32] | 186 383 |
|
34
32
|
| ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32] | 191 p2 |
|
35
33
|
|
@@ -11,8 +11,8 @@ Feature: tag command
|
|
11
11
|
And I should see " - 091: IronRuby 0.9.1.0 on .NET 2.0.0.0"
|
12
12
|
|
13
13
|
Scenario: run tagged versions
|
14
|
-
When I run "pik
|
15
|
-
And I run "pik
|
16
|
-
And I run "pik tags
|
17
|
-
Then I should
|
18
|
-
And I should
|
14
|
+
When I run "pik 191" and "pik tag mingw",
|
15
|
+
And I run "pik 186 383" and "pik tag mingw",
|
16
|
+
And I run "pik tags mingw run echo."
|
17
|
+
Then I should see "ruby 1.8.6 (2009-08-04 patchlevel 383) [i386-mingw32]"
|
18
|
+
And I should see "ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32]"
|
data/features/version.feature
CHANGED
data/lib/pik.rb
CHANGED
data/lib/pik/commands/command.rb
CHANGED
data/tools/pik/pik.exe
CHANGED
Binary file
|
data/tools/pik/pik.exy
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pik
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gordon Thiesfeld
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-26 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -63,7 +63,6 @@ files:
|
|
63
63
|
- Rakefile
|
64
64
|
- bin/pik_install
|
65
65
|
- features/add_command.feature
|
66
|
-
- features/checkup_command.feature
|
67
66
|
- features/config_command.feature
|
68
67
|
- features/default_command.feature
|
69
68
|
- features/env.rb
|
@@ -138,13 +137,27 @@ has_rdoc: true
|
|
138
137
|
homepage: http://github.com/vertiginous/pik
|
139
138
|
licenses: []
|
140
139
|
|
141
|
-
post_install_message:
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
140
|
+
post_install_message: |+
|
141
|
+
|
142
|
+
----------------------------------------------------------------------------
|
143
|
+
|
144
|
+
1. If you've used a version previous to this one, you'll need to uninstall them.
|
145
|
+
Don't worry, this will leave your pik config intact.
|
146
|
+
|
147
|
+
pik run "gem uninstall pik"
|
148
|
+
|
149
|
+
2. Install the pik gem
|
150
|
+
|
151
|
+
gem install pik
|
152
|
+
|
153
|
+
3. You need to install pik to a location that's in your path, but someplace other than your ruby\bin dir
|
154
|
+
|
155
|
+
pik_install C:\some\other\path
|
156
|
+
|
157
|
+
4. Add all the versions of ruby that you want to use with pik
|
158
|
+
|
159
|
+
----------------------------------------------------------------------------
|
160
|
+
|
148
161
|
rdoc_options:
|
149
162
|
- --main
|
150
163
|
- README.rdoc
|
File without changes
|