module Contracts::Core
Public Class Methods
common(base)
click to toggle source
# File lib/contracts/core.rb, line 11 def self.common(base) base.extend(MethodDecorators) base.instance_eval do def functype(funcname) contracts = Engine.fetch_from(self).decorated_methods_for(:class_methods, funcname) return "No contract for #{self}.#{funcname}" if contracts.nil? "#{funcname} :: #{contracts[0]}" end end base.class_eval do def functype(funcname) contracts = Engine.fetch_from(self.class).decorated_methods_for(:instance_methods, funcname) return "No contract for #{self.class}.#{funcname}" if contracts.nil? "#{funcname} :: #{contracts[0]}" end end end
extended(base)
click to toggle source
# File lib/contracts/core.rb, line 7 def self.extended(base) common(base) end
included(base)
click to toggle source
# File lib/contracts/core.rb, line 3 def self.included(base) common(base) end
Public Instance Methods
functype(funcname)
click to toggle source
# File lib/contracts/core.rb, line 15 def functype(funcname) contracts = Engine.fetch_from(self).decorated_methods_for(:class_methods, funcname) return "No contract for #{self}.#{funcname}" if contracts.nil? "#{funcname} :: #{contracts[0]}" end