Module: FocusNfe::Esquemas
- Defined in:
- lib/focus_nfe.rb,
lib/focus_nfe/esquemas/campo.rb,
lib/focus_nfe/esquemas/decimal.rb,
lib/focus_nfe/esquemas/esquema.rb,
lib/focus_nfe/esquemas/catalogo.rb,
lib/focus_nfe/esquemas/validador.rb
Overview
Introspecção pública dos esquemas empacotados: lista os documentos com schema e descreve seus campos como dado serializável, para devs e ferramentas automatizadas — sem token nem conexão.
Defined Under Namespace
Classes: Campo, Decimal, ErroDeValidacao, Esquema, Validador
Constant Summary collapse
- GLOB_SCHEMAS =
Returns glob dos arquivos de schema empacotados em
data/schemas/. "schema_*.json"
Class Method Summary collapse
-
.descrever(nome) ⇒ Array<Hash>?
Descrição estruturada dos campos de um documento, para devs e ferramentas automatizadas conhecerem nomes, tipos e obrigatoriedade sem token nem conexão.
-
.disponiveis ⇒ Array<String>
Nomes dos documentos com schema empacotado, ordenados.
Class Method Details
.descrever(nome) ⇒ Array<Hash>?
Descrição estruturada dos campos de um documento, para devs e ferramentas automatizadas conhecerem nomes, tipos e obrigatoriedade sem token nem conexão. Coleções aninham seus subcampos (ver FocusNfe::Esquemas::Campo#to_h).
29 30 31 |
# File 'lib/focus_nfe/esquemas/catalogo.rb', line 29 def descrever(nome) Esquema.carregar(nome)&.descrever end |
.disponiveis ⇒ Array<String>
Nomes dos documentos com schema empacotado, ordenados. Inclui os
sub-schemas auxiliares (ex.: "nfe_item", "cte_transporte_aereo"), pois
também são introspectáveis via descrever.
17 18 19 20 21 |
# File 'lib/focus_nfe/esquemas/catalogo.rb', line 17 def disponiveis Dir.glob(File.join(Esquema::DIRETORIO, GLOB_SCHEMAS)) .map { |caminho| File.basename(caminho, ".json").delete_prefix("schema_") } .sort end |