Class: Icms::StateRates

Inherits:
Object
  • Object
show all
Defined in:
lib/icms.rb

Defined Under Namespace

Classes: Result

Constant Summary collapse

DEFAULT_TABLE =
<<-TABLE
AC,AL,AM,AP,BA,CE,DF,ES,GO,MA,MT,MS,MG,PA,PB,PR,PE,PI,RN,RS,RJ,RO,RR,SC,SP,SE,TO
--
AC,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
AL,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
AM,12,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
AP,12,12,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
BA,12,12,12,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
CE,12,12,12,12,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
DF,12,12,12,12,12,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
ES,12,12,12,12,12,12,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
GO,12,12,12,12,12,12,12,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
MA,12,12,12,12,12,12,12,12,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
MT,12,12,12,12,12,12,12,12,12,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
MS,12,12,12,12,12,12,12,12,12,12,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
MG,7,7,7,7,7,7,7,7,7,7,7,7,18,7,7,12,7,7,7,12,12,7,7,12,12,7,7
PA,12,12,12,12,12,12,12,12,12,12,12,12,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12
PB,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,12,12,12,12,12,12,12,12,12,12,12,12
PR,7,7,7,7,7,7,7,7,7,7,7,7,12,7,7,18,7,7,7,12,12,7,7,12,12,7,7
PE,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,12,12,12,12,12,12,12,12,12,12
PI,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,12,12,12,12,12,12,12,12,12
RN,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,12,12,12,12,12,12,12,12
RS,7,7,7,7,7,7,7,7,7,7,7,7,12,7,7,12,7,7,7,17,12,7,7,12,12,7,7
RJ,7,7,7,7,7,7,7,7,7,7,7,7,12,7,7,12,7,7,7,12,19,7,7,12,12,7,7
RO,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,12,12,12,12,12
RR,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,12,12,12,12
SC,7,7,7,7,7,7,7,7,7,7,7,7,12,7,7,12,7,7,7,12,12,7,7,17,12,7,7
SP,7,7,7,7,7,7,7,7,7,7,7,7,12,7,7,12,7,7,7,12,12,7,7,12,18,7,7
SE,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,12
TO,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17
TABLE

Instance Method Summary collapse

Constructor Details

#initialize(table = DEFAULT_TABLE, separator = ",") ⇒ StateRates

Returns a new instance of StateRates.



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/icms.rb', line 40

def initialize(table = DEFAULT_TABLE, separator = ",")
  @values = {}

  lines = table.lines

  dest_states = lines.first.strip.split(separator)

  lines[2, lines.size].each do |state_row|
    values_row = state_row.strip.split(separator)

    src_state = values_row.first

    values_row[1, values_row.size].each_with_index do |value, index|
      dest_state = dest_states[index]
      @values["#{src_state}_#{dest_state}".to_sym] = value.to_f
    end
  end
end

Instance Method Details

#get(src_state, dest_state = nil) ⇒ Object



65
66
67
68
69
70
71
# File 'lib/icms.rb', line 65

def get(src_state, dest_state = nil)
  between = get_percentual(src_state, dest_state)
  dest_state = get_percentual(dest_state)
  source_state = get_percentual(src_state)

  Result.new dest_state, source_state, between
end

#get_percentual(src_state, dest_state = nil) ⇒ Object



59
60
61
62
63
# File 'lib/icms.rb', line 59

def get_percentual(src_state, dest_state = nil)
  dest_state = src_state unless dest_state

  @values["#{src_state}_#{dest_state}".to_sym]
end