qbrick 2.5.0.pre → 2.5.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 (341) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +69 -379
  3. data/Rakefile +4 -4
  4. data/app/assets/images/logo.png +0 -0
  5. data/app/assets/javascripts/{kuhsaft → qbrick}/application.js.coffee +1 -1
  6. data/app/assets/javascripts/{kuhsaft → qbrick}/cms/application.js.coffee.erb +40 -17
  7. data/app/assets/javascripts/{kuhsaft → qbrick}/views/read_more_view.js.coffee +0 -0
  8. data/app/assets/stylesheets/{kuhsaft → qbrick}/application.css.sass +0 -0
  9. data/app/assets/stylesheets/{kuhsaft → qbrick}/cms/application.css.sass +38 -1
  10. data/app/assets/stylesheets/{kuhsaft → qbrick}/modules/_text_brick.css.sass +1 -1
  11. data/app/controllers/{kuhsaft → qbrick}/api/pages_controller.rb +2 -2
  12. data/app/controllers/qbrick/cms/accounts_controller.rb +28 -0
  13. data/app/controllers/qbrick/cms/admins_controller.rb +79 -0
  14. data/app/controllers/{kuhsaft → qbrick}/cms/assets_controller.rb +9 -9
  15. data/app/controllers/qbrick/cms/backend_controller.rb +25 -0
  16. data/app/controllers/{kuhsaft → qbrick}/cms/bricks_controller.rb +16 -13
  17. data/app/controllers/{kuhsaft → qbrick}/cms/ckimages_controller.rb +6 -6
  18. data/app/controllers/qbrick/cms/pages_controller.rb +87 -0
  19. data/app/controllers/qbrick/cms/settings_collections_controller.rb +26 -0
  20. data/app/controllers/{kuhsaft → qbrick}/pages_controller.rb +10 -5
  21. data/app/controllers/{kuhsaft → qbrick}/sitemaps_controller.rb +3 -3
  22. data/app/helpers/cms_helper.rb +4 -4
  23. data/app/helpers/pages_helper.rb +18 -10
  24. data/app/helpers/{kuhsaft → qbrick}/admin_helper.rb +2 -2
  25. data/app/helpers/qbrick/cms/admin_helper.rb +73 -0
  26. data/app/helpers/{kuhsaft → qbrick}/cms/pages_helper.rb +2 -2
  27. data/app/models/{kuhsaft → qbrick}/accordion_brick.rb +2 -2
  28. data/app/models/{kuhsaft → qbrick}/accordion_item_brick.rb +1 -1
  29. data/app/models/qbrick/admin.rb +8 -0
  30. data/app/models/{kuhsaft → qbrick}/anchor_brick.rb +1 -1
  31. data/app/models/{kuhsaft → qbrick}/asset.rb +2 -2
  32. data/app/models/{kuhsaft → qbrick}/asset_brick.rb +2 -2
  33. data/app/models/{kuhsaft → qbrick}/brick.rb +11 -8
  34. data/app/models/{kuhsaft → qbrick}/brick_type.rb +1 -1
  35. data/app/models/{kuhsaft → qbrick}/brick_type_filter.rb +4 -4
  36. data/app/models/{kuhsaft → qbrick}/ckimage.rb +1 -1
  37. data/app/models/{kuhsaft → qbrick}/cms.rb +2 -2
  38. data/app/models/qbrick/cms_model.rb +25 -0
  39. data/app/models/{kuhsaft → qbrick}/column_brick.rb +2 -2
  40. data/app/models/{kuhsaft → qbrick}/image_brick.rb +2 -2
  41. data/app/models/{kuhsaft → qbrick}/image_size.rb +3 -3
  42. data/app/models/{kuhsaft → qbrick}/link_brick.rb +1 -1
  43. data/app/models/{kuhsaft → qbrick}/page.rb +78 -17
  44. data/app/models/{kuhsaft → qbrick}/page_type.rb +3 -2
  45. data/app/models/{kuhsaft → qbrick}/partition.rb +1 -1
  46. data/app/models/{kuhsaft → qbrick}/placeholder_brick.rb +4 -4
  47. data/app/models/{kuhsaft → qbrick}/publish_state.rb +1 -1
  48. data/app/models/qbrick/setting.rb +13 -0
  49. data/app/models/qbrick/settings_collection.rb +10 -0
  50. data/app/models/{kuhsaft → qbrick}/slider_brick.rb +3 -3
  51. data/app/models/{kuhsaft → qbrick}/text_brick.rb +1 -1
  52. data/app/models/{kuhsaft → qbrick}/two_column_brick.rb +2 -2
  53. data/app/models/{kuhsaft → qbrick}/video_brick.rb +1 -1
  54. data/app/uploaders/qbrick/asset_brick_asset_uploader.rb +26 -0
  55. data/app/uploaders/{kuhsaft → qbrick}/asset_uploader.rb +3 -2
  56. data/app/uploaders/{kuhsaft → qbrick}/ckimage_uploader.rb +1 -1
  57. data/app/uploaders/{kuhsaft → qbrick}/image_brick_image_uploader.rb +4 -4
  58. data/app/views/devise/confirmations/new.html.haml +10 -0
  59. data/app/views/devise/mailer/confirmation_instructions.html.haml +4 -0
  60. data/app/views/devise/mailer/reset_password_instructions.html.haml +6 -0
  61. data/app/views/devise/mailer/unlock_instructions.html.haml +5 -0
  62. data/app/views/devise/passwords/edit.html.haml +10 -0
  63. data/app/views/devise/passwords/new.html.haml +8 -0
  64. data/app/views/devise/registrations/edit.html.haml +9 -0
  65. data/app/views/devise/registrations/new.html.haml +21 -0
  66. data/app/views/devise/sessions/new.html.haml +12 -0
  67. data/app/views/devise/shared/_links.html.haml +19 -0
  68. data/app/views/devise/unlocks/new.html.haml +10 -0
  69. data/app/views/layouts/devise.html.haml +16 -0
  70. data/app/views/layouts/{kuhsaft → qbrick}/cms/application.html.haml +4 -5
  71. data/app/views/layouts/qbrick/cms/ckimages.html.haml +18 -0
  72. data/app/views/{kuhsaft → qbrick}/accordion_bricks/_accordion_brick.html.haml +0 -0
  73. data/app/views/{kuhsaft → qbrick}/accordion_bricks/accordion_brick/_edit.html.haml +0 -0
  74. data/app/views/{kuhsaft → qbrick}/accordion_item_bricks/_accordion_item_brick.html.haml +0 -0
  75. data/app/views/{kuhsaft → qbrick}/accordion_item_bricks/accordion_item_brick/_edit.html.haml +0 -0
  76. data/app/views/{kuhsaft → qbrick}/anchor_bricks/_anchor_brick.html.haml +0 -0
  77. data/app/views/{kuhsaft → qbrick}/anchor_bricks/anchor_brick/_edit.html.haml +0 -0
  78. data/app/views/{kuhsaft → qbrick}/asset_bricks/_asset_brick.html.haml +0 -0
  79. data/app/views/{kuhsaft → qbrick}/asset_bricks/asset_brick/_edit.html.haml +1 -1
  80. data/app/views/qbrick/cms/accounts/edit.html.haml +12 -0
  81. data/app/views/qbrick/cms/admins/_form.html.haml +10 -0
  82. data/app/views/qbrick/cms/admins/edit.html.haml +5 -0
  83. data/app/views/qbrick/cms/admins/index.html.haml +26 -0
  84. data/app/views/qbrick/cms/admins/new.html.haml +5 -0
  85. data/app/views/{kuhsaft → qbrick}/cms/assets/_form.html.haml +0 -0
  86. data/app/views/{kuhsaft → qbrick}/cms/assets/_list.html.haml +0 -0
  87. data/app/views/{kuhsaft → qbrick}/cms/assets/edit.html.haml +0 -0
  88. data/app/views/qbrick/cms/assets/index.html.haml +3 -0
  89. data/app/views/{kuhsaft → qbrick}/cms/assets/new.html.haml +0 -0
  90. data/app/views/qbrick/cms/backend/_brick_clone_menu.html.haml +16 -0
  91. data/app/views/qbrick/cms/backend/_brick_type_dropdown.html.haml +15 -0
  92. data/app/views/{kuhsaft/cms/admin → qbrick/cms/backend}/_empty_state.html.haml +0 -0
  93. data/app/views/{kuhsaft/cms/admin → qbrick/cms/backend}/_flash.html.haml +0 -0
  94. data/app/views/qbrick/cms/backend/_main_navigation.html.haml +20 -0
  95. data/app/views/{kuhsaft → qbrick}/cms/bricks/_brick_header.html.haml +4 -4
  96. data/app/views/{kuhsaft → qbrick}/cms/bricks/_brick_item.html.haml +6 -5
  97. data/app/views/{kuhsaft → qbrick}/cms/bricks/_brick_list.html.haml +1 -1
  98. data/app/views/{kuhsaft → qbrick}/cms/bricks/_new.html.haml +3 -3
  99. data/app/views/{kuhsaft → qbrick}/cms/bricks/_sort_form.html.haml +0 -0
  100. data/app/views/{kuhsaft → qbrick}/cms/bricks/create.js.erb +1 -1
  101. data/app/views/{kuhsaft → qbrick}/cms/bricks/destroy.js.erb +0 -0
  102. data/app/views/{kuhsaft → qbrick}/cms/bricks/new.js.erb +1 -1
  103. data/app/views/{kuhsaft → qbrick}/cms/bricks/update.js.erb +1 -1
  104. data/app/views/{kuhsaft → qbrick}/cms/ckimages/create.html.haml +0 -0
  105. data/app/views/{kuhsaft → qbrick}/cms/ckimages/destroy.js.erb +0 -0
  106. data/app/views/{kuhsaft → qbrick}/cms/ckimages/index.html.haml +1 -1
  107. data/app/views/{kuhsaft → qbrick}/cms/pages/_branch.html.haml +4 -4
  108. data/app/views/{kuhsaft → qbrick}/cms/pages/_form.html.haml +15 -6
  109. data/app/views/qbrick/cms/pages/_mirror_modal.html.haml +52 -0
  110. data/app/views/qbrick/cms/pages/edit.html.haml +16 -0
  111. data/app/views/{kuhsaft → qbrick}/cms/pages/index.html.haml +1 -1
  112. data/app/views/qbrick/cms/pages/mirror.js.haml +5 -0
  113. data/app/views/qbrick/cms/pages/new.html.haml +1 -0
  114. data/app/views/{kuhsaft → qbrick}/cms/pages/show.html.haml +0 -0
  115. data/app/views/{kuhsaft → qbrick}/cms/pages/sort.js.erb +0 -0
  116. data/app/views/qbrick/cms/settings_collections/_form.html.haml +8 -0
  117. data/app/views/qbrick/cms/settings_collections/index.html.haml +6 -0
  118. data/app/views/{kuhsaft → qbrick}/column_bricks/_column_brick.html.haml +0 -0
  119. data/app/views/{kuhsaft → qbrick}/column_bricks/column_brick/_edit.html.haml +0 -0
  120. data/app/views/{kuhsaft → qbrick}/image_bricks/_image_brick.html.haml +0 -0
  121. data/app/views/{kuhsaft → qbrick}/image_bricks/image_brick/_edit.html.haml +1 -1
  122. data/app/views/{kuhsaft → qbrick}/link_bricks/_link_brick.html.haml +0 -0
  123. data/app/views/{kuhsaft → qbrick}/link_bricks/link_brick/_edit.html.haml +1 -1
  124. data/app/views/{kuhsaft → qbrick}/pages/index.html.haml +2 -2
  125. data/app/views/{kuhsaft → qbrick}/pages/show.html.haml +2 -0
  126. data/app/views/{kuhsaft → qbrick}/placeholder_bricks/_placeholder_brick.html.haml +0 -0
  127. data/app/views/qbrick/placeholder_bricks/placeholder_brick/_edit.html.haml +1 -0
  128. data/app/views/{kuhsaft → qbrick}/search/_form.html.haml +0 -0
  129. data/app/views/{kuhsaft → qbrick}/search/_results.html.haml +2 -2
  130. data/app/views/{kuhsaft → qbrick}/search/_results_entry.html.haml +1 -1
  131. data/app/views/{kuhsaft → qbrick}/sitemaps/index.xml.haml +0 -0
  132. data/app/views/{kuhsaft → qbrick}/slider_bricks/_slider_brick.html.haml +0 -0
  133. data/app/views/{kuhsaft → qbrick}/slider_bricks/slider_brick/_edit.html.haml +0 -0
  134. data/app/views/{kuhsaft → qbrick}/text_bricks/_text_brick.html.haml +0 -0
  135. data/app/views/{kuhsaft → qbrick}/text_bricks/text_brick/_edit.html.haml +0 -0
  136. data/app/views/{kuhsaft → qbrick}/two_column_bricks/_two_column_brick.html.haml +1 -1
  137. data/app/views/qbrick/two_column_bricks/two_column_brick/_childs.html.haml +5 -0
  138. data/app/views/qbrick/two_column_bricks/two_column_brick/_edit.html.haml +1 -0
  139. data/app/views/{kuhsaft → qbrick}/video_bricks/_video_brick.html.haml +2 -2
  140. data/app/views/{kuhsaft → qbrick}/video_bricks/video_brick/_edit.html.haml +1 -1
  141. data/config/initializers/devise.rb +259 -0
  142. data/config/locales/cms.de.yml +11 -0
  143. data/config/locales/cms.en.yml +11 -0
  144. data/config/locales/devise.en.yml +60 -0
  145. data/config/locales/models/qbrick/accordion_brick/de.yml +4 -0
  146. data/config/locales/models/qbrick/accordion_brick/en.yml +4 -0
  147. data/config/locales/models/qbrick/accordion_item_brick/de.yml +7 -0
  148. data/config/locales/models/qbrick/accordion_item_brick/en.yml +7 -0
  149. data/config/locales/models/qbrick/admin/de.yml +13 -0
  150. data/config/locales/models/qbrick/admin/en.yml +13 -0
  151. data/config/locales/models/{kuhsaft → qbrick}/anchor_brick/de.yml +2 -2
  152. data/config/locales/models/{kuhsaft → qbrick}/anchor_brick/en.yml +2 -2
  153. data/config/locales/models/{kuhsaft → qbrick}/asset_brick/de.yml +2 -2
  154. data/config/locales/models/{kuhsaft → qbrick}/asset_brick/en.yml +2 -2
  155. data/config/locales/models/{kuhsaft → qbrick}/brick/de.yml +1 -1
  156. data/config/locales/models/{kuhsaft → qbrick}/brick/en.yml +1 -1
  157. data/config/locales/models/qbrick/column_brick/de.yml +4 -0
  158. data/config/locales/models/qbrick/column_brick/en.yml +4 -0
  159. data/config/locales/models/{kuhsaft → qbrick}/image_brick/de.yml +2 -2
  160. data/config/locales/models/{kuhsaft → qbrick}/image_brick/en.yml +2 -2
  161. data/config/locales/models/{kuhsaft → qbrick}/image_size/de.yml +2 -2
  162. data/config/locales/models/{kuhsaft → qbrick}/image_size/en.yml +2 -2
  163. data/config/locales/models/{kuhsaft → qbrick}/link_brick/de.yml +2 -2
  164. data/config/locales/models/{kuhsaft → qbrick}/link_brick/en.yml +2 -2
  165. data/config/locales/models/{kuhsaft → qbrick}/page/de.yml +2 -2
  166. data/config/locales/models/{kuhsaft → qbrick}/page/en.yml +3 -2
  167. data/config/locales/models/{kuhsaft → qbrick}/placeholder_brick/de.yml +2 -2
  168. data/config/locales/models/{kuhsaft → qbrick}/placeholder_brick/en.yml +2 -2
  169. data/config/locales/models/qbrick/slider_brick/de.yml +4 -0
  170. data/config/locales/models/qbrick/slider_brick/en.yml +4 -0
  171. data/config/locales/models/{kuhsaft → qbrick}/text_brick/de.yml +2 -2
  172. data/config/locales/models/{kuhsaft → qbrick}/text_brick/en.yml +2 -2
  173. data/config/locales/models/qbrick/two_column_brick/de.yml +7 -0
  174. data/config/locales/models/qbrick/two_column_brick/en.yml +7 -0
  175. data/config/locales/models/{kuhsaft → qbrick}/video_brick/de.yml +2 -2
  176. data/config/locales/models/{kuhsaft → qbrick}/video_brick/en.yml +2 -2
  177. data/config/locales/views/qbrick/cms/admin/de.yml +36 -0
  178. data/config/locales/views/{kuhsaft → qbrick}/cms/admin/en.yml +1 -1
  179. data/config/locales/views/{kuhsaft → qbrick}/cms/bricks/de.yml +1 -1
  180. data/config/locales/views/{kuhsaft → qbrick}/cms/bricks/en.yml +1 -1
  181. data/config/locales/views/qbrick/cms/navigation.yml +8 -0
  182. data/config/locales/views/{kuhsaft → qbrick}/cms/pages/de.yml +14 -1
  183. data/config/locales/views/{kuhsaft → qbrick}/cms/pages/en.yml +1 -1
  184. data/config/locales/views/qbrick/cms/settings_collection/de.yml +14 -0
  185. data/config/locales/views/qbrick/cms/settings_collection/en.yml +14 -0
  186. data/config/locales/views/{kuhsaft → qbrick}/image_brick/de.yml +1 -1
  187. data/config/locales/views/{kuhsaft → qbrick}/image_brick/en.yml +1 -1
  188. data/config/locales/views/{kuhsaft → qbrick}/search/de.yml +1 -1
  189. data/config/locales/views/{kuhsaft → qbrick}/search/en.yml +1 -1
  190. data/config/locales/views/{kuhsaft → qbrick}/text_brick/de.yml +1 -1
  191. data/config/locales/views/{kuhsaft → qbrick}/text_brick/en.yml +1 -1
  192. data/config/locales/views/{kuhsaft → qbrick}/video_brick/de.yml +1 -1
  193. data/config/locales/views/{kuhsaft → qbrick}/video_brick/en.yml +1 -1
  194. data/config/routes.rb +14 -2
  195. data/db/migrate/{01_create_kuhsaft_pages.rb → 01_create_qbrick_pages.rb} +5 -5
  196. data/db/migrate/{02_create_kuhsaft_bricks.rb → 02_create_qbrick_bricks.rb} +3 -3
  197. data/db/migrate/03_create_qbrick_brick_types.rb +12 -0
  198. data/db/migrate/04_create_qbrick_assets.rb +10 -0
  199. data/db/migrate/05_remove_cms_admin.rb +3 -3
  200. data/db/migrate/06_add_template_name_to_qbrick_bricks.rb +7 -0
  201. data/db/migrate/07_add_default_value_to_brick_type_enabled.rb +2 -2
  202. data/db/migrate/08_add_display_styles_to_bricks.rb +1 -1
  203. data/db/migrate/09_add_additional_fields_to_qbrick_bricks.rb +6 -0
  204. data/db/migrate/10_add_redirect_url_to_qbrick_pages.rb +7 -0
  205. data/db/migrate/11_update_url_and_redirect_url_value.rb +2 -2
  206. data/db/migrate/12_regenerate_fulltext.rb +1 -1
  207. data/db/migrate/13_add_page_title_to_pages.rb +1 -1
  208. data/db/migrate/14_move_qbrick_assets.rb +22 -0
  209. data/db/migrate/15_add_alt_text_to_bricks.rb +1 -1
  210. data/db/migrate/16_update_default_value_for_page_type.rb +2 -2
  211. data/db/migrate/17_set_page_type_to_content_for_empty_fields.rb +2 -2
  212. data/db/migrate/18_add_identifier_to_qbrick_pages.rb +6 -0
  213. data/db/migrate/19_add_col_count_to_bricks.rb +1 -1
  214. data/db/migrate/20_create_qbrick_ckimages.rb +9 -0
  215. data/db/migrate/21_add_google_verification_key_to_qbrick_pages.rb +5 -0
  216. data/db/migrate/22_create_settings.rb +15 -0
  217. data/db/migrate/22_create_settings_collections.rb +11 -0
  218. data/db/migrate/23_add_metadata_to_asset.rb +6 -0
  219. data/db/migrate/23_devise_create_qbrick_admins.rb +42 -0
  220. data/db/seeds.rb +36 -13
  221. data/lib/generators/{kuhsaft → qbrick}/assets/install_generator.rb +5 -5
  222. data/lib/generators/qbrick/custom_model_generator.rb +117 -0
  223. data/lib/generators/{kuhsaft → qbrick}/translations/add_generator.rb +4 -4
  224. data/lib/qbrick.rb +24 -0
  225. data/lib/{kuhsaft → qbrick}/brick_list.rb +3 -3
  226. data/lib/{kuhsaft → qbrick}/engine.rb +5 -5
  227. data/lib/{kuhsaft → qbrick}/gridded.rb +1 -1
  228. data/lib/{kuhsaft → qbrick}/image_uploader_mounting.rb +2 -2
  229. data/lib/{kuhsaft → qbrick}/orderable.rb +1 -1
  230. data/lib/{kuhsaft → qbrick}/page_tree.rb +1 -1
  231. data/lib/{kuhsaft → qbrick}/partial_extractor.rb +1 -1
  232. data/lib/{kuhsaft → qbrick}/searchable.rb +5 -3
  233. data/lib/{kuhsaft → qbrick}/touch_placeholders.rb +4 -4
  234. data/lib/{kuhsaft → qbrick}/translatable.rb +1 -1
  235. data/lib/qbrick/version.rb +3 -0
  236. data/lib/tasks/{kuhsaft_tasks.rake → qbrick_tasks.rake} +5 -5
  237. data/lib/templates/{kuhsaft → qbrick}/assets/ck-config.js.coffee +0 -0
  238. data/lib/templates/{kuhsaft → qbrick}/assets/customizations.css.sass +0 -0
  239. data/lib/templates/{kuhsaft → qbrick}/assets/customizations.js.coffee +0 -0
  240. data/lib/templates/qbrick/custom_model_generator/base_controller.rb +17 -0
  241. data/lib/templates/qbrick/custom_model_generator/inherited_views/base/_form.html.haml +12 -0
  242. data/lib/templates/qbrick/custom_model_generator/inherited_views/base/edit.html.haml +5 -0
  243. data/lib/templates/qbrick/custom_model_generator/inherited_views/base/index.html.haml +28 -0
  244. data/lib/templates/qbrick/custom_model_generator/inherited_views/base/new.html.haml +5 -0
  245. data/lib/templates/qbrick/custom_model_generator/translations/qbrick_base.yml +11 -0
  246. data/lib/templates/qbrick/custom_model_generator/translations/resource.yml.erb +14 -0
  247. data/lib/templates/qbrick/translations/add_translation.erb +8 -0
  248. data/spec/command_wrapper_helper.rb +21 -0
  249. data/spec/controllers/{kuhsaft → qbrick}/api/pages_controller_spec.rb +5 -5
  250. data/spec/controllers/qbrick/cms/pages_controller_spec.rb +61 -0
  251. data/spec/controllers/{kuhsaft → qbrick}/pages_controller_spec.rb +11 -13
  252. data/spec/controllers/{kuhsaft → qbrick}/sitemaps_controller_spec.rb +2 -2
  253. data/spec/dummy/app/assets/javascripts/{kuhsaft → qbrick}/cms/ck-config.js.coffee +0 -0
  254. data/spec/dummy/app/assets/javascripts/{kuhsaft → qbrick}/cms/customizations.js.coffee +0 -0
  255. data/spec/dummy/app/assets/stylesheets/{kuhsaft → qbrick}/cms/customizations.css.sass +0 -0
  256. data/spec/dummy/app/controllers/application_controller.rb +1 -1
  257. data/spec/dummy/config/application.rb +3 -2
  258. data/spec/dummy/config/database.yml +2 -2
  259. data/spec/dummy/config/environments/production.rb +2 -2
  260. data/spec/dummy/config/environments/test.rb +1 -1
  261. data/spec/dummy/config/initializers/{kuhsaft.rb → qbrick.rb} +1 -1
  262. data/spec/dummy/config/routes.rb +4 -1
  263. data/spec/factories.rb +24 -9
  264. data/spec/features/administrator_management_spec.rb +70 -0
  265. data/spec/features/cms_pages_spec.rb +15 -11
  266. data/spec/features/search_spec.rb +15 -15
  267. data/spec/features_helper.rb +36 -0
  268. data/spec/generators/custom_model_generator_spec.rb +83 -0
  269. data/spec/helpers/{kuhsaft → qbrick}/cms/admin_helper_spec.rb +5 -5
  270. data/spec/helpers/{kuhsaft → qbrick}/cms/pages_helper_spec.rb +6 -6
  271. data/spec/helpers/{kuhsaft → qbrick}/pages_helper_spec.rb +4 -5
  272. data/spec/lib/brick_list_spec.rb +12 -11
  273. data/spec/lib/engine_spec.rb +5 -9
  274. data/spec/lib/gridded_spec.rb +4 -5
  275. data/spec/lib/image_uploader_mounting_spec.rb +3 -4
  276. data/spec/lib/page_tree_spec.rb +5 -5
  277. data/spec/lib/searchable_spec.rb +7 -8
  278. data/spec/lib/touch_placeholders_spec.rb +4 -5
  279. data/spec/lib/translatable_spec.rb +20 -20
  280. data/spec/models/accordion_brick_spec.rb +7 -8
  281. data/spec/models/accordion_item_brick_spec.rb +8 -9
  282. data/spec/models/anchor_brick_spec.rb +5 -6
  283. data/spec/models/asset_brick_spec.rb +8 -9
  284. data/spec/models/asset_spec.rb +9 -11
  285. data/spec/models/brick_spec.rb +34 -34
  286. data/spec/models/brick_type_filter_spec.rb +14 -14
  287. data/spec/models/column_brick_spec.rb +6 -7
  288. data/spec/models/image_brick_spec.rb +9 -10
  289. data/spec/models/image_size_spec.rb +8 -8
  290. data/spec/models/link_brick_spec.rb +9 -10
  291. data/spec/models/page_spec.rb +113 -73
  292. data/spec/models/placeholder_brick_spec.rb +12 -13
  293. data/spec/models/publish_state_spec.rb +7 -7
  294. data/spec/models/setting_spec.rb +28 -0
  295. data/spec/models/slider_brick_spec.rb +5 -6
  296. data/spec/models/text_brick_spec.rb +5 -5
  297. data/spec/models/two_column_brick_spec.rb +14 -15
  298. data/spec/models/video_brick_spec.rb +5 -6
  299. data/spec/postgres_helper.rb +66 -0
  300. data/spec/{kuhsaft_spec.rb → qbrick_spec.rb} +2 -2
  301. data/spec/spec_helper.rb +23 -10
  302. data/spec/support/{kuhsaft_spec_helper.rb → qbrick_spec_helper.rb} +1 -1
  303. data/spec/support/write_expectation.rb +2 -2
  304. data/spec/views/{kuhsaft → qbrick}/sitemaps/index.xml.haml_spec.rb +3 -3
  305. metadata +451 -330
  306. data/app/controllers/kuhsaft/cms/admin_controller.rb +0 -18
  307. data/app/controllers/kuhsaft/cms/pages_controller.rb +0 -71
  308. data/app/helpers/kuhsaft/cms/admin_helper.rb +0 -21
  309. data/app/uploaders/kuhsaft/asset_brick_asset_uploader.rb +0 -43
  310. data/app/views/kuhsaft/cms/admin/_brick_type_dropdown.html.haml +0 -14
  311. data/app/views/kuhsaft/cms/admin/_content_language_switch.html.haml +0 -7
  312. data/app/views/kuhsaft/cms/admin/_main_navigation.html.haml +0 -6
  313. data/app/views/kuhsaft/cms/assets/index.html.haml +0 -3
  314. data/app/views/kuhsaft/cms/pages/edit.html.haml +0 -16
  315. data/app/views/kuhsaft/cms/pages/new.html.haml +0 -1
  316. data/app/views/kuhsaft/placeholder_bricks/placeholder_brick/_edit.html.haml +0 -1
  317. data/app/views/kuhsaft/two_column_bricks/two_column_brick/_childs.html.haml +0 -5
  318. data/app/views/kuhsaft/two_column_bricks/two_column_brick/_edit.html.haml +0 -1
  319. data/app/views/layouts/kuhsaft/cms/ckimages.html.haml +0 -18
  320. data/config/locales/models/kuhsaft/accordion_brick/de.yml +0 -4
  321. data/config/locales/models/kuhsaft/accordion_brick/en.yml +0 -4
  322. data/config/locales/models/kuhsaft/accordion_item_brick/de.yml +0 -7
  323. data/config/locales/models/kuhsaft/accordion_item_brick/en.yml +0 -7
  324. data/config/locales/models/kuhsaft/column_brick/de.yml +0 -4
  325. data/config/locales/models/kuhsaft/column_brick/en.yml +0 -4
  326. data/config/locales/models/kuhsaft/slider_brick/de.yml +0 -4
  327. data/config/locales/models/kuhsaft/slider_brick/en.yml +0 -4
  328. data/config/locales/models/kuhsaft/two_column_brick/de.yml +0 -7
  329. data/config/locales/models/kuhsaft/two_column_brick/en.yml +0 -7
  330. data/config/locales/views/kuhsaft/cms/admin/de.yml +0 -13
  331. data/db/migrate/03_create_kuhsaft_brick_types.rb +0 -12
  332. data/db/migrate/04_create_kuhsaft_assets.rb +0 -10
  333. data/db/migrate/06_add_template_name_to_kuhsaft_bricks.rb +0 -7
  334. data/db/migrate/09_add_additional_fields_to_kuhsaft_bricks.rb +0 -6
  335. data/db/migrate/10_add_redirect_url_to_kuhsaft_pages.rb +0 -7
  336. data/db/migrate/14_move_kuhsaft_assets.rb +0 -22
  337. data/db/migrate/18_add_identifier_to_kuhsaft_pages.rb +0 -6
  338. data/db/migrate/20_create_kuhsaft_ckimages.rb +0 -9
  339. data/lib/kuhsaft.rb +0 -22
  340. data/lib/kuhsaft/version.rb +0 -3
  341. data/lib/templates/kuhsaft/translations/add_translation.erb +0 -8
@@ -1,46 +1,45 @@
1
1
  require 'spec_helper'
2
2
  require 'fileutils'
3
3
 
4
- describe Kuhsaft::PlaceholderBrick do
5
-
4
+ describe Qbrick::PlaceholderBrick, type: :model do
6
5
  let :placeholder_brick do
7
- Kuhsaft::PlaceholderBrick.new
6
+ Qbrick::PlaceholderBrick.new
8
7
  end
9
8
 
10
9
  before do
11
- FileUtils.mkdir_p("#{Rails.root}/app/views/kuhsaft/placeholder_bricks/partials")
12
- FileUtils.touch("#{Rails.root}/app/views/kuhsaft/placeholder_bricks/partials/_valid_partial.html.haml")
13
- FileUtils.touch("#{Rails.root}/app/views/kuhsaft/placeholder_bricks/partials/not_a_partial.html.haml")
14
- FileUtils.touch("#{Rails.root}/app/views/kuhsaft/placeholder_bricks/partials/_not_a_haml_file.txt")
10
+ FileUtils.mkdir_p("#{Rails.root}/app/views/qbrick/placeholder_bricks/partials")
11
+ FileUtils.touch("#{Rails.root}/app/views/qbrick/placeholder_bricks/partials/_valid_partial.html.haml")
12
+ FileUtils.touch("#{Rails.root}/app/views/qbrick/placeholder_bricks/partials/not_a_partial.html.haml")
13
+ FileUtils.touch("#{Rails.root}/app/views/qbrick/placeholder_bricks/partials/_not_a_haml_file.txt")
15
14
  end
16
15
 
17
16
  after do
18
- FileUtils.rm_rf(Dir.glob("#{Rails.root}/app/views/kuhsaft"))
17
+ FileUtils.rm_rf(Dir.glob("#{Rails.root}/app/views/qbrick"))
19
18
  end
20
19
 
21
20
  describe 'available partials' do
22
21
  it 'returns haml files' do
23
- Kuhsaft::PlaceholderBrick.available_partials.flatten.should include('valid_partial')
22
+ expect(Qbrick::PlaceholderBrick.available_partials.flatten).to include('valid_partial')
24
23
  end
25
24
 
26
25
  it 'returns only partials' do
27
- Kuhsaft::PlaceholderBrick.available_partials.flatten.should_not include('not_a_partial')
26
+ expect(Qbrick::PlaceholderBrick.available_partials.flatten).not_to include('not_a_partial')
28
27
  end
29
28
 
30
29
  it 'does not return other files' do
31
- Kuhsaft::PlaceholderBrick.available_partials.flatten.should_not include('not_a_haml_file')
30
+ expect(Qbrick::PlaceholderBrick.available_partials.flatten).not_to include('not_a_haml_file')
32
31
  end
33
32
  end
34
33
 
35
34
  describe '#bricks' do
36
35
  it 'can not have childs' do
37
- placeholder_brick.should_not respond_to(:bricks)
36
+ expect(placeholder_brick).not_to respond_to(:bricks)
38
37
  end
39
38
  end
40
39
 
41
40
  describe '#user_can_add_childs?' do
42
41
  it 'returns false' do
43
- placeholder_brick.user_can_add_childs?.should be_false
42
+ expect(placeholder_brick.user_can_add_childs?).to be_falsey
44
43
  end
45
44
  end
46
45
  end
@@ -1,33 +1,33 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Kuhsaft::PublishState do
3
+ describe Qbrick::PublishState, type: :model do
4
4
  context 'unpublished' do
5
5
  before do
6
- @publish_state = Kuhsaft::PublishState.new(name: 'unpublished', value: Kuhsaft::PublishState::UNPUBLISHED)
6
+ @publish_state = Qbrick::PublishState.new(name: 'unpublished', value: Qbrick::PublishState::UNPUBLISHED)
7
7
  end
8
8
 
9
9
  it 'should be UNPUBLISHED' do
10
- @publish_state.value.should be(Kuhsaft::PublishState::UNPUBLISHED)
10
+ expect(@publish_state.value).to be(Qbrick::PublishState::UNPUBLISHED)
11
11
  end
12
12
  end
13
13
 
14
14
  context 'published' do
15
15
  before do
16
- @publish_state = Kuhsaft::PublishState.new(name: 'published', value: Kuhsaft::PublishState::PUBLISHED)
16
+ @publish_state = Qbrick::PublishState.new(name: 'published', value: Qbrick::PublishState::PUBLISHED)
17
17
  end
18
18
 
19
19
  it 'should be PUBLISHED' do
20
- @publish_state.value.should be(Kuhsaft::PublishState::PUBLISHED)
20
+ expect(@publish_state.value).to be(Qbrick::PublishState::PUBLISHED)
21
21
  end
22
22
  end
23
23
 
24
24
  context 'published_at' do
25
25
  before do
26
- @publish_state = Kuhsaft::PublishState.new(name: 'published_at', value: Kuhsaft::PublishState::PUBLISHED_AT)
26
+ @publish_state = Qbrick::PublishState.new(name: 'published_at', value: Qbrick::PublishState::PUBLISHED_AT)
27
27
  end
28
28
 
29
29
  it 'should be PUBLISHED_AT' do
30
- @publish_state.value.should be(Kuhsaft::PublishState::PUBLISHED_AT)
30
+ expect(@publish_state.value).to be(Qbrick::PublishState::PUBLISHED_AT)
31
31
  end
32
32
  end
33
33
  end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ module Qbrick
4
+ describe Setting, type: :model do
5
+ before do
6
+ create(:setting)
7
+ create(:setting, key: 'stuff', value: nil)
8
+ end
9
+
10
+ describe '[](key)' do
11
+ context 'setting exists' do
12
+ it 'returns the set value' do
13
+ expect(Setting[:code]).to eq('SomeValue')
14
+ end
15
+
16
+ it 'returns empty string for empty setting' do
17
+ expect(Setting[:stuff]).to eq('')
18
+ end
19
+ end
20
+
21
+ context "setting doesn't exist" do
22
+ it 'returns empty string for a call on a non-present setting' do
23
+ expect(Setting[:does_not_exist]).to eq('')
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,26 +1,25 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Kuhsaft::SliderBrick do
4
-
3
+ describe Qbrick::SliderBrick, type: :model do
5
4
  let :slider_brick do
6
- Kuhsaft::SliderBrick.new
5
+ Qbrick::SliderBrick.new
7
6
  end
8
7
 
9
8
  describe '#bricks' do
10
9
  it 'can have childs' do
11
- slider_brick.should respond_to(:bricks)
10
+ expect(slider_brick).to respond_to(:bricks)
12
11
  end
13
12
  end
14
13
 
15
14
  describe '#to_style_class' do
16
15
  it 'includes the bootstrap styles' do
17
- slider_brick.to_style_class.should == 'kuhsaft-slider-brick carousel slide'
16
+ expect(slider_brick.to_style_class).to eq('qbrick-slider-brick carousel slide')
18
17
  end
19
18
  end
20
19
 
21
20
  describe '#allowed_brick_types' do
22
21
  it 'only allows ImageBricks and VideoBricks' do
23
- slider_brick.allowed_brick_types.should == %w(Kuhsaft::ImageBrick Kuhsaft::VideoBrick)
22
+ expect(slider_brick.allowed_brick_types).to eq(%w(Qbrick::ImageBrick Qbrick::VideoBrick))
24
23
  end
25
24
  end
26
25
  end
@@ -1,19 +1,19 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Kuhsaft::TextBrick do
3
+ describe Qbrick::TextBrick, type: :model do
4
4
  let :text_brick do
5
- Kuhsaft::TextBrick.new
5
+ Qbrick::TextBrick.new
6
6
  end
7
7
 
8
8
  describe '#bricks' do
9
9
  it 'can not have childs' do
10
- text_brick.should_not respond_to(:bricks)
10
+ expect(text_brick).not_to respond_to(:bricks)
11
11
  end
12
12
  end
13
13
 
14
14
  describe '#user_can_add_childs?' do
15
15
  it 'returns false' do
16
- text_brick.user_can_add_childs?.should be_false
16
+ expect(text_brick.user_can_add_childs?).to be_falsey
17
17
  end
18
18
  end
19
19
 
@@ -24,7 +24,7 @@ describe Kuhsaft::TextBrick do
24
24
  end
25
25
 
26
26
  it 'sanitizes text and read_more_text' do
27
- text_brick.collect_fulltext.should == 'foo bar foobar'
27
+ expect(text_brick.collect_fulltext).to eq('foo bar foobar')
28
28
  end
29
29
  end
30
30
  end
@@ -1,82 +1,81 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Kuhsaft::TwoColumnBrick do
4
-
3
+ describe Qbrick::TwoColumnBrick, type: :model do
5
4
  let :two_column_brick do
6
- Kuhsaft::TwoColumnBrick.new
5
+ Qbrick::TwoColumnBrick.new
7
6
  end
8
7
 
9
8
  describe '#user_can_add_childs?' do
10
9
  it 'returns false' do
11
- two_column_brick.user_can_add_childs?.should be_false
10
+ expect(two_column_brick.user_can_add_childs?).to be_falsey
12
11
  end
13
12
  end
14
13
 
15
14
  describe '#user_can_delete?' do
16
15
  it 'returns true' do
17
- two_column_brick.user_can_delete?.should be_true
16
+ expect(two_column_brick.user_can_delete?).to be_truthy
18
17
  end
19
18
  end
20
19
 
21
20
  describe '#user_can_save?' do
22
21
  it 'returns true' do
23
- two_column_brick.user_can_save?.should be_true
22
+ expect(two_column_brick.user_can_save?).to be_truthy
24
23
  end
25
24
  end
26
25
 
27
26
  describe '#renders_own_childs?' do
28
27
  it 'returns true' do
29
- two_column_brick.renders_own_childs?.should be_true
28
+ expect(two_column_brick.renders_own_childs?).to be_truthy
30
29
  end
31
30
  end
32
31
 
33
32
  describe '#partitioning' do
34
33
  context 'when no partition is set' do
35
34
  it 'returns 0 (50/50)' do
36
- two_column_brick.partitioning.should be(0)
35
+ expect(two_column_brick.partitioning).to be(0)
37
36
  end
38
37
  end
39
38
 
40
39
  context 'when the partition is set' do
41
40
  it 'returns the value' do
42
41
  two_column_brick.partitioning = 1
43
- two_column_brick.partitioning.should be(1)
42
+ expect(two_column_brick.partitioning).to be(1)
44
43
  end
45
44
  end
46
45
  end
47
46
 
48
47
  describe '.partitionings' do
49
48
  it 'returns the 3 default partitions' do
50
- Kuhsaft::TwoColumnBrick.partitionings.should have(3).items
49
+ expect(Qbrick::TwoColumnBrick.partitionings.size).to eq(3)
51
50
  end
52
51
  end
53
52
 
54
53
  describe '#create' do
55
54
  it 'creates two single columns as childs' do
56
55
  two_column_brick.save
57
- two_column_brick.bricks.should be_all { |brick| brick.should be_a(Kuhsaft::ColumnBrick) }
56
+ expect(two_column_brick.bricks).to be_all { |brick| expect(brick).to be_a(Qbrick::ColumnBrick) }
58
57
  end
59
58
  end
60
59
 
61
60
  describe '#bricks' do
62
61
  it 'can have childs' do
63
- two_column_brick.should respond_to(:bricks)
62
+ expect(two_column_brick).to respond_to(:bricks)
64
63
  end
65
64
  end
66
65
 
67
66
  describe '#to_style_class' do
68
67
  it 'adds the row class to the default styles' do
69
- Kuhsaft::TwoColumnBrick.new.to_style_class.should == 'kuhsaft-two-column-brick row-fluid'
68
+ expect(Qbrick::TwoColumnBrick.new.to_style_class).to eq('qbrick-two-column-brick row-fluid')
70
69
  end
71
70
  end
72
71
 
73
72
  describe '#add_columns' do
74
73
  it 'sets the position of the first column brick to 1' do
75
- Kuhsaft::TwoColumnBrick.new.send(:add_columns).to_a.first.position.should == 1
74
+ expect(Qbrick::TwoColumnBrick.new.send(:add_columns).to_a.first.position).to eq(1)
76
75
  end
77
76
 
78
77
  it 'sets the position of the second column brick to 2' do
79
- Kuhsaft::TwoColumnBrick.new.send(:add_columns).to_a.second.position.should == 2
78
+ expect(Qbrick::TwoColumnBrick.new.send(:add_columns).to_a.second.position).to eq(2)
80
79
  end
81
80
  end
82
81
  end
@@ -1,9 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Kuhsaft::VideoBrick do
4
-
3
+ describe Qbrick::VideoBrick, type: :model do
5
4
  let :video_brick do
6
- Kuhsaft::VideoBrick.new
5
+ Qbrick::VideoBrick.new
7
6
  end
8
7
 
9
8
  describe '#valid' do
@@ -13,20 +12,20 @@ describe Kuhsaft::VideoBrick do
13
12
 
14
13
  context 'without any video source' do
15
14
  it 'has en error' do
16
- video_brick.should have(1).error_on(:any_source)
15
+ expect(video_brick.errors[:any_source].count).to eq(1)
17
16
  end
18
17
  end
19
18
  end
20
19
 
21
20
  describe '#bricks' do
22
21
  it 'can not have childs' do
23
- video_brick.should_not respond_to(:bricks)
22
+ expect(video_brick).not_to respond_to(:bricks)
24
23
  end
25
24
  end
26
25
 
27
26
  describe '#user_can_add_childs?' do
28
27
  it 'returns false' do
29
- video_brick.user_can_add_childs?.should be_false
28
+ expect(video_brick.user_can_add_childs?).to be_falsey
30
29
  end
31
30
  end
32
31
  end
@@ -0,0 +1,66 @@
1
+ module Postgres
2
+ class << self
3
+ def exec(query, opts = {})
4
+ command = ["psql -tAc \"#{query}\""]
5
+
6
+ if opts.is_a?(Hash)
7
+ opts.each_pair { |k, v| command << "--#{k}=#{v}" }
8
+ else
9
+ command << opts
10
+ end
11
+
12
+ command = command.join(' ')
13
+ result = `#{command}`
14
+ if result.match(/psql: FATAL: database .+ does not exist/)
15
+ if result.include?("psql: FATAL: database \"#{`whoami`.strip}\" does not exist")
16
+ `createdb`
17
+ dbg_comment 'user database was missing. I created it for you and recall the postgres command again. :)'
18
+ `#{command}`
19
+ end
20
+ else
21
+ result
22
+ end
23
+ end
24
+
25
+ def user_exists?(username)
26
+ exec("SELECT 1 FROM pg_user WHERE usename='#{username}'", dbname: 'postgres').strip == '1'
27
+ end
28
+
29
+ def database_exists?(name)
30
+ exec("SELECT 1 from pg_database WHERE datname='#{name}'", dbname: 'postgres').strip == '1'
31
+ end
32
+
33
+ def drop_user(username)
34
+ `dropuser #{username}`
35
+ end
36
+
37
+ def drop_table(user, database, name)
38
+ exec("SET client_min_messages TO WARNING; DROP TABLE IF EXISTS #{name};", username: user, dbname: database)
39
+ end
40
+
41
+ def select_users_like(username)
42
+ exec("SELECT usename FROM pg_user where usename LIKE '#{username}'", dbname: 'postgres').split("\n").map(&:strip)
43
+ end
44
+
45
+ def select_databases_like(name)
46
+ exec("SELECT datname FROM pg_database WHERE datistemplate = false AND datname LIKE '#{name}';", dbname: 'postgres').split("\n").map(&:strip)
47
+ end
48
+
49
+ def drop_databases_like(name)
50
+ select_databases_like(name).each { |dbname| `dropdb #{dbname}` }
51
+ end
52
+
53
+ def drop_users_like(username)
54
+ select_users_like(username).each { |u| drop_user u if user_exists?(u) }
55
+ end
56
+
57
+ def create_user(username)
58
+ if user_exists?(username)
59
+ false
60
+ else
61
+ puts "#{ts} $ createuser -s #{username}" if debug_shoestrap?
62
+ `createuser -s #{username}`
63
+ end
64
+ end
65
+ end
66
+ end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Kuhsaft do
3
+ describe Qbrick do
4
4
  it 'should be valid' do
5
- Kuhsaft.should be_a(Module)
5
+ expect(Qbrick).to be_a(Module)
6
6
  end
7
7
  end
data/spec/spec_helper.rb CHANGED
@@ -2,12 +2,11 @@
2
2
  ENV['RAILS_ENV'] = 'test'
3
3
  require_relative File.expand_path('../dummy/config/environment.rb', __FILE__)
4
4
  require 'rspec/rails'
5
- require 'rspec/autorun'
6
5
 
7
6
  [
8
7
  'factory_girl',
9
8
  'capybara/rails',
10
- 'pry-debugger',
9
+ 'pry-byebug',
11
10
  'database_cleaner'
12
11
  ].each { |lib| require lib }
13
12
 
@@ -16,6 +15,7 @@ FactoryGirl.find_definitions
16
15
  ActionMailer::Base.delivery_method = :test
17
16
  ActionMailer::Base.perform_deliveries = true
18
17
  ActionMailer::Base.default_url_options[:host] = 'test.com'
18
+ ActiveRecord::Migrator.migrations_paths = 'spec/dummy/db/migrate'
19
19
 
20
20
  # Requires supporting ruby files with custom matchers and macros, etc,
21
21
  # in spec/support/ and its subdirectories.
@@ -23,10 +23,15 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require_relative f }
23
23
 
24
24
  # Checks for pending migrations before tests are run.
25
25
  # If you are not using ActiveRecord, you can remove this line.
26
- ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
26
+ ActiveRecord::Migration.maintain_test_schema! if ActiveRecord::Migration.respond_to? :maintain_test_schema!
27
27
 
28
- RSpec.configure do |config|
28
+ include Warden::Test::Helpers
29
+ Warden.test_mode!
30
+
31
+ require 'capybara/poltergeist'
32
+ Capybara.javascript_driver = :poltergeist
29
33
 
34
+ RSpec.configure do |config|
30
35
  # Remove this line if you don't want RSpec's should and should_not
31
36
  # methods or matchers
32
37
  require 'rspec/expectations'
@@ -35,16 +40,22 @@ RSpec.configure do |config|
35
40
 
36
41
  config.include RSpec::Matchers
37
42
  config.include CarrierWave::Test::Matchers
38
- config.include KuhsaftSpecHelper
43
+ config.include QbrickSpecHelper
39
44
  config.include FactoryGirl::Syntax::Methods
40
-
41
- config.before :suite do
42
- DatabaseCleaner.strategy = :transaction
43
- DatabaseCleaner.clean_with :truncation
45
+ config.include Rails.application.routes.url_helpers
46
+
47
+ config.before :each do
48
+ if Capybara.current_driver == :rack_test
49
+ DatabaseCleaner.strategy = :transaction
50
+ else
51
+ DatabaseCleaner.strategy = :truncation
52
+ end
53
+ DatabaseCleaner.start
44
54
  end
45
55
 
46
56
  config.before do
47
57
  DatabaseCleaner.start
58
+ Qbrick::ImageSize.build_defaults!
48
59
  I18n.available_locales = [:en, :de]
49
60
  end
50
61
 
@@ -66,7 +77,7 @@ RSpec.configure do |config|
66
77
  # If you're not using ActiveRecord, or you'd prefer not to run each of your
67
78
  # examples within a transaction, remove the following line or assign false
68
79
  # instead of true.
69
- config.use_transactional_fixtures = true
80
+ config.use_transactional_fixtures = false
70
81
 
71
82
  # If true, the base class of anonymous controllers will be inferred
72
83
  # automatically. This will be the default behavior in future versions of
@@ -78,4 +89,6 @@ RSpec.configure do |config|
78
89
  # the seed, which is printed after each run.
79
90
  # --seed 1234
80
91
  config.order = 'random'
92
+
93
+ config.filter_run_excluding generator: true
81
94
  end