Consolidate app/queries/ and app/queriers/ into a single query-objects folder
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 84/100
Direção de pesquisa
Comece lendo Admin::WorkshopConcerns e o ponto de entrada Admin::WorkshopsController#show; em seguida, localize AdminWorkshopAttendeeFlags em app/queriers/. Mova-o para app/queries/ sem alterar seus chamadores e execute as specs de Admin::WorkshopsController#show e do dashboard. Está concluído quando app/queriers/ não existir mais, a classe for resolvida a partir de app/queries/ e ambas as áreas de teste listadas passarem.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Problem
The repo has two folders for the same concept, with three different class shapes between them:
| Folder | Class | Shape | Used by |
|---|---|---|---|
app/queries/ |
DashboardQuery |
class-level methods (upcoming_events, total_upcoming_events_count) |
DashboardController |
app/queries/ |
SponsorsSearch |
ActiveModel::Model object with attr_accessor :name, :chapter |
Admin::SponsorsController |
app/queriers/ |
AdminWorkshopAttendeeFlags |
self.for_members(member_ids) → instance #to_h |
Admin::WorkshopConcerns |
queriers is not a name Rails developers recognise as an autoload convention (app/queries is), and the split isn't semantic — AdminWorkshopAttendeeFlags is the same kind of code as DashboardQuery: batched aggregate queries for controllers.
Proposed change
- Move
AdminWorkshopAttendeeFlagsfromapp/queriers/toapp/queries/and deleteapp/queriers/. - Leave the three existing call shapes alone for now — normalising
DashboardQuery/SponsorsSearchinterfaces is out of scope and needs its own discussion.
Acceptance
app/queriers/no longer exists;AdminWorkshopAttendeeFlagsresolves fromapp/queries/.- Callers unchanged (
Admin::WorkshopConcernsreferences the same class name). Admin::WorkshopsController#showand the dashboard specs pass.
- Linguagem predominante
- Ruby
- Estrelas
- 104
- Forks
- 205
- Merge médio
- 1d 2h
- PRs com merge (30d)
- 81
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de codebar/planner
-
enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 56/100
Mantenedores costumam responder em até 1 dia
-
Chapter show pages allocate ~21k+ objects per render for large chapters (18% of app allocations)Abertaperformance
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 55/100
codebar/planner#2952 · 1 responsável ·
Mantenedores costumam responder em até 1 dia
-
Workshop show pages allocate ~7.3k objects per request with no caching (28% of app allocations)Abertaperformance
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 52/100
Mantenedores costumam responder em até 1 dia
Todas as issues de codebar/planner
Issues semelhantes
-
security
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia
-
OSCON 2016Abertacontent
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
rubyevents/rubyevents#2148 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
we-promise/sure#3838 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
Mend: dependency security vulnerability
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
ManageIQ/manageiq-ui-classic#10341 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
rubocop/ruby-style-guide#984 ·