pik 0.2.2 → 0.2.3

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.
@@ -1,7 +1,20 @@
1
+ === 0.2.3 / 2009-10-25
2
+
3
+ * install command improvements - better error message on unrecognized implementation, better version picking, better directory naming, renamed some variables to be more concise (not everything is a version - implementations have versions, and versions have packages)
4
+ * added remote option to list command
5
+ * better error message when a version was deleted, but not removed from the config. Thanks Roger Pack
6
+ * bugfix: run/gem/ruby command hangs when waiting for input. Thanks Roger Pack
7
+ * renamed tools/pik.exe to pik_runner.exe to minimize confusion/conflicts. Thanks Luis Lavena
8
+ * Upgraded to exerb 0.4.4. Thanks Alexey Borzenkov
9
+ * Added documentation for tags commands. Thanks Luis Lavena
10
+ * 'pik tags' with no options will display the help docs, instead of throwing a cryptic error.
11
+ * Added docs for ruby and gem command. Improved docs for run command
12
+
1
13
  === 0.2.2 / 2009-10-20
2
14
 
3
15
  * Pik::Command#get_version now handles paths with spaces. Thanks to Dominic Sisneros and Vassilis Rizopoulos
4
16
  * All Cucumber scenarios are run against 'C:\temp\path with spaces' instead of 'C:\temp'
17
+ * Added :rebuild task as a dependency to :package task, so that the executable gets rebuilt on packaging. Thanks, skim.
5
18
 
6
19
  === 0.2.1 / 2009-10-19
7
20
 
@@ -10,7 +23,7 @@
10
23
 
11
24
  === 0.2.0 / 2009-10-18
12
25
 
13
- * pik is now an exerb compile executable, and must be installed to a location that is in the system path, but is
26
+ * pik is now an exerb compiled executable, and must be installed to a location that is in the system path, but is
14
27
  seperate from ruby
15
28
  * added pik_install command
16
29
  * added support for IronRuby and Jruby
@@ -50,8 +50,9 @@ lib/pik/contrib/zip/zip.rb
50
50
  lib/pik/contrib/zip/zipfilesystem.rb
51
51
  lib/pik/contrib/zip/ziprequire.rb
52
52
  lib/pik/core_ext/pathname.rb
53
+ lib/pik/implementations.rb
53
54
  lib/pik/options.rb
54
- lib/pik/runner.rb
55
+ lib/pik/pik.rb
55
56
  lib/pik/search_path.rb
56
57
  lib/pik/which.rb
57
58
  lib/pik/windows_env.rb
@@ -62,6 +63,10 @@ spec/commands_spec.rb
62
63
  spec/default_command_spec.rb
63
64
  spec/gemsync_command_spec.rb
64
65
  spec/help_command_spec.rb
66
+ spec/html/ironruby.htm
67
+ spec/html/jruby.htm
68
+ spec/html/ruby.htm
69
+ spec/implementations_spec.rb
65
70
  spec/list_command_spec.rb
66
71
  spec/pathname_spec.rb
67
72
  spec/remove_command_spec.rb
@@ -71,6 +76,6 @@ spec/spec.opts
71
76
  spec/switch_command_spec.rb
72
77
  spec/which_spec.rb
73
78
  tools/pik.bat
74
- tools/pik/pik
75
- tools/pik/pik.exe
76
- tools/pik/pik.exy
79
+ tools/pik/pik_runner
80
+ tools/pik/pik_runner.exe
81
+ tools/pik/pik_runner.exy
@@ -2,9 +2,11 @@
2
2
 
3
3
  http://github.com/vertiginous/pik
4
4
 
5
- Bugs/Feature: http://github.com/vertiginous/pik/issues
5
+ Mailing List: http://groups.google.com/group/discuss_pik
6
6
 
7
- Rubyforge: http://rubyforge.org/projects/pik/
7
+ Rubyforge: http://rubyforge.org/projects/pik/
8
+
9
+ Bugs/Feature requests: http://github.com/vertiginous/pik/issues
8
10
 
9
11
  Gordon Thiesfeld
10
12
 
@@ -58,23 +60,18 @@ Windows, more than one version of Ruby (otherwise, what's the point?) and Rubyge
58
60
 
59
61
  == INSTALL:
60
62
 
61
- 1. If you've used a version previous to this one, you'll need to uninstall them.
62
- Don't worry, this will leave your pik config intact.
63
-
64
- pik run "gem uninstall pik"
65
-
66
- 2. Install the pik gem
67
-
68
- gem install pik
63
+ * If you're upgrading from a version <= 0.1.1, you'll want to delete the pik.bat file
64
+ from all of your ruby versions. Gem uninstall should do the trick.
69
65
 
70
- 3. You need to install pik to a location that's in your path, but someplace other than your ruby\bin dir
71
-
66
+ * Install pik to a location that's in your path, but someplace other than your ruby\bin dir
67
+ If you're upgrading from a more recent version, pik_install will overwrite the older files as needed.
68
+
72
69
  >path
73
70
  PATH=C:\tools\;C:\ruby\186-p368-mingw32\bin;C:\WINDOWS\system32;C:\WINDOWS
74
71
 
75
72
  >pik_install C:\tools
76
73
 
77
- 4. Add all the versions of ruby that you want to use with pik
74
+ * If this is a first-time install, add all the versions of ruby that you want to use with pik
78
75
 
79
76
  >pik add
80
77
  Adding: 186: ruby 1.8.6 (2009-03-31 patchlevel 368) [i386-mingw32]
@@ -94,6 +91,11 @@ Note:
94
91
  inside of the IronRuby lib:
95
92
 
96
93
  pik config gem_home=C:\ruby\ironruby-091\lib\ironruby\gems\1.8
94
+
95
+ Also, if you're using a version of JRuby older than 1.4.0RC2, you'll probably need to set the JAVA_HOME env
96
+ variable.
97
+
98
+ set JAVA_HOME=C:\Program Files\Java\jre6
97
99
 
98
100
  == EXAMPLES:
99
101
 
data/Rakefile CHANGED
@@ -1,16 +1,17 @@
1
1
  # -*- ruby -*-
2
2
 
3
3
  require 'rubygems'
4
+ require 'win32/process'
4
5
 
5
6
  file 'tools/pik/pik.exy' do
6
7
  Dir.chdir 'tools/pik' do
7
- sh('ruby -rexerb/mkexy pik')
8
+ sh('ruby -rexerb/mkexy pik_runner')
8
9
  end
9
10
  end
10
11
 
11
12
  file 'tools/pik/pik.exe', :needs => 'tools/pik/pik.exy' do
12
13
  Dir.chdir 'tools/pik' do
13
- sh('ruby -S exerb pik.exy')
14
+ sh('ruby -S exerb pik_runner.exy')
14
15
  end
15
16
  end
16
17
 
@@ -50,20 +51,31 @@ Hoe.spec('pik') do
50
51
 
51
52
  ----------------------------------------------------------------------------
52
53
 
53
- 1. If you've used a version previous to this one, you'll need to uninstall them.
54
- Don't worry, this will leave your pik config intact.
54
+ * If you're upgrading from a version <= 0.1.1, you'll want to delete the pik.bat file
55
+ from all of your ruby versions. Gem uninstall should do the trick.
55
56
 
56
- pik run "gem uninstall pik"
57
-
58
- 2. Install the pik gem
59
-
60
- gem install pik
61
-
62
- 3. You need to install pik to a location that's in your path, but someplace other than your ruby\\bin dir
57
+ * Install pik to a location that's in your path, but someplace other than your ruby\\bin dir
58
+ If you're upgrading from a more recent version, pik_install will overwrite the older files as needed.
59
+
60
+ >path
61
+ PATH=C:\\tools\\;C:\\ruby\\186-p368-mingw32\\bin;C:\\WINDOWS\\system32;C:\\WINDOWS
63
62
 
64
- pik_install C:\\some\\other\\path
63
+ >pik_install C:\\tools
65
64
 
66
- 4. Add all the versions of ruby that you want to use with pik
65
+ * If this is a first-time install, add all the versions of ruby that you want to use with pik
66
+
67
+ >pik add
68
+ Adding: 186: ruby 1.8.6 (2009-03-31 patchlevel 368) [i386-mingw32]
69
+ Located at: c:/ruby/186-p368-mingw32/bin
70
+
71
+ >pik add C:\\ruby\\IronRuby-091\\bin
72
+ Adding: 091: IronRuby 0.9.1.0 on .NET 2.0.0.0
73
+ Located at: C:/ruby/IronRuby-091/bin
74
+
75
+ >pik add C:\\ruby\\jruby-1.4.0RC1\\bin
76
+ 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]
77
+ Located at: C:/ruby/jruby-1.4.0RC1/bin
78
+
67
79
 
68
80
  ----------------------------------------------------------------------------
69
81
 
@@ -74,8 +86,60 @@ end
74
86
  require 'cucumber'
75
87
  require 'cucumber/rake/task'
76
88
 
89
+ namespace :cucumber do
90
+
91
+ directory "C:/temp"
92
+
93
+ desc "sets up C:\\temp for pik's cuke tests"
94
+ task :setup => "C:/temp" do
95
+ ENV['HOME'] = "C:\\temp"
96
+ sh "pik config installs=\"C:\\temp\\more spaces in path\\ruby\""
97
+ sh "pik install jruby"
98
+ sh "pik install ironruby"
99
+ sh "pik install ruby"
100
+ sh "pik install ruby 1.8"
101
+ end
102
+
103
+ namespace :phonyweb do
104
+
105
+ task :start => 'hosts:add' do
106
+ @web = Process.create(:app_name => "ruby C:\\scripts\\repo\\pik\\phony_web\\server.rb")
107
+ end
108
+
109
+ task :kill => 'hosts:remove' do
110
+ Process.kill(3, @web.process_id)
111
+ end
112
+ end
113
+
114
+ # this is used with the phony web server for
115
+ # testing the install and list command
116
+ # without sucking up bandwidth. It also makes the
117
+ # tests run faster
118
+ namespace :hosts do
119
+
120
+ HOSTS = File.join(ENV['SystemRoot'], 'System32','drivers','etc','hosts')
121
+ desc "adds fake hosts to system's hosts file"
122
+ task :add do
123
+ File.open(HOSTS,'a+'){|f|
124
+ f.puts "127.0.0.1 www.jruby.org rubyforge.org www.rubyforge.org jruby.kenai.com dist.codehaus.org"
125
+ }
126
+ end
127
+
128
+ desc "remove fake hosts from system's hosts file"
129
+ task :remove do
130
+ new_hosts = File.open(HOSTS, 'r').readlines.reject{ |i| i =~ /^127\.0\.0\.1 www\.jruby\.org/ }
131
+ File.open(HOSTS, 'w+'){|f| f.puts new_hosts }
132
+ end
133
+
134
+ task :rm => :remove
135
+
136
+ end
137
+ end
138
+
77
139
  Cucumber::Rake::Task.new(:features) do |t|
78
140
  t.cucumber_opts = "features -f html -o ../pik_cucumber.html -f progress"
79
141
  end
80
142
 
143
+ task :cuke => ['cucumber:phonyweb:start', :features, 'cucumber:phonyweb:kill']
144
+
81
145
  # vim: syntax=Ruby
@@ -12,12 +12,16 @@ tools_dir = File.join(File.dirname(__FILE__), '..', 'tools')
12
12
  if File.directory?(install_dir)
13
13
  puts "Installing to #{install_dir}\n\n"
14
14
  cp File.join(tools_dir, 'pik.bat'), install_dir ,
15
- :verbose => true
15
+ :verbose => true
16
16
  mkdir_p File.join(install_dir, 'pik'), :verbose => true
17
- cp File.join(tools_dir, 'pik', 'pik.exe'),
18
- File.join(install_dir, 'pik') ,
19
- :verbose => true
20
- puts "\npik is installed"
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)
23
+
24
+ puts "\npik is installed"
21
25
  else
22
26
  puts "#{install_dir} is not a directory. pik was not installed."
23
27
  end
@@ -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_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"
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"
35
35
 
36
36
 
@@ -2,19 +2,19 @@ config=<<CONFIG
2
2
  ---
3
3
  "091: IronRuby 0.9.1.0 on .NET 2.0.0.0":
4
4
  :path: !ruby/object:Pathname
5
- path: c:/temp/more spaces in path/ruby/ironruby_091/bin
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]":
5
+ path: c:/temp/more spaces in path/ruby/ironruby-091/bin
6
+ "140: jruby 1.4.0RC2 (ruby 1.8.7 patchlevel 174) (2009-10-21 7e77f32) (Java HotSpot(TM) Client VM 1.6.0_14) [x86-java]":
7
7
  :path: !ruby/object:Pathname
8
- path: C:/temp/more spaces in path/ruby/jruby_140RC1/bin
8
+ path: C:/temp/more spaces in path/ruby/jruby-140RC2/bin
9
9
  "186: ruby 1.8.6 (2009-03-31 patchlevel 368) [i386-mingw32]":
10
10
  :path: !ruby/object:Pathname
11
11
  path: c:/ruby/186-p368-mingw32/bin
12
12
  "186: ruby 1.8.6 (2009-08-04 patchlevel 383) [i386-mingw32]":
13
13
  :path: !ruby/object:Pathname
14
- path: c:/temp/more spaces in path/ruby/ruby_186-p383/bin
14
+ path: c:/temp/more spaces in path/ruby/ruby-186-p383/bin
15
15
  "191: ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32]":
16
16
  :path: !ruby/object:Pathname
17
- path: c:/temp/more spaces in path/ruby/ruby_191-p243/bin
17
+ path: c:/temp/more spaces in path/ruby/ruby-191-p243/bin
18
18
  ---
19
19
  :download_dir: !ruby/object:Pathname
20
20
  path: C:\\temp\\path with spaces\\downloads
@@ -10,3 +10,20 @@ Feature: install command
10
10
  And I should see " to: C:\temp\path with spaces\downloads"
11
11
  And I should see "** Extracting: C:\temp\path with spaces\downloads"
12
12
  And I should see "** Adding: 191: ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32]"
13
+
14
+
15
+ Scenario: install IronRuby
16
+ When I run "pik in ironruby"
17
+ Then I should see "** Downloading: http://rubyforge.org/frs/download.php/64504/ironruby-0.9.1.zip"
18
+ And I should see " to: C:\temp\path with spaces\downloads\ironruby-0.9.1.zip"
19
+ And I should see "** Extracting: C:\temp\path with spaces\downloads\ironruby-0.9.1.zip"
20
+ And I should see "** Adding: 091: IronRuby 0.9.1.0 on .NET 2.0.0.0"
21
+ And I should see " Located at: C:\temp\path with spaces\IronRuby-091\bin"
22
+
23
+ Scenario: install Ruby 1.8.6
24
+ When I run "pik in ruby 1.8"
25
+ Then I should see "** Downloading: http://rubyforge.org/frs/download.php/62267/ruby-1.8.6-p383-i386-mingw32.7z"
26
+ And I should see " to: C:\temp\path with spaces\downloads\ruby-1.8.6-p383-i386-mingw32.7z"
27
+ And I should see "** Extracting: C:\temp\path with spaces\downloads\ruby-1.8.6-p383-i386-mingw32.7z"
28
+ And I should see "** Adding: 186: ruby 1.8.6 (2009-08-04 patchlevel 383) [i386-mingw32]"
29
+ And I should see " Located at: C:\temp\path with spaces\Ruby-186-p383\bin"
@@ -15,4 +15,13 @@ Feature: list command
15
15
  Scenario: list verbose output
16
16
  When I run "pik list -v"
17
17
  Then I should find "^\d+\: .+\*$"
18
- And I should find "path\: C\:[\\\/].+"
18
+ And I should find "path\: C\:[\\\/].+"
19
+
20
+ Scenario: list remote packages
21
+ When I run "pik list -r"
22
+ And I should see "IronRuby:"
23
+ And I should see "0.9.1:"
24
+ And I should see "JRuby:"
25
+ And I should see "1.4.0RC2:"
26
+ Then I should see "Ruby:"
27
+ And I should see " 1.8.6-p383"
@@ -14,7 +14,7 @@ Feature: switch command
14
14
  Examples:
15
15
  | version | patterns |
16
16
  | IronRuby 0.9.1.0 on .NET 2.0.0.0 | Ir 91 |
17
- | jruby 1.4.0RC1 (ruby 1.8.7 patchlevel 174) | jruby 1.4 |
17
+ | jruby 1.4.0RC2 (ruby 1.8.7 patchlevel 174) | jruby 1.4 |
18
18
  | ruby 1.8.6 (2009-08-04 patchlevel 383) [i386-mingw32] | 186 383 |
19
19
  | ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32] | 191 p2 |
20
20
 
@@ -27,7 +27,7 @@ Feature: switch command
27
27
  Examples:
28
28
  | version | patterns |
29
29
  | IronRuby 0.9.1.0 on .NET 2.0.0.0 | Ir 91 |
30
- | jruby 1.4.0RC1 (ruby 1.8.7 patchlevel 174) | jruby 1.4 |
30
+ | jruby 1.4.0RC2 (ruby 1.8.7 patchlevel 174) | jruby 1.4 |
31
31
  | ruby 1.8.6 (2009-08-04 patchlevel 383) [i386-mingw32] | 186 383 |
32
32
  | ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32] | 191 p2 |
33
33
 
@@ -16,3 +16,8 @@ Feature: tag command
16
16
  And I run "pik tags mingw run echo."
17
17
  Then I should see "ruby 1.8.6 (2009-08-04 patchlevel 383) [i386-mingw32]"
18
18
  And I should see "ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32]"
19
+
20
+ Scenario: run tags with no options
21
+ When I run "pik tags"
22
+ Then I should see "The tags command allows you to run a subset of versions."
23
+ And I should see "C:\>pik tags mingw,jruby gem install my_gem"
data/lib/pik.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Pik
2
- VERSION = '0.2.2'
2
+ VERSION = '0.2.3'
3
3
  end
4
4
 
5
5
  $LOAD_PATH.unshift(File.dirname(__FILE__))
@@ -8,6 +8,8 @@ require 'pathname'
8
8
  require 'fileutils'
9
9
  require 'rbconfig'
10
10
 
11
+ require 'pik/pik'
12
+ require 'pik/batch_file'
11
13
  require 'pik/core_ext/pathname'
12
14
  require 'pik/commands'
13
15
  require 'pik/commands/config_file_editor'
@@ -27,9 +29,10 @@ require 'pik/commands/default_command'
27
29
  require 'pik/commands/implode_command'
28
30
  require 'pik/commands/tag_command'
29
31
  require 'pik/config_file'
32
+ require 'pik/implementations'
30
33
  require 'pik/windows_env'
31
34
  require 'pik/which'
32
- require 'pik/batch_file'
35
+
33
36
  require 'pik/search_path'
34
37
 
35
38
  require 'highline'
@@ -83,7 +83,7 @@ module Pik
83
83
  @config = config_ || ConfigFile.new
84
84
  @hl = HighLine.new
85
85
  add_sigint_handler
86
- options.program_name = "#{File.basename($0)} #{self.class.names.join('|')}"
86
+ options.program_name = "#{PIK_BATCH.basename('.*')} #{self.class.names.join('|')}"
87
87
  command_options
88
88
  parse_options
89
89
  create(PIK_HOME) unless PIK_HOME.exist?
@@ -63,6 +63,9 @@ module Pik
63
63
  def command_options
64
64
  super
65
65
  sep =<<SEP
66
+ If no options are given, the current and global configuration
67
+ is displayed.
68
+
66
69
  Configuration options are:
67
70
 
68
71
  rubyopt on = -rubygems, off = blank
@@ -24,7 +24,7 @@ module Pik
24
24
  end
25
25
 
26
26
  def command_options
27
- options.program_name = "#{File.basename($0)} command"
27
+ options.program_name = "#{PIK_BATCH.basename('.*')} command"
28
28
  sep = <<SEP
29
29
 
30
30
  To get help with a command
@@ -5,56 +5,24 @@ require 'pik/contrib/progressbar'
5
5
  module Pik
6
6
 
7
7
  class Install < Command
8
-
8
+
9
9
  aka :in
10
10
  it "Downloads and installs different ruby versions."
11
11
 
12
- def versions
13
- {
14
- 'ruby' => {
15
- '1.8.6-p383' =>
16
- 'http://rubyforge.org/frs/download.php/62267/ruby-1.8.6-p383-i386-mingw32.7z',
17
- '1.9.1-p243' =>
18
- 'http://rubyforge.org/frs/download.php/62269/ruby-1.9.1-p243-i386-mingw32.7z'
19
- },
20
- 'ironruby' => {
21
- '0.9.1' =>
22
- 'http://rubyforge.org/frs/download.php/64504/ironruby-0.9.1.zip',
23
- '0.9.0' =>
24
- 'http://rubyforge.org/frs/download.php/61382/ironruby-0.9.0.zip'
25
- },
26
- 'jruby' => {
27
- '1.4.0RC1' =>
28
- 'http://dist.codehaus.org/jruby/1.4.0RC1/jruby-bin-1.4.0RC1.zip'
29
- }
30
- }
12
+ def initialize(args=ARGV, config_=nil)
13
+ super
14
+ @download_dir = config.global[:download_dir] || PIK_HOME + 'downloads'
15
+ @install_root = config.global[:install_dir] || PIK_BATCH.dirname + 'pik'
16
+ FileUtils.mkdir_p @download_dir.to_s
31
17
  end
32
18
 
33
19
  def execute
34
- target = ''
35
- @download_dir = config.global[:download_dir] || PIK_HOME + 'downloads'
36
- FileUtils.mkdir_p @download_dir.to_s
37
- version = @args.shift
38
- if versions[version]
39
- target += version
40
- version = versions[version]
41
- @args.each{ |i| version = version.select{|k,v| k =~ Regexp.new(Regexp.escape(i)) } }
42
- t, version = most_recent(version)
43
- target += "_#{t}"
44
- elsif URI.parse(version.to_s) === URI::HTTP
45
- version = URI.parse(version.to_s)
46
- target = @args.shift
47
- else
48
- raise VersionUnknown
49
- end
50
- install_root = config.global[:install_dir] || PIK_BATCH.dirname + 'pik'
51
- target = install_root + target.gsub('.','')
52
- FileUtils.mkdir_p target
53
- file = download(version)
20
+ implementation = Implementations[@args.shift]
21
+ target, package = implementation.find(*@args)
22
+ target = @install_root + "#{implementation.subclass}-#{target.gsub('.','')}"
23
+ file = download(package)
54
24
  extract(target, file)
55
25
  add( Pathname(target) + 'bin' )
56
- rescue VersionUnknown
57
- puts 'unknown'
58
26
  end
59
27
 
60
28
  def command_options
@@ -77,20 +45,17 @@ SEP
77
45
  options.separator sep
78
46
  end
79
47
 
80
- def most_recent(version)
81
- version.sort.last
82
- end
83
-
84
- def download(version, download_dir=@download_dir)
85
- target = download_dir + version.split('/').last
86
- puts "** Downloading: #{version}\n to: #{target.windows}\n\n"
87
- URI.download(version,target.to_s, {:progress => true})
48
+ def download(package, download_dir=@download_dir)
49
+ target = download_dir + package. split('/').last
50
+ puts "** Downloading: #{package} \n to: #{target.windows}\n\n"
51
+ URI.download(package, target.to_s, {:progress => true})
88
52
  puts
89
53
  return target
90
54
  end
91
55
 
92
56
  def extract(target, file)
93
57
  if Which::SevenZip.exe
58
+ FileUtils.mkdir_p target
94
59
  extract_(file, target)
95
60
  else
96
61
  file = download_seven_zip