spreadsheet_architect 2.1.2 → 3.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 (243) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +17 -2
  3. data/README.md +149 -129
  4. data/lib/spreadsheet_architect/class_methods/csv.rb +2 -2
  5. data/lib/spreadsheet_architect/class_methods/ods.rb +2 -2
  6. data/lib/spreadsheet_architect/class_methods/xlsx.rb +26 -30
  7. data/lib/spreadsheet_architect/exceptions.rb +32 -30
  8. data/lib/spreadsheet_architect/utils/xlsx.rb +46 -25
  9. data/lib/spreadsheet_architect/utils.rb +116 -121
  10. data/lib/spreadsheet_architect/version.rb +1 -1
  11. data/lib/spreadsheet_architect.rb +5 -1
  12. data/test/dummy_app/app/models/active_model_object.rb +1 -0
  13. data/test/dummy_app/app/models/custom_post.rb +1 -0
  14. data/test/dummy_app/app/models/legacy_plain_ruby_object.rb +14 -0
  15. data/test/dummy_app/app/models/plain_ruby_object.rb +2 -9
  16. data/test/dummy_app/app/models/post.rb +3 -0
  17. data/test/dummy_app/config/routes.rb +4 -5
  18. data/test/dummy_app/db/test.sqlite3 +0 -0
  19. data/test/dummy_app/log/test.log +26911 -21739
  20. data/test/dummy_app/tmp/2.0.1/integration/alt_xlsx.xlsx +0 -0
  21. data/test/dummy_app/tmp/2.0.1/integration/csv.csv +6 -0
  22. data/test/dummy_app/tmp/2.0.1/integration/ods.ods +0 -0
  23. data/test/dummy_app/tmp/2.0.1/integration/xlsx.xlsx +0 -0
  24. data/test/dummy_app/tmp/2.0.1/kitchen_sink.ods +0 -0
  25. data/test/dummy_app/tmp/2.0.1/kitchen_sink.xlsx +0 -0
  26. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.csv +3 -0
  27. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.ods +0 -0
  28. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.xlsx +0 -0
  29. data/test/dummy_app/tmp/{empty_sa.csv → 2.0.1/models/ActiveModelObject/empty.csv} +0 -0
  30. data/test/dummy_app/tmp/{ods/empty_model.ods → 2.0.1/models/ActiveModelObject/empty.ods} +0 -0
  31. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.xlsx +0 -0
  32. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.csv +6 -0
  33. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.ods +0 -0
  34. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.xlsx +0 -0
  35. data/test/dummy_app/tmp/2.0.1/models/CustomPost/data.csv +3 -0
  36. data/test/dummy_app/tmp/2.0.1/models/CustomPost/data.ods +0 -0
  37. data/test/dummy_app/tmp/2.0.1/models/CustomPost/data.xlsx +0 -0
  38. data/test/dummy_app/tmp/2.0.1/models/CustomPost/empty.csv +1 -0
  39. data/test/dummy_app/tmp/2.0.1/models/CustomPost/empty.ods +0 -0
  40. data/test/dummy_app/tmp/2.0.1/models/CustomPost/empty.xlsx +0 -0
  41. data/test/dummy_app/tmp/2.0.1/models/CustomPost/instances.csv +6 -0
  42. data/test/dummy_app/tmp/2.0.1/models/CustomPost/instances.ods +0 -0
  43. data/test/dummy_app/tmp/2.0.1/models/CustomPost/instances.xlsx +0 -0
  44. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.csv +3 -0
  45. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.ods +0 -0
  46. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.xlsx +0 -0
  47. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.csv +1 -0
  48. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.ods +0 -0
  49. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.xlsx +0 -0
  50. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.csv +6 -0
  51. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.ods +0 -0
  52. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.xlsx +0 -0
  53. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.csv +3 -0
  54. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.ods +0 -0
  55. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.xlsx +0 -0
  56. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.csv +0 -0
  57. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.ods +0 -0
  58. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.xlsx +0 -0
  59. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.csv +6 -0
  60. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.ods +0 -0
  61. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.xlsx +0 -0
  62. data/test/dummy_app/tmp/2.0.1/models/Post/data.csv +3 -0
  63. data/test/dummy_app/tmp/2.0.1/models/Post/data.ods +0 -0
  64. data/test/dummy_app/tmp/2.0.1/models/Post/data.xlsx +0 -0
  65. data/test/dummy_app/tmp/2.0.1/models/Post/empty.csv +0 -0
  66. data/test/dummy_app/tmp/2.0.1/models/Post/empty.ods +0 -0
  67. data/test/dummy_app/tmp/2.0.1/models/Post/empty.xlsx +0 -0
  68. data/test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/data.csv +3 -0
  69. data/test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/data.ods +0 -0
  70. data/test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/data.xlsx +0 -0
  71. data/test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/empty.csv +0 -0
  72. data/test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/empty.ods +0 -0
  73. data/test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/empty.xlsx +0 -0
  74. data/test/dummy_app/tmp/2.0.1/multi_sheet.ods +0 -0
  75. data/test/dummy_app/tmp/2.0.1/multi_sheet.xlsx +0 -0
  76. data/test/dummy_app/tmp/3.0.0.pre/integration/alt_xlsx.xlsx +0 -0
  77. data/test/dummy_app/tmp/3.0.0.pre/integration/csv.csv +6 -0
  78. data/test/dummy_app/tmp/3.0.0.pre/integration/ods.ods +0 -0
  79. data/test/dummy_app/tmp/3.0.0.pre/integration/xlsx.xlsx +0 -0
  80. data/test/dummy_app/tmp/3.0.0.pre/kitchen_sink.ods +0 -0
  81. data/test/dummy_app/tmp/3.0.0.pre/kitchen_sink.xlsx +0 -0
  82. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.csv +3 -0
  83. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.ods +0 -0
  84. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.xlsx +0 -0
  85. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.csv +0 -0
  86. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.ods +0 -0
  87. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.xlsx +0 -0
  88. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.csv +6 -0
  89. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.ods +0 -0
  90. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.xlsx +0 -0
  91. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.csv +3 -0
  92. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.ods +0 -0
  93. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.xlsx +0 -0
  94. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.csv +1 -0
  95. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.ods +0 -0
  96. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.xlsx +0 -0
  97. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.csv +6 -0
  98. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.ods +0 -0
  99. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.xlsx +0 -0
  100. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.csv +3 -0
  101. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.ods +0 -0
  102. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.xlsx +0 -0
  103. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.csv +0 -0
  104. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.ods +0 -0
  105. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.xlsx +0 -0
  106. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.csv +6 -0
  107. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.ods +0 -0
  108. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.xlsx +0 -0
  109. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.csv +3 -0
  110. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.ods +0 -0
  111. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.xlsx +0 -0
  112. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.csv +1 -0
  113. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.ods +0 -0
  114. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.xlsx +0 -0
  115. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.csv +6 -0
  116. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.ods +0 -0
  117. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.xlsx +0 -0
  118. data/test/dummy_app/tmp/3.0.0.pre/models/Post/data.csv +3 -0
  119. data/test/dummy_app/tmp/3.0.0.pre/models/Post/data.ods +0 -0
  120. data/test/dummy_app/tmp/3.0.0.pre/models/Post/data.xlsx +0 -0
  121. data/test/dummy_app/tmp/3.0.0.pre/models/Post/empty.csv +0 -0
  122. data/test/dummy_app/tmp/3.0.0.pre/models/Post/empty.ods +0 -0
  123. data/test/dummy_app/tmp/3.0.0.pre/models/Post/empty.xlsx +0 -0
  124. data/test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/data.csv +3 -0
  125. data/test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/data.ods +0 -0
  126. data/test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/data.xlsx +0 -0
  127. data/test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/empty.csv +0 -0
  128. data/test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/empty.ods +0 -0
  129. data/test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/empty.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 +3 -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 +0 -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/CustomPost/data.csv +3 -0
  148. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/data.ods +0 -0
  149. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/data.xlsx +0 -0
  150. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.csv +0 -0
  151. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.ods +0 -0
  152. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.xlsx +0 -0
  153. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.csv +6 -0
  154. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.ods +0 -0
  155. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.xlsx +0 -0
  156. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.csv +3 -0
  157. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.ods +0 -0
  158. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.xlsx +0 -0
  159. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.csv +1 -0
  160. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.ods +0 -0
  161. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.xlsx +0 -0
  162. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.csv +6 -0
  163. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.ods +0 -0
  164. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.xlsx +0 -0
  165. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.csv +3 -0
  166. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.ods +0 -0
  167. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.xlsx +0 -0
  168. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.csv +1 -0
  169. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.ods +0 -0
  170. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.xlsx +0 -0
  171. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.csv +6 -0
  172. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.ods +0 -0
  173. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.xlsx +0 -0
  174. data/test/dummy_app/tmp/axlsx-master/models/Post/data.csv +3 -0
  175. data/test/dummy_app/tmp/axlsx-master/models/Post/data.ods +0 -0
  176. data/test/dummy_app/tmp/axlsx-master/models/Post/data.xlsx +0 -0
  177. data/test/dummy_app/tmp/axlsx-master/models/Post/empty.csv +0 -0
  178. data/test/dummy_app/tmp/axlsx-master/models/Post/empty.ods +0 -0
  179. data/test/dummy_app/tmp/axlsx-master/models/Post/empty.xlsx +0 -0
  180. data/test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/data.csv +3 -0
  181. data/test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/data.ods +0 -0
  182. data/test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/data.xlsx +0 -0
  183. data/test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/empty.csv +0 -0
  184. data/test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/empty.ods +0 -0
  185. data/test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/empty.xlsx +0 -0
  186. data/test/dummy_app/tmp/axlsx-master/multi_sheet.ods +0 -0
  187. data/test/dummy_app/tmp/axlsx-master/multi_sheet.xlsx +0 -0
  188. data/test/integration/application_test.rb +8 -11
  189. data/test/models/all_models_test.rb +107 -0
  190. data/test/test_helper.rb +13 -4
  191. data/test/unit/exceptions_test.rb +168 -0
  192. data/test/unit/formats_test.rb +15 -0
  193. data/test/unit/general_test.rb +15 -0
  194. data/test/unit/kitchen_sink_test.rb +87 -0
  195. data/test/unit/multi_sheet_test.rb +29 -0
  196. data/test/unit/utils_test.rb +179 -0
  197. data/test/unit/xlsx_utils_test.rb +143 -0
  198. metadata +409 -116
  199. data/lib/generators/spreadsheet_architect/add_project_defaults_generator.rb +0 -20
  200. data/test/dummy_app/app/models/bad_plain_ruby_object.rb +0 -3
  201. data/test/dummy_app/app/views/reports/sample.html.erb +0 -1
  202. data/test/dummy_app/log/development.log +0 -28
  203. data/test/dummy_app/tmp/active_model_object/csv.csv +0 -21
  204. data/test/dummy_app/tmp/active_model_object/ods.ods +0 -0
  205. data/test/dummy_app/tmp/active_model_object/xlsx.xlsx +0 -0
  206. data/test/dummy_app/tmp/custom_posts/csv.csv +0 -6
  207. data/test/dummy_app/tmp/custom_posts/empty.xlsx +0 -0
  208. data/test/dummy_app/tmp/custom_posts/ods.ods +0 -0
  209. data/test/dummy_app/tmp/custom_posts/xlsx.xlsx +0 -0
  210. data/test/dummy_app/tmp/empty_model.csv +0 -1
  211. data/test/dummy_app/tmp/empty_model.xlsx +0 -0
  212. data/test/dummy_app/tmp/empty_sa.xlsx +0 -0
  213. data/test/dummy_app/tmp/extreme.xlsx +0 -0
  214. data/test/dummy_app/tmp/integration_tests/alt_xlsx.xlsx +0 -0
  215. data/test/dummy_app/tmp/integration_tests/csv.csv +0 -6
  216. data/test/dummy_app/tmp/integration_tests/ods.ods +0 -0
  217. data/test/dummy_app/tmp/integration_tests/xlsx.xlsx +0 -0
  218. data/test/dummy_app/tmp/model.csv +0 -6
  219. data/test/dummy_app/tmp/model.xlsx +0 -0
  220. data/test/dummy_app/tmp/ods/empty_sa.ods +0 -0
  221. data/test/dummy_app/tmp/ods/model.ods +0 -0
  222. data/test/dummy_app/tmp/ods/model_options.ods +0 -0
  223. data/test/dummy_app/tmp/ods/sa.ods +0 -0
  224. data/test/dummy_app/tmp/options.csv +0 -6
  225. data/test/dummy_app/tmp/plain_ruby_object/csv.csv +0 -4
  226. data/test/dummy_app/tmp/plain_ruby_object/ods.ods +0 -0
  227. data/test/dummy_app/tmp/plain_ruby_object/xlsx.xlsx +0 -0
  228. data/test/dummy_app/tmp/posts/csv.csv +0 -6
  229. data/test/dummy_app/tmp/posts/empty.xlsx +0 -0
  230. data/test/dummy_app/tmp/posts/ods.ods +0 -0
  231. data/test/dummy_app/tmp/posts/xlsx.xlsx +0 -0
  232. data/test/dummy_app/tmp/sa.csv +0 -4
  233. data/test/dummy_app/tmp/sa.xlsx +0 -0
  234. data/test/models/active_model_object_test.rb +0 -51
  235. data/test/models/bad_plain_ruby_object_test.rb +0 -28
  236. data/test/models/csv_test.rb +0 -59
  237. data/test/models/custom_post_test.rb +0 -51
  238. data/test/models/ods_test.rb +0 -65
  239. data/test/models/plain_ruby_object_test.rb +0 -51
  240. data/test/models/post_test.rb +0 -44
  241. data/test/models/spreadsheet_architect_utils_test.rb +0 -73
  242. data/test/models/xlsx_test.rb +0 -98
  243. data/test/spreadsheet_architect_test.rb +0 -11
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spreadsheet_architect
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Weston Ganger
@@ -16,14 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '2.0'
19
+ version: '2'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '4'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
26
- version: '2.0'
29
+ version: '2'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '4'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: axlsx_styler
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -31,6 +37,9 @@ dependencies:
31
37
  - - ">="
32
38
  - !ruby/object:Gem::Version
33
39
  version: 0.1.7
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '2'
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -38,6 +47,9 @@ dependencies:
38
47
  - - ">="
39
48
  - !ruby/object:Gem::Version
40
49
  version: 0.1.7
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '2'
41
53
  - !ruby/object:Gem::Dependency
42
54
  name: rodf
43
55
  requirement: !ruby/object:Gem::Requirement
@@ -45,6 +57,9 @@ dependencies:
45
57
  - - ">="
46
58
  - !ruby/object:Gem::Version
47
59
  version: 1.0.0
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '2'
48
63
  type: :runtime
49
64
  prerelease: false
50
65
  version_requirements: !ruby/object:Gem::Requirement
@@ -52,6 +67,9 @@ dependencies:
52
67
  - - ">="
53
68
  - !ruby/object:Gem::Version
54
69
  version: 1.0.0
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '2'
55
73
  - !ruby/object:Gem::Dependency
56
74
  name: rake
57
75
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +126,20 @@ dependencies:
108
126
  - - ">="
109
127
  - !ruby/object:Gem::Version
110
128
  version: '0'
129
+ - !ruby/object:Gem::Dependency
130
+ name: appraisal
131
+ requirement: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: '0'
136
+ type: :development
137
+ prerelease: false
138
+ version_requirements: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
111
143
  - !ruby/object:Gem::Dependency
112
144
  name: sqlite3
113
145
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +160,14 @@ dependencies:
128
160
  requirements:
129
161
  - - ">="
130
162
  - !ruby/object:Gem::Version
131
- version: '5.2'
163
+ version: '0'
132
164
  type: :development
133
165
  prerelease: false
134
166
  version_requirements: !ruby/object:Gem::Requirement
135
167
  requirements:
136
168
  - - ">="
137
169
  - !ruby/object:Gem::Version
138
- version: '5.2'
170
+ version: '0'
139
171
  description: Spreadsheet Architect is a library that allows you to create XLSX, ODS,
140
172
  or CSV spreadsheets easily from ActiveRecord relations, Plain Ruby classes, or predefined
141
173
  data.
@@ -148,7 +180,6 @@ files:
148
180
  - LICENSE
149
181
  - README.md
150
182
  - Rakefile
151
- - lib/generators/spreadsheet_architect/add_project_defaults_generator.rb
152
183
  - lib/spreadsheet_architect.rb
153
184
  - lib/spreadsheet_architect/action_controller_renderers.rb
154
185
  - lib/spreadsheet_architect/class_methods/csv.rb
@@ -168,12 +199,11 @@ files:
168
199
  - test/dummy_app/app/controllers/spreadsheets_controller.rb
169
200
  - test/dummy_app/app/models/active_model_object.rb
170
201
  - test/dummy_app/app/models/application_record.rb
171
- - test/dummy_app/app/models/bad_plain_ruby_object.rb
172
202
  - test/dummy_app/app/models/custom_post.rb
203
+ - test/dummy_app/app/models/legacy_plain_ruby_object.rb
173
204
  - test/dummy_app/app/models/plain_ruby_object.rb
174
205
  - test/dummy_app/app/models/post.rb
175
206
  - test/dummy_app/app/views/layouts/application.html.erb
176
- - test/dummy_app/app/views/reports/sample.html.erb
177
207
  - test/dummy_app/config.ru
178
208
  - test/dummy_app/config/application.rb
179
209
  - test/dummy_app/config/boot.rb
@@ -195,53 +225,185 @@ files:
195
225
  - test/dummy_app/db/migrate/20170103234524_add_posts.rb
196
226
  - test/dummy_app/db/schema.rb
197
227
  - test/dummy_app/db/test.sqlite3
198
- - test/dummy_app/log/development.log
199
228
  - test/dummy_app/log/test.log
200
- - test/dummy_app/tmp/active_model_object/csv.csv
201
- - test/dummy_app/tmp/active_model_object/ods.ods
202
- - test/dummy_app/tmp/active_model_object/xlsx.xlsx
203
- - test/dummy_app/tmp/custom_posts/csv.csv
204
- - test/dummy_app/tmp/custom_posts/empty.xlsx
205
- - test/dummy_app/tmp/custom_posts/ods.ods
206
- - test/dummy_app/tmp/custom_posts/xlsx.xlsx
207
- - test/dummy_app/tmp/empty_model.csv
208
- - test/dummy_app/tmp/empty_model.xlsx
209
- - test/dummy_app/tmp/empty_sa.csv
210
- - test/dummy_app/tmp/empty_sa.xlsx
211
- - test/dummy_app/tmp/extreme.xlsx
212
- - test/dummy_app/tmp/integration_tests/alt_xlsx.xlsx
213
- - test/dummy_app/tmp/integration_tests/csv.csv
214
- - test/dummy_app/tmp/integration_tests/ods.ods
215
- - test/dummy_app/tmp/integration_tests/xlsx.xlsx
216
- - test/dummy_app/tmp/model.csv
217
- - test/dummy_app/tmp/model.xlsx
218
- - test/dummy_app/tmp/ods/empty_model.ods
219
- - test/dummy_app/tmp/ods/empty_sa.ods
220
- - test/dummy_app/tmp/ods/model.ods
221
- - test/dummy_app/tmp/ods/model_options.ods
222
- - test/dummy_app/tmp/ods/sa.ods
223
- - test/dummy_app/tmp/options.csv
224
- - test/dummy_app/tmp/plain_ruby_object/csv.csv
225
- - test/dummy_app/tmp/plain_ruby_object/ods.ods
226
- - test/dummy_app/tmp/plain_ruby_object/xlsx.xlsx
227
- - test/dummy_app/tmp/posts/csv.csv
228
- - test/dummy_app/tmp/posts/empty.xlsx
229
- - test/dummy_app/tmp/posts/ods.ods
230
- - test/dummy_app/tmp/posts/xlsx.xlsx
231
- - test/dummy_app/tmp/sa.csv
232
- - test/dummy_app/tmp/sa.xlsx
229
+ - test/dummy_app/tmp/2.0.1/integration/alt_xlsx.xlsx
230
+ - test/dummy_app/tmp/2.0.1/integration/csv.csv
231
+ - test/dummy_app/tmp/2.0.1/integration/ods.ods
232
+ - test/dummy_app/tmp/2.0.1/integration/xlsx.xlsx
233
+ - test/dummy_app/tmp/2.0.1/kitchen_sink.ods
234
+ - test/dummy_app/tmp/2.0.1/kitchen_sink.xlsx
235
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.csv
236
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.ods
237
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.xlsx
238
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.csv
239
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.ods
240
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.xlsx
241
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.csv
242
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.ods
243
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.xlsx
244
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/data.csv
245
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/data.ods
246
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/data.xlsx
247
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/empty.csv
248
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/empty.ods
249
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/empty.xlsx
250
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/instances.csv
251
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/instances.ods
252
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/instances.xlsx
253
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.csv
254
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.ods
255
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.xlsx
256
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.csv
257
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.ods
258
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.xlsx
259
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.csv
260
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.ods
261
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.xlsx
262
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.csv
263
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.ods
264
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.xlsx
265
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.csv
266
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.ods
267
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.xlsx
268
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.csv
269
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.ods
270
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.xlsx
271
+ - test/dummy_app/tmp/2.0.1/models/Post/data.csv
272
+ - test/dummy_app/tmp/2.0.1/models/Post/data.ods
273
+ - test/dummy_app/tmp/2.0.1/models/Post/data.xlsx
274
+ - test/dummy_app/tmp/2.0.1/models/Post/empty.csv
275
+ - test/dummy_app/tmp/2.0.1/models/Post/empty.ods
276
+ - test/dummy_app/tmp/2.0.1/models/Post/empty.xlsx
277
+ - test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/data.csv
278
+ - test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/data.ods
279
+ - test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/data.xlsx
280
+ - test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/empty.csv
281
+ - test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/empty.ods
282
+ - test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/empty.xlsx
283
+ - test/dummy_app/tmp/2.0.1/multi_sheet.ods
284
+ - test/dummy_app/tmp/2.0.1/multi_sheet.xlsx
285
+ - test/dummy_app/tmp/3.0.0.pre/integration/alt_xlsx.xlsx
286
+ - test/dummy_app/tmp/3.0.0.pre/integration/csv.csv
287
+ - test/dummy_app/tmp/3.0.0.pre/integration/ods.ods
288
+ - test/dummy_app/tmp/3.0.0.pre/integration/xlsx.xlsx
289
+ - test/dummy_app/tmp/3.0.0.pre/kitchen_sink.ods
290
+ - test/dummy_app/tmp/3.0.0.pre/kitchen_sink.xlsx
291
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.csv
292
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.ods
293
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.xlsx
294
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.csv
295
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.ods
296
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.xlsx
297
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.csv
298
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.ods
299
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.xlsx
300
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.csv
301
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.ods
302
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.xlsx
303
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.csv
304
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.ods
305
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.xlsx
306
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.csv
307
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.ods
308
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.xlsx
309
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.csv
310
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.ods
311
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.xlsx
312
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.csv
313
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.ods
314
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.xlsx
315
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.csv
316
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.ods
317
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.xlsx
318
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.csv
319
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.ods
320
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.xlsx
321
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.csv
322
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.ods
323
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.xlsx
324
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.csv
325
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.ods
326
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.xlsx
327
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/data.csv
328
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/data.ods
329
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/data.xlsx
330
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/empty.csv
331
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/empty.ods
332
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/empty.xlsx
333
+ - test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/data.csv
334
+ - test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/data.ods
335
+ - test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/data.xlsx
336
+ - test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/empty.csv
337
+ - test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/empty.ods
338
+ - test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/empty.xlsx
339
+ - test/dummy_app/tmp/3.0.0.pre/multi_sheet.ods
340
+ - test/dummy_app/tmp/3.0.0.pre/multi_sheet.xlsx
341
+ - test/dummy_app/tmp/axlsx-master/integration/alt_xlsx.xlsx
342
+ - test/dummy_app/tmp/axlsx-master/integration/csv.csv
343
+ - test/dummy_app/tmp/axlsx-master/integration/ods.ods
344
+ - test/dummy_app/tmp/axlsx-master/integration/xlsx.xlsx
345
+ - test/dummy_app/tmp/axlsx-master/kitchen_sink.ods
346
+ - test/dummy_app/tmp/axlsx-master/kitchen_sink.xlsx
347
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.csv
348
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.ods
349
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.xlsx
350
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.csv
351
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.ods
352
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.xlsx
353
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.csv
354
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.ods
355
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.xlsx
356
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/data.csv
357
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/data.ods
358
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/data.xlsx
359
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.csv
360
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.ods
361
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.xlsx
362
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.csv
363
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.ods
364
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.xlsx
365
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.csv
366
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.ods
367
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.xlsx
368
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.csv
369
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.ods
370
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.xlsx
371
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.csv
372
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.ods
373
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.xlsx
374
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.csv
375
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.ods
376
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.xlsx
377
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.csv
378
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.ods
379
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.xlsx
380
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.csv
381
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.ods
382
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.xlsx
383
+ - test/dummy_app/tmp/axlsx-master/models/Post/data.csv
384
+ - test/dummy_app/tmp/axlsx-master/models/Post/data.ods
385
+ - test/dummy_app/tmp/axlsx-master/models/Post/data.xlsx
386
+ - test/dummy_app/tmp/axlsx-master/models/Post/empty.csv
387
+ - test/dummy_app/tmp/axlsx-master/models/Post/empty.ods
388
+ - test/dummy_app/tmp/axlsx-master/models/Post/empty.xlsx
389
+ - test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/data.csv
390
+ - test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/data.ods
391
+ - test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/data.xlsx
392
+ - test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/empty.csv
393
+ - test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/empty.ods
394
+ - test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/empty.xlsx
395
+ - test/dummy_app/tmp/axlsx-master/multi_sheet.ods
396
+ - test/dummy_app/tmp/axlsx-master/multi_sheet.xlsx
233
397
  - test/integration/application_test.rb
234
- - test/models/active_model_object_test.rb
235
- - test/models/bad_plain_ruby_object_test.rb
236
- - test/models/csv_test.rb
237
- - test/models/custom_post_test.rb
238
- - test/models/ods_test.rb
239
- - test/models/plain_ruby_object_test.rb
240
- - test/models/post_test.rb
241
- - test/models/spreadsheet_architect_utils_test.rb
242
- - test/models/xlsx_test.rb
243
- - test/spreadsheet_architect_test.rb
398
+ - test/models/all_models_test.rb
244
399
  - test/test_helper.rb
400
+ - test/unit/exceptions_test.rb
401
+ - test/unit/formats_test.rb
402
+ - test/unit/general_test.rb
403
+ - test/unit/kitchen_sink_test.rb
404
+ - test/unit/multi_sheet_test.rb
405
+ - test/unit/utils_test.rb
406
+ - test/unit/xlsx_utils_test.rb
245
407
  homepage: https://github.com/westonganger/spreadsheet_architect
246
408
  licenses: []
247
409
  metadata: {}
@@ -261,7 +423,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
261
423
  version: '0'
262
424
  requirements: []
263
425
  rubyforge_project:
264
- rubygems_version: 2.6.11
426
+ rubygems_version: 2.7.6
265
427
  signing_key:
266
428
  specification_version: 4
267
429
  summary: Spreadsheet Architect is a library that allows you to create XLSX, ODS, or
@@ -269,84 +431,215 @@ summary: Spreadsheet Architect is a library that allows you to create XLSX, ODS,
269
431
  data.
270
432
  test_files:
271
433
  - test/custom_assertions.rb
272
- - test/test_helper.rb
273
- - test/spreadsheet_architect_test.rb
274
- - test/integration/application_test.rb
275
- - test/dummy_app/app/views/layouts/application.html.erb
276
- - test/dummy_app/app/views/reports/sample.html.erb
277
434
  - test/dummy_app/app/assets/javascripts/application.js
278
435
  - test/dummy_app/app/assets/stylesheets/application.css
279
436
  - test/dummy_app/app/controllers/application_controller.rb
280
437
  - test/dummy_app/app/controllers/spreadsheets_controller.rb
281
- - test/dummy_app/app/models/bad_plain_ruby_object.rb
282
- - test/dummy_app/app/models/plain_ruby_object.rb
438
+ - test/dummy_app/app/models/active_model_object.rb
283
439
  - test/dummy_app/app/models/application_record.rb
284
440
  - test/dummy_app/app/models/custom_post.rb
441
+ - test/dummy_app/app/models/legacy_plain_ruby_object.rb
442
+ - test/dummy_app/app/models/plain_ruby_object.rb
285
443
  - test/dummy_app/app/models/post.rb
286
- - test/dummy_app/app/models/active_model_object.rb
287
- - test/dummy_app/db/test.sqlite3
288
- - test/dummy_app/db/schema.rb
289
- - test/dummy_app/db/migrate/20170103234524_add_posts.rb
290
- - test/dummy_app/tmp/empty_sa.csv
291
- - test/dummy_app/tmp/sa.csv
292
- - test/dummy_app/tmp/options.csv
293
- - test/dummy_app/tmp/model.xlsx
294
- - test/dummy_app/tmp/custom_posts/csv.csv
295
- - test/dummy_app/tmp/custom_posts/ods.ods
296
- - test/dummy_app/tmp/custom_posts/xlsx.xlsx
297
- - test/dummy_app/tmp/custom_posts/empty.xlsx
298
- - test/dummy_app/tmp/empty_model.csv
299
- - test/dummy_app/tmp/extreme.xlsx
300
- - test/dummy_app/tmp/ods/model.ods
301
- - test/dummy_app/tmp/ods/empty_model.ods
302
- - test/dummy_app/tmp/ods/sa.ods
303
- - test/dummy_app/tmp/ods/model_options.ods
304
- - test/dummy_app/tmp/ods/empty_sa.ods
305
- - test/dummy_app/tmp/model.csv
306
- - test/dummy_app/tmp/active_model_object/csv.csv
307
- - test/dummy_app/tmp/active_model_object/ods.ods
308
- - test/dummy_app/tmp/active_model_object/xlsx.xlsx
309
- - test/dummy_app/tmp/empty_model.xlsx
310
- - test/dummy_app/tmp/integration_tests/csv.csv
311
- - test/dummy_app/tmp/integration_tests/ods.ods
312
- - test/dummy_app/tmp/integration_tests/alt_xlsx.xlsx
313
- - test/dummy_app/tmp/integration_tests/xlsx.xlsx
314
- - test/dummy_app/tmp/plain_ruby_object/csv.csv
315
- - test/dummy_app/tmp/plain_ruby_object/ods.ods
316
- - test/dummy_app/tmp/plain_ruby_object/xlsx.xlsx
317
- - test/dummy_app/tmp/sa.xlsx
318
- - test/dummy_app/tmp/empty_sa.xlsx
319
- - test/dummy_app/tmp/posts/csv.csv
320
- - test/dummy_app/tmp/posts/ods.ods
321
- - test/dummy_app/tmp/posts/xlsx.xlsx
322
- - test/dummy_app/tmp/posts/empty.xlsx
323
- - test/dummy_app/Rakefile
444
+ - test/dummy_app/app/views/layouts/application.html.erb
324
445
  - test/dummy_app/config/application.rb
325
446
  - test/dummy_app/config/boot.rb
326
- - test/dummy_app/config/routes.rb
447
+ - test/dummy_app/config/database.yml
448
+ - test/dummy_app/config/environment.rb
327
449
  - test/dummy_app/config/environments/development.rb
328
- - test/dummy_app/config/environments/test.rb
329
450
  - test/dummy_app/config/environments/production.rb
330
- - test/dummy_app/config/database.yml
451
+ - test/dummy_app/config/environments/test.rb
331
452
  - test/dummy_app/config/initializers/backtrace_silencers.rb
332
- - test/dummy_app/config/initializers/mime_types.rb
333
453
  - test/dummy_app/config/initializers/inflections.rb
334
- - test/dummy_app/config/initializers/wrap_parameters.rb
335
- - test/dummy_app/config/initializers/session_store.rb
454
+ - test/dummy_app/config/initializers/mime_types.rb
336
455
  - test/dummy_app/config/initializers/secret_token.rb
456
+ - test/dummy_app/config/initializers/session_store.rb
337
457
  - test/dummy_app/config/initializers/spreadsheet_architect.rb
338
- - test/dummy_app/config/secrets.yml
458
+ - test/dummy_app/config/initializers/wrap_parameters.rb
339
459
  - test/dummy_app/config/locales/en.yml
340
- - test/dummy_app/config/environment.rb
460
+ - test/dummy_app/config/routes.rb
461
+ - test/dummy_app/config/secrets.yml
341
462
  - test/dummy_app/config.ru
342
- - test/dummy_app/log/development.log
463
+ - test/dummy_app/db/migrate/20170103234524_add_posts.rb
464
+ - test/dummy_app/db/schema.rb
465
+ - test/dummy_app/db/test.sqlite3
343
466
  - test/dummy_app/log/test.log
344
- - test/models/post_test.rb
345
- - test/models/csv_test.rb
346
- - test/models/spreadsheet_architect_utils_test.rb
347
- - test/models/custom_post_test.rb
348
- - test/models/active_model_object_test.rb
349
- - test/models/plain_ruby_object_test.rb
350
- - test/models/bad_plain_ruby_object_test.rb
351
- - test/models/ods_test.rb
352
- - test/models/xlsx_test.rb
467
+ - test/dummy_app/Rakefile
468
+ - test/dummy_app/tmp/2.0.1/integration/alt_xlsx.xlsx
469
+ - test/dummy_app/tmp/2.0.1/integration/csv.csv
470
+ - test/dummy_app/tmp/2.0.1/integration/ods.ods
471
+ - test/dummy_app/tmp/2.0.1/integration/xlsx.xlsx
472
+ - test/dummy_app/tmp/2.0.1/kitchen_sink.ods
473
+ - test/dummy_app/tmp/2.0.1/kitchen_sink.xlsx
474
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.csv
475
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.ods
476
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.xlsx
477
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.csv
478
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.ods
479
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.xlsx
480
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.csv
481
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.ods
482
+ - test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.xlsx
483
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/data.csv
484
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/data.ods
485
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/data.xlsx
486
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/empty.csv
487
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/empty.ods
488
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/empty.xlsx
489
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/instances.csv
490
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/instances.ods
491
+ - test/dummy_app/tmp/2.0.1/models/CustomPost/instances.xlsx
492
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.csv
493
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.ods
494
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.xlsx
495
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.csv
496
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.ods
497
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.xlsx
498
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.csv
499
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.ods
500
+ - test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.xlsx
501
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.csv
502
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.ods
503
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.xlsx
504
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.csv
505
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.ods
506
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.xlsx
507
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.csv
508
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.ods
509
+ - test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.xlsx
510
+ - test/dummy_app/tmp/2.0.1/models/Post/data.csv
511
+ - test/dummy_app/tmp/2.0.1/models/Post/data.ods
512
+ - test/dummy_app/tmp/2.0.1/models/Post/data.xlsx
513
+ - test/dummy_app/tmp/2.0.1/models/Post/empty.csv
514
+ - test/dummy_app/tmp/2.0.1/models/Post/empty.ods
515
+ - test/dummy_app/tmp/2.0.1/models/Post/empty.xlsx
516
+ - test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/data.csv
517
+ - test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/data.ods
518
+ - test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/data.xlsx
519
+ - test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/empty.csv
520
+ - test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/empty.ods
521
+ - test/dummy_app/tmp/2.0.1/models/SpreadsheetArchitect/empty.xlsx
522
+ - test/dummy_app/tmp/2.0.1/multi_sheet.ods
523
+ - test/dummy_app/tmp/2.0.1/multi_sheet.xlsx
524
+ - test/dummy_app/tmp/3.0.0.pre/integration/alt_xlsx.xlsx
525
+ - test/dummy_app/tmp/3.0.0.pre/integration/csv.csv
526
+ - test/dummy_app/tmp/3.0.0.pre/integration/ods.ods
527
+ - test/dummy_app/tmp/3.0.0.pre/integration/xlsx.xlsx
528
+ - test/dummy_app/tmp/3.0.0.pre/kitchen_sink.ods
529
+ - test/dummy_app/tmp/3.0.0.pre/kitchen_sink.xlsx
530
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.csv
531
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.ods
532
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.xlsx
533
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.csv
534
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.ods
535
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.xlsx
536
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.csv
537
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.ods
538
+ - test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.xlsx
539
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.csv
540
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.ods
541
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.xlsx
542
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.csv
543
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.ods
544
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.xlsx
545
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.csv
546
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.ods
547
+ - test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.xlsx
548
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.csv
549
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.ods
550
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.xlsx
551
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.csv
552
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.ods
553
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.xlsx
554
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.csv
555
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.ods
556
+ - test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.xlsx
557
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.csv
558
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.ods
559
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.xlsx
560
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.csv
561
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.ods
562
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.xlsx
563
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.csv
564
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.ods
565
+ - test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.xlsx
566
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/data.csv
567
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/data.ods
568
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/data.xlsx
569
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/empty.csv
570
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/empty.ods
571
+ - test/dummy_app/tmp/3.0.0.pre/models/Post/empty.xlsx
572
+ - test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/data.csv
573
+ - test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/data.ods
574
+ - test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/data.xlsx
575
+ - test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/empty.csv
576
+ - test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/empty.ods
577
+ - test/dummy_app/tmp/3.0.0.pre/models/SpreadsheetArchitect/empty.xlsx
578
+ - test/dummy_app/tmp/3.0.0.pre/multi_sheet.ods
579
+ - test/dummy_app/tmp/3.0.0.pre/multi_sheet.xlsx
580
+ - test/dummy_app/tmp/axlsx-master/integration/alt_xlsx.xlsx
581
+ - test/dummy_app/tmp/axlsx-master/integration/csv.csv
582
+ - test/dummy_app/tmp/axlsx-master/integration/ods.ods
583
+ - test/dummy_app/tmp/axlsx-master/integration/xlsx.xlsx
584
+ - test/dummy_app/tmp/axlsx-master/kitchen_sink.ods
585
+ - test/dummy_app/tmp/axlsx-master/kitchen_sink.xlsx
586
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.csv
587
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.ods
588
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.xlsx
589
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.csv
590
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.ods
591
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.xlsx
592
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.csv
593
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.ods
594
+ - test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.xlsx
595
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/data.csv
596
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/data.ods
597
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/data.xlsx
598
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.csv
599
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.ods
600
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.xlsx
601
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.csv
602
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.ods
603
+ - test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.xlsx
604
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.csv
605
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.ods
606
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.xlsx
607
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.csv
608
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.ods
609
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.xlsx
610
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.csv
611
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.ods
612
+ - test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.xlsx
613
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.csv
614
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.ods
615
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.xlsx
616
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.csv
617
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.ods
618
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.xlsx
619
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.csv
620
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.ods
621
+ - test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.xlsx
622
+ - test/dummy_app/tmp/axlsx-master/models/Post/data.csv
623
+ - test/dummy_app/tmp/axlsx-master/models/Post/data.ods
624
+ - test/dummy_app/tmp/axlsx-master/models/Post/data.xlsx
625
+ - test/dummy_app/tmp/axlsx-master/models/Post/empty.csv
626
+ - test/dummy_app/tmp/axlsx-master/models/Post/empty.ods
627
+ - test/dummy_app/tmp/axlsx-master/models/Post/empty.xlsx
628
+ - test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/data.csv
629
+ - test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/data.ods
630
+ - test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/data.xlsx
631
+ - test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/empty.csv
632
+ - test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/empty.ods
633
+ - test/dummy_app/tmp/axlsx-master/models/SpreadsheetArchitect/empty.xlsx
634
+ - test/dummy_app/tmp/axlsx-master/multi_sheet.ods
635
+ - test/dummy_app/tmp/axlsx-master/multi_sheet.xlsx
636
+ - test/integration/application_test.rb
637
+ - test/models/all_models_test.rb
638
+ - test/test_helper.rb
639
+ - test/unit/exceptions_test.rb
640
+ - test/unit/formats_test.rb
641
+ - test/unit/general_test.rb
642
+ - test/unit/kitchen_sink_test.rb
643
+ - test/unit/multi_sheet_test.rb
644
+ - test/unit/utils_test.rb
645
+ - test/unit/xlsx_utils_test.rb