card 1.17.4 → 1.18.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 (389) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/card.gemspec +24 -25
  4. data/config/initializers/01_init_ruby_extensions.rb +0 -4
  5. data/config/initializers/inflections.rb +1 -1
  6. data/config/initializers/notification.rb +2 -2
  7. data/db/migrate/20110511221913_require_earlier_migrations.rb +3 -3
  8. data/db/migrate/20120105203350_require_1_8_migrations.rb +3 -3
  9. data/db/migrate/20121111025347_require_1_10_migrations.rb +3 -3
  10. data/db/migrate/20130106052640_table_cleanup.rb +4 -4
  11. data/db/migrate/20130411210957_update_codenames.rb +2 -2
  12. data/db/migrate/20141001105348_move_revisions_to_actions.rb +4 -4
  13. data/db/migrate/20141121172918_rename_card_migration_table.rb +2 -2
  14. data/db/migrate/20141208132159_remove_present_from_reference_table.rb +2 -2
  15. data/db/migrate/20141216053032_better_index_names.rb +9 -9
  16. data/db/migrate_core_cards/20120611203506_rails_inflection_updates.rb +29 -32
  17. data/db/migrate_core_cards/20130411191151_renaming_for_menu.rb +3 -4
  18. data/db/migrate_core_cards/20130411211600_delete_old_related_tab_cards.rb +1 -1
  19. data/db/migrate_core_cards/20130419215612_import_help_text.rb +1 -2
  20. data/db/migrate_core_cards/20130823192433_add_style_cards.rb +3 -3
  21. data/db/migrate_core_cards/20130910183318_move_styles_to_content.rb +2 -3
  22. data/db/migrate_core_cards/20130920214038_jsonize_tinymce.rb +2 -2
  23. data/db/migrate_core_cards/20130920291703_update_stylesheets.rb +1 -2
  24. data/db/migrate_core_cards/20130927191728_account_events.rb +5 -6
  25. data/db/migrate_core_cards/20131016172445_common_css_patch.rb +2 -3
  26. data/db/migrate_core_cards/20140110193325_reset_account_request_type.rb +0 -1
  27. data/db/migrate_core_cards/20140307231621_user_data_to_cards.rb +23 -32
  28. data/db/migrate_core_cards/20140317035504_account_requests_to_signups.rb +1 -7
  29. data/db/migrate_core_cards/20140512155840_add_script_cards.rb +21 -24
  30. data/db/migrate_core_cards/20140629222005_add_email_cards.rb +17 -22
  31. data/db/migrate_core_cards/20140725180118_config_card_updates.rb +2 -2
  32. data/db/migrate_core_cards/20141111083921_delete_machine_output.rb +1 -3
  33. data/db/migrate_core_cards/20141115034214_config_descriptions_etc.rb +2 -2
  34. data/db/migrate_core_cards/20141119001955_make_symlinks_relative.rb +3 -3
  35. data/db/migrate_core_cards/20141120120605_fix_notification_html_message.rb +1 -1
  36. data/db/migrate_core_cards/20141204061304_watchers_to_following.rb +8 -12
  37. data/db/migrate_core_cards/20141208162106_add_ace_script.rb +2 -3
  38. data/db/migrate_core_cards/20141216155251_add_more_following_cards.rb +10 -10
  39. data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +10 -12
  40. data/db/migrate_core_cards/20150220134731_following_to_follow_rule.rb +4 -4
  41. data/db/migrate_core_cards/20150317162412_bootstrap_themes.rb +3 -3
  42. data/db/migrate_core_cards/20150326205655_bootswatch_themes.rb +7 -7
  43. data/db/migrate_core_cards/20150429090551_search_card_context.rb +18 -20
  44. data/db/migrate_core_cards/20150508212032_menu_compatibility.rb +3 -7
  45. data/db/migrate_core_cards/20150510031118_fix_skin_images.rb +2 -3
  46. data/db/migrate_core_cards/20150528084659_add_session_cardtype.rb +3 -3
  47. data/db/migrate_core_cards/20150601133433_add_recent_setting_session_card.rb +4 -4
  48. data/db/migrate_core_cards/20150610171702_add_debugger_session_card.rb +4 -4
  49. data/db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb +5 -11
  50. data/db/migrate_core_cards/20150724123438_update_file_and_image_cards.rb +29 -35
  51. data/db/migrate_core_cards/20150824135418_update_file_history.rb +10 -14
  52. data/db/migrate_core_cards/20150903130006_attachment_upload_cards.rb +1 -1
  53. data/db/schema.rb +92 -94
  54. data/db/seed/new/card_actions.yml +461 -469
  55. data/db/seed/new/card_acts.yml +154 -172
  56. data/db/seed/new/card_changes.yml +4076 -4031
  57. data/db/seed/new/card_references.yml +1584 -1927
  58. data/db/seed/new/cards.yml +2095 -2112
  59. data/db/seed/test/fixtures/card_actions.yml +1497 -1505
  60. data/db/seed/test/fixtures/card_acts.yml +454 -472
  61. data/db/seed/test/fixtures/card_changes.yml +7309 -7263
  62. data/db/seed/test/fixtures/card_references.yml +2263 -2613
  63. data/db/seed/test/fixtures/cards.yml +3298 -3316
  64. data/db/seed/test/seed.rb +3 -0
  65. data/lib/card.rb +17 -9
  66. data/lib/card/active_record_ext.rb +6 -8
  67. data/lib/card/active_record_helper.rb +42 -32
  68. data/lib/card/auth.rb +3 -3
  69. data/lib/card/cache.rb +4 -4
  70. data/lib/card/cache/persistent.rb +9 -5
  71. data/lib/card/cache/temporary.rb +5 -5
  72. data/lib/card/chunk.rb +1 -1
  73. data/lib/card/codename.rb +3 -2
  74. data/lib/card/content.rb +62 -57
  75. data/lib/card/core_ext.rb +20 -30
  76. data/lib/card/diff.rb +88 -76
  77. data/lib/card/director_register.rb +66 -0
  78. data/lib/card/env.rb +14 -17
  79. data/lib/card/exceptions.rb +7 -9
  80. data/lib/card/format.rb +18 -367
  81. data/lib/card/format/nest.rb +183 -0
  82. data/lib/card/format/permission.rb +63 -0
  83. data/lib/card/format/render.rb +140 -0
  84. data/lib/card/loader.rb +17 -26
  85. data/lib/card/location.rb +6 -6
  86. data/lib/card/mailer.rb +4 -7
  87. data/lib/card/migration.rb +1 -1
  88. data/lib/card/name.rb +3 -6
  89. data/lib/card/query.rb +8 -8
  90. data/lib/card/query/attributes.rb +6 -6
  91. data/lib/card/query/clause.rb +10 -10
  92. data/lib/card/query/join.rb +7 -9
  93. data/lib/card/query/reference.rb +17 -19
  94. data/lib/card/query/sql_statement.rb +2 -2
  95. data/lib/card/query/value.rb +15 -16
  96. data/lib/card/set.rb +106 -209
  97. data/lib/card/set/event.rb +126 -0
  98. data/lib/card/set_pattern.rb +42 -29
  99. data/lib/card/simplecov_helper.rb +19 -19
  100. data/lib/card/spec_helper.rb +40 -16
  101. data/lib/card/stage.rb +72 -0
  102. data/lib/card/stage_director.rb +231 -0
  103. data/lib/card/subcards.rb +56 -24
  104. data/lib/card/subdirector_array.rb +31 -0
  105. data/lib/card/success.rb +15 -18
  106. data/lib/card/version.rb +1 -2
  107. data/lib/card/view_cache.rb +4 -4
  108. data/lib/card/view_name.rb +10 -8
  109. data/lib/cardio.rb +1 -1
  110. data/lib/generators/card.rb +2 -4
  111. data/lib/generators/card/format/format_generator.rb +4 -4
  112. data/lib/generators/card/migration/migration_generator.rb +6 -6
  113. data/lib/generators/card/set/set_generator.rb +5 -6
  114. data/mod/01_core/chunk/include.rb +2 -1
  115. data/mod/01_core/chunk/link.rb +2 -2
  116. data/mod/01_core/chunk/literal.rb +6 -9
  117. data/mod/01_core/chunk/query_reference.rb +1 -1
  118. data/mod/01_core/chunk/reference.rb +2 -2
  119. data/mod/01_core/chunk/uri.rb +52 -63
  120. data/mod/01_core/format/html_format.rb +8 -12
  121. data/mod/01_core/format/text_format.rb +1 -1
  122. data/mod/01_core/set/all/actify.rb +96 -0
  123. data/mod/01_core/set/all/active_card.rb +7 -7
  124. data/mod/01_core/set/all/collection.rb +19 -20
  125. data/mod/01_core/set/all/content.rb +9 -7
  126. data/mod/01_core/set/all/erb.rb +5 -5
  127. data/mod/01_core/set/all/event.rb +60 -0
  128. data/mod/01_core/set/all/fetch.rb +13 -19
  129. data/mod/01_core/set/all/haml.rb +1 -1
  130. data/mod/01_core/set/all/initialize.rb +35 -41
  131. data/mod/01_core/set/all/location_history.rb +3 -5
  132. data/mod/01_core/set/all/name.rb +19 -68
  133. data/mod/01_core/set/all/name_validations.rb +56 -0
  134. data/mod/01_core/set/all/pattern.rb +2 -2
  135. data/mod/01_core/set/all/permissions.rb +14 -20
  136. data/mod/01_core/set/all/phases.rb +9 -200
  137. data/mod/01_core/set/all/references.rb +10 -10
  138. data/mod/01_core/set/all/rules.rb +3 -4
  139. data/mod/01_core/set/all/stages.rb +24 -0
  140. data/mod/01_core/set/all/states.rb +4 -4
  141. data/mod/01_core/set/all/subcards.rb +16 -26
  142. data/mod/01_core/set/all/templating.rb +1 -3
  143. data/mod/01_core/set/all/tracked_attributes.rb +47 -48
  144. data/mod/01_core/set/all/trash.rb +10 -10
  145. data/mod/01_core/set/all/type.rb +9 -8
  146. data/mod/01_core/set/all/utils.rb +10 -14
  147. data/mod/01_core/set/all/view_cache.rb +2 -2
  148. data/mod/01_core/set_pattern/01_all.rb +3 -3
  149. data/mod/01_core/set_pattern/02_all_plus.rb +3 -3
  150. data/mod/01_core/set_pattern/03_type.rb +2 -2
  151. data/mod/01_core/set_pattern/04_star.rb +3 -3
  152. data/mod/01_core/set_pattern/05_rstar.rb +3 -3
  153. data/mod/01_core/set_pattern/06_right.rb +2 -2
  154. data/mod/01_core/set_pattern/07_type_plus_right.rb +2 -2
  155. data/mod/01_core/set_pattern/08_self.rb +1 -1
  156. data/mod/01_core/spec/chunk/literal_spec.rb +7 -8
  157. data/mod/01_core/spec/chunk/uri_spec.rb +140 -142
  158. data/mod/01_core/spec/format/html_format_spec.rb +72 -57
  159. data/mod/01_core/spec/set/all/collection_spec.rb +63 -43
  160. data/mod/01_core/spec/set/all/content_spec.rb +4 -4
  161. data/mod/01_core/spec/set/all/fetch_spec.rb +12 -3
  162. data/mod/01_core/spec/set/all/name_spec.rb +3 -4
  163. data/mod/01_core/spec/set/all/pattern_spec.rb +32 -35
  164. data/mod/01_core/spec/set/all/permissions_spec.rb +17 -5
  165. data/mod/01_core/spec/set/all/phases_spec.rb +0 -1
  166. data/mod/01_core/spec/set/all/references_spec.rb +1 -1
  167. data/mod/01_core/spec/set/all/rules2_spec.rb +79 -91
  168. data/mod/01_core/spec/set/all/rules_spec.rb +63 -56
  169. data/mod/01_core/spec/set/all/templating_spec.rb +0 -1
  170. data/mod/01_core/spec/set/all/tracked_attributes_spec.rb +4 -5
  171. data/mod/01_core/spec/set/all/trash_spec.rb +23 -1
  172. data/mod/01_core/spec/set/all/type_spec.rb +2 -5
  173. data/mod/01_history/lib/card/action.rb +8 -10
  174. data/mod/01_history/set/all/actions.rb +2 -4
  175. data/mod/01_history/set/all/content_history.rb +38 -32
  176. data/mod/01_history/set/all/history.rb +20 -17
  177. data/mod/02_basic_types/format/rss_format.rb +0 -1
  178. data/mod/02_basic_types/set/all/all_css.rb +9 -13
  179. data/mod/02_basic_types/set/all/all_csv.rb +14 -17
  180. data/mod/02_basic_types/set/all/all_js.rb +3 -4
  181. data/mod/02_basic_types/set/all/base.rb +2 -2
  182. data/mod/02_basic_types/set/all/file.rb +2 -5
  183. data/mod/02_basic_types/set/all/json.rb +19 -18
  184. data/mod/02_basic_types/set/all/rss.rb +3 -3
  185. data/mod/02_basic_types/set/all/text.rb +1 -3
  186. data/mod/02_basic_types/set/type/html.rb +4 -8
  187. data/mod/02_basic_types/set/type/plain_text.rb +2 -3
  188. data/mod/02_basic_types/set/type/pointer.rb +82 -92
  189. data/mod/02_basic_types/spec/set/all/all_css_spec.rb +2 -2
  190. data/mod/02_basic_types/spec/set/all/all_csv_spec.rb +6 -4
  191. data/mod/02_basic_types/spec/set/all/base_spec.rb +6 -6
  192. data/mod/02_basic_types/spec/set/all/json_spec.rb +8 -8
  193. data/mod/02_basic_types/spec/set/type/plain_text_spec.rb +3 -3
  194. data/mod/02_basic_types/spec/set/type/pointer_spec.rb +29 -32
  195. data/mod/03_machines/lib/card/machine.rb +95 -81
  196. data/mod/03_machines/lib/card/machine_input.rb +35 -34
  197. data/mod/03_machines/set/right/machine_input.rb +1 -1
  198. data/mod/03_machines/set/self/script_ace.rb +2 -3
  199. data/mod/03_machines/set/self/script_card_menu.rb +2 -3
  200. data/mod/03_machines/set/self/script_jquery_helper.rb +2 -2
  201. data/mod/03_machines/set/self/script_slot.rb +2 -2
  202. data/mod/03_machines/set/self/style_bootstrap_compatible.rb +1 -1
  203. data/mod/03_machines/set/self/style_cards.rb +1 -1
  204. data/mod/03_machines/set/self/style_jquery_ui_smoothness.rb +0 -1
  205. data/mod/03_machines/set/type/coffee_script.rb +9 -13
  206. data/mod/03_machines/set/type/css.rb +12 -13
  207. data/mod/03_machines/set/type/java_script.rb +6 -8
  208. data/mod/03_machines/set/type/scss.rb +4 -5
  209. data/mod/03_machines/set/type/skin.rb +3 -6
  210. data/mod/03_machines/spec/lib/shared_machine_examples.rb +31 -38
  211. data/mod/03_machines/spec/lib/shared_machine_input_examples.rb +7 -8
  212. data/mod/03_machines/spec/set/type/coffeescript_spec.rb +19 -13
  213. data/mod/03_machines/spec/set/type/css_spec.rb +22 -16
  214. data/mod/03_machines/spec/set/type/scss_spec.rb +28 -21
  215. data/mod/03_machines/spec/set/type/skin_spec.rb +28 -30
  216. data/mod/04_settings/lib/card/setting.rb +4 -4
  217. data/mod/04_settings/set/abstract/permission.rb +30 -37
  218. data/mod/04_settings/set/right/add_help.rb +3 -3
  219. data/mod/04_settings/set/right/script.rb +4 -5
  220. data/mod/04_settings/set/right/structure.rb +3 -4
  221. data/mod/04_settings/set/right/style.rb +3 -3
  222. data/mod/04_settings/set/self/add_help.rb +1 -1
  223. data/mod/04_settings/set/self/input.rb +1 -1
  224. data/mod/04_settings/set/self/on_create.rb +1 -1
  225. data/mod/04_settings/set/self/options.rb +1 -1
  226. data/mod/04_settings/set/self/options_label.rb +1 -1
  227. data/mod/04_settings/set/type/setting.rb +29 -44
  228. data/mod/04_settings/spec/set/right/comment_spec.rb +9 -12
  229. data/mod/04_settings/spec/set/right/script_spec.rb +7 -7
  230. data/mod/04_settings/spec/set/right/structure_spec.rb +13 -12
  231. data/mod/04_settings/spec/set/right/style_spec.rb +13 -13
  232. data/mod/04_settings/spec/set/type/setting_spec.rb +1 -1
  233. data/mod/05_email/format/email_html_format.rb +1 -1
  234. data/mod/05_email/format/email_text_format.rb +2 -2
  235. data/mod/05_email/lib/card/follow_option.rb +12 -15
  236. data/mod/05_email/set/all/email_html.rb +2 -3
  237. data/mod/05_email/set/all/email_text.rb +3 -3
  238. data/mod/05_email/set/all/follow.rb +14 -22
  239. data/mod/05_email/set/all/notify.rb +11 -11
  240. data/mod/05_email/set/all/observer.rb +7 -8
  241. data/mod/05_email/set/right/bcc.rb +4 -9
  242. data/mod/05_email/set/right/follow.rb +26 -39
  243. data/mod/05_email/set/right/follow_fields.rb +2 -2
  244. data/mod/05_email/set/right/followers.rb +3 -1
  245. data/mod/05_email/set/right/following.rb +13 -16
  246. data/mod/05_email/set/self/always.rb +1 -2
  247. data/mod/05_email/set/self/created.rb +4 -6
  248. data/mod/05_email/set/self/edited.rb +3 -7
  249. data/mod/05_email/set/self/follow_defaults.rb +11 -12
  250. data/mod/05_email/set/self/never.rb +2 -4
  251. data/mod/05_email/set/type/email_template.rb +40 -27
  252. data/mod/05_email/set/type_plus_right/user/follow.rb +159 -157
  253. data/mod/05_email/spec/set/all/follow_spec.rb +28 -37
  254. data/mod/05_email/spec/set/all/notify_spec.rb +21 -26
  255. data/mod/05_email/spec/set/all/observer_spec.rb +58 -37
  256. data/mod/05_email/spec/set/right/followers_spec.rb +9 -14
  257. data/mod/05_email/spec/set/right/following_spec.rb +1 -1
  258. data/mod/05_email/spec/set/self/follow_defaults_spec.rb +1 -1
  259. data/mod/05_standard/lib/carrier_wave/cardmount.rb +9 -9
  260. data/mod/05_standard/lib/file_uploader.rb +8 -13
  261. data/mod/05_standard/lib/image_uploader.rb +8 -9
  262. data/mod/05_standard/set/abstract/attachment.rb +26 -43
  263. data/mod/05_standard/set/all/account.rb +2 -2
  264. data/mod/05_standard/set/all/comment.rb +11 -13
  265. data/mod/05_standard/set/all/error.rb +18 -18
  266. data/mod/05_standard/set/all/event_viz.rb +16 -29
  267. data/mod/05_standard/set/all/links.rb +35 -34
  268. data/mod/05_standard/set/all/list_changes.rb +10 -12
  269. data/mod/05_standard/set/all/rich_html/content.rb +13 -13
  270. data/mod/05_standard/set/all/rich_html/editing.rb +5 -5
  271. data/mod/05_standard/set/all/rich_html/form.rb +22 -26
  272. data/mod/05_standard/set/all/rich_html/header.rb +18 -25
  273. data/mod/05_standard/set/all/rich_html/menu.rb +20 -22
  274. data/mod/05_standard/set/all/rich_html/modal.rb +3 -3
  275. data/mod/05_standard/set/all/rich_html/toolbar.rb +49 -58
  276. data/mod/05_standard/set/all/rich_html/wrapper.rb +40 -41
  277. data/mod/05_standard/set/right/account.rb +26 -14
  278. data/mod/05_standard/set/right/email.rb +2 -2
  279. data/mod/05_standard/set/right/password.rb +6 -5
  280. data/mod/05_standard/set/right/salt.rb +2 -2
  281. data/mod/05_standard/set/right/stats.rb +17 -20
  282. data/mod/05_standard/set/right/token.rb +1 -1
  283. data/mod/05_standard/set/right/when_created.rb +1 -1
  284. data/mod/05_standard/set/right/when_last_edited.rb +1 -1
  285. data/mod/05_standard/set/rstar/rules.rb +3 -3
  286. data/mod/05_standard/set/rstar/rules_editor.rb +39 -39
  287. data/mod/05_standard/set/self/account_links.rb +21 -22
  288. data/mod/05_standard/set/self/admin_info.rb +5 -5
  289. data/mod/05_standard/set/self/alerts.rb +1 -1
  290. data/mod/05_standard/set/self/all.rb +1 -1
  291. data/mod/05_standard/set/self/foot.rb +1 -1
  292. data/mod/05_standard/set/self/head.rb +19 -22
  293. data/mod/05_standard/set/self/navbox.rb +3 -7
  294. data/mod/05_standard/set/self/now.rb +1 -1
  295. data/mod/05_standard/set/self/recent.rb +19 -25
  296. data/mod/05_standard/set/self/search.rb +2 -4
  297. data/mod/05_standard/set/self/signin.rb +6 -6
  298. data/mod/05_standard/set/self/stats.rb +31 -38
  299. data/mod/05_standard/set/self/version.rb +1 -2
  300. data/mod/05_standard/set/type/basic.rb +15 -17
  301. data/mod/05_standard/set/type/cardtype.rb +3 -3
  302. data/mod/05_standard/set/type/date.rb +1 -2
  303. data/mod/05_standard/set/type/file.rb +22 -33
  304. data/mod/05_standard/set/type/image.rb +30 -23
  305. data/mod/05_standard/set/type/layout_type.rb +4 -4
  306. data/mod/05_standard/set/type/list.rb +32 -38
  307. data/mod/05_standard/set/type/listed_by.rb +11 -13
  308. data/mod/05_standard/set/type/number.rb +5 -6
  309. data/mod/05_standard/set/type/phrase.rb +1 -1
  310. data/mod/05_standard/set/type/search_type.rb +25 -23
  311. data/mod/05_standard/set/type/session.rb +2 -3
  312. data/mod/05_standard/set/type/set.rb +46 -51
  313. data/mod/05_standard/set/type/signup.rb +18 -19
  314. data/mod/05_standard/set/type/toggle.rb +5 -5
  315. data/mod/05_standard/set/type/user.rb +6 -6
  316. data/mod/05_standard/spec/chunk/include_spec.rb +115 -98
  317. data/mod/05_standard/spec/chunk/link_spec.rb +58 -31
  318. data/mod/05_standard/spec/chunk/query_reference_spec.rb +12 -14
  319. data/mod/05_standard/spec/set/all/email_html_spec.rb +3 -3
  320. data/mod/05_standard/spec/set/all/error_spec.rb +3 -3
  321. data/mod/05_standard/spec/set/all/history_spec.rb +52 -38
  322. data/mod/05_standard/spec/set/all/links_spec.rb +2 -2
  323. data/mod/05_standard/spec/set/all/rich_html/editing_spec.rb +0 -1
  324. data/mod/05_standard/spec/set/all/rich_html/form_spec.rb +11 -11
  325. data/mod/05_standard/spec/set/all/rich_html/wrapper_spec.rb +4 -4
  326. data/mod/05_standard/spec/set/right/email_spec.rb +1 -4
  327. data/mod/05_standard/spec/set/right/password_spec.rb +4 -7
  328. data/mod/05_standard/spec/set/right/stats_spec.rb +2 -3
  329. data/mod/05_standard/spec/set/right/when_created_spec.rb +1 -1
  330. data/mod/05_standard/spec/set/right/when_last_edited_spec.rb +1 -1
  331. data/mod/05_standard/spec/set/rstar/rules_spec.rb +6 -6
  332. data/mod/05_standard/spec/set/self/all_spec.rb +11 -13
  333. data/mod/05_standard/spec/set/self/head_spec.rb +1 -3
  334. data/mod/05_standard/spec/set/self/navbox_spec.rb +1 -1
  335. data/mod/05_standard/spec/set/self/now_spec.rb +2 -2
  336. data/mod/05_standard/spec/set/self/signin_spec.rb +1 -1
  337. data/mod/05_standard/spec/set/self/stats_spec.rb +1 -1
  338. data/mod/05_standard/spec/set/self/version_spec.rb +2 -2
  339. data/mod/05_standard/spec/set/type/cardtype_spec.rb +3 -4
  340. data/mod/05_standard/spec/set/type/date_spec.rb +1 -1
  341. data/mod/05_standard/spec/set/type/email_template_spec.rb +5 -5
  342. data/mod/05_standard/spec/set/type/file_spec.rb +50 -28
  343. data/mod/05_standard/spec/set/type/html_spec.rb +12 -7
  344. data/mod/05_standard/spec/set/type/image_spec.rb +55 -45
  345. data/mod/05_standard/spec/set/type/layout_type_spec.rb +2 -2
  346. data/mod/05_standard/spec/set/type/listed_by_spec.rb +2 -2
  347. data/mod/05_standard/spec/set/type/number_spec.rb +1 -1
  348. data/mod/05_standard/spec/set/type/phrase_spec.rb +1 -1
  349. data/mod/05_standard/spec/set/type/search_type_spec.rb +15 -16
  350. data/mod/05_standard/spec/set/type/set_spec.rb +16 -17
  351. data/mod/05_standard/spec/set/type/signup_spec.rb +7 -5
  352. data/mod/05_standard/spec/set/type/toggle_spec.rb +4 -4
  353. data/mod/05_standard/spec/set/type/uri_spec.rb +11 -11
  354. data/mod/05_standard/spec/set/type/user_spec.rb +0 -1
  355. data/mod/06_bootstrap/set/all/bootstrap/form.rb +9 -10
  356. data/mod/06_bootstrap/set/all/bootstrap/helper.rb +22 -27
  357. data/mod/06_bootstrap/set/all/bootstrap/wrapper.rb +1 -2
  358. data/mod/06_bootstrap/set/all/rich_bootstrap.rb +1 -3
  359. data/mod/06_bootstrap/set/self/bootstrap_cards.rb +2 -2
  360. data/mod/06_bootstrap/set/self/bootstrap_js.rb +2 -2
  361. data/mod/06_bootstrap/set/self/bootswatch_shared.rb +19 -19
  362. data/mod/06_bootstrap/set/self/smartmenu_css.rb +2 -2
  363. data/mod/06_bootstrap/set/self/smartmenu_js.rb +3 -3
  364. data/mod/06_bootstrap/spec/set/all/bootstrap/form_spec.rb +5 -5
  365. data/spec/lib/card/action_spec.rb +4 -4
  366. data/spec/lib/card/cache_spec.rb +3 -5
  367. data/spec/lib/card/chunk_spec.rb +6 -8
  368. data/spec/lib/card/codename_spec.rb +4 -6
  369. data/spec/lib/card/content_spec.rb +12 -17
  370. data/spec/lib/card/diff_spec.rb +59 -61
  371. data/spec/lib/card/format_spec.rb +55 -34
  372. data/spec/lib/card/loader_spec.rb +35 -37
  373. data/spec/lib/card/name_spec.rb +159 -145
  374. data/spec/lib/card/query_spec.rb +4 -4
  375. data/spec/lib/card/reference_spec.rb +24 -24
  376. data/spec/lib/card/set_pattern_spec.rb +3 -3
  377. data/spec/lib/card/stage_director_spec.rb +218 -0
  378. data/spec/lib/card/subcards_spec.rb +12 -16
  379. data/spec/lib/card/success_spec.rb +16 -18
  380. data/spec/lib/card/view_cache_spec.rb +1 -1
  381. data/spec/mailers/mailer_spec.rb +3 -5
  382. data/spec/models/card/cardtype_spec.rb +40 -51
  383. data/spec/models/card/create_spec.rb +58 -39
  384. data/spec/models/card/trash_spec.rb +23 -32
  385. data/spec/models/card/type_transition_spec.rb +41 -32
  386. data/spec/models/card/validation_spec.rb +13 -15
  387. data/spec/models/card_spec.rb +48 -59
  388. data/spec/spec_helper.rb +26 -31
  389. metadata +16 -2
@@ -11,7 +11,6 @@ describe Card, 'deleting card' do
11
11
  expect(a.errors[:permission_denied]).not_to be_empty
12
12
  expect(Card['a'].trash).to eq(false)
13
13
  end
14
-
15
14
  end
16
15
  end
17
16
 
@@ -28,7 +27,7 @@ describe Card, 'deleted card' do
28
27
  it 'should come out of the trash when a plus card is created' do
29
28
  Card::Auth.as_bot do
30
29
  Card.create(name: 'A+*acct')
31
- c = Card[ 'A' ]
30
+ c = Card['A']
32
31
  expect(c.trash).to be_falsey
33
32
  end
34
33
  end
@@ -37,20 +36,19 @@ end
37
36
  describe Card, 'in trash' do
38
37
  it 'should be retrieved by fetch with new' do
39
38
  Card.create(name: 'Betty').delete
40
- c=Card.fetch 'Betty', new: {}
39
+ c = Card.fetch 'Betty', new: {}
41
40
  c.save
42
41
  expect(Card['Betty']).to be_instance_of(Card)
43
42
  end
44
43
  end
45
44
 
46
-
47
45
  describe Card, 'plus cards' do
48
46
  it 'should be deleted when root is' do
49
47
  Card::Auth.as 'joe_admin' do
50
48
  c = Card.create! name: 'zz+top'
51
49
  root = Card['zz']
52
50
  root.delete
53
- # Rails.logger.info "ERRORS = #{root.errors.full_messages*''}"
51
+ # Rails.logger.info "ERRORS = #{root.errors.full_messages*''}"
54
52
  expect(Card.find(c.id).trash).to be_truthy
55
53
  expect(Card['zz']).to be_nil
56
54
  end
@@ -60,7 +58,7 @@ end
60
58
  # FIXME: these user tests should probably be in a set of cardtype specific tests somewhere..
61
59
  describe Card do
62
60
  context 'with revisions' do
63
- before do Card::Auth.as_bot { @c = Card['Wagn Bot'] } end
61
+ before { Card::Auth.as_bot { @c = Card['Wagn Bot'] } }
64
62
  it 'should not be removable' do
65
63
  expect(@c.delete).not_to be_truthy
66
64
  end
@@ -78,11 +76,8 @@ describe Card do
78
76
  end
79
77
  end
80
78
 
81
-
82
-
83
-
84
- #NOT WORKING, BUT IT SHOULD
85
- #describe Card, "a part of an unremovable card" do
79
+ # NOT WORKING, BUT IT SHOULD
80
+ # describe Card, "a part of an unremovable card" do
86
81
  # before do
87
82
  # Card::Auth.as(Card::WagnBotID)
88
83
  # # this ugly setup makes it so A+Admin is the actual user with edits..
@@ -92,7 +87,7 @@ end
92
87
  # @a = Card['A']
93
88
  # @a.delete.should_not be_true
94
89
  # end
95
- #end
90
+ # end
96
91
 
97
92
  describe Card, 'dependent removal' do
98
93
  before do
@@ -115,7 +110,7 @@ describe Card, 'rename to trashed name' do
115
110
  Card::Auth.as_bot do
116
111
  @a = Card['A']
117
112
  @b = Card['B']
118
- @a.delete! #trash
113
+ @a.delete! # trash
119
114
  Rails.logger.info "\n\n~~~~~~~deleted~~~~~~~~\n\n\n"
120
115
 
121
116
  @b.update_attributes! name: 'A', update_referers: true
@@ -133,7 +128,6 @@ describe Card, 'rename to trashed name' do
133
128
  end
134
129
  end
135
130
 
136
-
137
131
  describe Card, 'sent to trash' do
138
132
  before do
139
133
  Card::Auth.as_bot do
@@ -179,23 +173,22 @@ describe Card, 'revived from trash' do
179
173
 
180
174
  it 'should have the same content' do
181
175
  expect(@c.content).to eq('revived content')
182
- # Card.fetch(@c.name).content.should == 'revived content'
176
+ # Card.fetch(@c.name).content.should == 'revived content'
183
177
  end
184
178
  end
185
179
 
186
180
  describe Card, 'recreate trashed card via new' do
187
- # before do
188
- # Card::Auth.as(Card::WagnBotID)
189
- # @c = Card.create! type: 'Basic', name: "BasicMe"
190
- # end
191
-
192
- # this test is known to be broken; we've worked around it for now
193
- # it "should delete and recreate with a different cardtype" do
194
- # @c.delete!
195
- # @re_c = Card.new type: "Phrase", name: "BasicMe", content: "Banana"
196
- # @re_c.save!
197
- # end
198
-
181
+ # before do
182
+ # Card::Auth.as(Card::WagnBotID)
183
+ # @c = Card.create! type: 'Basic', name: "BasicMe"
184
+ # end
185
+
186
+ # this test is known to be broken; we've worked around it for now
187
+ # it "should delete and recreate with a different cardtype" do
188
+ # @c.delete!
189
+ # @re_c = Card.new type: "Phrase", name: "BasicMe", content: "Banana"
190
+ # @re_c.save!
191
+ # end
199
192
  end
200
193
 
201
194
  describe Card, 'junction revival' do
@@ -225,7 +218,6 @@ describe Card, 'junction revival' do
225
218
  end
226
219
 
227
220
  describe 'remove tests' do
228
-
229
221
  before do
230
222
  @a = Card['A']
231
223
  end
@@ -239,7 +231,7 @@ describe 'remove tests' do
239
231
  end
240
232
 
241
233
  it 'test_recreate_plus_card_name_variant' do
242
- Card.create( name: 'rta+rtb' ).delete
234
+ Card.create(name: 'rta+rtb').delete
243
235
  Card['rta'].update_attributes name: 'rta!'
244
236
  c = Card.create! name: 'rta!+rtb'
245
237
  assert Card['rta!+rtb']
@@ -248,13 +240,12 @@ describe 'remove tests' do
248
240
  end
249
241
 
250
242
  it 'test_multiple_trash_collision' do
251
- Card.create( name: 'alpha' ).delete
243
+ Card.create(name: 'alpha').delete
252
244
  3.times do
253
- b = Card.create( name: 'beta' )
245
+ b = Card.create(name: 'beta')
254
246
  b.name = 'alpha'
255
247
  assert b.save!
256
248
  b.delete
257
249
  end
258
250
  end
259
251
  end
260
-
@@ -24,16 +24,32 @@ class Card
24
24
  end
25
25
 
26
26
  module CardtypeE
27
- def self.included(base) Card.count = 2 end
28
- def on_type_change() decrement_count end
29
- def decrement_count() Card.count -= 1 end
27
+ def self.included _base
28
+ Card.count = 2
29
+ end
30
+
31
+ def on_type_change
32
+ decrement_count
33
+ end
34
+
35
+ def decrement_count
36
+ Card.count -= 1
37
+ end
30
38
  end
31
39
 
32
40
  module CardtypeF
33
- def self.included(base) Card.count = 2 end
41
+ def self.included _base
42
+ Card.count = 2
43
+ end
44
+
34
45
  # FIXME: create_extension doesn't exist anymore, need another hook
35
- def create_extension() increment_count end
36
- def increment_count() Card.count += 1 end
46
+ def create_extension
47
+ increment_count
48
+ end
49
+
50
+ def increment_count
51
+ Card.count += 1
52
+ end
37
53
  end
38
54
  end
39
55
  end
@@ -50,8 +66,6 @@ describe Card, 'with role' do
50
66
  end
51
67
  end
52
68
 
53
-
54
-
55
69
  describe Card, 'with account' do
56
70
  before do
57
71
  Card::Auth.as_bot do
@@ -66,12 +80,11 @@ describe Card, 'with account' do
66
80
  it 'should allow type changes' do
67
81
  expect(@joe.type_code).to eq(:basic)
68
82
  end
69
-
70
83
  end
71
84
 
72
85
  describe Card, 'type transition approve create' do
73
86
  it 'should have cardtype b create role r1' do
74
- expect((c=Card.fetch('Cardtype B+*type+*create')).content).to eq('[[r1]]')
87
+ expect((c = Card.fetch('Cardtype B+*type+*create')).content).to eq('[[r1]]')
75
88
  expect(c.type_code).to eq(:pointer)
76
89
  end
77
90
 
@@ -81,7 +94,7 @@ describe Card, 'type transition approve create' do
81
94
  end
82
95
 
83
96
  it 'should be the original type' do
84
- lambda { change_card_to_type 'basicname', 'cardtype_b' }
97
+ -> { change_card_to_type 'basicname', 'cardtype_b' }
85
98
  expect(Card['basicname'].type_code).to eq(:basic)
86
99
  end
87
100
  end
@@ -113,48 +126,44 @@ describe Card, 'type transition validate_create' do
113
126
  end
114
127
  end
115
128
 
116
- describe Card, "type transition delete callback" do
129
+ describe Card, 'type transition delete callback' do
117
130
  before do
118
- @c = change_card_to_type("type-e-card", :basic)
131
+ @c = change_card_to_type('type-e-card', :basic)
119
132
  end
120
133
 
121
- it "should decrement counter in before delete" do
122
- pending "no trigger for this test anymore"
134
+ it 'should decrement counter in before delete' do
135
+ pending 'no trigger for this test anymore'
123
136
  expect(Card.count).to eq(1)
124
137
  end
125
138
 
126
- it "should change type of the card" do
127
- expect(Card["type-e-card"].type_code).to eq(:basic)
139
+ it 'should change type of the card' do
140
+ expect(Card['type-e-card'].type_code).to eq(:basic)
128
141
  end
129
142
  end
130
143
 
131
- describe Card, "type transition create callback" do
144
+ describe Card, 'type transition create callback' do
132
145
  before do
133
146
  Card::Auth.as_bot do
134
- Card.create(name: 'Basic+*type+*delete', type: 'Pointer', content: "[[Anyone Signed in]]")
147
+ Card.create(name: 'Basic+*type+*delete', type: 'Pointer', content: '[[Anyone Signed in]]')
135
148
  end
136
- @c = change_card_to_type("basicname", :cardtype_f)
149
+ @c = change_card_to_type('basicname', :cardtype_f)
137
150
  end
138
151
 
139
- it "should increment counter" do
140
- pending "No extensions, so no hooks for this now"
152
+ it 'should increment counter' do
153
+ pending 'No extensions, so no hooks for this now'
141
154
  expect(Card.count).to eq(3)
142
155
  end
143
156
 
144
- it "should change type of card" do
145
- expect(Card["basicname"].type_code).to eq(:cardtype_f)
157
+ it 'should change type of card' do
158
+ expect(Card['basicname'].type_code).to eq(:cardtype_f)
146
159
  end
147
160
  end
148
161
 
149
-
150
162
  def change_card_to_type name, type
151
163
  card = Card.fetch(name)
152
- tid=card.type_id = Symbol===type ? Card::Codename[type] : Card.fetch_id(type)
153
- #warn "card[#{name.inspect}, T:#{type.inspect}] is #{card.inspect}, TID:#{tid}"
154
- r=card.save
155
- #warn "saved #{card.inspect} R#{r}"
164
+ tid = card.type_id = Symbol === type ? Card::Codename[type] : Card.fetch_id(type)
165
+ # warn "card[#{name.inspect}, T:#{type.inspect}] is #{card.inspect}, TID:#{tid}"
166
+ r = card.save
167
+ # warn "saved #{card.inspect} R#{r}"
156
168
  card
157
169
  end
158
-
159
-
160
-
@@ -1,36 +1,34 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
- describe Card, "validate name" do
4
-
5
- it "should error on name with /" do
6
- @c = Card.create name: "testname/"
3
+ describe Card, 'validate name' do
4
+ it 'should error on name with /' do
5
+ @c = Card.create name: 'testname/'
7
6
  expect(@c.errors[:name]).not_to be_blank
8
7
  end
9
8
 
10
- it "should error on junction name with /" do
11
- @c = Card.create name: "jasmin+ri/ce"
9
+ it 'should error on junction name with /' do
10
+ @c = Card.create name: 'jasmin+ri/ce'
12
11
  expect(@c.errors[:name]).not_to be_blank
13
12
  end
14
13
 
15
14
  it "shouldn't create any new cards when name invalid" do
16
15
  original_card_count = Card.count
17
- @c = Card.create name: "jasmin+ri/ce"
16
+ @c = Card.create name: 'jasmin+ri/ce'
18
17
  expect(Card.count).to eq(original_card_count)
19
18
  end
20
19
 
21
- it "should not allow empty name" do
22
- @c = Card.new name: ""
20
+ it 'should not allow empty name' do
21
+ @c = Card.new name: ''
23
22
  expect(@c.valid?).to eq(false)
24
23
  expect(@c.errors[:name]).not_to be_blank
25
24
  end
26
25
 
27
26
  # maybe the @c.key= should just throw an error, but now it doesn't take anyway
28
- it "should not allow mismatched name and key" do
29
- @c = Card.new name: "Test"
30
- @c.key="foo"
31
- #@c.key.should == 'test'
27
+ it 'should not allow mismatched name and key' do
28
+ @c = Card.new name: 'Test'
29
+ @c.key = 'foo'
30
+ # @c.key.should == 'test'
32
31
  expect(@c.valid?).to eq(false)
33
- #@c.errors[:key].should_not be_blank
32
+ # @c.errors[:key].should_not be_blank
34
33
  end
35
-
36
34
  end
@@ -1,39 +1,37 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
3
  describe Card do
4
-
5
- describe "test data" do
6
- it "should be findable by name" do
7
- expect(Card["Wagn Bot"].class).to eq(Card)
4
+ describe 'test data' do
5
+ it 'should be findable by name' do
6
+ expect(Card['Wagn Bot'].class).to eq(Card)
8
7
  end
9
8
  end
10
9
 
11
- describe "creation" do
10
+ describe 'creation' do
12
11
  before(:each) do
13
12
  Card::Auth.as_bot do
14
- @b = Card.create! name: "New Card", content: "Great Content"
13
+ @b = Card.create! name: 'New Card', content: 'Great Content'
15
14
  @c = Card.find(@b.id)
16
15
  end
17
16
  end
18
17
 
19
- it "should not have errors" do expect(@b.errors.size).to eq(0) end
20
- it "should have the right class" do expect(@c.class).to eq(Card) end
21
- it "should have the right key" do expect(@c.key).to eq("new_card") end
22
- it "should have the right name" do expect(@c.name).to eq("New Card") end
23
- it "should have the right content" do expect(@c.content).to eq("Great Content") end
18
+ it 'should not have errors' do expect(@b.errors.size).to eq(0) end
19
+ it 'should have the right class' do expect(@c.class).to eq(Card) end
20
+ it 'should have the right key' do expect(@c.key).to eq('new_card') end
21
+ it 'should have the right name' do expect(@c.name).to eq('New Card') end
22
+ it 'should have the right content' do expect(@c.content).to eq('Great Content') end
24
23
 
25
- it "should have the right content" do
26
- expect(@c.db_content).to eq("Great Content")
27
- expect(@c.content).to eq("Great Content")
24
+ it 'should have the right content' do
25
+ expect(@c.db_content).to eq('Great Content')
26
+ expect(@c.content).to eq('Great Content')
28
27
  end
29
28
 
30
- it "should be findable by name" do
31
- expect(Card["New Card"].class).to eq(Card)
29
+ it 'should be findable by name' do
30
+ expect(Card['New Card'].class).to eq(Card)
32
31
  end
33
32
  end
34
33
 
35
-
36
- describe "content change should create new action" do
34
+ describe 'content change should create new action' do
37
35
  before do
38
36
  Card::Auth.as_bot do
39
37
  @c = Card['basicname']
@@ -41,30 +39,26 @@ describe Card do
41
39
  end
42
40
  end
43
41
 
44
- it "should have 2 actions" do
42
+ it 'should have 2 actions' do
45
43
  expect(@c.actions.count).to eq(2)
46
44
  end
47
45
 
48
- it "should have original action" do
46
+ it 'should have original action' do
49
47
  expect(@c.nth_action(1).change_for(2).first.value).to eq('basiccontent')
50
48
  end
51
49
  end
52
50
 
53
-
54
-
55
- describe "created a virtual card when missing and has a template" do
56
- it "should be flagged as virtual" do
51
+ describe 'created a virtual card when missing and has a template' do
52
+ it 'should be flagged as virtual' do
57
53
  expect(Card.new(name: 'A+*last edited').virtual?).to be_truthy
58
54
  end
59
55
  end
60
56
  end
61
57
 
62
- describe "basic card tests" do
63
-
64
-
58
+ describe 'basic card tests' do
65
59
  def assert_simple_card card
66
- expect(card.name).to be, "name not null"
67
- expect(card.name.empty?).to be_falsey, "name not empty"
60
+ expect(card.name).to be, 'name not null'
61
+ expect(card.name.empty?).to be_falsey, 'name not empty'
68
62
  action = card.last_action
69
63
  expect(action).to be_instance_of Card::Action
70
64
  expect(action.act.actor).to be_instance_of Card
@@ -83,35 +77,35 @@ describe "basic card tests" do
83
77
  end
84
78
 
85
79
  it 'should remove cards' do
86
- forba = Card.create! name: "Forba"
87
- torga = Card.create! name: "TorgA"
88
- torgb = Card.create! name: "TorgB"
89
- torgc = Card.create! name: "TorgC"
80
+ forba = Card.create! name: 'Forba'
81
+ torga = Card.create! name: 'TorgA'
82
+ torgb = Card.create! name: 'TorgB'
83
+ torgc = Card.create! name: 'TorgC'
90
84
 
91
- forba_torga = Card.create! name: "Forba+TorgA";
92
- torgb_forba = Card.create! name: "TorgB+Forba";
93
- forba_torga_torgc = Card.create! name: "Forba+TorgA+TorgC";
85
+ forba_torga = Card.create! name: 'Forba+TorgA'
86
+ torgb_forba = Card.create! name: 'TorgB+Forba'
87
+ forba_torga_torgc = Card.create! name: 'Forba+TorgA+TorgC'
94
88
 
95
89
  Card['Forba'].delete!
96
90
 
97
- expect(Card["Forba"]).to be_nil
98
- expect(Card["Forba+TorgA"]).to be_nil
99
- expect(Card["TorgB+Forba"]).to be_nil
100
- expect(Card["Forba+TorgA+TorgC"]).to be_nil
91
+ expect(Card['Forba']).to be_nil
92
+ expect(Card['Forba+TorgA']).to be_nil
93
+ expect(Card['TorgB+Forba']).to be_nil
94
+ expect(Card['Forba+TorgA+TorgC']).to be_nil
101
95
 
102
96
  # FIXME: this is a pretty dumb test and it takes a loooooooong time
103
- #while card = Card.find(:first,conditions: ["type not in (?,?,?) and trash=?", 'AccountRequest','User','Cardtype',false] )
97
+ # while card = Card.find(:first,conditions: ["type not in (?,?,?) and trash=?", 'AccountRequest','User','Cardtype',false] )
104
98
  # card.delete!
105
- #end
106
- #assert_equal 0, Card.find_all_by_trash(false).size
99
+ # end
100
+ # assert_equal 0, Card.find_all_by_trash(false).size
107
101
  end
108
102
 
109
- #test test_attribute_card
103
+ # test test_attribute_card
110
104
  # alpha, beta = Card.create(name: 'alpha'), Card.create(name: 'beta')
111
105
  # assert_nil alpha.attribute_card('beta')
112
106
  # Card.create name: 'alpha+beta'
113
107
  # alpha.attribute_card('beta').should be_instance_of(Card)
114
- #end
108
+ # end
115
109
 
116
110
  it 'should create cards' do
117
111
  alpha = Card.new name: 'alpha', content: 'alpha'
@@ -121,19 +115,17 @@ describe "basic card tests" do
121
115
  assert_stable alpha
122
116
  end
123
117
 
124
-
125
118
  it 'should not find nonexistent' do
126
119
  expect(Card['no such card+no such tag']).to be_nil
127
120
  expect(Card['HomeCard+no such tag']).to be_nil
128
121
  end
129
122
 
130
-
131
123
  it 'update_should_create_subcards' do
132
124
  banana = Card.create! name: 'Banana'
133
- Card.update banana.id, subcards: { "+peel" => { content: "yellow" }}
125
+ Card.update banana.id, subcards: { '+peel' => { content: 'yellow' } }
134
126
 
135
127
  peel = Card['Banana+peel']
136
- expect(peel.content). to eq("yellow")
128
+ expect(peel.content). to eq('yellow')
137
129
  expect(Card['joe_user'].id).to eq(peel.creator_id)
138
130
  end
139
131
 
@@ -143,35 +135,32 @@ describe "basic card tests" do
143
135
  expect(Card['Banana']).not_to be
144
136
  expect(Card['Basic'].ok?(:create)).to be_falsey, "anon can't creat"
145
137
 
146
- Card.create! type: "Fruit", name: 'Banana', subcards: { "+peel" => { content: "yellow" }}
138
+ Card.create! type: 'Fruit', name: 'Banana', subcards: { '+peel' => { content: 'yellow' } }
147
139
  expect(Card['Banana']).to be
148
- peel = Card["Banana+peel"]
140
+ peel = Card['Banana+peel']
149
141
 
150
- expect(peel.db_content).to eq("yellow")
142
+ expect(peel.db_content).to eq('yellow')
151
143
  expect(peel.creator_id).to eq(Card::AnonymousID)
152
144
  end
153
145
 
154
146
  it 'update_should_not_create_subcards_if_missing_main_card_permissions' do
155
- b = Card.create!( name: 'Banana' )
147
+ b = Card.create!(name: 'Banana')
156
148
  Card::Auth.as Card::AnonymousID do
157
- b.update_attributes subcards: { "+peel" => { content: "yellow" }}
149
+ b.update_attributes subcards: { '+peel' => { content: 'yellow' } }
158
150
  expect(b.errors[:permission_denied]).not_to be_empty
159
151
 
160
-
161
- c = Card.update(b.id, subcards: { "+peel" => { content: "yellow" }})
152
+ c = Card.update(b.id, subcards: { '+peel' => { content: 'yellow' } })
162
153
  expect(c.errors[:permission_denied]).not_to be_empty
163
154
  expect(Card['Banana+peel']).to be_nil
164
155
  end
165
156
  end
166
157
 
167
-
168
158
  it 'create_without_read_permission' do
169
- c = Card.create!({name: "Banana", type: "Fruit", content: "mush"})
159
+ c = Card.create!(name: 'Banana', type: 'Fruit', content: 'mush')
170
160
  Card::Auth.as Card::AnonymousID do
171
161
  assert_raises Card::PermissionDenied do
172
162
  c.ok! :read
173
163
  end
174
164
  end
175
165
  end
176
-
177
166
  end