mongrel_upload_progress 0.2 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -15,7 +15,7 @@ setup_rdoc ['README', 'LICENSE', 'COPYING', 'lib/**/*.rb', 'doc/**/*.rdoc']
15
15
  desc "Does a full compile, test run"
16
16
  task :default => [:test, :package]
17
17
 
18
- version="0.2"
18
+ version="0.2.1"
19
19
  name="mongrel_upload_progress"
20
20
 
21
21
  setup_gem(name, version) do |spec|
@@ -5,7 +5,7 @@ class Upload < GemPlugin::Plugin "/handlers"
5
5
  include Mongrel::HttpHandlerPlugin
6
6
 
7
7
  def initialize(options = {})
8
- @path_info = options[:path_info]
8
+ @path_info = Array(options[:path_info])
9
9
  @frequency = options[:frequency] || 3
10
10
  @request_notify = true
11
11
  if options[:drb]
@@ -32,19 +32,15 @@ class Upload < GemPlugin::Plugin "/handlers"
32
32
 
33
33
  private
34
34
  def upload_notify(action, params, *args)
35
- return unless params['PATH_INFO'] == @path_info &&
35
+ return unless @path_info.include?(params['PATH_INFO']) &&
36
36
  params[Mongrel::Const::REQUEST_METHOD] == 'POST' &&
37
37
  upload_id = Mongrel::HttpRequest.query_parse(params['QUERY_STRING'])['upload_id']
38
38
  if action == :mark
39
- last_checked_time = instance_variable_get(checked_var(upload_id)) rescue nil
39
+ last_checked_time = Mongrel::Uploads.last_checked(upload_id)
40
40
  return unless last_checked_time && Time.now - last_checked_time > @frequency
41
41
  end
42
- return unless Mongrel::Uploads.send(action, upload_id, *args)
43
- instance_variable_set(checked_var(upload_id), (action == :finish ? nil : Time.now))
44
- end
45
-
46
- def checked_var(key)
47
- key && "@checked_#{key}"
42
+ Mongrel::Uploads.send(action, upload_id, *args)
43
+ Mongrel::Uploads.update_checked_time(upload_id) unless action == :finish
48
44
  end
49
45
  end
50
46
 
@@ -57,42 +53,38 @@ class Mongrel::UploadProgress
57
53
  end
58
54
 
59
55
  def check(upid)
60
- puts "#{upid}: Checking" if @debug
61
- instance_variable_get(upload_var(upid)) rescue nil
56
+ @counters[upid].last rescue nil
57
+ end
58
+
59
+ def last_checked(upid)
60
+ @counters[upid].first rescue nil
61
+ end
62
+
63
+ def update_checked_time(upid)
64
+ @guard.synchronize { @counters[upid][0] = Time.now }
62
65
  end
63
66
 
64
67
  def add(upid, size)
65
68
  @guard.synchronize do
66
- @counters[upid] = Time.now
67
- instance_variable_set(upload_var(upid), {:size => size, :received => 0})
69
+ @counters[upid] = [Time.now, {:size => size, :received => 0}]
68
70
  puts "#{upid}: Added" if @debug
69
71
  end
70
- true
71
- rescue NameError # bad upid instance var
72
- puts $!.message
73
- @guard.synchronize { @counters[upid] = nil }
74
72
  end
75
73
 
76
74
  def mark(upid, len)
75
+ return unless status = check(upid)
77
76
  puts "#{upid}: Marking" if @debug
78
- status = check(upid)
79
- status[:received] = status[:size] - len if status
77
+ @guard.synchronize { status[:received] = status[:size] - len }
80
78
  end
81
79
 
82
80
  def finish(upid)
83
81
  @guard.synchronize do
84
82
  puts "#{upid}: Finished" if @debug
85
- instance_variable_set(upload_var(upid), nil) if @counters.delete(upid)
83
+ @counters.delete(upid)
86
84
  end
87
- true
88
85
  end
89
86
 
90
87
  def list
91
88
  @counters.keys.sort
92
89
  end
93
-
94
- private
95
- def upload_var(key)
96
- key && "@upload_#{key}"
97
- end
98
90
  end
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.11
2
+ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: mongrel_upload_progress
5
5
  version: !ruby/object:Gem::Version
6
- version: "0.2"
7
- date: 2006-09-11 00:00:00 -07:00
6
+ version: 0.2.1
7
+ date: 2007-01-19 00:00:00 -08:00
8
8
  summary: The mongrel_upload_progress GemPlugin
9
9
  require_paths:
10
10
  - lib
@@ -25,6 +25,7 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
25
25
  platform: ruby
26
26
  signing_key:
27
27
  cert_chain:
28
+ post_install_message:
28
29
  authors:
29
30
  - Nobody
30
31
  files: