Method: RDoc::Parser::C#handle_attr

Defined in:
lib/rdoc/parser/c.rb

#handle_attr(var_name, attr_name, read, write) ⇒ Object

Creates a new RDoc::Attr attr_name on class var_name that is either read, write or both



843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
# File 'lib/rdoc/parser/c.rb', line 843

def handle_attr(var_name, attr_name, read, write)
  rw = ''
  rw += 'R' if TRUE_VALUES.include?(read)
  rw += 'W' if TRUE_VALUES.include?(write)

  class_name = @known_classes[var_name]

  return unless class_name

  class_obj = find_class var_name, class_name

  return unless class_obj

  comment = find_attr_comment var_name, attr_name
  comment.normalize

  name = attr_name.gsub(/rb_intern(?:_const)?\("([^"]+)"\)/, '\1')

  attr = RDoc::Attr.new '', name, rw, comment

  attr.record_location @top_level
  class_obj.add_attribute attr
  @stats.add_attribute attr
end