downspout 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -51,3 +51,18 @@ Rake::TestTask.new(:test) do |test|
51
51
  end
52
52
 
53
53
  task :default => :test
54
+
55
+ namespace :basic do
56
+ desc "Basic Steps to take when updating this gem via GemCutter"
57
+ task :steps do
58
+ puts "rake version:bump:patch"
59
+ puts "rake gemspec"
60
+ puts ">>> write code <<<"
61
+ puts "rake test"
62
+ puts "rake build"
63
+ puts "gem install pkg/downspout-{version}.gem"
64
+ puts ">>> manual tests <<<"
65
+ puts "git commit"
66
+ puts "gem push pkg/downspout-{version}.gem"
67
+ end
68
+ end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.3
1
+ 0.2.4
@@ -52,7 +52,7 @@ module Downspout
52
52
  end
53
53
 
54
54
  def self.use_curb?
55
- @@curb_enabled
55
+ @@curb_enabled unless !(self.curb_available?)
56
56
  end
57
57
 
58
58
  def self.enable_curb!
@@ -131,16 +131,14 @@ module Downspout
131
131
 
132
132
  $logger.debug("downspout | downloader | download! | #{self.basename} downloaded? : #{downloaded} ")
133
133
  @finished_at = Time.now
134
-
135
- if (tf && @basename == 'file.downspout') then
134
+
135
+ new_name = generate_file_name
136
+ if (tf && new_name && !(@basename == new_name)) then
136
137
  # rename file more appropriately
137
- new_name = generate_file_name
138
- if !(new_name.nil?) then
139
- $logger.debug("downspout | downloader | download! | Renaming #{@basename} to #{new_name} ...")
140
- new_path = File.join( File.dirname( tf.path ), new_name)
141
- FileUtils.mv( tf.path, new_path )
142
- @path = new_path
143
- end
138
+ $logger.debug("downspout | downloader | download! | Renaming #{@basename} to #{new_name} ...")
139
+ new_path = File.join( File.dirname( tf.path ), new_name)
140
+ FileUtils.mv( tf.path, new_path )
141
+ @path = new_path
144
142
  end
145
143
 
146
144
  $logger.debug("downspout | downloader | download! | Started: #{@started_at.utc}, Finished: #{@finished_at.utc}, Duration: #{duration}")
@@ -328,17 +326,30 @@ module Downspout
328
326
  end
329
327
 
330
328
  def generate_file_name
331
- file_type = @response_headers['Content-Type'] if use_curb?
332
- file_type = @response_headers['Content-Type'] if use_net_http?
329
+
330
+ cd_key = response_headers.keys.select{|k| k =~ /content-disposition/i }.first
331
+ # example : Content-Disposition: attachment; filename="iPad_User_Guide.pdf"
332
+ if cd_key then
333
+ disposition = @response_headers[cd_key]
334
+ if disposition then
335
+ file_name = disposition.match("filename=\"(.+)\"")[1]
336
+ return file_name unless (file_name.nil? || file_name.empty?)
337
+ end
338
+ end
339
+
340
+ ct_key = response_headers.keys.select{|k| k =~ /content-type/i }.first
341
+ return nil unless ct_key
342
+
343
+ file_type = @response_headers[ct_key]
333
344
  return nil unless file_type
334
345
 
335
- return "default.html" if file_type =~ /text\/html/
336
346
  # TODO : smarter file name generation
347
+ return "#{@basename || 'default'}.html" if file_type =~ /html/
348
+ return "#{@basename || 'default'}.pdf" if file_type =~ /pdf/
337
349
 
338
350
  return nil
339
351
  end
340
352
 
341
353
  end
342
-
343
354
 
344
355
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: downspout
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 3
10
- version: 0.2.3
9
+ - 4
10
+ version: 0.2.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Phi.Sanders