class Contracts::Decorator
Attributes
decorators[RW]
Public Class Methods
inherited(klass)
click to toggle source
Calls superclass method
# File lib/contracts/decorators.rb, line 29 def self.inherited(klass) super name = klass.name.gsub(/^./) { |m| m.downcase } return if name =~ /^[^A-Za-z_]/ || name =~ /[^0-9A-Za-z_]/ # the file and line parameters set the text for error messages # make a new method that is the name of your decorator. # that method accepts random args and a block. # inside, `decorate` is called with those params. MethodDecorators.module_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1 def #{klass}(*args, &blk) ::Contracts::Engine.fetch_from(self).decorate(#{klass}, *args, &blk) end RUBY_EVAL end
new(klass, method)
click to toggle source
# File lib/contracts/decorators.rb, line 46 def initialize(klass, method) @method = method end