Class: Berater::Matchers::Overloaded

Inherits:
Object
  • Object
show all
Defined in:
lib/berater/rspec/matchers.rb

Instance Method Summary collapse

Instance Method Details

#descriptionObject



32
33
34
35
36
37
38
# File 'lib/berater/rspec/matchers.rb', line 32

def description
  if @limiter
    "be overloaded"
  else
    "raise #{Berater::Overloaded}"
  end
end

#failure_messageObject



40
41
42
43
44
45
46
# File 'lib/berater/rspec/matchers.rb', line 40

def failure_message
  if @limiter
    "expected to be overloaded"
  else
    "expected #{Berater::Overloaded} to be raised"
  end
end

#failure_message_when_negatedObject



48
49
50
51
52
53
54
# File 'lib/berater/rspec/matchers.rb', line 48

def failure_message_when_negated
  if @limiter
    "expected not to be overloaded"
  else
    "did not expect #{Berater::Overloaded} to be raised"
  end
end

#matches?(obj) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/berater/rspec/matchers.rb', line 8

def matches?(obj)
  case obj
  when Proc
    # eg. expect { ... }.to be_overloaded
    res = obj.call

    if res.is_a? Berater::Limiter
      # eg. expect { Berater.new(...) }.to be_overloaded
      @limiter = res
      @limiter.utilization >= 1
    else
      # eg. expect { Berater(...)  }.to be_overloaded
      # eg. expect { limiter.limit }.to be_overloaded
      false
    end
  when Berater::Limiter
    # eg. expect(Berater.new(...)).to be_overloaded
    @limiter = obj
    @limiter.utilization >= 1
  end
rescue Berater::Overloaded
  true
end

#supports_block_expectations?Boolean

Returns:

  • (Boolean)


4
5
6
# File 'lib/berater/rspec/matchers.rb', line 4

def supports_block_expectations?
  true
end