Class: Mongrel::UploadProgress
- Inherits:
-
Object
- Object
- Mongrel::UploadProgress
- Defined in:
- lib/mongrel_upload_progress/init.rb
Overview
Keeps track of the status of all currently processing uploads
Instance Attribute Summary collapse
-
#debug ⇒ Object
Returns the value of attribute debug.
Instance Method Summary collapse
- #add(upid, size) ⇒ Object
- #check(upid) ⇒ Object
- #finish(upid) ⇒ Object
-
#initialize ⇒ UploadProgress
constructor
A new instance of UploadProgress.
- #list ⇒ Object
- #mark(upid, len) ⇒ Object
Constructor Details
#initialize ⇒ UploadProgress
Returns a new instance of UploadProgress.
54 55 56 57 |
# File 'lib/mongrel_upload_progress/init.rb', line 54 def initialize @guard = Mutex.new @counters = {} end |
Instance Attribute Details
#debug ⇒ Object
Returns the value of attribute debug.
53 54 55 |
# File 'lib/mongrel_upload_progress/init.rb', line 53 def debug @debug end |
Instance Method Details
#add(upid, size) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/mongrel_upload_progress/init.rb', line 64 def add(upid, size) @guard.synchronize do @counters[upid] = Time.now instance_variable_set(upload_var(upid), {:size => size, :received => 0}) puts "#{upid}: Added" if @debug end true rescue NameError # bad upid instance var puts $!. @guard.synchronize { @counters[upid] = nil } end |
#check(upid) ⇒ Object
59 60 61 62 |
# File 'lib/mongrel_upload_progress/init.rb', line 59 def check(upid) puts "#{upid}: Checking" if @debug instance_variable_get(upload_var(upid)) rescue nil end |
#finish(upid) ⇒ Object
82 83 84 85 86 87 88 |
# File 'lib/mongrel_upload_progress/init.rb', line 82 def finish(upid) @guard.synchronize do puts "#{upid}: Finished" if @debug instance_variable_set(upload_var(upid), nil) if @counters.delete(upid) end true end |
#list ⇒ Object
90 91 92 |
# File 'lib/mongrel_upload_progress/init.rb', line 90 def list @counters.keys.sort end |
#mark(upid, len) ⇒ Object
76 77 78 79 80 |
# File 'lib/mongrel_upload_progress/init.rb', line 76 def mark(upid, len) puts "#{upid}: Marking" if @debug status = check(upid) status[:received] = status[:size] - len if status end |