osheet 0.10.0 → 1.0.0.rc.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/Gemfile +0 -1
- data/Gemfile.lock +9 -6
- data/Rakefile +35 -19
- data/bench/bench_runner.rb +91 -0
- data/bench/profiler_runner.rb +1 -0
- data/examples/basic.rb +1 -1
- data/examples/basic.xls +2 -1
- data/examples/basic_with_templates.rb +2 -2
- data/examples/basic_with_templates.xls +3 -3
- data/examples/formats.rb +2 -2
- data/examples/formats.xls +46 -46
- data/examples/formula.rb +2 -2
- data/examples/styles.rb +2 -2
- data/examples/styles.xls +5 -5
- data/examples/trivial.rb +2 -2
- data/lib/osheet/cell.rb +48 -46
- data/lib/osheet/column.rb +23 -29
- data/lib/osheet/format.rb +3 -3
- data/lib/osheet/meta_element.rb +2 -1
- data/lib/osheet/mixin.rb +21 -9
- data/lib/osheet/partial.rb +5 -9
- data/lib/osheet/row.rb +28 -32
- data/lib/osheet/style.rb +11 -25
- data/lib/osheet/styled_element.rb +9 -1
- data/lib/osheet/template.rb +3 -8
- data/lib/osheet/version.rb +1 -1
- data/lib/osheet/workbook.rb +135 -43
- data/lib/osheet/workbook_api.rb +208 -0
- data/lib/osheet/workbook_element.rb +225 -8
- data/lib/osheet/worksheet.rb +22 -28
- data/lib/osheet/xmlss_writer/style_cache.rb +64 -0
- data/lib/osheet/xmlss_writer/style_settings.rb +148 -0
- data/lib/osheet/xmlss_writer.rb +143 -1
- data/lib/osheet.rb +3 -29
- data/osheet.gemspec +4 -1
- data/test/cell_test.rb +33 -98
- data/test/column_test.rb +20 -88
- data/test/{mixins.rb → fixtures/mixins.rb} +6 -4
- data/test/fixtures/test_writer.rb +68 -0
- data/test/format_test.rb +2 -2
- data/test/helper.rb +34 -68
- data/test/mixin_test.rb +37 -43
- data/test/partial_test.rb +3 -26
- data/test/row_test.rb +32 -85
- data/test/style_test.rb +9 -26
- data/test/template_test.rb +5 -6
- data/test/workbook_element_test.rb +231 -0
- data/test/workbook_test.rb +225 -116
- data/test/worksheet_test.rb +51 -98
- data/test/xmlss_writer/api_test.rb +139 -0
- data/test/xmlss_writer/style_cache_test.rb +65 -0
- data/test/xmlss_writer/style_settings_test.rb +263 -0
- data/test/xmlss_writer/styles_test.rb +121 -153
- data/test/xmlss_writer_test.rb +91 -0
- metadata +75 -50
- data/lib/osheet/associations.rb +0 -58
- data/lib/osheet/instance.rb +0 -30
- data/lib/osheet/markup_element.rb +0 -22
- data/lib/osheet/partial_set.rb +0 -57
- data/lib/osheet/railtie.rb +0 -9
- data/lib/osheet/style_set.rb +0 -39
- data/lib/osheet/template_set.rb +0 -51
- data/lib/osheet/view_handler/rails.rb +0 -44
- data/lib/osheet/view_handler/tilt.rb +0 -42
- data/lib/osheet/view_handler.rb +0 -2
- data/lib/osheet/worksheet_element.rb +0 -17
- data/lib/osheet/xmlss_writer/base.rb +0 -49
- data/lib/osheet/xmlss_writer/elements.rb +0 -56
- data/lib/osheet/xmlss_writer/styles.rb +0 -216
- data/test/osheet_test.rb +0 -13
- data/test/partial_set_test.rb +0 -64
- data/test/style_set_test.rb +0 -47
- data/test/template_set_test.rb +0 -74
- data/test/xmlss_writer/base_test.rb +0 -103
- data/test/xmlss_writer/elements_test.rb +0 -172
@@ -1,172 +0,0 @@
|
|
1
|
-
require "assert"
|
2
|
-
|
3
|
-
require 'osheet/xmlss_writer'
|
4
|
-
|
5
|
-
module Osheet
|
6
|
-
|
7
|
-
class XmlssWriter::ElementsTest < Assert::Context
|
8
|
-
before do
|
9
|
-
@writer = XmlssWriter::Base.new
|
10
|
-
@xworkbook = ::Xmlss::Workbook.new
|
11
|
-
end
|
12
|
-
subject { @writer }
|
13
|
-
|
14
|
-
end
|
15
|
-
|
16
|
-
class XmlssWriter::CellTests < XmlssWriter::ElementsTest
|
17
|
-
desc "when writing a cell"
|
18
|
-
before do
|
19
|
-
@cell = Osheet::Cell.new do
|
20
|
-
style_class "awesome thing"
|
21
|
-
data 100
|
22
|
-
format :number
|
23
|
-
href 'http://example.com'
|
24
|
-
rowspan 2
|
25
|
-
colspan 5
|
26
|
-
index 3
|
27
|
-
formula "=R1C1"
|
28
|
-
end
|
29
|
-
@xmlss_cell = subject.send(:cell, @xworkbook, @cell)
|
30
|
-
end
|
31
|
-
|
32
|
-
should "create an Xmlss cell with appropriate attributes" do
|
33
|
-
assert_kind_of ::Xmlss::Element::Cell, @xmlss_cell
|
34
|
-
assert_equal 'http://example.com', @xmlss_cell.href
|
35
|
-
assert_equal 3, @xmlss_cell.index
|
36
|
-
assert_equal "=R1C1", @xmlss_cell.formula
|
37
|
-
assert_equal 1, @xmlss_cell.merge_down
|
38
|
-
assert_equal 4, @xmlss_cell.merge_across
|
39
|
-
end
|
40
|
-
|
41
|
-
should "style an Xmlss cell" do
|
42
|
-
assert_equal ".awesome.thing..number_none_0_nocomma_black", @xmlss_cell.style_id
|
43
|
-
assert_equal 1, subject.used_xstyles.size
|
44
|
-
assert_kind_of ::Xmlss::Style::Base, subject.used_xstyles.first
|
45
|
-
assert_equal @xmlss_cell.style_id, subject.used_xstyles.first.id
|
46
|
-
end
|
47
|
-
|
48
|
-
should "write row element markup" do
|
49
|
-
assert_equal(
|
50
|
-
"<Cell ss:Formula=\"=R1C1\" ss:HRef=\"http://example.com\" ss:Index=\"3\" ss:MergeAcross=\"4\" ss:MergeDown=\"1\" ss:StyleID=\".awesome.thing..number_none_0_nocomma_black\"><Data ss:Type=\"Number\">100</Data></Cell>",
|
51
|
-
xelement_markup(@xworkbook)
|
52
|
-
)
|
53
|
-
end
|
54
|
-
|
55
|
-
end
|
56
|
-
|
57
|
-
class XmlssWriter::RowTests < XmlssWriter::ElementsTest
|
58
|
-
desc "when writing a row"
|
59
|
-
before do
|
60
|
-
@row = Osheet::Row.new do
|
61
|
-
style_class "awesome thing"
|
62
|
-
height 100
|
63
|
-
autofit true
|
64
|
-
hidden true
|
65
|
-
cell {
|
66
|
-
data 'one hundred'
|
67
|
-
}
|
68
|
-
end
|
69
|
-
@xmlss_row = subject.send(:row, @xworkbook, @row)
|
70
|
-
end
|
71
|
-
|
72
|
-
should "create an Xmlss row" do
|
73
|
-
assert_kind_of ::Xmlss::Element::Row, @xmlss_row
|
74
|
-
assert_equal @row.attributes[:height], @xmlss_row.height
|
75
|
-
assert_equal @row.attributes[:autofit], @xmlss_row.auto_fit_height
|
76
|
-
assert_equal @row.attributes[:hidden], @xmlss_row.hidden
|
77
|
-
end
|
78
|
-
|
79
|
-
should "style an Xmlss row" do
|
80
|
-
assert_equal ".awesome.thing", @xmlss_row.style_id
|
81
|
-
assert_equal 1, subject.used_xstyles.size
|
82
|
-
assert_kind_of ::Xmlss::Style::Base, subject.used_xstyles.first
|
83
|
-
assert_equal @xmlss_row.style_id, subject.used_xstyles.first.id
|
84
|
-
end
|
85
|
-
|
86
|
-
should "write row element markup" do
|
87
|
-
assert_equal(
|
88
|
-
"<Row ss:AutoFitHeight=\"1\" ss:Height=\"100\" ss:Hidden=\"1\" ss:StyleID=\".awesome.thing\"><Cell><Data ss:Type=\"String\">one hundred</Data></Cell></Row>",
|
89
|
-
xelement_markup(@xworkbook)
|
90
|
-
)
|
91
|
-
end
|
92
|
-
|
93
|
-
end
|
94
|
-
|
95
|
-
class XmlssWriter::ColumnTests < XmlssWriter::ElementsTest
|
96
|
-
desc "when writing a column"
|
97
|
-
before do
|
98
|
-
@column = Osheet::Column.new {
|
99
|
-
style_class "awesome"
|
100
|
-
width 100
|
101
|
-
autofit true
|
102
|
-
hidden true
|
103
|
-
meta({
|
104
|
-
:color => 'blue'
|
105
|
-
})
|
106
|
-
}
|
107
|
-
@xmlss_column = subject.send(:column, @xworkbook, @column)
|
108
|
-
end
|
109
|
-
|
110
|
-
should "create an Xmlss column" do
|
111
|
-
assert_kind_of ::Xmlss::Element::Column, @xmlss_column
|
112
|
-
assert_equal @column.attributes[:width], @xmlss_column.width
|
113
|
-
assert_equal @column.attributes[:autofit], @xmlss_column.auto_fit_width
|
114
|
-
assert_equal @column.attributes[:hidden], @xmlss_column.hidden
|
115
|
-
end
|
116
|
-
|
117
|
-
should "style an Xmlss column" do
|
118
|
-
assert_equal ".awesome", @xmlss_column.style_id
|
119
|
-
assert_equal 1, subject.used_xstyles.size
|
120
|
-
assert_kind_of ::Xmlss::Style::Base, subject.used_xstyles.first
|
121
|
-
assert_equal @xmlss_column.style_id, subject.used_xstyles.first.id
|
122
|
-
end
|
123
|
-
|
124
|
-
should "write column element markup" do
|
125
|
-
assert_equal(
|
126
|
-
"<Column ss:AutoFitWidth=\"1\" ss:Hidden=\"1\" ss:StyleID=\".awesome\" ss:Width=\"100\" />",
|
127
|
-
xelement_markup(@xworkbook)
|
128
|
-
)
|
129
|
-
end
|
130
|
-
|
131
|
-
end
|
132
|
-
|
133
|
-
class XmlssWriter::WorksheetTests < XmlssWriter::ElementsTest
|
134
|
-
desc "when writing a worksheet"
|
135
|
-
before do
|
136
|
-
@worksheet = Worksheet.new do
|
137
|
-
name "testsheet2"
|
138
|
-
column { width 100 }
|
139
|
-
row { height 50 }
|
140
|
-
end
|
141
|
-
end
|
142
|
-
|
143
|
-
should "create an Xmlss worksheet" do
|
144
|
-
xmlss_worksheet = subject.send(:worksheet, @xworkbook, @worksheet)
|
145
|
-
assert_kind_of ::Xmlss::Element::Worksheet, xmlss_worksheet
|
146
|
-
end
|
147
|
-
|
148
|
-
should "filter invalid worksheet names" do
|
149
|
-
{ 'valid name' => 'valid name',
|
150
|
-
'valid 2' => 'valid 2',
|
151
|
-
'invalid :' => 'invalid ',
|
152
|
-
'invalid ;' => 'invalid ',
|
153
|
-
'invalid *' => 'invalid ',
|
154
|
-
'invalid /' => 'invalid ',
|
155
|
-
'invalid \\' => 'invalid ',
|
156
|
-
'[invalid]' => "invalid]"
|
157
|
-
}.each do |k,v|
|
158
|
-
assert_equal v, subject.send(:worksheet, @xworkbook, Worksheet.new { name k }).name
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
should "write worksheet element markup" do
|
163
|
-
subject.send(:worksheet, @xworkbook, @worksheet)
|
164
|
-
assert_equal(
|
165
|
-
"<Worksheet ss:Name=\"testsheet2\"><Table><Column ss:Width=\"100\" /><Row ss:Height=\"50\"></Row></Table></Worksheet>",
|
166
|
-
xelement_markup(@xworkbook)
|
167
|
-
)
|
168
|
-
end
|
169
|
-
|
170
|
-
end
|
171
|
-
|
172
|
-
end
|