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