Class: Berater::LimiterSet

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/berater/limiter_set.rb

Instance Method Summary collapse

Constructor Details

#initializeLimiterSet

Returns a new instance of LimiterSet.



7
8
9
# File 'lib/berater/limiter_set.rb', line 7

def initialize
  @limiters = {}
end

Instance Method Details

#<<(limiter) ⇒ Object



15
16
17
18
# File 'lib/berater/limiter_set.rb', line 15

def <<(limiter)
  key = limiter.key if limiter.respond_to?(:key)
  send(:[]=, key, limiter)
end

#[](key) ⇒ Object



28
29
30
# File 'lib/berater/limiter_set.rb', line 28

def [](key)
  @limiters[key]
end

#[]=(key, limiter) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/berater/limiter_set.rb', line 20

def []=(key, limiter)
  unless limiter.is_a? Berater::Limiter
    raise ArgumentError, "expected Berater::Limiter, found: #{limiter}"
  end

  @limiters[key] = limiter
end

#clearObject



45
46
47
# File 'lib/berater/limiter_set.rb', line 45

def clear
  @limiters.clear
end

#countObject



49
50
51
# File 'lib/berater/limiter_set.rb', line 49

def count
  @limiters.count
end

#delete(key) ⇒ Object Also known as: remove



53
54
55
56
57
58
59
# File 'lib/berater/limiter_set.rb', line 53

def delete(key)
  if key.is_a? Berater::Limiter
    @limiters.delete(key.key)
  else
    @limiters.delete(key)
  end
end

#each(&block) ⇒ Object



11
12
13
# File 'lib/berater/limiter_set.rb', line 11

def each(&block)
  @limiters.each_value(&block)
end

#empty?Boolean

Returns:

  • (Boolean)


62
63
64
# File 'lib/berater/limiter_set.rb', line 62

def empty?
  @limiters.empty?
end

#fetch(key, val = default = true, &block) ⇒ Object



32
33
34
35
# File 'lib/berater/limiter_set.rb', line 32

def fetch(key, val = default = true, &block)
  args = default ? [ key ] : [ key, val ]
  @limiters.fetch(*args, &block)
end

#include?(key) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
40
41
42
43
# File 'lib/berater/limiter_set.rb', line 37

def include?(key)
  if key.is_a? Berater::Limiter
    @limiters.value?(key)
  else
    @limiters.key?(key)
  end
end