class Solargraph::Parser::ParserGem::NodeProcessors::SendNode
def process_module_function
-
(void)
-
def process_module_function if node.children[2].nil? # @todo Smelly instance variable access region.instance_variable_set(:@visibility, :module_function) elsif node.children[2].type == :sym || node.children[2].type == :str node.children[2..-1].each do |x| cn = x.children[0].to_s ref = pins.select{ |p| p.is_a?(Pin::Method) && p.namespace == region.closure.full_context.namespace && p.name == cn }.first unless ref.nil? pins.delete ref mm = Solargraph::Pin::Method.new( location: ref.location, closure: ref.closure, name: ref.name, parameters: ref.parameters, comments: ref.comments, scope: :class, visibility: :public, node: ref.node ) cm = Solargraph::Pin::Method.new( location: ref.location, closure: ref.closure, name: ref.name, parameters: ref.parameters, comments: ref.comments, scope: :instance, visibility: :private, node: ref.node) pins.push mm, cm pins.select{|pin| pin.is_a?(Pin::InstanceVariable) && pin.closure.path == ref.path}.each do |ivar| pins.delete ivar pins.push Solargraph::Pin::InstanceVariable.new( location: ivar.location, closure: cm, name: ivar.name, comments: ivar.comments, assignment: ivar.assignment ) pins.push Solargraph::Pin::InstanceVariable.new( location: ivar.location, closure: mm, name: ivar.name, comments: ivar.comments, assignment: ivar.assignment ) end end end elsif node.children[2].type == :def NodeProcessor.process node.children[2], region.update(visibility: :module_function), pins, locals end end