Class: RDoc::Parser::C

Inherits:
Object
  • Object
show all
Defined in:
lib/shomen/rdoc/extensions.rb

Instance Method Summary collapse

Instance Method Details

#find_class_comment(class_name, class_meth) ⇒ Object



120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# File 'lib/shomen/rdoc/extensions.rb', line 120

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