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.
Files changed (75) hide show
  1. data/Gemfile +0 -1
  2. data/Gemfile.lock +9 -6
  3. data/Rakefile +35 -19
  4. data/bench/bench_runner.rb +91 -0
  5. data/bench/profiler_runner.rb +1 -0
  6. data/examples/basic.rb +1 -1
  7. data/examples/basic.xls +2 -1
  8. data/examples/basic_with_templates.rb +2 -2
  9. data/examples/basic_with_templates.xls +3 -3
  10. data/examples/formats.rb +2 -2
  11. data/examples/formats.xls +46 -46
  12. data/examples/formula.rb +2 -2
  13. data/examples/styles.rb +2 -2
  14. data/examples/styles.xls +5 -5
  15. data/examples/trivial.rb +2 -2
  16. data/lib/osheet/cell.rb +48 -46
  17. data/lib/osheet/column.rb +23 -29
  18. data/lib/osheet/format.rb +3 -3
  19. data/lib/osheet/meta_element.rb +2 -1
  20. data/lib/osheet/mixin.rb +21 -9
  21. data/lib/osheet/partial.rb +5 -9
  22. data/lib/osheet/row.rb +28 -32
  23. data/lib/osheet/style.rb +11 -25
  24. data/lib/osheet/styled_element.rb +9 -1
  25. data/lib/osheet/template.rb +3 -8
  26. data/lib/osheet/version.rb +1 -1
  27. data/lib/osheet/workbook.rb +135 -43
  28. data/lib/osheet/workbook_api.rb +208 -0
  29. data/lib/osheet/workbook_element.rb +225 -8
  30. data/lib/osheet/worksheet.rb +22 -28
  31. data/lib/osheet/xmlss_writer/style_cache.rb +64 -0
  32. data/lib/osheet/xmlss_writer/style_settings.rb +148 -0
  33. data/lib/osheet/xmlss_writer.rb +143 -1
  34. data/lib/osheet.rb +3 -29
  35. data/osheet.gemspec +4 -1
  36. data/test/cell_test.rb +33 -98
  37. data/test/column_test.rb +20 -88
  38. data/test/{mixins.rb → fixtures/mixins.rb} +6 -4
  39. data/test/fixtures/test_writer.rb +68 -0
  40. data/test/format_test.rb +2 -2
  41. data/test/helper.rb +34 -68
  42. data/test/mixin_test.rb +37 -43
  43. data/test/partial_test.rb +3 -26
  44. data/test/row_test.rb +32 -85
  45. data/test/style_test.rb +9 -26
  46. data/test/template_test.rb +5 -6
  47. data/test/workbook_element_test.rb +231 -0
  48. data/test/workbook_test.rb +225 -116
  49. data/test/worksheet_test.rb +51 -98
  50. data/test/xmlss_writer/api_test.rb +139 -0
  51. data/test/xmlss_writer/style_cache_test.rb +65 -0
  52. data/test/xmlss_writer/style_settings_test.rb +263 -0
  53. data/test/xmlss_writer/styles_test.rb +121 -153
  54. data/test/xmlss_writer_test.rb +91 -0
  55. metadata +75 -50
  56. data/lib/osheet/associations.rb +0 -58
  57. data/lib/osheet/instance.rb +0 -30
  58. data/lib/osheet/markup_element.rb +0 -22
  59. data/lib/osheet/partial_set.rb +0 -57
  60. data/lib/osheet/railtie.rb +0 -9
  61. data/lib/osheet/style_set.rb +0 -39
  62. data/lib/osheet/template_set.rb +0 -51
  63. data/lib/osheet/view_handler/rails.rb +0 -44
  64. data/lib/osheet/view_handler/tilt.rb +0 -42
  65. data/lib/osheet/view_handler.rb +0 -2
  66. data/lib/osheet/worksheet_element.rb +0 -17
  67. data/lib/osheet/xmlss_writer/base.rb +0 -49
  68. data/lib/osheet/xmlss_writer/elements.rb +0 -56
  69. data/lib/osheet/xmlss_writer/styles.rb +0 -216
  70. data/test/osheet_test.rb +0 -13
  71. data/test/partial_set_test.rb +0 -64
  72. data/test/style_set_test.rb +0 -47
  73. data/test/template_set_test.rb +0 -74
  74. data/test/xmlss_writer/base_test.rb +0 -103
  75. 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