spreadsheet_architect 3.3.1 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -1
  3. data/README.md +46 -58
  4. data/lib/spreadsheet_architect/axlsx_string_width_patch.rb +21 -0
  5. data/lib/spreadsheet_architect/class_methods/xlsx.rb +49 -1
  6. data/lib/spreadsheet_architect/utils.rb +41 -2
  7. data/lib/spreadsheet_architect/utils/xlsx.rb +2 -13
  8. data/lib/spreadsheet_architect/version.rb +1 -1
  9. data/test/dummy_app/config/application.rb +1 -4
  10. data/test/dummy_app/db/test.sqlite3 +0 -0
  11. data/test/dummy_app/log/test.log +107293 -8605
  12. data/test/dummy_app/tmp/2.0.1/integration/alt_xlsx.xlsx +0 -0
  13. data/test/dummy_app/tmp/2.0.1/integration/csv.csv +6 -0
  14. data/test/dummy_app/tmp/2.0.1/integration/ods.ods +0 -0
  15. data/test/dummy_app/tmp/2.0.1/integration/xlsx.xlsx +0 -0
  16. data/test/dummy_app/tmp/2.0.1/kitchen_sink.ods +0 -0
  17. data/test/dummy_app/tmp/2.0.1/kitchen_sink.xlsx +0 -0
  18. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.csv +3 -0
  19. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.ods +0 -0
  20. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.xlsx +0 -0
  21. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.csv +1 -0
  22. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.ods +0 -0
  23. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.xlsx +0 -0
  24. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.csv +6 -0
  25. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.ods +0 -0
  26. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.xlsx +0 -0
  27. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/data.csv +3 -0
  28. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/data.ods +0 -0
  29. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/data.xlsx +0 -0
  30. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/empty.csv +0 -0
  31. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/empty.ods +0 -0
  32. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/empty.xlsx +0 -0
  33. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/instances.csv +6 -0
  34. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/instances.ods +0 -0
  35. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/instances.xlsx +0 -0
  36. data/test/dummy_app/tmp/2.0.1/models/CustomPost/data.csv +3 -0
  37. data/test/dummy_app/tmp/2.0.1/models/CustomPost/data.ods +0 -0
  38. data/test/dummy_app/tmp/2.0.1/models/CustomPost/data.xlsx +0 -0
  39. data/test/dummy_app/tmp/2.0.1/models/CustomPost/empty.csv +1 -0
  40. data/test/dummy_app/tmp/2.0.1/models/CustomPost/empty.ods +0 -0
  41. data/test/dummy_app/tmp/2.0.1/models/CustomPost/empty.xlsx +0 -0
  42. data/test/dummy_app/tmp/2.0.1/models/CustomPost/instances.csv +6 -0
  43. data/test/dummy_app/tmp/2.0.1/models/CustomPost/instances.ods +0 -0
  44. data/test/dummy_app/tmp/2.0.1/models/CustomPost/instances.xlsx +0 -0
  45. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.csv +3 -0
  46. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.ods +0 -0
  47. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.xlsx +0 -0
  48. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.csv +1 -0
  49. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.ods +0 -0
  50. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.xlsx +0 -0
  51. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.csv +6 -0
  52. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.ods +0 -0
  53. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.xlsx +0 -0
  54. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.csv +3 -0
  55. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.ods +0 -0
  56. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.xlsx +0 -0
  57. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.csv +1 -0
  58. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.ods +0 -0
  59. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.xlsx +0 -0
  60. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.csv +6 -0
  61. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.ods +0 -0
  62. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.xlsx +0 -0
  63. data/test/dummy_app/tmp/2.0.1/models/Post/data.csv +3 -0
  64. data/test/dummy_app/tmp/2.0.1/models/Post/data.ods +0 -0
  65. data/test/dummy_app/tmp/2.0.1/models/Post/data.xlsx +0 -0
  66. data/test/dummy_app/tmp/2.0.1/models/Post/empty.csv +0 -0
  67. data/test/dummy_app/tmp/2.0.1/models/Post/empty.ods +0 -0
  68. data/test/dummy_app/tmp/2.0.1/models/Post/empty.xlsx +0 -0
  69. data/test/dummy_app/tmp/2.0.1/models/Post/instances.csv +6 -0
  70. data/test/dummy_app/tmp/2.0.1/models/Post/instances.ods +0 -0
  71. data/test/dummy_app/tmp/2.0.1/models/Post/instances.xlsx +0 -0
  72. data/test/dummy_app/tmp/2.0.1/multi_sheet.ods +0 -0
  73. data/test/dummy_app/tmp/2.0.1/multi_sheet.xlsx +0 -0
  74. data/test/dummy_app/tmp/3.0.0.pre/integration/alt_xlsx.xlsx +0 -0
  75. data/test/dummy_app/tmp/3.0.0.pre/integration/csv.csv +5 -5
  76. data/test/dummy_app/tmp/3.0.0.pre/integration/ods.ods +0 -0
  77. data/test/dummy_app/tmp/3.0.0.pre/integration/xlsx.xlsx +0 -0
  78. data/test/dummy_app/tmp/3.0.0.pre/kitchen_sink.ods +0 -0
  79. data/test/dummy_app/tmp/3.0.0.pre/kitchen_sink.xlsx +0 -0
  80. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.csv +1 -1
  81. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.ods +0 -0
  82. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.xlsx +0 -0
  83. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.ods +0 -0
  84. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.xlsx +0 -0
  85. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.csv +5 -5
  86. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.ods +0 -0
  87. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.xlsx +0 -0
  88. data/test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/data.csv +1 -1
  89. data/test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/data.ods +0 -0
  90. data/test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/data.xlsx +0 -0
  91. data/test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/empty.ods +0 -0
  92. data/test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/empty.xlsx +0 -0
  93. data/test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/instances.csv +5 -5
  94. data/test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/instances.ods +0 -0
  95. data/test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/instances.xlsx +0 -0
  96. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.csv +1 -1
  97. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.ods +0 -0
  98. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.xlsx +0 -0
  99. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.ods +0 -0
  100. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.xlsx +0 -0
  101. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.csv +5 -5
  102. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.ods +0 -0
  103. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.xlsx +0 -0
  104. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.csv +1 -1
  105. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.ods +0 -0
  106. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.xlsx +0 -0
  107. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.ods +0 -0
  108. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.xlsx +0 -0
  109. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.csv +5 -5
  110. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.ods +0 -0
  111. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.xlsx +0 -0
  112. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.csv +1 -1
  113. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.ods +0 -0
  114. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.xlsx +0 -0
  115. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.csv +0 -1
  116. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.ods +0 -0
  117. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.xlsx +0 -0
  118. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.csv +5 -5
  119. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.ods +0 -0
  120. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.xlsx +0 -0
  121. data/test/dummy_app/tmp/3.0.0.pre/models/Post/data.csv +1 -1
  122. data/test/dummy_app/tmp/3.0.0.pre/models/Post/data.ods +0 -0
  123. data/test/dummy_app/tmp/3.0.0.pre/models/Post/data.xlsx +0 -0
  124. data/test/dummy_app/tmp/3.0.0.pre/models/Post/empty.csv +1 -0
  125. data/test/dummy_app/tmp/3.0.0.pre/models/Post/empty.ods +0 -0
  126. data/test/dummy_app/tmp/3.0.0.pre/models/Post/empty.xlsx +0 -0
  127. data/test/dummy_app/tmp/3.0.0.pre/models/Post/instances.csv +5 -5
  128. data/test/dummy_app/tmp/3.0.0.pre/models/Post/instances.ods +0 -0
  129. data/test/dummy_app/tmp/3.0.0.pre/models/Post/instances.xlsx +0 -0
  130. data/test/dummy_app/tmp/3.0.0.pre/multi_sheet.ods +0 -0
  131. data/test/dummy_app/tmp/3.0.0.pre/multi_sheet.xlsx +0 -0
  132. data/test/dummy_app/tmp/axlsx-master/integration/alt_xlsx.xlsx +0 -0
  133. data/test/dummy_app/tmp/axlsx-master/integration/csv.csv +6 -0
  134. data/test/dummy_app/tmp/axlsx-master/integration/ods.ods +0 -0
  135. data/test/dummy_app/tmp/axlsx-master/integration/xlsx.xlsx +0 -0
  136. data/test/dummy_app/tmp/axlsx-master/kitchen_sink.ods +0 -0
  137. data/test/dummy_app/tmp/axlsx-master/kitchen_sink.xlsx +0 -0
  138. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.csv +4 -0
  139. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.ods +0 -0
  140. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.xlsx +0 -0
  141. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.csv +1 -0
  142. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.ods +0 -0
  143. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.xlsx +0 -0
  144. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.csv +6 -0
  145. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.ods +0 -0
  146. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.xlsx +0 -0
  147. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/data.csv +4 -0
  148. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/data.ods +0 -0
  149. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/data.xlsx +0 -0
  150. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/empty.csv +1 -0
  151. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/empty.ods +0 -0
  152. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/empty.xlsx +0 -0
  153. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/instances.csv +6 -0
  154. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/instances.ods +0 -0
  155. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/instances.xlsx +0 -0
  156. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/data.csv +4 -0
  157. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/data.ods +0 -0
  158. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/data.xlsx +0 -0
  159. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.csv +1 -0
  160. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.ods +0 -0
  161. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.xlsx +0 -0
  162. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.csv +6 -0
  163. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.ods +0 -0
  164. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.xlsx +0 -0
  165. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.csv +4 -0
  166. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.ods +0 -0
  167. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.xlsx +0 -0
  168. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.csv +1 -0
  169. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.ods +0 -0
  170. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.xlsx +0 -0
  171. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.csv +6 -0
  172. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.ods +0 -0
  173. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.xlsx +0 -0
  174. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.csv +4 -0
  175. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.ods +0 -0
  176. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.xlsx +0 -0
  177. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.csv +1 -0
  178. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.ods +0 -0
  179. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.xlsx +0 -0
  180. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.csv +6 -0
  181. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.ods +0 -0
  182. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.xlsx +0 -0
  183. data/test/dummy_app/tmp/axlsx-master/models/Post/data.csv +4 -0
  184. data/test/dummy_app/tmp/axlsx-master/models/Post/data.ods +0 -0
  185. data/test/dummy_app/tmp/axlsx-master/models/Post/data.xlsx +0 -0
  186. data/test/dummy_app/tmp/axlsx-master/models/Post/empty.csv +1 -0
  187. data/test/dummy_app/tmp/axlsx-master/models/Post/empty.ods +0 -0
  188. data/test/dummy_app/tmp/axlsx-master/models/Post/empty.xlsx +0 -0
  189. data/test/dummy_app/tmp/axlsx-master/models/Post/instances.csv +6 -0
  190. data/test/dummy_app/tmp/axlsx-master/models/Post/instances.ods +0 -0
  191. data/test/dummy_app/tmp/axlsx-master/models/Post/instances.xlsx +0 -0
  192. data/test/dummy_app/tmp/axlsx-master/multi_sheet.ods +0 -0
  193. data/test/dummy_app/tmp/axlsx-master/multi_sheet.xlsx +0 -0
  194. data/test/test_helper.rb +5 -7
  195. data/test/unit/exceptions_test.rb +4 -0
  196. data/test/unit/kitchen_sink_test.rb +6 -5
  197. data/test/unit/utils_test.rb +33 -2
  198. data/test/unit/xlsx_freeze_test.rb +44 -0
  199. data/test/unit/xlsx_utils_test.rb +0 -21
  200. metadata +354 -106
  201. data/lib/spreadsheet_architect/monkey_patches/axlsx_column_width.rb +0 -56
  202. data/test/custom_assertions.rb +0 -21
@@ -0,0 +1,4 @@
1
+
2
+ row1,test1
3
+ 123.456,,123
4
+ 123,2019-09-05,2019-09-05 04:38:44 -0700
@@ -0,0 +1,6 @@
1
+ Name,The Content,Created At,Created At Date,asd
2
+ 0,2,2019-09-05 11:38:44 UTC,2019-09-05,tadaaa
3
+ 1,3,2019-09-05 11:38:44 UTC,2019-09-05,tadaaa
4
+ 2,4,2019-09-05 11:38:44 UTC,2019-09-05,tadaaa
5
+ 3,5,2019-09-05 11:38:44 UTC,2019-09-05,tadaaa
6
+ 4,6,2019-09-05 11:38:44 UTC,2019-09-05,tadaaa
@@ -0,0 +1,4 @@
1
+
2
+ row1,test1
3
+ 123.456,,123
4
+ 123,2019-09-05,2019-09-05 04:38:45 -0700
@@ -0,0 +1,6 @@
1
+ Name,The Content,Created At,Created At Date,asd
2
+ 0,2,2019-09-05 11:38:44 UTC,2019-09-05,tadaaa
3
+ 1,3,2019-09-05 11:38:44 UTC,2019-09-05,tadaaa
4
+ 2,4,2019-09-05 11:38:44 UTC,2019-09-05,tadaaa
5
+ 3,5,2019-09-05 11:38:44 UTC,2019-09-05,tadaaa
6
+ 4,6,2019-09-05 11:38:44 UTC,2019-09-05,tadaaa
@@ -0,0 +1,4 @@
1
+
2
+ row1,test1
3
+ 123.456,,123
4
+ 123,2019-09-05,2019-09-05 04:38:44 -0700
@@ -0,0 +1,6 @@
1
+ Name,Content,Object ID
2
+ 0,2,70178248097220
3
+ 1,3,70178248097180
4
+ 2,4,70178248097140
5
+ 3,5,70178248097100
6
+ 4,6,70178248097060
@@ -0,0 +1,4 @@
1
+
2
+ row1,test1
3
+ 123.456,,123
4
+ 123,2019-09-05,2019-09-05 04:38:44 -0700
@@ -0,0 +1,6 @@
1
+ Name,Content,Object ID
2
+ 0,2,70178248093200
3
+ 1,3,70178248093160
4
+ 2,4,70178248093120
5
+ 3,5,70178248093080
6
+ 4,6,70178248093040
@@ -0,0 +1,4 @@
1
+
2
+ row1,test1
3
+ 123.456,,123
4
+ 123,2019-09-05,2019-09-05 04:38:44 -0700
@@ -0,0 +1,6 @@
1
+ Id,Name,Content,Age,Created At,Updated At
2
+ ,0,2,,2019-09-05 04:38:44 -0700,
3
+ ,1,3,,2019-09-05 04:38:44 -0700,
4
+ ,2,4,,2019-09-05 04:38:44 -0700,
5
+ ,3,5,,2019-09-05 04:38:44 -0700,
6
+ ,4,6,,2019-09-05 04:38:44 -0700,
@@ -27,8 +27,6 @@ Minitest::Reporters.use!(
27
27
  Minitest.backtrace_filter
28
28
  )
29
29
 
30
- require 'custom_assertions'
31
-
32
30
  post_count = Post.count
33
31
  if post_count < 5
34
32
  (5 - post_count).times do |i|
@@ -36,14 +34,14 @@ if post_count < 5
36
34
  end
37
35
  end
38
36
 
39
- axlsx_spec = Gem.loaded_specs['axlsx']
40
- if !axlsx_spec.source.is_a?(Bundler::Source::Rubygems)
41
- axlsx_version = 'axlsx-master'
37
+ caxlsx_spec = Gem.loaded_specs['caxlsx']
38
+ if caxlsx_spec.source.is_a?(Bundler::Source::Rubygems)
39
+ caxlsx_version = caxlsx_spec.version.to_s
42
40
  else
43
- axlsx_version = axlsx_spec.version.to_s
41
+ caxlsx_version = 'caxlsx-master'
44
42
  end
45
43
 
46
- VERSIONED_BASE_PATH = Rails.root.join("../../tmp/#{axlsx_version}")
44
+ VERSIONED_BASE_PATH = Rails.root.join("../../tmp/#{caxlsx_version}")
47
45
 
48
46
  ### Cleanup old test spreadsheets
49
47
  FileUtils.remove_dir(VERSIONED_BASE_PATH, true)
@@ -19,6 +19,10 @@ class ExceptionsTest < ActiveSupport::TestCase
19
19
  conditional_row_styles = [{if: true, styles: false}]
20
20
  SpreadsheetArchitect::Utils::XLSX.conditional_styles_for_row(conditional_row_styles, true, true)
21
21
  end
22
+
23
+ assert_raise error do
24
+ SpreadsheetArchitect::Utils.get_options({freeze: {rows: 1}, freeze_headers: true}, SpreadsheetArchitect)
25
+ end
22
26
  end
23
27
 
24
28
  test "NoDataError" do
@@ -11,7 +11,8 @@ class KitchenSinkTest < ActiveSupport::TestCase
11
11
  data: 50.times.map{|i| [i, "foobar-#{i}", 5.4*i, true, Date.today, Time.now]},
12
12
  header_style: {background_color: "000000", color: "FFFFFF", align: :center, font_size: 12, bold: true},
13
13
  row_style: {background_color: nil, color: "000000", align: :left, font_size: 12},
14
- sheet_name: 'Kitchen Sink'
14
+ sheet_name: 'Kitchen Sink',
15
+ freeze_headers: true,
15
16
  }
16
17
  end
17
18
 
@@ -19,7 +20,7 @@ class KitchenSinkTest < ActiveSupport::TestCase
19
20
  end
20
21
 
21
22
  def test_xlsx
22
- @options.merge!({
23
+ opts = @options.merge({
23
24
  column_styles: [
24
25
  {columns: 0, styles: {bold: true}},
25
26
  {columns: (1..3), styles: {color: "444444"}},
@@ -73,7 +74,7 @@ class KitchenSinkTest < ActiveSupport::TestCase
73
74
  })
74
75
 
75
76
  # Using Array Data
76
- file_data = SpreadsheetArchitect.to_xlsx(@options)
77
+ file_data = SpreadsheetArchitect.to_xlsx(opts)
77
78
 
78
79
  File.open(VERSIONED_BASE_PATH.join("kitchen_sink.xlsx"),'w+b') do |f|
79
80
  f.write file_data
@@ -81,7 +82,7 @@ class KitchenSinkTest < ActiveSupport::TestCase
81
82
  end
82
83
 
83
84
  def test_ods
84
- @options.merge!({
85
+ opts = @options.merge({
85
86
  headers: [
86
87
  ['Latest Posts'],
87
88
  ['Title','Category','Author','Boolean','Posted on','Posted At']
@@ -99,7 +100,7 @@ class KitchenSinkTest < ActiveSupport::TestCase
99
100
  })
100
101
 
101
102
  # Using Array Data
102
- file_data = SpreadsheetArchitect.to_ods(@options)
103
+ file_data = SpreadsheetArchitect.to_ods(opts)
103
104
 
104
105
  File.open(VERSIONED_BASE_PATH.join("kitchen_sink.ods"),'w+b') do |f|
105
106
  f.write file_data
@@ -40,7 +40,7 @@ class UtilsTest < ActiveSupport::TestCase
40
40
 
41
41
  ### using Data option
42
42
  output = klass.get_cell_data(@options.merge(headers: true), SpreadsheetArchitect)
43
- assert_equal false, output[:headers]
43
+ assert_equal [[]], output[:headers]
44
44
 
45
45
  output = klass.get_cell_data(@options.merge(column_types: nil), SpreadsheetArchitect)
46
46
  assert_nil output[:column_types]
@@ -153,7 +153,7 @@ class UtilsTest < ActiveSupport::TestCase
153
153
  end
154
154
 
155
155
  test "stringify_keys" do
156
- hash = klass.stringify_keys
156
+ hash = klass.stringify_keys({})
157
157
  assert_empty hash
158
158
 
159
159
  hash = klass.stringify_keys({foo: :bar})
@@ -176,4 +176,35 @@ class UtilsTest < ActiveSupport::TestCase
176
176
  assert_nil hash[:foo]
177
177
  assert_equal hash['foo']['foo']['foo']['foo'], :bar
178
178
  end
179
+
180
+ test "symbolize_keys" do
181
+ hash = klass.symbolize_keys({})
182
+ assert_empty hash
183
+
184
+ hash = klass.symbolize_keys({'foo' => :bar})
185
+ assert_nil hash['foo']
186
+ assert_equal hash[:foo], :bar
187
+
188
+ hash = klass.symbolize_keys({'foo' => :bar, bar: :foo})
189
+ assert_nil hash['foo']
190
+ assert_equal hash[:foo], :bar
191
+
192
+ hash = klass.symbolize_keys({'foo' => {'foo' => :bar}})
193
+ assert_nil hash['foo']
194
+ assert_equal hash[:foo][:foo], :bar
195
+
196
+ hash = klass.symbolize_keys({'foo' => {'foo' => {'foo' => :bar}}})
197
+ assert_nil hash['foo']
198
+ assert_equal hash[:foo][:foo][:foo], :bar
199
+ end
200
+
201
+ test "hash_array_symbolize_keys" do
202
+ array = klass.hash_array_symbolize_keys([])
203
+ assert_empty array
204
+
205
+ array = klass.hash_array_symbolize_keys([{'foo' => :bar}])
206
+ assert_nil array[0]['foo']
207
+ assert_equal array[0][:foo], :bar
208
+ end
209
+
179
210
  end
@@ -0,0 +1,44 @@
1
+ require "test_helper"
2
+
3
+ class XlsxFreezeTest < ActiveSupport::TestCase
4
+
5
+ def setup
6
+ @options = {
7
+ headers: [
8
+ ['Latest Posts'],
9
+ ['Title','Category','Author','Posted on','Posted At','Earnings']
10
+ ],
11
+ data: 50.times.map{|i| [i, "foobar-#{i}", 5.4*i, true, Date.today, Time.now]},
12
+ }
13
+ end
14
+
15
+ def teardown
16
+ end
17
+
18
+ def test_1
19
+ opts = @options.merge({
20
+ freeze: {rows: 1, columns: 1},
21
+ })
22
+
23
+ # Using Array Data
24
+ file_data = SpreadsheetArchitect.to_xlsx(opts)
25
+
26
+ File.open(VERSIONED_BASE_PATH.join("freeze_test_1.xlsx"),'w+b') do |f|
27
+ f.write file_data
28
+ end
29
+ end
30
+
31
+ def test_2
32
+ opts = @options.merge({
33
+ freeze: {rows: (2..4), columns: (2..4)},
34
+ })
35
+
36
+ # Using Array Data
37
+ file_data = SpreadsheetArchitect.to_xlsx(opts)
38
+
39
+ File.open(VERSIONED_BASE_PATH.join("freeze_test_2.xlsx"),'w+b') do |f|
40
+ f.write file_data
41
+ end
42
+ end
43
+
44
+ end
@@ -113,27 +113,6 @@ class XlsxUtilsTest < ActiveSupport::TestCase
113
113
  #end
114
114
  end
115
115
 
116
- test "symbolize_keys" do
117
- hash = klass.symbolize_keys
118
- assert_empty hash
119
-
120
- hash = klass.symbolize_keys({'foo' => :bar})
121
- assert_nil hash['foo']
122
- assert_equal hash[:foo], :bar
123
-
124
- hash = klass.symbolize_keys({'foo' => :bar, bar: :foo})
125
- assert_nil hash['foo']
126
- assert_equal hash[:foo], :bar
127
-
128
- hash = klass.symbolize_keys({'foo' => {'foo' => :bar}})
129
- assert_nil hash['foo']
130
- assert_equal hash[:foo][:foo], :bar
131
-
132
- hash = klass.symbolize_keys({'foo' => {'foo' => {'foo' => :bar}}})
133
- assert_nil hash['foo']
134
- assert_equal hash[:foo][:foo][:foo], :bar
135
- end
136
-
137
116
  test "constants" do
138
117
  assert_equal klass::COL_NAMES.count, 16384
139
118
  assert_equal klass::COL_NAMES.first, 'A'
metadata CHANGED
@@ -1,22 +1,22 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spreadsheet_architect
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.1
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Weston Ganger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-02 00:00:00.000000000 Z
11
+ date: 2020-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: axlsx
14
+ name: caxlsx
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '2'
19
+ version: 2.0.2
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '4'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '2'
29
+ version: 2.0.2
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '4'
@@ -36,7 +36,7 @@ dependencies:
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 0.1.7
39
+ version: 1.0.0
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
42
  version: '2'
@@ -46,7 +46,7 @@ dependencies:
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 0.1.7
49
+ version: 1.0.0
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
52
  version: '2'
@@ -182,16 +182,15 @@ files:
182
182
  - Rakefile
183
183
  - lib/spreadsheet_architect.rb
184
184
  - lib/spreadsheet_architect/action_controller_renderers.rb
185
+ - lib/spreadsheet_architect/axlsx_string_width_patch.rb
185
186
  - lib/spreadsheet_architect/class_methods/csv.rb
186
187
  - lib/spreadsheet_architect/class_methods/ods.rb
187
188
  - lib/spreadsheet_architect/class_methods/xlsx.rb
188
189
  - lib/spreadsheet_architect/exceptions.rb
189
190
  - lib/spreadsheet_architect/mime_types.rb
190
- - lib/spreadsheet_architect/monkey_patches/axlsx_column_width.rb
191
191
  - lib/spreadsheet_architect/utils.rb
192
192
  - lib/spreadsheet_architect/utils/xlsx.rb
193
193
  - lib/spreadsheet_architect/version.rb
194
- - test/custom_assertions.rb
195
194
  - test/dummy_app/Rakefile
196
195
  - test/dummy_app/app/assets/config/manifest.js
197
196
  - test/dummy_app/app/assets/javascripts/application.js
@@ -228,6 +227,68 @@ files:
228
227
  - test/dummy_app/db/schema.rb
229
228
  - test/dummy_app/db/test.sqlite3
230
229
  - test/dummy_app/log/test.log
230
+ - test/dummy_app/tmp/2.0.1/integration/alt_xlsx.xlsx
231
+ - test/dummy_app/tmp/2.0.1/integration/csv.csv
232
+ - test/dummy_app/tmp/2.0.1/integration/ods.ods
233
+ - test/dummy_app/tmp/2.0.1/integration/xlsx.xlsx
234
+ - test/dummy_app/tmp/2.0.1/kitchen_sink.ods
235
+ - test/dummy_app/tmp/2.0.1/kitchen_sink.xlsx
236
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.csv
237
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.ods
238
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.xlsx
239
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.csv
240
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.ods
241
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.xlsx
242
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.csv
243
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.ods
244
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.xlsx
245
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/data.csv
246
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/data.ods
247
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/data.xlsx
248
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/empty.csv
249
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/empty.ods
250
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/empty.xlsx
251
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/instances.csv
252
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/instances.ods
253
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/instances.xlsx
254
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/data.csv
255
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/data.ods
256
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/data.xlsx
257
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/empty.csv
258
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/empty.ods
259
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/empty.xlsx
260
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/instances.csv
261
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/instances.ods
262
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/instances.xlsx
263
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.csv
264
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.ods
265
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.xlsx
266
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.csv
267
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.ods
268
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.xlsx
269
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.csv
270
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.ods
271
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.xlsx
272
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.csv
273
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.ods
274
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.xlsx
275
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.csv
276
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.ods
277
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.xlsx
278
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.csv
279
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.ods
280
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.xlsx
281
+ - test/dummy_app/tmp/2.0.1/models/Post/data.csv
282
+ - test/dummy_app/tmp/2.0.1/models/Post/data.ods
283
+ - test/dummy_app/tmp/2.0.1/models/Post/data.xlsx
284
+ - test/dummy_app/tmp/2.0.1/models/Post/empty.csv
285
+ - test/dummy_app/tmp/2.0.1/models/Post/empty.ods
286
+ - test/dummy_app/tmp/2.0.1/models/Post/empty.xlsx
287
+ - test/dummy_app/tmp/2.0.1/models/Post/instances.csv
288
+ - test/dummy_app/tmp/2.0.1/models/Post/instances.ods
289
+ - test/dummy_app/tmp/2.0.1/models/Post/instances.xlsx
290
+ - test/dummy_app/tmp/2.0.1/multi_sheet.ods
291
+ - test/dummy_app/tmp/2.0.1/multi_sheet.xlsx
231
292
  - test/dummy_app/tmp/3.0.0.pre/integration/alt_xlsx.xlsx
232
293
  - test/dummy_app/tmp/3.0.0.pre/integration/csv.csv
233
294
  - test/dummy_app/tmp/3.0.0.pre/integration/ods.ods
@@ -290,6 +351,68 @@ files:
290
351
  - test/dummy_app/tmp/3.0.0.pre/models/Post/instances.xlsx
291
352
  - test/dummy_app/tmp/3.0.0.pre/multi_sheet.ods
292
353
  - test/dummy_app/tmp/3.0.0.pre/multi_sheet.xlsx
354
+ - test/dummy_app/tmp/axlsx-master/integration/alt_xlsx.xlsx
355
+ - test/dummy_app/tmp/axlsx-master/integration/csv.csv
356
+ - test/dummy_app/tmp/axlsx-master/integration/ods.ods
357
+ - test/dummy_app/tmp/axlsx-master/integration/xlsx.xlsx
358
+ - test/dummy_app/tmp/axlsx-master/kitchen_sink.ods
359
+ - test/dummy_app/tmp/axlsx-master/kitchen_sink.xlsx
360
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.csv
361
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.ods
362
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.xlsx
363
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.csv
364
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.ods
365
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.xlsx
366
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.csv
367
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.ods
368
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.xlsx
369
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/data.csv
370
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/data.ods
371
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/data.xlsx
372
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/empty.csv
373
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/empty.ods
374
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/empty.xlsx
375
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/instances.csv
376
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/instances.ods
377
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/instances.xlsx
378
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/data.csv
379
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/data.ods
380
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/data.xlsx
381
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.csv
382
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.ods
383
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.xlsx
384
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.csv
385
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.ods
386
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.xlsx
387
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.csv
388
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.ods
389
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.xlsx
390
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.csv
391
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.ods
392
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.xlsx
393
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.csv
394
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.ods
395
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.xlsx
396
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.csv
397
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.ods
398
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.xlsx
399
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.csv
400
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.ods
401
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.xlsx
402
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.csv
403
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.ods
404
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.xlsx
405
+ - test/dummy_app/tmp/axlsx-master/models/Post/data.csv
406
+ - test/dummy_app/tmp/axlsx-master/models/Post/data.ods
407
+ - test/dummy_app/tmp/axlsx-master/models/Post/data.xlsx
408
+ - test/dummy_app/tmp/axlsx-master/models/Post/empty.csv
409
+ - test/dummy_app/tmp/axlsx-master/models/Post/empty.ods
410
+ - test/dummy_app/tmp/axlsx-master/models/Post/empty.xlsx
411
+ - test/dummy_app/tmp/axlsx-master/models/Post/instances.csv
412
+ - test/dummy_app/tmp/axlsx-master/models/Post/instances.ods
413
+ - test/dummy_app/tmp/axlsx-master/models/Post/instances.xlsx
414
+ - test/dummy_app/tmp/axlsx-master/multi_sheet.ods
415
+ - test/dummy_app/tmp/axlsx-master/multi_sheet.xlsx
293
416
  - test/integration/application_test.rb
294
417
  - test/models/all_models_test.rb
295
418
  - test/test_helper.rb
@@ -300,6 +423,7 @@ files:
300
423
  - test/unit/multi_sheet_test.rb
301
424
  - test/unit/regressions_test.rb
302
425
  - test/unit/utils_test.rb
426
+ - test/unit/xlsx_freeze_test.rb
303
427
  - test/unit/xlsx_utils_test.rb
304
428
  homepage: https://github.com/westonganger/spreadsheet_architect
305
429
  licenses: []
@@ -312,127 +436,251 @@ required_ruby_version: !ruby/object:Gem::Requirement
312
436
  requirements:
313
437
  - - ">="
314
438
  - !ruby/object:Gem::Version
315
- version: 1.9.3
439
+ version: 2.3.0
316
440
  required_rubygems_version: !ruby/object:Gem::Requirement
317
441
  requirements:
318
442
  - - ">="
319
443
  - !ruby/object:Gem::Version
320
444
  version: '0'
321
445
  requirements: []
322
- rubygems_version: 3.0.3
446
+ rubygems_version: 3.1.2
323
447
  signing_key:
324
448
  specification_version: 4
325
449
  summary: Spreadsheet Architect is a library that allows you to create XLSX, ODS, or
326
450
  CSV spreadsheets easily from ActiveRecord relations, Plain Ruby classes, or predefined
327
451
  data.
328
452
  test_files:
329
- - test/models/all_models_test.rb
330
- - test/integration/application_test.rb
331
- - test/test_helper.rb
332
- - test/unit/multi_sheet_test.rb
333
- - test/unit/regressions_test.rb
334
- - test/unit/formats_test.rb
335
- - test/unit/kitchen_sink_test.rb
336
- - test/unit/utils_test.rb
337
- - test/unit/general_test.rb
338
- - test/unit/xlsx_utils_test.rb
339
- - test/unit/exceptions_test.rb
453
+ - test/dummy_app/app/assets/config/manifest.js
454
+ - test/dummy_app/app/assets/javascripts/application.js
455
+ - test/dummy_app/app/assets/stylesheets/application.css
456
+ - test/dummy_app/app/controllers/application_controller.rb
457
+ - test/dummy_app/app/controllers/spreadsheets_controller.rb
458
+ - test/dummy_app/app/models/active_model_object.rb
459
+ - test/dummy_app/app/models/application_record.rb
340
460
  - test/dummy_app/app/models/custom_columns_method_post.rb
461
+ - test/dummy_app/app/models/custom_post.rb
341
462
  - test/dummy_app/app/models/legacy_plain_ruby_object.rb
342
463
  - test/dummy_app/app/models/plain_ruby_object.rb
343
- - test/dummy_app/app/models/application_record.rb
344
- - test/dummy_app/app/models/active_model_object.rb
345
- - test/dummy_app/app/models/custom_post.rb
346
464
  - test/dummy_app/app/models/post.rb
347
465
  - test/dummy_app/app/views/layouts/application.html.erb
348
- - test/dummy_app/app/assets/stylesheets/application.css
349
- - test/dummy_app/app/assets/config/manifest.js
350
- - test/dummy_app/app/assets/javascripts/application.js
351
- - test/dummy_app/app/controllers/spreadsheets_controller.rb
352
- - test/dummy_app/app/controllers/application_controller.rb
353
- - test/dummy_app/config.ru
354
- - test/dummy_app/tmp/3.0.0.pre/kitchen_sink.ods
355
- - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.ods
356
- - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.xlsx
357
- - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.ods
358
- - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.xlsx
359
- - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.csv
360
- - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.xlsx
361
- - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.ods
362
- - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.csv
363
- - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.csv
364
- - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/empty.ods
365
- - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/data.xlsx
366
- - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/instances.ods
367
- - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/empty.xlsx
368
- - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/empty.csv
369
- - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/instances.xlsx
370
- - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/data.ods
371
- - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/instances.csv
372
- - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/data.csv
373
- - test/dummy_app/tmp/3.0.0.pre/models/Post/empty.ods
374
- - test/dummy_app/tmp/3.0.0.pre/models/Post/data.xlsx
375
- - test/dummy_app/tmp/3.0.0.pre/models/Post/instances.ods
376
- - test/dummy_app/tmp/3.0.0.pre/models/Post/empty.xlsx
377
- - test/dummy_app/tmp/3.0.0.pre/models/Post/empty.csv
378
- - test/dummy_app/tmp/3.0.0.pre/models/Post/instances.xlsx
379
- - test/dummy_app/tmp/3.0.0.pre/models/Post/data.ods
380
- - test/dummy_app/tmp/3.0.0.pre/models/Post/instances.csv
381
- - test/dummy_app/tmp/3.0.0.pre/models/Post/data.csv
382
- - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.ods
383
- - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.xlsx
384
- - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.ods
385
- - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.xlsx
386
- - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.csv
387
- - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.xlsx
388
- - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.ods
389
- - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.csv
390
- - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.csv
391
- - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.ods
392
- - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.xlsx
393
- - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.ods
394
- - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.xlsx
395
- - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.csv
396
- - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.xlsx
397
- - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.ods
398
- - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.csv
399
- - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.csv
400
- - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.ods
401
- - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.xlsx
402
- - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.ods
403
- - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.xlsx
404
- - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.csv
405
- - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.xlsx
406
- - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.ods
407
- - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.csv
408
- - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.csv
409
- - test/dummy_app/tmp/3.0.0.pre/integration/xlsx.xlsx
410
- - test/dummy_app/tmp/3.0.0.pre/integration/alt_xlsx.xlsx
411
- - test/dummy_app/tmp/3.0.0.pre/integration/csv.csv
412
- - test/dummy_app/tmp/3.0.0.pre/integration/ods.ods
413
- - test/dummy_app/tmp/3.0.0.pre/kitchen_sink.xlsx
414
- - test/dummy_app/tmp/3.0.0.pre/multi_sheet.ods
415
- - test/dummy_app/tmp/3.0.0.pre/multi_sheet.xlsx
416
- - test/dummy_app/log/test.log
466
+ - test/dummy_app/config/application.rb
467
+ - test/dummy_app/config/boot.rb
417
468
  - test/dummy_app/config/database.yml
469
+ - test/dummy_app/config/environment.rb
470
+ - test/dummy_app/config/environments/development.rb
418
471
  - test/dummy_app/config/environments/production.rb
419
472
  - test/dummy_app/config/environments/test.rb
420
- - test/dummy_app/config/environments/development.rb
421
- - test/dummy_app/config/routes.rb
422
- - test/dummy_app/config/environment.rb
423
- - test/dummy_app/config/locales/en.yml
424
- - test/dummy_app/config/boot.rb
425
- - test/dummy_app/config/initializers/secret_token.rb
473
+ - test/dummy_app/config/initializers/backtrace_silencers.rb
426
474
  - test/dummy_app/config/initializers/inflections.rb
427
475
  - test/dummy_app/config/initializers/mime_types.rb
476
+ - test/dummy_app/config/initializers/secret_token.rb
428
477
  - test/dummy_app/config/initializers/session_store.rb
429
- - test/dummy_app/config/initializers/wrap_parameters.rb
430
478
  - test/dummy_app/config/initializers/spreadsheet_architect.rb
431
- - test/dummy_app/config/initializers/backtrace_silencers.rb
479
+ - test/dummy_app/config/initializers/wrap_parameters.rb
480
+ - test/dummy_app/config/locales/en.yml
481
+ - test/dummy_app/config/routes.rb
432
482
  - test/dummy_app/config/secrets.yml
433
- - test/dummy_app/config/application.rb
434
- - test/dummy_app/Rakefile
483
+ - test/dummy_app/config.ru
484
+ - test/dummy_app/db/migrate/20170103234524_add_posts.rb
435
485
  - test/dummy_app/db/schema.rb
436
486
  - test/dummy_app/db/test.sqlite3
437
- - test/dummy_app/db/migrate/20170103234524_add_posts.rb
438
- - test/custom_assertions.rb
487
+ - test/dummy_app/log/test.log
488
+ - test/dummy_app/Rakefile
489
+ - test/dummy_app/tmp/2.0.1/integration/alt_xlsx.xlsx
490
+ - test/dummy_app/tmp/2.0.1/integration/csv.csv
491
+ - test/dummy_app/tmp/2.0.1/integration/ods.ods
492
+ - test/dummy_app/tmp/2.0.1/integration/xlsx.xlsx
493
+ - test/dummy_app/tmp/2.0.1/kitchen_sink.ods
494
+ - test/dummy_app/tmp/2.0.1/kitchen_sink.xlsx
495
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.csv
496
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.ods
497
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.xlsx
498
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.csv
499
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.ods
500
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.xlsx
501
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.csv
502
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.ods
503
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.xlsx
504
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/data.csv
505
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/data.ods
506
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/data.xlsx
507
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/empty.csv
508
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/empty.ods
509
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/empty.xlsx
510
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/instances.csv
511
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/instances.ods
512
+ - test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/instances.xlsx
513
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/data.csv
514
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/data.ods
515
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/data.xlsx
516
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/empty.csv
517
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/empty.ods
518
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/empty.xlsx
519
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/instances.csv
520
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/instances.ods
521
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/instances.xlsx
522
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.csv
523
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.ods
524
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.xlsx
525
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.csv
526
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.ods
527
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.xlsx
528
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.csv
529
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.ods
530
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.xlsx
531
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.csv
532
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.ods
533
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.xlsx
534
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.csv
535
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.ods
536
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.xlsx
537
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.csv
538
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.ods
539
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.xlsx
540
+ - test/dummy_app/tmp/2.0.1/models/Post/data.csv
541
+ - test/dummy_app/tmp/2.0.1/models/Post/data.ods
542
+ - test/dummy_app/tmp/2.0.1/models/Post/data.xlsx
543
+ - test/dummy_app/tmp/2.0.1/models/Post/empty.csv
544
+ - test/dummy_app/tmp/2.0.1/models/Post/empty.ods
545
+ - test/dummy_app/tmp/2.0.1/models/Post/empty.xlsx
546
+ - test/dummy_app/tmp/2.0.1/models/Post/instances.csv
547
+ - test/dummy_app/tmp/2.0.1/models/Post/instances.ods
548
+ - test/dummy_app/tmp/2.0.1/models/Post/instances.xlsx
549
+ - test/dummy_app/tmp/2.0.1/multi_sheet.ods
550
+ - test/dummy_app/tmp/2.0.1/multi_sheet.xlsx
551
+ - test/dummy_app/tmp/3.0.0.pre/integration/alt_xlsx.xlsx
552
+ - test/dummy_app/tmp/3.0.0.pre/integration/csv.csv
553
+ - test/dummy_app/tmp/3.0.0.pre/integration/ods.ods
554
+ - test/dummy_app/tmp/3.0.0.pre/integration/xlsx.xlsx
555
+ - test/dummy_app/tmp/3.0.0.pre/kitchen_sink.ods
556
+ - test/dummy_app/tmp/3.0.0.pre/kitchen_sink.xlsx
557
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.csv
558
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.ods
559
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.xlsx
560
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.csv
561
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.ods
562
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.xlsx
563
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.csv
564
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.ods
565
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.xlsx
566
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/data.csv
567
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/data.ods
568
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/data.xlsx
569
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/empty.csv
570
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/empty.ods
571
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/empty.xlsx
572
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/instances.csv
573
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/instances.ods
574
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/instances.xlsx
575
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.csv
576
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.ods
577
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.xlsx
578
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.csv
579
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.ods
580
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.xlsx
581
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.csv
582
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.ods
583
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.xlsx
584
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.csv
585
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.ods
586
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.xlsx
587
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.csv
588
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.ods
589
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.xlsx
590
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.csv
591
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.ods
592
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.xlsx
593
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.csv
594
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.ods
595
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.xlsx
596
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.csv
597
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.ods
598
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.xlsx
599
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.csv
600
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.ods
601
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.xlsx
602
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/data.csv
603
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/data.ods
604
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/data.xlsx
605
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/empty.csv
606
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/empty.ods
607
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/empty.xlsx
608
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/instances.csv
609
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/instances.ods
610
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/instances.xlsx
611
+ - test/dummy_app/tmp/3.0.0.pre/multi_sheet.ods
612
+ - test/dummy_app/tmp/3.0.0.pre/multi_sheet.xlsx
613
+ - test/dummy_app/tmp/axlsx-master/integration/alt_xlsx.xlsx
614
+ - test/dummy_app/tmp/axlsx-master/integration/csv.csv
615
+ - test/dummy_app/tmp/axlsx-master/integration/ods.ods
616
+ - test/dummy_app/tmp/axlsx-master/integration/xlsx.xlsx
617
+ - test/dummy_app/tmp/axlsx-master/kitchen_sink.ods
618
+ - test/dummy_app/tmp/axlsx-master/kitchen_sink.xlsx
619
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.csv
620
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.ods
621
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.xlsx
622
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.csv
623
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.ods
624
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.xlsx
625
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.csv
626
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.ods
627
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.xlsx
628
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/data.csv
629
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/data.ods
630
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/data.xlsx
631
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/empty.csv
632
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/empty.ods
633
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/empty.xlsx
634
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/instances.csv
635
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/instances.ods
636
+ - test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/instances.xlsx
637
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/data.csv
638
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/data.ods
639
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/data.xlsx
640
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.csv
641
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.ods
642
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.xlsx
643
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.csv
644
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.ods
645
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.xlsx
646
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.csv
647
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.ods
648
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.xlsx
649
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.csv
650
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.ods
651
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.xlsx
652
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.csv
653
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.ods
654
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.xlsx
655
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.csv
656
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.ods
657
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.xlsx
658
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.csv
659
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.ods
660
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.xlsx
661
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.csv
662
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.ods
663
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.xlsx
664
+ - test/dummy_app/tmp/axlsx-master/models/Post/data.csv
665
+ - test/dummy_app/tmp/axlsx-master/models/Post/data.ods
666
+ - test/dummy_app/tmp/axlsx-master/models/Post/data.xlsx
667
+ - test/dummy_app/tmp/axlsx-master/models/Post/empty.csv
668
+ - test/dummy_app/tmp/axlsx-master/models/Post/empty.ods
669
+ - test/dummy_app/tmp/axlsx-master/models/Post/empty.xlsx
670
+ - test/dummy_app/tmp/axlsx-master/models/Post/instances.csv
671
+ - test/dummy_app/tmp/axlsx-master/models/Post/instances.ods
672
+ - test/dummy_app/tmp/axlsx-master/models/Post/instances.xlsx
673
+ - test/dummy_app/tmp/axlsx-master/multi_sheet.ods
674
+ - test/dummy_app/tmp/axlsx-master/multi_sheet.xlsx
675
+ - test/integration/application_test.rb
676
+ - test/models/all_models_test.rb
677
+ - test/test_helper.rb
678
+ - test/unit/exceptions_test.rb
679
+ - test/unit/formats_test.rb
680
+ - test/unit/general_test.rb
681
+ - test/unit/kitchen_sink_test.rb
682
+ - test/unit/multi_sheet_test.rb
683
+ - test/unit/regressions_test.rb
684
+ - test/unit/utils_test.rb
685
+ - test/unit/xlsx_freeze_test.rb
686
+ - test/unit/xlsx_utils_test.rb