Class: DataType

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(file_path, sheet_number, start_row) ⇒ DataType

Returns a new instance of DataType.



6
7
8
9
10
11
12
13
14
# File 'lib/transform_xlsx/data_type.rb', line 6

def initialize file_path, sheet_number, start_row
  @start_row = start_row
  file = Roo::Excelx.new(file_path)
  @data = Hash.new

  sheet_name = file.sheets[sheet_number]
  validate_input(file, sheet_name, start_row)
  @data[sheet_name] = file.to_a
end

Instance Attribute Details

#dataObject

Returns the value of attribute data.



5
6
7
# File 'lib/transform_xlsx/data_type.rb', line 5

def data
  @data
end

#start_rowObject

Returns the value of attribute start_row.



5
6
7
# File 'lib/transform_xlsx/data_type.rb', line 5

def start_row
  @start_row
end

Instance Method Details

#process_dataObject



27
28
# File 'lib/transform_xlsx/data_type.rb', line 27

def process_data
end

#to_hashObject



30
31
32
# File 'lib/transform_xlsx/data_type.rb', line 30

def to_hash
  process_data
end

#to_jsonObject



34
35
36
# File 'lib/transform_xlsx/data_type.rb', line 34

def to_json
  to_hash.to_json
end

#validate_input(file, sheet_name, start_row) ⇒ Object



16
17
18
19
20
21
22
23
24
25
# File 'lib/transform_xlsx/data_type.rb', line 16

def validate_input(file, sheet_name, start_row)
  if sheet_name.nil?
    raise "Sheet number #{sheet_number} not found"
  end
  file.default_sheet = sheet_name

  if file.first_row != start_row
    raise "No column data at start row - #{start_row}"
  end
end