class Moguro::Contract
Contract
of class state @since 0.0.1 @abstract
Attributes
method[R]
Public Class Methods
new(klass, callback, method)
click to toggle source
# File lib/moguro/contract.rb, line 12 def initialize(klass, callback, method) @klass = klass @type_clauses = Moguro::Processors::ContractProcessor.generate_type_validator(callback, klass) @cb = callback @method = method end
Public Instance Methods
extractor()
click to toggle source
# File lib/moguro/contract.rb, line 25 def extractor raise NotImplementedError end
verify!(instance, args)
click to toggle source
# File lib/moguro/contract.rb, line 19 def verify!(instance, args) values = extractor.extract(args) @type_clauses.verify!(values) instance.instance_exec(values.to_h, &@cb) end