spreadsheet_architect 5.0.0 → 5.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (240) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -3
  3. data/README.md +22 -17
  4. data/lib/spreadsheet_architect/class_methods/xlsx.rb +0 -2
  5. data/lib/spreadsheet_architect/utils/xlsx.rb +3 -3
  6. data/lib/spreadsheet_architect/version.rb +1 -1
  7. metadata +5 -540
  8. data/lib/spreadsheet_architect/axlsx_string_width_patch.rb +0 -23
  9. data/test/dummy_app/Rakefile +0 -7
  10. data/test/dummy_app/app/assets/config/manifest.js +0 -3
  11. data/test/dummy_app/app/assets/javascripts/application.js +0 -0
  12. data/test/dummy_app/app/assets/stylesheets/application.css +0 -3
  13. data/test/dummy_app/app/controllers/application_controller.rb +0 -3
  14. data/test/dummy_app/app/controllers/spreadsheets_controller.rb +0 -77
  15. data/test/dummy_app/app/models/active_model_object.rb +0 -15
  16. data/test/dummy_app/app/models/application_record.rb +0 -3
  17. data/test/dummy_app/app/models/custom_columns_method_post.rb +0 -29
  18. data/test/dummy_app/app/models/custom_post.rb +0 -28
  19. data/test/dummy_app/app/models/legacy_plain_ruby_object.rb +0 -14
  20. data/test/dummy_app/app/models/plain_ruby_object.rb +0 -12
  21. data/test/dummy_app/app/models/post.rb +0 -6
  22. data/test/dummy_app/app/views/layouts/application.html.erb +0 -14
  23. data/test/dummy_app/config/application.rb +0 -58
  24. data/test/dummy_app/config/boot.rb +0 -10
  25. data/test/dummy_app/config/database.yml +0 -25
  26. data/test/dummy_app/config/environment.rb +0 -5
  27. data/test/dummy_app/config/environments/test.rb +0 -41
  28. data/test/dummy_app/config/initializers/backtrace_silencers.rb +0 -7
  29. data/test/dummy_app/config/initializers/inflections.rb +0 -10
  30. data/test/dummy_app/config/initializers/mime_types.rb +0 -5
  31. data/test/dummy_app/config/initializers/secret_token.rb +0 -11
  32. data/test/dummy_app/config/initializers/session_store.rb +0 -8
  33. data/test/dummy_app/config/initializers/spreadsheet_architect.rb +0 -11
  34. data/test/dummy_app/config/initializers/wrap_parameters.rb +0 -14
  35. data/test/dummy_app/config/locales/en.yml +0 -5
  36. data/test/dummy_app/config/routes.rb +0 -6
  37. data/test/dummy_app/config/secrets.yml +0 -22
  38. data/test/dummy_app/config.ru +0 -4
  39. data/test/dummy_app/db/migrate/20170103234524_add_posts.rb +0 -10
  40. data/test/dummy_app/db/schema.rb +0 -23
  41. data/test/dummy_app/db/test.sqlite3 +0 -0
  42. data/test/dummy_app/log/test.log +0 -113964
  43. data/test/dummy_app/tmp/2.0.1/integration/alt_xlsx.xlsx +0 -0
  44. data/test/dummy_app/tmp/2.0.1/integration/csv.csv +0 -6
  45. data/test/dummy_app/tmp/2.0.1/integration/ods.ods +0 -0
  46. data/test/dummy_app/tmp/2.0.1/integration/xlsx.xlsx +0 -0
  47. data/test/dummy_app/tmp/2.0.1/kitchen_sink.ods +0 -0
  48. data/test/dummy_app/tmp/2.0.1/kitchen_sink.xlsx +0 -0
  49. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.csv +0 -3
  50. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.ods +0 -0
  51. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/data.xlsx +0 -0
  52. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.csv +0 -1
  53. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.ods +0 -0
  54. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/empty.xlsx +0 -0
  55. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.csv +0 -6
  56. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.ods +0 -0
  57. data/test/dummy_app/tmp/2.0.1/models/ActiveModelObject/instances.xlsx +0 -0
  58. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/data.csv +0 -3
  59. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/data.ods +0 -0
  60. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/data.xlsx +0 -0
  61. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/empty.csv +0 -0
  62. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/empty.ods +0 -0
  63. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/empty.xlsx +0 -0
  64. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/instances.csv +0 -6
  65. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/instances.ods +0 -0
  66. data/test/dummy_app/tmp/2.0.1/models/CustomColumnsMethodPost/instances.xlsx +0 -0
  67. data/test/dummy_app/tmp/2.0.1/models/CustomPost/data.csv +0 -3
  68. data/test/dummy_app/tmp/2.0.1/models/CustomPost/data.ods +0 -0
  69. data/test/dummy_app/tmp/2.0.1/models/CustomPost/data.xlsx +0 -0
  70. data/test/dummy_app/tmp/2.0.1/models/CustomPost/empty.csv +0 -1
  71. data/test/dummy_app/tmp/2.0.1/models/CustomPost/empty.ods +0 -0
  72. data/test/dummy_app/tmp/2.0.1/models/CustomPost/empty.xlsx +0 -0
  73. data/test/dummy_app/tmp/2.0.1/models/CustomPost/instances.csv +0 -6
  74. data/test/dummy_app/tmp/2.0.1/models/CustomPost/instances.ods +0 -0
  75. data/test/dummy_app/tmp/2.0.1/models/CustomPost/instances.xlsx +0 -0
  76. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.csv +0 -3
  77. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.ods +0 -0
  78. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/data.xlsx +0 -0
  79. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.csv +0 -1
  80. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.ods +0 -0
  81. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/empty.xlsx +0 -0
  82. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.csv +0 -6
  83. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.ods +0 -0
  84. data/test/dummy_app/tmp/2.0.1/models/LegacyPlainRubyObject/instances.xlsx +0 -0
  85. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.csv +0 -3
  86. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.ods +0 -0
  87. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/data.xlsx +0 -0
  88. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.csv +0 -1
  89. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.ods +0 -0
  90. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/empty.xlsx +0 -0
  91. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.csv +0 -6
  92. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.ods +0 -0
  93. data/test/dummy_app/tmp/2.0.1/models/PlainRubyObject/instances.xlsx +0 -0
  94. data/test/dummy_app/tmp/2.0.1/models/Post/data.csv +0 -3
  95. data/test/dummy_app/tmp/2.0.1/models/Post/data.ods +0 -0
  96. data/test/dummy_app/tmp/2.0.1/models/Post/data.xlsx +0 -0
  97. data/test/dummy_app/tmp/2.0.1/models/Post/empty.csv +0 -0
  98. data/test/dummy_app/tmp/2.0.1/models/Post/empty.ods +0 -0
  99. data/test/dummy_app/tmp/2.0.1/models/Post/empty.xlsx +0 -0
  100. data/test/dummy_app/tmp/2.0.1/models/Post/instances.csv +0 -6
  101. data/test/dummy_app/tmp/2.0.1/models/Post/instances.ods +0 -0
  102. data/test/dummy_app/tmp/2.0.1/models/Post/instances.xlsx +0 -0
  103. data/test/dummy_app/tmp/2.0.1/multi_sheet.ods +0 -0
  104. data/test/dummy_app/tmp/2.0.1/multi_sheet.xlsx +0 -0
  105. data/test/dummy_app/tmp/3.0.0.pre/integration/alt_xlsx.xlsx +0 -0
  106. data/test/dummy_app/tmp/3.0.0.pre/integration/csv.csv +0 -6
  107. data/test/dummy_app/tmp/3.0.0.pre/integration/ods.ods +0 -0
  108. data/test/dummy_app/tmp/3.0.0.pre/integration/xlsx.xlsx +0 -0
  109. data/test/dummy_app/tmp/3.0.0.pre/kitchen_sink.ods +0 -0
  110. data/test/dummy_app/tmp/3.0.0.pre/kitchen_sink.xlsx +0 -0
  111. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.csv +0 -3
  112. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.ods +0 -0
  113. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/data.xlsx +0 -0
  114. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.csv +0 -1
  115. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.ods +0 -0
  116. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/empty.xlsx +0 -0
  117. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.csv +0 -6
  118. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.ods +0 -0
  119. data/test/dummy_app/tmp/3.0.0.pre/models/ActiveModelObject/instances.xlsx +0 -0
  120. data/test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/data.csv +0 -3
  121. data/test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/data.ods +0 -0
  122. data/test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/data.xlsx +0 -0
  123. data/test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/empty.csv +0 -0
  124. data/test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/empty.ods +0 -0
  125. data/test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/empty.xlsx +0 -0
  126. data/test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/instances.csv +0 -6
  127. data/test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/instances.ods +0 -0
  128. data/test/dummy_app/tmp/3.0.0.pre/models/CustomColumnsMethodPost/instances.xlsx +0 -0
  129. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.csv +0 -3
  130. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.ods +0 -0
  131. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/data.xlsx +0 -0
  132. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.csv +0 -1
  133. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.ods +0 -0
  134. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/empty.xlsx +0 -0
  135. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.csv +0 -6
  136. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.ods +0 -0
  137. data/test/dummy_app/tmp/3.0.0.pre/models/CustomPost/instances.xlsx +0 -0
  138. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.csv +0 -3
  139. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.ods +0 -0
  140. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/data.xlsx +0 -0
  141. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.csv +0 -0
  142. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.ods +0 -0
  143. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/empty.xlsx +0 -0
  144. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.csv +0 -6
  145. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.ods +0 -0
  146. data/test/dummy_app/tmp/3.0.0.pre/models/LegacyPlainRubyObject/instances.xlsx +0 -0
  147. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.csv +0 -3
  148. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.ods +0 -0
  149. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/data.xlsx +0 -0
  150. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.csv +0 -0
  151. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.ods +0 -0
  152. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/empty.xlsx +0 -0
  153. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.csv +0 -6
  154. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.ods +0 -0
  155. data/test/dummy_app/tmp/3.0.0.pre/models/PlainRubyObject/instances.xlsx +0 -0
  156. data/test/dummy_app/tmp/3.0.0.pre/models/Post/data.csv +0 -3
  157. data/test/dummy_app/tmp/3.0.0.pre/models/Post/data.ods +0 -0
  158. data/test/dummy_app/tmp/3.0.0.pre/models/Post/data.xlsx +0 -0
  159. data/test/dummy_app/tmp/3.0.0.pre/models/Post/empty.csv +0 -1
  160. data/test/dummy_app/tmp/3.0.0.pre/models/Post/empty.ods +0 -0
  161. data/test/dummy_app/tmp/3.0.0.pre/models/Post/empty.xlsx +0 -0
  162. data/test/dummy_app/tmp/3.0.0.pre/models/Post/instances.csv +0 -6
  163. data/test/dummy_app/tmp/3.0.0.pre/models/Post/instances.ods +0 -0
  164. data/test/dummy_app/tmp/3.0.0.pre/models/Post/instances.xlsx +0 -0
  165. data/test/dummy_app/tmp/3.0.0.pre/multi_sheet.ods +0 -0
  166. data/test/dummy_app/tmp/3.0.0.pre/multi_sheet.xlsx +0 -0
  167. data/test/dummy_app/tmp/axlsx-master/integration/alt_xlsx.xlsx +0 -0
  168. data/test/dummy_app/tmp/axlsx-master/integration/csv.csv +0 -6
  169. data/test/dummy_app/tmp/axlsx-master/integration/ods.ods +0 -0
  170. data/test/dummy_app/tmp/axlsx-master/integration/xlsx.xlsx +0 -0
  171. data/test/dummy_app/tmp/axlsx-master/kitchen_sink.ods +0 -0
  172. data/test/dummy_app/tmp/axlsx-master/kitchen_sink.xlsx +0 -0
  173. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.csv +0 -4
  174. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.ods +0 -0
  175. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/data.xlsx +0 -0
  176. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.csv +0 -1
  177. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.ods +0 -0
  178. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/empty.xlsx +0 -0
  179. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.csv +0 -6
  180. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.ods +0 -0
  181. data/test/dummy_app/tmp/axlsx-master/models/ActiveModelObject/instances.xlsx +0 -0
  182. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/data.csv +0 -4
  183. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/data.ods +0 -0
  184. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/data.xlsx +0 -0
  185. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/empty.csv +0 -1
  186. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/empty.ods +0 -0
  187. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/empty.xlsx +0 -0
  188. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/instances.csv +0 -6
  189. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/instances.ods +0 -0
  190. data/test/dummy_app/tmp/axlsx-master/models/CustomColumnsMethodPost/instances.xlsx +0 -0
  191. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/data.csv +0 -4
  192. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/data.ods +0 -0
  193. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/data.xlsx +0 -0
  194. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.csv +0 -1
  195. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.ods +0 -0
  196. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/empty.xlsx +0 -0
  197. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.csv +0 -6
  198. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.ods +0 -0
  199. data/test/dummy_app/tmp/axlsx-master/models/CustomPost/instances.xlsx +0 -0
  200. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.csv +0 -4
  201. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.ods +0 -0
  202. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/data.xlsx +0 -0
  203. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.csv +0 -1
  204. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.ods +0 -0
  205. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/empty.xlsx +0 -0
  206. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.csv +0 -6
  207. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.ods +0 -0
  208. data/test/dummy_app/tmp/axlsx-master/models/LegacyPlainRubyObject/instances.xlsx +0 -0
  209. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.csv +0 -4
  210. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.ods +0 -0
  211. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/data.xlsx +0 -0
  212. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.csv +0 -1
  213. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.ods +0 -0
  214. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/empty.xlsx +0 -0
  215. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.csv +0 -6
  216. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.ods +0 -0
  217. data/test/dummy_app/tmp/axlsx-master/models/PlainRubyObject/instances.xlsx +0 -0
  218. data/test/dummy_app/tmp/axlsx-master/models/Post/data.csv +0 -4
  219. data/test/dummy_app/tmp/axlsx-master/models/Post/data.ods +0 -0
  220. data/test/dummy_app/tmp/axlsx-master/models/Post/data.xlsx +0 -0
  221. data/test/dummy_app/tmp/axlsx-master/models/Post/empty.csv +0 -1
  222. data/test/dummy_app/tmp/axlsx-master/models/Post/empty.ods +0 -0
  223. data/test/dummy_app/tmp/axlsx-master/models/Post/empty.xlsx +0 -0
  224. data/test/dummy_app/tmp/axlsx-master/models/Post/instances.csv +0 -6
  225. data/test/dummy_app/tmp/axlsx-master/models/Post/instances.ods +0 -0
  226. data/test/dummy_app/tmp/axlsx-master/models/Post/instances.xlsx +0 -0
  227. data/test/dummy_app/tmp/axlsx-master/multi_sheet.ods +0 -0
  228. data/test/dummy_app/tmp/axlsx-master/multi_sheet.xlsx +0 -0
  229. data/test/integration/application_test.rb +0 -38
  230. data/test/models/all_models_test.rb +0 -108
  231. data/test/test_helper.rb +0 -87
  232. data/test/unit/ods/general_test.rb +0 -121
  233. data/test/unit/rails/formats_test.rb +0 -15
  234. data/test/unit/spreadsheet_architect/exceptions_test.rb +0 -195
  235. data/test/unit/spreadsheet_architect/spreadsheet_architect_test.rb +0 -15
  236. data/test/unit/spreadsheet_architect/utils/ods_test.rb +0 -58
  237. data/test/unit/spreadsheet_architect/utils/xlsx_test.rb +0 -114
  238. data/test/unit/spreadsheet_architect/utils_test.rb +0 -197
  239. data/test/unit/xlsx/freeze_test.rb +0 -79
  240. data/test/unit/xlsx/general_test.rb +0 -199
@@ -1,3 +0,0 @@
1
- class ApplicationController < ActionController::Base
2
- protect_from_forgery
3
- end
@@ -1,77 +0,0 @@
1
- class SpreadsheetsController < ApplicationController
2
-
3
- respond_to :csv, :xlsx, :ods
4
-
5
- def csv
6
- render csv: Post.to_csv
7
- end
8
-
9
- def ods
10
- render ods: Post.to_ods
11
- end
12
-
13
- def xlsx
14
- render xlsx: Post.to_xlsx, filename: 'Posts'
15
- end
16
-
17
- def test_respond_with
18
- if Rails::VERSION::MAJOR >= 5
19
- @posts = Post.all
20
-
21
- respond_with @posts
22
- end
23
- end
24
-
25
- def test_xlsx
26
- headers = [
27
- ['Latest Posts'],
28
- ['Title','Category','Author','Posted on','Earnings','Title','Category','Author','Posted on','Earnings']
29
- ]
30
-
31
- data = 50.times.map{|x| ['Title','Category','Author','Posted on','Earnings','Title','Category','Author','Posted on','Earnings'] }
32
-
33
- header_style = {}
34
-
35
- row_style = {}
36
-
37
- column_styles = [
38
- {columns: 0, styles: {bold: true}},
39
- {columns: (1..3), styles: {format_code: "$#,##0.00"}},
40
- {columns: [4,9], include_header: true, styles: {italic: true}}
41
- ]
42
-
43
- range_styles = [
44
- {range: "B2:C4", styles: {background_color: "CCCCCC"}}
45
- ]
46
-
47
- borders = [
48
- {range: "B2:C4"},
49
- {range: "D6:D7", border_styles: {style: :dashdot, color: "333333"}},
50
- {rows: (2..11), border_styles: {edges: [:top,:bottom]}},
51
- {rows: [1,3,5], columns: ('B'..'F')},
52
- {rows: 1},
53
- {columns: 0, border_styles: {edges: [:right], style: :thick}},
54
- {columns: (1..2)},
55
- {columns: ('D'..'F')},
56
- {columns: [4,6,8]},
57
- {columns: ['A','C','E']}
58
-
59
- ]
60
-
61
- merges = [
62
- {range: "A1:C1"}
63
- ]
64
-
65
- render xlsx: SpreadsheetArchitect.to_xlsx({
66
- headers: headers,
67
- data: data,
68
- header_style: header_style,
69
- row_style: row_style,
70
- column_styles: column_styles,
71
- range_styles: range_styles,
72
- borders: borders,
73
- merges: merges
74
- })
75
- end
76
-
77
- end
@@ -1,15 +0,0 @@
1
- class ActiveModelObject
2
- include ActiveModel::Model
3
- include SpreadsheetArchitect
4
-
5
- attr_accessor :name, :content, :created_at
6
-
7
- def spreadsheet_columns
8
- [
9
- :name,
10
- :content,
11
- :created_at
12
- ]
13
- end
14
-
15
- end
@@ -1,3 +0,0 @@
1
- class ApplicationRecord < ActiveRecord::Base
2
- self.abstract_class = true
3
- end
@@ -1,29 +0,0 @@
1
- class CustomColumnsMethodPost < ActiveRecord::Base
2
- self.table_name = :posts
3
-
4
- include SpreadsheetArchitect
5
-
6
- def my_custom_spreadsheet_columns
7
- [
8
- :name,
9
- ['The Content', :content],
10
- :created_at,
11
- ['Created At Date', created_at.to_date],
12
- [:asd, 'tadaaa']
13
- ]
14
- end
15
-
16
- SPREADSHEET_OPTIONS = {
17
- headers: true,
18
- spreadsheet_columns: :my_custom_spreadsheet_columns,
19
- header_style: {background_color: 'AAAAAA', color: 'FFFFFF', align: :center, font_name: 'Arial', font_size: 10, bold: false, italic: false, underline: false},
20
- row_style: {background_color: nil, color: '000000', align: :left, font_name: 'Arial', font_size: 10, bold: false, italic: false, underline: false},
21
- sheet_name: 'My Project Export',
22
- column_styles: [],
23
- range_styles: [],
24
- merges: [],
25
- borders: [],
26
- column_types: []
27
- }
28
-
29
- end
@@ -1,28 +0,0 @@
1
- class CustomPost < ActiveRecord::Base
2
- self.table_name = :posts
3
-
4
- include SpreadsheetArchitect
5
-
6
- def spreadsheet_columns
7
- [
8
- :name,
9
- ['The Content', :content],
10
- :created_at,
11
- ['Created At Date', created_at.to_date],
12
- [:asd, 'tadaaa']
13
- ]
14
- end
15
-
16
- SPREADSHEET_OPTIONS = {
17
- headers: true,
18
- header_style: {background_color: 'AAAAAA', color: 'FFFFFF', align: :center, font_name: 'Arial', font_size: 10, bold: false, italic: false, underline: false},
19
- row_style: {background_color: nil, color: '000000', align: :left, font_name: 'Arial', font_size: 10, bold: false, italic: false, underline: false},
20
- sheet_name: 'My Project Export',
21
- column_styles: [],
22
- range_styles: [],
23
- merges: [],
24
- borders: [],
25
- column_types: []
26
- }
27
-
28
- end
@@ -1,14 +0,0 @@
1
- class LegacyPlainRubyObject
2
- include SpreadsheetArchitect ### old syntax, not in readme anymore, should easily remain compatible though
3
-
4
- attr_accessor :name, :content, :created_at
5
-
6
- def spreadsheet_columns
7
- [
8
- ['Name', :name],
9
- :content,
10
- ['Object ID', (object_id)]
11
- ]
12
- end
13
-
14
- end
@@ -1,12 +0,0 @@
1
- class PlainRubyObject
2
- attr_accessor :name, :content, :created_at
3
-
4
- def spreadsheet_columns
5
- [
6
- ['Name', :name],
7
- :content,
8
- ['Object ID', (object_id)]
9
- ]
10
- end
11
-
12
- end
@@ -1,6 +0,0 @@
1
- class Post < ActiveRecord::Base
2
- include SpreadsheetArchitect
3
-
4
- attr_accessor :name, :content, :created_at
5
-
6
- end
@@ -1,14 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Dummy App</title>
5
- <%= stylesheet_link_tag "application" %>
6
- <%= javascript_include_tag "application" %>
7
- <%= csrf_meta_tags %>
8
- </head>
9
- <body>
10
-
11
- <%= yield %>
12
-
13
- </body>
14
- </html>
@@ -1,58 +0,0 @@
1
- require File.expand_path('../boot', __FILE__)
2
-
3
- require 'rails/all'
4
-
5
- Bundler.require
6
-
7
- require "spreadsheet_architect"
8
-
9
- module Dummy
10
- class Application < Rails::Application
11
- # Settings in config/environments/* take precedence over those specified here.
12
- # Application configuration should go into files in config/initializers
13
- # -- all .rb files in that directory are automatically loaded.
14
-
15
- # Custom directories with classes and modules you want to be autoloadable.
16
- # config.autoload_paths += %W(#{config.root}/extras)
17
-
18
- # Only load the plugins named here, in the order given (default is alphabetical).
19
- # :all can be used as a placeholder for all plugins not explicitly named.
20
- # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
21
-
22
- # Activate observers that should always be running.
23
- # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
24
-
25
- # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
26
- # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
27
- # config.time_zone = 'Central Time (US & Canada)'
28
-
29
- # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
30
- # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
31
- # config.i18n.default_locale = :de
32
-
33
- # Configure the default encoding used in templates for Ruby 1.9.
34
- config.encoding = "utf-8"
35
-
36
- # Configure sensitive parameters which will be filtered from the log file.
37
- config.filter_parameters += [:password]
38
-
39
- config.generators.test_framework = false
40
- config.generators.helper = false
41
- config.generators.stylesheets = false
42
- config.generators.javascripts = false
43
-
44
- config.after_initialize do
45
- ActiveRecord::Migration.migrate(Rails.root.join("db/migrate/*").to_s)
46
- end
47
-
48
- if ActiveRecord.respond_to?(:gem_version)
49
- gem_version = ActiveRecord.gem_version
50
-
51
- if gem_version >= Gem::Version.new("7.0.0")
52
- config.active_record.legacy_connection_handling = false
53
- elsif gem_version.to_s.start_with?("5.2.")
54
- config.active_record.sqlite3.represent_boolean_as_integer = true
55
- end
56
- end
57
- end
58
- end
@@ -1,10 +0,0 @@
1
- require 'rubygems'
2
- gemfile = File.expand_path('../../../../Gemfile', __FILE__)
3
-
4
- if File.exist?(gemfile)
5
- ENV['BUNDLE_GEMFILE'] = gemfile
6
- require 'bundler'
7
- Bundler.setup
8
- end
9
-
10
- $:.unshift File.expand_path('../../../../lib', __FILE__)
@@ -1,25 +0,0 @@
1
- # SQLite version 3.x
2
- # gem install sqlite3
3
- #
4
- # Ensure the SQLite 3 gem is defined in your Gemfile
5
- # gem 'sqlite3'
6
- development:
7
- adapter: sqlite3
8
- database: db/development.sqlite3
9
- pool: 5
10
- timeout: 5000
11
-
12
- # Warning: The database defined as "test" will be erased and
13
- # re-generated from your development database when you run "rake".
14
- # Do not set this db to the same as development or production.
15
- test:
16
- adapter: sqlite3
17
- database: db/test.sqlite3
18
- pool: 5
19
- timeout: 5000
20
-
21
- production:
22
- adapter: sqlite3
23
- database: db/production.sqlite3
24
- pool: 5
25
- timeout: 5000
@@ -1,5 +0,0 @@
1
- # Load the rails application
2
- require File.expand_path('../application', __FILE__)
3
-
4
- # Initialize the rails application
5
- Dummy::Application.initialize!
@@ -1,41 +0,0 @@
1
- Dummy::Application.configure do
2
- # Settings specified here will take precedence over those in config/application.rb
3
-
4
- # The test environment is used exclusively to run your application's
5
- # test suite. You never need to work with it otherwise. Remember that
6
- # your test database is "scratch space" for the test suite and is wiped
7
- # and recreated between test runs. Don't rely on the data there!
8
- config.cache_classes = true
9
-
10
- # Configure static asset server for tests with Cache-Control for performance
11
- config.serve_static_files = true
12
- config.public_file_server.enabled = true
13
-
14
- # Log error messages when you accidentally call methods on nil
15
- config.whiny_nils = true
16
-
17
- # Show full error reports and disable caching
18
- config.consider_all_requests_local = true
19
- config.action_controller.perform_caching = false
20
-
21
- # Raise exceptions instead of rendering exception templates
22
- config.action_dispatch.show_exceptions = false
23
-
24
- # Disable request forgery protection in test environment
25
- config.action_controller.allow_forgery_protection = false
26
-
27
- # Tell Action Mailer not to deliver emails to the real world.
28
- # The :test delivery method accumulates sent emails in the
29
- # ActionMailer::Base.deliveries array.
30
- config.action_mailer.delivery_method = :test
31
-
32
- # Use SQL instead of Active Record's schema dumper when creating the test database.
33
- # This is necessary if your schema can't be completely dumped by the schema dumper,
34
- # like if you have constraints or database-specific column types
35
- # config.active_record.schema_format = :sql
36
-
37
- # Print deprecation notices to the stderr
38
- config.active_support.deprecation = :stderr
39
-
40
- config.eager_load = false
41
- end
@@ -1,7 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4
- # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5
-
6
- # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7
- # Rails.backtrace_cleaner.remove_silencers!
@@ -1,10 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Add new inflection rules using the following format
4
- # (all these examples are active by default):
5
- # ActiveSupport::Inflector.inflections do |inflect|
6
- # inflect.plural /^(ox)$/i, '\1en'
7
- # inflect.singular /^(ox)en/i, '\1'
8
- # inflect.irregular 'person', 'people'
9
- # inflect.uncountable %w( fish sheep )
10
- # end
@@ -1,5 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Add new mime types for use in respond_to blocks:
4
- # Mime::Type.register "text/richtext", :rtf
5
- # Mime::Type.register_alias "text/html", :iphone
@@ -1,11 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Your secret key for verifying the integrity of signed cookies.
4
- # If you change this key, all old signed cookies will become invalid!
5
- # Make sure the secret is at least 30 characters and all random,
6
- # no regular words or you'll be exposed to dictionary attacks.
7
-
8
- gem_version = ActiveRecord.gem_version
9
- if gem_version <= Gem::Version.new("5.1")
10
- Dummy::Application.config.secret_token = '4f337f0063fbb4a724dd8da15419679300da990ae4f6c94d36c714a3cd07e9653fc42d902cf33a9b9449a28e7eb2673f928172d65a090fa3c9156d6beea8d16c'
11
- end
@@ -1,8 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- Dummy::Application.config.session_store :cookie_store, key: '_dummy_session'
4
-
5
- # Use the database for sessions instead of the cookie-based default,
6
- # which shouldn't be used to store highly confidential information
7
- # (create the session table with "rails generate session_migration")
8
- # Dummy::Application.config.session_store :active_record_store
@@ -1,11 +0,0 @@
1
- SpreadsheetArchitect.default_options = {
2
- headers: true,
3
- header_style: {background_color: 'AAAAAA', color: 'FFFFFF', align: :center, font_name: 'Arial', font_size: 10, bold: false, italic: false, underline: false},
4
- row_style: {background_color: nil, color: '000000', align: :left, font_name: 'Arial', font_size: 10, bold: false, italic: false, underline: false},
5
- sheet_name: 'My Project Export',
6
- column_styles: [],
7
- range_styles: [],
8
- merges: [],
9
- borders: [],
10
- column_types: []
11
- }
@@ -1,14 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
- #
3
- # This file contains settings for ActionController::ParamsWrapper which
4
- # is enabled by default.
5
-
6
- # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7
- ActiveSupport.on_load(:action_controller) do
8
- wrap_parameters format: [:json]
9
- end
10
-
11
- # Disable root element in JSON by default.
12
- ActiveSupport.on_load(:active_record) do
13
- self.include_root_in_json = false
14
- end
@@ -1,5 +0,0 @@
1
- # Sample localization file for English. Add more files in this directory for other locales.
2
- # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
-
4
- en:
5
- hello: "Hello world"
@@ -1,6 +0,0 @@
1
- Dummy::Application.routes.draw do
2
- get 'spreadsheets/csv', to: 'spreadsheets#csv'
3
- get 'spreadsheets/ods', to: 'spreadsheets#ods'
4
- get 'spreadsheets/xlsx', to: 'spreadsheets#xlsx'
5
- get 'spreadsheets/test_respond_with', to: 'spreadsheets#test_respond_with'
6
- end
@@ -1,22 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Your secret key is used for verifying the integrity of signed cookies.
4
- # If you change this key, all old signed cookies will become invalid!
5
-
6
- # Make sure the secret is at least 30 characters and all random,
7
- # no regular words or you'll be exposed to dictionary attacks.
8
- # You can use `rake secret` to generate a secure secret key.
9
-
10
- # Make sure the secrets in this file are kept private
11
- # if you're sharing your code publicly.
12
-
13
- development:
14
- secret_key_base: d28054e102cd55dcd684cee239d31ddf1e1acd83bd879dd5f671e989f5c9d94ec1ede00e7fcf9b6bde4cd115f93c54e3ba6c5dc05d233292542f27a79706fcb4
15
-
16
- test:
17
- secret_key_base: 378b4f2309d4898f5170b41624e19bf60ce8a154ad87c100e8846bddcf4c28b72b533f2e73738ef8f6eabb7a773a0a0e7c32c0649916c5f280eb7ac621fc318c
18
-
19
- # Do not keep production secrets in the repository,
20
- # instead read values from the environment.
21
- production:
22
- secret_key_base: 5e73c057b92f67f980fbea4c1c2c495b25def0048f8c1c040fed9c08f49cd50a2ebf872dd87857afc0861479e9382fceb7d9837a0bce546c2f7594e2f4da45e3
@@ -1,4 +0,0 @@
1
- # This file is used by Rack-based servers to start the application.
2
-
3
- require ::File.expand_path('../config/environment', __FILE__)
4
- run Dummy::Application
@@ -1,10 +0,0 @@
1
- class AddPosts < ActiveRecord::Migration::Current
2
- def change
3
- create_table :posts do |t|
4
- t.string :name
5
- t.text :content
6
- t.integer :age
7
- t.timestamps
8
- end
9
- end
10
- end
@@ -1,23 +0,0 @@
1
- # This file is auto-generated from the current state of the database. Instead
2
- # of editing this file, please use the migrations feature of Active Record to
3
- # incrementally modify your database, and then regenerate this schema definition.
4
- #
5
- # Note that this schema.rb definition is the authoritative source for your
6
- # database schema. If you need to create the application database on another
7
- # system, you should be using db:schema:load, not running all the migrations
8
- # from scratch. The latter is a flawed and unsustainable approach (the more migrations
9
- # you'll amass, the slower it'll run and the greater likelihood for issues).
10
- #
11
- # It's strongly recommended that you check this file into your version control system.
12
-
13
- ActiveRecord::Schema.define(version: 2017_01_03_234524) do
14
-
15
- create_table "posts", force: :cascade do |t|
16
- t.string "name"
17
- t.text "content"
18
- t.integer "age"
19
- t.datetime "created_at", null: false
20
- t.datetime "updated_at", null: false
21
- end
22
-
23
- end
Binary file