class Bogus::AddsContractVerification

Public Instance Methods

add(fake_name, &block) click to toggle source
# File lib/bogus/contracts/adds_contract_verification.rb, line 6
def add(fake_name, &block)
  old_described_class = syntax.described_class

  before do
    new_class = adds_recording.add(fake_name, class_to_overwrite(fake_name, block))
    syntax.described_class = new_class if overwritten_described_class?(block)
  end

  after do
    syntax.described_class = old_described_class if overwritten_described_class?(block)
  end

  after_suite { verifies_contracts.verify(fake_name) }
end

Private Instance Methods

after(&block) click to toggle source
# File lib/bogus/contracts/adds_contract_verification.rb, line 47
def after(&block)
  syntax.after { block.call }
end
after_suite(&block) click to toggle source
# File lib/bogus/contracts/adds_contract_verification.rb, line 43
def after_suite(&block)
  syntax.after_suite { block.call }
end
before(&block) click to toggle source
# File lib/bogus/contracts/adds_contract_verification.rb, line 51
def before(&block)
  syntax.before { block.call }
end
class_to_overwrite(fake_name, block) click to toggle source
# File lib/bogus/contracts/adds_contract_verification.rb, line 27
def class_to_overwrite(fake_name, block)
  custom_class(block) || described_class || fake_class(fake_name)
end
custom_class(block) click to toggle source
# File lib/bogus/contracts/adds_contract_verification.rb, line 31
def custom_class(block)
  block.call if block
end
described_class() click to toggle source
# File lib/bogus/contracts/adds_contract_verification.rb, line 35
def described_class
  syntax.described_class
end
fake_class(name) click to toggle source
# File lib/bogus/contracts/adds_contract_verification.rb, line 39
def fake_class(name)
  converts_name_to_class.convert(name)
end
overwritten_described_class?(block) click to toggle source
# File lib/bogus/contracts/adds_contract_verification.rb, line 23
def overwritten_described_class?(block)
  described_class && !custom_class(block)
end