module Ghostable::ClassMethods

Public Instance Methods

ghost_method(pattern, basename, &ghost_block) click to toggle source
# File lib/ghostable.rb, line 8
def ghost_method(pattern, basename, &ghost_block)
  define_method basename do |method_name, *args, &block|
    self.class.class_eval { ghost_block.call(method_name, *args, &block) }
  end

  @patterns ||= {}
  @patterns[basename] = pattern
  tmp_patterns = @patterns.dup
  define_method :get_patterns do
    tmp_patterns
  end
end