mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Import RDoc 2.5
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
9b40cdfe8c
commit
46580b5147
176 changed files with 17841 additions and 16457 deletions
171
lib/rdoc/generator/markup.rb
Normal file
171
lib/rdoc/generator/markup.rb
Normal file
|
@ -0,0 +1,171 @@
|
|||
require 'rdoc/text'
|
||||
require 'rdoc/code_objects'
|
||||
require 'rdoc/generator'
|
||||
require 'rdoc/markup/to_html_crossref'
|
||||
|
||||
##
|
||||
# Handle common RDoc::Markup tasks for various CodeObjects
|
||||
|
||||
module RDoc::Generator::Markup
|
||||
|
||||
##
|
||||
# Generates a relative URL from this object's path to +target_path+
|
||||
|
||||
def aref_to(target_path)
|
||||
RDoc::Markup::ToHtml.gen_relative_url path, target_path
|
||||
end
|
||||
|
||||
##
|
||||
# Generates a relative URL from +from_path+ to this object's path
|
||||
|
||||
def as_href(from_path)
|
||||
RDoc::Markup::ToHtml.gen_relative_url from_path, path
|
||||
end
|
||||
|
||||
##
|
||||
# Handy wrapper for marking up this object's comment
|
||||
|
||||
def description
|
||||
markup @comment
|
||||
end
|
||||
|
||||
##
|
||||
# Creates an RDoc::Markup::ToHtmlCrossref formatter
|
||||
|
||||
def formatter
|
||||
return @formatter if defined? @formatter
|
||||
|
||||
show_hash = RDoc::RDoc.current.options.show_hash
|
||||
this = RDoc::Context === self ? self : @parent
|
||||
@formatter = RDoc::Markup::ToHtmlCrossref.new this.path, this, show_hash
|
||||
end
|
||||
|
||||
##
|
||||
# Build a webcvs URL starting for the given +url+ with +full_path+ appended
|
||||
# as the destination path. If +url+ contains '%s' +full_path+ will be
|
||||
# sprintf'd into +url+ instead.
|
||||
|
||||
def cvs_url(url, full_path)
|
||||
if /%s/ =~ url then
|
||||
sprintf url, full_path
|
||||
else
|
||||
url + full_path
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class RDoc::AnyMethod
|
||||
|
||||
include RDoc::Generator::Markup
|
||||
|
||||
##
|
||||
# Prepend +src+ with line numbers. Relies on the first line of a source
|
||||
# code listing having:
|
||||
#
|
||||
# # File xxxxx, line dddd
|
||||
|
||||
def add_line_numbers(src)
|
||||
if src =~ /\A.*, line (\d+)/ then
|
||||
first = $1.to_i - 1
|
||||
last = first + src.count("\n")
|
||||
size = last.to_s.length
|
||||
|
||||
line = first
|
||||
src.gsub!(/^/) do
|
||||
res = if line == first then
|
||||
" " * (size + 2)
|
||||
else
|
||||
"%2$*1$d: " % [size, line]
|
||||
end
|
||||
|
||||
line += 1
|
||||
res
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
##
|
||||
# Turns the method's token stream into HTML
|
||||
|
||||
def markup_code
|
||||
return '' unless @token_stream
|
||||
|
||||
src = ""
|
||||
|
||||
@token_stream.each do |t|
|
||||
next unless t
|
||||
# style = STYLE_MAP[t.class]
|
||||
style = case t
|
||||
when RDoc::RubyToken::TkCONSTANT then "ruby-constant"
|
||||
when RDoc::RubyToken::TkKW then "ruby-keyword kw"
|
||||
when RDoc::RubyToken::TkIVAR then "ruby-ivar"
|
||||
when RDoc::RubyToken::TkOp then "ruby-operator"
|
||||
when RDoc::RubyToken::TkId then "ruby-identifier"
|
||||
when RDoc::RubyToken::TkNode then "ruby-node"
|
||||
when RDoc::RubyToken::TkCOMMENT then "ruby-comment cmt"
|
||||
when RDoc::RubyToken::TkREGEXP then "ruby-regexp re"
|
||||
when RDoc::RubyToken::TkSTRING then "ruby-value str"
|
||||
when RDoc::RubyToken::TkVal then "ruby-value"
|
||||
else
|
||||
nil
|
||||
end
|
||||
|
||||
text = CGI.escapeHTML t.text
|
||||
|
||||
if style
|
||||
src << "<span class=\"#{style}\">#{text}</span>"
|
||||
else
|
||||
src << text
|
||||
end
|
||||
end
|
||||
|
||||
add_line_numbers src
|
||||
|
||||
src
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class RDoc::Attr
|
||||
|
||||
include RDoc::Generator::Markup
|
||||
|
||||
end
|
||||
|
||||
class RDoc::Constant
|
||||
|
||||
include RDoc::Generator::Markup
|
||||
|
||||
end
|
||||
|
||||
class RDoc::Context
|
||||
|
||||
include RDoc::Generator::Markup
|
||||
|
||||
end
|
||||
|
||||
class RDoc::Context::Section
|
||||
|
||||
include RDoc::Generator::Markup
|
||||
|
||||
end
|
||||
|
||||
class RDoc::TopLevel
|
||||
|
||||
##
|
||||
# Returns a URL for this source file on some web repository. Use the -W
|
||||
# command line option to set.
|
||||
|
||||
def cvs_url
|
||||
url = RDoc::RDoc.current.options.webcvs
|
||||
|
||||
if /%s/ =~ url then
|
||||
url % @absolute_name
|
||||
else
|
||||
url + @absolute_name
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue