class Correios::Frete::Pacote
Constants
- MIN_DIMENSIONS
Attributes
altura[R]
comprimento[R]
largura[R]
peso[R]
volume[R]
Public Class Methods
new(itens = nil)
click to toggle source
# File lib/correios/frete/pacote.rb, line 13 def initialize(itens = nil) @peso = @comprimento = @largura = @altura = @volume = 0.0 @itens = [] itens.each { |item| adicionar_item(item) } if itens end
Public Instance Methods
adicionar_item(item)
click to toggle source
# File lib/correios/frete/pacote.rb, line 29 def adicionar_item(item) return unless item item = Correios::Frete::PacoteItem.new(item) if item.is_a?(Hash) @itens << item calcular_medidas(item) item end
Also aliased as: add_item
formato()
click to toggle source
# File lib/correios/frete/pacote.rb, line 20 def formato :caixa_pacote end
itens()
click to toggle source
# File lib/correios/frete/pacote.rb, line 24 def itens @itens end
Also aliased as: items
Private Instance Methods
calcular_medidas(item)
click to toggle source
# File lib/correios/frete/pacote.rb, line 42 def calcular_medidas(item) @peso += item.peso @volume += item.volume if @itens.size == 1 @comprimento = item.comprimento @largura = item.largura @altura = item.altura else dimensao = @volume.to_f**(1.0/3) @comprimento = @largura = @altura = dimensao end min_dimension_values end
min(value, minimum)
click to toggle source
# File lib/correios/frete/pacote.rb, line 64 def min(value, minimum) (value < minimum) ? minimum : value end
min_dimension_values()
click to toggle source
# File lib/correios/frete/pacote.rb, line 58 def min_dimension_values() @comprimento = min(@comprimento, MIN_DIMENSIONS[:comprimento]) @largura = min(@largura, MIN_DIMENSIONS[:largura]) @altura = min(@altura, MIN_DIMENSIONS[:altura]) end