Class: Icms::StateRates
- Inherits:
-
Object
- Object
- Icms::StateRates
- 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
- #get(src_state, dest_state = nil) ⇒ Object
- #get_percentual(src_state, dest_state = nil) ⇒ Object
-
#initialize(table = DEFAULT_TABLE, separator = ",") ⇒ StateRates
constructor
A new instance of StateRates.
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 |