Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Documenting `Data` classes

Aberta
#1,375 0 comentários 5 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

@tompng já está trabalhando nisso.

Desde 23/7/2026.

  • #1754 de @tompng — aberto

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
45/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
ruby
Domínio
documentation

Direção de pesquisa

Comece reproduzindo os exemplos documentados com rdoc, com e sem o parser Prism, para Data.define, Struct.new e a reabertura da classe gerada. Rastreie como essas definições são classificadas e verifique se a classe e seus métodos são documentados como uma classe, enquanto a documentação obsoleta de Object não é mantida.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Feature Request

rdoc does not usefully document data classes defined the correct way:

# Documenting a class made with Data.define
MyDataClass = Data.define :a do
  # Capitalize the value of +a+.
  def cap
    a.capitalize
  end
end

This documents a constant on Object, Object::MyDataClass instead of documenting it as a class itself, and the method within the data class definition is not documented either. It does not matter whether the Prism parser is used.

When documented with reopening, there are two different issues

MyDataClass = Data.define :a # :nodoc:

# Documenting a class made with Data.define
class MyDataClass
  # Capitalize the value of +a+.
  def cap
    a.capitalize
  end
end

If defined without # :nodoc:, MyDataClass is still documented as a constant on Object; if defined with # :nodoc:, the documentation is removed, but the generated documentation pages for Object isn't removed.

I believe that Data.define and Struct.new should be treated as if they were written as class variants.

Linguagem predominante
Ruby
Estrelas
928
Forks
469
Merge médio
1d 7h
PRs com merge (30d)
17

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de ruby/rdoc

Todas as issues de ruby/rdoc

Issues semelhantes

Mais issues de Ruby

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.