Skip to content

Commit

Permalink
.
Browse files Browse the repository at this point in the history
  • Loading branch information
gorn authored and gorn committed Jun 4, 2019
1 parent 8ea3a2b commit 33f3689
Show file tree
Hide file tree
Showing 3 changed files with 1,093 additions and 0 deletions.
9 changes: 9 additions & 0 deletions lib/rspreadsheet/empty_file_template.fods
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>

<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.spreadsheet">
<office:meta><meta:generator>Rspreadshhet gem by Gorn</meta:generator></office:meta>
<office:automatic-styles />
<office:body>
<office:spreadsheet />
</office:body>
</office:document>
45 changes: 45 additions & 0 deletions spec/fods_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
require 'spec_helper'
using ClassExtensions if RUBY_VERSION > '2.1'

describe 'Rspreadsheet flat ODS format' do
before do
@tmp_filename = '/tmp/testfile.ods' # delete temp file before tests
delete_tmpfile(@tmp_filename)
end
after do
delete_tmpfile(@tmp_filename) # delete temp file after tests
end

it 'can open flat ods testfile and reads its content correctly' do
book = Rspreadsheet.open($test_filename_fods, format: :fods )
s = book.worksheets(1)
(1..10).each do |i|
s[i,1].should === i
end
s[1,2].should === 'text'
s[2,2].should === Date.new(2014,1,1)
end

it 'can open and save flast ods file, and saved file is exactly same as original' do
book = Rspreadsheet.new($test_filename_fods) # open test file
book.save(@tmp_filename) # and save it as temp file

# now compare them
@content_xml1 = Zip::File.open($test_filename) do |zip|
LibXML::XML::Document.io zip.get_input_stream('content.xml')
end
@content_xml2 = Zip::File.open(@tmp_filename) do |zip|
LibXML::XML::Document.io zip.get_input_stream('content.xml')
end

@content_xml2.root.first_diff(@content_xml1.root).should be_nil
@content_xml1.root.first_diff(@content_xml2.root).should be_nil
@content_xml1.root.to_s.should == @content_xml2.root.to_s
end

private
def delete_tmpfile(afile)
File.delete(afile) if File.exist?(afile)
end

end
Loading

0 comments on commit 33f3689

Please sign in to comment.