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,10 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Kuhsaft::Gridded do
4
-
3
+ describe Qbrick::Gridded do
5
4
  context 'included gridded module' do
6
5
  class GridClass
7
- include Kuhsaft::Gridded
6
+ include Qbrick::Gridded
8
7
  end
9
8
 
10
9
  it 'returns an array for the gridded class' do
@@ -13,12 +12,12 @@ describe Kuhsaft::Gridded do
13
12
 
14
13
  it 'returns false on gridded? if no col count is set' do
15
14
  expect_any_instance_of(GridClass).to receive(:col_count).at_least(:once).and_return(0)
16
- expect(GridClass.new.gridded?).to be_false
15
+ expect(GridClass.new.gridded?).to be_falsey
17
16
  end
18
17
 
19
18
  it 'returns true on gridded? if a col count is set' do
20
19
  expect_any_instance_of(GridClass).to receive(:col_count).at_least(:once).and_return(10)
21
- expect(GridClass.new.gridded?).to be_true
20
+ expect(GridClass.new.gridded?).to be_truthy
22
21
  end
23
22
  end
24
23
  end
@@ -1,14 +1,13 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Kuhsaft::ImageUploaderMounting do
4
-
3
+ describe Qbrick::ImageUploaderMounting do
5
4
  let :brick do
6
- Kuhsaft::ImageBrick.new
5
+ Qbrick::ImageBrick.new
7
6
  end
8
7
 
9
8
  describe '#uploader_mounting' do
10
9
  it 'has a uploader mounted' do
11
- brick.class.ancestors.include?(CarrierWave::Mount::Extension).should be_true
10
+ expect(brick.class.ancestors.include?(CarrierWave::Mount::Extension)).to be_truthy
12
11
  end
13
12
  end
14
13
  end
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
- require_relative '../../lib/kuhsaft/page_tree'
3
- require_relative '../../app/models/kuhsaft/page'
2
+ require_relative '../../lib/qbrick/page_tree'
3
+ require_relative '../../app/models/qbrick/page'
4
4
 
5
5
  # TODO: THESE SPECS ONLY WORK WHEN THE FULL SUITE IS RUN. FIX THAT!
6
6
 
7
- module Kuhsaft
7
+ module Qbrick
8
8
  describe PageTree do
9
9
  let(:page_tree) do
10
10
  {
@@ -29,9 +29,9 @@ module Kuhsaft
29
29
 
30
30
  it 'sets the correct parent attribute for the nodes' do
31
31
  PageTree.update(page_tree)
32
- @page1.reload.parent_id.should be_nil
32
+ expect(@page1.reload.parent_id).to be_nil
33
33
  expect(@page2.reload.parent_id).to eq(1)
34
- @page3.reload.parent_id.should be nil
34
+ expect(@page3.reload.parent_id).to be nil
35
35
  end
36
36
  end
37
37
  end
@@ -1,28 +1,27 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Kuhsaft::Searchable do
4
-
3
+ describe Qbrick::Searchable do
5
4
  context 'with missing includes' do
6
- it 'raises exteption when class does not include Kuhsaft::Bricklist' do
5
+ it 'raises exteption when class does not include Qbrick::Bricklist' do
7
6
  expect do
8
7
  class Foo
9
- include Kuhsaft::Searchable
8
+ include Qbrick::Searchable
10
9
  end
11
- end.to raise_error(/needs Kuhsaft::BrickList to be included/)
10
+ end.to raise_error(/needs Qbrick::BrickList to be included/)
12
11
  end
13
12
  end
14
13
 
15
14
  context 'with Bricklist included' do
16
15
  class SearchableDemo < ActiveRecord::Base
17
- include Kuhsaft::BrickList
16
+ include Qbrick::BrickList
18
17
  end
19
18
 
20
19
  context 'without postgresql' do
21
20
  it 'initializes scope' do
22
21
  expect(ActiveRecord::Base.connection.instance_values).not_to eq('postgresql')
23
- SearchableDemo.should_receive :scope
22
+ expect(SearchableDemo).to receive :scope
24
23
  SearchableDemo.class_eval do
25
- include Kuhsaft::Searchable
24
+ include Qbrick::Searchable
26
25
  end
27
26
  end
28
27
  end
@@ -1,8 +1,7 @@
1
1
  require 'spec_helper'
2
- require_relative '../../lib/kuhsaft/touch_placeholders'
3
-
4
- describe Kuhsaft::TouchPlaceholders do
2
+ require_relative '../../lib/qbrick/touch_placeholders'
5
3
 
4
+ describe Qbrick::TouchPlaceholders do
6
5
  before :all do
7
6
  m = ActiveRecord::Migration.new
8
7
  m.verbose = false
@@ -11,7 +10,7 @@ describe Kuhsaft::TouchPlaceholders do
11
10
  end
12
11
 
13
12
  class DummyModel < ActiveRecord::Base
14
- include Kuhsaft::TouchPlaceholders
13
+ include Qbrick::TouchPlaceholders
15
14
  end
16
15
 
17
16
  @page = FactoryGirl.create(:page)
@@ -37,7 +36,7 @@ describe Kuhsaft::TouchPlaceholders do
37
36
  describe 'after_save_callback' do
38
37
  it 'looks for the bricks with affected templates and touches them' do
39
38
  DummyModel.class_eval { placeholder_templates 'foo' }
40
- expect_any_instance_of(Kuhsaft::PlaceholderBrick).to receive(:touch)
39
+ expect_any_instance_of(Qbrick::PlaceholderBrick).to receive(:touch)
41
40
  DummyModel.create
42
41
  end
43
42
  end
@@ -1,9 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Kuhsaft::Translatable do
4
-
3
+ describe Qbrick::Translatable do
5
4
  class Demo
6
- include Kuhsaft::Translatable
5
+ include Qbrick::Translatable
7
6
  translate :name
8
7
  end
9
8
 
@@ -40,23 +39,23 @@ describe Kuhsaft::Translatable do
40
39
 
41
40
  describe 'translated attributes' do
42
41
  it 'delegates the getter to the suffixed attribute' do
43
- model.should_receive(:name_en).and_return('John')
44
- model.name.should == 'John'
42
+ expect(model).to receive(:name_en).and_return('John')
43
+ expect(model.name).to eq('John')
45
44
  end
46
45
 
47
46
  it 'delegates the setter to the suffixed attribute' do
48
- model.should_receive(:name_en=).with('Johnny')
47
+ expect(model).to receive(:name_en=).with('Johnny')
49
48
  model.name = 'Johnny'
50
49
  end
51
50
 
52
51
  context 'dynamic methods' do
53
52
  it 'delegates boolean accessors' do
54
- model.should_receive(:name_en?)
53
+ expect(model).to receive(:name_en?)
55
54
  model.name?
56
55
  end
57
56
 
58
57
  it 'delegates simple dynamic finders' do
59
- Demo.should_receive(:find_by_name_en).with('Max')
58
+ expect(Demo).to receive(:find_by_name_en).with('Max')
60
59
  Demo.find_by_name('Max')
61
60
  end
62
61
  end
@@ -67,12 +66,12 @@ describe Kuhsaft::Translatable do
67
66
  end
68
67
 
69
68
  it 'delegates the getter to current locale' do
70
- model.should_receive(:name_de).and_return('Johannes')
71
- model.name.should == 'Johannes'
69
+ expect(model).to receive(:name_de).and_return('Johannes')
70
+ expect(model.name).to eq('Johannes')
72
71
  end
73
72
 
74
73
  it 'delegates the getter to current locale' do
75
- model.should_receive(:name_de=).with('Johannes')
74
+ expect(model).to receive(:name_de=).with('Johannes')
76
75
  model.name = 'Johannes'
77
76
  end
78
77
  end
@@ -81,12 +80,13 @@ describe Kuhsaft::Translatable do
81
80
 
82
81
  describe 'country specific locale' do
83
82
  before do
83
+ @locales = I18n.available_locales
84
84
  I18n.available_locales = [:de, 'de-CH']
85
85
  I18n.locale = 'de-CH'
86
86
  end
87
87
 
88
88
  after do
89
- I18n.available_locales = [:en]
89
+ I18n.available_locales = @locales
90
90
  I18n.locale = :en
91
91
  end
92
92
 
@@ -114,23 +114,23 @@ describe Kuhsaft::Translatable do
114
114
 
115
115
  describe 'translated attributes' do
116
116
  it 'delegates the getter to the suffixed attribute' do
117
- model.should_receive(:name_de_ch).and_return('John')
118
- model.name.should == 'John'
117
+ expect(model).to receive(:name_de_ch).and_return('John')
118
+ expect(model.name).to eq('John')
119
119
  end
120
120
 
121
121
  it 'delegates the setter to the suffixed attribute' do
122
- model.should_receive(:name_de_ch=).with('Johnny')
122
+ expect(model).to receive(:name_de_ch=).with('Johnny')
123
123
  model.name = 'Johnny'
124
124
  end
125
125
 
126
126
  context 'dynamic methods' do
127
127
  it 'delegates boolean accessors' do
128
- model.should_receive(:name_de_ch?)
128
+ expect(model).to receive(:name_de_ch?)
129
129
  model.name?
130
130
  end
131
131
 
132
132
  it 'delegates simple dynamic finders' do
133
- Demo.should_receive(:find_by_name_de_ch).with('Max')
133
+ expect(Demo).to receive(:find_by_name_de_ch).with('Max')
134
134
  Demo.find_by_name('Max')
135
135
  end
136
136
  end
@@ -141,12 +141,12 @@ describe Kuhsaft::Translatable do
141
141
  end
142
142
 
143
143
  it 'delegates the getter to current locale' do
144
- model.should_receive(:name_de).and_return('Johannes')
145
- model.name.should == 'Johannes'
144
+ expect(model).to receive(:name_de).and_return('Johannes')
145
+ expect(model.name).to eq('Johannes')
146
146
  end
147
147
 
148
148
  it 'delegates the getter to current locale' do
149
- model.should_receive(:name_de=).with('Johannes')
149
+ expect(model).to receive(:name_de=).with('Johannes')
150
150
  model.name = 'Johannes'
151
151
  end
152
152
  end
@@ -1,38 +1,37 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Kuhsaft::AccordionBrick do
4
-
3
+ describe Qbrick::AccordionBrick, type: :model do
5
4
  let :accordion_brick do
6
- Kuhsaft::AccordionBrick.new
5
+ Qbrick::AccordionBrick.new
7
6
  end
8
7
 
9
8
  describe '#user_can_delete?' do
10
9
  it 'returns true' do
11
- accordion_brick.user_can_delete?.should be_true
10
+ expect(accordion_brick.user_can_delete?).to be_truthy
12
11
  end
13
12
  end
14
13
 
15
14
  describe '#renders_own_childs?' do
16
15
  it 'returns false' do
17
- accordion_brick.renders_own_childs?.should be_false
16
+ expect(accordion_brick.renders_own_childs?).to be_falsey
18
17
  end
19
18
  end
20
19
 
21
20
  describe '#bricks' do
22
21
  it 'can have childs' do
23
- accordion_brick.should respond_to(:bricks)
22
+ expect(accordion_brick).to respond_to(:bricks)
24
23
  end
25
24
  end
26
25
 
27
26
  describe '#to_style_class' do
28
27
  it 'includes the bootstrap classname' do
29
- accordion_brick.to_style_class.should == 'kuhsaft-accordion-brick accordion'
28
+ expect(accordion_brick.to_style_class).to eq('qbrick-accordion-brick accordion')
30
29
  end
31
30
  end
32
31
 
33
32
  describe '#allowed_brick_types' do
34
33
  it 'only allows AccordionItems' do
35
- accordion_brick.allowed_brick_types.should == %w(Kuhsaft::AccordionItemBrick)
34
+ expect(accordion_brick.allowed_brick_types).to eq(%w(Qbrick::AccordionItemBrick))
36
35
  end
37
36
  end
38
37
  end
@@ -1,9 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Kuhsaft::AccordionItemBrick do
4
-
3
+ describe Qbrick::AccordionItemBrick, type: :model do
5
4
  let :accordion_item_brick do
6
- Kuhsaft::AccordionItemBrick.new
5
+ Qbrick::AccordionItemBrick.new
7
6
  end
8
7
 
9
8
  describe '#valid' do
@@ -13,38 +12,38 @@ describe Kuhsaft::AccordionItemBrick do
13
12
 
14
13
  context 'without a #caption' do
15
14
  it 'has en error' do
16
- accordion_item_brick.should have(1).error_on(:caption)
15
+ expect(accordion_item_brick.errors[:caption].count).to eq(1)
17
16
  end
18
17
  end
19
18
  end
20
19
 
21
20
  describe '#user_can_delete?' do
22
21
  it 'returns true' do
23
- accordion_item_brick.user_can_delete?.should be_true
22
+ expect(accordion_item_brick.user_can_delete?).to be_truthy
24
23
  end
25
24
  end
26
25
 
27
26
  describe '#user_can_save' do
28
27
  it 'returns true' do
29
- accordion_item_brick.user_can_save?.should == true
28
+ expect(accordion_item_brick.user_can_save?).to eq(true)
30
29
  end
31
30
  end
32
31
 
33
32
  describe '#renders_own_childs?' do
34
33
  it 'returns false' do
35
- accordion_item_brick.renders_own_childs?.should be_false
34
+ expect(accordion_item_brick.renders_own_childs?).to be_falsey
36
35
  end
37
36
  end
38
37
 
39
38
  describe '#bricks' do
40
39
  it 'can have childs' do
41
- accordion_item_brick.should respond_to(:bricks)
40
+ expect(accordion_item_brick).to respond_to(:bricks)
42
41
  end
43
42
  end
44
43
 
45
44
  describe '#to_style_class' do
46
45
  it 'includes the bootstrap classname' do
47
- accordion_item_brick.to_style_class.should == 'kuhsaft-accordion-item-brick accordion-group'
46
+ expect(accordion_item_brick.to_style_class).to eq('qbrick-accordion-item-brick accordion-group')
48
47
  end
49
48
  end
50
49
  end
@@ -1,26 +1,25 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Kuhsaft::AnchorBrick do
4
-
3
+ describe Qbrick::AnchorBrick, type: :model do
5
4
  let :anchor_brick do
6
- Kuhsaft::AnchorBrick.new(caption: 'test-anchor')
5
+ Qbrick::AnchorBrick.new(caption: 'test-anchor')
7
6
  end
8
7
 
9
8
  describe '#bricks' do
10
9
  it 'can not have childs' do
11
- anchor_brick.should_not respond_to(:bricks)
10
+ expect(anchor_brick).not_to respond_to(:bricks)
12
11
  end
13
12
  end
14
13
 
15
14
  describe '#user_can_add_childs?' do
16
15
  it 'returns false' do
17
- anchor_brick.user_can_add_childs?.should be_false
16
+ expect(anchor_brick.user_can_add_childs?).to be_falsey
18
17
  end
19
18
  end
20
19
 
21
20
  describe '#to_id' do
22
21
  it 'returns a parameterized id' do
23
- anchor_brick.to_id.should == 'anchor-test-anchor'
22
+ expect(anchor_brick.to_id).to eq('anchor-test-anchor')
24
23
  end
25
24
  end
26
25
  end
@@ -1,9 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Kuhsaft::AssetBrick do
4
-
3
+ describe Qbrick::AssetBrick, type: :model do
5
4
  let :asset_brick do
6
- Kuhsaft::AssetBrick.new
5
+ Qbrick::AssetBrick.new
7
6
  end
8
7
 
9
8
  describe '#valid' do
@@ -13,33 +12,33 @@ describe Kuhsaft::AssetBrick do
13
12
 
14
13
  context 'without a #caption' do
15
14
  it 'has an error' do
16
- asset_brick.should have(1).error_on(:caption)
15
+ expect(asset_brick.errors[:caption].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
- asset_brick.should_not respond_to(:bricks)
22
+ expect(asset_brick).not_to respond_to(:bricks)
24
23
  end
25
24
  end
26
25
 
27
26
  describe '.styles' do
28
27
  it 'returns the available link styles' do
29
- Kuhsaft::AssetBrick.styles.should == %w(pdf word excel button)
28
+ expect(Qbrick::AssetBrick.styles).to eq(%w(pdf word excel button))
30
29
  end
31
30
  end
32
31
 
33
32
  describe '#to_style_class' do
34
33
  it 'includes the link style' do
35
- asset_brick.stub(:link_style).and_return('pdf')
36
- asset_brick.to_style_class.should == 'kuhsaft-asset-brick pdf'
34
+ allow(asset_brick).to receive(:link_style).and_return('pdf')
35
+ expect(asset_brick.to_style_class).to eq('qbrick-asset-brick pdf')
37
36
  end
38
37
  end
39
38
 
40
39
  describe '#user_can_add_childs?' do
41
40
  it 'returns false' do
42
- asset_brick.user_can_add_childs?.should be_false
41
+ expect(asset_brick.user_can_add_childs?).to be_falsey
43
42
  end
44
43
  end
45
44
  end
@@ -1,41 +1,39 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Kuhsaft::Asset do
4
-
3
+ describe Qbrick::Asset, type: :model do
5
4
  let :asset do
6
5
  create(:asset)
7
6
  end
8
7
 
9
8
  let :uploader do
10
- u = Kuhsaft::AssetUploader.new(asset, :file)
11
- u.store!(File.open(File.join(Kuhsaft::Engine.root, 'spec', 'dummy', 'app', 'assets', 'images', 'spec-image.png')))
9
+ u = Qbrick::AssetUploader.new(asset, :file)
10
+ u.store! File.open(Qbrick::Engine.root.join('spec/dummy/app/assets/images/spec-image.png'))
12
11
  u
13
12
  end
14
13
 
15
14
  before do
16
- Kuhsaft::AssetUploader.enable_processing = true
15
+ Qbrick::AssetUploader.enable_processing = true
17
16
  end
18
17
 
19
18
  after do
20
- Kuhsaft::AssetUploader.enable_processing = false
19
+ Qbrick::AssetUploader.enable_processing = false
21
20
  end
22
21
 
23
22
  it 'has a thumbnail' do
24
- uploader.should respond_to(:thumb)
23
+ expect(uploader).to respond_to(:thumb)
25
24
  end
26
25
 
27
26
  it 'makes the image readable only to the owner and not executable' do
28
- pending 'how and where do we ensure permissions?'
29
- uploader.should have_permissions(0600)
27
+ expect(uploader.permissions).to eq(0600)
30
28
  end
31
29
 
32
30
  describe '#file_type' do
33
31
  it 'has a file_type' do
34
- asset.should respond_to(:file_type)
32
+ expect(asset).to respond_to(:file_type)
35
33
  end
36
34
 
37
35
  it 'is symbolized' do
38
- asset.file_type.should be_a(Symbol)
36
+ expect(asset.file_type).to be_a(Symbol)
39
37
  end
40
38
  end
41
39
  end