rodf 0.3 → 0.3.1
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/CHANGELOG +1 -0
- data/Manifest +1 -0
- data/README.rdoc +34 -0
- data/Rakefile +1 -1
- data/lib/odf/document.rb +6 -2
- data/lib/odf/property.rb +7 -5
- data/lib/odf/skeleton/styles.xml +17 -17
- data/lib/odf/spreadsheet.rb +9 -8
- data/lib/odf/style.rb +4 -1
- data/rodf.gemspec +4 -4
- data/spec/skeleton_spec.rb +33 -0
- data/spec/spreadsheet_spec.rb +71 -29
- metadata +16 -15
data/CHANGELOG
CHANGED
data/Manifest
CHANGED
data/README.rdoc
CHANGED
@@ -37,3 +37,37 @@ Some basic formatting is also possible:
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
+
Some basic conditional formatting is also possible:
|
41
|
+
|
42
|
+
require 'odf/spreadsheet'
|
43
|
+
|
44
|
+
ODF::Spreadsheet.file("my-spreadsheet.ods") do
|
45
|
+
|
46
|
+
office_style 'red-cell', :family => :cell do
|
47
|
+
property :text, 'font-weight' => 'bold', 'color' => '#ff0000'
|
48
|
+
end
|
49
|
+
|
50
|
+
office_style 'green-cell', :family => :cell do
|
51
|
+
property :text, 'font-weight' => 'bold', 'color' => '#00ff00'
|
52
|
+
end
|
53
|
+
|
54
|
+
# conditional formating must be defined as style and the value of
|
55
|
+
# apply-style-name must be an office_style
|
56
|
+
style 'cond1', :family => :cell do
|
57
|
+
|
58
|
+
property :conditional,
|
59
|
+
'condition' => 'cell-content()<0',
|
60
|
+
'apply-style-name' => 'red-cell'
|
61
|
+
|
62
|
+
property :conditional,
|
63
|
+
'condition' => 'cell-content()>0',
|
64
|
+
'apply-style-name' => 'green-cell'
|
65
|
+
end
|
66
|
+
|
67
|
+
table 'Red text table' do
|
68
|
+
row {cell 'Red force', :style => 'red-cell' }
|
69
|
+
row {cell '-4', :type => :float, :style => 'cond1' }
|
70
|
+
row {cell '0', :type => :float, :style => 'cond1' }
|
71
|
+
row {cell '5', :type => :float, :style => 'cond1' }
|
72
|
+
end
|
73
|
+
end
|
data/Rakefile
CHANGED
@@ -7,7 +7,7 @@ task :test => :spec
|
|
7
7
|
|
8
8
|
require 'echoe'
|
9
9
|
Echoe.new('rodf') do |gem|
|
10
|
-
gem.author = "Thiago Arrais"
|
10
|
+
gem.author = ["Thiago Arrais", "Foivos Zakkak"]
|
11
11
|
gem.email = "thiago.arrais@gmail.com"
|
12
12
|
gem.url = "http://github.com/thiagoarrais/rodf/tree"
|
13
13
|
gem.summary = "ODF generation library for Ruby"
|
data/lib/odf/document.rb
CHANGED
@@ -25,15 +25,19 @@ require 'odf/style'
|
|
25
25
|
|
26
26
|
module ODF
|
27
27
|
class Document < Container
|
28
|
-
contains :styles, :default_styles
|
28
|
+
contains :styles, :default_styles, :office_styles
|
29
29
|
|
30
30
|
def self.file(ods_file_name, &contents)
|
31
31
|
ods_file = Zip::ZipFile.open(ods_file_name, Zip::ZipFile::CREATE)
|
32
|
-
ods_file.get_output_stream('styles.xml') {|f| f << skeleton.styles }
|
33
32
|
ods_file.get_output_stream('META-INF/manifest.xml') {|f| f << skeleton.manifest(doc_type) }
|
34
33
|
|
35
34
|
(doc = new).instance_eval(&contents)
|
36
35
|
|
36
|
+
ods_file.get_output_stream('styles.xml') do |f|
|
37
|
+
f << skeleton.styles
|
38
|
+
f << doc.office_styles_xml unless doc.office_styles.empty?
|
39
|
+
f << "</office:styles> </office:document-styles>"
|
40
|
+
end
|
37
41
|
ods_file.get_output_stream('content.xml') {|f| f << doc.xml}
|
38
42
|
|
39
43
|
ods_file.close
|
data/lib/odf/property.rb
CHANGED
@@ -20,15 +20,17 @@ require 'builder'
|
|
20
20
|
|
21
21
|
module ODF
|
22
22
|
class Property
|
23
|
-
PROPERTY_NAMES = {:cell => '
|
24
|
-
:text => '
|
25
|
-
:column => '
|
23
|
+
PROPERTY_NAMES = {:cell => 'table-cell-properties',
|
24
|
+
:text => 'text-properties',
|
25
|
+
:column => 'table-column-properties',
|
26
|
+
:conditional => 'map'}
|
26
27
|
TRANSLATED_SPECS = [:border_color, :border_style, :border_width]
|
27
28
|
STYLE_ATTRIBUTES = ['column-width', 'rotation-angle', 'text-underline-type',
|
28
|
-
'tab-stop-distance'
|
29
|
+
'tab-stop-distance', 'condition', 'apply-style-name',
|
30
|
+
'base-cell-address']
|
29
31
|
|
30
32
|
def initialize(type, specs={})
|
31
|
-
@name = PROPERTY_NAMES[type] || "
|
33
|
+
@name = 'style:' + (PROPERTY_NAMES[type] || "#{type}-properties")
|
32
34
|
@specs = translate(specs).map { |k, v| [k.to_s, v] }
|
33
35
|
end
|
34
36
|
|
data/lib/odf/skeleton/styles.xml
CHANGED
@@ -1,19 +1,20 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<office:document-styles xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
|
3
|
-
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
|
4
|
-
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
|
5
|
-
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
<style:
|
13
|
-
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<office:document-styles xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
|
3
|
+
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
|
4
|
+
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
|
5
|
+
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
|
6
|
+
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0">
|
7
|
+
<office:font-face-decls>
|
8
|
+
<style:font-face style:name="Arial1" svg:font-family="Arial" style:font-family-generic="swiss"/>
|
9
|
+
</office:font-face-decls>
|
10
|
+
<office:styles>
|
11
|
+
<style:style style:name="Default" style:family="table-cell">
|
12
|
+
<style:table-cell-properties style:rotation-align="none"/>
|
13
|
+
<style:text-properties style:font-name="Arial1" style:font-name-complex="Arial1"/>
|
14
|
+
</style:style>
|
14
15
|
<number:number-style style:name="currency-grouped">
|
15
|
-
<number:number number:decimal-places="2" number:min-integer-digits="1" number:grouping="true" />
|
16
|
-
</number:number-style>
|
16
|
+
<number:number number:decimal-places="2" number:min-integer-digits="1" number:grouping="true" />
|
17
|
+
</number:number-style>
|
17
18
|
<number:number-style style:name="integer-grouped">
|
18
19
|
<number:number number:decimal-places="0" number:min-integer-digits="1" number:grouping="true" />
|
19
20
|
</number:number-style>
|
@@ -24,6 +25,5 @@
|
|
24
25
|
<number:text>-</number:text>
|
25
26
|
<number:day number:style="long"/>
|
26
27
|
</number:date-style>
|
27
|
-
</office:styles>
|
28
|
+
</office:styles>
|
28
29
|
</office:document-styles>
|
29
|
-
|
data/lib/odf/spreadsheet.rb
CHANGED
@@ -33,14 +33,15 @@ module ODF
|
|
33
33
|
b = Builder::XmlMarkup.new
|
34
34
|
|
35
35
|
b.instruct! :xml, :version => '1.0', :encoding => 'UTF-8'
|
36
|
-
b.tag! 'office:document-content',
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
36
|
+
b.tag! 'office:document-content',
|
37
|
+
'xmlns:office' => "urn:oasis:names:tc:opendocument:xmlns:office:1.0",
|
38
|
+
'xmlns:table' => "urn:oasis:names:tc:opendocument:xmlns:table:1.0",
|
39
|
+
'xmlns:text' => "urn:oasis:names:tc:opendocument:xmlns:text:1.0",
|
40
|
+
'xmlns:oooc' => "http://openoffice.org/2004/calc",
|
41
|
+
'xmlns:style' => "urn:oasis:names:tc:opendocument:xmlns:style:1.0",
|
42
|
+
'xmlns:fo' => "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
|
43
|
+
'xmlns:number' => "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0",
|
44
|
+
'xmlns:xlink' => "http://www.w3.org/1999/xlink" do
|
44
45
|
|xml|
|
45
46
|
xml.tag! 'office:styles' do
|
46
47
|
xml << default_styles_xml
|
data/lib/odf/style.rb
CHANGED
@@ -24,7 +24,7 @@ require 'odf/property'
|
|
24
24
|
module ODF
|
25
25
|
class Style < Container
|
26
26
|
contains :properties
|
27
|
-
|
27
|
+
|
28
28
|
FAMILIES = {:cell => 'table-cell', :column => 'table-column'}
|
29
29
|
|
30
30
|
def initialize(name='', opts={}, node_tag='style:style')
|
@@ -53,6 +53,9 @@ module ODF
|
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
+
class OfficeStyle < Style
|
57
|
+
end
|
58
|
+
|
56
59
|
class DefaultStyle < Style
|
57
60
|
def initialize(opts={})
|
58
61
|
super(nil, opts, 'style:default-style')
|
data/rodf.gemspec
CHANGED
@@ -2,15 +2,15 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "rodf"
|
5
|
-
s.version = "0.3"
|
5
|
+
s.version = "0.3.1"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = ["Thiago Arrais"]
|
9
|
-
s.date = "2012-
|
8
|
+
s.authors = ["Thiago Arrais, Foivos Zakkak"]
|
9
|
+
s.date = "2012-10-25"
|
10
10
|
s.description = "ODF generation library for Ruby"
|
11
11
|
s.email = "thiago.arrais@gmail.com"
|
12
12
|
s.extra_rdoc_files = ["CHANGELOG", "LICENSE.LGPL", "README.rdoc", "lib/odf/cell.rb", "lib/odf/column.rb", "lib/odf/compatibility.rb", "lib/odf/container.rb", "lib/odf/data_style.rb", "lib/odf/document.rb", "lib/odf/hyperlink.rb", "lib/odf/master_page.rb", "lib/odf/page_layout.rb", "lib/odf/paragraph.rb", "lib/odf/paragraph_container.rb", "lib/odf/property.rb", "lib/odf/row.rb", "lib/odf/skeleton.rb", "lib/odf/skeleton/manifest.xml.erb", "lib/odf/skeleton/styles.xml", "lib/odf/span.rb", "lib/odf/spreadsheet.rb", "lib/odf/style.rb", "lib/odf/style_section.rb", "lib/odf/tab.rb", "lib/odf/table.rb", "lib/odf/text.rb"]
|
13
|
-
s.files = ["CHANGELOG", "Gemfile", "LICENSE.LGPL", "Manifest", "README.rdoc", "Rakefile", "lib/odf/cell.rb", "lib/odf/column.rb", "lib/odf/compatibility.rb", "lib/odf/container.rb", "lib/odf/data_style.rb", "lib/odf/document.rb", "lib/odf/hyperlink.rb", "lib/odf/master_page.rb", "lib/odf/page_layout.rb", "lib/odf/paragraph.rb", "lib/odf/paragraph_container.rb", "lib/odf/property.rb", "lib/odf/row.rb", "lib/odf/skeleton.rb", "lib/odf/skeleton/manifest.xml.erb", "lib/odf/skeleton/styles.xml", "lib/odf/span.rb", "lib/odf/spreadsheet.rb", "lib/odf/style.rb", "lib/odf/style_section.rb", "lib/odf/tab.rb", "lib/odf/table.rb", "lib/odf/text.rb", "rodf.gemspec", "spec/cell_spec.rb", "spec/data_style_spec.rb", "spec/hyperlink_spec.rb", "spec/master_page_spec.rb", "spec/page_layout_spec.rb", "spec/paragraph_spec.rb", "spec/property_spec.rb", "spec/row_spec.rb", "spec/span_spec.rb", "spec/spec_helper.rb", "spec/spreadsheet_spec.rb", "spec/style_section_spec.rb", "spec/style_spec.rb", "spec/tab_spec.rb", "spec/table_spec.rb", "spec/text_spec.rb"]
|
13
|
+
s.files = ["CHANGELOG", "Gemfile", "LICENSE.LGPL", "Manifest", "README.rdoc", "Rakefile", "lib/odf/cell.rb", "lib/odf/column.rb", "lib/odf/compatibility.rb", "lib/odf/container.rb", "lib/odf/data_style.rb", "lib/odf/document.rb", "lib/odf/hyperlink.rb", "lib/odf/master_page.rb", "lib/odf/page_layout.rb", "lib/odf/paragraph.rb", "lib/odf/paragraph_container.rb", "lib/odf/property.rb", "lib/odf/row.rb", "lib/odf/skeleton.rb", "lib/odf/skeleton/manifest.xml.erb", "lib/odf/skeleton/styles.xml", "lib/odf/span.rb", "lib/odf/spreadsheet.rb", "lib/odf/style.rb", "lib/odf/style_section.rb", "lib/odf/tab.rb", "lib/odf/table.rb", "lib/odf/text.rb", "rodf.gemspec", "spec/cell_spec.rb", "spec/data_style_spec.rb", "spec/hyperlink_spec.rb", "spec/master_page_spec.rb", "spec/page_layout_spec.rb", "spec/paragraph_spec.rb", "spec/property_spec.rb", "spec/row_spec.rb", "spec/skeleton_spec.rb", "spec/span_spec.rb", "spec/spec_helper.rb", "spec/spreadsheet_spec.rb", "spec/style_section_spec.rb", "spec/style_spec.rb", "spec/tab_spec.rb", "spec/table_spec.rb", "spec/text_spec.rb"]
|
14
14
|
s.homepage = "http://github.com/thiagoarrais/rodf/tree"
|
15
15
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Rodf", "--main", "README.rdoc"]
|
16
16
|
s.require_paths = ["lib"]
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# Copyright (c) 2012 Foivos Zakkak
|
2
|
+
#
|
3
|
+
# This file is part of rODF.
|
4
|
+
#
|
5
|
+
# rODF is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU Lesser General Public License as
|
7
|
+
# published by the Free Software Foundation, either version 3 of
|
8
|
+
# the License, or (at your option) any later version.
|
9
|
+
|
10
|
+
# rODF is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU Lesser General Public License for more details.
|
14
|
+
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
16
|
+
# along with rODF. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
|
18
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
19
|
+
|
20
|
+
require 'odf/skeleton'
|
21
|
+
|
22
|
+
describe ODF::Skeleton do
|
23
|
+
it "should have the expected structure" do
|
24
|
+
output = ODF::Skeleton.new.styles
|
25
|
+
output.should have_tag('//office:document-styles/*')
|
26
|
+
output.should have_tag('//office:font-face-decls')
|
27
|
+
output.should have_tag('//office:styles', :count => 1)
|
28
|
+
output.should have_tag('//style:style', :count => 1)
|
29
|
+
output.should have_tag('//number:number-style', :count => 2)
|
30
|
+
output.should have_tag('//number:date-style', :count => 1)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
data/spec/spreadsheet_spec.rb
CHANGED
@@ -15,36 +15,36 @@
|
|
15
15
|
# You should have received a copy of the GNU Lesser General Public License
|
16
16
|
# along with rODF. If not, see <http://www.gnu.org/licenses/>.
|
17
17
|
|
18
|
-
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
19
|
-
|
20
|
-
require 'odf/spreadsheet'
|
21
|
-
|
22
|
-
describe ODF::SpreadSheet do
|
23
|
-
it "should have the expected structure" do
|
24
|
-
output = ODF::SpreadSheet.create {|s| }
|
25
|
-
output.should have_tag('//office:document-content/*')
|
26
|
-
output.should have_tag('//office:body/*')
|
27
|
-
output.should have_tag('//office:spreadsheet')
|
28
|
-
end
|
29
|
-
|
30
|
-
it "should be empty if no tables were added" do
|
31
|
-
output = ODF::SpreadSheet.create {|s| }
|
32
|
-
output.should_not have_tag('//office:spreadsheet/*')
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should include tables when asked to" do
|
36
|
-
output = ODF::SpreadSheet.create { |s|
|
37
|
-
s.table 'Example'
|
38
|
-
}
|
39
|
-
output.should have_tag('//office:spreadsheet/*', :count => 1)
|
18
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
19
|
+
|
20
|
+
require 'odf/spreadsheet'
|
21
|
+
|
22
|
+
describe ODF::SpreadSheet do
|
23
|
+
it "should have the expected structure" do
|
24
|
+
output = ODF::SpreadSheet.create {|s| }
|
25
|
+
output.should have_tag('//office:document-content/*')
|
26
|
+
output.should have_tag('//office:body/*')
|
27
|
+
output.should have_tag('//office:spreadsheet')
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should be empty if no tables were added" do
|
31
|
+
output = ODF::SpreadSheet.create {|s| }
|
32
|
+
output.should_not have_tag('//office:spreadsheet/*')
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should include tables when asked to" do
|
36
|
+
output = ODF::SpreadSheet.create { |s|
|
37
|
+
s.table 'Example'
|
38
|
+
}
|
39
|
+
output.should have_tag('//office:spreadsheet/*', :count => 1)
|
40
40
|
output.should have_tag('//table:table', :count => 1)
|
41
41
|
Hpricot(output).at('//table:table')['table:name'].should == 'Example'
|
42
|
-
|
43
|
-
output = ODF::SpreadSheet.create { |s|
|
44
|
-
s.table 'First table'
|
45
|
-
s.table 'Second table'
|
46
|
-
}
|
47
|
-
output.should have_tag('//office:spreadsheet/*', :count => 2)
|
42
|
+
|
43
|
+
output = ODF::SpreadSheet.create { |s|
|
44
|
+
s.table 'First table'
|
45
|
+
s.table 'Second table'
|
46
|
+
}
|
47
|
+
output.should have_tag('//office:spreadsheet/*', :count => 2)
|
48
48
|
end
|
49
49
|
|
50
50
|
it "should allow rows to be added inside tables" do
|
@@ -76,6 +76,48 @@ describe ODF::SpreadSheet do
|
|
76
76
|
end
|
77
77
|
output.should have_tag('//office:automatic-styles/*', :count => 1)
|
78
78
|
output.should have_tag('//number:date-style')
|
79
|
-
end
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should allow conditional styles to be added" do
|
82
|
+
output = ODF::SpreadSheet.create do |s|
|
83
|
+
s.style 'cond-cell', :family => :cell do
|
84
|
+
property :conditional,
|
85
|
+
'condition' => 'cell-content()!=0',
|
86
|
+
'apply-style-name' => 'red-cell'
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
output.should have_tag('//style:map')
|
91
|
+
Hpricot(output).at('//style:map')['style:apply-style-name'].should == 'red-cell'
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should allow office styles to be added" do
|
95
|
+
spread = ODF::SpreadSheet.new
|
96
|
+
spread.office_style 'red-cell', :family => :cell
|
97
|
+
|
98
|
+
output = spread.office_styles_xml
|
99
|
+
|
100
|
+
output.should have_tag('//style:style')
|
101
|
+
Hpricot(output).at('//style:style')['style:name'].should == 'red-cell'
|
102
|
+
spread.xml.should_not have_tag('//style:style')
|
103
|
+
end
|
104
|
+
|
105
|
+
it "should support mixed office and conditional styles to be added" do
|
106
|
+
spread = ODF::SpreadSheet.new
|
107
|
+
spread.office_style 'red-cell', :family => :cell
|
108
|
+
spread.style 'cond-cell', :family => :cell do
|
109
|
+
property :conditional,
|
110
|
+
'condition' => 'cell-content()!=0',
|
111
|
+
'apply-style-name' => 'red-cell'
|
112
|
+
end
|
113
|
+
|
114
|
+
output = spread.styles_xml
|
115
|
+
output.should have_tag('//style:map')
|
116
|
+
Hpricot(output).at('//style:map')['style:apply-style-name'].should == 'red-cell'
|
117
|
+
|
118
|
+
output = spread.office_styles_xml
|
119
|
+
output.should have_tag('//style:style')
|
120
|
+
Hpricot(output).at('//style:style')['style:name'].should == 'red-cell'
|
121
|
+
end
|
80
122
|
end
|
81
123
|
|
metadata
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rodf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
|
-
- Thiago Arrais
|
8
|
+
- Thiago Arrais, Foivos Zakkak
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-10-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: builder
|
16
|
-
requirement: &
|
16
|
+
requirement: &85321850 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '3.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *85321850
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rubyzip
|
27
|
-
requirement: &
|
27
|
+
requirement: &85321640 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.9.1
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *85321640
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activesupport
|
38
|
-
requirement: &
|
38
|
+
requirement: &85321430 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '3.0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *85321430
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &85321220 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '2.9'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *85321220
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rspec_hpricot_matchers
|
60
|
-
requirement: &
|
60
|
+
requirement: &85321010 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '1.0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *85321010
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: echoe
|
71
|
-
requirement: &
|
71
|
+
requirement: &85320800 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '4.6'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *85320800
|
80
80
|
description: ODF generation library for Ruby
|
81
81
|
email: thiago.arrais@gmail.com
|
82
82
|
executables: []
|
@@ -147,6 +147,7 @@ files:
|
|
147
147
|
- spec/paragraph_spec.rb
|
148
148
|
- spec/property_spec.rb
|
149
149
|
- spec/row_spec.rb
|
150
|
+
- spec/skeleton_spec.rb
|
150
151
|
- spec/span_spec.rb
|
151
152
|
- spec/spec_helper.rb
|
152
153
|
- spec/spreadsheet_spec.rb
|