pik 0.2.1 → 0.2.2
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 +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
|