def method_missing(name, *args, &block)
      return super if block

      case args.size
        when 0

          # config.client?
          if name =~ /\A(\w+)\?\z/
            !!(respond_to?($1) ? send($1) : instance_variable_get("@#{ $1 }"))

          # config.client
          elsif name =~ /\A(\w+)\z/
            instance_variable_get("@#{ $1 }")

          else
            super
          end

        when 1
          # config.client=
          if name =~ /\A(\w+)=\z/
            instance_variable_set("@#{ $1 }", args.first)
          else
            super
          end
        else
          super
      end
    end
def method_missing(name, *args, &block)
      return super if block

      case args.size
        when 0

          # config.client?
          if name =~ /\A(\w+)\?\z/
            !!(respond_to?($1) ? send($1) : instance_variable_get("@#{ $1 }"))

          # config.client
          elsif name =~ /\A(\w+)\z/
            instance_variable_get("@#{ $1 }")

          else
            super
          end

        when 1
          # config.client=
          if name =~ /\A(\w+)=\z/
            instance_variable_set("@#{ $1 }", args.first)
          else
            super
          end
        else
          super
      end
    end
Allows to dynamically set config attributes.