def ensure_call(value)
      @count += 1

      if value.nil? && expects_argument?
        if default_value
          @value = default_value
        elsif !suppress_errors?
          raise Slop::MissingArgument.new("missing argument for #{flag}", flags)
        end
      else
        @value = call(value)
      end

      block.call(@value) if block.respond_to?(:call)
    end
def ensure_call(value)
      @count += 1

      if value.nil? && expects_argument?
        if default_value
          @value = default_value
        elsif !suppress_errors?
          raise Slop::MissingArgument.new("missing argument for #{flag}", flags)
        end
      else
        @value = call(value)
      end

      block.call(@value) if block.respond_to?(:call)
    end
Since `call()` can be used/overriden in subclasses, this
 method is used to do general tasks like increment count. This
 ensures you don't *have* to call `super` when overriding `call()`.
 It's used in the Parser.