# File lib/facet/module/attr.rb, line 37
  def attr(*args)
    # Allows compatibility with old definition, while also
    # extending the capabilites to allow multiple parameters.
    if TrueClass === args.last or FalseClass === args.last or NilClass === args.last
      if args.pop
        args.concat( args.collect{ |a|
          a = a.to_s.strip
          case a.slice(-1,1)
          when '='
            a[0..-2]
          when '?'
            "#{a[0..-2]}="
          else
            "#{a}="
          end
        } )
      end
    end

    made = []
    args.flatten.each { |a|
      a = a.to_s
      m = a.chomp('?').chomp('=')
      case a.slice(-1,1)
      when '?'
        class_eval %{ def #{m}? ; @#{m} ? true : @#{m} ; end }      
      when '='
        class_eval %{ def #{m}=(x) ; @#{m} = x ; end }
      else
        class_eval %{ def #{m} ; @#{m} ; end }
      end
      made << a
    }
    return *made
  end