mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
f2a91397fd
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
80 lines
2.1 KiB
Ruby
80 lines
2.1 KiB
Ruby
# frozen_string_literal: false
|
|
require "rexml/child"
|
|
|
|
module REXML
|
|
##
|
|
# Represents an XML comment; that is, text between \<!-- ... -->
|
|
class Comment < Child
|
|
include Comparable
|
|
START = "<!--"
|
|
STOP = "-->"
|
|
|
|
# The content text
|
|
|
|
attr_accessor :string
|
|
|
|
##
|
|
# Constructor. The first argument can be one of three types:
|
|
# @param first If String, the contents of this comment are set to the
|
|
# argument. If Comment, the argument is duplicated. If
|
|
# Source, the argument is scanned for a comment.
|
|
# @param second If the first argument is a Source, this argument
|
|
# should be nil, not supplied, or a Parent to be set as the parent
|
|
# of this object
|
|
def initialize( first, second = nil )
|
|
super(second)
|
|
if first.kind_of? String
|
|
@string = first
|
|
elsif first.kind_of? Comment
|
|
@string = first.string
|
|
end
|
|
end
|
|
|
|
def clone
|
|
Comment.new self
|
|
end
|
|
|
|
# == DEPRECATED
|
|
# See REXML::Formatters
|
|
#
|
|
# output::
|
|
# Where to write the string
|
|
# indent::
|
|
# An integer. If -1, no indenting will be used; otherwise, the
|
|
# indentation will be this number of spaces, and children will be
|
|
# indented an additional amount.
|
|
# transitive::
|
|
# Ignored by this class. The contents of comments are never modified.
|
|
# ie_hack::
|
|
# Needed for conformity to the child API, but not used by this class.
|
|
def write( output, indent=-1, transitive=false, ie_hack=false )
|
|
Kernel.warn("Comment.write is deprecated. See REXML::Formatters", uplevel: 1)
|
|
indent( output, indent )
|
|
output << START
|
|
output << @string
|
|
output << STOP
|
|
end
|
|
|
|
alias :to_s :string
|
|
|
|
##
|
|
# Compares this Comment to another; the contents of the comment are used
|
|
# in the comparison.
|
|
def <=>(other)
|
|
other.to_s <=> @string
|
|
end
|
|
|
|
##
|
|
# Compares this Comment to another; the contents of the comment are used
|
|
# in the comparison.
|
|
def ==( other )
|
|
other.kind_of? Comment and
|
|
(other <=> self) == 0
|
|
end
|
|
|
|
def node_type
|
|
:comment
|
|
end
|
|
end
|
|
end
|
|
#vim:ts=2 sw=2 noexpandtab:
|