Class: BlankSlate

### Home Classes Methods

### In Files

- lib/blankslate.rb

### Parent

Object

### Methods

- ::find_hidden_method
- ::hide
- ::reveal

### Class/Module Index

Quicksearch

- BlankSlate
- Kernel
- Module
- Object

No matching classes.

# BlankSlate

BlankSlate provides an abstract base class with no predefined methods (except for `__send__` and `__id__`). BlankSlate is useful as a base class when writing classes that depend upon `method_missing` (e.g. dynamic proxies).

### Public Class Methods

find_hidden_method(name) click to toggle source

    # File lib/blankslate.rb, line 31
    def find_hidden_method(name)
      @hidden_methods ||= {}
      @hidden_methods[name] || superclass.find_hidden_method(name)
    end

hide(name) click to toggle source

Hide the method named `name` in the BlankSlate class. Don't hide `instance_eval` or any method beginning with "__".

    # File lib/blankslate.rb, line 22
    def hide(name)
      if instance_methods.map(&:to_sym).include?(name.to_sym) and
        name !~ /^(__|instance_eval|object_id)/
        @hidden_methods ||= {}
        @hidden_methods[name.to_sym] = instance_method(name)
        undef_method name
      end
    end

reveal(name) click to toggle source

Redefine a previously hidden method so that it may be called on a blank slate object.

    # File lib/blankslate.rb, line 38
    def reveal(name)
      hidden_method = find_hidden_method(name)
      fail "Don't know how to reveal method '#{name}'" unless hidden_method
      define_method(name, hidden_method)
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.