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 CHANGED
@@ -1,3 +1,4 @@
1
+ v0.3.1. Adds support for conditional formatting
1
2
  v0.3. Allow parameterless blocks
2
3
  v0.2.2. Reintroduce compatibility with Ruby 1.8
3
4
  v0.2.1. Update to newer libraries and Ruby 1.9
data/Manifest CHANGED
@@ -36,6 +36,7 @@ spec/page_layout_spec.rb
36
36
  spec/paragraph_spec.rb
37
37
  spec/property_spec.rb
38
38
  spec/row_spec.rb
39
+ spec/skeleton_spec.rb
39
40
  spec/span_spec.rb
40
41
  spec/spec_helper.rb
41
42
  spec/spreadsheet_spec.rb
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 => 'style:table-cell-properties',
24
- :text => 'style:text-properties',
25
- :column => 'style:table-column-properties'}
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] || "style:#{type}-properties"
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
 
@@ -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
- <office:font-face-decls>
7
- <style:font-face style:name="Arial1" svg:font-family="Arial" style:font-family-generic="swiss"/>
8
- </office:font-face-decls>
9
- <office:styles>
10
- <style:style style:name="Default" style:family="table-cell">
11
- <style:table-cell-properties style:rotation-align="none"/>
12
- <style:text-properties style:font-name="Arial1" style:font-name-complex="Arial1"/>
13
- </style:style>
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
-
@@ -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', 'xmlns:office' => "urn:oasis:names:tc:opendocument:xmlns:office:1.0",
37
- 'xmlns:table' => "urn:oasis:names:tc:opendocument:xmlns:table:1.0",
38
- 'xmlns:text' => "urn:oasis:names:tc:opendocument:xmlns:text:1.0",
39
- 'xmlns:oooc' => "http://openoffice.org/2004/calc",
40
- 'xmlns:style' => "urn:oasis:names:tc:opendocument:xmlns:style:1.0",
41
- 'xmlns:fo' => "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
42
- 'xmlns:number' => "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0",
43
- 'xmlns:xlink' => "http://www.w3.org/1999/xlink" do
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-07-13"
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
+
@@ -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: '0.3'
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-07-13 00:00:00.000000000 Z
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: &75169230 !ruby/object:Gem::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: *75169230
24
+ version_requirements: *85321850
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rubyzip
27
- requirement: &75169020 !ruby/object:Gem::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: *75169020
35
+ version_requirements: *85321640
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: activesupport
38
- requirement: &75168810 !ruby/object:Gem::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: *75168810
46
+ version_requirements: *85321430
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &75168600 !ruby/object:Gem::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: *75168600
57
+ version_requirements: *85321220
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rspec_hpricot_matchers
60
- requirement: &75168390 !ruby/object:Gem::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: *75168390
68
+ version_requirements: *85321010
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: echoe
71
- requirement: &75168180 !ruby/object:Gem::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: *75168180
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