Class: Icms::StateRates

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

Defined Under Namespace

Classes: Result

Constant Summary collapse

DEFAULT_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\n--\nAC,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\nAL,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\nAM,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\nAP,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\nBA,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\nCE,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\nDF,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\nES,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\nGO,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\nMA,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\nMT,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\nMS,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\nMG,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\nPA,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\nPB,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\nPR,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\nPE,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\nPI,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\nRN,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\nRS,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\nRJ,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\nRO,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\nRR,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\nSC,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\nSP,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\nSE,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\nTO,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\n"

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