downlow 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,65 +1,63 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{downlow}
8
- s.version = "0.1.3"
8
+ s.version = "0.1.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Aaron Quint"]
12
- s.date = %q{2010-03-09}
12
+ s.date = %q{2010-11-21}
13
13
  s.description = %q{Downlow provides an easy way to fetch files or archives and extract them with minimal hassle.}
14
14
  s.email = %q{aaron@quirkey.com}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
- "README.rdoc"
17
+ "README.rdoc"
18
18
  ]
19
19
  s.files = [
20
20
  ".document",
21
- ".gitignore",
22
- "LICENSE",
23
- "README.rdoc",
24
- "Rakefile",
25
- "downlow.gemspec",
26
- "lib/downlow.rb",
27
- "lib/downlow/ext/pathname.rb",
28
- "lib/downlow/extractor.rb",
29
- "lib/downlow/extractors/dir.rb",
30
- "lib/downlow/extractors/tar_gz.rb",
31
- "lib/downlow/extractors/zip.rb",
32
- "lib/downlow/fetcher.rb",
33
- "lib/downlow/fetchers/git.rb",
34
- "lib/downlow/fetchers/github.rb",
35
- "lib/downlow/fetchers/http.rb",
36
- "lib/downlow/fetchers/local.rb",
37
- "test/fixtures/gist_response",
38
- "test/fixtures/location_response",
39
- "test/fixtures/test.tar.gz",
40
- "test/fixtures/test.zip",
41
- "test/helper.rb",
42
- "test/test_downlow.rb",
43
- "test/test_downlow_extractor.rb",
44
- "test/test_downlow_fetcher.rb"
21
+ "LICENSE",
22
+ "README.rdoc",
23
+ "Rakefile",
24
+ "downlow.gemspec",
25
+ "lib/downlow.rb",
26
+ "lib/downlow/ext/pathname.rb",
27
+ "lib/downlow/extractor.rb",
28
+ "lib/downlow/extractors/dir.rb",
29
+ "lib/downlow/extractors/tar_gz.rb",
30
+ "lib/downlow/extractors/zip.rb",
31
+ "lib/downlow/fetcher.rb",
32
+ "lib/downlow/fetchers/git.rb",
33
+ "lib/downlow/fetchers/github.rb",
34
+ "lib/downlow/fetchers/http.rb",
35
+ "lib/downlow/fetchers/local.rb",
36
+ "test/fixtures/gist_response",
37
+ "test/fixtures/location_response",
38
+ "test/fixtures/test.tar.gz",
39
+ "test/fixtures/test.zip",
40
+ "test/helper.rb",
41
+ "test/test_downlow.rb",
42
+ "test/test_downlow_extractor.rb",
43
+ "test/test_downlow_fetcher.rb"
45
44
  ]
46
45
  s.homepage = %q{http://github.com/quirkey/downlow}
47
- s.rdoc_options = ["--charset=UTF-8"]
48
46
  s.require_paths = ["lib"]
49
- s.rubygems_version = %q{1.3.6}
47
+ s.rubygems_version = %q{1.3.7}
50
48
  s.summary = %q{easy downloading and extracting API}
51
49
  s.test_files = [
52
50
  "test/helper.rb",
53
- "test/test_downlow.rb",
54
- "test/test_downlow_extractor.rb",
55
- "test/test_downlow_fetcher.rb"
51
+ "test/test_downlow.rb",
52
+ "test/test_downlow_extractor.rb",
53
+ "test/test_downlow_fetcher.rb"
56
54
  ]
57
55
 
58
56
  if s.respond_to? :specification_version then
59
57
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
60
58
  s.specification_version = 3
61
59
 
62
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
60
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
63
61
  s.add_runtime_dependency(%q<rubyzip>, [">= 0.9.4"])
64
62
  s.add_runtime_dependency(%q<archive-tar-minitar>, [">= 0.5.2"])
65
63
  s.add_development_dependency(%q<shoulda>, [">= 0"])
@@ -1,8 +1,8 @@
1
1
  require 'downlow/ext/pathname'
2
2
 
3
3
  module Downlow
4
- VERSION = '0.1.3'
5
-
4
+ VERSION = '0.1.4'
5
+
6
6
  def self.get(url, *args)
7
7
  options = {}
8
8
  first = args.shift
@@ -23,15 +23,15 @@ module Downlow
23
23
  FileUtils.rm_r(path) # delete tmp path
24
24
  final_path
25
25
  end
26
-
26
+
27
27
  def self.fetch(*args)
28
28
  Downlow::Fetcher.fetch(*args)
29
29
  end
30
-
30
+
31
31
  def self.extract(*args)
32
32
  Downlow::Extractor.extract(*args)
33
33
  end
34
-
34
+
35
35
  end
36
36
 
37
37
  def DL(*args) Downlow.get(*args); end
@@ -45,4 +45,4 @@ require 'downlow/fetchers/local'
45
45
  require 'downlow/extractor'
46
46
  require 'downlow/extractors/tar_gz'
47
47
  require 'downlow/extractors/zip'
48
- require 'downlow/extractors/dir'
48
+ require 'downlow/extractors/dir'
@@ -44,7 +44,7 @@ class Pathname
44
44
  return self+src.basename
45
45
  end
46
46
  end
47
-
47
+
48
48
  # we assume this pathname object is a file obviously
49
49
  def write content
50
50
  raise "Will not overwrite #{to_s}" if exist? and not ARGV.force?
@@ -83,7 +83,7 @@ class Pathname
83
83
  raise unless e.errno == Errno::ENOTEMPTY::Errno or e.errno == Errno::EACCES::Errno
84
84
  false
85
85
  end
86
-
86
+
87
87
  def chmod_R perms
88
88
  require 'fileutils'
89
89
  FileUtils.chmod_R perms, to_s
@@ -111,7 +111,7 @@ class Pathname
111
111
  # we only support numbered tagged downloads
112
112
  %r[github.com/.*/tarball/((\d\.)+\d)$].match to_s
113
113
  return $1 if $1
114
-
114
+
115
115
  # eg. boost_1_39_0
116
116
  /((\d+_)+\d+)$/.match stem
117
117
  return $1.gsub('_', '.') if $1
@@ -120,7 +120,7 @@ class Pathname
120
120
  # eg. ruby-1.9.1-p243
121
121
  /-((\d+\.)*\d\.\d+-(p|rc)?\d+)$/.match stem
122
122
  return $1 if $1
123
-
123
+
124
124
  # eg. lame-398-1
125
125
  /-((\d)+-\d)/.match stem
126
126
  return $1 if $1
@@ -140,7 +140,7 @@ class Pathname
140
140
  # eg. foobar4.5.1
141
141
  /((\d+\.)*\d+)$/.match stem
142
142
  return $1 if $1
143
-
143
+
144
144
  # eg foobar-4.5.0-bin
145
145
  /-((\d+\.)+\d+[abc]?)[-.](bin|src|sources?)$/.match stem
146
146
  return $1 if $1
@@ -198,4 +198,4 @@ module ObserverPathnameExtension
198
198
  end
199
199
 
200
200
  $n=0
201
- $d=0
201
+ $d=0
@@ -1,11 +1,11 @@
1
1
  module Downlow
2
2
  class Extractor
3
-
3
+
4
4
  def self.handles(which, options = {})
5
5
  @@handlers ||= []
6
6
  @@handlers << [which, options, self]
7
7
  end
8
-
8
+
9
9
  def self.extractor_for(path)
10
10
  @@handlers.each do |matcher, options, klass|
11
11
  if options[:file_only] && !File.file?(path)
@@ -15,17 +15,17 @@ module Downlow
15
15
  end
16
16
  end
17
17
  end
18
-
18
+
19
19
  def self.extract(url, options = {})
20
20
  klass = extractor_for(url)
21
21
  extractor = klass.new(url, options)
22
22
  extractor.extract
23
23
  extractor.final_path
24
24
  end
25
-
25
+
26
26
  attr_reader :path, :options, :final_path
27
27
  attr_accessor :tmp_dir, :destination
28
-
28
+
29
29
  def initialize(path, options = {})
30
30
  @path = Pathname.new(path)
31
31
  @options = options
@@ -33,14 +33,14 @@ module Downlow
33
33
  @tmp_dir.mkpath
34
34
  @destination = Pathname.new(options[:destination] || tmp_dir + self.path.stem).expand_path
35
35
  end
36
-
36
+
37
37
  def extract
38
38
  raise "Should be overridden by subclass"
39
39
  end
40
-
40
+
41
41
  def extracted?
42
42
  !!@final_path
43
43
  end
44
-
44
+
45
45
  end
46
- end
46
+ end
@@ -1,8 +1,8 @@
1
1
  module Downlow
2
2
  class Dir < Extractor
3
-
3
+
4
4
  handles(/.*$/)
5
-
5
+
6
6
  def extract
7
7
  if path.directory?
8
8
  self.destination = destination + path.basename
@@ -13,6 +13,6 @@ module Downlow
13
13
  path.cp destination
14
14
  @final_path = destination
15
15
  end
16
-
16
+
17
17
  end
18
- end
18
+ end
@@ -3,15 +3,15 @@ require 'archive/tar/minitar'
3
3
 
4
4
  module Downlow
5
5
  class TarGz < Extractor
6
-
6
+
7
7
  handles(/\.tar\.gz$/, :file_only => true)
8
-
8
+
9
9
  def extract
10
10
  destination.mkpath
11
11
  tgz = ::Zlib::GzipReader.new(File.open(path, 'rb'))
12
12
  ::Archive::Tar::Minitar.unpack(tgz, destination.to_s)
13
13
  @final_path = destination
14
14
  end
15
-
15
+
16
16
  end
17
- end
17
+ end
@@ -2,9 +2,9 @@ require 'zip/zip'
2
2
 
3
3
  module Downlow
4
4
  class Zip < Extractor
5
-
5
+
6
6
  handles(/\.zip$/, :file_only => true)
7
-
7
+
8
8
  def extract
9
9
  ::Zip::ZipFile.foreach(path) do |file|
10
10
  path = destination + file.name
@@ -13,6 +13,6 @@ module Downlow
13
13
  end
14
14
  @final_path = destination
15
15
  end
16
-
16
+
17
17
  end
18
- end
18
+ end
@@ -1,27 +1,27 @@
1
1
  module Downlow
2
2
  class Fetcher
3
-
3
+
4
4
  def self.handles(which)
5
5
  @@handlers ||= []
6
6
  @@handlers << [which, self]
7
7
  end
8
-
8
+
9
9
  def self.fetcher_for(url)
10
10
  @@handlers.each do |matcher, klass|
11
11
  return klass if matcher.match url
12
12
  end
13
13
  end
14
-
14
+
15
15
  def self.fetch(url, options = {})
16
16
  klass = fetcher_for(url)
17
17
  fetcher = klass.new(url, options)
18
18
  fetcher.fetch
19
19
  fetcher.local_path
20
20
  end
21
-
21
+
22
22
  attr_reader :url, :options, :local_path
23
23
  attr_accessor :tmp_dir, :destination
24
-
24
+
25
25
  def initialize(url, options = {})
26
26
  @url = Pathname.new(url)
27
27
  @options = options
@@ -30,14 +30,14 @@ module Downlow
30
30
  @destination = Pathname.new(options[:destination] || tmp_dir + self.url.basename ).expand_path
31
31
  @destination.dirname.mkpath
32
32
  end
33
-
33
+
34
34
  def fetch
35
35
  raise "Should be overridden by subclass"
36
36
  end
37
-
37
+
38
38
  def fetched?
39
39
  !!@local_path
40
40
  end
41
-
41
+
42
42
  end
43
- end
43
+ end
@@ -2,9 +2,9 @@ require 'open-uri'
2
2
 
3
3
  module Downlow
4
4
  class Http < Fetcher
5
-
6
- handles(/^http\:\/\//)
7
-
5
+
6
+ handles(/^https?\:\/\//)
7
+
8
8
  def fetch
9
9
  data = ""
10
10
  filename = destination.basename
@@ -22,6 +22,6 @@ module Downlow
22
22
  File.open(destination, 'w') {|f| f << data }
23
23
  @local_path = destination
24
24
  end
25
-
25
+
26
26
  end
27
- end
27
+ end
@@ -1,13 +1,12 @@
1
1
  module Downlow
2
2
  class Local < Fetcher
3
-
3
+
4
4
  handles(/\w+/)
5
-
5
+
6
6
  def fetch
7
7
  url.cp destination
8
8
  @local_path = destination
9
9
  end
10
-
10
+
11
11
  end
12
12
  end
13
-
@@ -8,19 +8,19 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
8
8
  require 'downlow'
9
9
 
10
10
  class Test::Unit::TestCase
11
-
11
+
12
12
  def tmp_dir
13
13
  dir = File.join('/tmp', 'downlow')
14
14
  FileUtils.mkdir_p(dir)
15
15
  dir
16
16
  end
17
-
17
+
18
18
  def fixture_path(path)
19
19
  full_path = File.expand_path(File.join(File.dirname(__FILE__), 'fixtures', path))
20
20
  end
21
-
21
+
22
22
  def fixture(path)
23
23
  File.read(fixture_path(path))
24
24
  end
25
-
25
+
26
26
  end
@@ -1,12 +1,12 @@
1
1
  require 'helper'
2
2
 
3
3
  class TestDownlow < Test::Unit::TestCase
4
-
4
+
5
5
  context "Downlow" do
6
6
  setup do
7
7
  FileUtils.rm_rf(tmp_dir) if File.readable?(tmp_dir)
8
8
  end
9
-
9
+
10
10
  context ".get" do
11
11
  should "fetch a gzip then extract it" do
12
12
  url = 'http://example.org/example.tar.gz'
@@ -16,16 +16,16 @@ class TestDownlow < Test::Unit::TestCase
16
16
  assert_match(/final/, path.to_s)
17
17
  assert (path + 'test/test.jpg').readable?
18
18
  end
19
-
19
+
20
20
  should "assume string as second arg is destination" do
21
21
  url = 'http://example.org/example.tar.gz'
22
22
  FakeWeb.register_uri(:get, url, :body => fixture('test.tar.gz'))
23
23
  path = Downlow.get(url, File.join(tmp_dir, 'final'))
24
24
  assert path.is_a?(Pathname)
25
25
  assert_match(/final/, path.to_s)
26
- assert (path + 'test/test.jpg').readable?
26
+ assert (path + 'test/test.jpg').readable?
27
27
  end
28
-
28
+
29
29
  should "fetch a single file to a destination" do
30
30
  url = 'http://example.org/example.js'
31
31
  FakeWeb.register_uri(:get, url, :body => fixture('sammy.git/lib/sammy.js'))
@@ -34,17 +34,16 @@ class TestDownlow < Test::Unit::TestCase
34
34
  assert_match(/final/, path.to_s)
35
35
  assert path.file?
36
36
  end
37
-
37
+
38
38
  should "move a single file to a destination" do
39
39
  path = Downlow.get(fixture_path('sammy.git/lib/sammy.js'), File.join(tmp_dir, 'final'))
40
40
  assert path.is_a?(Pathname)
41
41
  assert_match(/final/, path.to_s)
42
42
  assert path.file?
43
43
  end
44
-
44
+
45
45
  end
46
-
46
+
47
47
  end
48
48
 
49
49
  end
50
-
@@ -1,117 +1,117 @@
1
1
  require 'helper'
2
2
 
3
3
  class TestDownlowExtractor < Test::Unit::TestCase
4
-
4
+
5
5
  context "Downlow::Extractor" do
6
6
  setup do
7
7
  FileUtils.rm_rf(tmp_dir) if File.readable?(tmp_dir)
8
8
  end
9
-
9
+
10
10
  context ".extract" do
11
11
  setup do
12
12
  @path = fixture_path('test.zip')
13
13
  @final_path = Downlow::Extractor.extract(@path, {:destination => tmp_dir})
14
14
  end
15
-
15
+
16
16
  should "extract the files" do
17
17
  assert @final_path.is_a?(Pathname)
18
18
  assert @final_path.directory?
19
19
  assert_match(/tmp/, @final_path.to_s)
20
20
  assert File.readable?(@final_path + 'test/test.jpg')
21
21
  end
22
-
22
+
23
23
  end
24
-
24
+
25
25
  context ".extractor_for" do
26
-
26
+
27
27
  should 'determine the fetcher by path' do
28
28
  assert_equal Downlow::TarGz, Downlow::Extractor.extractor_for(fixture_path('test.tar.gz'))
29
29
  assert_equal Downlow::Zip, Downlow::Extractor.extractor_for(fixture_path('test.zip'))
30
30
  end
31
-
31
+
32
32
  end
33
-
33
+
34
34
  context "initializing" do
35
35
  setup do
36
36
  @path = fixture_path('test.zip')
37
37
  @extractor = Downlow::Zip.new(@path, {:tmp_dir => tmp_dir})
38
38
  end
39
-
39
+
40
40
  should "set the path" do
41
41
  assert_equal @path, @extractor.path.to_s
42
42
  end
43
-
43
+
44
44
  should "set the options" do
45
45
  assert_equal tmp_dir, @extractor.options[:tmp_dir]
46
46
  end
47
-
47
+
48
48
  end
49
-
49
+
50
50
  context "extract" do
51
-
51
+
52
52
  context "zip" do
53
53
  setup do
54
54
  @extractor = Downlow::Zip.new(fixture_path('test.zip'), :destination => tmp_dir)
55
55
  @path = @extractor.extract
56
56
  end
57
-
57
+
58
58
  should 'extract to the destination' do
59
59
  assert @path.is_a?(Pathname)
60
60
  assert @path.directory?
61
61
  assert_match(/tmp/, @path.to_s)
62
62
  assert (@path + 'test/test.jpg').readable?
63
63
  end
64
-
64
+
65
65
  should "set the local path" do
66
66
  assert_equal @path, @extractor.final_path
67
67
  end
68
-
68
+
69
69
  end
70
-
71
-
70
+
71
+
72
72
  context "tar.gz" do
73
73
  setup do
74
74
  @extractor = Downlow::TarGz.new(fixture_path('test.tar.gz'), :destination => tmp_dir)
75
75
  @path = @extractor.extract
76
76
  end
77
-
77
+
78
78
  should 'extract to the destination' do
79
79
  assert @path.is_a?(Pathname)
80
80
  assert @path.directory?
81
81
  assert_match(/tmp/, @path.to_s)
82
82
  assert (@path + 'test/test.jpg').readable?
83
83
  end
84
-
84
+
85
85
  should "set the final_path" do
86
86
  assert_equal @path, @extractor.final_path
87
87
  end
88
88
  end
89
-
89
+
90
90
  context "dir" do
91
91
  setup do
92
92
  @extractor = Downlow::Dir.new(fixture_path(''), :destination => tmp_dir)
93
93
  @path = @extractor.extract
94
94
  end
95
-
95
+
96
96
  should 'extract to the destination' do
97
97
  assert @path.is_a?(Pathname)
98
98
  assert @path.directory?
99
99
  assert_match(/tmp/, @path.to_s)
100
100
  assert (@path + 'test.tar.gz').readable?
101
101
  end
102
-
102
+
103
103
  should "set the final_path" do
104
104
  assert_equal @path, @extractor.final_path
105
105
  end
106
106
  end
107
-
107
+
108
108
  context "single file" do
109
109
  setup do
110
110
  @destination = File.join(tmp_dir, "sammy.js")
111
111
  @extractor = Downlow::Dir.new(fixture_path('sammy.git/lib/sammy.js'), :destination => @destination)
112
112
  @path = @extractor.extract
113
113
  end
114
-
114
+
115
115
  should 'extract to the exact destination' do
116
116
  assert @path.is_a?(Pathname)
117
117
  assert @path.file?
@@ -119,13 +119,13 @@ class TestDownlowExtractor < Test::Unit::TestCase
119
119
  assert @path.readable?
120
120
  assert_equal @destination, @path.to_s
121
121
  end
122
-
122
+
123
123
  should "set the final_path" do
124
124
  assert_equal @path, @extractor.final_path
125
125
  end
126
126
  end
127
127
  end
128
-
128
+
129
129
  end
130
130
 
131
131
  end
@@ -1,96 +1,96 @@
1
1
  require 'helper'
2
2
 
3
3
  class TestDownlowFetcher < Test::Unit::TestCase
4
-
4
+
5
5
  context "Downlow::Fetcher" do
6
6
  setup do
7
7
  FileUtils.rm_rf(tmp_dir) if File.readable?(tmp_dir)
8
8
  @url = 'http://github.com/quirkey/sammy/'
9
9
  FakeWeb.register_uri(:get, @url, :body => 'quirkey.com Sammy')
10
10
  end
11
-
11
+
12
12
  context ".fetch" do
13
13
  setup do
14
14
  @path = Downlow::Fetcher.fetch(@url, {:tmp_dir => tmp_dir})
15
15
  end
16
-
16
+
17
17
  should "fetch the files" do
18
18
  assert @path.is_a?(Pathname)
19
19
  assert @path.file?
20
20
  assert_match(/tmp/, @path.to_s)
21
21
  assert_match(/quirkey/, @path.read)
22
22
  end
23
-
23
+
24
24
  end
25
-
25
+
26
26
  context ".fetcher_for" do
27
-
27
+
28
28
  should 'determine the fetcher by URL' do
29
29
  assert_equal Downlow::Git, Downlow::Fetcher.fetcher_for('git://github.com/quirkey/sammy.git')
30
30
  assert_equal Downlow::Http, Downlow::Fetcher.fetcher_for('http://github.com/quirkey/sammy/')
31
31
  end
32
-
32
+
33
33
  end
34
-
34
+
35
35
  context "initializing" do
36
36
  setup do
37
37
  @url = 'http://github.com/quirkey/sammy/'
38
38
  @fetcher = Downlow::Http.new(@url, {:tmp_dir => tmp_dir})
39
39
  end
40
-
40
+
41
41
  should "set the url" do
42
42
  assert_equal @url, @fetcher.url.to_s
43
43
  end
44
-
44
+
45
45
  should "set the options" do
46
46
  assert_equal tmp_dir, @fetcher.options[:tmp_dir]
47
47
  end
48
-
48
+
49
49
  end
50
-
50
+
51
51
  context "fetch" do
52
-
52
+
53
53
  context "git" do
54
54
  setup do
55
55
  class Downlow::Git
56
- def git_clone
56
+ def git_clone
57
57
  FileUtils.cp_r(File.join(File.dirname(__FILE__), 'fixtures', 'sammy.git'), destination)
58
58
  end
59
59
  end
60
60
  @fetcher = Downlow::Git.new('git://github.com/quirkey/sammy.git', :tmp_dir => tmp_dir)
61
61
  @path = @fetcher.fetch
62
62
  end
63
-
63
+
64
64
  should 'clone a git repo to the temp dir' do
65
65
  assert @path.is_a?(Pathname)
66
66
  assert @path.directory?
67
67
  assert_match(/tmp/, @path.to_s)
68
68
  assert (@path + 'lib/sammy.js').readable?
69
69
  end
70
-
70
+
71
71
  should "set the local path" do
72
72
  assert_equal @path, @fetcher.local_path
73
73
  end
74
-
74
+
75
75
  end
76
-
76
+
77
77
  context "http" do
78
78
  setup do
79
79
  @fetcher = Downlow::Http.new(@url, :tmp_dir => tmp_dir)
80
80
  @path = @fetcher.fetch
81
81
  end
82
-
82
+
83
83
  should 'download the file to the temp dir' do
84
84
  assert @path.is_a?(Pathname)
85
85
  assert @path.file?
86
86
  assert_match(/tmp/, @path.to_s)
87
87
  assert_match(/quirkey/, @path.read)
88
88
  end
89
-
89
+
90
90
  should "set the local path" do
91
91
  assert_equal @path, @fetcher.local_path
92
92
  end
93
-
93
+
94
94
  should "strip query-string when determining file name" do
95
95
  gist_url = "http://github.com/malsup/form/raw/master/jquery.form.js?v2.38"
96
96
  FakeWeb.register_uri(:get, gist_url, :body => "I'm just a normal file")
@@ -100,7 +100,7 @@ class TestDownlowFetcher < Test::Unit::TestCase
100
100
  assert @path.file?
101
101
  assert_match(/jquery.form.js$/, @path.to_s)
102
102
  end
103
-
103
+
104
104
  should "respect content-disposition headers" do
105
105
  gist_url = "http://gist.github.com/gists/290151/download"
106
106
  FakeWeb.register_uri(:get, gist_url, :response => fixture('gist_response'))
@@ -110,7 +110,7 @@ class TestDownlowFetcher < Test::Unit::TestCase
110
110
  assert @path.file?
111
111
  assert_match(/\.tar\.gz$/, @path.to_s)
112
112
  end
113
-
113
+
114
114
  should "respect location headers" do
115
115
  url = "http://github.com/quirkey/lighthouse_stats/tarball/master"
116
116
  location_url = "http://github.com/quirkey-lighthouse_stats-e9012c9.tar.gz"
@@ -122,11 +122,11 @@ class TestDownlowFetcher < Test::Unit::TestCase
122
122
  assert @path.file?
123
123
  assert_match(/\.tar\.gz$/, @path.to_s)
124
124
  end
125
-
125
+
126
126
  end
127
-
127
+
128
128
  context "github" do
129
-
129
+
130
130
  setup do
131
131
  @url = 'gh://quirkey/sammy'
132
132
  @real_url = "http://github.com/quirkey/sammy/tarball/master"
@@ -134,38 +134,38 @@ class TestDownlowFetcher < Test::Unit::TestCase
134
134
  @fetcher = Downlow::Github.new(@url, :tmp_dir => tmp_dir)
135
135
  @path = @fetcher.fetch
136
136
  end
137
-
137
+
138
138
  should "reset the url to the tarball url" do
139
139
  assert_equal @real_url, @fetcher.url
140
- end
140
+ end
141
141
  end
142
-
142
+
143
143
  context "file" do
144
144
  setup do
145
145
  @fetcher = Downlow::Local.new(File.join(File.dirname(__FILE__), '..', 'lib'), :tmp_dir => tmp_dir)
146
146
  @path = @fetcher.fetch
147
147
  end
148
-
148
+
149
149
  should "move directory into temp dir" do
150
150
  assert @path.is_a?(Pathname)
151
151
  assert @path.directory?
152
152
  assert_match(/tmp/, @path.to_s)
153
153
  assert (@path + 'downlow.rb').readable?
154
154
  end
155
-
155
+
156
156
  should "set the local path" do
157
157
  assert_equal @path, @fetcher.local_path
158
158
  end
159
-
159
+
160
160
  end
161
-
161
+
162
162
  context "ftp" do
163
163
  should_eventually "download via ftp" do
164
-
164
+
165
165
  end
166
166
  end
167
167
  end
168
-
168
+
169
169
  end
170
170
 
171
171
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 3
9
- version: 0.1.3
8
+ - 4
9
+ version: 0.1.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Aaron Quint
@@ -14,13 +14,14 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-09 00:00:00 -05:00
17
+ date: 2010-11-21 00:00:00 -08:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rubyzip
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
24
25
  requirements:
25
26
  - - ">="
26
27
  - !ruby/object:Gem::Version
@@ -35,6 +36,7 @@ dependencies:
35
36
  name: archive-tar-minitar
36
37
  prerelease: false
37
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
38
40
  requirements:
39
41
  - - ">="
40
42
  - !ruby/object:Gem::Version
@@ -49,6 +51,7 @@ dependencies:
49
51
  name: shoulda
50
52
  prerelease: false
51
53
  requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
52
55
  requirements:
53
56
  - - ">="
54
57
  - !ruby/object:Gem::Version
@@ -61,6 +64,7 @@ dependencies:
61
64
  name: fakeweb
62
65
  prerelease: false
63
66
  requirement: &id004 !ruby/object:Gem::Requirement
67
+ none: false
64
68
  requirements:
65
69
  - - ">="
66
70
  - !ruby/object:Gem::Version
@@ -81,7 +85,6 @@ extra_rdoc_files:
81
85
  - README.rdoc
82
86
  files:
83
87
  - .document
84
- - .gitignore
85
88
  - LICENSE
86
89
  - README.rdoc
87
90
  - Rakefile
@@ -110,11 +113,12 @@ homepage: http://github.com/quirkey/downlow
110
113
  licenses: []
111
114
 
112
115
  post_install_message:
113
- rdoc_options:
114
- - --charset=UTF-8
116
+ rdoc_options: []
117
+
115
118
  require_paths:
116
119
  - lib
117
120
  required_ruby_version: !ruby/object:Gem::Requirement
121
+ none: false
118
122
  requirements:
119
123
  - - ">="
120
124
  - !ruby/object:Gem::Version
@@ -122,6 +126,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
122
126
  - 0
123
127
  version: "0"
124
128
  required_rubygems_version: !ruby/object:Gem::Requirement
129
+ none: false
125
130
  requirements:
126
131
  - - ">="
127
132
  - !ruby/object:Gem::Version
@@ -131,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
136
  requirements: []
132
137
 
133
138
  rubyforge_project:
134
- rubygems_version: 1.3.6
139
+ rubygems_version: 1.3.7
135
140
  signing_key:
136
141
  specification_version: 3
137
142
  summary: easy downloading and extracting API
data/.gitignore DELETED
@@ -1,23 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC
22
-
23
- tmp