osheet 0.7.0 → 0.8.0

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 (111) hide show
  1. data/.gitignore +5 -3
  2. data/Gemfile +2 -0
  3. data/Gemfile.lock +13 -37
  4. data/Rakefile +3 -3
  5. data/lib/osheet/format/numeric.rb +0 -2
  6. data/lib/osheet/instance.rb +1 -3
  7. data/lib/osheet/version.rb +2 -2
  8. data/osheet.gemspec +3 -9
  9. data/test/cell_test.rb +96 -104
  10. data/test/column_test.rb +90 -97
  11. data/test/format/accounting_test.rb +115 -128
  12. data/test/format/currency_test.rb +115 -128
  13. data/test/format/custom_test.rb +13 -13
  14. data/test/format/datetime_test.rb +13 -13
  15. data/test/format/fraction_test.rb +63 -63
  16. data/test/format/general_test.rb +11 -11
  17. data/test/format/number_test.rb +67 -69
  18. data/test/format/percentage_test.rb +89 -91
  19. data/test/format/scientific_test.rb +89 -91
  20. data/test/format/special_test.rb +35 -35
  21. data/test/format/text_test.rb +9 -9
  22. data/test/format_test.rb +24 -24
  23. data/test/helper.rb +42 -47
  24. data/test/irb.rb +9 -0
  25. data/test/mixin_test.rb +55 -59
  26. data/test/osheet_test.rb +7 -10
  27. data/test/partial_set_test.rb +41 -61
  28. data/test/partial_test.rb +44 -46
  29. data/test/row_test.rb +92 -99
  30. data/test/style_set_test.rb +34 -37
  31. data/test/style_test.rb +72 -97
  32. data/test/template_set_test.rb +52 -73
  33. data/test/template_test.rb +31 -49
  34. data/test/workbook_test.rb +186 -199
  35. data/test/worksheet_test.rb +99 -103
  36. data/test/xmlss_writer/base_test.rb +72 -73
  37. data/test/xmlss_writer/elements_test.rb +141 -140
  38. data/test/xmlss_writer/styles_test.rb +197 -208
  39. metadata +27 -247
  40. data/.bundle/config +0 -2
  41. data/test/app_helper.rb +0 -66
  42. data/test/env.rb +0 -10
  43. data/test/rails/three/.gitignore +0 -4
  44. data/test/rails/three/Gemfile +0 -5
  45. data/test/rails/three/Gemfile.lock +0 -88
  46. data/test/rails/three/app/controllers/application_controller.rb +0 -3
  47. data/test/rails/three/app/controllers/things_controller.rb +0 -10
  48. data/test/rails/three/app/helpers/application_helper.rb +0 -2
  49. data/test/rails/three/app/views/layouts/application.html.erb +0 -14
  50. data/test/rails/three/app/views/things/index.xls.osheet +0 -13
  51. data/test/rails/three/config/application.rb +0 -42
  52. data/test/rails/three/config/boot.rb +0 -13
  53. data/test/rails/three/config/database.yml +0 -22
  54. data/test/rails/three/config/environment.rb +0 -5
  55. data/test/rails/three/config/environments/development.rb +0 -26
  56. data/test/rails/three/config/environments/production.rb +0 -49
  57. data/test/rails/three/config/environments/test.rb +0 -35
  58. data/test/rails/three/config/initializers/app.rb +0 -0
  59. data/test/rails/three/config/initializers/backtrace_silencers.rb +0 -7
  60. data/test/rails/three/config/initializers/inflections.rb +0 -10
  61. data/test/rails/three/config/initializers/mime_types.rb +0 -5
  62. data/test/rails/three/config/initializers/secret_token.rb +0 -7
  63. data/test/rails/three/config/initializers/session_store.rb +0 -8
  64. data/test/rails/three/config/locales/en.yml +0 -5
  65. data/test/rails/three/config/routes.rb +0 -3
  66. data/test/rails/three/config.ru +0 -4
  67. data/test/rails/three/db/seeds.rb +0 -7
  68. data/test/rails/three/doc/README_FOR_APP +0 -2
  69. data/test/rails/three/lib/tasks/.gitkeep +0 -0
  70. data/test/rails/three/script/rails +0 -6
  71. data/test/rails/two/.bundle/config +0 -2
  72. data/test/rails/two/Booting +0 -0
  73. data/test/rails/two/Gemfile +0 -5
  74. data/test/rails/two/Gemfile.lock +0 -45
  75. data/test/rails/two/Rails +0 -0
  76. data/test/rails/two/app/controllers/application_controller.rb +0 -20
  77. data/test/rails/two/app/controllers/things_controller.rb +0 -10
  78. data/test/rails/two/app/helpers/application_helper.rb +0 -3
  79. data/test/rails/two/app/views/things/index.xls.osheet +0 -15
  80. data/test/rails/two/config/boot.rb +0 -128
  81. data/test/rails/two/config/database.yml +0 -22
  82. data/test/rails/two/config/environment.rb +0 -41
  83. data/test/rails/two/config/environments/development.rb +0 -17
  84. data/test/rails/two/config/environments/production.rb +0 -28
  85. data/test/rails/two/config/environments/test.rb +0 -28
  86. data/test/rails/two/config/initializers/app.rb +0 -2
  87. data/test/rails/two/config/initializers/backtrace_silencers.rb +0 -7
  88. data/test/rails/two/config/initializers/cookie_verification_secret.rb +0 -7
  89. data/test/rails/two/config/initializers/inflections.rb +0 -10
  90. data/test/rails/two/config/initializers/mime_types.rb +0 -5
  91. data/test/rails/two/config/initializers/new_rails_defaults.rb +0 -21
  92. data/test/rails/two/config/initializers/session_store.rb +0 -15
  93. data/test/rails/two/config/locales/en.yml +0 -5
  94. data/test/rails/two/config/routes.rb +0 -3
  95. data/test/rails/two/db/development.sqlite3 +0 -0
  96. data/test/rails/two/db/seeds.rb +0 -7
  97. data/test/rails/two/script/about +0 -4
  98. data/test/rails/two/script/console +0 -3
  99. data/test/rails/two/script/dbconsole +0 -3
  100. data/test/rails/two/script/destroy +0 -3
  101. data/test/rails/two/script/generate +0 -3
  102. data/test/rails/two/script/performance/benchmarker +0 -3
  103. data/test/rails/two/script/performance/profiler +0 -3
  104. data/test/rails/two/script/plugin +0 -3
  105. data/test/rails/two/script/runner +0 -3
  106. data/test/rails/two/script/server +0 -3
  107. data/test/rails/two/tmp/pids/server.pid +0 -1
  108. data/test/rails_test.rb +0 -38
  109. data/test/sinatra/app.rb +0 -16
  110. data/test/sinatra/views/index.osheet +0 -13
  111. data/test/sinatra_test.rb +0 -19
@@ -1,169 +1,170 @@
1
- require "test/helper"
1
+ require "assert"
2
2
  require 'osheet/xmlss_writer'
3
3
 
4
4
  module Osheet
5
5
 
6
- class XmlssWriter::WorksheetTest < Test::Unit::TestCase
7
- context "when writing a worksheet" do
8
- subject { XmlssWriter::Base.new }
9
- before do
10
- @worksheet = Worksheet.new {
11
- name "testsheet2"
12
- column { width 100 }
13
- row { height 50 }
14
- }
15
- end
6
+ class XmlssWriter::ElementsTest < Assert::Context
7
+ before do
8
+ @writer = XmlssWriter::Base.new
9
+ end
10
+ subject { @writer }
16
11
 
17
- should "create an Xmlss worksheet" do
18
- xmlss_worksheet = subject.send(:worksheet, @worksheet)
19
- assert_kind_of ::Xmlss::Worksheet, xmlss_worksheet
20
- assert_equal @worksheet.attributes[:name], xmlss_worksheet.name
21
- assert_kind_of ::Xmlss::Table, xmlss_worksheet.table
22
- assert_equal @worksheet.columns.size, xmlss_worksheet.table.columns.size
23
- assert_equal @worksheet.rows.size, xmlss_worksheet.table.rows.size
24
- end
12
+ end
13
+
14
+ class XmlssWriter::WorksheetTest < XmlssWriter::ElementsTest
15
+ desc "when writing a worksheet"
16
+ before do
17
+ @worksheet = Worksheet.new {
18
+ name "testsheet2"
19
+ column { width 100 }
20
+ row { height 50 }
21
+ }
22
+ end
23
+
24
+ should "create an Xmlss worksheet" do
25
+ xmlss_worksheet = subject.send(:worksheet, @worksheet)
26
+ assert_kind_of ::Xmlss::Worksheet, xmlss_worksheet
27
+ assert_equal @worksheet.attributes[:name], xmlss_worksheet.name
28
+ assert_kind_of ::Xmlss::Table, xmlss_worksheet.table
29
+ assert_equal @worksheet.columns.size, xmlss_worksheet.table.columns.size
30
+ assert_equal @worksheet.rows.size, xmlss_worksheet.table.rows.size
31
+ end
25
32
 
26
- should "filter invalid worksheet names" do
27
- { 'valid name' => 'valid name',
28
- 'valid 2' => 'valid 2',
29
- 'invalid :' => 'invalid ',
30
- 'invalid ;' => 'invalid ',
31
- 'invalid *' => 'invalid ',
32
- 'invalid /' => 'invalid ',
33
- 'invalid \\' => 'invalid ',
34
- '[invalid]' => "invalid]"
35
- }.each do |k,v|
36
- assert_equal v, subject.send(:worksheet, Worksheet.new { name k}).name
37
- end
33
+ should "filter invalid worksheet names" do
34
+ { 'valid name' => 'valid name',
35
+ 'valid 2' => 'valid 2',
36
+ 'invalid :' => 'invalid ',
37
+ 'invalid ;' => 'invalid ',
38
+ 'invalid *' => 'invalid ',
39
+ 'invalid /' => 'invalid ',
40
+ 'invalid \\' => 'invalid ',
41
+ '[invalid]' => "invalid]"
42
+ }.each do |k,v|
43
+ assert_equal v, subject.send(:worksheet, Worksheet.new { name k}).name
38
44
  end
39
45
  end
46
+
40
47
  end
41
48
 
42
- class XmlssWriter::ColumnTest < Test::Unit::TestCase
43
- context "when writing a column" do
44
- subject { XmlssWriter::Base.new }
45
- before do
46
- @column = Osheet::Column.new {
47
- style_class "awesome"
48
- width 100
49
- autofit true
50
- hidden true
51
- meta({
52
- :color => 'blue'
53
- })
54
- }
55
- @xmlss_column = subject.send(:column, @column)
56
- end
49
+ class XmlssWriter::ColumnTest < XmlssWriter::ElementsTest
50
+ desc "when writing a column"
51
+ before do
52
+ @column = Osheet::Column.new {
53
+ style_class "awesome"
54
+ width 100
55
+ autofit true
56
+ hidden true
57
+ meta({
58
+ :color => 'blue'
59
+ })
60
+ }
61
+ @xmlss_column = subject.send(:column, @column)
62
+ end
57
63
 
58
- should "create an Xmlss column" do
59
- assert_kind_of ::Xmlss::Column, @xmlss_column
60
- assert_equal @column.attributes[:width], @xmlss_column.width
61
- assert_equal @column.attributes[:autofit], @xmlss_column.auto_fit_width
62
- assert_equal @column.attributes[:hidden], @xmlss_column.hidden
63
- end
64
+ should "create an Xmlss column" do
65
+ assert_kind_of ::Xmlss::Column, @xmlss_column
66
+ assert_equal @column.attributes[:width], @xmlss_column.width
67
+ assert_equal @column.attributes[:autofit], @xmlss_column.auto_fit_width
68
+ assert_equal @column.attributes[:hidden], @xmlss_column.hidden
69
+ end
64
70
 
65
- should "style an Xmlss column" do
66
- assert_equal ".awesome", @xmlss_column.style_id
67
- assert_equal 1, subject.styles.size
68
- assert_kind_of ::Xmlss::Style::Base, subject.styles.first
69
- assert_equal @xmlss_column.style_id, subject.styles.first.id
70
- end
71
+ should "style an Xmlss column" do
72
+ assert_equal ".awesome", @xmlss_column.style_id
73
+ assert_equal 1, subject.styles.size
74
+ assert_kind_of ::Xmlss::Style::Base, subject.styles.first
75
+ assert_equal @xmlss_column.style_id, subject.styles.first.id
71
76
  end
72
77
  end
73
78
 
74
- class XmlssWriter::RowTest < Test::Unit::TestCase
75
- context "when writing a row" do
76
- subject { XmlssWriter::Base.new }
77
- before do
78
- @row = Osheet::Row.new do
79
- style_class "awesome thing"
80
- height 100
81
- autofit true
82
- hidden true
83
- cell {
84
- data 'one hundred'
85
- }
86
- end
87
- subject.workbook = Workbook.new {
88
- style('.awesome') {
89
- font 14
90
- }
91
- style('.thing') {
92
- font :italic
93
- }
94
- style('.awesome.thing') {
95
- font :bold
96
- }
79
+ class XmlssWriter::RowTest < XmlssWriter::ElementsTest
80
+ desc "when writing a row"
81
+ before do
82
+ @row = Osheet::Row.new do
83
+ style_class "awesome thing"
84
+ height 100
85
+ autofit true
86
+ hidden true
87
+ cell {
88
+ data 'one hundred'
97
89
  }
98
- @xmlss_row = subject.send(:row, @row)
99
90
  end
91
+ subject.workbook = Workbook.new {
92
+ style('.awesome') {
93
+ font 14
94
+ }
95
+ style('.thing') {
96
+ font :italic
97
+ }
98
+ style('.awesome.thing') {
99
+ font :bold
100
+ }
101
+ }
102
+ @xmlss_row = subject.send(:row, @row)
103
+ end
100
104
 
101
- should "create an Xmlss row" do
102
- assert_kind_of ::Xmlss::Row, @xmlss_row
103
- assert_equal @row.attributes[:height], @xmlss_row.height
104
- assert_equal @row.attributes[:autofit], @xmlss_row.auto_fit_height
105
- assert_equal @row.attributes[:hidden], @xmlss_row.hidden
106
- assert_equal 1, @xmlss_row.cells.size
107
- end
105
+ should "create an Xmlss row" do
106
+ assert_kind_of ::Xmlss::Row, @xmlss_row
107
+ assert_equal @row.attributes[:height], @xmlss_row.height
108
+ assert_equal @row.attributes[:autofit], @xmlss_row.auto_fit_height
109
+ assert_equal @row.attributes[:hidden], @xmlss_row.hidden
110
+ assert_equal 1, @xmlss_row.cells.size
111
+ end
108
112
 
109
- should "style an Xmlss row" do
110
- assert_equal ".awesome.thing", @xmlss_row.style_id
111
- assert_equal 1, subject.styles.size
112
- assert_kind_of ::Xmlss::Style::Base, subject.styles.first
113
- assert_equal @xmlss_row.style_id, subject.styles.first.id
114
- assert_equal 14, subject.styles.first.font.size
115
- assert_equal true, subject.styles.first.font.bold?
116
- assert_equal true, subject.styles.first.font.italic?
117
- end
113
+ should "style an Xmlss row" do
114
+ assert_equal ".awesome.thing", @xmlss_row.style_id
115
+ assert_equal 1, subject.styles.size
116
+ assert_kind_of ::Xmlss::Style::Base, subject.styles.first
117
+ assert_equal @xmlss_row.style_id, subject.styles.first.id
118
+ assert_equal 14, subject.styles.first.font.size
119
+ assert_equal true, subject.styles.first.font.bold?
120
+ assert_equal true, subject.styles.first.font.italic?
118
121
  end
119
122
  end
120
123
 
121
- class XmlssWriter::CellTest < Test::Unit::TestCase
122
- context "when writing a cell" do
123
- subject { XmlssWriter::Base.new }
124
- before do
125
- @cell = Osheet::Cell.new do
126
- style_class "awesome thing"
127
- data 100
128
- format :number
129
- href 'http://example.com'
130
- rowspan 2
131
- colspan 5
132
- index 3
133
- end
134
- subject.workbook = Workbook.new {
135
- style('.awesome') {
136
- font 14
137
- }
138
- style('.thing') {
139
- font :italic
140
- }
141
- style('.awesome.thing') {
142
- font :bold
143
- }
144
- }
145
- @xmlss_cell = subject.send(:cell, @cell)
124
+ class XmlssWriter::CellTest < XmlssWriter::ElementsTest
125
+ desc "when writing a cell"
126
+ before do
127
+ @cell = Osheet::Cell.new do
128
+ style_class "awesome thing"
129
+ data 100
130
+ format :number
131
+ href 'http://example.com'
132
+ rowspan 2
133
+ colspan 5
134
+ index 3
146
135
  end
136
+ subject.workbook = Workbook.new {
137
+ style('.awesome') {
138
+ font 14
139
+ }
140
+ style('.thing') {
141
+ font :italic
142
+ }
143
+ style('.awesome.thing') {
144
+ font :bold
145
+ }
146
+ }
147
+ @xmlss_cell = subject.send(:cell, @cell)
148
+ end
147
149
 
148
- should "create an Xmlss cell with appropriate data" do
149
- assert_kind_of ::Xmlss::Cell, @xmlss_cell
150
- assert_kind_of ::Xmlss::Data, @xmlss_cell.data
151
- assert_equal @cell.attributes[:data], @xmlss_cell.data.value
152
- assert_equal ::Xmlss::Data.type(:number), @xmlss_cell.data.type
153
- assert_equal 'http://example.com', @xmlss_cell.href
154
- assert_equal 3, @xmlss_cell.index
155
- end
150
+ should "create an Xmlss cell with appropriate data" do
151
+ assert_kind_of ::Xmlss::Cell, @xmlss_cell
152
+ assert_kind_of ::Xmlss::Data, @xmlss_cell.data
153
+ assert_equal @cell.attributes[:data], @xmlss_cell.data.value
154
+ assert_equal ::Xmlss::Data.type(:number), @xmlss_cell.data.type
155
+ assert_equal 'http://example.com', @xmlss_cell.href
156
+ assert_equal 3, @xmlss_cell.index
157
+ end
156
158
 
157
- should "handle rowspan and colspan" do
158
- assert_equal 1, @xmlss_cell.merge_down
159
- assert_equal 4, @xmlss_cell.merge_across
160
- end
159
+ should "handle rowspan and colspan" do
160
+ assert_equal 1, @xmlss_cell.merge_down
161
+ assert_equal 4, @xmlss_cell.merge_across
162
+ end
161
163
 
162
- should "style an Xmlss cell" do
163
- assert_equal ".awesome.thing..number_none_0_nocomma_black", @xmlss_cell.style_id
164
- assert_equal ".awesome.thing..number_none_0_nocomma_black", subject.styles.first.id
165
- assert_equal '0', subject.styles.first.number_format.format
166
- end
164
+ should "style an Xmlss cell" do
165
+ assert_equal ".awesome.thing..number_none_0_nocomma_black", @xmlss_cell.style_id
166
+ assert_equal ".awesome.thing..number_none_0_nocomma_black", subject.styles.first.id
167
+ assert_equal '0', subject.styles.first.number_format.format
167
168
  end
168
169
  end
169
170