Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion bindings/ruby/rdoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#!/usr/bin/ruby

# use this for debugging:
#!/usr/bin/ruby -d
#
# This is ./rdoc
#
# Call as
Expand Down
28 changes: 21 additions & 7 deletions bindings/ruby/rdoc_parser_swig.rb
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,10 @@ def self.reset

##
# Prepare to parse a SWIG file
# rdoc 3.4: stats parameter is optional

def initialize(top_level, file_name, content, options, stats)
super
def initialize(top_level, file_name, content, options, stats = nil)
super top_level, file_name, content, options

@known_classes = RDoc::KNOWN_CLASSES.dup
@content = handle_tab_width handle_ifdefs_in(@content)
Expand Down Expand Up @@ -363,12 +364,25 @@ def find_body class_name, meth_name, meth_obj, file_content, quiet = false
find_modifiers comment, meth_obj if comment

#meth_obj.params = params
meth_obj.start_collecting_tokens
begin
RDoc::const_get "RubyToken"
tk = RDoc::RubyToken::Token.new nil, 1, 1
tk.set_text body
meth_obj.offset = offset
# new rdoc
meth_obj.start_collecting_tokens :swig
rescue
# old rdoc
meth_obj.start_collecting_tokens
end
begin
tk = nil
if RUBY_VERSION[0,3] == "3.4"
RDoc::Parser::RipperStateLex::const_get "Token"
tk = RDoc::Parser::RipperStateLex::Token.new nil, 1, 1
tk.text = body
else
RDoc::const_get "RubyToken"
tk = RDoc::RubyToken::Token.new nil, 1, 1
tk.set_text body
meth_obj.offset = offset
end
rescue NameError
# rdoc 2.5
tk = { :line_no => 1, :char_no => 1, :text => body }
Expand Down