class YARD::Handlers::Ruby::ConstantHandler

Handles any constant assignment

Private Instance Methods

extract_parameters(superclass) click to toggle source

Extract the parameters from the Struct.new AST node, returning them as a list of strings

@param [MethodCallNode] superclass the AST node for the Struct.new call @return [Array<String>] the member names to generate methods for

# File lib/yard/handlers/ruby/constant_handler.rb, line 39
def extract_parameters(superclass)
  return [] unless superclass.parameters
  members = superclass.parameters.select {|x| x && x.type == :symbol_literal}
  members.map! {|x| x.source.strip[1..-1]}
  members
end
process_constant(statement) click to toggle source
# File lib/yard/handlers/ruby/constant_handler.rb, line 18
def process_constant(statement)
  name = statement[0][0][0]
  value = statement[1].source
  register ConstantObject.new(namespace, name) {|o| o.source = statement; o.value = value.strip }
end
process_structclass(statement) click to toggle source
# File lib/yard/handlers/ruby/constant_handler.rb, line 24
def process_structclass(statement)
  lhs = statement[0][0]
  if lhs.type == :const
    klass = create_class(lhs[0], P(:Struct))
    create_attributes(klass, extract_parameters(statement[1]))
  else
    raise YARD::Parser::UndocumentableError, "Struct assignment to #{statement[0].source}"
  end
end