# File lib/mutter/mutterer.rb, line 11
    def initialize obj = {}
      self.reset
      @defaults = load 'default'

      case obj
        when Hash       # A style definition: expand quick-styles and merge with @styles
          @styles = obj.inject({}) do |h, (k, v)|
            h.merge k =>
              (v.is_a?(Hash) ? v : { :match => v, :style => [k].flatten })
          end
        when Array      # An array of styles to be activated
          @active = obj
        when Symbol     # A single style to be activated
          self << obj
        when String     # The path of a yaml style-sheet
          @styles = load obj
        else raise ArgumentError
      end

      #
      # Create an instance method for each style
      #
      self.styles.keys.each do |style|
        (class << self; self end).class_eval do
          define_method style do |msg|
            say msg, style
          end
        end if style.is_a? Symbol
      end
    end