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.
- #last_checked(upid) ⇒ Object
- #list ⇒ Object
- #mark(upid, len) ⇒ Object
- #update_checked_time(upid) ⇒ Object
Constructor Details
#initialize ⇒ UploadProgress
Returns a new instance of UploadProgress.
50 51 52 53 |
# File 'lib/mongrel_upload_progress/init.rb', line 50 def initialize @guard = Mutex.new @counters = {} end |
Instance Attribute Details
#debug ⇒ Object
Returns the value of attribute debug.
49 50 51 |
# File 'lib/mongrel_upload_progress/init.rb', line 49 def debug @debug end |
Instance Method Details
#add(upid, size) ⇒ Object
67 68 69 70 71 72 |
# File 'lib/mongrel_upload_progress/init.rb', line 67 def add(upid, size) @guard.synchronize do @counters[upid] = [Time.now, {:size => size, :received => 0}] puts "#{upid}: Added" if @debug end end |
#check(upid) ⇒ Object
55 56 57 |
# File 'lib/mongrel_upload_progress/init.rb', line 55 def check(upid) @counters[upid].last rescue nil end |
#finish(upid) ⇒ Object
80 81 82 83 84 85 |
# File 'lib/mongrel_upload_progress/init.rb', line 80 def finish(upid) @guard.synchronize do puts "#{upid}: Finished" if @debug @counters.delete(upid) end end |
#last_checked(upid) ⇒ Object
59 60 61 |
# File 'lib/mongrel_upload_progress/init.rb', line 59 def last_checked(upid) @counters[upid].first rescue nil end |
#list ⇒ Object
87 88 89 |
# File 'lib/mongrel_upload_progress/init.rb', line 87 def list @counters.keys.sort end |
#mark(upid, len) ⇒ Object
74 75 76 77 78 |
# File 'lib/mongrel_upload_progress/init.rb', line 74 def mark(upid, len) return unless status = check(upid) puts "#{upid}: Marking" if @debug @guard.synchronize { status[:received] = status[:size] - len } end |
#update_checked_time(upid) ⇒ Object
63 64 65 |
# File 'lib/mongrel_upload_progress/init.rb', line 63 def update_checked_time(upid) @guard.synchronize { @counters[upid][0] = Time.now } end |