Class: SpreadsheetManager

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

Instance Method Summary collapse

Constructor Details

#initialize ⇒ SpreadsheetManager

  • each file will only be opened once for all requests that are made


8
9
10
11
# File 'lib/spreadsheet_manager_refi.rb', line 8

def initialize
	@ss_s = {} # file_pn => spreadsheet
	@metadata_s = {}
end

Instance Method Details

#get_metadata(ss_pn) ⇒ Object



29
30
31
32
33
34
# File 'lib/spreadsheet_manager_refi.rb', line 29

def (ss_pn)
	if(@metadata_s[ss_pn] == nil)
		@metadata_s[ss_pn] = {"ss_pn" => ss_pn}.merge( File.(ss_pn) )
	end
	return @metadata_s[ss_pn]
end

#get_ss(ss_pn) ⇒ Object

ss_pn spreadsheet-pathname



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/spreadsheet_manager_refi.rb', line 13

def get_ss(ss_pn)
	if @ss_s[ss_pn] == nil # spreadsheet not opened yet
		$Log.indent
		$Log.tlog( {id: 'info1035', ss_pn: ss_pn } )
		#myreq 'roo'
		file_extension = ss_pn.match(/.+\.(.+)$/)[1].to_s
		ss = case file_extension
			when 'xlsx' then Excelx.new(ss_pn)
			when 'xls' then Excel.new(ss_pn)
			when 'ods' then Openoffice.new(ss_pn)
		end
		@ss_s[ss_pn] = ss
		$Log.undent
	end
	return @ss_s[ss_pn]
end