spreadsheet_manager_refi 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+