lib/contracts/core.rb in contracts-lite-0.14.0 vs lib/contracts/core.rb in contracts-lite-0.15.0
- old
+ new
@@ -12,40 +12,19 @@
base.extend(MethodDecorators)
base.instance_eval do
def functype(funcname)
contracts = Engine.fetch_from(self).decorated_methods_for(:class_methods, funcname)
- if contracts.nil?
- "No contract for #{self}.#{funcname}"
- else
- "#{funcname} :: #{contracts[0]}"
- end
+ return "No contract for #{self}.#{funcname}" if contracts.nil?
+ "#{funcname} :: #{contracts[0]}"
end
end
- # NOTE: Workaround for `defined?(super)` bug in ruby 1.9.2
- # source: http://stackoverflow.com/a/11181685
- # bug: https://bugs.ruby-lang.org/issues/6644
- base.class_eval <<-RUBY
- # TODO: deprecate
- # Required when contracts are included in global scope
- def Contract(*args)
- if defined?(super)
- super
- else
- self.class.Contract(*args)
- end
- end
- RUBY
-
base.class_eval do
def functype(funcname)
contracts = Engine.fetch_from(self.class).decorated_methods_for(:instance_methods, funcname)
- if contracts.nil?
- "No contract for #{self.class}.#{funcname}"
- else
- "#{funcname} :: #{contracts[0]}"
- end
+ return "No contract for #{self.class}.#{funcname}" if contracts.nil?
+ "#{funcname} :: #{contracts[0]}"
end
end
end
end
end