Class: RedisArray::RedisWorkbook

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

Instance Method Summary collapse

Constructor Details

#initialize(hash_group_name, workbook_name) ⇒ RedisWorkbook

Returns a new instance of RedisWorkbook.



4
5
6
7
# File 'lib/redisarray/redis_workbook.rb', line 4

def initialize hash_group_name, workbook_name
  @workbook_name = workbook_name
  @hash_group_name = hash_group_name
end

Instance Method Details

#append_sheet_data(sheet_name, sheet_data, options = {}) ⇒ Object



17
18
19
# File 'lib/redisarray/redis_workbook.rb', line 17

def append_sheet_data sheet_name, sheet_data, options={}
  RedisTable.append_table_data @hash_group_name.to_s + ':' + @workbook_name.to_s, sheet_name, sheet_data, options
end

#append_workbook(workbook, options = {}) ⇒ Object



34
35
36
37
38
39
40
# File 'lib/redisarray/redis_workbook.rb', line 34

def append_workbook workbook, options={}
  options.reverse_merge!(:skip_headers => false)
  workbook.sheets.each_pair do |sheet_name, sheet|
    next if options[:skip_headers] and sheet.getData() == []
    append_sheet_data sheet_name, sheet.getData(), options.merge(:header_row => sheet.getHeader())
  end
end

#delete_sheet_data(sheet_name, options = {}) ⇒ Object



9
10
11
# File 'lib/redisarray/redis_workbook.rb', line 9

def delete_sheet_data sheet_name, options={}
  RedisTable.delete_table_data @hash_group_name.to_s + ':' + @workbook_name.to_s, sheet_name, options
end

#get_sheet_data(sheet_name, rows = 0..-1) ⇒ Object



30
31
32
# File 'lib/redisarray/redis_workbook.rb', line 30

def get_sheet_data sheet_name, rows = 0..-1
  RedisTable.get_table_data @hash_group_name.to_s + ':' + @workbook_name.to_s, sheet_name, rows
end

#get_sheet_data_as_array(sheet_name, rows = 0..-1) ⇒ Object

return single row or range from sheet specified as first parameter, the row index(es) to retrieve should be specified as the second parameter Parameters: sheet_name rows - range or single integer



26
27
28
# File 'lib/redisarray/redis_workbook.rb', line 26

def get_sheet_data_as_array sheet_name, rows = 0..-1
  RedisTable.get_table_data_as_array @hash_group_name.to_s + ':' + @workbook_name.to_s, sheet_name, rows
end

#get_sheet_namesObject



75
76
77
# File 'lib/redisarray/redis_workbook.rb', line 75

def get_sheet_names
  RedisTable.get_table_names @hash_group_name.to_s + ':' + @workbook_name.to_s
end

#set_sheet_data(sheet_name, sheet_data, options = {}) ⇒ Object



13
14
15
# File 'lib/redisarray/redis_workbook.rb', line 13

def set_sheet_data sheet_name, sheet_data, options={}
  RedisTable.set_table_data @hash_group_name.to_s + ':' + @workbook_name.to_s, sheet_name, sheet_data, options
end

#set_workbook(workbook, options = {}) ⇒ Object



42
43
44
45
46
47
48
# File 'lib/redisarray/redis_workbook.rb', line 42

def set_workbook workbook, options={}
  options.reverse_merge!(:skip_headers => false)
  workbook.sheets.each_pair do |sheet_name, sheet|
    next if options[:skip_headers] and sheet.getData() == []
    set_sheet_data sheet_name, sheet.getData(), options.merge(:header_row => sheet.getHeader())
  end
end

#set_workbooks(workbooks) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/redisarray/redis_workbook.rb', line 56

def set_workbooks workbooks
  final_workbook = LWorkbook.new
  workbooks.each_with_index do |workbook, wi|
    workbook.sheets.each_pair do |sheet_name, sheet|
      final_sheet = final_workbook.getSheet(sheet_name)
      if final_sheet.nil?
        final_sheet = LSheet.new
        final_sheet.setHeader(sheet.getHeader())
      end
      sheet.getData().each do |row|
        final_sheet.addRow(row)
      end if sheet.getData() != []

      final_workbook.setSheet(sheet_name, final_sheet)
    end
  end
  set_workbook final_workbook
end

#set_workbooks_raw(workbooks) ⇒ Object



50
51
52
53
54
# File 'lib/redisarray/redis_workbook.rb', line 50

def set_workbooks_raw workbooks
  workbooks.each_with_index do |workbook, wi|
    set_workbook workbook
  end
end