spreadsheet_manager_refi 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/spreadsheet_manager_refi.rb +35 -0
  2. metadata +78 -0
@@ -0,0 +1,35 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'roo'
4
+
5
+ class SpreadsheetManager
6
+ # access to spreadsheets via roo
7
+ # - each file will only be opened once for all requests that are made
8
+ def initialize
9
+ @ss_s = {} # file_pn => spreadsheet
10
+ @metadata_s = {}
11
+ end
12
+ # ss_pn spreadsheet-pathname
13
+ def get_ss(ss_pn)
14
+ if @ss_s[ss_pn] == nil # spreadsheet not opened yet
15
+ $Log.indent
16
+ $Log.tlog( {id: 'info1035', ss_pn: ss_pn } )
17
+ #myreq 'roo'
18
+ file_extension = ss_pn.match(/.+\.(.+)$/)[1].to_s
19
+ ss = case file_extension
20
+ when 'xlsx' then Excelx.new(ss_pn)
21
+ when 'xls' then Excel.new(ss_pn)
22
+ when 'ods' then Openoffice.new(ss_pn)
23
+ end
24
+ @ss_s[ss_pn] = ss
25
+ $Log.undent
26
+ end
27
+ return @ss_s[ss_pn]
28
+ end
29
+ def get_metadata(ss_pn)
30
+ if(@metadata_s[ss_pn] == nil)
31
+ @metadata_s[ss_pn] = {"ss_pn" => ss_pn}.merge( File.get_metadata(ss_pn) )
32
+ end
33
+ return @metadata_s[ss_pn]
34
+ end
35
+ end
metadata ADDED
@@ -0,0 +1,78 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: spreadsheet_manager_refi
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 0
9
+ version: 0.0.0
10
+ platform: ruby
11
+ authors:
12
+ - Robert Fey
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2011-07-26 00:00:00 +02:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: roo
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - "="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 1
30
+ - 9
31
+ - 5
32
+ version: 1.9.5
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ description: the spreadsheet files are not reopened when reading them again
36
+ email: feyrob@gmail.com
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files: []
42
+
43
+ files:
44
+ - lib/spreadsheet_manager_refi.rb
45
+ has_rdoc: true
46
+ homepage: http://rubygems.org/gems/spreadsheet_manager_refi
47
+ licenses: []
48
+
49
+ post_install_message:
50
+ rdoc_options: []
51
+
52
+ require_paths:
53
+ - lib
54
+ required_ruby_version: !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ segments:
60
+ - 0
61
+ version: "0"
62
+ required_rubygems_version: !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ segments:
68
+ - 0
69
+ version: "0"
70
+ requirements: []
71
+
72
+ rubyforge_project: nowarning
73
+ rubygems_version: 1.3.7
74
+ signing_key:
75
+ specification_version: 3
76
+ summary: open spreadsheet files only once with roo
77
+ test_files: []
78
+