spreadsheet_architect 3.3.1 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
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