Class: FocusNfe::Modelos::Pagina
- Inherits:
-
Object
- Object
- FocusNfe::Modelos::Pagina
- Includes:
- Enumerable
- Defined in:
- lib/focus_nfe/modelos/pagina.rb
Overview
Coleção paginada de uma resposta de listagem. Encapsula o corpo (Array de Hashes crus) e os cabeçalhos de sincronização incremental, expondo os itens de forma enumerável. Itens permanecem como Hash — modelos leves nas auxiliares/recebidas, conforme a arquitetura.
Instance Attribute Summary collapse
-
#itens ⇒ Array
readonly
Itens da página (corpo cru da resposta).
-
#response ⇒ FocusNfe::HTTP::Response
readonly
Resposta original da listagem.
-
#total ⇒ Integer?
readonly
Total de registros disponíveis (cabeçalho
X-Total-Count). -
#versao_maxima ⇒ Integer?
readonly
Maior versão presente (cabeçalho
X-Max-Version), para sincronização incremental.
Class Method Summary collapse
-
.from_response(response) ⇒ FocusNfe::Modelos::Pagina
Constrói uma Pagina a partir de uma HTTP::Response de listagem.
Instance Method Summary collapse
-
#each {|item| ... } ⇒ self, Enumerator
(also: #cada)
Itera os itens da página.
-
#initialize(response:) ⇒ Pagina
constructor
A new instance of Pagina.
Constructor Details
#initialize(response:) ⇒ Pagina
Returns a new instance of Pagina.
33 34 35 36 37 38 39 |
# File 'lib/focus_nfe/modelos/pagina.rb', line 33 def initialize(response:) @response = response @itens = response.body.is_a?(Array) ? response.body : [] @total = response.headers["X-Total-Count"]&.to_i @versao_maxima = response.headers["X-Max-Version"]&.to_i freeze end |
Instance Attribute Details
#itens ⇒ Array (readonly)
Returns itens da página (corpo cru da resposta).
16 17 18 |
# File 'lib/focus_nfe/modelos/pagina.rb', line 16 def itens @itens end |
#response ⇒ FocusNfe::HTTP::Response (readonly)
Returns resposta original da listagem.
13 14 15 |
# File 'lib/focus_nfe/modelos/pagina.rb', line 13 def response @response end |
#total ⇒ Integer? (readonly)
Returns total de registros disponíveis (cabeçalho X-Total-Count).
19 20 21 |
# File 'lib/focus_nfe/modelos/pagina.rb', line 19 def total @total end |
#versao_maxima ⇒ Integer? (readonly)
Returns maior versão presente (cabeçalho X-Max-Version), para sincronização incremental.
22 23 24 |
# File 'lib/focus_nfe/modelos/pagina.rb', line 22 def versao_maxima @versao_maxima end |
Class Method Details
.from_response(response) ⇒ FocusNfe::Modelos::Pagina
Constrói uma FocusNfe::Modelos::Pagina a partir de uma HTTP::Response de listagem.
28 29 30 |
# File 'lib/focus_nfe/modelos/pagina.rb', line 28 def self.from_response(response) new(response: response) end |
Instance Method Details
#each {|item| ... } ⇒ self, Enumerator Also known as: cada
Itera os itens da página.
45 46 47 48 49 50 |
# File 'lib/focus_nfe/modelos/pagina.rb', line 45 def each(&) return to_enum(:each) unless block_given? itens.each(&) self end |