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.



54
55
56
57
# File 'lib/mongrel_upload_progress/init.rb', line 54

def initialize
  @guard    = Mutex.new
  @counters = {}
end

Instance Attribute Details

#debugObject

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 $!.message
  @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

#listObject



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