Sha256: 8c9fa21f682305b53315c836c1e781fdb118e9b56f4f682455afbe465e58d5b6
Contents?: true
Size: 598 Bytes
Versions: 3
Compression:
Stored size: 598 Bytes
Contents
module Rdbc class Decorator def initialize(object, contract) @object = object @contract = contract end def method_missing(method, *args) object_pre = @object.clone @contract.send_method_pre(method, @object, *args) exception = nil begin result = @object.send(method, *args) rescue => exception end @contract.send_invariant(@object) @contract.send_method_post(method, object_pre, @object, exception, result, *args) if exception.nil? result else raise exception end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
armin-joellenbeck-rdbc-0.2.3 | lib/rdbc/decorator.rb |
armin-joellenbeck-rdbc-0.2.4 | lib/rdbc/decorator.rb |
armin-joellenbeck-rdbc-0.2.5 | lib/rdbc/decorator.rb |