Class: Mongrel::UploadProgress

Inherits:
Object
  • Object
show all
Defined in:
lib/mongrel_upload_progress/init.rb

Overview

Keeps track of the status of all currently processing uploads

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeUploadProgress

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

#debugObject

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

#listObject



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