rubyXL 3.4.14 → 3.4.33

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 (462) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +2 -1
  3. data/.rubocop.yml +124 -0
  4. data/CHANGELOG.md +12 -0
  5. data/Gemfile +10 -8
  6. data/README.rdoc +32 -13
  7. data/Rakefile +26 -27
  8. data/VERSION +1 -1
  9. data/lib/rubyXL/cell.rb +2 -4
  10. data/lib/rubyXL/convenience_methods/cell.rb +36 -32
  11. data/lib/rubyXL/convenience_methods/color.rb +9 -13
  12. data/lib/rubyXL/convenience_methods/workbook.rb +10 -9
  13. data/lib/rubyXL/convenience_methods/worksheet.rb +103 -7
  14. data/lib/rubyXL/objects/border.rb +0 -3
  15. data/lib/rubyXL/objects/calculation_chain.rb +2 -2
  16. data/lib/rubyXL/objects/cell_style.rb +1 -3
  17. data/lib/rubyXL/objects/chartsheet.rb +6 -10
  18. data/lib/rubyXL/objects/color.rb +2 -4
  19. data/lib/rubyXL/objects/column_range.rb +16 -15
  20. data/lib/rubyXL/objects/comments.rb +1 -4
  21. data/lib/rubyXL/objects/connection.rb +11 -11
  22. data/lib/rubyXL/objects/container_nodes.rb +1 -5
  23. data/lib/rubyXL/objects/content_types.rb +3 -6
  24. data/lib/rubyXL/objects/data_validation.rb +2 -2
  25. data/lib/rubyXL/objects/document_properties.rb +10 -13
  26. data/lib/rubyXL/objects/extensions.rb +0 -2
  27. data/lib/rubyXL/objects/external_links.rb +37 -7
  28. data/lib/rubyXL/objects/fill.rb +2 -5
  29. data/lib/rubyXL/objects/filters.rb +5 -7
  30. data/lib/rubyXL/objects/font.rb +2 -4
  31. data/lib/rubyXL/objects/formula.rb +3 -5
  32. data/lib/rubyXL/objects/ooxml_object.rb +34 -32
  33. data/lib/rubyXL/objects/query_table.rb +7 -5
  34. data/lib/rubyXL/objects/reference.rb +26 -17
  35. data/lib/rubyXL/objects/relationships.rb +7 -12
  36. data/lib/rubyXL/objects/root.rb +0 -2
  37. data/lib/rubyXL/objects/shared_strings.rb +4 -7
  38. data/lib/rubyXL/objects/sheet_common.rb +1 -3
  39. data/lib/rubyXL/objects/sheet_data.rb +12 -14
  40. data/lib/rubyXL/objects/simple_types.rb +3 -1
  41. data/lib/rubyXL/objects/storage.rb +57 -51
  42. data/lib/rubyXL/objects/stylesheet.rb +9 -17
  43. data/lib/rubyXL/objects/text.rb +6 -8
  44. data/lib/rubyXL/objects/theme.rb +19 -24
  45. data/lib/rubyXL/objects/workbook.rb +43 -38
  46. data/lib/rubyXL/objects/worksheet.rb +35 -31
  47. data/lib/rubyXL/parser.rb +1 -3
  48. data/lib/rubyXL/worksheet.rb +86 -79
  49. data/lib/rubyXL.rb +0 -1
  50. data/rdoc/README_rdoc.html +139 -73
  51. data/rdoc/RubyXL/AExtension.html +24 -60
  52. data/rdoc/RubyXL/AExtensionStorageArea.html +6 -13
  53. data/rdoc/RubyXL/ActiveX.html +19 -46
  54. data/rdoc/RubyXL/ActiveXBinary.html +6 -18
  55. data/rdoc/RubyXL/AdjustHandleList.html +6 -13
  56. data/rdoc/RubyXL/Alignment.html +6 -13
  57. data/rdoc/RubyXL/AlternateContent.html +6 -13
  58. data/rdoc/RubyXL/AlternateUrls.html +99 -0
  59. data/rdoc/RubyXL/Authors.html +6 -13
  60. data/rdoc/RubyXL/AutoFilter.html +6 -13
  61. data/rdoc/RubyXL/AutoFilterColumn.html +6 -13
  62. data/rdoc/RubyXL/BinaryImageFile.html +6 -21
  63. data/rdoc/RubyXL/BodyProperties.html +6 -13
  64. data/rdoc/RubyXL/BooleanNode.html +6 -13
  65. data/rdoc/RubyXL/BooleanValue.html +6 -13
  66. data/rdoc/RubyXL/Border.html +37 -89
  67. data/rdoc/RubyXL/BorderEdge.html +23 -53
  68. data/rdoc/RubyXL/Borders.html +16 -35
  69. data/rdoc/RubyXL/Break.html +6 -13
  70. data/rdoc/RubyXL/BreakList.html +6 -13
  71. data/rdoc/RubyXL/CT_AdjPoint2D.html +6 -13
  72. data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +6 -13
  73. data/rdoc/RubyXL/CT_AlphaModulateEffect.html +6 -13
  74. data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +6 -13
  75. data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +6 -13
  76. data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +6 -13
  77. data/rdoc/RubyXL/CT_Backdrop.html +6 -13
  78. data/rdoc/RubyXL/CT_Bevel.html +6 -13
  79. data/rdoc/RubyXL/CT_BiLevelEffect.html +6 -13
  80. data/rdoc/RubyXL/CT_BlendEffect.html +6 -13
  81. data/rdoc/RubyXL/CT_Blip.html +6 -13
  82. data/rdoc/RubyXL/CT_BlipFillProperties.html +6 -13
  83. data/rdoc/RubyXL/CT_BlurEffect.html +6 -13
  84. data/rdoc/RubyXL/CT_Camera.html +6 -13
  85. data/rdoc/RubyXL/CT_Color.html +6 -13
  86. data/rdoc/RubyXL/CT_ColorChangeEffect.html +6 -13
  87. data/rdoc/RubyXL/CT_ColorMapping.html +6 -13
  88. data/rdoc/RubyXL/CT_ColorScheme.html +6 -13
  89. data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +6 -13
  90. data/rdoc/RubyXL/CT_ConnectionSite.html +6 -13
  91. data/rdoc/RubyXL/CT_ConnectionSiteList.html +6 -13
  92. data/rdoc/RubyXL/CT_DashStop.html +6 -13
  93. data/rdoc/RubyXL/CT_DashStopList.html +6 -13
  94. data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +6 -13
  95. data/rdoc/RubyXL/CT_DuotoneEffect.html +6 -13
  96. data/rdoc/RubyXL/CT_EffectContainer.html +6 -13
  97. data/rdoc/RubyXL/CT_EffectList.html +6 -13
  98. data/rdoc/RubyXL/CT_EffectReference.html +6 -13
  99. data/rdoc/RubyXL/CT_EffectStyleItem.html +6 -13
  100. data/rdoc/RubyXL/CT_EffectStyleList.html +6 -13
  101. data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +6 -13
  102. data/rdoc/RubyXL/CT_FillEffect.html +6 -13
  103. data/rdoc/RubyXL/CT_FillOverlayEffect.html +6 -13
  104. data/rdoc/RubyXL/CT_FillStyleList.html +6 -13
  105. data/rdoc/RubyXL/CT_FlatText.html +6 -13
  106. data/rdoc/RubyXL/CT_FontCollection.html +6 -13
  107. data/rdoc/RubyXL/CT_FontReference.html +6 -13
  108. data/rdoc/RubyXL/CT_GeomGuideList.html +6 -13
  109. data/rdoc/RubyXL/CT_GlowEffect.html +6 -13
  110. data/rdoc/RubyXL/CT_GradientFillProperties.html +6 -13
  111. data/rdoc/RubyXL/CT_GradientStop.html +6 -13
  112. data/rdoc/RubyXL/CT_GradientStopList.html +6 -13
  113. data/rdoc/RubyXL/CT_HSLEffect.html +6 -13
  114. data/rdoc/RubyXL/CT_HslColor.html +6 -13
  115. data/rdoc/RubyXL/CT_Hyperlink.html +6 -13
  116. data/rdoc/RubyXL/CT_InnerShadowEffect.html +6 -13
  117. data/rdoc/RubyXL/CT_LightRig.html +6 -13
  118. data/rdoc/RubyXL/CT_LineEndProperties.html +6 -13
  119. data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +6 -13
  120. data/rdoc/RubyXL/CT_LineProperties.html +6 -13
  121. data/rdoc/RubyXL/CT_LineStyleList.html +6 -13
  122. data/rdoc/RubyXL/CT_LinearShadeProperties.html +6 -13
  123. data/rdoc/RubyXL/CT_LuminanceEffect.html +6 -13
  124. data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +6 -13
  125. data/rdoc/RubyXL/CT_OuterShadowEffect.html +6 -13
  126. data/rdoc/RubyXL/CT_Path2D.html +6 -13
  127. data/rdoc/RubyXL/CT_Path2DArcTo.html +6 -13
  128. data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +6 -13
  129. data/rdoc/RubyXL/CT_Path2DList.html +6 -13
  130. data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +6 -13
  131. data/rdoc/RubyXL/CT_Path2DTo.html +6 -13
  132. data/rdoc/RubyXL/CT_PathShadeProperties.html +6 -13
  133. data/rdoc/RubyXL/CT_PatternFillProperties.html +6 -13
  134. data/rdoc/RubyXL/CT_Point3D.html +6 -13
  135. data/rdoc/RubyXL/CT_PolarAdjustHandle.html +6 -13
  136. data/rdoc/RubyXL/CT_PresetColor.html +6 -13
  137. data/rdoc/RubyXL/CT_PresetLineDashProperties.html +6 -13
  138. data/rdoc/RubyXL/CT_PresetShadowEffect.html +6 -13
  139. data/rdoc/RubyXL/CT_PresetTextShape.html +6 -13
  140. data/rdoc/RubyXL/CT_ReflectionEffect.html +6 -13
  141. data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +6 -13
  142. data/rdoc/RubyXL/CT_RelativeRect.html +6 -13
  143. data/rdoc/RubyXL/CT_SRgbColor.html +6 -13
  144. data/rdoc/RubyXL/CT_ScRgbColor.html +6 -13
  145. data/rdoc/RubyXL/CT_Scene3D.html +6 -13
  146. data/rdoc/RubyXL/CT_SchemeColor.html +6 -13
  147. data/rdoc/RubyXL/CT_Shape3D.html +6 -13
  148. data/rdoc/RubyXL/CT_ShapeStyle.html +6 -13
  149. data/rdoc/RubyXL/CT_SoftEdgesEffect.html +6 -13
  150. data/rdoc/RubyXL/CT_SphereCoords.html +6 -13
  151. data/rdoc/RubyXL/CT_StretchInfoProperties.html +6 -13
  152. data/rdoc/RubyXL/CT_StyleMatrix.html +6 -13
  153. data/rdoc/RubyXL/CT_StyleMatrixReference.html +6 -13
  154. data/rdoc/RubyXL/CT_SupplementalFont.html +6 -13
  155. data/rdoc/RubyXL/CT_SystemColor.html +6 -13
  156. data/rdoc/RubyXL/CT_TextAutonumberBullet.html +6 -13
  157. data/rdoc/RubyXL/CT_TextBlipBullet.html +6 -13
  158. data/rdoc/RubyXL/CT_TextCharBullet.html +6 -13
  159. data/rdoc/RubyXL/CT_TextCharacterProperties.html +6 -13
  160. data/rdoc/RubyXL/CT_TextFont.html +6 -13
  161. data/rdoc/RubyXL/CT_TextListStyle.html +6 -13
  162. data/rdoc/RubyXL/CT_TextNormalAutofit.html +6 -13
  163. data/rdoc/RubyXL/CT_TextParagraphProperties.html +6 -13
  164. data/rdoc/RubyXL/CT_TextSpacing.html +6 -13
  165. data/rdoc/RubyXL/CT_TextTabStop.html +6 -13
  166. data/rdoc/RubyXL/CT_TextTabStopList.html +6 -13
  167. data/rdoc/RubyXL/CT_TileInfoProperties.html +6 -13
  168. data/rdoc/RubyXL/CT_TintEffect.html +6 -13
  169. data/rdoc/RubyXL/CT_Transform2D.html +6 -13
  170. data/rdoc/RubyXL/CT_TransformEffect.html +6 -13
  171. data/rdoc/RubyXL/CT_Vector3D.html +6 -13
  172. data/rdoc/RubyXL/CT_XYAdjustHandle.html +6 -13
  173. data/rdoc/RubyXL/CalculationChain.html +15 -42
  174. data/rdoc/RubyXL/CalculationChainCell.html +6 -13
  175. data/rdoc/RubyXL/CalculationProperties.html +6 -13
  176. data/rdoc/RubyXL/Cell.html +116 -290
  177. data/rdoc/RubyXL/CellConvenienceMethods.html +318 -641
  178. data/rdoc/RubyXL/CellExt.html +6 -13
  179. data/rdoc/RubyXL/CellSmartTag.html +6 -13
  180. data/rdoc/RubyXL/CellSmartTagProperty.html +6 -13
  181. data/rdoc/RubyXL/CellSmartTags.html +6 -13
  182. data/rdoc/RubyXL/CellStyle.html +6 -13
  183. data/rdoc/RubyXL/CellStyleXFs.html +16 -35
  184. data/rdoc/RubyXL/CellStyles.html +16 -35
  185. data/rdoc/RubyXL/CellValue.html +16 -35
  186. data/rdoc/RubyXL/CellWatch.html +6 -13
  187. data/rdoc/RubyXL/CellWatches.html +6 -13
  188. data/rdoc/RubyXL/CellXFs.html +18 -40
  189. data/rdoc/RubyXL/ChartColorsFile.html +6 -21
  190. data/rdoc/RubyXL/ChartFile.html +18 -48
  191. data/rdoc/RubyXL/ChartStyleFile.html +6 -21
  192. data/rdoc/RubyXL/ChartUserShapesFile.html +6 -21
  193. data/rdoc/RubyXL/Chartsheet.html +18 -65
  194. data/rdoc/RubyXL/ChartsheetPageSetup.html +6 -13
  195. data/rdoc/RubyXL/ChartsheetProperties.html +6 -13
  196. data/rdoc/RubyXL/ChartsheetProtection.html +6 -13
  197. data/rdoc/RubyXL/ChartsheetView.html +6 -13
  198. data/rdoc/RubyXL/ChartsheetViews.html +6 -13
  199. data/rdoc/RubyXL/Color.html +17 -41
  200. data/rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html +25 -69
  201. data/rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html +36 -92
  202. data/rdoc/RubyXL/ColorConvenienceClasses.html +4 -10
  203. data/rdoc/RubyXL/ColorConvenienceMethods.html +14 -32
  204. data/rdoc/RubyXL/ColorFilter.html +6 -13
  205. data/rdoc/RubyXL/ColorScale.html +6 -13
  206. data/rdoc/RubyXL/ColorSet.html +6 -13
  207. data/rdoc/RubyXL/Colors.html +6 -13
  208. data/rdoc/RubyXL/ColumnRange.html +66 -81
  209. data/rdoc/RubyXL/ColumnRanges.html +43 -95
  210. data/rdoc/RubyXL/Comment.html +6 -13
  211. data/rdoc/RubyXL/CommentList.html +6 -13
  212. data/rdoc/RubyXL/CommentsFile.html +16 -48
  213. data/rdoc/RubyXL/ConditionalFormatValue.html +6 -13
  214. data/rdoc/RubyXL/ConditionalFormatting.html +6 -13
  215. data/rdoc/RubyXL/ConditionalFormattingRule.html +6 -13
  216. data/rdoc/RubyXL/Connection.html +6 -13
  217. data/rdoc/RubyXL/ConnectionTable.html +6 -13
  218. data/rdoc/RubyXL/ConnectionTables.html +6 -13
  219. data/rdoc/RubyXL/ConnectionTextField.html +6 -13
  220. data/rdoc/RubyXL/ConnectionTextFields.html +6 -13
  221. data/rdoc/RubyXL/Connections.html +15 -42
  222. data/rdoc/RubyXL/ContentTypeDefault.html +6 -13
  223. data/rdoc/RubyXL/ContentTypeOverride.html +6 -13
  224. data/rdoc/RubyXL/ContentTypes.html +25 -63
  225. data/rdoc/RubyXL/ControlPropertiesFile.html +8 -18
  226. data/rdoc/RubyXL/CorePropertiesFile.html +72 -192
  227. data/rdoc/RubyXL/CustomColor.html +6 -13
  228. data/rdoc/RubyXL/CustomColorList.html +6 -13
  229. data/rdoc/RubyXL/CustomFilter.html +6 -13
  230. data/rdoc/RubyXL/CustomFilters.html +6 -13
  231. data/rdoc/RubyXL/CustomGeometry.html +6 -13
  232. data/rdoc/RubyXL/CustomProperties.html +6 -13
  233. data/rdoc/RubyXL/CustomPropertiesFile.html +6 -21
  234. data/rdoc/RubyXL/CustomProperty.html +6 -13
  235. data/rdoc/RubyXL/CustomPropertyFile.html +6 -21
  236. data/rdoc/RubyXL/CustomSheetView.html +6 -13
  237. data/rdoc/RubyXL/CustomSheetViews.html +6 -13
  238. data/rdoc/RubyXL/CustomWorkbookView.html +6 -13
  239. data/rdoc/RubyXL/CustomWorkbookViews.html +6 -13
  240. data/rdoc/RubyXL/CustomXMLFile.html +6 -18
  241. data/rdoc/RubyXL/DXF.html +6 -13
  242. data/rdoc/RubyXL/DXFs.html +6 -13
  243. data/rdoc/RubyXL/DataBar.html +6 -13
  244. data/rdoc/RubyXL/DataConsolidate.html +6 -13
  245. data/rdoc/RubyXL/DataConsolidationReference.html +6 -13
  246. data/rdoc/RubyXL/DataConsolidationReferences.html +6 -13
  247. data/rdoc/RubyXL/DataType.html +4 -33
  248. data/rdoc/RubyXL/DataValidation.html +6 -13
  249. data/rdoc/RubyXL/DataValidations.html +6 -13
  250. data/rdoc/RubyXL/DateGroupItem.html +6 -13
  251. data/rdoc/RubyXL/DefinedName.html +6 -13
  252. data/rdoc/RubyXL/DefinedNameExt.html +6 -13
  253. data/rdoc/RubyXL/DefinedNames.html +6 -13
  254. data/rdoc/RubyXL/DefinedNamesExt.html +6 -13
  255. data/rdoc/RubyXL/DocumentPropertiesFile.html +23 -65
  256. data/rdoc/RubyXL/DrawingFile.html +18 -48
  257. data/rdoc/RubyXL/DynamicFilter.html +6 -13
  258. data/rdoc/RubyXL/EmbeddedControl.html +6 -13
  259. data/rdoc/RubyXL/EmbeddedControls.html +6 -13
  260. data/rdoc/RubyXL/Extension.html +6 -13
  261. data/rdoc/RubyXL/ExtensionStorageArea.html +6 -13
  262. data/rdoc/RubyXL/Extents.html +6 -13
  263. data/rdoc/RubyXL/ExternalBook.html +6 -13
  264. data/rdoc/RubyXL/ExternalLinksFile.html +18 -48
  265. data/rdoc/RubyXL/ExternalReference.html +6 -13
  266. data/rdoc/RubyXL/ExternalReferences.html +6 -13
  267. data/rdoc/RubyXL/ExtraColorSchemeList.html +6 -13
  268. data/rdoc/RubyXL/FieldItem.html +6 -13
  269. data/rdoc/RubyXL/FileRecoveryProperties.html +6 -13
  270. data/rdoc/RubyXL/FileSharing.html +6 -13
  271. data/rdoc/RubyXL/FileVersion.html +6 -13
  272. data/rdoc/RubyXL/Fill.html +16 -35
  273. data/rdoc/RubyXL/Fills.html +16 -35
  274. data/rdoc/RubyXL/FilterContainer.html +6 -13
  275. data/rdoc/RubyXL/FloatNode.html +6 -13
  276. data/rdoc/RubyXL/FloatValue.html +6 -13
  277. data/rdoc/RubyXL/Font.html +18 -42
  278. data/rdoc/RubyXL/FontConvenienceMethods.html +92 -253
  279. data/rdoc/RubyXL/FontScheme.html +6 -13
  280. data/rdoc/RubyXL/Fonts.html +16 -35
  281. data/rdoc/RubyXL/Formula.html +6 -13
  282. data/rdoc/RubyXL/FunctionGroup.html +6 -13
  283. data/rdoc/RubyXL/FunctionGroups.html +6 -13
  284. data/rdoc/RubyXL/GenericStorageObject.html +32 -90
  285. data/rdoc/RubyXL/GradientFill.html +6 -13
  286. data/rdoc/RubyXL/HeaderFooterSettings.html +6 -13
  287. data/rdoc/RubyXL/Hyperlink.html +6 -13
  288. data/rdoc/RubyXL/HyperlinkRelFile.html +6 -18
  289. data/rdoc/RubyXL/Hyperlinks.html +6 -13
  290. data/rdoc/RubyXL/IconFilter.html +6 -13
  291. data/rdoc/RubyXL/IconSet.html +6 -13
  292. data/rdoc/RubyXL/IgnoredError.html +6 -13
  293. data/rdoc/RubyXL/IgnoredErrors.html +6 -13
  294. data/rdoc/RubyXL/IndexedColors.html +6 -13
  295. data/rdoc/RubyXL/InputCells.html +6 -13
  296. data/rdoc/RubyXL/IntegerNode.html +6 -13
  297. data/rdoc/RubyXL/IntegerValue.html +6 -13
  298. data/rdoc/RubyXL/LegacyCell.html +14 -32
  299. data/rdoc/RubyXL/LegacyWorksheet.html +64 -116
  300. data/rdoc/RubyXL/MRUColors.html +6 -13
  301. data/rdoc/RubyXL/MacrosFile.html +6 -21
  302. data/rdoc/RubyXL/MergedCell.html +6 -13
  303. data/rdoc/RubyXL/MergedCells.html +6 -13
  304. data/rdoc/RubyXL/NumFmt.html +6 -13
  305. data/rdoc/RubyXL/NumberFormat.html +17 -36
  306. data/rdoc/RubyXL/NumberFormats.html +16 -40
  307. data/rdoc/RubyXL/OLEObject.html +6 -13
  308. data/rdoc/RubyXL/OLEObjectFile.html +6 -21
  309. data/rdoc/RubyXL/OLEObjects.html +6 -13
  310. data/rdoc/RubyXL/OLESize.html +6 -13
  311. data/rdoc/RubyXL/OOXMLContainerObject.html +57 -140
  312. data/rdoc/RubyXL/OOXMLIgnored.html +24 -55
  313. data/rdoc/RubyXL/OOXMLObject.html +9 -19
  314. data/rdoc/RubyXL/OOXMLObjectClassMethods.html +80 -115
  315. data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +79 -185
  316. data/rdoc/RubyXL/OOXMLRelationshipsFile.html +86 -223
  317. data/rdoc/RubyXL/OOXMLTopLevelObject.html +46 -123
  318. data/rdoc/RubyXL/OdbcOleDbProperties.html +6 -13
  319. data/rdoc/RubyXL/Offset.html +6 -13
  320. data/rdoc/RubyXL/OlapProperties.html +6 -13
  321. data/rdoc/RubyXL/OleItem.html +99 -0
  322. data/rdoc/RubyXL/OleItems.html +99 -0
  323. data/rdoc/RubyXL/OleLink.html +99 -0
  324. data/rdoc/RubyXL/OutlineProperties.html +6 -13
  325. data/rdoc/RubyXL/PageMargins.html +6 -13
  326. data/rdoc/RubyXL/PageSetup.html +6 -13
  327. data/rdoc/RubyXL/PageSetupProperties.html +6 -13
  328. data/rdoc/RubyXL/Pane.html +6 -13
  329. data/rdoc/RubyXL/Parser.html +24 -54
  330. data/rdoc/RubyXL/PatternFill.html +6 -13
  331. data/rdoc/RubyXL/PersonMetadata.html +108 -0
  332. data/rdoc/RubyXL/PhoneticProperties.html +6 -13
  333. data/rdoc/RubyXL/PhoneticRun.html +6 -13
  334. data/rdoc/RubyXL/PivotArea.html +6 -13
  335. data/rdoc/RubyXL/PivotCache.html +6 -13
  336. data/rdoc/RubyXL/PivotCacheDefinitionFile.html +8 -26
  337. data/rdoc/RubyXL/PivotCacheRecordsFile.html +6 -21
  338. data/rdoc/RubyXL/PivotCaches.html +6 -13
  339. data/rdoc/RubyXL/PivotReference.html +6 -13
  340. data/rdoc/RubyXL/PivotReferences.html +6 -13
  341. data/rdoc/RubyXL/PivotTableFile.html +8 -26
  342. data/rdoc/RubyXL/PivotTableSelection.html +6 -13
  343. data/rdoc/RubyXL/PresetGeometry.html +6 -13
  344. data/rdoc/RubyXL/PrintOptions.html +6 -13
  345. data/rdoc/RubyXL/PrinterSettingsFile.html +6 -21
  346. data/rdoc/RubyXL/ProtectedRange.html +6 -13
  347. data/rdoc/RubyXL/ProtectedRanges.html +6 -13
  348. data/rdoc/RubyXL/Protection.html +6 -13
  349. data/rdoc/RubyXL/QueryParameter.html +6 -13
  350. data/rdoc/RubyXL/QueryParameters.html +6 -13
  351. data/rdoc/RubyXL/QueryTable.html +18 -48
  352. data/rdoc/RubyXL/QueryTableDeletedField.html +6 -13
  353. data/rdoc/RubyXL/QueryTableDeletedFields.html +6 -13
  354. data/rdoc/RubyXL/QueryTableField.html +6 -13
  355. data/rdoc/RubyXL/QueryTableFields.html +6 -13
  356. data/rdoc/RubyXL/QueryTableRefresh.html +6 -13
  357. data/rdoc/RubyXL/RID.html +6 -13
  358. data/rdoc/RubyXL/RawOOXML.html +24 -60
  359. data/rdoc/RubyXL/Reference.html +137 -263
  360. data/rdoc/RubyXL/Relationship.html +6 -13
  361. data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +14 -32
  362. data/rdoc/RubyXL/RelationshipSupport.html +52 -137
  363. data/rdoc/RubyXL/RevisionPointer.html +6 -13
  364. data/rdoc/RubyXL/RichText.html +19 -37
  365. data/rdoc/RubyXL/RichTextRun.html +16 -35
  366. data/rdoc/RubyXL/Row.html +63 -180
  367. data/rdoc/RubyXL/RowExt.html +6 -13
  368. data/rdoc/RubyXL/RunProperties.html +6 -13
  369. data/rdoc/RubyXL/Scenario.html +6 -13
  370. data/rdoc/RubyXL/Scenarios.html +6 -13
  371. data/rdoc/RubyXL/Selection.html +16 -35
  372. data/rdoc/RubyXL/ShapeGuide.html +6 -13
  373. data/rdoc/RubyXL/ShapeTextRectangle.html +6 -13
  374. data/rdoc/RubyXL/SharedStringsTable.html +60 -156
  375. data/rdoc/RubyXL/Sheet.html +6 -13
  376. data/rdoc/RubyXL/SheetCalculationProperties.html +6 -13
  377. data/rdoc/RubyXL/SheetData.html +21 -51
  378. data/rdoc/RubyXL/SheetDataExt.html +6 -13
  379. data/rdoc/RubyXL/SheetDataSet.html +6 -13
  380. data/rdoc/RubyXL/SheetMetadata.html +108 -0
  381. data/rdoc/RubyXL/SheetName.html +6 -13
  382. data/rdoc/RubyXL/SheetNames.html +6 -13
  383. data/rdoc/RubyXL/Sheets.html +6 -13
  384. data/rdoc/RubyXL/SlicerCacheFile.html +6 -21
  385. data/rdoc/RubyXL/SlicerFile.html +6 -21
  386. data/rdoc/RubyXL/SmartTagProperties.html +6 -13
  387. data/rdoc/RubyXL/SmartTagType.html +6 -13
  388. data/rdoc/RubyXL/SmartTagTypes.html +6 -13
  389. data/rdoc/RubyXL/SmartTags.html +6 -13
  390. data/rdoc/RubyXL/SortCondition.html +6 -13
  391. data/rdoc/RubyXL/SortState.html +6 -13
  392. data/rdoc/RubyXL/Sqref.html +25 -56
  393. data/rdoc/RubyXL/Stop.html +6 -13
  394. data/rdoc/RubyXL/StringNode.html +6 -13
  395. data/rdoc/RubyXL/StringNodeW3C.html +24 -55
  396. data/rdoc/RubyXL/StringValue.html +6 -13
  397. data/rdoc/RubyXL/Stylesheet.html +45 -118
  398. data/rdoc/RubyXL/TableFile.html +6 -21
  399. data/rdoc/RubyXL/TableParts.html +6 -13
  400. data/rdoc/RubyXL/TableStyle.html +6 -13
  401. data/rdoc/RubyXL/TableStyles.html +6 -13
  402. data/rdoc/RubyXL/Text.html +25 -63
  403. data/rdoc/RubyXL/TextImportSettings.html +6 -13
  404. data/rdoc/RubyXL/Theme.html +46 -96
  405. data/rdoc/RubyXL/ThemeElements.html +6 -13
  406. data/rdoc/RubyXL/ThumbnailFile.html +6 -21
  407. data/rdoc/RubyXL/Top10.html +6 -13
  408. data/rdoc/RubyXL/VMLDrawingFile.html +9 -27
  409. data/rdoc/RubyXL/Variant.html +6 -13
  410. data/rdoc/RubyXL/Vector.html +16 -35
  411. data/rdoc/RubyXL/VectorValue.html +6 -13
  412. data/rdoc/RubyXL/VisualProperties.html +6 -13
  413. data/rdoc/RubyXL/WebPublishObject.html +6 -13
  414. data/rdoc/RubyXL/WebPublishObjects.html +6 -13
  415. data/rdoc/RubyXL/WebPublishingItem.html +6 -13
  416. data/rdoc/RubyXL/WebPublishingItems.html +6 -13
  417. data/rdoc/RubyXL/WebPublishingProperties.html +6 -13
  418. data/rdoc/RubyXL/WebQueryProperties.html +6 -13
  419. data/rdoc/RubyXL/Workbook.html +222 -583
  420. data/rdoc/RubyXL/WorkbookConvenienceMethods.html +170 -309
  421. data/rdoc/RubyXL/WorkbookProperties.html +6 -13
  422. data/rdoc/RubyXL/WorkbookProtection.html +6 -13
  423. data/rdoc/RubyXL/WorkbookRoot.html +47 -125
  424. data/rdoc/RubyXL/WorkbookView.html +6 -13
  425. data/rdoc/RubyXL/WorkbookViews.html +6 -13
  426. data/rdoc/RubyXL/Worksheet.html +79 -160
  427. data/rdoc/RubyXL/WorksheetConvenienceMethods.html +605 -1269
  428. data/rdoc/RubyXL/WorksheetDimensions.html +6 -13
  429. data/rdoc/RubyXL/WorksheetFormatProperties.html +6 -13
  430. data/rdoc/RubyXL/WorksheetProperties.html +6 -13
  431. data/rdoc/RubyXL/WorksheetProtection.html +6 -13
  432. data/rdoc/RubyXL/WorksheetView.html +6 -13
  433. data/rdoc/RubyXL/WorksheetViews.html +6 -13
  434. data/rdoc/RubyXL/XF.html +6 -13
  435. data/rdoc/RubyXL.html +15 -324
  436. data/rdoc/created.rid +44 -44
  437. data/rdoc/css/rdoc.css +76 -8
  438. data/rdoc/fonts/SourceCodePro-Bold.ttf +0 -0
  439. data/rdoc/fonts/SourceCodePro-Regular.ttf +0 -0
  440. data/rdoc/index.html +397 -769
  441. data/rdoc/js/darkfish.js +14 -1
  442. data/rdoc/js/navigation.js +8 -8
  443. data/rdoc/js/navigation.js.gz +0 -0
  444. data/rdoc/js/search.js +4 -4
  445. data/rdoc/js/search_index.js +1 -1
  446. data/rdoc/js/search_index.js.gz +0 -0
  447. data/rdoc/js/searcher.js.gz +0 -0
  448. data/rdoc/table_of_contents.html +68 -5
  449. data/rubyXL.gemspec +28 -29
  450. data/spec/lib/cell_spec.rb +67 -9
  451. data/spec/lib/color_spec.rb +8 -1
  452. data/spec/lib/parser_spec.rb +28 -28
  453. data/spec/lib/reference_spec.rb +41 -5
  454. data/spec/lib/rgb_color_spec.rb +16 -3
  455. data/spec/lib/stylesheet_spec.rb +10 -11
  456. data/spec/lib/text_spec.rb +4 -6
  457. data/spec/lib/workbook_spec.rb +20 -8
  458. data/spec/lib/worksheet_spec.rb +815 -460
  459. data/spec/spec_helper.rb +2 -0
  460. data/test/test_parse_write.rb +3 -3
  461. metadata +26 -6
  462. data/Gemfile.lock +0 -92
Binary file
Binary file
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
 
7
- <title>Table of Contents - rubyXL 3.4.14</title>
7
+ <title>Table of Contents - rubyXL 3.4.33</title>
8
8
 
9
9
  <script type="text/javascript">
10
10
  var rdoc_rel_prefix = "./";
@@ -21,10 +21,9 @@
21
21
  <link href="./css/rdoc.css" rel="stylesheet">
22
22
 
23
23
 
24
-
25
24
  <body id="top" class="table-of-contents">
26
25
  <main role="main">
27
- <h1 class="class">Table of Contents - rubyXL 3.4.14</h1>
26
+ <h1 class="class">Table of Contents - rubyXL 3.4.33</h1>
28
27
 
29
28
  <h2 id="pages">Pages</h2>
30
29
  <ul>
@@ -67,15 +66,16 @@
67
66
  <li><a href="README_rdoc.html#label-Insert+Cell">Insert Cell</a>
68
67
  <li><a href="README_rdoc.html#label-Delete+Cell">Delete Cell</a>
69
68
  <li><a href="README_rdoc.html#label-Modifying+Cell+Format">Modifying Cell Format</a>
69
+ <li><a href="README_rdoc.html#label-Add+hyperlink+to+a+Cell">Add hyperlink to a Cell</a>
70
70
  <li><a href="README_rdoc.html#label-I-2FO">I/O</a>
71
71
  <li><a href="README_rdoc.html#label-Miscellaneous">Miscellaneous</a>
72
72
  <li><a href="README_rdoc.html#label-Suppress+warnings+about+malformed+input+files">Suppress warnings about malformed input files</a>
73
+ <li><a href="README_rdoc.html#label-Data+validation+-28colloquially+referred+to+as+-22dropdown+list-22-29">Data validation (colloquially referred to as “dropdown list”)</a>
73
74
  <li><a href="README_rdoc.html#label-For+more+information">For more information</a>
74
75
  <li><a href="README_rdoc.html#label-Contributing+to+rubyXL">Contributing to rubyXL</a>
75
76
  <li><a href="README_rdoc.html#label-Copyright">Copyright</a>
76
77
  </ul>
77
78
  </li>
78
-
79
79
  </ul>
80
80
 
81
81
  <h2 id="classes">Classes and Modules</h2>
@@ -104,6 +104,9 @@
104
104
  <li class="class">
105
105
  <a href="RubyXL/AlternateContent.html">RubyXL::AlternateContent</a>
106
106
  </li>
107
+ <li class="class">
108
+ <a href="RubyXL/AlternateUrls.html">RubyXL::AlternateUrls</a>
109
+ </li>
107
110
  <li class="class">
108
111
  <a href="RubyXL/Authors.html">RubyXL::Authors</a>
109
112
  </li>
@@ -890,6 +893,15 @@
890
893
  <li class="class">
891
894
  <a href="RubyXL/OlapProperties.html">RubyXL::OlapProperties</a>
892
895
  </li>
896
+ <li class="class">
897
+ <a href="RubyXL/OleItem.html">RubyXL::OleItem</a>
898
+ </li>
899
+ <li class="class">
900
+ <a href="RubyXL/OleItems.html">RubyXL::OleItems</a>
901
+ </li>
902
+ <li class="class">
903
+ <a href="RubyXL/OleLink.html">RubyXL::OleLink</a>
904
+ </li>
893
905
  <li class="class">
894
906
  <a href="RubyXL/OutlineProperties.html">RubyXL::OutlineProperties</a>
895
907
  </li>
@@ -911,6 +923,9 @@
911
923
  <li class="class">
912
924
  <a href="RubyXL/PatternFill.html">RubyXL::PatternFill</a>
913
925
  </li>
926
+ <li class="class">
927
+ <a href="RubyXL/PersonMetadata.html">RubyXL::PersonMetadata</a>
928
+ </li>
914
929
  <li class="class">
915
930
  <a href="RubyXL/PhoneticProperties.html">RubyXL::PhoneticProperties</a>
916
931
  </li>
@@ -1055,6 +1070,9 @@
1055
1070
  <li class="class">
1056
1071
  <a href="RubyXL/SheetDataSet.html">RubyXL::SheetDataSet</a>
1057
1072
  </li>
1073
+ <li class="class">
1074
+ <a href="RubyXL/SheetMetadata.html">RubyXL::SheetMetadata</a>
1075
+ </li>
1058
1076
  <li class="class">
1059
1077
  <a href="RubyXL/SheetName.html">RubyXL::SheetName</a>
1060
1078
  </li>
@@ -1222,6 +1240,11 @@
1222
1240
  <h2 id="methods">Methods</h2>
1223
1241
  <ul>
1224
1242
 
1243
+ <li class="method">
1244
+ <a href="RubyXL/ColumnRange.html#method-c-chars2raw">::chars2raw</a>
1245
+ &mdash;
1246
+ <span class="container">RubyXL::ColumnRange</span>
1247
+
1225
1248
  <li class="method">
1226
1249
  <a href="RubyXL/Borders.html#method-c-default">::default</a>
1227
1250
  &mdash;
@@ -1477,6 +1500,11 @@
1477
1500
  &mdash;
1478
1501
  <span class="container">RubyXL::LegacyWorksheet</span>
1479
1502
 
1503
+ <li class="method">
1504
+ <a href="RubyXL/CellConvenienceMethods.html#method-i-add_hyperlink">#add_hyperlink</a>
1505
+ &mdash;
1506
+ <span class="container">RubyXL::CellConvenienceMethods</span>
1507
+
1480
1508
  <li class="method">
1481
1509
  <a href="RubyXL/OOXMLRelationshipsFile.html#method-i-add_relationship">#add_relationship</a>
1482
1510
  &mdash;
@@ -1497,6 +1525,11 @@
1497
1525
  &mdash;
1498
1526
  <span class="container">RubyXL::GenericStorageObject</span>
1499
1527
 
1528
+ <li class="method">
1529
+ <a href="RubyXL/WorksheetConvenienceMethods.html#method-i-add_validation_list">#add_validation_list</a>
1530
+ &mdash;
1531
+ <span class="container">RubyXL::WorksheetConvenienceMethods</span>
1532
+
1500
1533
  <li class="method">
1501
1534
  <a href="RubyXL/Workbook.html#method-i-add_worksheet">#add_worksheet</a>
1502
1535
  &mdash;
@@ -1622,6 +1655,11 @@
1622
1655
  &mdash;
1623
1656
  <span class="container">RubyXL::WorkbookConvenienceMethods</span>
1624
1657
 
1658
+ <li class="method">
1659
+ <a href="RubyXL/Worksheet.html#method-i-cell_at">#cell_at</a>
1660
+ &mdash;
1661
+ <span class="container">RubyXL::Worksheet</span>
1662
+
1625
1663
  <li class="method">
1626
1664
  <a href="RubyXL/WorkbookConvenienceMethods.html#method-i-cell_xfs">#cell_xfs</a>
1627
1665
  &mdash;
@@ -1842,6 +1880,11 @@
1842
1880
  &mdash;
1843
1881
  <span class="container">RubyXL::WorksheetConvenienceMethods</span>
1844
1882
 
1883
+ <li class="method">
1884
+ <a href="RubyXL/CellConvenienceMethods.html#method-i-change_shrink_to_fit">#change_shrink_to_fit</a>
1885
+ &mdash;
1886
+ <span class="container">RubyXL::CellConvenienceMethods</span>
1887
+
1845
1888
  <li class="method">
1846
1889
  <a href="RubyXL/CellConvenienceMethods.html#method-i-change_text_indent">#change_text_indent</a>
1847
1890
  &mdash;
@@ -1977,6 +2020,11 @@
1977
2020
  &mdash;
1978
2021
  <span class="container">RubyXL::WorkbookConvenienceMethods</span>
1979
2022
 
2023
+ <li class="method">
2024
+ <a href="RubyXL/OOXMLObjectClassMethods.html#method-i-define_relationship">#define_relationship</a>
2025
+ &mdash;
2026
+ <span class="container">RubyXL::OOXMLObjectClassMethods</span>
2027
+
1980
2028
  <li class="method">
1981
2029
  <a href="RubyXL/RelationshipSupport/ClassMehods.html#method-i-define_relationship">#define_relationship</a>
1982
2030
  &mdash;
@@ -2772,6 +2820,16 @@
2772
2820
  &mdash;
2773
2821
  <span class="container">RubyXL::CellConvenienceMethods</span>
2774
2822
 
2823
+ <li class="method">
2824
+ <a href="RubyXL/WorkbookConvenienceMethods.html#method-i-title">#title</a>
2825
+ &mdash;
2826
+ <span class="container">RubyXL::WorkbookConvenienceMethods</span>
2827
+
2828
+ <li class="method">
2829
+ <a href="RubyXL/WorkbookConvenienceMethods.html#method-i-title-3D">#title=</a>
2830
+ &mdash;
2831
+ <span class="container">RubyXL::WorkbookConvenienceMethods</span>
2832
+
2775
2833
  <li class="method">
2776
2834
  <a href="RubyXL/ColorConvenienceClasses/RgbColor.html#method-i-to_hls">#to_hls</a>
2777
2835
  &mdash;
@@ -2817,6 +2875,11 @@
2817
2875
  &mdash;
2818
2876
  <span class="container">RubyXL::StringNodeW3C</span>
2819
2877
 
2878
+ <li class="method">
2879
+ <a href="RubyXL/Reference.html#method-i-valid-3F">#valid?</a>
2880
+ &mdash;
2881
+ <span class="container">RubyXL::Reference</span>
2882
+
2820
2883
  <li class="method">
2821
2884
  <a href="RubyXL/Cell.html#method-i-value">#value</a>
2822
2885
  &mdash;
@@ -2952,7 +3015,7 @@
2952
3015
 
2953
3016
  <footer id="validator-badges" role="contentinfo">
2954
3017
  <p><a href="https://validator.w3.org/check/referer">Validate</a>
2955
- <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.2.1.
3018
+ <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.6.3.1.
2956
3019
  <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
2957
3020
  </footer>
2958
3021
 
data/rubyXL.gemspec CHANGED
@@ -1,17 +1,17 @@
1
- # Generated by jeweler
1
+ # Generated by juwelier
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
3
+ # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: rubyXL 3.4.14 ruby lib
5
+ # stub: rubyXL 3.4.33 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "rubyXL".freeze
9
- s.version = "3.4.14"
9
+ s.version = "3.4.33"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Vivek Bhagwat".freeze, "Wesha".freeze]
14
- s.date = "2020-03-19"
14
+ s.date = "2024-12-20"
15
15
  s.description = "rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents".freeze
16
16
  s.email = "bhagwat.vivek@gmail.com".freeze
17
17
  s.extra_rdoc_files = [
@@ -21,8 +21,9 @@ Gem::Specification.new do |s|
21
21
  s.files = [
22
22
  ".circleci/config.yml",
23
23
  ".codeclimate.yml",
24
+ ".rubocop.yml",
25
+ "CHANGELOG.md",
24
26
  "Gemfile",
25
- "Gemfile.lock",
26
27
  "LICENSE.txt",
27
28
  "README.rdoc",
28
29
  "Rakefile",
@@ -79,6 +80,7 @@ Gem::Specification.new do |s|
79
80
  "rdoc/RubyXL/AdjustHandleList.html",
80
81
  "rdoc/RubyXL/Alignment.html",
81
82
  "rdoc/RubyXL/AlternateContent.html",
83
+ "rdoc/RubyXL/AlternateUrls.html",
82
84
  "rdoc/RubyXL/Authors.html",
83
85
  "rdoc/RubyXL/AutoFilter.html",
84
86
  "rdoc/RubyXL/AutoFilterColumn.html",
@@ -341,6 +343,9 @@ Gem::Specification.new do |s|
341
343
  "rdoc/RubyXL/OdbcOleDbProperties.html",
342
344
  "rdoc/RubyXL/Offset.html",
343
345
  "rdoc/RubyXL/OlapProperties.html",
346
+ "rdoc/RubyXL/OleItem.html",
347
+ "rdoc/RubyXL/OleItems.html",
348
+ "rdoc/RubyXL/OleLink.html",
344
349
  "rdoc/RubyXL/OutlineProperties.html",
345
350
  "rdoc/RubyXL/PageMargins.html",
346
351
  "rdoc/RubyXL/PageSetup.html",
@@ -348,6 +353,7 @@ Gem::Specification.new do |s|
348
353
  "rdoc/RubyXL/Pane.html",
349
354
  "rdoc/RubyXL/Parser.html",
350
355
  "rdoc/RubyXL/PatternFill.html",
356
+ "rdoc/RubyXL/PersonMetadata.html",
351
357
  "rdoc/RubyXL/PhoneticProperties.html",
352
358
  "rdoc/RubyXL/PhoneticRun.html",
353
359
  "rdoc/RubyXL/PivotArea.html",
@@ -396,6 +402,7 @@ Gem::Specification.new do |s|
396
402
  "rdoc/RubyXL/SheetData.html",
397
403
  "rdoc/RubyXL/SheetDataExt.html",
398
404
  "rdoc/RubyXL/SheetDataSet.html",
405
+ "rdoc/RubyXL/SheetMetadata.html",
399
406
  "rdoc/RubyXL/SheetName.html",
400
407
  "rdoc/RubyXL/SheetNames.html",
401
408
  "rdoc/RubyXL/Sheets.html",
@@ -512,43 +519,35 @@ Gem::Specification.new do |s|
512
519
  ]
513
520
  s.homepage = "http://github.com/gilt/rubyXL".freeze
514
521
  s.licenses = ["MIT".freeze]
515
- s.rubygems_version = "2.7.8".freeze
522
+ s.rubygems_version = "3.1.6".freeze
516
523
  s.summary = "rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents".freeze
517
524
 
518
525
  if s.respond_to? :specification_version then
519
526
  s.specification_version = 4
527
+ end
520
528
 
521
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
522
- s.add_runtime_dependency(%q<nokogiri>.freeze, [">= 1.10.8"])
523
- s.add_runtime_dependency(%q<rubyzip>.freeze, [">= 1.3.0"])
524
- s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
525
- s.add_development_dependency(%q<rake>.freeze, [">= 0"])
526
- s.add_development_dependency(%q<jeweler>.freeze, [">= 0"])
527
- s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
528
- s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
529
- s.add_development_dependency(%q<ruby-prof>.freeze, [">= 0"])
530
- s.add_development_dependency(%q<rspec_junit_formatter>.freeze, [">= 0"])
531
- else
532
- s.add_dependency(%q<nokogiri>.freeze, [">= 1.10.8"])
533
- s.add_dependency(%q<rubyzip>.freeze, [">= 1.3.0"])
534
- s.add_dependency(%q<bundler>.freeze, [">= 0"])
535
- s.add_dependency(%q<rake>.freeze, [">= 0"])
536
- s.add_dependency(%q<jeweler>.freeze, [">= 0"])
537
- s.add_dependency(%q<rspec>.freeze, [">= 0"])
538
- s.add_dependency(%q<simplecov>.freeze, [">= 0"])
539
- s.add_dependency(%q<ruby-prof>.freeze, [">= 0"])
540
- s.add_dependency(%q<rspec_junit_formatter>.freeze, [">= 0"])
541
- end
529
+ if s.respond_to? :add_runtime_dependency then
530
+ s.add_runtime_dependency(%q<nokogiri>.freeze, [">= 1.10.8"])
531
+ s.add_runtime_dependency(%q<rubyzip>.freeze, [">= 1.3.0"])
532
+ s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
533
+ s.add_development_dependency(%q<rake>.freeze, [">= 0"])
534
+ s.add_development_dependency(%q<juwelier>.freeze, [">= 0"])
535
+ s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
536
+ s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
537
+ s.add_development_dependency(%q<ruby-prof>.freeze, [">= 0"])
538
+ s.add_development_dependency(%q<rspec_junit_formatter>.freeze, [">= 0"])
539
+ s.add_development_dependency(%q<rubocop>.freeze, [">= 0"])
542
540
  else
543
541
  s.add_dependency(%q<nokogiri>.freeze, [">= 1.10.8"])
544
542
  s.add_dependency(%q<rubyzip>.freeze, [">= 1.3.0"])
545
543
  s.add_dependency(%q<bundler>.freeze, [">= 0"])
546
544
  s.add_dependency(%q<rake>.freeze, [">= 0"])
547
- s.add_dependency(%q<jeweler>.freeze, [">= 0"])
545
+ s.add_dependency(%q<juwelier>.freeze, [">= 0"])
548
546
  s.add_dependency(%q<rspec>.freeze, [">= 0"])
549
547
  s.add_dependency(%q<simplecov>.freeze, [">= 0"])
550
548
  s.add_dependency(%q<ruby-prof>.freeze, [">= 0"])
551
549
  s.add_dependency(%q<rspec_junit_formatter>.freeze, [">= 0"])
550
+ s.add_dependency(%q<rubocop>.freeze, [">= 0"])
552
551
  end
553
552
  end
554
553
 
@@ -1,16 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'bigdecimal'
3
5
  require 'rubyXL/convenience_methods/font'
4
6
  require 'rubyXL/convenience_methods/cell'
5
7
 
6
8
  describe RubyXL::Cell do
7
-
8
9
  before do
9
10
  @workbook = RubyXL::Workbook.new
10
11
  @worksheet = @workbook.add_worksheet('Test Worksheet')
11
12
  @workbook.worksheets << @worksheet
12
- (0..10).each do |i|
13
- (0..10).each do |j|
13
+ 11.times do |i|
14
+ 11.times do |j|
14
15
  @worksheet.add_cell(i, j, "#{i}:#{j}")
15
16
  end
16
17
  end
@@ -46,7 +47,50 @@ describe RubyXL::Cell do
46
47
  cell.set_number_format('ddd mmm dd, yyyy HH:MM:SS')
47
48
 
48
49
  # Due to rounding errors, we allow microsecond precision on DateTime.
49
- expect((cell.value - tm).to_f).to be_within(1.0/86400e6).of(0)
50
+ expect((cell.value - tm).to_f).to be_within(1.0 / 86400e6).of(0)
51
+
52
+ tm = Time.now
53
+ cell = @worksheet.add_cell(r, c, tm)
54
+ cell.set_number_format('ddd mmm dd, yyyy HH:MM:SS')
55
+
56
+ # Due to rounding errors, we allow microsecond precision on Time.
57
+ expect(cell.value - tm.to_datetime).to be_within(1.0 / 86400e6).of(0)
58
+
59
+ expected_date = '2020-10-15T14:00:00Z'
60
+ expected_datetime = Time.parse(expected_date).utc
61
+ raw_value = '44119.583333333328' # Obtained from parsing a xlsx file with the expected date
62
+ cell = @worksheet.add_cell(r, c, Time.now) # Force a date cell type
63
+ cell.set_number_format('ddd mmm dd, yyyy HH:MM:SS')
64
+ cell.raw_value = raw_value
65
+ expect(cell.raw_value).to eq(raw_value), 'Wrong raw value'
66
+ cell.set_number_format('ddd mmm dd, yyyy HH:MM:SS')
67
+
68
+ # We expect exactly the same date
69
+ expect(cell.value.to_time.utc.iso8601).to eq(expected_datetime.iso8601)
70
+ end
71
+
72
+ it 'should raise against too long String' do
73
+ ok_data = 'A' * 32767 # The limit is 32767
74
+
75
+ expect {
76
+ @worksheet.add_cell(0, 1, ok_data) # 32767 -> OK
77
+ }.not_to raise_error
78
+ expect {
79
+ # 1 longer than the limit, so an exception must be thrown.
80
+ @worksheet.add_cell(0, 2, "#{ok_data}x")
81
+ }.to raise_error(ArgumentError)
82
+ end
83
+
84
+ it 'should raise against too long RichText' do
85
+ ok_data = 'A' * 32767 # The limit is 32767
86
+
87
+ expect {
88
+ @worksheet.add_cell(0, 1, RubyXL::RichText.new(:t => RubyXL::Text.new(:value => ok_data))) # 32767 -> OK
89
+ }.not_to raise_error
90
+ expect {
91
+ # 1 longer than the limit, so an exception must be thrown.
92
+ @worksheet.add_cell(0, 2, RubyXL::RichText.new(:t => RubyXL::Text.new(:value => "#{ok_data}x")))
93
+ }.to raise_error(ArgumentError)
50
94
  end
51
95
  end
52
96
 
@@ -171,7 +215,7 @@ describe RubyXL::Cell do
171
215
  expect(@cell.text_indent).to eq(2)
172
216
  end
173
217
 
174
- it "should not cause other cells with the same style to have text indent" do
218
+ it 'should not cause other cells with the same style to have text indent' do
175
219
  another_cell = @worksheet[1][0]
176
220
  another_cell.style_index = @cell.style_index
177
221
  expect(another_cell.text_indent).to be_nil
@@ -266,7 +310,7 @@ describe RubyXL::Cell do
266
310
  expect(cell.value).to eq('Hello')
267
311
  end
268
312
 
269
- it "should properly handle numeric values" do
313
+ it 'should properly handle numeric values' do
270
314
  @cell.datatype = nil
271
315
  @cell.raw_value = '1'
272
316
  expect(@cell.value).to eq(1)
@@ -357,6 +401,12 @@ describe RubyXL::Cell do
357
401
  end
358
402
  end
359
403
 
404
+ context 'with RichText' do
405
+ it 'returns the value of the RichText' do
406
+ cell = RubyXL::Cell.new(is: RubyXL::RichText.new(t: RubyXL::Text.new(value: 'test')))
407
+ expect(cell.value).to eq('test')
408
+ end
409
+ end
360
410
  end
361
411
 
362
412
  describe '.change_contents' do
@@ -375,6 +425,15 @@ describe RubyXL::Cell do
375
425
  expect(@cell.formula).to be_nil
376
426
  end
377
427
 
428
+ it 'should cause cell value to match a time that is passed in' do
429
+ time = Time.parse('January 1, 2011')
430
+ @cell.change_contents(time)
431
+ expect(@cell).to receive(:is_date?).at_least(1).and_return(true)
432
+ expect(@cell.value).to eq(time.to_datetime)
433
+ expect(@cell.datatype).to be_nil
434
+ expect(@cell.formula).to be_nil
435
+ end
436
+
378
437
  it 'should case cell value to match a Float that is passed in' do
379
438
  number = 1.25
380
439
  @cell.change_contents(number)
@@ -391,8 +450,8 @@ describe RubyXL::Cell do
391
450
  expect(@cell.formula).to be_nil
392
451
  end
393
452
 
394
- it 'should case cell value to match an BigDecimal that is passed in' do
395
- number = BigDecimal.new('1234.5678')
453
+ it 'should cause cell value to match a BigDecimal that is passed in' do
454
+ number = BigDecimal('1234.5678')
396
455
  @cell.change_contents(number)
397
456
  expect(@cell.value).to eq(number)
398
457
  expect(@cell.datatype).to be_nil
@@ -566,5 +625,4 @@ describe RubyXL::Cell do
566
625
  expect(@cell.text_rotation).to eq(45)
567
626
  end
568
627
  end
569
-
570
628
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'rubyXL/convenience_methods/color'
3
5
 
@@ -7,8 +9,13 @@ describe RubyXL::Color do
7
9
  expect(RubyXL::Color.validate_color('0fbCAd')).to eq(true)
8
10
  end
9
11
 
12
+ it 'should return true if a valid hex color with alpha is passed' do
13
+ expect(RubyXL::Color.validate_color('01AbCdeF')).to eq(true)
14
+ end
15
+
10
16
  it 'should cause an error if an invalid hex color code or one with a # is passed' do
11
- expect {RubyXL::Color.validate_color('#G')}.to raise_error(RuntimeError)
17
+ expect { RubyXL::Color.validate_color('#G') }.to raise_error(RuntimeError)
18
+ expect { RubyXL::Color.validate_color('1234567') }.to raise_error(RuntimeError)
12
19
  end
13
20
  end
14
21
  end
@@ -1,25 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'English'
1
4
  require 'spec_helper'
2
5
  require 'tmpdir'
3
6
 
4
7
  describe RubyXL::Parser do
5
-
6
8
  before do
7
- @test_sheet_name = "This is a very long sheet name that should be trimmed to 31 characters for compatibility with MS Excel"
9
+ @test_sheet_name = 'This is a very long sheet name that should be trimmed ' \
10
+ 'to 31 characters for compatibility with MS Excel'
8
11
  @workbook = RubyXL::Workbook.new
9
- @workbook.add_worksheet("Test Worksheet")
12
+ @workbook.add_worksheet('Test Worksheet')
10
13
  @time = Time.at(Time.now.to_i) # Excel only saves times with 1-second precision.
11
14
  @time2 = @time + 123456
12
15
 
13
- ws = @workbook.add_worksheet("Escape Test")
14
- ws.add_cell(0, 0, "&")
15
- ws.add_cell(0, 1, "<")
16
- ws.add_cell(0, 2, ">")
17
- ws.add_cell(0, 3, "")
16
+ ws = @workbook.add_worksheet('Escape Test')
17
+ ws.add_cell(0, 0, '&')
18
+ ws.add_cell(0, 1, '<')
19
+ ws.add_cell(0, 2, '>')
20
+ ws.add_cell(0, 3, '')
18
21
 
19
- ws.add_cell(1, 0, "&")#TODO#.datatype = RubyXL::Cell::SHARED_STRING
20
- ws.add_cell(1, 1, "<")#TODO#.datatype = RubyXL::Cell::SHARED_STRING
21
- ws.add_cell(1, 2, ">")#TODO#.datatype = RubyXL::Cell::SHARED_STRING
22
- ws.add_cell(1, 3, "")
22
+ ws.add_cell(1, 0, '&') #TODO# .datatype = RubyXL::Cell::SHARED_STRING
23
+ ws.add_cell(1, 1, '<') #TODO# .datatype = RubyXL::Cell::SHARED_STRING
24
+ ws.add_cell(1, 2, '>') #TODO# .datatype = RubyXL::Cell::SHARED_STRING
25
+ ws.add_cell(1, 3, '')
23
26
 
24
27
  ws.add_cell(2, 0, 0)
25
28
  ws.add_cell(2, 1, 12345)
@@ -35,13 +38,13 @@ describe RubyXL::Parser do
35
38
 
36
39
  @workbook.add_worksheet(@test_sheet_name)
37
40
 
38
- @workbook.creator = "test creator"
39
- @workbook.modifier = "test modifier"
41
+ @workbook.creator = 'test creator'
42
+ @workbook.modifier = 'test modifier'
40
43
  @workbook.created_at = @time
41
44
  @workbook.modified_at = @time2
42
45
 
43
46
  @time_str = Time.now.to_s
44
- @file = "rubyXL-#{$$}-#{DateTime.now.strftime('%Q')}.xlsx"
47
+ @file = "rubyXL-#{$PROCESS_ID}-#{DateTime.now.strftime('%Q')}.xlsx"
45
48
  @workbook.write(@file)
46
49
  end
47
50
 
@@ -58,7 +61,7 @@ describe RubyXL::Parser do
58
61
  end
59
62
 
60
63
  it 'should cause an error if an xlsx or xlsm workbook is not passed' do
61
- expect {@workbook2 = RubyXL::Parser.parse("nonexistent_file.tmp")}.to raise_error(Zip::Error)
64
+ expect { @workbook2 = RubyXL::Parser.parse('nonexistent_file.tmp') }.to raise_error(Zip::Error)
62
65
  end
63
66
 
64
67
  it 'should construct consistent number formats' do
@@ -69,19 +72,19 @@ describe RubyXL::Parser do
69
72
 
70
73
  it 'should unescape HTML entities properly' do
71
74
  @workbook2 = RubyXL::Parser.parse(@file)
72
- expect(@workbook2["Escape Test"][0][0].value).to eq("&")
73
- expect(@workbook2["Escape Test"][0][1].value).to eq("<")
74
- expect(@workbook2["Escape Test"][0][2].value).to eq(">")
75
+ expect(@workbook2['Escape Test'][0][0].value).to eq('&')
76
+ expect(@workbook2['Escape Test'][0][1].value).to eq('<')
77
+ expect(@workbook2['Escape Test'][0][2].value).to eq('>')
75
78
 
76
- expect(@workbook2["Escape Test"][1][0].value).to eq("&")
77
- expect(@workbook2["Escape Test"][1][1].value).to eq("<")
78
- expect(@workbook2["Escape Test"][1][2].value).to eq(">")
79
+ expect(@workbook2['Escape Test'][1][0].value).to eq('&')
80
+ expect(@workbook2['Escape Test'][1][1].value).to eq('<')
81
+ expect(@workbook2['Escape Test'][1][2].value).to eq('>')
79
82
  end
80
83
 
81
84
  it 'should parse Core properties correctly' do
82
85
  @workbook2 = RubyXL::Parser.parse(@file)
83
- expect(@workbook2.creator).to eq("test creator")
84
- expect(@workbook2.modifier).to eq("test modifier")
86
+ expect(@workbook2.creator).to eq('test creator')
87
+ expect(@workbook2.modifier).to eq('test modifier')
85
88
  expect(@workbook2.created_at).to eq(@time)
86
89
  expect(@workbook2.modified_at).to eq(@time2)
87
90
  end
@@ -91,11 +94,9 @@ describe RubyXL::Parser do
91
94
  expect(@workbook2[@test_sheet_name]).to be_nil
92
95
  expect(@workbook2[@test_sheet_name[0..30]]).not_to be_nil
93
96
  end
94
-
95
97
  end
96
98
 
97
99
  describe 'parse_buffer' do
98
-
99
100
  it 'should parse string buffer correctly' do
100
101
  buffer = File.read(@file)
101
102
  expect(buffer).to be_instance_of(String)
@@ -109,10 +110,9 @@ describe RubyXL::Parser do
109
110
  f = RubyXL::Parser.parse_buffer(io)
110
111
  expect(f).to be_instance_of(RubyXL::Workbook)
111
112
  end
112
-
113
113
  end
114
114
 
115
115
  after do
116
- File.delete(@file) if File.exist?(@file)
116
+ FileUtils.rm_f(@file)
117
117
  end
118
118
  end
@@ -1,9 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe RubyXL::Reference do
4
-
5
- describe '.ind2ref + .ref2ind' do
6
- it 'should correctly return the "Excel Style" description of cells when given a row/column number' do
6
+ describe '.ind2ref' do
7
+ it "should correctly return the 'Excel Style' description of cells when given a row/column number" do
7
8
  expect(RubyXL::Reference.ind2ref(0, 26)).to eq('AA1')
8
9
  expect(RubyXL::Reference.ind2ref(99, 0)).to eq('A100')
9
10
  expect(RubyXL::Reference.ind2ref(0, 26)).to eq('AA1')
@@ -14,15 +15,50 @@ describe RubyXL::Reference do
14
15
  expect(RubyXL::Reference.ind2ref(0, 16383)).to eq('XFD1')
15
16
  end
16
17
 
17
- it 'should correctly convert back and forth between "Excel Style" and index style cell references' do
18
+ it "should correctly convert back and forth between 'Excel Style' and index style cell references" do
18
19
  0.upto(16383) do |n|
19
20
  expect(RubyXL::Reference.ref2ind(RubyXL::Reference.ind2ref(n, 16383 - n))).to eq([ n, 16383 - n ])
20
21
  end
21
22
  end
23
+ end
24
+
25
+ describe '.valid?' do
26
+ it 'should return true for valid references' do
27
+ expect(RubyXL::Reference.new('C23').valid?).to be true
28
+ end
29
+
30
+ it 'should return false for invalid references' do
31
+ expect(RubyXL::Reference.new('C2A').valid?).to be false
32
+ end
33
+ end
22
34
 
35
+ describe '.ref2ind' do
23
36
  it 'should return [-1, -1] if the Excel index is not well-formed' do
24
37
  expect(RubyXL::Reference.ref2ind('A1B')).to eq([-1, -1])
25
38
  end
26
39
  end
27
40
 
28
- end
41
+ describe '.new' do
42
+ it 'should take a string parameter' do
43
+ new_ref = RubyXL::Reference.new('C23')
44
+ expect(new_ref.single_cell?).to be true
45
+ expect(new_ref.to_s).to eq 'C23'
46
+ end
47
+
48
+ it 'should take 2 coordinate parameters' do
49
+ new_ref = RubyXL::Reference.new(11, 22)
50
+ expect(new_ref.single_cell?).to be true
51
+ expect(new_ref.to_s).to eq 'W12'
52
+ end
53
+
54
+ it 'should take 4 coordinate parameters' do
55
+ new_ref = RubyXL::Reference.new(11, 22, 33, 44)
56
+ expect(new_ref.single_cell?).to be false
57
+ expect(new_ref.to_s).to eq 'AH12:AS23'
58
+ end
59
+
60
+ it 'should take named parameters' do
61
+ expect(RubyXL::Reference.new(row_from: 44, row_to: 33, col_from: 22, col_to: 11).to_s).to eq('W45:L34')
62
+ end
63
+ end
64
+ end