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.
- data/lib/spreadsheet_manager_refi.rb +35 -0
- 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
|
+
|