Add uplevel keyword to Kernel#warn and use it
If uplevel keyword is given, the warning message is prepended with caller file and line information and the string "warning: ". The use of the uplevel keyword makes Kernel#warn format output similar to how rb_warn formats output. This patch modifies net/ftp and net/imap to use Kernel#warn instead of $stderr.puts or $stderr.printf, since they are used for printing warnings. This makes lib/cgi/core and tempfile use $stderr.puts instead of warn for debug logging, since they are used for debug printing and not for warning. This does not modify bundler, rubygems, or rdoc, as those are maintained outside of ruby and probably wish to remain backwards compatible with older ruby versions. rb_warn_m code is originally from nobu, but I've changed it so that it only includes the path and lineno from uplevel (not the method), and also prepends the string "warning: ", to make it more similar to rb_warn. From: Jeremy Evans code@jeremyevans.net Signed-off-by: Urabe Shyouhei shyouhei@ruby-lang.org git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
0d7718896c
commit
f2a91397fd
35
error.c
35
error.c
@ -327,10 +327,39 @@ warning_write(int argc, VALUE *argv, VALUE buf)
|
|||||||
static VALUE
|
static VALUE
|
||||||
rb_warn_m(int argc, VALUE *argv, VALUE exc)
|
rb_warn_m(int argc, VALUE *argv, VALUE exc)
|
||||||
{
|
{
|
||||||
if (!NIL_P(ruby_verbose) && argc > 0) {
|
VALUE opts, uplevel = Qnil;
|
||||||
|
|
||||||
|
if (!NIL_P(ruby_verbose) && argc > 0 &&
|
||||||
|
(argc = rb_scan_args(argc, argv, "*:", NULL, &opts)) > 0) {
|
||||||
VALUE str = argv[0];
|
VALUE str = argv[0];
|
||||||
if (argc > 1 || !end_with_asciichar(str, '\n')) {
|
if (!NIL_P(opts)) {
|
||||||
str = rb_str_tmp_new(0);
|
static ID kwds[1];
|
||||||
|
if (!kwds[0]) {
|
||||||
|
CONST_ID(kwds[0], "uplevel");
|
||||||
|
}
|
||||||
|
rb_get_kwargs(opts, kwds, 0, 1, &uplevel);
|
||||||
|
if (uplevel == Qundef) {
|
||||||
|
uplevel = Qnil;
|
||||||
|
}
|
||||||
|
else if (!NIL_P(uplevel)) {
|
||||||
|
uplevel = LONG2NUM((long)NUM2ULONG(uplevel) + 1);
|
||||||
|
uplevel = rb_vm_thread_backtrace_locations(1, &uplevel, GET_THREAD()->self);
|
||||||
|
if (!NIL_P(uplevel)) {
|
||||||
|
uplevel = rb_ary_entry(uplevel, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (argc > 1 || !NIL_P(uplevel) || !end_with_asciichar(str, '\n')) {
|
||||||
|
if (NIL_P(uplevel)) {
|
||||||
|
str = rb_str_tmp_new(0);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
VALUE path;
|
||||||
|
path = rb_funcall(uplevel, rb_intern("path"), 0);
|
||||||
|
str = rb_sprintf("%s:%li: warning: ",
|
||||||
|
rb_string_value_ptr(&path),
|
||||||
|
NUM2LONG(rb_funcall(uplevel, rb_intern("lineno"), 0)));
|
||||||
|
}
|
||||||
RBASIC_SET_CLASS(str, rb_cWarningBuffer);
|
RBASIC_SET_CLASS(str, rb_cWarningBuffer);
|
||||||
rb_io_puts(argc, argv, str);
|
rb_io_puts(argc, argv, str);
|
||||||
RBASIC_SET_CLASS(str, rb_cString);
|
RBASIC_SET_CLASS(str, rb_cString);
|
||||||
|
@ -267,7 +267,7 @@ class CGI
|
|||||||
def _header_for_modruby(buf) #:nodoc:
|
def _header_for_modruby(buf) #:nodoc:
|
||||||
request = Apache::request
|
request = Apache::request
|
||||||
buf.scan(/([^:]+): (.+)#{EOL}/o) do |name, value|
|
buf.scan(/([^:]+): (.+)#{EOL}/o) do |name, value|
|
||||||
warn sprintf("name:%s value:%s\n", name, value) if $DEBUG
|
$stderr.puts sprintf("name:%s value:%s\n", name, value) if $DEBUG
|
||||||
case name
|
case name
|
||||||
when 'Set-Cookie'
|
when 'Set-Cookie'
|
||||||
request.headers_out.add(name, value)
|
request.headers_out.add(name, value)
|
||||||
|
@ -50,7 +50,7 @@ module CMath
|
|||||||
atanh
|
atanh
|
||||||
].each do |meth|
|
].each do |meth|
|
||||||
define_method(meth + '!') do |*args, &block|
|
define_method(meth + '!') do |*args, &block|
|
||||||
warn("CMath##{meth}! is deprecated; use CMath##{meth} or Math##{meth}") if $VERBOSE
|
warn("CMath##{meth}! is deprecated; use CMath##{meth} or Math##{meth}", uplevel: 1) if $VERBOSE
|
||||||
RealMath.send(meth, *args, &block)
|
RealMath.send(meth, *args, &block)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -97,7 +97,7 @@ class Delegator < BasicObject
|
|||||||
target = self.__getobj__ {r = false}
|
target = self.__getobj__ {r = false}
|
||||||
r &&= target.respond_to?(m, include_private)
|
r &&= target.respond_to?(m, include_private)
|
||||||
if r && include_private && !target.respond_to?(m, false)
|
if r && include_private && !target.respond_to?(m, false)
|
||||||
warn "#{caller(3, 1)[0]}: delegator does not forward private method \##{m}"
|
warn "delegator does not forward private method \##{m}", uplevel: 3
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
r
|
r
|
||||||
|
@ -336,7 +336,7 @@ module DRb
|
|||||||
end
|
end
|
||||||
self.class.new(uri, ssl, @config, true)
|
self.class.new(uri, ssl, @config, true)
|
||||||
rescue OpenSSL::SSL::SSLError
|
rescue OpenSSL::SSL::SSLError
|
||||||
warn("#{__FILE__}:#{__LINE__}: warning: #{$!.message} (#{$!.class})") if @config[:verbose]
|
warn("#{$!.message} (#{$!.class})", uplevel: 0) if @config[:verbose]
|
||||||
retry
|
retry
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -206,7 +206,7 @@ module Forwardable
|
|||||||
method_call = "#{<<-"begin;"}\n#{<<-"end;".chomp}"
|
method_call = "#{<<-"begin;"}\n#{<<-"end;".chomp}"
|
||||||
begin;
|
begin;
|
||||||
unless defined? _.#{method}
|
unless defined? _.#{method}
|
||||||
::Kernel.warn "\#{caller_locations(1)[0]}: "#{mesg.dump}"\#{_.class}"'##{method}'
|
::Kernel.warn #{mesg.dump}"\#{_.class}"'##{method}', uplevel: 1
|
||||||
_#{method_call}
|
_#{method_call}
|
||||||
else
|
else
|
||||||
_.#{method}(*args, &block)
|
_.#{method}(*args, &block)
|
||||||
|
@ -310,7 +310,7 @@ class IPAddr
|
|||||||
|
|
||||||
# Returns true if the ipaddr is an IPv4-compatible IPv6 address.
|
# Returns true if the ipaddr is an IPv4-compatible IPv6 address.
|
||||||
def ipv4_compat?
|
def ipv4_compat?
|
||||||
warn "#{caller(1, 1)[0]}: warning: IPAddr\##{__callee__} is obsolete" if $VERBOSE
|
warn "IPAddr\##{__callee__} is obsolete", uplevel: 1 if $VERBOSE
|
||||||
_ipv4_compat?
|
_ipv4_compat?
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -336,7 +336,7 @@ class IPAddr
|
|||||||
# Returns a new ipaddr built by converting the native IPv4 address
|
# Returns a new ipaddr built by converting the native IPv4 address
|
||||||
# into an IPv4-compatible IPv6 address.
|
# into an IPv4-compatible IPv6 address.
|
||||||
def ipv4_compat
|
def ipv4_compat
|
||||||
warn "#{caller(1, 1)[0]}: warning: IPAddr\##{__callee__} is obsolete" if $VERBOSE
|
warn "IPAddr\##{__callee__} is obsolete", uplevel: 1 if $VERBOSE
|
||||||
if !ipv4?
|
if !ipv4?
|
||||||
raise InvalidAddressError, "not an IPv4 address"
|
raise InvalidAddressError, "not an IPv4 address"
|
||||||
end
|
end
|
||||||
|
@ -277,7 +277,7 @@ module IRB # :nodoc:
|
|||||||
begin
|
begin
|
||||||
require m
|
require m
|
||||||
rescue LoadError => err
|
rescue LoadError => err
|
||||||
warn err.backtrace[0] << ":#{err.class}: #{err}"
|
warn ":#{err.class}: #{err}", uplevel: 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -31,7 +31,7 @@ module IRB # :nodoc:
|
|||||||
if @encoding_name
|
if @encoding_name
|
||||||
begin load 'irb/encoding_aliases.rb'; rescue LoadError; end
|
begin load 'irb/encoding_aliases.rb'; rescue LoadError; end
|
||||||
if @encoding = @@legacy_encoding_alias_map[@encoding_name]
|
if @encoding = @@legacy_encoding_alias_map[@encoding_name]
|
||||||
warn "%s is obsolete. use %s" % ["#{@lang}_#{@territory}.#{@encoding_name}", "#{@lang}_#{@territory}.#{@encoding.name}"]
|
warn(("%s is obsolete. use %s" % ["#{@lang}_#{@territory}.#{@encoding_name}", "#{@lang}_#{@territory}.#{@encoding.name}"]), uplevel: 1)
|
||||||
end
|
end
|
||||||
@encoding = Encoding.find(@encoding_name) rescue nil
|
@encoding = Encoding.find(@encoding_name) rescue nil
|
||||||
end
|
end
|
||||||
|
@ -1184,7 +1184,7 @@ class Matrix
|
|||||||
# deprecated; use Matrix#determinant
|
# deprecated; use Matrix#determinant
|
||||||
#
|
#
|
||||||
def determinant_e
|
def determinant_e
|
||||||
warn "#{caller(1, 1)[0]}: warning: Matrix#determinant_e is deprecated; use #determinant"
|
warn "Matrix#determinant_e is deprecated; use #determinant", uplevel: 1
|
||||||
determinant
|
determinant
|
||||||
end
|
end
|
||||||
alias det_e determinant_e
|
alias det_e determinant_e
|
||||||
@ -1242,7 +1242,7 @@ class Matrix
|
|||||||
# deprecated; use Matrix#rank
|
# deprecated; use Matrix#rank
|
||||||
#
|
#
|
||||||
def rank_e
|
def rank_e
|
||||||
warn "#{caller(1, 1)[0]}: warning: Matrix#rank_e is deprecated; use #rank"
|
warn "Matrix#rank_e is deprecated; use #rank", uplevel: 1
|
||||||
rank
|
rank
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -1435,17 +1435,17 @@ class Matrix
|
|||||||
end
|
end
|
||||||
|
|
||||||
def elements_to_f
|
def elements_to_f
|
||||||
warn "#{caller(1, 1)[0]}: warning: Matrix#elements_to_f is deprecated, use map(&:to_f)"
|
warn "Matrix#elements_to_f is deprecated, use map(&:to_f)", uplevel: 1
|
||||||
map(&:to_f)
|
map(&:to_f)
|
||||||
end
|
end
|
||||||
|
|
||||||
def elements_to_i
|
def elements_to_i
|
||||||
warn "#{caller(1, 1)[0]}: warning: Matrix#elements_to_i is deprecated, use map(&:to_i)"
|
warn "Matrix#elements_to_i is deprecated, use map(&:to_i)", uplevel: 1
|
||||||
map(&:to_i)
|
map(&:to_i)
|
||||||
end
|
end
|
||||||
|
|
||||||
def elements_to_r
|
def elements_to_r
|
||||||
warn "#{caller(1, 1)[0]}: warning: Matrix#elements_to_r is deprecated, use map(&:to_r)"
|
warn "Matrix#elements_to_r is deprecated, use map(&:to_r)", uplevel: 1
|
||||||
map(&:to_r)
|
map(&:to_r)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -2098,17 +2098,17 @@ class Vector
|
|||||||
end
|
end
|
||||||
|
|
||||||
def elements_to_f
|
def elements_to_f
|
||||||
warn "#{caller(1, 1)[0]}: warning: Vector#elements_to_f is deprecated"
|
warn "Vector#elements_to_f is deprecated", uplevel: 1
|
||||||
map(&:to_f)
|
map(&:to_f)
|
||||||
end
|
end
|
||||||
|
|
||||||
def elements_to_i
|
def elements_to_i
|
||||||
warn "#{caller(1, 1)[0]}: warning: Vector#elements_to_i is deprecated"
|
warn "Vector#elements_to_i is deprecated", uplevel: 1
|
||||||
map(&:to_i)
|
map(&:to_i)
|
||||||
end
|
end
|
||||||
|
|
||||||
def elements_to_r
|
def elements_to_r
|
||||||
warn "#{caller(1, 1)[0]}: warning: Vector#elements_to_r is deprecated"
|
warn "Vector#elements_to_r is deprecated", uplevel: 1
|
||||||
map(&:to_r)
|
map(&:to_r)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -310,13 +310,13 @@ module Net
|
|||||||
|
|
||||||
# Obsolete
|
# Obsolete
|
||||||
def return_code # :nodoc:
|
def return_code # :nodoc:
|
||||||
$stderr.puts("warning: Net::FTP#return_code is obsolete and do nothing")
|
warn("Net::FTP#return_code is obsolete and do nothing", uplevel: 1)
|
||||||
return "\n"
|
return "\n"
|
||||||
end
|
end
|
||||||
|
|
||||||
# Obsolete
|
# Obsolete
|
||||||
def return_code=(s) # :nodoc:
|
def return_code=(s) # :nodoc:
|
||||||
$stderr.puts("warning: Net::FTP#return_code= is obsolete and do nothing")
|
warn("Net::FTP#return_code= is obsolete and do nothing", uplevel: 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Constructs a socket with +host+ and +port+.
|
# Constructs a socket with +host+ and +port+.
|
||||||
|
@ -708,7 +708,7 @@ module Net #:nodoc:
|
|||||||
# http.start { .... }
|
# http.start { .... }
|
||||||
#
|
#
|
||||||
def set_debug_output(output)
|
def set_debug_output(output)
|
||||||
warn 'Net::HTTP#set_debug_output called after HTTP started' if started?
|
warn 'Net::HTTP#set_debug_output called after HTTP started', uplevel: 1 if started?
|
||||||
@debug_output = output
|
@debug_output = output
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ class Net::HTTPGenericRequest
|
|||||||
end
|
end
|
||||||
|
|
||||||
def body_exist?
|
def body_exist?
|
||||||
warn "Net::HTTPRequest#body_exist? is obsolete; use response_body_permitted?" if $VERBOSE
|
warn "Net::HTTPRequest#body_exist? is obsolete; use response_body_permitted?", uplevel: 1 if $VERBOSE
|
||||||
response_body_permitted?
|
response_body_permitted?
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -299,7 +299,7 @@ class Net::HTTPGenericRequest
|
|||||||
|
|
||||||
def supply_default_content_type
|
def supply_default_content_type
|
||||||
return if content_type()
|
return if content_type()
|
||||||
warn 'net/http: warning: Content-Type did not set; using application/x-www-form-urlencoded' if $VERBOSE
|
warn 'net/http: Content-Type did not set; using application/x-www-form-urlencoded', uplevel: 1 if $VERBOSE
|
||||||
set_content_type 'application/x-www-form-urlencoded'
|
set_content_type 'application/x-www-form-urlencoded'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -14,9 +14,9 @@ module Net::HTTPHeader
|
|||||||
@header = {}
|
@header = {}
|
||||||
return unless initheader
|
return unless initheader
|
||||||
initheader.each do |key, value|
|
initheader.each do |key, value|
|
||||||
warn "net/http: warning: duplicated HTTP header: #{key}" if key?(key) and $VERBOSE
|
warn "net/http: duplicated HTTP header: #{key}", uplevel: 1 if key?(key) and $VERBOSE
|
||||||
if value.nil?
|
if value.nil?
|
||||||
warn "net/http: warning: nil HTTP header: #{key}" if $VERBOSE
|
warn "net/http: nil HTTP header: #{key}", uplevel: 1 if $VERBOSE
|
||||||
else
|
else
|
||||||
@header[key.downcase] = [value.strip]
|
@header[key.downcase] = [value.strip]
|
||||||
end
|
end
|
||||||
|
@ -140,17 +140,17 @@ class Net::HTTPResponse
|
|||||||
#
|
#
|
||||||
|
|
||||||
def response #:nodoc:
|
def response #:nodoc:
|
||||||
warn "#{caller(1, 1)[0]}: warning: Net::HTTPResponse#response is obsolete" if $VERBOSE
|
warn "Net::HTTPResponse#response is obsolete", uplevel: 1 if $VERBOSE
|
||||||
self
|
self
|
||||||
end
|
end
|
||||||
|
|
||||||
def header #:nodoc:
|
def header #:nodoc:
|
||||||
warn "#{caller(1, 1)[0]}: warning: Net::HTTPResponse#header is obsolete" if $VERBOSE
|
warn "Net::HTTPResponse#header is obsolete", uplevel: 1 if $VERBOSE
|
||||||
self
|
self
|
||||||
end
|
end
|
||||||
|
|
||||||
def read_header #:nodoc:
|
def read_header #:nodoc:
|
||||||
warn "#{caller(1, 1)[0]}: warning: Net::HTTPResponse#read_header is obsolete" if $VERBOSE
|
warn "Net::HTTPResponse#read_header is obsolete", uplevel: 1 if $VERBOSE
|
||||||
self
|
self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -2032,8 +2032,7 @@ module Net
|
|||||||
# generate a warning message to +stderr+, then return
|
# generate a warning message to +stderr+, then return
|
||||||
# the value of +subtype+.
|
# the value of +subtype+.
|
||||||
def media_subtype
|
def media_subtype
|
||||||
$stderr.printf("warning: media_subtype is obsolete.\n")
|
warn("media_subtype is obsolete, use subtype instead.\n", uplevel: 1)
|
||||||
$stderr.printf(" use subtype instead.\n")
|
|
||||||
return subtype
|
return subtype
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -2060,8 +2059,7 @@ module Net
|
|||||||
# generate a warning message to +stderr+, then return
|
# generate a warning message to +stderr+, then return
|
||||||
# the value of +subtype+.
|
# the value of +subtype+.
|
||||||
def media_subtype
|
def media_subtype
|
||||||
$stderr.printf("warning: media_subtype is obsolete.\n")
|
warn("media_subtype is obsolete, use subtype instead.\n", uplevel: 1)
|
||||||
$stderr.printf(" use subtype instead.\n")
|
|
||||||
return subtype
|
return subtype
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -2090,8 +2088,7 @@ module Net
|
|||||||
# generate a warning message to +stderr+, then return
|
# generate a warning message to +stderr+, then return
|
||||||
# the value of +subtype+.
|
# the value of +subtype+.
|
||||||
def media_subtype
|
def media_subtype
|
||||||
$stderr.printf("warning: media_subtype is obsolete.\n")
|
warn("media_subtype is obsolete, use subtype instead.\n", uplevel: 1)
|
||||||
$stderr.printf(" use subtype instead.\n")
|
|
||||||
return subtype
|
return subtype
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -2151,8 +2148,7 @@ module Net
|
|||||||
# generate a warning message to +stderr+, then return
|
# generate a warning message to +stderr+, then return
|
||||||
# the value of +subtype+.
|
# the value of +subtype+.
|
||||||
def media_subtype
|
def media_subtype
|
||||||
$stderr.printf("warning: media_subtype is obsolete.\n")
|
warn("media_subtype is obsolete, use subtype instead.\n", uplevel: 1)
|
||||||
$stderr.printf(" use subtype instead.\n")
|
|
||||||
return subtype
|
return subtype
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -162,7 +162,7 @@ class OpenStruct
|
|||||||
end
|
end
|
||||||
private :modifiable?
|
private :modifiable?
|
||||||
|
|
||||||
# ::Kernel.warn("#{caller(1, 1)[0]}: do not use OpenStruct#modifiable")
|
# ::Kernel.warn("do not use OpenStruct#modifiable", uplevel: 1)
|
||||||
alias modifiable modifiable? # :nodoc:
|
alias modifiable modifiable? # :nodoc:
|
||||||
protected :modifiable
|
protected :modifiable
|
||||||
|
|
||||||
@ -181,7 +181,7 @@ class OpenStruct
|
|||||||
end
|
end
|
||||||
private :new_ostruct_member!
|
private :new_ostruct_member!
|
||||||
|
|
||||||
# ::Kernel.warn("#{caller(1, 1)[0]}: do not use OpenStruct#new_ostruct_member")
|
# ::Kernel.warn("do not use OpenStruct#new_ostruct_member", uplevel: 1)
|
||||||
alias new_ostruct_member new_ostruct_member! # :nodoc:
|
alias new_ostruct_member new_ostruct_member! # :nodoc:
|
||||||
protected :new_ostruct_member
|
protected :new_ostruct_member
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ module REXML
|
|||||||
# c = CData.new( " Some text " )
|
# c = CData.new( " Some text " )
|
||||||
# c.write( $stdout ) #-> <![CDATA[ Some text ]]>
|
# c.write( $stdout ) #-> <![CDATA[ Some text ]]>
|
||||||
def write( output=$stdout, indent=-1, transitive=false, ie_hack=false )
|
def write( output=$stdout, indent=-1, transitive=false, ie_hack=false )
|
||||||
Kernel.warn( "#{self.class.name}.write is deprecated" )
|
Kernel.warn( "#{self.class.name}.write is deprecated", uplevel: 1)
|
||||||
indent( output, indent )
|
indent( output, indent )
|
||||||
output << START
|
output << START
|
||||||
output << @string
|
output << @string
|
||||||
|
@ -48,7 +48,7 @@ module REXML
|
|||||||
# ie_hack::
|
# ie_hack::
|
||||||
# Needed for conformity to the child API, but not used by this class.
|
# Needed for conformity to the child API, but not used by this class.
|
||||||
def write( output, indent=-1, transitive=false, ie_hack=false )
|
def write( output, indent=-1, transitive=false, ie_hack=false )
|
||||||
Kernel.warn("Comment.write is deprecated. See REXML::Formatters")
|
Kernel.warn("Comment.write is deprecated. See REXML::Formatters", uplevel: 1)
|
||||||
indent( output, indent )
|
indent( output, indent )
|
||||||
output << START
|
output << START
|
||||||
output << @string
|
output << @string
|
||||||
|
@ -710,7 +710,7 @@ module REXML
|
|||||||
# doc.write( out ) #-> doc is written to the string 'out'
|
# doc.write( out ) #-> doc is written to the string 'out'
|
||||||
# doc.write( $stdout ) #-> doc written to the console
|
# doc.write( $stdout ) #-> doc written to the console
|
||||||
def write(output=$stdout, indent=-1, transitive=false, ie_hack=false)
|
def write(output=$stdout, indent=-1, transitive=false, ie_hack=false)
|
||||||
Kernel.warn("#{self.class.name}.write is deprecated. See REXML::Formatters")
|
Kernel.warn("#{self.class.name}.write is deprecated. See REXML::Formatters", uplevel: 1)
|
||||||
formatter = if indent > -1
|
formatter = if indent > -1
|
||||||
if transitive
|
if transitive
|
||||||
require "rexml/formatters/transitive"
|
require "rexml/formatters/transitive"
|
||||||
|
@ -43,7 +43,7 @@ module REXML
|
|||||||
# See the rexml/formatters package
|
# See the rexml/formatters package
|
||||||
#
|
#
|
||||||
def write writer, indent=-1, transitive=false, ie_hack=false
|
def write writer, indent=-1, transitive=false, ie_hack=false
|
||||||
Kernel.warn( "#{self.class.name}.write is deprecated" )
|
Kernel.warn( "#{self.class.name}.write is deprecated", uplevel: 1)
|
||||||
indent(writer, indent)
|
indent(writer, indent)
|
||||||
writer << START.sub(/\\/u, '')
|
writer << START.sub(/\\/u, '')
|
||||||
writer << @target
|
writer << @target
|
||||||
|
@ -26,7 +26,7 @@ module REXML
|
|||||||
# REXML::Formatters package for changing the output style.
|
# REXML::Formatters package for changing the output style.
|
||||||
def to_s indent=nil
|
def to_s indent=nil
|
||||||
unless indent.nil?
|
unless indent.nil?
|
||||||
Kernel.warn( "#{self.class.name}.to_s(indent) parameter is deprecated" )
|
Kernel.warn( "#{self.class.name}.to_s(indent) parameter is deprecated", uplevel: 1)
|
||||||
f = REXML::Formatters::Pretty.new( indent )
|
f = REXML::Formatters::Pretty.new( indent )
|
||||||
f.write( self, rv = "" )
|
f.write( self, rv = "" )
|
||||||
else
|
else
|
||||||
|
@ -293,7 +293,7 @@ module REXML
|
|||||||
# See REXML::Formatters
|
# See REXML::Formatters
|
||||||
#
|
#
|
||||||
def write( writer, indent=-1, transitive=false, ie_hack=false )
|
def write( writer, indent=-1, transitive=false, ie_hack=false )
|
||||||
Kernel.warn("#{self.class.name}.write is deprecated. See REXML::Formatters")
|
Kernel.warn("#{self.class.name}.write is deprecated. See REXML::Formatters", uplevel: 1)
|
||||||
formatter = if indent > -1
|
formatter = if indent > -1
|
||||||
REXML::Formatters::Pretty.new( indent )
|
REXML::Formatters::Pretty.new( indent )
|
||||||
else
|
else
|
||||||
|
@ -596,11 +596,10 @@ EOC
|
|||||||
|
|
||||||
def #{accessor_name}=(*args)
|
def #{accessor_name}=(*args)
|
||||||
receiver = self.class.name
|
receiver = self.class.name
|
||||||
warn("Warning:\#{caller.first.sub(/:in `.*'\z/, '')}: " \
|
warn("Don't use `\#{receiver}\##{accessor_name} = XXX'/" \
|
||||||
"Don't use `\#{receiver}\##{accessor_name} = XXX'/" \
|
|
||||||
"`\#{receiver}\#set_#{accessor_name}(XXX)'. " \
|
"`\#{receiver}\#set_#{accessor_name}(XXX)'. " \
|
||||||
"Those APIs are not sense of Ruby. " \
|
"Those APIs are not sense of Ruby. " \
|
||||||
"Use `\#{receiver}\##{plural_name} << XXX' instead of them.")
|
"Use `\#{receiver}\##{plural_name} << XXX' instead of them.", uplevel: 1)
|
||||||
if args.size == 1
|
if args.size == 1
|
||||||
@#{accessor_name}.push(args[0])
|
@#{accessor_name}.push(args[0])
|
||||||
else
|
else
|
||||||
|
@ -124,7 +124,7 @@ class Tempfile < DelegateClass(File)
|
|||||||
# If Tempfile.new cannot find a unique filename within a limited
|
# If Tempfile.new cannot find a unique filename within a limited
|
||||||
# number of tries, then it will raise an exception.
|
# number of tries, then it will raise an exception.
|
||||||
def initialize(basename="", tmpdir=nil, mode: 0, **options)
|
def initialize(basename="", tmpdir=nil, mode: 0, **options)
|
||||||
warn "Tempfile.new doesn't call the given block." if block_given?
|
warn "Tempfile.new doesn't call the given block.", uplevel: 1 if block_given?
|
||||||
|
|
||||||
@unlinked = false
|
@unlinked = false
|
||||||
@mode = mode|File::RDWR|File::CREAT|File::EXCL
|
@mode = mode|File::RDWR|File::CREAT|File::EXCL
|
||||||
@ -250,7 +250,7 @@ class Tempfile < DelegateClass(File)
|
|||||||
def call(*args)
|
def call(*args)
|
||||||
return if @pid != Process.pid
|
return if @pid != Process.pid
|
||||||
|
|
||||||
warn "removing #{@tmpfile.path}..." if $DEBUG
|
$stderr.puts "removing #{@tmpfile.path}..." if $DEBUG
|
||||||
|
|
||||||
@tmpfile.close
|
@tmpfile.close
|
||||||
begin
|
begin
|
||||||
@ -258,7 +258,7 @@ class Tempfile < DelegateClass(File)
|
|||||||
rescue Errno::ENOENT
|
rescue Errno::ENOENT
|
||||||
end
|
end
|
||||||
|
|
||||||
warn "done" if $DEBUG
|
$stderr.puts "done" if $DEBUG
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ module Timeout
|
|||||||
end
|
end
|
||||||
|
|
||||||
def timeout(*args, &block)
|
def timeout(*args, &block)
|
||||||
warn "#{caller_locations(1, 1)[0]}: Object##{__method__} is deprecated, use Timeout.timeout instead."
|
warn "Object##{__method__} is deprecated, use Timeout.timeout instead.", uplevel: 1
|
||||||
Timeout.timeout(*args, &block)
|
Timeout.timeout(*args, &block)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ module URI
|
|||||||
# # => "@%3F@%21"
|
# # => "@%3F@%21"
|
||||||
#
|
#
|
||||||
def escape(*arg)
|
def escape(*arg)
|
||||||
warn "#{caller(1, 1)[0]}: warning: URI.escape is obsolete" if $VERBOSE
|
warn "URI.escape is obsolete", uplevel: 1 if $VERBOSE
|
||||||
DEFAULT_PARSER.escape(*arg)
|
DEFAULT_PARSER.escape(*arg)
|
||||||
end
|
end
|
||||||
alias encode escape
|
alias encode escape
|
||||||
@ -132,7 +132,7 @@ module URI
|
|||||||
# # => "http://example.com/?a=\t\r"
|
# # => "http://example.com/?a=\t\r"
|
||||||
#
|
#
|
||||||
def unescape(*arg)
|
def unescape(*arg)
|
||||||
warn "#{caller(1, 1)[0]}: warning: URI.unescape is obsolete" if $VERBOSE
|
warn "URI.unescape is obsolete", uplevel: 1 if $VERBOSE
|
||||||
DEFAULT_PARSER.unescape(*arg)
|
DEFAULT_PARSER.unescape(*arg)
|
||||||
end
|
end
|
||||||
alias decode unescape
|
alias decode unescape
|
||||||
@ -300,7 +300,7 @@ module URI
|
|||||||
# # => ["http://foo.example.com/bla", "mailto:test@example.com"]
|
# # => ["http://foo.example.com/bla", "mailto:test@example.com"]
|
||||||
#
|
#
|
||||||
def self.extract(str, schemes = nil, &block)
|
def self.extract(str, schemes = nil, &block)
|
||||||
warn "#{caller(1, 1)[0]}: warning: URI.extract is obsolete" if $VERBOSE
|
warn "URI.extract is obsolete", uplevel: 1 if $VERBOSE
|
||||||
DEFAULT_PARSER.extract(str, schemes, &block)
|
DEFAULT_PARSER.extract(str, schemes, &block)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -336,7 +336,7 @@ module URI
|
|||||||
# end
|
# end
|
||||||
#
|
#
|
||||||
def self.regexp(schemes = nil)
|
def self.regexp(schemes = nil)
|
||||||
warn "#{caller(1, 1)[0]}: warning: URI.regexp is obsolete" if $VERBOSE
|
warn "URI.regexp is obsolete", uplevel: 1 if $VERBOSE
|
||||||
DEFAULT_PARSER.make_regexp(schemes)
|
DEFAULT_PARSER.make_regexp(schemes)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1517,7 +1517,7 @@ module URI
|
|||||||
elsif name == 'http_proxy'
|
elsif name == 'http_proxy'
|
||||||
unless proxy_uri = env[name]
|
unless proxy_uri = env[name]
|
||||||
if proxy_uri = env[name.upcase]
|
if proxy_uri = env[name.upcase]
|
||||||
warn 'The environment variable HTTP_PROXY is discouraged. Use http_proxy.'
|
warn 'The environment variable HTTP_PROXY is discouraged. Use http_proxy.', uplevel: 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
@ -103,7 +103,7 @@ module WEBrick
|
|||||||
@shutdown_pipe = nil
|
@shutdown_pipe = nil
|
||||||
unless @config[:DoNotListen]
|
unless @config[:DoNotListen]
|
||||||
if @config[:Listen]
|
if @config[:Listen]
|
||||||
warn(":Listen option is deprecated; use GenericServer#listen")
|
warn(":Listen option is deprecated; use GenericServer#listen", uplevel: 1)
|
||||||
end
|
end
|
||||||
listen(@config[:BindAddress], @config[:Port])
|
listen(@config[:BindAddress], @config[:Port])
|
||||||
if @config[:Port] == 0
|
if @config[:Port] == 0
|
||||||
|
@ -37,7 +37,7 @@ module WEBrick
|
|||||||
Process::Sys::setgid(pw.gid)
|
Process::Sys::setgid(pw.gid)
|
||||||
Process::Sys::setuid(pw.uid)
|
Process::Sys::setuid(pw.uid)
|
||||||
else
|
else
|
||||||
warn("WEBrick::Utils::su doesn't work on this platform")
|
warn("WEBrick::Utils::su doesn't work on this platform", uplevel: 1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
module_function :su
|
module_function :su
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
begin
|
begin
|
||||||
require 'psych'
|
require 'psych'
|
||||||
rescue LoadError
|
rescue LoadError
|
||||||
warn "#{caller[0]}:"
|
warn "It seems your ruby installation is missing psych (for YAML output).\n" \
|
||||||
warn "It seems your ruby installation is missing psych (for YAML output)."
|
"To eliminate this warning, please install libyaml and reinstall your ruby.\n",
|
||||||
warn "To eliminate this warning, please install libyaml and reinstall your ruby."
|
uplevel: 1
|
||||||
raise
|
raise
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1003,6 +1003,11 @@ $stderr = $stdout; raise "\x82\xa0"') do |outs, errs, status|
|
|||||||
assert_equal(["\n"], capture_warning_warn {warn ""})
|
assert_equal(["\n"], capture_warning_warn {warn ""})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_kernel_warn_uplevel
|
||||||
|
warning = capture_warning_warn {warn("test warning", uplevel: 0)}
|
||||||
|
assert_equal("#{__FILE__}:#{__LINE__-1}: warning: test warning\n", warning[0])
|
||||||
|
end
|
||||||
|
|
||||||
def test_warning_warn_invalid_argument
|
def test_warning_warn_invalid_argument
|
||||||
assert_raise(TypeError) do
|
assert_raise(TypeError) do
|
||||||
::Warning.warn nil
|
::Warning.warn nil
|
||||||
|
Loading…
x
Reference in New Issue
Block a user