Sha256: 0528eaa76f5fbceef3340e02f276f0faea029ea5ce7ae1b9f28292ff55d55c5c

Contents?: true

Size: 1.04 KB

Versions: 12

Compression:

Stored size: 1.04 KB

Contents

require "rdoc/parser/c"

# New RDoc somehow misses class comments.
# copied this function from "2.2.2" 
if ['2.4.2', '2.4.3'].include? RDoc::VERSION

  class RDoc::Parser::C
    def find_class_comment(class_name, class_meth)
      comment = nil
      if @content =~ %r{((?>/\*.*?\*/\s+))
                     (static\s+)?void\s+Init_#{class_name}\s*(?:_\(\s*)?\(\s*(?:void\s*)\)}xmi then
        comment = $1
      elsif @content =~ %r{Document-(?:class|module):\s#{class_name}\s*?(?:<\s+[:,\w]+)?\n((?>.*?\*/))}m
        comment = $1
      else
        if @content =~ /rb_define_(class|module)/m then
          class_name = class_name.split("::").last
          comments = []
          @content.split(/(\/\*.*?\*\/)\s*?\n/m).each_with_index do |chunk, index|
            comments[index] = chunk
            if chunk =~ /rb_define_(class|module).*?"(#{class_name})"/m then
              comment = comments[index-1]
              break
            end
          end
        end
      end
      class_meth.comment = mangle_comment(comment) if comment
    end
  end
end

Version data entries

12 entries across 12 versions & 4 rubygems

Version Path
toy-sdoc-0.2.15 lib/sdoc/c_parser_fix.rb
wpdoc-0.2.22 lib/wpdoc/c_parser_fix.rb
morph-sdoc-0.2.21 lib/sdoc/c_parser_fix.rb
wpdoc-0.2.21 lib/wpdoc/c_parser_fix.rb
wpdoc-0.2.20 lib/wpdoc/c_parser_fix.rb
sdoc-0.2.20 lib/sdoc/c_parser_fix.rb
sdoc-0.2.19 lib/sdoc/c_parser_fix.rb
sdoc-0.2.18 lib/sdoc/c_parser_fix.rb
wpdoc-0.2.17 lib/wpdoc/c_parser_fix.rb
sdoc-0.2.17 lib/sdoc/c_parser_fix.rb
sdoc-0.2.16 lib/sdoc/c_parser_fix.rb
sdoc-0.2.15 lib/sdoc/c_parser_fix.rb