Class: Protocol::Multipart::ByteLimit

Inherits:
Object
  • Object
show all
Defined in:
lib/protocol/multipart/byte_limit.rb

Overview

Tracks consumed bytes against an optional maximum.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(maximum, name: :size) ⇒ ByteLimit

Initialize a byte limit.



15
16
17
18
19
20
21
22
23
# File 'lib/protocol/multipart/byte_limit.rb', line 15

def initialize(maximum, name: :size)
	if maximum and maximum < 0
		raise ArgumentError, "Multipart limits must be non-negative!"
	end
	
	@maximum = maximum
	@name = name
	@size = 0
end

Instance Attribute Details

#sizeObject (readonly)

The number of bytes consumed.



26
27
28
# File 'lib/protocol/multipart/byte_limit.rb', line 26

def size
  @size
end

Instance Method Details

#consume(size) ⇒ Object

Consume the given number of bytes.



31
32
33
34
35
36
37
38
39
# File 'lib/protocol/multipart/byte_limit.rb', line 31

def consume(size)
	@size += size
	
	if @maximum and @size > @maximum
		raise LimitError, "Multipart #{@name} exceeded limit of #{@maximum}!"
	end
	
	return @size
end