Class: RDoc::Generator::Method
- Inherits:
-
Object
- Object
- RDoc::Generator::Method
show all
- Includes:
- MarkUp
- Defined in:
- lib/rdoc/generator.rb
Constant Summary
collapse
- @@seq =
"M000000"
- @@all_methods =
[]
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from MarkUp
#cvs_url, #markup, #style_url
Constructor Details
#initialize(context, html_class, options) ⇒ Method
Returns a new instance of Method.
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
|
# File 'lib/rdoc/generator.rb', line 830
def initialize(context, html_class, options)
@context = context
@html_class = html_class
@options = options
@formatter = @options.formatter ||
RDoc::Markup::ToHtmlCrossref.new(path, self, @options.show_hash)
@template = options.template_class
@@seq = @@seq.succ
@seq = @@seq
@@all_methods << self
context.viewer = self
if (ts = @context.token_stream)
@source_code = markup_code(ts)
unless @options.inline_source
@src_url = create_source_code_file(@source_code)
@img_url = RDoc::Generator.gen_url path, 'source.png'
end
end
AllReferences.add(name, self)
end
|
Instance Attribute Details
#context ⇒ Object
Returns the value of attribute context.
813
814
815
|
# File 'lib/rdoc/generator.rb', line 813
def context
@context
end
|
#img_url ⇒ Object
Returns the value of attribute img_url.
815
816
817
|
# File 'lib/rdoc/generator.rb', line 815
def img_url
@img_url
end
|
#source_code ⇒ Object
Returns the value of attribute source_code.
816
817
818
|
# File 'lib/rdoc/generator.rb', line 816
def source_code
@source_code
end
|
#src_url ⇒ Object
Returns the value of attribute src_url.
814
815
816
|
# File 'lib/rdoc/generator.rb', line 814
def src_url
@src_url
end
|
Class Method Details
.all_methods ⇒ Object
822
823
824
|
# File 'lib/rdoc/generator.rb', line 822
def self.all_methods
@@all_methods
end
|
.reset ⇒ Object
826
827
828
|
# File 'lib/rdoc/generator.rb', line 826
def self.reset
@@all_methods = []
end
|
Instance Method Details
#<=>(other) ⇒ Object
969
970
971
|
# File 'lib/rdoc/generator.rb', line 969
def <=>(other)
@context <=> other.context
end
|
#add_line_numbers(src) ⇒ Object
We rely on the fact that the first line of a source code listing has
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
|
# File 'lib/rdoc/generator.rb', line 1015
def add_line_numbers(src)
if src =~ /\A.*, line (\d+)/
first = $1.to_i - 1
last = first + src.count("\n")
size = last.to_s.length
real_fmt = "%#{size}d: "
fmt = " " * (size+2)
src.gsub!(/^/) do
res = sprintf(fmt, first)
first += 1
fmt = real_fmt
res
end
end
end
|
#aliases ⇒ Object
1035
1036
1037
|
# File 'lib/rdoc/generator.rb', line 1035
def aliases
@context.aliases
end
|
#aref ⇒ Object
890
891
892
|
# File 'lib/rdoc/generator.rb', line 890
def aref
@seq
end
|
#as_href(from_path) ⇒ Object
Returns a reference to outselves to be used as an href= the form depends on whether we’re all in one file or in multiple files
862
863
864
865
866
867
868
|
# File 'lib/rdoc/generator.rb', line 862
def as_href(from_path)
if @options.all_one_file
"#" + path
else
RDoc::Generator.gen_url from_path, path
end
end
|
#call_seq ⇒ Object
914
915
916
917
918
919
920
921
|
# File 'lib/rdoc/generator.rb', line 914
def call_seq
cs = @context.call_seq
if cs
cs.gsub(/\n/, "<br />\n")
else
nil
end
end
|
#create_source_code_file(code_body) ⇒ Object
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
|
# File 'lib/rdoc/generator.rb', line 949
def create_source_code_file(code_body)
meth_path = @html_class.path.sub(/\.html$/, '.src')
FileUtils.mkdir_p(meth_path)
file_path = ::File.join meth_path, "#{@seq}.html"
template = RDoc::TemplatePage.new(@template::SRC_PAGE)
open file_path, 'w' do |f|
values = {
'title' => CGI.escapeHTML(index_name),
'code' => code_body,
'style_url' => style_url(file_path, @options.css),
'charset' => @options.charset
}
template.write_html_on(f, values)
end
RDoc::Generator.gen_url path, file_path
end
|
#description ⇒ Object
902
903
904
|
# File 'lib/rdoc/generator.rb', line 902
def description
markup(@context.)
end
|
#document_self ⇒ Object
1031
1032
1033
|
# File 'lib/rdoc/generator.rb', line 1031
def document_self
@context.document_self
end
|
#find_symbol(symbol, method = nil) ⇒ Object
1039
1040
1041
1042
1043
1044
1045
|
# File 'lib/rdoc/generator.rb', line 1039
def find_symbol(symbol, method=nil)
res = @context.parent.find_symbol(symbol, method)
if res
res = res.viewer
end
res
end
|
#index_name ⇒ Object
878
879
880
|
# File 'lib/rdoc/generator.rb', line 878
def index_name
"#{@context.name} (#{@html_class.name})"
end
|
#markup_code(tokens) ⇒ Object
Given a sequence of source tokens, mark up the source code to make it look purty.
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
|
# File 'lib/rdoc/generator.rb', line 977
def markup_code(tokens)
src = ""
tokens.each do |t|
next unless t
style = case t
when RubyToken::TkCONSTANT then "ruby-constant"
when RubyToken::TkKW then "ruby-keyword kw"
when RubyToken::TkIVAR then "ruby-ivar"
when RubyToken::TkOp then "ruby-operator"
when RubyToken::TkId then "ruby-identifier"
when RubyToken::TkNode then "ruby-node"
when RubyToken::TkCOMMENT then "ruby-comment cmt"
when RubyToken::TkREGEXP then "ruby-regexp re"
when RubyToken::TkSTRING then "ruby-value str"
when 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) if @options.include_line_numbers
src
end
|
#name ⇒ Object
870
871
872
|
# File 'lib/rdoc/generator.rb', line 870
def name
@context.name
end
|
#params ⇒ Object
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
|
# File 'lib/rdoc/generator.rb', line 923
def params
params = @context.params
if params !~ /^\w/
params = @context.params.gsub(/\s*\#.*/, '')
params = params.tr("\n", " ").squeeze(" ")
params = "(" + params + ")" unless params[0] == ?(
if (block = @context.block_params)
params.sub!(/,?\s*&\w+/, '')
block.gsub!(/\s*\#.*/, '')
block = block.tr("\n", " ").squeeze(" ")
if block[0] == ?(
block.sub!(/^\(/, '').sub!(/\)/, '')
end
params << " {|#{block.strip}| ...}"
end
end
CGI.escapeHTML(params)
end
|
#parent_name ⇒ Object
882
883
884
885
886
887
888
|
# File 'lib/rdoc/generator.rb', line 882
def parent_name
if @context.parent.parent
@context.parent.parent.full_name
else
nil
end
end
|
#path ⇒ Object
894
895
896
897
898
899
900
|
# File 'lib/rdoc/generator.rb', line 894
def path
if @options.all_one_file
aref
else
@html_class.path + "#" + aref
end
end
|
#section ⇒ Object
874
875
876
|
# File 'lib/rdoc/generator.rb', line 874
def section
@context.section
end
|
#singleton ⇒ Object
910
911
912
|
# File 'lib/rdoc/generator.rb', line 910
def singleton
@context.singleton
end
|
#visibility ⇒ Object
906
907
908
|
# File 'lib/rdoc/generator.rb', line 906
def visibility
@context.visibility
end
|