class AbstractInterface::Interface

Public Class Methods

new(constant, interface) click to toggle source
# File lib/ruby_us/abstract_interface.rb, line 4
def initialize constant, interface
  @constant = constant
  @interface = interface
end

Public Instance Methods

define_method(method_name, &block) click to toggle source
# File lib/ruby_us/abstract_interface.rb, line 9
def define_method method_name, &block
  @constant.module_eval do
    define_method method_name, &block
  end if block_given?
end
define_singleton_method(method_name, &block) click to toggle source
# File lib/ruby_us/abstract_interface.rb, line 15
def define_singleton_method method_name, &block
  if block_given?
    if @constant.is_a? Class
      @constant.class_eval do
        define_singleton_method method_name, &block
      end
    elsif @constant != interface
      @constant::SingletonMethods.module_eval do
        define_method method_name, &block
      end
    end
  end
end