Helpers
O Nerdify disponibiliza um módulo Nerdify::Helpers com utilitários prontos para uso em fieldsets e aplicações. Esses helpers fornecem listas padronizadas para campos de seleção comuns.
Listas de Horários
Nerdify::Helpers.hours
Retorna uma lista de horas inteiras (00:00 a 24:00):
fieldset :schedule do
field :opening_time, type: :select, inclusion: Nerdify::Helpers.hours
field :closing_time, type: :select, inclusion: Nerdify::Helpers.hours
end
Valores gerados:
00:00, 01:00, 02:00, ..., 22:00, 23:00, 24:00
Nerdify::Helpers.half_of_hours
Retorna uma lista de horários com intervalos de 30 minutos:
fieldset :appointment do
field :start_time, type: :select, inclusion: Nerdify::Helpers.half_of_hours
end
Valores gerados:
00:00, 00:30, 01:00, 01:30, ..., 23:00, 23:30, 23:59
Nerdify::Helpers.quarter_of_hours
Retorna uma lista de horários com intervalos de 15 minutos:
fieldset :schedule do
field :slot_time, type: :select, inclusion: Nerdify::Helpers.quarter_of_hours
end
Valores gerados:
00:00, 00:15, 00:30, 00:45, 01:00, ..., 23:30, 23:45, 23:59
Listas Brasileiras
Nerdify::Helpers.br_states
Retorna a lista de siglas dos estados brasileiros:
fieldset :address do
field :state, type: :select, inclusion: Nerdify::Helpers.br_states, presence: true
end
Valores gerados:
AC, AL, AP, AM, BA, CE, DF, ES, GO, MA, MT, MS, MG, PA, PB, PR, PE, PI,
RJ, RN, RS, RO, RR, SC, SP, SE, TO
Nerdify::Helpers.br_banks
Retorna a lista completa de bancos brasileiros com código e nome:
fieldset :bank_account do
field :bank, type: :select, inclusion: Nerdify::Helpers.br_banks
end
Exemplo de valores:
001 - Banco do Brasil S.A.
033 - Banco Santander (Brasil) S.A.
104 - Caixa Econômica Federal
237 - Banco Bradesco S.A.
260 - Nu Pagamentos S.A (Nubank)
341 - Itaú Unibanco S.A.
...
A lista inclui mais de 200 instituições financeiras registradas no Banco Central.
Lista de Meses
Nerdify::Helpers.months
Retorna os meses do ano em português abreviado:
fieldset :report_filter do
field :month, type: :select, inclusion: Nerdify::Helpers.months
end
Valores gerados:
jan, fev, mar, abr, mai, jun, jul, ago, set, out, nov, dez
Material Icons
Nerdify::MaterialIcon.options
Retorna a lista completa de ícones Material Design disponíveis:
# Verificar se um ícone existe
Nerdify::MaterialIcon.options.include?("shopping_cart") # => true
# Buscar um ícone com fallback
Nerdify::MaterialIcon.find("custom_icon") # => "info" (fallback)
Nerdify::MaterialIcon.find("home") # => "home"
Uso em Componentes
Os ícones são usados em actions e components:
# Em actions
action :new_sale, icon: :add_shopping_cart
# Em components
component :icon, name: :shopping_cart, styles: { color: "primary" }
Alguns ícones populares:
add,edit,delete,save,closesearch,filter_list,sortperson,people,groupshopping_cart,store,paymentcalendar_today,schedule,alarmcheck,check_circle,donewarning,error,infoarrow_back,arrow_forward,chevron_rightfile_download,file_upload,printvisibility,visibility_off
Exemplo Completo
class Provider
include Nerdify::Model
orm :mongoid
fieldset :provider_form do
field :name, type: :text, presence: true
field :state, type: :select, inclusion: Nerdify::Helpers.br_states
field :bank, type: :select, inclusion: Nerdify::Helpers.br_banks
end
end
class BeautyScale
include Nerdify::Model
orm :mongoid
fieldset :scale_form do
field :start_time, type: :select, inclusion: Nerdify::Helpers.quarter_of_hours
field :end_time, type: :select, inclusion: Nerdify::Helpers.quarter_of_hours
end
end
Boas Práticas
Faça
- Use os helpers para campos padronizados (estados, bancos, horários)
- Combine com validações para garantir valores válidos
- Use
MaterialIcon.findpara obter ícones com fallback seguro
Evite
- Recriar listas que já existem nos helpers
- Hardcodear valores de estados ou bancos
- Usar nomes de ícones sem verificar se existem