Class: Cure::Extract::CsvLookup
- Inherits:
-
Object
- Object
- Cure::Extract::CsvLookup
- Defined in:
- lib/cure/extract/csv_lookup.rb
Class Method Summary collapse
-
.array_position_lookup(position) ⇒ Array
[column_start_idx, column_end_idx, row_start_idx, row_end_idx].
- .position_for_digit(range) ⇒ Object
- .position_for_letter(range) ⇒ Object
Class Method Details
.array_position_lookup(position) ⇒ Array
Returns [column_start_idx, column_end_idx, row_start_idx, row_end_idx].
9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/cure/extract/csv_lookup.rb', line 9 def self.array_position_lookup(position) return [0, -1, 0, -1] if position.is_a?(Integer) && position == -1 # Whole sheet start, finish, *_excess = position.split(":") raise "Invalid format" unless start || finish [ position_for_letter(start), position_for_letter(finish), position_for_digit(start), position_for_digit(finish) ] end |
.position_for_digit(range) ⇒ Object
27 28 29 |
# File 'lib/cure/extract/csv_lookup.rb', line 27 def self.position_for_digit(range) range.upcase.scan(/\d+/).first.to_i - 1 end |
.position_for_letter(range) ⇒ Object
23 24 25 |
# File 'lib/cure/extract/csv_lookup.rb', line 23 def self.position_for_letter(range) range.upcase.scan(/[A-Z]+/).first.ord - 65 # A (65) - 65 = 0 idx end |