Skip to content

Reescrever SDK Ruby greenfield (client-ruby v1.0.0) #15

Description

@joaokita

Origem

📌 Retroativa — auditoria de rastreabilidade da Review da Sprint 11 (@joaokita). Trabalho já entregue em main sem issue associada; issue criada a partir do conteúdo do PR para dar rastreabilidade 1:1.

Contexto

Resumo

Reescrita greenfield do SDK Ruby (nfe-io) da NFE.io: 0.3.2 → 1.0.0.
Espelha os SDKs Node.js (v4) e PHP (8.2+) e a nfeio-docs (fonte da verdade),
com zero dependências de runtime (apenas stdlib), Ruby 3.2+ e tipagem
completa via RBS/Steep. Conduzida por specs (OpenSpec).

O que muda

  • Cliente e configuraçãoNfe::Client, Nfe::Configuration, roteamento
    multi-host (modelo de duas chaves), AbstractResource e transporte HTTP
    próprio (retry com backoff + jitter, Retry-After, redação de segredos).
  • 17 recursos cobrindo as famílias de documentos fiscais: emissão e
    consulta das 5 famílias de nota (serviço, produto, consumidor, transporte,
    inbound), empresas, pessoas, inscrições estaduais, webhooks, e os lookups
    (CEP, CNPJ, CPF), além de cálculo de impostos.
  • Emissão RTC (Reforma Tributária) para NFS-e e NF-e/NFC-e.
  • Contrato 202 discriminado (*Pending/*Issued) com polling manual via
    Nfe::FlowStatus.terminal?.
  • Pipeline OpenAPI — value objects + RBS gerados a partir de openapi/*,
    com rake generate:check garantindo que não há drift.
  • Tipos e qualidadesig/ (RBS) + Steep, RuboCop (+rubocop-rspec),
    RSpec com cobertura ≥ 80%.
  • Docs — site Docusaurus-ready (guias + cookbook, slugs pt-BR) e referência
    YARD com a identidade visual NFE.io. MIGRATION.md na raiz.
  • Empacotamento e release — gemspec, samples/, e automação de release
    (CI + publish no RubyGems via OIDC).

Verificação

  • CI verde no branch next (matriz Ruby 3.2 / 3.3 / 3.4): RSpec com
    cobertura, Ru

…(ver PR completo)

Objetivo

Reescrever SDK Ruby greenfield (client-ruby v1.0.0) — comportamento entregue e em main.

Critérios de Aceitação

Dependências

Nenhuma.

Referências

Metadata

Metadata

Assignees

Labels

No labels
No labels

Fields

No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions