simple-spreadsheet-extractor 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -1,7 +1,7 @@
1
1
  = Simple Spreadsheet Extractor
2
2
 
3
3
  Authors:: Stuart Owen
4
- Version:: 0.2.2
4
+ Version:: 0.2.3
5
5
  Contact:: mailto:stuart.owen@manchester.ac.uk
6
6
  Licence:: BSD (See LICENCE or http://www.opensource.org/licenses/bsd-license.php)
7
7
  Copyright:: (c) 2010 The University of Manchester, UK
@@ -9,7 +9,7 @@ Copyright:: (c) 2010 The University of Manchester, UK
9
9
 
10
10
  == Synopsis
11
11
 
12
- This is a simple gem that provides a facility to read and XLS or XLSX spreadsheet and produce an XML representation of its contents
12
+ This is a simple gem that provides a facility to read an XLS or XLSX Excel spreadsheet document and produce an XML representation of its content.
13
13
 
14
14
  Internally it uses Apache POI, using the sister [http://github.com/myGrid/simple-spreadsheet-extractor] tool.
15
15
 
@@ -26,6 +26,7 @@ Java 1.6 (JRE) is required.
26
26
  * require 'simple-spreadsheet-extractor'
27
27
  * include the module SysMODB::SpreadsheetExtractor
28
28
  * pass an IO object to the method spreedsheet_to_xml which responds with the XML for the contents of the sheet.
29
+ * if something goes wrong with the extraction then a SysMODB::SpreadsheetExtractionException will be thrown
29
30
 
30
31
  e.g.
31
32
 
@@ -35,4 +36,8 @@ e.g.
35
36
  include SysMODB::SpreadsheetExtractor
36
37
 
37
38
  f=open("/tmp/test-spreadsheet.xls")
38
- puts spreadsheet_to_xml f
39
+ begin
40
+ puts spreadsheet_to_xml f
41
+ rescue SysMODB::SpreadsheetExtractionException=>e
42
+ puts "Something went wrong #{e.message}"
43
+ end
@@ -1,32 +1,40 @@
1
- require 'open3'
1
+ require 'rubygems'
2
+ require 'open4'
2
3
 
3
4
  module SysMODB
5
+
6
+ class SpreadsheetExtractionException < Exception
7
+ end
8
+
4
9
  module SpreadsheetExtractor
5
10
 
6
11
  JAR_PATH = File.dirname(__FILE__) + "/../jars"
7
12
 
8
13
  def spreadsheet_to_xml spreadsheet_data
9
14
  command = "java -jar #{JAR_PATH}/simple-spreadsheet-extractor-0.2.jar"
10
- stdin,stdout,stderr = Open3.popen3(command)
11
-
12
- while ((line = spreadsheet_data.gets) != nil) do
13
- stdin << line
15
+ output = ""
16
+ err_message = ""
17
+ status = Open4::popen4(command) do |pid, stdin, stdout, stderr|
18
+ while ((line = spreadsheet_data.gets) != nil) do
19
+ stdin << line
20
+ end
21
+ stdin.close
22
+
23
+ while ((line = stdout.gets) != nil) do
24
+ output << line
25
+ end
26
+ stdout.close
27
+
28
+ while ((line=stderr.gets)!= nil) do
29
+ err_message << line
30
+ end
31
+ stderr.close
32
+ end
33
+
34
+ if status.to_i != 0
35
+ raise SpreadsheetExtractionException.new(err_message)
14
36
  end
15
- stdin.close
16
-
17
- # if !(line=stderr.gets).nil?
18
- # msg=line
19
- # while ((line=stderr.gets)!= nil) do
20
- # msg << line
21
- # end
22
- # raise Exception.new(msg)
23
- # end
24
-
25
- output = ""
26
- while ((line = stdout.gets) != nil) do
27
- output << line
28
- end
29
-
37
+
30
38
  return output
31
39
  end
32
40
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple-spreadsheet-extractor
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 2
10
- version: 0.2.2
9
+ - 3
10
+ version: 0.2.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Stuart Owen
@@ -17,8 +17,23 @@ cert_chain: []
17
17
 
18
18
  date: 2010-07-23 00:00:00 +01:00
19
19
  default_executable:
20
- dependencies: []
21
-
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: open4
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - "="
28
+ - !ruby/object:Gem::Version
29
+ hash: 21
30
+ segments:
31
+ - 1
32
+ - 0
33
+ - 1
34
+ version: 1.0.1
35
+ type: :runtime
36
+ version_requirements: *id001
22
37
  description: Takes a stream to a spreadsheet file and produces and XML representation of its contents
23
38
  email: stuart.owen@manchester.ac.uk
24
39
  executables: []