simple-spreadsheet-extractor 0.3.3 → 0.3.4
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/Rakefile +1 -0
- data/VERSION +1 -1
- data/example.rb +13 -0
- data/lib/simple-spreadsheet-extractor.rb +52 -9
- data/simple-spreadsheet-extractor.gemspec +9 -5
- metadata +19 -12
data/Rakefile
CHANGED
@@ -21,6 +21,7 @@ begin
|
|
21
21
|
gemspec.files.exclude "test/*"
|
22
22
|
gemspec.extra_rdoc_files = ["README.rdoc", "LICENCE"]
|
23
23
|
gemspec.add_dependency("POpen4","0.1.4")
|
24
|
+
gemspec.add_dependency("sys-uname","0.8.4")
|
24
25
|
end
|
25
26
|
rescue LoadError
|
26
27
|
puts "Jeweler not available. Install it with: gem install jeweler"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.4
|
data/example.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'simple-spreadsheet-extractor'
|
3
|
+
|
4
|
+
include SysMODB::SpreadsheetExtractor
|
5
|
+
|
6
|
+
path=ARGV.first
|
7
|
+
|
8
|
+
f=open(path)
|
9
|
+
begin
|
10
|
+
puts spreadsheet_to_xml(f)
|
11
|
+
rescue SysMODB::SpreadsheetExtractionException=>e
|
12
|
+
puts "Something went wrong #{e.message}"
|
13
|
+
end
|
@@ -1,5 +1,7 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'popen4'
|
3
|
+
require 'open4'
|
4
|
+
|
3
5
|
|
4
6
|
module SysMODB
|
5
7
|
|
@@ -9,22 +11,63 @@ module SysMODB
|
|
9
11
|
module SpreadsheetExtractor
|
10
12
|
|
11
13
|
JAR_PATH = File.dirname(__FILE__) + "/../jars"
|
14
|
+
COMMAND = "java -jar #{JAR_PATH}/simple-spreadsheet-extractor-0.3.2.jar"
|
12
15
|
|
13
16
|
def spreadsheet_to_xml spreadsheet_data
|
14
|
-
|
17
|
+
if RUBY_PLATFORM =~ /mswin32/
|
18
|
+
output = read_with_popen4 spreadsheet_data
|
19
|
+
else
|
20
|
+
puts "Using open4"
|
21
|
+
output = read_with_open4 spreadsheet_data
|
22
|
+
end
|
23
|
+
|
24
|
+
return output
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
#opens using POpen4 - this is for the benefit of Windows. It has been found to be unstable in Linux and give occaisional segmentation faults
|
30
|
+
def read_with_popen4 spreadsheet_data
|
31
|
+
output=""
|
32
|
+
err_message = ""
|
33
|
+
status = POpen4::popen4(COMMAND) do |stdout, stderr, stdin, pid|
|
34
|
+
stdin=stdin.binmode
|
35
|
+
spreadsheet_data.each_byte{|b| stdin.putc(b)}
|
36
|
+
stdin.close
|
37
|
+
|
38
|
+
output=stdout.read.strip
|
39
|
+
err_message=stderr.read.strip
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
if status.to_i != 0
|
44
|
+
raise SpreadsheetExtractionException.new(err_message)
|
45
|
+
end
|
46
|
+
|
47
|
+
return output
|
48
|
+
end
|
49
|
+
|
50
|
+
def read_with_open4 spreadsheet_data
|
15
51
|
output = ""
|
16
52
|
err_message = ""
|
17
|
-
status =
|
18
|
-
|
19
|
-
|
20
|
-
|
53
|
+
status = Open4::popen4(COMMAND) do |pid, stdin, stdout, stderr|
|
54
|
+
while ((line = spreadsheet_data.gets) != nil) do
|
55
|
+
stdin << line
|
56
|
+
end
|
57
|
+
stdin.close
|
21
58
|
|
22
|
-
|
23
|
-
|
24
|
-
|
59
|
+
while ((line = stdout.gets) != nil) do
|
60
|
+
output << line
|
61
|
+
end
|
62
|
+
stdout.close
|
63
|
+
|
64
|
+
while ((line=stderr.gets)!= nil) do
|
65
|
+
err_message << line
|
66
|
+
end
|
67
|
+
stderr.close
|
25
68
|
end
|
26
69
|
|
27
|
-
if status.to_i != 0
|
70
|
+
if status.to_i != 0
|
28
71
|
raise SpreadsheetExtractionException.new(err_message)
|
29
72
|
end
|
30
73
|
|
@@ -1,15 +1,15 @@
|
|
1
1
|
# Generated by jeweler
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{simple-spreadsheet-extractor}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Stuart Owen"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-11-02}
|
13
13
|
s.description = %q{Takes a stream to a spreadsheet file and produces and XML representation of its contents}
|
14
14
|
s.email = %q{stuart.owen@manchester.ac.uk}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -23,6 +23,7 @@ Gem::Specification.new do |s|
|
|
23
23
|
"Rakefile",
|
24
24
|
"VERSION",
|
25
25
|
"doc/schema-v1.xsd",
|
26
|
+
"example.rb",
|
26
27
|
"jars/lib/dom4j-1.6.1.jar",
|
27
28
|
"jars/lib/poi-3.6.jar",
|
28
29
|
"jars/lib/poi-ooxml-3.6.jar",
|
@@ -35,7 +36,7 @@ Gem::Specification.new do |s|
|
|
35
36
|
s.homepage = %q{http://github.com/myGrid/simple-spreadsheet-extractor-gem}
|
36
37
|
s.rdoc_options = ["--charset=UTF-8"]
|
37
38
|
s.require_paths = ["lib"]
|
38
|
-
s.rubygems_version = %q{1.3.
|
39
|
+
s.rubygems_version = %q{1.3.6}
|
39
40
|
s.summary = %q{Basic spreadsheet content extraction using Apache POI}
|
40
41
|
s.test_files = [
|
41
42
|
"test/test_extraction.rb"
|
@@ -45,13 +46,16 @@ Gem::Specification.new do |s|
|
|
45
46
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
46
47
|
s.specification_version = 3
|
47
48
|
|
48
|
-
if Gem::Version.new(Gem::
|
49
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
49
50
|
s.add_runtime_dependency(%q<POpen4>, ["= 0.1.4"])
|
51
|
+
s.add_runtime_dependency(%q<sys-uname>, ["= 0.8.4"])
|
50
52
|
else
|
51
53
|
s.add_dependency(%q<POpen4>, ["= 0.1.4"])
|
54
|
+
s.add_dependency(%q<sys-uname>, ["= 0.8.4"])
|
52
55
|
end
|
53
56
|
else
|
54
57
|
s.add_dependency(%q<POpen4>, ["= 0.1.4"])
|
58
|
+
s.add_dependency(%q<sys-uname>, ["= 0.8.4"])
|
55
59
|
end
|
56
60
|
end
|
57
61
|
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple-spreadsheet-extractor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 21
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
8
|
+
- 4
|
9
|
+
version: 0.3.4
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Stuart Owen
|
@@ -15,18 +14,16 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2010-
|
17
|
+
date: 2010-11-02 00:00:00 +00:00
|
19
18
|
default_executable:
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
21
|
name: POpen4
|
23
22
|
prerelease: false
|
24
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
24
|
requirements:
|
27
25
|
- - "="
|
28
26
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 19
|
30
27
|
segments:
|
31
28
|
- 0
|
32
29
|
- 1
|
@@ -34,6 +31,20 @@ dependencies:
|
|
34
31
|
version: 0.1.4
|
35
32
|
type: :runtime
|
36
33
|
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: sys-uname
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
- 8
|
44
|
+
- 4
|
45
|
+
version: 0.8.4
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
37
48
|
description: Takes a stream to a spreadsheet file and produces and XML representation of its contents
|
38
49
|
email: stuart.owen@manchester.ac.uk
|
39
50
|
executables: []
|
@@ -50,6 +61,7 @@ files:
|
|
50
61
|
- Rakefile
|
51
62
|
- VERSION
|
52
63
|
- doc/schema-v1.xsd
|
64
|
+
- example.rb
|
53
65
|
- jars/lib/dom4j-1.6.1.jar
|
54
66
|
- jars/lib/poi-3.6.jar
|
55
67
|
- jars/lib/poi-ooxml-3.6.jar
|
@@ -58,7 +70,6 @@ files:
|
|
58
70
|
- jars/simple-spreadsheet-extractor-0.3.2.jar
|
59
71
|
- lib/simple-spreadsheet-extractor.rb
|
60
72
|
- simple-spreadsheet-extractor.gemspec
|
61
|
-
- test/test_extraction.rb
|
62
73
|
has_rdoc: true
|
63
74
|
homepage: http://github.com/myGrid/simple-spreadsheet-extractor-gem
|
64
75
|
licenses: []
|
@@ -69,27 +80,23 @@ rdoc_options:
|
|
69
80
|
require_paths:
|
70
81
|
- lib
|
71
82
|
required_ruby_version: !ruby/object:Gem::Requirement
|
72
|
-
none: false
|
73
83
|
requirements:
|
74
84
|
- - ">="
|
75
85
|
- !ruby/object:Gem::Version
|
76
|
-
hash: 3
|
77
86
|
segments:
|
78
87
|
- 0
|
79
88
|
version: "0"
|
80
89
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
90
|
requirements:
|
83
91
|
- - ">="
|
84
92
|
- !ruby/object:Gem::Version
|
85
|
-
hash: 3
|
86
93
|
segments:
|
87
94
|
- 0
|
88
95
|
version: "0"
|
89
96
|
requirements: []
|
90
97
|
|
91
98
|
rubyforge_project:
|
92
|
-
rubygems_version: 1.3.
|
99
|
+
rubygems_version: 1.3.6
|
93
100
|
signing_key:
|
94
101
|
specification_version: 3
|
95
102
|
summary: Basic spreadsheet content extraction using Apache POI
|