caxlsx 3.0.4 → 3.2.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 (294) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +354 -334
  5. data/LICENSE +21 -21
  6. data/README.md +168 -170
  7. data/Rakefile +29 -29
  8. data/examples/generate.rb +15 -15
  9. data/lib/axlsx/content_type/abstract_content_type.rb +32 -32
  10. data/lib/axlsx/content_type/content_type.rb +26 -26
  11. data/lib/axlsx/content_type/default.rb +25 -25
  12. data/lib/axlsx/content_type/override.rb +25 -25
  13. data/lib/axlsx/doc_props/app.rb +235 -235
  14. data/lib/axlsx/doc_props/core.rb +39 -39
  15. data/lib/axlsx/drawing/area_chart.rb +99 -99
  16. data/lib/axlsx/drawing/area_series.rb +110 -110
  17. data/lib/axlsx/drawing/ax_data_source.rb +26 -26
  18. data/lib/axlsx/drawing/axes.rb +61 -61
  19. data/lib/axlsx/drawing/axis.rb +190 -190
  20. data/lib/axlsx/drawing/bar_3D_chart.rb +148 -151
  21. data/lib/axlsx/drawing/bar_chart.rb +138 -143
  22. data/lib/axlsx/drawing/bar_series.rb +97 -80
  23. data/lib/axlsx/drawing/bubble_chart.rb +59 -59
  24. data/lib/axlsx/drawing/bubble_series.rb +63 -63
  25. data/lib/axlsx/drawing/cat_axis.rb +85 -85
  26. data/lib/axlsx/drawing/chart.rb +276 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +90 -90
  28. data/lib/axlsx/drawing/drawing.rb +167 -167
  29. data/lib/axlsx/drawing/graphic_frame.rb +54 -54
  30. data/lib/axlsx/drawing/hyperlink.rb +100 -100
  31. data/lib/axlsx/drawing/line_3D_chart.rb +68 -68
  32. data/lib/axlsx/drawing/line_chart.rb +99 -99
  33. data/lib/axlsx/drawing/line_series.rb +110 -110
  34. data/lib/axlsx/drawing/marker.rb +84 -84
  35. data/lib/axlsx/drawing/num_data.rb +52 -52
  36. data/lib/axlsx/drawing/num_data_source.rb +62 -62
  37. data/lib/axlsx/drawing/num_val.rb +34 -34
  38. data/lib/axlsx/drawing/one_cell_anchor.rb +99 -99
  39. data/lib/axlsx/drawing/pic.rb +211 -211
  40. data/lib/axlsx/drawing/picture_locking.rb +42 -42
  41. data/lib/axlsx/drawing/pie_3D_chart.rb +47 -47
  42. data/lib/axlsx/drawing/pie_series.rb +74 -74
  43. data/lib/axlsx/drawing/scaling.rb +60 -60
  44. data/lib/axlsx/drawing/scatter_chart.rb +74 -74
  45. data/lib/axlsx/drawing/scatter_series.rb +129 -98
  46. data/lib/axlsx/drawing/ser_axis.rb +45 -45
  47. data/lib/axlsx/drawing/series.rb +69 -69
  48. data/lib/axlsx/drawing/series_title.rb +25 -25
  49. data/lib/axlsx/drawing/str_data.rb +42 -42
  50. data/lib/axlsx/drawing/str_val.rb +34 -34
  51. data/lib/axlsx/drawing/title.rb +97 -97
  52. data/lib/axlsx/drawing/two_cell_anchor.rb +97 -97
  53. data/lib/axlsx/drawing/val_axis.rb +37 -37
  54. data/lib/axlsx/drawing/view_3D.rb +115 -115
  55. data/lib/axlsx/drawing/vml_drawing.rb +42 -42
  56. data/lib/axlsx/drawing/vml_shape.rb +66 -66
  57. data/lib/axlsx/package.rb +388 -363
  58. data/lib/axlsx/rels/relationship.rb +130 -130
  59. data/lib/axlsx/rels/relationships.rb +32 -32
  60. data/lib/axlsx/stylesheet/border.rb +73 -71
  61. data/lib/axlsx/stylesheet/border_pr.rb +71 -71
  62. data/lib/axlsx/stylesheet/cell_alignment.rb +132 -132
  63. data/lib/axlsx/stylesheet/cell_protection.rb +41 -41
  64. data/lib/axlsx/stylesheet/cell_style.rb +72 -72
  65. data/lib/axlsx/stylesheet/color.rb +76 -76
  66. data/lib/axlsx/stylesheet/dxf.rb +79 -79
  67. data/lib/axlsx/stylesheet/fill.rb +35 -35
  68. data/lib/axlsx/stylesheet/font.rb +156 -156
  69. data/lib/axlsx/stylesheet/gradient_fill.rb +103 -103
  70. data/lib/axlsx/stylesheet/gradient_stop.rb +37 -37
  71. data/lib/axlsx/stylesheet/num_fmt.rb +86 -86
  72. data/lib/axlsx/stylesheet/pattern_fill.rb +73 -73
  73. data/lib/axlsx/stylesheet/styles.rb +494 -420
  74. data/lib/axlsx/stylesheet/table_style.rb +54 -54
  75. data/lib/axlsx/stylesheet/table_style_element.rb +77 -77
  76. data/lib/axlsx/stylesheet/table_styles.rb +46 -46
  77. data/lib/axlsx/stylesheet/xf.rb +147 -147
  78. data/lib/axlsx/util/accessors.rb +64 -64
  79. data/lib/axlsx/util/constants.rb +410 -401
  80. data/lib/axlsx/util/mime_type_utils.rb +11 -11
  81. data/lib/axlsx/util/options_parser.rb +16 -16
  82. data/lib/axlsx/util/serialized_attributes.rb +89 -89
  83. data/lib/axlsx/util/simple_typed_list.rb +179 -179
  84. data/lib/axlsx/util/storage.rb +146 -146
  85. data/lib/axlsx/util/validators.rb +312 -312
  86. data/lib/axlsx/util/zip_command.rb +73 -73
  87. data/lib/axlsx/version.rb +5 -5
  88. data/lib/axlsx/workbook/defined_name.rb +128 -128
  89. data/lib/axlsx/workbook/defined_names.rb +21 -21
  90. data/lib/axlsx/workbook/shared_strings_table.rb +77 -77
  91. data/lib/axlsx/workbook/workbook.rb +395 -370
  92. data/lib/axlsx/workbook/workbook_view.rb +80 -80
  93. data/lib/axlsx/workbook/workbook_views.rb +22 -22
  94. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -77
  95. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
  96. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +244 -244
  97. data/lib/axlsx/workbook/worksheet/break.rb +35 -35
  98. data/lib/axlsx/workbook/worksheet/cell.rb +506 -505
  99. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
  100. data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
  101. data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -18
  102. data/lib/axlsx/workbook/worksheet/col.rb +145 -145
  103. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
  104. data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
  105. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  106. data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
  107. data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
  108. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
  110. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
  111. data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
  112. data/lib/axlsx/workbook/worksheet/data_validation.rb +246 -246
  113. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
  114. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
  115. data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
  116. data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
  117. data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
  118. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  119. data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
  120. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  121. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
  122. data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
  123. data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
  124. data/lib/axlsx/workbook/worksheet/pivot_table.rb +296 -289
  125. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -66
  126. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -24
  127. data/lib/axlsx/workbook/worksheet/print_options.rb +39 -39
  128. data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -47
  129. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  130. data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -55
  131. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -250
  132. data/lib/axlsx/workbook/worksheet/row.rb +164 -162
  133. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -33
  134. data/lib/axlsx/workbook/worksheet/selection.rb +101 -101
  135. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -29
  136. data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -27
  137. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  138. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -118
  139. data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -213
  140. data/lib/axlsx/workbook/worksheet/table.rb +102 -102
  141. data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -49
  142. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  143. data/lib/axlsx/workbook/worksheet/worksheet.rb +786 -764
  144. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  145. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
  146. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
  147. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  148. data/lib/axlsx.rb +185 -170
  149. data/lib/caxlsx.rb +2 -2
  150. data/lib/schema/dc.xsd +118 -118
  151. data/lib/schema/dcmitype.xsd +51 -51
  152. data/lib/schema/dcterms.xsd +331 -331
  153. data/lib/schema/dml-chartDrawing.xsd +146 -146
  154. data/lib/schema/dml-compatibility.xsd +14 -14
  155. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  156. data/lib/schema/dml-main.xsd +3048 -3048
  157. data/lib/schema/dml-picture.xsd +23 -23
  158. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  159. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  160. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  161. data/lib/schema/shared-bibliography.xsd +144 -144
  162. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  163. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  164. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  165. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  166. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  167. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  168. data/lib/schema/shared-relationshipReference.xsd +25 -25
  169. data/lib/schema/vml-main.xsd +569 -569
  170. data/lib/schema/vml-officeDrawing.xsd +509 -509
  171. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  172. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  173. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  174. data/lib/schema/xml.xsd +116 -116
  175. data/test/benchmark.rb +72 -72
  176. data/test/content_type/tc_content_type.rb +76 -76
  177. data/test/content_type/tc_default.rb +16 -16
  178. data/test/content_type/tc_override.rb +14 -14
  179. data/test/doc_props/tc_app.rb +43 -43
  180. data/test/doc_props/tc_core.rb +42 -42
  181. data/test/drawing/tc_area_chart.rb +39 -39
  182. data/test/drawing/tc_area_series.rb +71 -71
  183. data/test/drawing/tc_axes.rb +7 -7
  184. data/test/drawing/tc_axis.rb +112 -112
  185. data/test/drawing/tc_bar_3D_chart.rb +86 -71
  186. data/test/drawing/tc_bar_chart.rb +86 -71
  187. data/test/drawing/tc_bar_series.rb +46 -37
  188. data/test/drawing/tc_bubble_chart.rb +44 -44
  189. data/test/drawing/tc_bubble_series.rb +21 -21
  190. data/test/drawing/tc_cat_axis.rb +31 -31
  191. data/test/drawing/tc_cat_axis_data.rb +27 -27
  192. data/test/drawing/tc_chart.rb +123 -123
  193. data/test/drawing/tc_d_lbls.rb +57 -57
  194. data/test/drawing/tc_data_source.rb +23 -23
  195. data/test/drawing/tc_drawing.rb +80 -80
  196. data/test/drawing/tc_graphic_frame.rb +27 -27
  197. data/test/drawing/tc_hyperlink.rb +64 -64
  198. data/test/drawing/tc_line_3d_chart.rb +47 -47
  199. data/test/drawing/tc_line_chart.rb +39 -39
  200. data/test/drawing/tc_line_series.rb +71 -71
  201. data/test/drawing/tc_marker.rb +44 -44
  202. data/test/drawing/tc_named_axis_data.rb +27 -27
  203. data/test/drawing/tc_num_data.rb +31 -31
  204. data/test/drawing/tc_num_val.rb +29 -29
  205. data/test/drawing/tc_one_cell_anchor.rb +66 -66
  206. data/test/drawing/tc_pic.rb +103 -103
  207. data/test/drawing/tc_picture_locking.rb +72 -72
  208. data/test/drawing/tc_pie_3D_chart.rb +28 -28
  209. data/test/drawing/tc_pie_series.rb +33 -33
  210. data/test/drawing/tc_scaling.rb +36 -36
  211. data/test/drawing/tc_scatter_chart.rb +48 -48
  212. data/test/drawing/tc_scatter_series.rb +74 -56
  213. data/test/drawing/tc_ser_axis.rb +31 -31
  214. data/test/drawing/tc_series.rb +23 -23
  215. data/test/drawing/tc_series_title.rb +54 -54
  216. data/test/drawing/tc_str_data.rb +18 -18
  217. data/test/drawing/tc_str_val.rb +30 -30
  218. data/test/drawing/tc_title.rb +70 -70
  219. data/test/drawing/tc_two_cell_anchor.rb +36 -36
  220. data/test/drawing/tc_val_axis.rb +24 -24
  221. data/test/drawing/tc_view_3D.rb +54 -54
  222. data/test/drawing/tc_vml_drawing.rb +25 -25
  223. data/test/drawing/tc_vml_shape.rb +106 -106
  224. data/test/profile.rb +24 -24
  225. data/test/rels/tc_relationship.rb +52 -52
  226. data/test/rels/tc_relationships.rb +37 -37
  227. data/test/stylesheet/tc_border.rb +37 -37
  228. data/test/stylesheet/tc_border_pr.rb +32 -32
  229. data/test/stylesheet/tc_cell_alignment.rb +81 -81
  230. data/test/stylesheet/tc_cell_protection.rb +29 -29
  231. data/test/stylesheet/tc_cell_style.rb +57 -57
  232. data/test/stylesheet/tc_color.rb +43 -43
  233. data/test/stylesheet/tc_dxf.rb +81 -81
  234. data/test/stylesheet/tc_fill.rb +18 -18
  235. data/test/stylesheet/tc_font.rb +133 -133
  236. data/test/stylesheet/tc_gradient_fill.rb +72 -72
  237. data/test/stylesheet/tc_gradient_stop.rb +31 -31
  238. data/test/stylesheet/tc_num_fmt.rb +30 -30
  239. data/test/stylesheet/tc_pattern_fill.rb +43 -43
  240. data/test/stylesheet/tc_styles.rb +309 -261
  241. data/test/stylesheet/tc_table_style.rb +44 -44
  242. data/test/stylesheet/tc_table_style_element.rb +45 -45
  243. data/test/stylesheet/tc_table_styles.rb +29 -29
  244. data/test/stylesheet/tc_xf.rb +120 -120
  245. data/test/tc_axlsx.rb +109 -109
  246. data/test/tc_helper.rb +10 -12
  247. data/test/tc_package.rb +317 -264
  248. data/test/util/tc_mime_type_utils.rb +13 -13
  249. data/test/util/tc_serialized_attributes.rb +19 -19
  250. data/test/util/tc_simple_typed_list.rb +77 -77
  251. data/test/util/tc_validators.rb +210 -210
  252. data/test/workbook/tc_defined_name.rb +49 -49
  253. data/test/workbook/tc_shared_strings_table.rb +59 -59
  254. data/test/workbook/tc_workbook.rb +165 -160
  255. data/test/workbook/tc_workbook_view.rb +50 -50
  256. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +38 -38
  257. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +76 -76
  258. data/test/workbook/worksheet/auto_filter/tc_filters.rb +50 -50
  259. data/test/workbook/worksheet/tc_break.rb +49 -49
  260. data/test/workbook/worksheet/tc_cell.rb +465 -453
  261. data/test/workbook/worksheet/tc_cfvo.rb +31 -31
  262. data/test/workbook/worksheet/tc_col.rb +93 -93
  263. data/test/workbook/worksheet/tc_color_scale.rb +58 -58
  264. data/test/workbook/worksheet/tc_comment.rb +72 -72
  265. data/test/workbook/worksheet/tc_comments.rb +57 -57
  266. data/test/workbook/worksheet/tc_conditional_formatting.rb +224 -224
  267. data/test/workbook/worksheet/tc_data_bar.rb +46 -46
  268. data/test/workbook/worksheet/tc_data_validation.rb +265 -265
  269. data/test/workbook/worksheet/tc_date_time_converter.rb +124 -124
  270. data/test/workbook/worksheet/tc_header_footer.rb +151 -151
  271. data/test/workbook/worksheet/tc_icon_set.rb +45 -45
  272. data/test/workbook/worksheet/tc_outline_pr.rb +19 -19
  273. data/test/workbook/worksheet/tc_page_margins.rb +97 -97
  274. data/test/workbook/worksheet/tc_page_set_up_pr.rb +15 -15
  275. data/test/workbook/worksheet/tc_page_setup.rb +143 -143
  276. data/test/workbook/worksheet/tc_pane.rb +54 -54
  277. data/test/workbook/worksheet/tc_pivot_table.rb +180 -135
  278. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +62 -54
  279. data/test/workbook/worksheet/tc_print_options.rb +72 -72
  280. data/test/workbook/worksheet/tc_protected_range.rb +17 -17
  281. data/test/workbook/worksheet/tc_rich_text.rb +44 -44
  282. data/test/workbook/worksheet/tc_rich_text_run.rb +173 -173
  283. data/test/workbook/worksheet/tc_row.rb +160 -139
  284. data/test/workbook/worksheet/tc_selection.rb +55 -55
  285. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +18 -18
  286. data/test/workbook/worksheet/tc_sheet_format_pr.rb +88 -88
  287. data/test/workbook/worksheet/tc_sheet_pr.rb +49 -49
  288. data/test/workbook/worksheet/tc_sheet_protection.rb +117 -117
  289. data/test/workbook/worksheet/tc_sheet_view.rb +214 -214
  290. data/test/workbook/worksheet/tc_table.rb +77 -67
  291. data/test/workbook/worksheet/tc_table_style_info.rb +53 -53
  292. data/test/workbook/worksheet/tc_worksheet.rb +632 -601
  293. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -55
  294. metadata +11 -11
@@ -1,44 +1,44 @@
1
- require 'tc_helper.rb'
2
-
3
- class RichText < Test::Unit::TestCase
4
- def setup
5
- p = Axlsx::Package.new
6
- @ws = p.workbook.add_worksheet :name => "hmmmz"
7
- p.workbook.styles.add_style :sz => 20
8
- @rt = Axlsx::RichText.new
9
- b = true
10
- (0..26).each do |r|
11
- @rt.add_run "run #{r}, ", :b => (b=!b), :i => !b
12
- end
13
- @row = @ws.add_row [@rt]
14
- @c = @row.first
15
- end
16
-
17
- def test_initialize
18
- assert_equal(@c.value, @rt)
19
- rt_direct = Axlsx::RichText.new('hi', :i => true)
20
- rt_indirect = Axlsx::RichText.new()
21
- rt_indirect.add_run('hi', :i => true)
22
- assert_equal(rt_direct.runs.length, 1)
23
- assert_equal(rt_indirect.runs.length, 1)
24
- row = @ws.add_row [rt_direct, rt_indirect]
25
- assert_equal(row[0].to_xml_string(0,0), row[1].to_xml_string(0,0))
26
- end
27
-
28
- def test_textruns
29
- runs = @rt.runs
30
- assert_equal(runs.length, 27)
31
- assert_equal(runs.first.b, false)
32
- assert_equal(runs.first.i, true)
33
- assert_equal(runs[1].b, true)
34
- assert_equal(runs[1].i, false)
35
- end
36
-
37
- def test_implicit_richtext
38
- rt = Axlsx::RichText.new('a', :b => true)
39
- row_rt = @ws.add_row [rt]
40
- row_imp = @ws.add_row ['a']
41
- row_imp[0].b = true
42
- assert_equal(row_rt[0].to_xml_string(0,0), row_imp[0].to_xml_string(0,0))
43
- end
44
- end
1
+ require 'tc_helper.rb'
2
+
3
+ class RichText < Test::Unit::TestCase
4
+ def setup
5
+ p = Axlsx::Package.new
6
+ @ws = p.workbook.add_worksheet :name => "hmmmz"
7
+ p.workbook.styles.add_style :sz => 20
8
+ @rt = Axlsx::RichText.new
9
+ b = true
10
+ (0..26).each do |r|
11
+ @rt.add_run "run #{r}, ", :b => (b=!b), :i => !b
12
+ end
13
+ @row = @ws.add_row [@rt]
14
+ @c = @row.first
15
+ end
16
+
17
+ def test_initialize
18
+ assert_equal(@c.value, @rt)
19
+ rt_direct = Axlsx::RichText.new('hi', :i => true)
20
+ rt_indirect = Axlsx::RichText.new()
21
+ rt_indirect.add_run('hi', :i => true)
22
+ assert_equal(rt_direct.runs.length, 1)
23
+ assert_equal(rt_indirect.runs.length, 1)
24
+ row = @ws.add_row [rt_direct, rt_indirect]
25
+ assert_equal(row[0].to_xml_string(0,0), row[1].to_xml_string(0,0))
26
+ end
27
+
28
+ def test_textruns
29
+ runs = @rt.runs
30
+ assert_equal(runs.length, 27)
31
+ assert_equal(runs.first.b, false)
32
+ assert_equal(runs.first.i, true)
33
+ assert_equal(runs[1].b, true)
34
+ assert_equal(runs[1].i, false)
35
+ end
36
+
37
+ def test_implicit_richtext
38
+ rt = Axlsx::RichText.new('a', :b => true)
39
+ row_rt = @ws.add_row [rt]
40
+ row_imp = @ws.add_row ['a']
41
+ row_imp[0].b = true
42
+ assert_equal(row_rt[0].to_xml_string(0,0), row_imp[0].to_xml_string(0,0))
43
+ end
44
+ end
@@ -1,173 +1,173 @@
1
- require 'tc_helper.rb'
2
-
3
- class RichTextRun < Test::Unit::TestCase
4
- def setup
5
- @p = Axlsx::Package.new
6
- @ws = @p.workbook.add_worksheet :name => "hmmmz"
7
- @p.workbook.styles.add_style :sz => 20
8
- @rtr = Axlsx::RichTextRun.new('hihihi', b: true, i: false)
9
- @rtr2 = Axlsx::RichTextRun.new('hihi2hi2', b: false, i: true)
10
- @rt = Axlsx::RichText.new
11
- @rt.runs << @rtr
12
- @rt.runs << @rtr2
13
- @row = @ws.add_row [@rt]
14
- @c = @row.first
15
- end
16
-
17
- def test_initialize
18
- assert_equal(@rtr.value, 'hihihi')
19
- assert_equal(@rtr.b, true)
20
- assert_equal(@rtr.i, false)
21
- end
22
-
23
- def test_font_size_with_custom_style_and_no_sz
24
- @c.style = @c.row.worksheet.workbook.styles.add_style :bg_color => 'FF00FF'
25
- sz = @rtr.send(:font_size)
26
- assert_equal(sz, @c.row.worksheet.workbook.styles.fonts.first.sz * 1.5)
27
- sz = @rtr2.send(:font_size)
28
- assert_equal(sz, @c.row.worksheet.workbook.styles.fonts.first.sz)
29
- end
30
-
31
- def test_font_size_with_bolding
32
- @c.style = @c.row.worksheet.workbook.styles.add_style :b => true
33
- assert_equal(@c.row.worksheet.workbook.styles.fonts.first.sz * 1.5, @rtr.send(:font_size))
34
- assert_equal(@c.row.worksheet.workbook.styles.fonts.first.sz * 1.5, @rtr2.send(:font_size)) # is this the correct behaviour?
35
- end
36
-
37
- def test_font_size_with_custom_sz
38
- @c.style = @c.row.worksheet.workbook.styles.add_style :sz => 52
39
- sz = @rtr.send(:font_size)
40
- assert_equal(sz, 52 * 1.5)
41
- sz2 = @rtr2.send(:font_size)
42
- assert_equal(sz2, 52)
43
- end
44
-
45
- def test_rtr_with_sz
46
- @rtr.sz = 25
47
- assert_equal(25, @rtr.send(:font_size))
48
- end
49
-
50
- def test_color
51
- assert_raise(ArgumentError) { @rtr.color = -1.1 }
52
- assert_nothing_raised { @rtr.color = "FF00FF00" }
53
- assert_equal(@rtr.color.rgb, "FF00FF00")
54
- end
55
-
56
- def test_scheme
57
- assert_raise(ArgumentError) { @rtr.scheme = -1.1 }
58
- assert_nothing_raised { @rtr.scheme = :major }
59
- assert_equal(@rtr.scheme, :major)
60
- end
61
-
62
- def test_vertAlign
63
- assert_raise(ArgumentError) { @rtr.vertAlign = -1.1 }
64
- assert_nothing_raised { @rtr.vertAlign = :baseline }
65
- assert_equal(@rtr.vertAlign, :baseline)
66
- end
67
-
68
- def test_sz
69
- assert_raise(ArgumentError) { @rtr.sz = -1.1 }
70
- assert_nothing_raised { @rtr.sz = 12 }
71
- assert_equal(@rtr.sz, 12)
72
- end
73
-
74
- def test_extend
75
- assert_raise(ArgumentError) { @rtr.extend = -1.1 }
76
- assert_nothing_raised { @rtr.extend = false }
77
- assert_equal(@rtr.extend, false)
78
- end
79
-
80
- def test_condense
81
- assert_raise(ArgumentError) { @rtr.condense = -1.1 }
82
- assert_nothing_raised { @rtr.condense = false }
83
- assert_equal(@rtr.condense, false)
84
- end
85
-
86
- def test_shadow
87
- assert_raise(ArgumentError) { @rtr.shadow = -1.1 }
88
- assert_nothing_raised { @rtr.shadow = false }
89
- assert_equal(@rtr.shadow, false)
90
- end
91
-
92
- def test_outline
93
- assert_raise(ArgumentError) { @rtr.outline = -1.1 }
94
- assert_nothing_raised { @rtr.outline = false }
95
- assert_equal(@rtr.outline, false)
96
- end
97
-
98
- def test_strike
99
- assert_raise(ArgumentError) { @rtr.strike = -1.1 }
100
- assert_nothing_raised { @rtr.strike = false }
101
- assert_equal(@rtr.strike, false)
102
- end
103
-
104
- def test_u
105
- @c.type = :string
106
- assert_raise(ArgumentError) { @c.u = -1.1 }
107
- assert_nothing_raised { @c.u = :single }
108
- assert_equal(@c.u, :single)
109
- doc = Nokogiri::XML(@c.to_xml_string(1,1))
110
- assert(doc.xpath('//u[@val="single"]'))
111
- end
112
-
113
- def test_i
114
- assert_raise(ArgumentError) { @c.i = -1.1 }
115
- assert_nothing_raised { @c.i = false }
116
- assert_equal(@c.i, false)
117
- end
118
-
119
- def test_rFont
120
- assert_raise(ArgumentError) { @c.font_name = -1.1 }
121
- assert_nothing_raised { @c.font_name = "Arial" }
122
- assert_equal(@c.font_name, "Arial")
123
- end
124
-
125
- def test_charset
126
- assert_raise(ArgumentError) { @c.charset = -1.1 }
127
- assert_nothing_raised { @c.charset = 1 }
128
- assert_equal(@c.charset, 1)
129
- end
130
-
131
- def test_family
132
- assert_raise(ArgumentError) { @rtr.family = 0 }
133
- assert_nothing_raised { @rtr.family = 1 }
134
- assert_equal(@rtr.family, 1)
135
- end
136
-
137
- def test_b
138
- assert_raise(ArgumentError) { @c.b = -1.1 }
139
- assert_nothing_raised { @c.b = false }
140
- assert_equal(@c.b, false)
141
- end
142
-
143
- def test_multiline_autowidth
144
- wrap = @p.workbook.styles.add_style({:alignment => {:wrap_text => true}})
145
- awtr = Axlsx::RichTextRun.new('I\'m bold' + "\n", :b => true)
146
- rt = Axlsx::RichText.new
147
- rt.runs << awtr
148
- @ws.add_row [rt], :style => wrap
149
- ar = [0]
150
- awtr.autowidth(ar)
151
- assert_equal(2, ar.length)
152
- assert_equal(13.2, ar[0])
153
- assert_equal(0, ar[1])
154
- end
155
-
156
- def test_to_xml
157
- schema = Nokogiri::XML::Schema(File.open(Axlsx::SML_XSD))
158
- doc = Nokogiri::XML(@ws.to_xml_string)
159
- errors = []
160
- schema.validate(doc).each do |error|
161
- puts error.message
162
- errors.push error
163
- end
164
- assert(errors.empty?, "error free validation")
165
-
166
- assert(doc.xpath('//rPr/b[@val=1]'))
167
- assert(doc.xpath('//rPr/i[@val=0]'))
168
- assert(doc.xpath('//rPr/b[@val=0]'))
169
- assert(doc.xpath('//rPr/i[@val=1]'))
170
- assert(doc.xpath('//is//t[contains(text(), "hihihi")]'))
171
- assert(doc.xpath('//is//t[contains(text(), "hihi2hi2")]'))
172
- end
173
- end
1
+ require 'tc_helper.rb'
2
+
3
+ class RichTextRun < Test::Unit::TestCase
4
+ def setup
5
+ @p = Axlsx::Package.new
6
+ @ws = @p.workbook.add_worksheet :name => "hmmmz"
7
+ @p.workbook.styles.add_style :sz => 20
8
+ @rtr = Axlsx::RichTextRun.new('hihihi', b: true, i: false)
9
+ @rtr2 = Axlsx::RichTextRun.new('hihi2hi2', b: false, i: true)
10
+ @rt = Axlsx::RichText.new
11
+ @rt.runs << @rtr
12
+ @rt.runs << @rtr2
13
+ @row = @ws.add_row [@rt]
14
+ @c = @row.first
15
+ end
16
+
17
+ def test_initialize
18
+ assert_equal(@rtr.value, 'hihihi')
19
+ assert_equal(@rtr.b, true)
20
+ assert_equal(@rtr.i, false)
21
+ end
22
+
23
+ def test_font_size_with_custom_style_and_no_sz
24
+ @c.style = @c.row.worksheet.workbook.styles.add_style :bg_color => 'FF00FF'
25
+ sz = @rtr.send(:font_size)
26
+ assert_equal(sz, @c.row.worksheet.workbook.styles.fonts.first.sz * 1.5)
27
+ sz = @rtr2.send(:font_size)
28
+ assert_equal(sz, @c.row.worksheet.workbook.styles.fonts.first.sz)
29
+ end
30
+
31
+ def test_font_size_with_bolding
32
+ @c.style = @c.row.worksheet.workbook.styles.add_style :b => true
33
+ assert_equal(@c.row.worksheet.workbook.styles.fonts.first.sz * 1.5, @rtr.send(:font_size))
34
+ assert_equal(@c.row.worksheet.workbook.styles.fonts.first.sz * 1.5, @rtr2.send(:font_size)) # is this the correct behaviour?
35
+ end
36
+
37
+ def test_font_size_with_custom_sz
38
+ @c.style = @c.row.worksheet.workbook.styles.add_style :sz => 52
39
+ sz = @rtr.send(:font_size)
40
+ assert_equal(sz, 52 * 1.5)
41
+ sz2 = @rtr2.send(:font_size)
42
+ assert_equal(sz2, 52)
43
+ end
44
+
45
+ def test_rtr_with_sz
46
+ @rtr.sz = 25
47
+ assert_equal(25, @rtr.send(:font_size))
48
+ end
49
+
50
+ def test_color
51
+ assert_raise(ArgumentError) { @rtr.color = -1.1 }
52
+ assert_nothing_raised { @rtr.color = "FF00FF00" }
53
+ assert_equal(@rtr.color.rgb, "FF00FF00")
54
+ end
55
+
56
+ def test_scheme
57
+ assert_raise(ArgumentError) { @rtr.scheme = -1.1 }
58
+ assert_nothing_raised { @rtr.scheme = :major }
59
+ assert_equal(@rtr.scheme, :major)
60
+ end
61
+
62
+ def test_vertAlign
63
+ assert_raise(ArgumentError) { @rtr.vertAlign = -1.1 }
64
+ assert_nothing_raised { @rtr.vertAlign = :baseline }
65
+ assert_equal(@rtr.vertAlign, :baseline)
66
+ end
67
+
68
+ def test_sz
69
+ assert_raise(ArgumentError) { @rtr.sz = -1.1 }
70
+ assert_nothing_raised { @rtr.sz = 12 }
71
+ assert_equal(@rtr.sz, 12)
72
+ end
73
+
74
+ def test_extend
75
+ assert_raise(ArgumentError) { @rtr.extend = -1.1 }
76
+ assert_nothing_raised { @rtr.extend = false }
77
+ assert_equal(@rtr.extend, false)
78
+ end
79
+
80
+ def test_condense
81
+ assert_raise(ArgumentError) { @rtr.condense = -1.1 }
82
+ assert_nothing_raised { @rtr.condense = false }
83
+ assert_equal(@rtr.condense, false)
84
+ end
85
+
86
+ def test_shadow
87
+ assert_raise(ArgumentError) { @rtr.shadow = -1.1 }
88
+ assert_nothing_raised { @rtr.shadow = false }
89
+ assert_equal(@rtr.shadow, false)
90
+ end
91
+
92
+ def test_outline
93
+ assert_raise(ArgumentError) { @rtr.outline = -1.1 }
94
+ assert_nothing_raised { @rtr.outline = false }
95
+ assert_equal(@rtr.outline, false)
96
+ end
97
+
98
+ def test_strike
99
+ assert_raise(ArgumentError) { @rtr.strike = -1.1 }
100
+ assert_nothing_raised { @rtr.strike = false }
101
+ assert_equal(@rtr.strike, false)
102
+ end
103
+
104
+ def test_u
105
+ @c.type = :string
106
+ assert_raise(ArgumentError) { @c.u = -1.1 }
107
+ assert_nothing_raised { @c.u = :single }
108
+ assert_equal(@c.u, :single)
109
+ doc = Nokogiri::XML(@c.to_xml_string(1,1))
110
+ assert(doc.xpath('//u[@val="single"]'))
111
+ end
112
+
113
+ def test_i
114
+ assert_raise(ArgumentError) { @c.i = -1.1 }
115
+ assert_nothing_raised { @c.i = false }
116
+ assert_equal(@c.i, false)
117
+ end
118
+
119
+ def test_rFont
120
+ assert_raise(ArgumentError) { @c.font_name = -1.1 }
121
+ assert_nothing_raised { @c.font_name = "Arial" }
122
+ assert_equal(@c.font_name, "Arial")
123
+ end
124
+
125
+ def test_charset
126
+ assert_raise(ArgumentError) { @c.charset = -1.1 }
127
+ assert_nothing_raised { @c.charset = 1 }
128
+ assert_equal(@c.charset, 1)
129
+ end
130
+
131
+ def test_family
132
+ assert_raise(ArgumentError) { @rtr.family = 0 }
133
+ assert_nothing_raised { @rtr.family = 1 }
134
+ assert_equal(@rtr.family, 1)
135
+ end
136
+
137
+ def test_b
138
+ assert_raise(ArgumentError) { @c.b = -1.1 }
139
+ assert_nothing_raised { @c.b = false }
140
+ assert_equal(@c.b, false)
141
+ end
142
+
143
+ def test_multiline_autowidth
144
+ wrap = @p.workbook.styles.add_style({:alignment => {:wrap_text => true}})
145
+ awtr = Axlsx::RichTextRun.new('I\'m bold' + "\n", :b => true)
146
+ rt = Axlsx::RichText.new
147
+ rt.runs << awtr
148
+ @ws.add_row [rt], :style => wrap
149
+ ar = [0]
150
+ awtr.autowidth(ar)
151
+ assert_equal(2, ar.length)
152
+ assert_equal(13.2, ar[0])
153
+ assert_equal(0, ar[1])
154
+ end
155
+
156
+ def test_to_xml
157
+ schema = Nokogiri::XML::Schema(File.open(Axlsx::SML_XSD))
158
+ doc = Nokogiri::XML(@ws.to_xml_string)
159
+ errors = []
160
+ schema.validate(doc).each do |error|
161
+ puts error.message
162
+ errors.push error
163
+ end
164
+ assert(errors.empty?, "error free validation")
165
+
166
+ assert(doc.xpath('//rPr/b[@val=1]'))
167
+ assert(doc.xpath('//rPr/i[@val=0]'))
168
+ assert(doc.xpath('//rPr/b[@val=0]'))
169
+ assert(doc.xpath('//rPr/i[@val=1]'))
170
+ assert(doc.xpath('//is//t[contains(text(), "hihihi")]'))
171
+ assert(doc.xpath('//is//t[contains(text(), "hihi2hi2")]'))
172
+ end
173
+ end