Class: Loquacious::Undefined

### Home Classes Methods

### In Files

- lib/loquacious/undefined.rb

### Parent

Object

### Methods

- ::new
- ::warn
- #method_missing
- #nil?
- #respond_to_missing?

### Files

- History.txt
- README.rdoc

### Class/Module Index

Quicksearch

- Loquacious
- Loquacious::Configuration
- Loquacious::Configuration::DSL
- Loquacious::Configuration::Help
- Loquacious::Configuration::Iterator
- Loquacious::Undefined
- String

No matching classes.

# Loquacious::Undefined

Represents an undefined configuration value. An undefined value is assigned to each configuration propery by default. Any method can be invoked on an undefined value, and a warning message will be printed to the IO stream (defaulting to $stderr).

The purpose of this class is to provide the user with a helpful message that the configuration values they are trying to use have not been setup correctly.

### Attributes

io[RW]

### Public Class Methods

new( key ) click to toggle source

Creates a new undefined value returned from the lookup key in some configuration object. The key is used to alert the user where the undefined value came from.

    # File lib/loquacious/undefined.rb, line 63
    def initialize( key )
      @key = Kernel.Array(key)
    end

warn( key ) click to toggle source

Write a warning message to the Undefined class IO stream. By default, this IO stream is set to the Ruby $stderr output.

    # File lib/loquacious/undefined.rb, line 42
    def warn( key )
      if @first_time
        @io.puts ---------------------------------------------------------------------------The Loquacious configuration system has detected that one or moesettings have an undefined value. An attempt is being made to referencesub-properties of these undefined settings. Messages will follow containinginformation about the undefined properties.---------------------------------------------------------------------------
        @first_time = false
      end

      @io.puts "Access to undefined value #{key.first.inspect}: #{key.join('.')}"
    end

### Public Instance Methods

method_missing( method, *args, &block ) click to toggle source

For every method invoked on an undefined object, generate a warning message describing the undefined value and the method that was called.

Returns a new undefined object with the most recent method included in the key name.

    # File lib/loquacious/undefined.rb, line 84
    def method_missing( method, *args, &block )
      key = @key.dup << method.to_s
      Undefined.warn key
      return Undefined.new(key)
    end

nil?() click to toggle source

An undefined value acts like a `nil` in that it has no value of its own. This method always returns `true`.

    # File lib/loquacious/undefined.rb, line 70
    def nil?() true; end

respond_to_missing?( id, priv = false ) click to toggle source

We can respond to any method except :call. The call method is reserved for Procs and lambdas, and it is used internally by loquacious for lazy evaluation of configuration parameters.

    # File lib/loquacious/undefined.rb, line 76
    def respond_to_missing?( id, priv = false ) id != :call; end

[Validate]

Generated with the Darkfish Rdoc Generator 2.