Class: Berater::LimiterSet
- Inherits:
-
Object
- Object
- Berater::LimiterSet
- Includes:
- Enumerable
- Defined in:
- lib/berater/limiter_set.rb
Instance Method Summary collapse
- #<<(limiter) ⇒ Object
- #[](key) ⇒ Object
- #[]=(key, limiter) ⇒ Object
- #clear ⇒ Object
- #count ⇒ Object
- #delete(key) ⇒ Object (also: #remove)
- #each(&block) ⇒ Object
- #empty? ⇒ Boolean
- #fetch(key, val = default = true, &block) ⇒ Object
- #include?(key) ⇒ Boolean
-
#initialize ⇒ LimiterSet
constructor
A new instance of LimiterSet.
Constructor Details
#initialize ⇒ LimiterSet
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 |
#clear ⇒ Object
45 46 47 |
# File 'lib/berater/limiter_set.rb', line 45 def clear @limiters.clear end |
#count ⇒ Object
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
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 |