Class: YARD::Handlers::Ruby::VisibilityHandler

Inherits:
Base
  • Object
show all
Defined in:
lib/yard/handlers/ruby/visibility_handler.rb

Overview

Handles 'private', 'protected', and 'public' calls.

Constant Summary

Instance Attribute Summary

Attributes inherited from Base

#namespace, #owner, #parser, #scope, #statement, #visibility

Instance Method Summary (collapse)

Methods inherited from Base

handles?, meta_type, method_call, #parse_block

Methods included from Parser::Ruby

#s

Methods inherited from Base

clear_subclasses, #ensure_loaded!, handlers, handles, handles?, #initialize, namespace_only, namespace_only?, #parse_block, process, #push_state, #register, subclasses

Constructor Details

This class inherits a constructor from YARD::Handlers::Base

Instance Method Details

- (Object) process

Main processing callback



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/yard/handlers/ruby/visibility_handler.rb', line 8

process do
  return if (ident = statement.jump(:ident)) == statement
  case statement.type
  when :var_ref
    self.visibility = ident.first
  when :fcall, :command
    statement[1].traverse do |node|
      case node.type
      when :symbol; source = node.jump(:ident).last
      when :string_content; source = node.source
      else next
      end
      MethodObject.new(namespace, source, scope) {|o| o.visibility = ident.first }
    end
  end
end