class Solargraph::Parser::ParserGem::NodeProcessors::SendNode

def process_attribute

Returns:
  • (void) -
def process_attribute
  node.children[2..-1].each do |a|
    loc = get_node_location(node)
    clos = region.closure
    cmnt = comments_for(node)
    if node.children[1] == :attr_reader || node.children[1] == :attr_accessor
      pins.push Solargraph::Pin::Method.new(
        location: loc,
        closure: clos,
        name: a.children[0].to_s,
        comments: cmnt,
        scope: region.scope || :instance,
        visibility: region.visibility,
        attribute: true
      )
    end
    if node.children[1] == :attr_writer || node.children[1] == :attr_accessor
      method_pin = Solargraph::Pin::Method.new(
        location: loc,
        closure: clos,
        name: "#{a.children[0]}=",
        comments: cmnt,
        scope: region.scope || :instance,
        visibility: region.visibility,
        attribute: true
      )
      pins.push method_pin
      method_pin.parameters.push Pin::Parameter.new(name: 'value', decl: :arg, closure: pins.last)
      if method_pin.return_type.defined?
        pins.last.docstring.add_tag YARD::Tags::Tag.new(:param, '', pins.last.return_type.items.map(&:rooted_tags), 'value')
      end
    end
  end
end