rubyXL 3.4.18 → 3.4.25

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 (453) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +8 -8
  3. data/Gemfile.lock +37 -30
  4. data/README.rdoc +18 -9
  5. data/Rakefile +24 -25
  6. data/VERSION +1 -1
  7. data/lib/rubyXL/cell.rb +2 -4
  8. data/lib/rubyXL/convenience_methods/cell.rb +35 -31
  9. data/lib/rubyXL/convenience_methods/color.rb +3 -7
  10. data/lib/rubyXL/convenience_methods/workbook.rb +9 -4
  11. data/lib/rubyXL/convenience_methods/worksheet.rb +3 -4
  12. data/lib/rubyXL/objects/border.rb +0 -3
  13. data/lib/rubyXL/objects/calculation_chain.rb +2 -2
  14. data/lib/rubyXL/objects/cell_style.rb +1 -3
  15. data/lib/rubyXL/objects/chartsheet.rb +5 -9
  16. data/lib/rubyXL/objects/color.rb +1 -3
  17. data/lib/rubyXL/objects/column_range.rb +0 -3
  18. data/lib/rubyXL/objects/comments.rb +1 -4
  19. data/lib/rubyXL/objects/connection.rb +11 -11
  20. data/lib/rubyXL/objects/container_nodes.rb +1 -5
  21. data/lib/rubyXL/objects/content_types.rb +3 -6
  22. data/lib/rubyXL/objects/data_validation.rb +0 -2
  23. data/lib/rubyXL/objects/document_properties.rb +9 -13
  24. data/lib/rubyXL/objects/extensions.rb +0 -2
  25. data/lib/rubyXL/objects/external_links.rb +4 -6
  26. data/lib/rubyXL/objects/fill.rb +2 -5
  27. data/lib/rubyXL/objects/filters.rb +5 -7
  28. data/lib/rubyXL/objects/font.rb +2 -4
  29. data/lib/rubyXL/objects/formula.rb +3 -5
  30. data/lib/rubyXL/objects/ooxml_object.rb +13 -18
  31. data/lib/rubyXL/objects/query_table.rb +3 -3
  32. data/lib/rubyXL/objects/reference.rb +6 -8
  33. data/lib/rubyXL/objects/relationships.rb +5 -10
  34. data/lib/rubyXL/objects/root.rb +0 -2
  35. data/lib/rubyXL/objects/shared_strings.rb +3 -6
  36. data/lib/rubyXL/objects/sheet_common.rb +1 -3
  37. data/lib/rubyXL/objects/sheet_data.rb +4 -7
  38. data/lib/rubyXL/objects/simple_types.rb +3 -1
  39. data/lib/rubyXL/objects/storage.rb +51 -51
  40. data/lib/rubyXL/objects/stylesheet.rb +8 -15
  41. data/lib/rubyXL/objects/text.rb +5 -7
  42. data/lib/rubyXL/objects/theme.rb +4 -7
  43. data/lib/rubyXL/objects/workbook.rb +25 -27
  44. data/lib/rubyXL/objects/worksheet.rb +26 -22
  45. data/lib/rubyXL/parser.rb +1 -3
  46. data/lib/rubyXL/worksheet.rb +83 -84
  47. data/lib/rubyXL.rb +0 -1
  48. data/rdoc/README_rdoc.html +29 -24
  49. data/rdoc/RubyXL/AExtension.html +2 -2
  50. data/rdoc/RubyXL/AExtensionStorageArea.html +2 -2
  51. data/rdoc/RubyXL/ActiveX.html +4 -4
  52. data/rdoc/RubyXL/ActiveXBinary.html +2 -2
  53. data/rdoc/RubyXL/AdjustHandleList.html +2 -2
  54. data/rdoc/RubyXL/Alignment.html +2 -2
  55. data/rdoc/RubyXL/AlternateContent.html +2 -2
  56. data/rdoc/RubyXL/Authors.html +2 -2
  57. data/rdoc/RubyXL/AutoFilter.html +2 -2
  58. data/rdoc/RubyXL/AutoFilterColumn.html +2 -2
  59. data/rdoc/RubyXL/BinaryImageFile.html +2 -2
  60. data/rdoc/RubyXL/BodyProperties.html +2 -2
  61. data/rdoc/RubyXL/BooleanNode.html +2 -2
  62. data/rdoc/RubyXL/BooleanValue.html +2 -2
  63. data/rdoc/RubyXL/Border.html +6 -6
  64. data/rdoc/RubyXL/BorderEdge.html +4 -4
  65. data/rdoc/RubyXL/Borders.html +3 -3
  66. data/rdoc/RubyXL/Break.html +2 -2
  67. data/rdoc/RubyXL/BreakList.html +2 -2
  68. data/rdoc/RubyXL/CT_AdjPoint2D.html +2 -2
  69. data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +2 -2
  70. data/rdoc/RubyXL/CT_AlphaModulateEffect.html +2 -2
  71. data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +2 -2
  72. data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +2 -2
  73. data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +2 -2
  74. data/rdoc/RubyXL/CT_Backdrop.html +2 -2
  75. data/rdoc/RubyXL/CT_Bevel.html +2 -2
  76. data/rdoc/RubyXL/CT_BiLevelEffect.html +2 -2
  77. data/rdoc/RubyXL/CT_BlendEffect.html +2 -2
  78. data/rdoc/RubyXL/CT_Blip.html +2 -2
  79. data/rdoc/RubyXL/CT_BlipFillProperties.html +2 -2
  80. data/rdoc/RubyXL/CT_BlurEffect.html +2 -2
  81. data/rdoc/RubyXL/CT_Camera.html +2 -2
  82. data/rdoc/RubyXL/CT_Color.html +2 -2
  83. data/rdoc/RubyXL/CT_ColorChangeEffect.html +2 -2
  84. data/rdoc/RubyXL/CT_ColorMapping.html +2 -2
  85. data/rdoc/RubyXL/CT_ColorScheme.html +2 -2
  86. data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +2 -2
  87. data/rdoc/RubyXL/CT_ConnectionSite.html +2 -2
  88. data/rdoc/RubyXL/CT_ConnectionSiteList.html +2 -2
  89. data/rdoc/RubyXL/CT_DashStop.html +2 -2
  90. data/rdoc/RubyXL/CT_DashStopList.html +2 -2
  91. data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +2 -2
  92. data/rdoc/RubyXL/CT_DuotoneEffect.html +2 -2
  93. data/rdoc/RubyXL/CT_EffectContainer.html +2 -2
  94. data/rdoc/RubyXL/CT_EffectList.html +2 -2
  95. data/rdoc/RubyXL/CT_EffectReference.html +2 -2
  96. data/rdoc/RubyXL/CT_EffectStyleItem.html +2 -2
  97. data/rdoc/RubyXL/CT_EffectStyleList.html +2 -2
  98. data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +2 -2
  99. data/rdoc/RubyXL/CT_FillEffect.html +2 -2
  100. data/rdoc/RubyXL/CT_FillOverlayEffect.html +2 -2
  101. data/rdoc/RubyXL/CT_FillStyleList.html +2 -2
  102. data/rdoc/RubyXL/CT_FlatText.html +2 -2
  103. data/rdoc/RubyXL/CT_FontCollection.html +2 -2
  104. data/rdoc/RubyXL/CT_FontReference.html +2 -2
  105. data/rdoc/RubyXL/CT_GeomGuideList.html +2 -2
  106. data/rdoc/RubyXL/CT_GlowEffect.html +2 -2
  107. data/rdoc/RubyXL/CT_GradientFillProperties.html +2 -2
  108. data/rdoc/RubyXL/CT_GradientStop.html +2 -2
  109. data/rdoc/RubyXL/CT_GradientStopList.html +2 -2
  110. data/rdoc/RubyXL/CT_HSLEffect.html +2 -2
  111. data/rdoc/RubyXL/CT_HslColor.html +2 -2
  112. data/rdoc/RubyXL/CT_Hyperlink.html +2 -2
  113. data/rdoc/RubyXL/CT_InnerShadowEffect.html +2 -2
  114. data/rdoc/RubyXL/CT_LightRig.html +2 -2
  115. data/rdoc/RubyXL/CT_LineEndProperties.html +2 -2
  116. data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +2 -2
  117. data/rdoc/RubyXL/CT_LineProperties.html +2 -2
  118. data/rdoc/RubyXL/CT_LineStyleList.html +2 -2
  119. data/rdoc/RubyXL/CT_LinearShadeProperties.html +2 -2
  120. data/rdoc/RubyXL/CT_LuminanceEffect.html +2 -2
  121. data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +2 -2
  122. data/rdoc/RubyXL/CT_OuterShadowEffect.html +2 -2
  123. data/rdoc/RubyXL/CT_Path2D.html +2 -2
  124. data/rdoc/RubyXL/CT_Path2DArcTo.html +2 -2
  125. data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +2 -2
  126. data/rdoc/RubyXL/CT_Path2DList.html +2 -2
  127. data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +2 -2
  128. data/rdoc/RubyXL/CT_Path2DTo.html +2 -2
  129. data/rdoc/RubyXL/CT_PathShadeProperties.html +2 -2
  130. data/rdoc/RubyXL/CT_PatternFillProperties.html +2 -2
  131. data/rdoc/RubyXL/CT_Point3D.html +2 -2
  132. data/rdoc/RubyXL/CT_PolarAdjustHandle.html +2 -2
  133. data/rdoc/RubyXL/CT_PresetColor.html +2 -2
  134. data/rdoc/RubyXL/CT_PresetLineDashProperties.html +2 -2
  135. data/rdoc/RubyXL/CT_PresetShadowEffect.html +2 -2
  136. data/rdoc/RubyXL/CT_PresetTextShape.html +2 -2
  137. data/rdoc/RubyXL/CT_ReflectionEffect.html +2 -2
  138. data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +2 -2
  139. data/rdoc/RubyXL/CT_RelativeRect.html +2 -2
  140. data/rdoc/RubyXL/CT_SRgbColor.html +2 -2
  141. data/rdoc/RubyXL/CT_ScRgbColor.html +2 -2
  142. data/rdoc/RubyXL/CT_Scene3D.html +2 -2
  143. data/rdoc/RubyXL/CT_SchemeColor.html +2 -2
  144. data/rdoc/RubyXL/CT_Shape3D.html +2 -2
  145. data/rdoc/RubyXL/CT_ShapeStyle.html +2 -2
  146. data/rdoc/RubyXL/CT_SoftEdgesEffect.html +2 -2
  147. data/rdoc/RubyXL/CT_SphereCoords.html +2 -2
  148. data/rdoc/RubyXL/CT_StretchInfoProperties.html +2 -2
  149. data/rdoc/RubyXL/CT_StyleMatrix.html +2 -2
  150. data/rdoc/RubyXL/CT_StyleMatrixReference.html +2 -2
  151. data/rdoc/RubyXL/CT_SupplementalFont.html +2 -2
  152. data/rdoc/RubyXL/CT_SystemColor.html +2 -2
  153. data/rdoc/RubyXL/CT_TextAutonumberBullet.html +2 -2
  154. data/rdoc/RubyXL/CT_TextBlipBullet.html +2 -2
  155. data/rdoc/RubyXL/CT_TextCharBullet.html +2 -2
  156. data/rdoc/RubyXL/CT_TextCharacterProperties.html +2 -2
  157. data/rdoc/RubyXL/CT_TextFont.html +2 -2
  158. data/rdoc/RubyXL/CT_TextListStyle.html +2 -2
  159. data/rdoc/RubyXL/CT_TextNormalAutofit.html +2 -2
  160. data/rdoc/RubyXL/CT_TextParagraphProperties.html +2 -2
  161. data/rdoc/RubyXL/CT_TextSpacing.html +2 -2
  162. data/rdoc/RubyXL/CT_TextTabStop.html +2 -2
  163. data/rdoc/RubyXL/CT_TextTabStopList.html +2 -2
  164. data/rdoc/RubyXL/CT_TileInfoProperties.html +2 -2
  165. data/rdoc/RubyXL/CT_TintEffect.html +2 -2
  166. data/rdoc/RubyXL/CT_Transform2D.html +2 -2
  167. data/rdoc/RubyXL/CT_TransformEffect.html +2 -2
  168. data/rdoc/RubyXL/CT_Vector3D.html +2 -2
  169. data/rdoc/RubyXL/CT_XYAdjustHandle.html +2 -2
  170. data/rdoc/RubyXL/CalculationChain.html +2 -2
  171. data/rdoc/RubyXL/CalculationChainCell.html +2 -2
  172. data/rdoc/RubyXL/CalculationProperties.html +2 -2
  173. data/rdoc/RubyXL/Cell.html +17 -17
  174. data/rdoc/RubyXL/CellConvenienceMethods.html +105 -51
  175. data/rdoc/RubyXL/CellExt.html +2 -2
  176. data/rdoc/RubyXL/CellSmartTag.html +2 -2
  177. data/rdoc/RubyXL/CellSmartTagProperty.html +2 -2
  178. data/rdoc/RubyXL/CellSmartTags.html +2 -2
  179. data/rdoc/RubyXL/CellStyle.html +2 -2
  180. data/rdoc/RubyXL/CellStyleXFs.html +3 -3
  181. data/rdoc/RubyXL/CellStyles.html +3 -3
  182. data/rdoc/RubyXL/CellValue.html +3 -3
  183. data/rdoc/RubyXL/CellWatch.html +2 -2
  184. data/rdoc/RubyXL/CellWatches.html +2 -2
  185. data/rdoc/RubyXL/CellXFs.html +4 -6
  186. data/rdoc/RubyXL/ChartColorsFile.html +2 -2
  187. data/rdoc/RubyXL/ChartFile.html +3 -3
  188. data/rdoc/RubyXL/ChartStyleFile.html +2 -2
  189. data/rdoc/RubyXL/ChartUserShapesFile.html +2 -2
  190. data/rdoc/RubyXL/Chartsheet.html +3 -3
  191. data/rdoc/RubyXL/ChartsheetPageSetup.html +2 -2
  192. data/rdoc/RubyXL/ChartsheetProperties.html +2 -2
  193. data/rdoc/RubyXL/ChartsheetProtection.html +2 -2
  194. data/rdoc/RubyXL/ChartsheetView.html +2 -2
  195. data/rdoc/RubyXL/ChartsheetViews.html +2 -2
  196. data/rdoc/RubyXL/Color.html +4 -4
  197. data/rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html +4 -4
  198. data/rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html +8 -8
  199. data/rdoc/RubyXL/ColorConvenienceClasses.html +2 -2
  200. data/rdoc/RubyXL/ColorConvenienceMethods.html +3 -3
  201. data/rdoc/RubyXL/ColorFilter.html +2 -2
  202. data/rdoc/RubyXL/ColorScale.html +2 -2
  203. data/rdoc/RubyXL/ColorSet.html +2 -2
  204. data/rdoc/RubyXL/Colors.html +2 -2
  205. data/rdoc/RubyXL/ColumnRange.html +5 -5
  206. data/rdoc/RubyXL/ColumnRanges.html +6 -6
  207. data/rdoc/RubyXL/Comment.html +2 -2
  208. data/rdoc/RubyXL/CommentList.html +2 -2
  209. data/rdoc/RubyXL/CommentsFile.html +3 -3
  210. data/rdoc/RubyXL/ConditionalFormatValue.html +2 -2
  211. data/rdoc/RubyXL/ConditionalFormatting.html +2 -2
  212. data/rdoc/RubyXL/ConditionalFormattingRule.html +2 -2
  213. data/rdoc/RubyXL/Connection.html +2 -2
  214. data/rdoc/RubyXL/ConnectionTable.html +2 -2
  215. data/rdoc/RubyXL/ConnectionTables.html +2 -2
  216. data/rdoc/RubyXL/ConnectionTextField.html +2 -2
  217. data/rdoc/RubyXL/ConnectionTextFields.html +2 -2
  218. data/rdoc/RubyXL/Connections.html +2 -2
  219. data/rdoc/RubyXL/ContentTypeDefault.html +2 -2
  220. data/rdoc/RubyXL/ContentTypeOverride.html +2 -2
  221. data/rdoc/RubyXL/ContentTypes.html +6 -6
  222. data/rdoc/RubyXL/ControlPropertiesFile.html +2 -2
  223. data/rdoc/RubyXL/CorePropertiesFile.html +11 -11
  224. data/rdoc/RubyXL/CustomColor.html +2 -2
  225. data/rdoc/RubyXL/CustomColorList.html +2 -2
  226. data/rdoc/RubyXL/CustomFilter.html +2 -2
  227. data/rdoc/RubyXL/CustomFilters.html +2 -2
  228. data/rdoc/RubyXL/CustomGeometry.html +2 -2
  229. data/rdoc/RubyXL/CustomProperties.html +2 -2
  230. data/rdoc/RubyXL/CustomPropertiesFile.html +2 -2
  231. data/rdoc/RubyXL/CustomProperty.html +2 -2
  232. data/rdoc/RubyXL/CustomPropertyFile.html +2 -2
  233. data/rdoc/RubyXL/CustomSheetView.html +2 -2
  234. data/rdoc/RubyXL/CustomSheetViews.html +2 -2
  235. data/rdoc/RubyXL/CustomWorkbookView.html +2 -2
  236. data/rdoc/RubyXL/CustomWorkbookViews.html +2 -2
  237. data/rdoc/RubyXL/CustomXMLFile.html +2 -2
  238. data/rdoc/RubyXL/DXF.html +2 -2
  239. data/rdoc/RubyXL/DXFs.html +2 -2
  240. data/rdoc/RubyXL/DataBar.html +2 -2
  241. data/rdoc/RubyXL/DataConsolidate.html +2 -2
  242. data/rdoc/RubyXL/DataConsolidationReference.html +2 -2
  243. data/rdoc/RubyXL/DataConsolidationReferences.html +2 -2
  244. data/rdoc/RubyXL/DataType.html +2 -2
  245. data/rdoc/RubyXL/DataValidation.html +2 -2
  246. data/rdoc/RubyXL/DataValidations.html +2 -2
  247. data/rdoc/RubyXL/DateGroupItem.html +2 -2
  248. data/rdoc/RubyXL/DefinedName.html +2 -2
  249. data/rdoc/RubyXL/DefinedNameExt.html +2 -2
  250. data/rdoc/RubyXL/DefinedNames.html +2 -2
  251. data/rdoc/RubyXL/DefinedNamesExt.html +2 -2
  252. data/rdoc/RubyXL/DocumentPropertiesFile.html +4 -4
  253. data/rdoc/RubyXL/DrawingFile.html +3 -3
  254. data/rdoc/RubyXL/DynamicFilter.html +2 -2
  255. data/rdoc/RubyXL/EmbeddedControl.html +2 -2
  256. data/rdoc/RubyXL/EmbeddedControls.html +2 -2
  257. data/rdoc/RubyXL/Extension.html +2 -2
  258. data/rdoc/RubyXL/ExtensionStorageArea.html +2 -2
  259. data/rdoc/RubyXL/Extents.html +2 -2
  260. data/rdoc/RubyXL/ExternalBook.html +2 -2
  261. data/rdoc/RubyXL/ExternalLinksFile.html +3 -3
  262. data/rdoc/RubyXL/ExternalReference.html +2 -2
  263. data/rdoc/RubyXL/ExternalReferences.html +2 -2
  264. data/rdoc/RubyXL/ExtraColorSchemeList.html +2 -2
  265. data/rdoc/RubyXL/FieldItem.html +2 -2
  266. data/rdoc/RubyXL/FileRecoveryProperties.html +2 -2
  267. data/rdoc/RubyXL/FileSharing.html +2 -2
  268. data/rdoc/RubyXL/FileVersion.html +2 -2
  269. data/rdoc/RubyXL/Fill.html +3 -3
  270. data/rdoc/RubyXL/Fills.html +3 -3
  271. data/rdoc/RubyXL/FilterContainer.html +2 -2
  272. data/rdoc/RubyXL/FloatNode.html +2 -2
  273. data/rdoc/RubyXL/FloatValue.html +2 -2
  274. data/rdoc/RubyXL/Font.html +5 -5
  275. data/rdoc/RubyXL/FontConvenienceMethods.html +3 -3
  276. data/rdoc/RubyXL/FontScheme.html +2 -2
  277. data/rdoc/RubyXL/Fonts.html +3 -3
  278. data/rdoc/RubyXL/Formula.html +2 -2
  279. data/rdoc/RubyXL/FunctionGroup.html +2 -2
  280. data/rdoc/RubyXL/FunctionGroups.html +2 -2
  281. data/rdoc/RubyXL/GenericStorageObject.html +5 -5
  282. data/rdoc/RubyXL/GradientFill.html +2 -2
  283. data/rdoc/RubyXL/HeaderFooterSettings.html +2 -2
  284. data/rdoc/RubyXL/Hyperlink.html +2 -2
  285. data/rdoc/RubyXL/HyperlinkRelFile.html +2 -2
  286. data/rdoc/RubyXL/Hyperlinks.html +2 -2
  287. data/rdoc/RubyXL/IconFilter.html +2 -2
  288. data/rdoc/RubyXL/IconSet.html +2 -2
  289. data/rdoc/RubyXL/IgnoredError.html +2 -2
  290. data/rdoc/RubyXL/IgnoredErrors.html +2 -2
  291. data/rdoc/RubyXL/IndexedColors.html +2 -2
  292. data/rdoc/RubyXL/InputCells.html +2 -2
  293. data/rdoc/RubyXL/IntegerNode.html +2 -2
  294. data/rdoc/RubyXL/IntegerValue.html +2 -2
  295. data/rdoc/RubyXL/LegacyCell.html +3 -3
  296. data/rdoc/RubyXL/LegacyWorksheet.html +3 -3
  297. data/rdoc/RubyXL/MRUColors.html +2 -2
  298. data/rdoc/RubyXL/MacrosFile.html +2 -2
  299. data/rdoc/RubyXL/MergedCell.html +2 -2
  300. data/rdoc/RubyXL/MergedCells.html +2 -2
  301. data/rdoc/RubyXL/NumFmt.html +2 -2
  302. data/rdoc/RubyXL/NumberFormat.html +4 -4
  303. data/rdoc/RubyXL/NumberFormats.html +3 -3
  304. data/rdoc/RubyXL/OLEObject.html +2 -2
  305. data/rdoc/RubyXL/OLEObjectFile.html +2 -2
  306. data/rdoc/RubyXL/OLEObjects.html +2 -2
  307. data/rdoc/RubyXL/OLESize.html +2 -2
  308. data/rdoc/RubyXL/OOXMLContainerObject.html +8 -8
  309. data/rdoc/RubyXL/OOXMLIgnored.html +4 -4
  310. data/rdoc/RubyXL/OOXMLObject.html +3 -3
  311. data/rdoc/RubyXL/OOXMLObjectClassMethods.html +18 -18
  312. data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +14 -14
  313. data/rdoc/RubyXL/OOXMLRelationshipsFile.html +16 -16
  314. data/rdoc/RubyXL/OOXMLTopLevelObject.html +8 -8
  315. data/rdoc/RubyXL/OdbcOleDbProperties.html +2 -2
  316. data/rdoc/RubyXL/Offset.html +2 -2
  317. data/rdoc/RubyXL/OlapProperties.html +2 -2
  318. data/rdoc/RubyXL/OleItem.html +2 -2
  319. data/rdoc/RubyXL/OleItems.html +2 -2
  320. data/rdoc/RubyXL/OleLink.html +2 -2
  321. data/rdoc/RubyXL/OutlineProperties.html +2 -2
  322. data/rdoc/RubyXL/PageMargins.html +2 -2
  323. data/rdoc/RubyXL/PageSetup.html +2 -2
  324. data/rdoc/RubyXL/PageSetupProperties.html +2 -2
  325. data/rdoc/RubyXL/Pane.html +2 -2
  326. data/rdoc/RubyXL/Parser.html +5 -5
  327. data/rdoc/RubyXL/PatternFill.html +2 -2
  328. data/rdoc/RubyXL/PhoneticProperties.html +2 -2
  329. data/rdoc/RubyXL/PhoneticRun.html +2 -2
  330. data/rdoc/RubyXL/PivotArea.html +2 -2
  331. data/rdoc/RubyXL/PivotCache.html +2 -2
  332. data/rdoc/RubyXL/PivotCacheDefinitionFile.html +2 -2
  333. data/rdoc/RubyXL/PivotCacheRecordsFile.html +2 -2
  334. data/rdoc/RubyXL/PivotCaches.html +2 -2
  335. data/rdoc/RubyXL/PivotReference.html +2 -2
  336. data/rdoc/RubyXL/PivotReferences.html +2 -2
  337. data/rdoc/RubyXL/PivotTableFile.html +2 -2
  338. data/rdoc/RubyXL/PivotTableSelection.html +2 -2
  339. data/rdoc/RubyXL/PresetGeometry.html +2 -2
  340. data/rdoc/RubyXL/PrintOptions.html +2 -2
  341. data/rdoc/RubyXL/PrinterSettingsFile.html +2 -2
  342. data/rdoc/RubyXL/ProtectedRange.html +2 -2
  343. data/rdoc/RubyXL/ProtectedRanges.html +2 -2
  344. data/rdoc/RubyXL/Protection.html +2 -2
  345. data/rdoc/RubyXL/QueryParameter.html +2 -2
  346. data/rdoc/RubyXL/QueryParameters.html +2 -2
  347. data/rdoc/RubyXL/QueryTable.html +2 -2
  348. data/rdoc/RubyXL/QueryTableDeletedField.html +2 -2
  349. data/rdoc/RubyXL/QueryTableDeletedFields.html +2 -2
  350. data/rdoc/RubyXL/QueryTableField.html +2 -2
  351. data/rdoc/RubyXL/QueryTableFields.html +2 -2
  352. data/rdoc/RubyXL/QueryTableRefresh.html +2 -2
  353. data/rdoc/RubyXL/RID.html +2 -2
  354. data/rdoc/RubyXL/RawOOXML.html +4 -4
  355. data/rdoc/RubyXL/Reference.html +36 -17
  356. data/rdoc/RubyXL/Relationship.html +2 -2
  357. data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +3 -3
  358. data/rdoc/RubyXL/RelationshipSupport.html +8 -8
  359. data/rdoc/RubyXL/RevisionPointer.html +2 -2
  360. data/rdoc/RubyXL/RichText.html +5 -4
  361. data/rdoc/RubyXL/RichTextRun.html +3 -3
  362. data/rdoc/RubyXL/Row.html +11 -11
  363. data/rdoc/RubyXL/RowExt.html +2 -2
  364. data/rdoc/RubyXL/RunProperties.html +2 -2
  365. data/rdoc/RubyXL/Scenario.html +2 -2
  366. data/rdoc/RubyXL/Scenarios.html +2 -2
  367. data/rdoc/RubyXL/Selection.html +3 -3
  368. data/rdoc/RubyXL/ShapeGuide.html +2 -2
  369. data/rdoc/RubyXL/ShapeTextRectangle.html +2 -2
  370. data/rdoc/RubyXL/SharedStringsTable.html +9 -9
  371. data/rdoc/RubyXL/Sheet.html +2 -2
  372. data/rdoc/RubyXL/SheetCalculationProperties.html +2 -2
  373. data/rdoc/RubyXL/SheetData.html +4 -4
  374. data/rdoc/RubyXL/SheetDataExt.html +2 -2
  375. data/rdoc/RubyXL/SheetDataSet.html +2 -2
  376. data/rdoc/RubyXL/SheetMetadata.html +108 -0
  377. data/rdoc/RubyXL/SheetName.html +2 -2
  378. data/rdoc/RubyXL/SheetNames.html +2 -2
  379. data/rdoc/RubyXL/Sheets.html +2 -2
  380. data/rdoc/RubyXL/SlicerCacheFile.html +2 -2
  381. data/rdoc/RubyXL/SlicerFile.html +2 -2
  382. data/rdoc/RubyXL/SmartTagProperties.html +2 -2
  383. data/rdoc/RubyXL/SmartTagType.html +2 -2
  384. data/rdoc/RubyXL/SmartTagTypes.html +2 -2
  385. data/rdoc/RubyXL/SmartTags.html +2 -2
  386. data/rdoc/RubyXL/SortCondition.html +2 -2
  387. data/rdoc/RubyXL/SortState.html +2 -2
  388. data/rdoc/RubyXL/Sqref.html +4 -4
  389. data/rdoc/RubyXL/Stop.html +2 -2
  390. data/rdoc/RubyXL/StringNode.html +2 -2
  391. data/rdoc/RubyXL/StringNodeW3C.html +4 -4
  392. data/rdoc/RubyXL/StringValue.html +2 -2
  393. data/rdoc/RubyXL/Stylesheet.html +7 -7
  394. data/rdoc/RubyXL/TableFile.html +2 -2
  395. data/rdoc/RubyXL/TableParts.html +2 -2
  396. data/rdoc/RubyXL/TableStyle.html +2 -2
  397. data/rdoc/RubyXL/TableStyles.html +2 -2
  398. data/rdoc/RubyXL/Text.html +6 -6
  399. data/rdoc/RubyXL/TextImportSettings.html +2 -2
  400. data/rdoc/RubyXL/Theme.html +5 -5
  401. data/rdoc/RubyXL/ThemeElements.html +2 -2
  402. data/rdoc/RubyXL/ThumbnailFile.html +2 -2
  403. data/rdoc/RubyXL/Top10.html +2 -2
  404. data/rdoc/RubyXL/VMLDrawingFile.html +3 -3
  405. data/rdoc/RubyXL/Variant.html +2 -2
  406. data/rdoc/RubyXL/Vector.html +3 -3
  407. data/rdoc/RubyXL/VectorValue.html +2 -2
  408. data/rdoc/RubyXL/VisualProperties.html +2 -2
  409. data/rdoc/RubyXL/WebPublishObject.html +2 -2
  410. data/rdoc/RubyXL/WebPublishObjects.html +2 -2
  411. data/rdoc/RubyXL/WebPublishingItem.html +2 -2
  412. data/rdoc/RubyXL/WebPublishingItems.html +2 -2
  413. data/rdoc/RubyXL/WebPublishingProperties.html +2 -2
  414. data/rdoc/RubyXL/WebQueryProperties.html +2 -2
  415. data/rdoc/RubyXL/Workbook.html +9 -6
  416. data/rdoc/RubyXL/WorkbookConvenienceMethods.html +65 -21
  417. data/rdoc/RubyXL/WorkbookProperties.html +2 -2
  418. data/rdoc/RubyXL/WorkbookProtection.html +2 -2
  419. data/rdoc/RubyXL/WorkbookRoot.html +7 -7
  420. data/rdoc/RubyXL/WorkbookView.html +2 -2
  421. data/rdoc/RubyXL/WorkbookViews.html +2 -2
  422. data/rdoc/RubyXL/Worksheet.html +32 -8
  423. data/rdoc/RubyXL/WorksheetConvenienceMethods.html +75 -75
  424. data/rdoc/RubyXL/WorksheetDimensions.html +2 -2
  425. data/rdoc/RubyXL/WorksheetFormatProperties.html +2 -2
  426. data/rdoc/RubyXL/WorksheetProperties.html +2 -2
  427. data/rdoc/RubyXL/WorksheetProtection.html +2 -2
  428. data/rdoc/RubyXL/WorksheetView.html +2 -2
  429. data/rdoc/RubyXL/WorksheetViews.html +2 -2
  430. data/rdoc/RubyXL/XF.html +2 -2
  431. data/rdoc/RubyXL.html +4 -2
  432. data/rdoc/created.rid +44 -44
  433. data/rdoc/fonts/SourceCodePro-Bold.ttf +0 -0
  434. data/rdoc/fonts/SourceCodePro-Regular.ttf +0 -0
  435. data/rdoc/index.html +4 -3
  436. data/rdoc/js/navigation.js.gz +0 -0
  437. data/rdoc/js/search_index.js +1 -1
  438. data/rdoc/js/search_index.js.gz +0 -0
  439. data/rdoc/js/searcher.js.gz +0 -0
  440. data/rdoc/table_of_contents.html +37 -3
  441. data/rubyXL.gemspec +5 -4
  442. data/spec/lib/cell_spec.rb +14 -7
  443. data/spec/lib/color_spec.rb +1 -1
  444. data/spec/lib/parser_spec.rb +24 -27
  445. data/spec/lib/reference_spec.rb +9 -3
  446. data/spec/lib/rgb_color_spec.rb +14 -3
  447. data/spec/lib/stylesheet_spec.rb +8 -11
  448. data/spec/lib/text_spec.rb +1 -5
  449. data/spec/lib/workbook_spec.rb +14 -4
  450. data/spec/lib/worksheet_spec.rb +577 -535
  451. data/spec/spec_helper.rb +2 -0
  452. data/test/test_parse_write.rb +3 -3
  453. metadata +4 -3
@@ -62,8 +62,8 @@ module RubyXL
62
62
 
63
63
  # http://www.datypic.com/sc/ooxml/e-ssml_queryTable.html
64
64
  class QueryTable < OOXMLTopLevelObject
65
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml'
66
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/queryTable'
65
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml'.freeze
66
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/queryTable'.freeze
67
67
 
68
68
  include RubyXL::RelationshipSupport
69
69
 
@@ -94,7 +94,7 @@ module RubyXL
94
94
  define_child_node(RubyXL::ExtensionStorageArea)
95
95
 
96
96
  define_element_name 'queryTable'
97
- set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
97
+ set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
98
98
  'http://schemas.openxmlformats.org/officeDocument/2006/relationships' => 'r')
99
99
 
100
100
  def xlsx_path
@@ -29,6 +29,10 @@ module RubyXL
29
29
  (@row_range.begin == @row_range.end) && (@col_range.begin == @col_range.end)
30
30
  end
31
31
 
32
+ def valid?
33
+ !(row_range.begin.negative? || col_range.begin.negative?)
34
+ end
35
+
32
36
  def first_row
33
37
  @row_range.begin
34
38
  end
@@ -71,7 +75,7 @@ module RubyXL
71
75
  end
72
76
 
73
77
  # Converts +row+ and +col+ zero-based indices to Excel-style cell reference
74
- # (0) A...Z, AA...AZ, BA... ...ZZ, AAA... ...AZZ, BAA... ...XFD (16383)
78
+ # <0> A...Z, AA...AZ, BA... ...ZZ, AAA... ...AZZ, BAA... ...XFD <16383>
75
79
  def self.ind2ref(row = 0, col = 0)
76
80
  str = ''
77
81
 
@@ -88,16 +92,11 @@ module RubyXL
88
92
  # Converts Excel-style cell reference to +row+ and +col+ zero-based indices.
89
93
  def self.ref2ind(str)
90
94
  return [ -1, -1 ] unless str =~ /\A([A-Z]+)(\d+)\Z/
91
-
92
- col = 0
93
- $1.each_byte { |chr| col = col * 26 + (chr - 64) }
94
- [ $2.to_i - 1, col - 1 ]
95
+ [ Regexp.last_match(2).to_i - 1, Regexp.last_match(1).each_byte.inject(0) { |col, chr| col * 26 + (chr - 64) } - 1 ]
95
96
  end
96
-
97
97
  end
98
98
 
99
99
  class Sqref < Array
100
-
101
100
  def initialize(str)
102
101
  str.split.each { |ref_str| self << RubyXL::Reference.new(ref_str) }
103
102
  end
@@ -105,6 +104,5 @@ module RubyXL
105
104
  def to_s
106
105
  self.collect{ |ref| ref.to_s }.join(' ')
107
106
  end
108
-
109
107
  end
110
108
  end
@@ -2,7 +2,6 @@ require 'pathname'
2
2
  require 'rubyXL/objects/ooxml_object'
3
3
 
4
4
  module RubyXL
5
-
6
5
  class RID < OOXMLObject
7
6
  define_relationship(:required => true)
8
7
  end
@@ -16,7 +15,7 @@ module RubyXL
16
15
  end
17
16
 
18
17
  class OOXMLRelationshipsFile < OOXMLTopLevelObject
19
- CONTENT_TYPE = 'application/vnd.openxmlformats-package.relationships+xml'
18
+ CONTENT_TYPE = 'application/vnd.openxmlformats-package.relationships+xml'.freeze
20
19
  SAVE_ORDER = 100
21
20
 
22
21
  define_child_node(RubyXL::Relationship, :collection => true, :accessor => :relationships)
@@ -28,8 +27,8 @@ module RubyXL
28
27
  @@debug_indent = ($DEBUG ? 0 : nil)
29
28
 
30
29
  def new_relationship(target, type)
31
- RubyXL::Relationship.new(:id => "rId#{relationships.size + 1}",
32
- :type => type,
30
+ RubyXL::Relationship.new(:id => "rId#{relationships.size + 1}",
31
+ :type => type,
33
32
  :target => target)
34
33
  end
35
34
  protected :new_relationship
@@ -37,8 +36,8 @@ module RubyXL
37
36
  def add_relationship(obj)
38
37
  return if obj.nil? || !defined?(obj.class::REL_TYPE) || (obj.respond_to?(:empty?) && obj.empty?)
39
38
 
40
- relationships << RubyXL::Relationship.new(:id => "rId#{relationships.size + 1}",
41
- :type => obj.class::REL_TYPE,
39
+ relationships << RubyXL::Relationship.new(:id => "rId#{relationships.size + 1}",
40
+ :type => obj.class::REL_TYPE,
42
41
  :target => obj.xlsx_path.relative_path_from(owner.xlsx_path.dirname))
43
42
  end
44
43
  protected :add_relationship
@@ -131,12 +130,10 @@ module RubyXL
131
130
  basename = base_file_path.root? ? '' : base_file_path.basename
132
131
  base_file_path.dirname.join('_rels', "#{basename}.rels").cleanpath
133
132
  end
134
-
135
133
  end
136
134
 
137
135
  # +RelationshipSupport+ module enables automatic loading and saving of _rels for the respective file
138
136
  module RelationshipSupport
139
-
140
137
  module ClassMehods
141
138
  def define_relationship(klass, accessor = nil)
142
139
  class_variable_get(:@@ooxml_relationships)[klass] = accessor
@@ -212,7 +209,5 @@ module RubyXL
212
209
  end
213
210
  self.generic_storage << related_file
214
211
  end
215
-
216
212
  end
217
-
218
213
  end
@@ -5,7 +5,6 @@ require 'rubyXL/objects/content_types'
5
5
  require 'rubyXL/objects/workbook'
6
6
 
7
7
  module RubyXL
8
-
9
8
  class WorkbookRoot
10
9
  @@debug = $DEBUG
11
10
 
@@ -82,5 +81,4 @@ module RubyXL
82
81
  root
83
82
  end
84
83
  end
85
-
86
84
  end
@@ -3,15 +3,14 @@ require 'rubyXL/objects/text'
3
3
  require 'rubyXL/objects/extensions'
4
4
 
5
5
  module RubyXL
6
-
7
6
  # http://www.datypic.com/sc/ooxml/e-ssml_sst.html
8
7
  class SharedStringsTable < OOXMLTopLevelObject
9
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml'
10
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings'
8
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml'.freeze
9
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings'.freeze
11
10
 
12
11
  # According to http://msdn.microsoft.com/en-us/library/office/gg278314.aspx,
13
12
  # +count+ and +uniqueCount+ may be either both missing, or both present. Need to validate.
14
- define_attribute(:uniqueCount, :int)
13
+ define_attribute(:uniqueCount, :int)
15
14
  define_child_node(RubyXL::RichText, :collection => :with_count, :node_name => 'si', :accessor => :strings)
16
15
  define_child_node(RubyXL::ExtensionStorageArea)
17
16
  define_element_name 'sst'
@@ -64,7 +63,5 @@ module RubyXL
64
63
  def xlsx_path
65
64
  ROOT.join('xl', 'sharedStrings.xml')
66
65
  end
67
-
68
66
  end
69
-
70
67
  end
@@ -2,7 +2,6 @@ require 'rubyXL/objects/ooxml_object'
2
2
  require 'rubyXL/objects/storage'
3
3
 
4
4
  module RubyXL
5
-
6
5
  # http://www.datypic.com/sc/ooxml/e-ssml_webPublishItem-1.html
7
6
  class WebPublishingItem < OOXMLObject
8
7
  define_attribute(:id, :int, :required => true)
@@ -12,7 +11,7 @@ module RubyXL
12
11
  define_attribute(:sourceObject, :string)
13
12
  define_attribute(:destinationFile, :string, :required => true)
14
13
  define_attribute(:title, :string)
15
- define_attribute(:autoRepublish, :bool, :default => false)
14
+ define_attribute(:autoRepublish, :bool, :default => false)
16
15
  define_element_name 'webPublishItem'
17
16
  end
18
17
 
@@ -47,5 +46,4 @@ module RubyXL
47
46
  define_child_node(RubyXL::StringNode, :node_name => :firstFooter)
48
47
  define_element_name 'headerFooter'
49
48
  end
50
-
51
49
  end
@@ -5,7 +5,6 @@ require 'rubyXL/objects/formula'
5
5
  require 'rubyXL/cell'
6
6
 
7
7
  module RubyXL
8
-
9
8
  # http://msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.cellvalues(v=office.14).aspx
10
9
  module DataType
11
10
  SHARED_STRING = 's'
@@ -14,7 +13,7 @@ module RubyXL
14
13
  ERROR = 'e'
15
14
  BOOLEAN = 'b'
16
15
  NUMBER = 'n'
17
- DATE = 'd' # Only available in Office2010.
16
+ DATE = 'd' # Only available in Office2010.
18
17
  end
19
18
 
20
19
  # http://www.datypic.com/sc/ooxml/e-ssml_v-1.html
@@ -35,13 +34,13 @@ module RubyXL
35
34
 
36
35
  define_attribute(:r, :ref)
37
36
  define_attribute(:s, :int, :default => 0, :accessor => :style_index)
38
- define_attribute(:t, RubyXL::ST_CellType, :accessor => :datatype, :default => 'n' )
37
+ define_attribute(:t, RubyXL::ST_CellType, :accessor => :datatype, :default => 'n')
39
38
  define_attribute(:cm, :int, :default => 0)
40
39
  define_attribute(:vm, :int, :default => 0)
41
40
  define_attribute(:ph, :bool, :default => false)
42
41
  define_child_node(RubyXL::Formula, :accessor => :formula)
43
42
  define_child_node(RubyXL::CellValue, :accessor => :value_container)
44
- define_child_node(RubyXL::RichText) # is
43
+ define_child_node(RubyXL::RichText) # is
45
44
  define_element_name 'c'
46
45
 
47
46
  attr_accessor :worksheet
@@ -116,7 +115,7 @@ module RubyXL
116
115
  if is then is.to_s
117
116
  elsif is_date? then workbook.num_to_date(r.to_f)
118
117
  elsif r.is_a?(String) && (r =~ NUMBER_REGEXP) then # Numeric
119
- if $1 != '' then r.to_f
118
+ if Regexp.last_match(1) != '' then r.to_f
120
119
  else r.to_i
121
120
  end
122
121
  else r
@@ -216,7 +215,5 @@ module RubyXL
216
215
  def size
217
216
  rows.size
218
217
  end
219
-
220
218
  end
221
-
222
219
  end
@@ -140,7 +140,7 @@ module RubyXL
140
140
  ST_TextHorzOverflowType = %w{ overflow clip }
141
141
  ST_TextVerticalType = %w{ horz vert vert270 wordArtVert eaVert mongolianVert wordArtVertRtl }
142
142
  ST_TextWrappingType = %w{ none square }
143
- ST_TextAnchoringType = %w{ t ctr b just dist }
143
+ ST_TextAnchoringType = %w{ t ctr b just dist }
144
144
  ST_TextShapeType = %w{ textNoShape textPlain textStop textTriangle textTriangleInverted textChevron
145
145
  textChevronInverted textRingInside textRingOutside textArchUp textArchDown
146
146
  textCircle textButton textArchUpPour textArchDownPour textCirclePour textButtonPour
@@ -223,6 +223,8 @@ module RubyXL
223
223
 
224
224
  ST_TextUnderlineType = %w{ none words sng dbl heavy dotted dottedHeavy dash dashHeavy dashLong dashLongHeavy
225
225
  dotDash dotDashHeavy dotDotDash dotDotDashHeavy wavy wavyHeavy wavyDbl }
226
+ ST_UnderlineValues = %w{ single double singleAccounting doubleAccounting none }
227
+
226
228
  ST_TextStrikeType = %w{ noStrike sngStrike dblStrike }
227
229
  ST_TextCapsType = %w{ none small all }
228
230
 
@@ -1,5 +1,4 @@
1
1
  module RubyXL
2
-
3
2
  class GenericStorageObject
4
3
  SAVE_ORDER = 0
5
4
 
@@ -24,18 +23,18 @@ module RubyXL
24
23
  end
25
24
 
26
25
  class PrinterSettingsFile < GenericStorageObject
27
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings'
28
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings'
26
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings'.freeze
27
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings'.freeze
29
28
  end
30
29
 
31
30
  class CustomPropertyFile < GenericStorageObject
32
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty'
33
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/customProperty'
31
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty'.freeze
32
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/customProperty'.freeze
34
33
  end
35
34
 
36
35
  class DrawingFile < GenericStorageObject
37
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawing+xml'
38
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing'
36
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawing+xml'.freeze
37
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing'.freeze
39
38
 
40
39
  include RubyXL::RelationshipSupport
41
40
 
@@ -46,12 +45,11 @@ module RubyXL
46
45
  else store_relationship(rf, :unknown)
47
46
  end
48
47
  end
49
-
50
48
  end
51
49
 
52
50
  class ChartFile < GenericStorageObject
53
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml'
54
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart'
51
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml'.freeze
52
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart'.freeze
55
53
 
56
54
  include RubyXL::RelationshipSupport
57
55
 
@@ -63,18 +61,17 @@ module RubyXL
63
61
  else store_relationship(rf, :unknown)
64
62
  end
65
63
  end
66
-
67
64
  end
68
65
 
69
66
  class BinaryImageFile < GenericStorageObject
70
- CONTENT_TYPE = 'image/jpeg'
71
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image'
67
+ CONTENT_TYPE = 'image/jpeg'.freeze
68
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image'.freeze
72
69
  end
73
70
 
74
71
  class VMLDrawingFile < GenericStorageObject
75
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.vmlDrawing'
76
- # CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml'
77
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing'
72
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.vmlDrawing'.freeze
73
+ # CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml'.freeze
74
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing'.freeze
78
75
 
79
76
  include RubyXL::RelationshipSupport
80
77
 
@@ -82,33 +79,33 @@ module RubyXL
82
79
  end
83
80
 
84
81
  class ChartColorsFile < GenericStorageObject
85
- CONTENT_TYPE = 'application/vnd.ms-office.chartcolorstyle+xml'
86
- REL_TYPE = 'http://schemas.microsoft.com/office/2011/relationships/chartColorStyle'
82
+ CONTENT_TYPE = 'application/vnd.ms-office.chartcolorstyle+xml'.freeze
83
+ REL_TYPE = 'http://schemas.microsoft.com/office/2011/relationships/chartColorStyle'.freeze
87
84
  end
88
85
 
89
86
  class ChartStyleFile < GenericStorageObject
90
- CONTENT_TYPE = 'application/vnd.ms-office.chartstyle+xml'
91
- REL_TYPE = 'http://schemas.microsoft.com/office/2011/relationships/chartStyle'
87
+ CONTENT_TYPE = 'application/vnd.ms-office.chartstyle+xml'.freeze
88
+ REL_TYPE = 'http://schemas.microsoft.com/office/2011/relationships/chartStyle'.freeze
92
89
  end
93
90
 
94
91
  class TableFile < GenericStorageObject
95
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml'
96
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/table'
92
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml'.freeze
93
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/table'.freeze
97
94
  end
98
95
 
99
96
  class ControlPropertiesFile < GenericStorageObject
100
- CONTENT_TYPE = 'application/vnd.ms-excel.controlproperties+xml'
101
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/ctrlProp'
97
+ CONTENT_TYPE = 'application/vnd.ms-excel.controlproperties+xml'.freeze
98
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/ctrlProp'.freeze
102
99
  end
103
100
 
104
101
  class PivotCacheRecordsFile < GenericStorageObject
105
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml'
106
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheRecords'
102
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml'.freeze
103
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheRecords'.freeze
107
104
  end
108
105
 
109
106
  class PivotCacheDefinitionFile < GenericStorageObject
110
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml'
111
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheDefinition'
107
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml'.freeze
108
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheDefinition'.freeze
112
109
 
113
110
  include RubyXL::RelationshipSupport
114
111
 
@@ -116,8 +113,8 @@ module RubyXL
116
113
  end
117
114
 
118
115
  class PivotTableFile < GenericStorageObject
119
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml'
120
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotTable'
116
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml'.freeze
117
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotTable'.freeze
121
118
 
122
119
  include RubyXL::RelationshipSupport
123
120
 
@@ -125,64 +122,67 @@ module RubyXL
125
122
  end
126
123
 
127
124
  class HyperlinkRelFile < GenericStorageObject
128
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink'
125
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink'.freeze
129
126
  end
130
127
 
131
128
  class ThumbnailFile < GenericStorageObject
132
- REL_TYPE = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail'
133
- CONTENT_TYPE = 'image/x-wmf'
129
+ REL_TYPE = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail'.freeze
130
+ CONTENT_TYPE = 'image/x-wmf'.freeze
134
131
  end
135
132
 
136
133
  class ChartUserShapesFile < GenericStorageObject
137
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml'
138
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartUserShapes'
134
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml'.freeze
135
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartUserShapes'.freeze
139
136
  end
140
137
 
141
138
  class CustomPropertiesFile < GenericStorageObject
142
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.custom-properties+xml'
143
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties'
139
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.custom-properties+xml'.freeze
140
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties'.freeze
144
141
  end
145
142
 
146
143
  class MacrosFile < GenericStorageObject
147
- CONTENT_TYPE = 'application/vnd.ms-office.vbaProject'
148
- REL_TYPE = 'http://schemas.microsoft.com/office/2006/relationships/vbaProject'
144
+ CONTENT_TYPE = 'application/vnd.ms-office.vbaProject'.freeze
145
+ REL_TYPE = 'http://schemas.microsoft.com/office/2006/relationships/vbaProject'.freeze
149
146
  end
150
147
 
151
148
  class CustomXMLFile < GenericStorageObject
152
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml'
149
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml'.freeze
153
150
  end
154
151
 
155
152
  class SlicerFile < GenericStorageObject
156
- CONTENT_TYPE = 'application/vnd.ms-excel.slicer+xml'
157
- REL_TYPE = 'http://schemas.microsoft.com/office/2007/relationships/slicer'
153
+ CONTENT_TYPE = 'application/vnd.ms-excel.slicer+xml'.freeze
154
+ REL_TYPE = 'http://schemas.microsoft.com/office/2007/relationships/slicer'.freeze
158
155
  end
159
156
 
160
157
  class SlicerCacheFile < GenericStorageObject
161
- CONTENT_TYPE = 'application/vnd.ms-excel.slicerCache+xml'
162
- REL_TYPE = 'http://schemas.microsoft.com/office/2007/relationships/slicerCache'
158
+ CONTENT_TYPE = 'application/vnd.ms-excel.slicerCache+xml'.freeze
159
+ REL_TYPE = 'http://schemas.microsoft.com/office/2007/relationships/slicerCache'.freeze
163
160
  end
164
161
 
165
162
  class OLEObjectFile < GenericStorageObject
166
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.oleObject'
167
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject'
163
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.oleObject'.freeze
164
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject'.freeze
165
+ end
166
+
167
+ class SheetMetadata < GenericStorageObject
168
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml'.freeze
169
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata'.freeze
168
170
  end
169
171
 
170
172
  class ActiveX < GenericStorageObject
171
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/control'
173
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/control'.freeze
172
174
 
173
175
  include RubyXL::RelationshipSupport
174
176
 
175
177
  def attach_relationship(rid, rf)
176
178
  case rf
177
- when RubyXL::ChartFile then store_relationship(rf) # TODO
179
+ when RubyXL::ChartFile then store_relationship(rf) # TODO
178
180
  else store_relationship(rf, :unknown)
179
181
  end
180
182
  end
181
-
182
183
  end
183
184
 
184
185
  class ActiveXBinary < GenericStorageObject
185
- REL_TYPE = 'http://schemas.microsoft.com/office/2006/relationships/activeXControlBinary'
186
+ REL_TYPE = 'http://schemas.microsoft.com/office/2006/relationships/activeXControlBinary'.freeze
186
187
  end
187
-
188
188
  end
@@ -6,7 +6,6 @@ require 'rubyXL/objects/border'
6
6
  require 'rubyXL/objects/extensions'
7
7
 
8
8
  module RubyXL
9
-
10
9
  # http://www.datypic.com/sc/ooxml/e-ssml_numFmt-1.html
11
10
  class NumberFormat < OOXMLObject
12
11
  define_attribute(:numFmtId, :int, :required => true)
@@ -15,9 +14,8 @@ module RubyXL
15
14
 
16
15
  def is_date_format?
17
16
  # v-------- Toss all the escaped chars -------v v--- and see if any date-related remained
18
- !!(format_code.gsub(/(\"[^\"]*\"|\[[^\]]*\]|[\\_*].)/i, '') =~ /[dmyhs]/i)
17
+ !!(format_code.gsub(/("[^"]*"|\[[^\]]*\]|[\\_*].)/i, '') =~ /[dmyhs]/i)
19
18
  end
20
-
21
19
  end
22
20
 
23
21
  # http://www.datypic.com/sc/ooxml/e-ssml_numFmts-1.html
@@ -63,7 +61,6 @@ module RubyXL
63
61
  def find_by_format_id(format_id)
64
62
  self.find { |fmt| fmt.num_fmt_id == format_id }
65
63
  end
66
-
67
64
  end
68
65
 
69
66
  # http://www.datypic.com/sc/ooxml/e-ssml_cellStyleXfs-1.html
@@ -83,9 +80,7 @@ module RubyXL
83
80
 
84
81
  def self.default
85
82
  self.new(:_ => [
86
- RubyXL::XF.new(
87
- :num_fmt_id => 0, :font_id => 0, :fill_id => 0, :border_id => 0, :xfId => 0
88
- )
83
+ RubyXL::XF.new(:num_fmt_id => 0, :font_id => 0, :fill_id => 0, :border_id => 0, :xfId => 0)
89
84
  ])
90
85
  end
91
86
  end
@@ -161,8 +156,8 @@ module RubyXL
161
156
 
162
157
  # http://www.datypic.com/sc/ooxml/e-ssml_styleSheet.html
163
158
  class Stylesheet < OOXMLTopLevelObject
164
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml'
165
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles'
159
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml'.freeze
160
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles'.freeze
166
161
 
167
162
  define_child_node(RubyXL::NumberFormats, :accessor => :number_formats)
168
163
  define_child_node(RubyXL::Fonts)
@@ -176,11 +171,11 @@ module RubyXL
176
171
  define_child_node(RubyXL::Colors)
177
172
  define_child_node(RubyXL::ExtensionStorageArea)
178
173
  define_element_name 'styleSheet'
179
- set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
174
+ set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
180
175
  'http://schemas.openxmlformats.org/officeDocument/2006/relationships' => 'r',
181
- 'http://schemas.openxmlformats.org/markup-compatibility/2006' => 'mc',
182
- 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac' => 'x14ac',
183
- 'urn:schemas-microsoft-com:mac:vml' => 'mv')
176
+ 'http://schemas.openxmlformats.org/markup-compatibility/2006' => 'mc',
177
+ 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac' => 'x14ac',
178
+ 'urn:schemas-microsoft-com:mac:vml' => 'mv')
184
179
 
185
180
  def initialize(*args)
186
181
  super
@@ -226,7 +221,5 @@ module RubyXL
226
221
 
227
222
  return max_fmt_id
228
223
  end
229
-
230
224
  end
231
-
232
225
  end
@@ -4,7 +4,6 @@ require 'rubyXL/objects/container_nodes'
4
4
  require 'rubyXL/objects/color'
5
5
 
6
6
  module RubyXL
7
-
8
7
  # http://www.datypic.com/sc/ooxml/e-ssml_t-1.html
9
8
  class Text < OOXMLObject
10
9
  define_attribute(:_, :string, :accessor => :value)
@@ -19,12 +18,12 @@ module RubyXL
19
18
 
20
19
  def before_write_xml
21
20
  preserve_whitespace
22
- self.value.gsub!(INVALID_XML10_CHARS) { |c| "_x%04x_" % c.ord }
21
+ self.value.gsub!(INVALID_XML10_CHARS) { |c| '_x%04x_' % c.ord }
23
22
  true
24
23
  end
25
24
 
26
25
  def to_s
27
- value.to_s.gsub(ESCAPED_UNICODE) { |m| $1.hex.chr(::Encoding::UTF_8) }
26
+ value.to_s.gsub(ESCAPED_UNICODE) { Regexp.last_match(1).hex.chr(::Encoding::UTF_8) }
28
27
  end
29
28
  end
30
29
 
@@ -57,7 +56,6 @@ module RubyXL
57
56
  def to_s
58
57
  t.to_s
59
58
  end
60
-
61
59
  end
62
60
 
63
61
  # http://www.datypic.com/sc/ooxml/e-ssml_rPh-1.html
@@ -70,7 +68,7 @@ module RubyXL
70
68
 
71
69
  # http://www.datypic.com/sc/ooxml/e-ssml_phoneticPr-1.html
72
70
  class PhoneticProperties < OOXMLObject
73
- define_attribute(:fontId, :int, :required => true)
71
+ define_attribute(:fontId, :int, :required => true)
74
72
  define_attribute(:type, RubyXL::ST_PhoneticType, :default => 'fullwidthKatakana')
75
73
  define_attribute(:alignment, RubyXL::ST_PhoneticAlignment, :default => 'left')
76
74
  define_element_name 'phoneticPr'
@@ -85,10 +83,10 @@ module RubyXL
85
83
  define_element_name 'is'
86
84
 
87
85
  def to_s
88
- str = if t.nil? then '' else t.to_s end
86
+ # `dup` here unfreezes the string since it's not a constant but initial value
87
+ str = if t.nil? then ''.dup else t.to_s end
89
88
  r && r.each { |rtr| str << rtr.to_s if rtr }
90
89
  str
91
90
  end
92
91
  end
93
-
94
92
  end
@@ -1,9 +1,9 @@
1
1
  # encoding: UTF-8 <-- magic comment, need this because of sime fancy fonts in the default scheme below. See http://stackoverflow.com/questions/6444826/ruby-utf-8-file-encoding
2
+
2
3
  require 'rubyXL/objects/ooxml_object'
3
4
  require 'rubyXL/objects/extensions'
4
5
 
5
6
  module RubyXL
6
-
7
7
  # http://www.datypic.com/sc/ooxml/e-a_ext-1.html
8
8
  class AExtension < OOXMLObject
9
9
  define_attribute(:uri, :string)
@@ -19,7 +19,6 @@ module RubyXL
19
19
  def write_xml(xml, node_name_override = nil)
20
20
  self.raw_xml
21
21
  end
22
-
23
22
  end
24
23
 
25
24
  class AExtensionStorageArea < OOXMLObject
@@ -1183,7 +1182,7 @@ module RubyXL
1183
1182
  define_child_node(RubyXL::CT_GradientFillProperties)
1184
1183
  define_child_node(RubyXL::CT_BlipFillProperties)
1185
1184
  define_child_node(RubyXL::CT_PatternFillProperties)
1186
- define_child_node(RubyXL::BooleanValue, :node_name => 'a:grpFill')
1185
+ define_child_node(RubyXL::BooleanValue, :node_name => 'a:grpFill')
1187
1186
  # -- EG_EffectProperties
1188
1187
  define_child_node(RubyXL::CT_EffectList)
1189
1188
  define_child_node(RubyXL::CT_EffectContainer, :node_name => 'a:effectDag')
@@ -1373,8 +1372,8 @@ module RubyXL
1373
1372
 
1374
1373
  # http://www.datypic.com/sc/ooxml/e-a_theme.html
1375
1374
  class Theme < OOXMLTopLevelObject
1376
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.theme+xml'
1377
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme'
1375
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.theme+xml'.freeze
1376
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme'.freeze
1378
1377
 
1379
1378
  define_attribute(:name, :string, :default => '')
1380
1379
  define_child_node(RubyXL::ThemeElements)
@@ -1729,7 +1728,5 @@ module RubyXL
1729
1728
  </a:theme>'
1730
1729
  self.parse(default_theme)
1731
1730
  end
1732
-
1733
1731
  end
1734
-
1735
1732
  end