Class: MethodDecorators::Precondition

Inherits:
Decorator
  • Object
show all
Defined in:
lib/method_decorators/precondition.rb

Instance Method Summary collapse

Methods inherited from Decorator

#+@, +@, current_decorators

Constructor Details

#initialize(&blk) ⇒ Precondition

Returns a new instance of Precondition.



5
6
7
# File 'lib/method_decorators/precondition.rb', line 5

def initialize(&blk)
  @block = blk
end

Instance Method Details

#call(orig, this, *args, &blk) ⇒ Object



9
10
11
12
13
14
# File 'lib/method_decorators/precondition.rb', line 9

def call(orig, this, *args, &blk)
  unless passes?(this, *args)
    raise ArgumentError, "failed precondition"
  end
  orig.call(*args, &blk)
end