class Solargraph::Pin::Namespace
def initialize type: :class, visibility: :public, gates: [''], **splat
-
gates(Array) -- -
visibility(Symbol) -- :public or :private -
type(Symbol) -- :class or :module
def initialize type: :class, visibility: :public, gates: [''], **splat # super(location, namespace, name, comments) super(splat) @type = type @visibility = visibility if name.start_with?('::') @name = name[2..-1] @closure = Solargraph::Pin::ROOT_PIN end @open_gates = gates if @open_gates.one? && @open_gates.first.empty? && @name.include?('::') # In this case, a chained namespace was opened (e.g., Foo::Bar) # but Foo does not exist. parts = @name.split('::') @name = parts.pop @closure = Pin::Namespace.new(name: parts.join('::'), gates: [parts.join('::')]) @context = nil end end