Pular para o conteúdo principal

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, close
  • search, filter_list, sort
  • person, people, group
  • shopping_cart, store, payment
  • calendar_today, schedule, alarm
  • check, check_circle, done
  • warning, error, info
  • arrow_back, arrow_forward, chevron_right
  • file_download, file_upload, print
  • visibility, 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.find para 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