class Moguro::Handlers::ClassHandler
Handler for method added event @private @since 0.0.1 @attr_reader [Class] binding class
Attributes
klass[R]
Public Class Methods
new(klass)
click to toggle source
# File lib/moguro/handlers/class_handler.rb, line 12 def initialize(klass) @klass = klass @instance_handlers = {} @class_handlers = {} @arguments_contract = nil @return_value_contract = nil end
Public Instance Methods
_get_class_method_handler(name)
click to toggle source
# File lib/moguro/handlers/class_handler.rb, line 55 def _get_class_method_handler(name) @class_handlers[name] end
_get_instance_method_handler(name)
click to toggle source
# File lib/moguro/handlers/class_handler.rb, line 59 def _get_instance_method_handler(name) @instance_handlers[name] end
contract_arguments(callback)
click to toggle source
# File lib/moguro/handlers/class_handler.rb, line 43 def contract_arguments(callback) @arguments_contract = callback end
contract_return_value(callback)
click to toggle source
# File lib/moguro/handlers/class_handler.rb, line 47 def contract_return_value(callback) @return_value_contract = callback end
handle_method(name)
click to toggle source
# File lib/moguro/handlers/class_handler.rb, line 32 def handle_method(name) @instance_handlers[name] = MethodHandler.new( self, name, arguments_contract: @arguments_contract, return_value_contract: @return_value_contract ) clear_validator @klass.prepend(@instance_handlers[name].module) end
handle_singleton_method(name)
click to toggle source
# File lib/moguro/handlers/class_handler.rb, line 20 def handle_singleton_method(name) @class_handlers[name] ||= SingletonMethodHandler.new( self, name, arguments_contract: @arguments_contract, return_value_contract: @return_value_contract ) clear_validator m = @class_handlers[name].module @klass.singleton_class.class_eval { prepend(m) } end
validatable?()
click to toggle source
# File lib/moguro/handlers/class_handler.rb, line 51 def validatable? !@arguments_contract.nil? || !@return_value_contract.nil? end
Private Instance Methods
clear_validator()
click to toggle source
# File lib/moguro/handlers/class_handler.rb, line 65 def clear_validator @arguments_contract = nil @return_value_contract = nil end