Noir::ApexExtractor
Salesforce Apex declaration scanner. A .cls file holds one top-level
class; this yields its header and the members declared directly in its
body. Inner-class members are skipped: Apex only exposes REST, Aura and
webservice entry points on top-level classes.
Apex keywords and annotations are case-insensitive, so annotation names are returned lowercased. String literals are single-quoted only.
Constants
ANNOTATION_RE = /@(\w+)/
ARGS = TopLevelSplit::Rules.new(nest: TopLevelSplit::Nest::Angle, quotes: "'", empties: TopLevelSplit::Empties::DropAll)
BACKSLASH = '\\'.ord.to_u8
CLASS_RE = /\bclass\s+(\w+)/i
CLOSE = '}'.ord.to_u8
NEWLINE = '\n'.ord.to_u8
OPEN = '{'.ord.to_u8
QUOTE = '\''.ord.to_u8
SEMI = ';'.ord.to_u8
SIGNATURE_RE = /(\w+)\s*\(([^()]*)\)\s*\z/
A method header ends with name(args); properties and inner classes
(String name { get; }, class Inner {) do not.