wagn 1.13.0 → 1.14.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (459) hide show
  1. checksums.yaml +4 -4
  2. data/Guardfile +3 -2
  3. data/VERSION +1 -1
  4. data/app/controllers/card_controller.rb +33 -38
  5. data/config/routes.rb +2 -2
  6. data/config/version.txt +1 -1
  7. data/db/bootstrap/card_actions.yml +3543 -0
  8. data/db/bootstrap/card_acts.yml +7 -0
  9. data/db/bootstrap/card_changes.yml +9150 -0
  10. data/db/bootstrap/card_references.yml +666 -344
  11. data/db/bootstrap/cards.yml +3256 -1702
  12. data/db/migrate/20140822073704_create_new_revision_tables.rb +43 -0
  13. data/db/migrate/20141001105348_move_revisions_to_actions.rb +62 -0
  14. data/db/migrate_cards/20130411191151_renaming_for_menu.rb +42 -45
  15. data/db/migrate_cards/20130411211600_delete_old_related_tab_cards.rb +13 -16
  16. data/db/migrate_cards/20130419215612_import_help_text.rb +7 -10
  17. data/db/migrate_cards/20130823192433_add_style_cards.rb +77 -81
  18. data/db/migrate_cards/20130910183318_move_styles_to_content.rb +4 -7
  19. data/db/migrate_cards/20130920214038_jsonize_tinymce.rb +9 -12
  20. data/db/migrate_cards/20130920291703_update_stylesheets.rb +10 -13
  21. data/db/migrate_cards/20130927191728_account_events.rb +15 -18
  22. data/db/migrate_cards/20131016172445_common_css_patch.rb +5 -8
  23. data/db/migrate_cards/20140110193325_reset_account_request_type.rb +4 -7
  24. data/db/migrate_cards/20140307231621_user_data_to_cards.rb +50 -53
  25. data/db/migrate_cards/20140317035504_account_requests_to_signups.rb +39 -42
  26. data/db/migrate_cards/20140512155840_add_script_cards.rb +56 -59
  27. data/db/migrate_cards/20140629222005_add_email_cards.rb +168 -0
  28. data/db/migrate_cards/20140725180118_config_card_updates.rb +4 -7
  29. data/db/migrate_cards/data/mailer/follower_notification_email.html +9 -0
  30. data/db/migrate_cards/data/mailer/follower_notification_email.txt +11 -0
  31. data/db/migrate_cards/data/mailer/mail_config.json +22 -0
  32. data/db/migrate_cards/data/mailer/password_reset_email.html +10 -0
  33. data/db/migrate_cards/data/mailer/password_reset_email.txt +11 -0
  34. data/db/migrate_cards/data/mailer/signup_alert_email.html +7 -0
  35. data/db/migrate_cards/data/mailer/signup_alert_email.txt +5 -0
  36. data/db/migrate_cards/data/mailer/verification_email.html +9 -0
  37. data/db/migrate_cards/data/mailer/verification_email.txt +8 -0
  38. data/db/schema.rb +31 -1
  39. data/features/conflict.feature +39 -0
  40. data/features/flexmail.feature +54 -54
  41. data/features/notifications.feature +4 -2
  42. data/features/reset_password.feature +1 -1
  43. data/features/step_definitions/wagn_steps.rb +20 -2
  44. data/features/step_definitions/window_steps.rb +23 -0
  45. data/features/support/env.rb +1 -0
  46. data/features/update_includers.feature +16 -10
  47. data/features/watch.feature +2 -2
  48. data/lib/card.rb +11 -10
  49. data/lib/card/act.rb +63 -0
  50. data/lib/card/action.rb +194 -0
  51. data/lib/card/change.rb +29 -0
  52. data/lib/card/content.rb +1 -1
  53. data/lib/card/diff.rb +229 -276
  54. data/lib/card/env.rb +4 -3
  55. data/lib/card/format.rb +2 -5
  56. data/lib/card/generators/card_migration/USAGE +15 -3
  57. data/lib/card/generators/card_migration/card_migration_generator.rb +22 -2
  58. data/lib/card/generators/card_migration/templates/card_migration.erb +4 -5
  59. data/lib/card/generators/format/USAGE +2 -2
  60. data/lib/card/generators/format/format_generator.rb +2 -2
  61. data/lib/card/generators/set/USAGE +2 -2
  62. data/lib/card/mailer.rb +21 -100
  63. data/lib/card/name.rb +4 -3
  64. data/lib/card/query.rb +2 -2
  65. data/lib/card/query/card_spec.rb +20 -30
  66. data/lib/card/query/value_spec.rb +2 -3
  67. data/lib/card/set.rb +3 -0
  68. data/lib/wagn/all.rb +6 -0
  69. data/lib/wagn/application.rb +16 -6
  70. data/lib/wagn/commands.rb +87 -27
  71. data/lib/wagn/config/environments/development.rb +17 -0
  72. data/lib/wagn/config/environments/test.rb +14 -1
  73. data/lib/wagn/config/initializers/airbrake.rb +1 -1
  74. data/lib/wagn/generators/wagn/templates/Gemfile +27 -9
  75. data/lib/wagn/generators/wagn/templates/config/application.rb +12 -3
  76. data/lib/wagn/generators/wagn/templates/simplecov +5 -0
  77. data/lib/wagn/generators/wagn/templates/spec/spec_helper.rb +1 -0
  78. data/lib/wagn/generators/wagn/wagn_generator.rb +75 -45
  79. data/lib/wagn/location.rb +9 -0
  80. data/lib/wagn/migration.rb +96 -0
  81. data/lib/wagn/mods_spec_helper.rb +16 -8
  82. data/lib/wagn/simplecov_helper.rb +61 -0
  83. data/lib/wagn/{wagn_spec_helper.rb → spec_helper.rb} +11 -3
  84. data/lib/wagn/tasks/test.rake +1 -1
  85. data/lib/wagn/tasks/wagn.rake +100 -34
  86. data/lib/wagn/version.rb +7 -2
  87. data/mod/{core → 01_core}/chunk/include.rb +0 -0
  88. data/mod/{core → 01_core}/chunk/link.rb +0 -0
  89. data/mod/{core → 01_core}/chunk/literal.rb +0 -0
  90. data/mod/{core → 01_core}/chunk/reference.rb +15 -3
  91. data/mod/{core → 01_core}/chunk/uri.rb +0 -0
  92. data/mod/{core → 01_core}/format/data_format.rb +0 -0
  93. data/mod/{core → 01_core}/format/html_format.rb +5 -2
  94. data/mod/{core → 01_core}/format/text_format.rb +0 -0
  95. data/mod/{core → 01_core}/layout/blank.html +0 -0
  96. data/mod/{core → 01_core}/layout/default.html +0 -0
  97. data/mod/{core → 01_core}/layout/noside.html +0 -0
  98. data/mod/{core → 01_core}/layout/pre.html +0 -0
  99. data/mod/{core → 01_core}/layout/simple.html +0 -0
  100. data/mod/{core → 01_core}/set/all/active_card.rb +0 -0
  101. data/mod/{core → 01_core}/set/all/collection.rb +33 -5
  102. data/mod/01_core/set/all/content.rb +144 -0
  103. data/mod/01_core/set/all/erb.rb +11 -0
  104. data/mod/{core → 01_core}/set/all/fetch.rb +8 -1
  105. data/mod/01_core/set/all/haml.rb +7 -0
  106. data/mod/{core → 01_core}/set/all/initialize.rb +4 -2
  107. data/mod/{core → 01_core}/set/all/name.rb +2 -3
  108. data/mod/01_core/set/all/notify.rb +215 -0
  109. data/mod/{core → 01_core}/set/all/pattern.rb +0 -0
  110. data/mod/{core → 01_core}/set/all/permissions.rb +1 -1
  111. data/mod/{core → 01_core}/set/all/phases.rb +24 -8
  112. data/mod/{core → 01_core}/set/all/references.rb +2 -2
  113. data/mod/{core → 01_core}/set/all/rules.rb +2 -2
  114. data/mod/{core → 01_core}/set/all/states.rb +1 -1
  115. data/mod/{core → 01_core}/set/all/templating.rb +4 -4
  116. data/mod/{core → 01_core}/set/all/tracked_attributes.rb +15 -64
  117. data/mod/{core → 01_core}/set/all/trash.rb +6 -5
  118. data/mod/{core → 01_core}/set/all/type.rb +0 -0
  119. data/mod/{core → 01_core}/set/all/utils.rb +1 -1
  120. data/mod/{core → 01_core}/set_pattern/01_all.rb +0 -0
  121. data/mod/{core → 01_core}/set_pattern/02_all_plus.rb +0 -0
  122. data/mod/{core → 01_core}/set_pattern/03_type.rb +0 -0
  123. data/mod/{core → 01_core}/set_pattern/04_star.rb +0 -0
  124. data/mod/{core → 01_core}/set_pattern/05_rstar.rb +0 -0
  125. data/mod/{core → 01_core}/set_pattern/06_right.rb +0 -0
  126. data/mod/{core → 01_core}/set_pattern/07_type_plus_right.rb +0 -0
  127. data/mod/{core → 01_core}/set_pattern/08_self.rb +0 -0
  128. data/mod/01_core/spec/chunk/literal_spec.rb +14 -0
  129. data/{spec/mod/core → mod/01_core/spec}/chunk/uri_spec.rb +3 -3
  130. data/{spec/mod/core → mod/01_core/spec}/format/data_format_spec.rb +0 -0
  131. data/{spec/mod/core → mod/01_core/spec}/format/html_format_spec.rb +9 -8
  132. data/{spec/mod/core → mod/01_core/spec}/format/text_format_spec.rb +0 -0
  133. data/{spec/mod/core → mod/01_core/spec}/set/all/active_card_spec.rb +0 -0
  134. data/mod/01_core/spec/set/all/attribute_tracking_spec.rb +21 -0
  135. data/mod/01_core/spec/set/all/collection_spec.rb +65 -0
  136. data/mod/01_core/spec/set/all/content_spec.rb +15 -0
  137. data/{spec/mod/core → mod/01_core/spec}/set/all/fetch_spec.rb +70 -68
  138. data/{spec/mod/core → mod/01_core/spec}/set/all/initialize_spec.rb +12 -12
  139. data/{spec/mod/core → mod/01_core/spec}/set/all/name_spec.rb +7 -7
  140. data/mod/01_core/spec/set/all/notify_spec.rb +199 -0
  141. data/{spec/mod/core → mod/01_core/spec}/set/all/pattern_spec.rb +16 -16
  142. data/{spec/mod/core → mod/01_core/spec}/set/all/permissions_spec.rb +62 -62
  143. data/{spec/mod/core → mod/01_core/spec}/set/all/phases_spec.rb +0 -0
  144. data/{spec/mod/core → mod/01_core/spec}/set/all/references_spec.rb +1 -1
  145. data/{spec/mod/core → mod/01_core/spec}/set/all/rules2_spec.rb +57 -57
  146. data/mod/01_core/spec/set/all/rules_spec.rb +81 -0
  147. data/{spec/mod/core → mod/01_core/spec}/set/all/states_spec.rb +0 -0
  148. data/{spec/mod/core → mod/01_core/spec}/set/all/templating_spec.rb +16 -12
  149. data/{spec/mod/core → mod/01_core/spec}/set/all/tracked_attributes_spec.rb +24 -22
  150. data/{spec/mod/core → mod/01_core/spec}/set/all/trash_spec.rb +2 -2
  151. data/{spec/mod/core → mod/01_core/spec}/set/all/type_spec.rb +13 -13
  152. data/{spec/mod/core → mod/01_core/spec}/set/all/utils_spec.rb +0 -0
  153. data/mod/{core → 02_basic_types}/set/type/plain_text.rb +0 -0
  154. data/mod/{standard → 02_basic_types}/set/type/pointer.rb +21 -8
  155. data/{spec/mod/standard/set/type → mod/02_basic_types/spec/set}/plain_text_spec.rb +0 -0
  156. data/{spec/mod/standard/set/type → mod/02_basic_types/spec/set}/pointer_spec.rb +22 -9
  157. data/mod/{standard → 03_machines}/lib/card/machine.rb +3 -2
  158. data/mod/{standard → 03_machines}/lib/card/machine_input.rb +1 -1
  159. data/mod/{standard → 03_machines}/lib/javascript/html5shiv-printshiv.js +0 -0
  160. data/mod/{standard → 03_machines}/lib/javascript/jquery-ui.js +0 -0
  161. data/mod/{standard → 03_machines}/lib/javascript/jquery.autosize.js +0 -0
  162. data/mod/{standard → 03_machines}/lib/javascript/jquery.fileupload.js +0 -0
  163. data/mod/{standard → 03_machines}/lib/javascript/jquery.iframe-transport.js +0 -0
  164. data/mod/{standard → 03_machines}/lib/javascript/jquery.js +0 -0
  165. data/mod/{standard → 03_machines}/lib/javascript/jquery.ui.autocomplete.html.js +0 -0
  166. data/mod/{standard → 03_machines}/lib/javascript/jquery_ujs.js +0 -0
  167. data/mod/{standard → 03_machines}/lib/javascript/jquerymobile.js +0 -0
  168. data/mod/{standard → 03_machines}/lib/javascript/tinymce.js +0 -0
  169. data/mod/{standard → 03_machines}/lib/javascript/wagn.js.coffee +17 -9
  170. data/mod/{standard → 03_machines}/lib/javascript/wagn_menu.js +0 -0
  171. data/mod/{standard → 03_machines}/lib/javascript/wagn_mod.js.coffee +1 -1
  172. data/mod/{standard → 03_machines}/lib/stylesheets/functional.scss +1 -1
  173. data/mod/{standard → 03_machines}/lib/stylesheets/jquery-ui-smoothness.css +0 -0
  174. data/mod/{standard → 03_machines}/lib/stylesheets/standard.scss +126 -21
  175. data/mod/{standard → 03_machines}/set/right/machine_output.rb +3 -2
  176. data/mod/{standard → 03_machines}/set/self/script_card_menu.rb +1 -1
  177. data/mod/{standard → 03_machines}/set/self/script_html5shiv_printshiv.rb +1 -1
  178. data/mod/{standard → 03_machines}/set/self/script_jquery.rb +1 -1
  179. data/mod/{standard → 03_machines}/set/self/script_jquery_helper.rb +1 -1
  180. data/mod/{standard → 03_machines}/set/self/script_slot.rb +1 -1
  181. data/mod/{standard → 03_machines}/set/self/script_tinymce.rb +1 -1
  182. data/mod/{standard → 03_machines}/set/self/style_functional.rb +1 -1
  183. data/mod/{standard → 03_machines}/set/self/style_jquery_ui_smoothness.rb +1 -1
  184. data/mod/{standard → 03_machines}/set/self/style_standard.rb +1 -1
  185. data/mod/{standard → 03_machines}/set/type/coffee_script.rb +0 -0
  186. data/mod/{standard → 03_machines}/set/type/css.rb +0 -0
  187. data/mod/{standard → 03_machines}/set/type/java_script.rb +0 -0
  188. data/mod/{standard → 03_machines}/set/type/scss.rb +0 -0
  189. data/mod/{standard → 03_machines}/set/type/skin.rb +0 -0
  190. data/{spec/mod/standard → mod/03_machines/spec}/lib/machine_input_spec.rb +0 -0
  191. data/{spec/mod/standard → mod/03_machines/spec}/lib/machine_spec.rb +4 -4
  192. data/{spec/mod/standard → mod/03_machines/spec}/set/right/machine_output_spec.rb +0 -0
  193. data/{spec/mod/standard → mod/03_machines/spec}/set/self/style_functional_spec.rb +0 -0
  194. data/{spec/mod/standard → mod/03_machines/spec}/set/self/style_jquery_ui_smoothness_spec.rb +0 -0
  195. data/{spec/mod/standard → mod/03_machines/spec}/set/self/style_standard_spec.rb +0 -0
  196. data/{spec/mod/standard → mod/03_machines/spec}/set/type/coffeescript_spec.rb +0 -0
  197. data/{spec/mod/standard → mod/03_machines/spec}/set/type/css_spec.rb +0 -0
  198. data/{spec/mod/standard → mod/03_machines/spec}/set/type/javascript_spec.rb +0 -0
  199. data/{spec/mod/standard → mod/03_machines/spec}/set/type/scss_spec.rb +1 -1
  200. data/{spec/mod/standard → mod/03_machines/spec}/set/type/skin_spec.rb +22 -0
  201. data/mod/04_settings/lib/card/setting.rb +57 -0
  202. data/mod/{core/set/right/structure.rb → 04_settings/set/right/add_help.rb} +0 -2
  203. data/mod/{standard → 04_settings}/set/right/comment.rb +0 -1
  204. data/mod/{standard → 04_settings}/set/right/create.rb +0 -1
  205. data/mod/04_settings/set/right/default.rb +3 -0
  206. data/mod/{standard → 04_settings}/set/right/delete.rb +2 -0
  207. data/mod/04_settings/set/right/help.rb +3 -0
  208. data/mod/{standard → 04_settings}/set/right/read.rb +0 -0
  209. data/mod/{standard → 04_settings}/set/right/script.rb +0 -0
  210. data/mod/04_settings/set/right/structure.rb +4 -0
  211. data/mod/{standard → 04_settings}/set/right/style.rb +0 -0
  212. data/mod/{standard → 04_settings}/set/right/update.rb +0 -0
  213. data/mod/04_settings/set/self/accountable.rb +2 -0
  214. data/mod/04_settings/set/self/add_help.rb +2 -0
  215. data/mod/04_settings/set/self/autoname.rb +2 -0
  216. data/mod/04_settings/set/self/captcha.rb +2 -0
  217. data/mod/04_settings/set/self/comment.rb +2 -0
  218. data/mod/04_settings/set/self/create.rb +2 -0
  219. data/mod/04_settings/set/self/default.rb +2 -0
  220. data/mod/04_settings/set/self/delete.rb +2 -0
  221. data/mod/04_settings/set/self/help.rb +2 -0
  222. data/mod/04_settings/set/self/input.rb +2 -0
  223. data/mod/04_settings/set/self/layout.rb +2 -0
  224. data/mod/04_settings/set/self/on_create.rb +2 -0
  225. data/mod/04_settings/set/self/on_delete.rb +2 -0
  226. data/mod/04_settings/set/self/on_update.rb +2 -0
  227. data/mod/04_settings/set/self/options.rb +2 -0
  228. data/mod/04_settings/set/self/options_label.rb +2 -0
  229. data/mod/04_settings/set/self/read.rb +2 -0
  230. data/mod/04_settings/set/self/script.rb +2 -0
  231. data/mod/04_settings/set/self/structure.rb +2 -0
  232. data/mod/04_settings/set/self/style.rb +2 -0
  233. data/mod/04_settings/set/self/table_of_contents.rb +2 -0
  234. data/mod/04_settings/set/self/thanks.rb +2 -0
  235. data/mod/04_settings/set/self/update.rb +2 -0
  236. data/mod/{standard → 04_settings}/set/type/setting.rb +8 -14
  237. data/{spec/mod/standard → mod/04_settings/spec}/set/right/add_help_spec.rb +0 -0
  238. data/{spec/mod/standard → mod/04_settings/spec}/set/right/comment_spec.rb +5 -5
  239. data/{spec/mod/standard → mod/04_settings/spec}/set/right/create_spec.rb +0 -0
  240. data/{spec/mod/standard → mod/04_settings/spec}/set/right/default_spec.rb +0 -0
  241. data/{spec/mod/standard → mod/04_settings/spec}/set/right/delete_spec.rb +0 -0
  242. data/{spec/mod/standard → mod/04_settings/spec}/set/right/help_spec.rb +0 -0
  243. data/{spec/mod/standard → mod/04_settings/spec}/set/right/read_spec.rb +0 -0
  244. data/{spec/mod/standard → mod/04_settings/spec}/set/right/script_spec.rb +0 -0
  245. data/{spec/mod/standard → mod/04_settings/spec}/set/right/structure_spec.rb +4 -2
  246. data/{spec/mod/standard → mod/04_settings/spec}/set/right/style_spec.rb +1 -1
  247. data/{spec/mod/standard → mod/04_settings/spec}/set/right/update_spec.rb +0 -0
  248. data/{spec/mod/standard → mod/04_settings/spec}/set/type/setting_spec.rb +0 -0
  249. data/mod/{standard → 05_standard}/file/103/icon-6566.ico +0 -0
  250. data/mod/{standard → 05_standard}/file/103/large-6566.ico +0 -0
  251. data/mod/{standard → 05_standard}/file/103/medium-6566.ico +0 -0
  252. data/mod/{standard → 05_standard}/file/103/original-6566.ico +0 -0
  253. data/mod/{standard → 05_standard}/file/103/small-6566.ico +0 -0
  254. data/mod/{standard → 05_standard}/file/79/icon-6556.png +0 -0
  255. data/mod/{standard → 05_standard}/file/79/large-6556.png +0 -0
  256. data/mod/{standard → 05_standard}/file/79/medium-6556.png +0 -0
  257. data/mod/{standard → 05_standard}/file/79/original-6556.png +0 -0
  258. data/mod/{standard → 05_standard}/file/79/small-6556.png +0 -0
  259. data/mod/{standard → 05_standard}/file/790/icon-6419.png +0 -0
  260. data/mod/{standard → 05_standard}/file/790/large-6419.png +0 -0
  261. data/mod/{standard → 05_standard}/file/790/medium-6419.png +0 -0
  262. data/mod/{standard → 05_standard}/file/790/original-6419.png +0 -0
  263. data/mod/{standard → 05_standard}/file/790/small-6419.png +0 -0
  264. data/mod/{standard → 05_standard}/format/css_format.rb +0 -0
  265. data/mod/{standard → 05_standard}/format/csv_format.rb +0 -0
  266. data/mod/{standard → 05_standard}/format/file_format.rb +0 -0
  267. data/mod/{standard → 05_standard}/format/js_format.rb +0 -0
  268. data/mod/{standard → 05_standard}/format/json_format.rb +0 -0
  269. data/mod/{standard → 05_standard}/format/rss_format.rb +0 -0
  270. data/mod/{standard → 05_standard}/format/xml_format.rb +0 -0
  271. data/mod/{standard → 05_standard}/set/all/account.rb +0 -0
  272. data/mod/{standard → 05_standard}/set/all/all_css.rb +0 -0
  273. data/mod/{standard → 05_standard}/set/all/all_csv.rb +1 -1
  274. data/mod/05_standard/set/all/all_js.rb +7 -0
  275. data/mod/{standard → 05_standard}/set/all/attach.rb +33 -33
  276. data/mod/{standard → 05_standard}/set/all/base.rb +0 -0
  277. data/mod/{standard → 05_standard}/set/all/comment.rb +0 -0
  278. data/mod/{standard → 05_standard}/set/all/event_viz.rb +0 -0
  279. data/mod/{standard → 05_standard}/set/all/file.rb +0 -0
  280. data/mod/05_standard/set/all/follow.rb +51 -0
  281. data/mod/05_standard/set/all/history.rb +294 -0
  282. data/mod/{standard → 05_standard}/set/all/json.rb +2 -1
  283. data/mod/05_standard/set/all/observer.rb +27 -0
  284. data/mod/{standard → 05_standard}/set/all/rich_html.rb +21 -28
  285. data/mod/{standard → 05_standard}/set/all/rss.rb +0 -0
  286. data/mod/{standard → 05_standard}/set/all/text.rb +0 -0
  287. data/mod/{standard → 05_standard}/set/right/account.rb +53 -7
  288. data/mod/{standard → 05_standard}/set/right/email.rb +0 -1
  289. data/mod/{standard → 05_standard}/set/right/password.rb +1 -1
  290. data/mod/{standard → 05_standard}/set/right/salt.rb +0 -0
  291. data/mod/{standard → 05_standard}/set/right/stats.rb +1 -1
  292. data/mod/{standard → 05_standard}/set/right/status.rb +0 -0
  293. data/mod/{standard → 05_standard}/set/right/token.rb +0 -0
  294. data/mod/{standard → 05_standard}/set/right/when_created.rb +0 -0
  295. data/mod/{standard → 05_standard}/set/right/when_last_edited.rb +0 -0
  296. data/mod/{standard → 05_standard}/set/rstar/rules.rb +8 -7
  297. data/mod/{standard → 05_standard}/set/self/account_links.rb +0 -0
  298. data/mod/{standard → 05_standard}/set/self/alerts.rb +0 -0
  299. data/mod/{standard → 05_standard}/set/self/all.rb +1 -1
  300. data/mod/{standard → 05_standard}/set/self/foot.rb +0 -0
  301. data/mod/{standard → 05_standard}/set/self/head.rb +21 -6
  302. data/mod/{standard → 05_standard}/set/self/navbox.rb +0 -0
  303. data/mod/{standard → 05_standard}/set/self/now.rb +0 -0
  304. data/mod/{standard → 05_standard}/set/self/recent.rb +0 -0
  305. data/mod/{standard → 05_standard}/set/self/search.rb +0 -0
  306. data/mod/{standard → 05_standard}/set/self/signin.rb +1 -1
  307. data/mod/{standard → 05_standard}/set/self/stats.rb +2 -2
  308. data/mod/{standard → 05_standard}/set/self/version.rb +0 -0
  309. data/mod/{standard → 05_standard}/set/type/basic.rb +0 -0
  310. data/mod/{standard → 05_standard}/set/type/cardtype.rb +4 -6
  311. data/mod/{standard → 05_standard}/set/type/date.rb +0 -0
  312. data/mod/{standard → 05_standard}/set/type/file.rb +0 -0
  313. data/mod/{standard → 05_standard}/set/type/html.rb +0 -0
  314. data/mod/{standard → 05_standard}/set/type/image.rb +7 -6
  315. data/mod/{standard → 05_standard}/set/type/layout_type.rb +0 -0
  316. data/mod/{standard → 05_standard}/set/type/number.rb +0 -0
  317. data/mod/{standard → 05_standard}/set/type/phrase.rb +0 -0
  318. data/mod/{standard → 05_standard}/set/type/search_type.rb +6 -3
  319. data/mod/{standard → 05_standard}/set/type/set.rb +16 -9
  320. data/mod/{standard → 05_standard}/set/type/signup.rb +16 -17
  321. data/mod/{standard → 05_standard}/set/type/toggle.rb +0 -0
  322. data/mod/{standard → 05_standard}/set/type/user.rb +10 -11
  323. data/{spec/mod/standard → mod/05_standard/spec}/chunk/include_spec.rb +39 -39
  324. data/mod/05_standard/spec/chunk/link_spec.rb +61 -0
  325. data/{spec/mod/standard → mod/05_standard/spec}/format/css_format_spec.rb +0 -0
  326. data/{spec/mod/standard → mod/05_standard/spec}/format/csv_format_spec.rb +0 -0
  327. data/{spec/mod/standard → mod/05_standard/spec}/format/email_html_format_spec.rb +0 -0
  328. data/{spec/mod/standard → mod/05_standard/spec}/format/file_format_spec.rb +0 -0
  329. data/{spec/mod/standard → mod/05_standard/spec}/format/js_format_spec.rb +0 -0
  330. data/{spec/mod/standard → mod/05_standard/spec}/format/json_format_spec.rb +0 -0
  331. data/{spec/mod/standard → mod/05_standard/spec}/format/rss_format_spec.rb +0 -0
  332. data/{spec/mod/standard → mod/05_standard/spec}/format/xml_format_spec.rb +0 -0
  333. data/{spec/mod/standard → mod/05_standard/spec}/set/all/account_spec.rb +16 -16
  334. data/{spec/mod/standard → mod/05_standard/spec}/set/all/all_css_spec.rb +1 -1
  335. data/{spec/mod/standard → mod/05_standard/spec}/set/all/all_csv_spec.rb +1 -1
  336. data/{spec/mod/standard → mod/05_standard/spec}/set/all/attach_spec.rb +1 -1
  337. data/{spec/mod/standard → mod/05_standard/spec}/set/all/base_spec.rb +10 -10
  338. data/{spec/mod/standard → mod/05_standard/spec}/set/all/comment_spec.rb +0 -0
  339. data/mod/05_standard/spec/set/all/email_html_spec.rb +15 -0
  340. data/{spec/mod/standard → mod/05_standard/spec}/set/all/event_viz_spec.rb +1 -1
  341. data/{spec/mod/standard → mod/05_standard/spec}/set/all/file_spec.rb +0 -0
  342. data/mod/05_standard/spec/set/all/follow_spec.rb +83 -0
  343. data/mod/05_standard/spec/set/all/history_spec.rb +161 -0
  344. data/{spec/mod/standard → mod/05_standard/spec}/set/all/json_spec.rb +4 -4
  345. data/mod/05_standard/spec/set/all/observer_spec.rb +74 -0
  346. data/{spec/mod/standard → mod/05_standard/spec}/set/all/rich_html_spec.rb +14 -14
  347. data/{spec/mod/standard → mod/05_standard/spec}/set/all/rss_spec.rb +1 -1
  348. data/{spec/mod/standard → mod/05_standard/spec}/set/all/text_spec.rb +0 -0
  349. data/mod/05_standard/spec/set/right/account_spec.rb +162 -0
  350. data/{spec/mod/standard → mod/05_standard/spec}/set/right/email_spec.rb +7 -7
  351. data/{spec/mod/standard → mod/05_standard/spec}/set/right/password_spec.rb +7 -7
  352. data/{spec/mod/standard → mod/05_standard/spec}/set/right/salt_spec.rb +0 -0
  353. data/{spec/mod/standard → mod/05_standard/spec}/set/right/stats_spec.rb +0 -0
  354. data/{spec/mod/standard → mod/05_standard/spec}/set/right/status_spec.rb +0 -0
  355. data/{spec/mod/standard → mod/05_standard/spec}/set/right/token_spec.rb +0 -0
  356. data/{spec/mod/standard → mod/05_standard/spec}/set/right/when_created_spec.rb +1 -1
  357. data/{spec/mod/standard → mod/05_standard/spec}/set/right/when_last_edited_spec.rb +1 -1
  358. data/{spec/mod/standard → mod/05_standard/spec}/set/rstar/rules_spec.rb +4 -4
  359. data/{spec/mod/standard → mod/05_standard/spec}/set/self/account_links_spec.rb +0 -0
  360. data/{spec/mod/standard → mod/05_standard/spec}/set/self/alerts_spec.rb +0 -0
  361. data/{spec/mod/standard → mod/05_standard/spec}/set/self/all_spec.rb +7 -6
  362. data/{spec/mod/standard → mod/05_standard/spec}/set/self/foot_spec.rb +0 -0
  363. data/{spec/mod/standard → mod/05_standard/spec}/set/self/head_spec.rb +0 -0
  364. data/{spec/mod/standard → mod/05_standard/spec}/set/self/navbox_spec.rb +0 -0
  365. data/{spec/mod/standard → mod/05_standard/spec}/set/self/now_spec.rb +1 -1
  366. data/{spec/mod/standard → mod/05_standard/spec}/set/self/recent_spec.rb +0 -0
  367. data/{spec/mod/standard → mod/05_standard/spec}/set/self/search_spec.rb +0 -0
  368. data/{spec/mod/standard → mod/05_standard/spec}/set/self/signin_spec.rb +12 -12
  369. data/{spec/mod/standard → mod/05_standard/spec}/set/self/stats_spec.rb +0 -0
  370. data/{spec/mod/standard → mod/05_standard/spec}/set/self/version_spec.rb +1 -1
  371. data/{spec/mod/standard → mod/05_standard/spec}/set/type/basic_spec.rb +0 -0
  372. data/{spec/mod/standard → mod/05_standard/spec}/set/type/cardtype_spec.rb +0 -0
  373. data/{spec/mod/standard → mod/05_standard/spec}/set/type/date_spec.rb +0 -0
  374. data/mod/05_standard/spec/set/type/email_template_spec.rb +130 -0
  375. data/{spec/mod/standard → mod/05_standard/spec}/set/type/file_spec.rb +0 -0
  376. data/{spec/mod/standard → mod/05_standard/spec}/set/type/html_spec.rb +3 -3
  377. data/{spec/mod/standard → mod/05_standard/spec}/set/type/image_spec.rb +1 -1
  378. data/{spec/mod/standard → mod/05_standard/spec}/set/type/layout_type_spec.rb +1 -1
  379. data/{spec/mod/standard → mod/05_standard/spec}/set/type/number_spec.rb +0 -0
  380. data/{spec/mod/standard → mod/05_standard/spec}/set/type/phrase_spec.rb +0 -0
  381. data/mod/05_standard/spec/set/type/search_type_spec.rb +27 -0
  382. data/mod/05_standard/spec/set/type/set_spec.rb +26 -0
  383. data/mod/05_standard/spec/set/type/signup_spec.rb +209 -0
  384. data/{spec/mod/standard → mod/05_standard/spec}/set/type/toggle_spec.rb +2 -2
  385. data/{spec/mod/standard → mod/05_standard/spec}/set/type/user_spec.rb +0 -0
  386. data/mod/{standard → 06_email}/format/email_html_format.rb +0 -0
  387. data/mod/06_email/format/email_text_format.rb +7 -0
  388. data/mod/06_email/set/all/email_html.rb +9 -0
  389. data/mod/{standard/set/all/email_html.rb → 06_email/set/all/email_text.rb} +2 -1
  390. data/mod/06_email/set/right/bcc.rb +31 -0
  391. data/mod/06_email/set/right/cc.rb +2 -0
  392. data/mod/06_email/set/right/from.rb +2 -0
  393. data/mod/06_email/set/right/html_message.rb +3 -0
  394. data/mod/06_email/set/right/to.rb +2 -0
  395. data/mod/06_email/set/type/email_template.rb +99 -0
  396. data/spec/controllers/card_controller_spec.rb +34 -46
  397. data/spec/lib/card/action_spec.rb +14 -0
  398. data/spec/lib/card/chunk_spec.rb +3 -3
  399. data/spec/lib/card/codename_spec.rb +5 -5
  400. data/spec/lib/card/content_spec.rb +25 -25
  401. data/spec/lib/card/diff_spec.rb +107 -107
  402. data/spec/lib/card/format_spec.rb +11 -11
  403. data/spec/lib/card/loader_spec.rb +35 -29
  404. data/spec/lib/card/name_spec.rb +82 -82
  405. data/spec/lib/card/query_spec.rb +83 -82
  406. data/spec/lib/card/reference_spec.rb +30 -30
  407. data/spec/lib/card/set_pattern_spec.rb +1 -1
  408. data/spec/lib/card/set_spec.rb +86 -82
  409. data/spec/lib/wagn/cache_spec.rb +24 -24
  410. data/spec/mailers/mailer_spec.rb +41 -30
  411. data/spec/models/card/cardtype_spec.rb +19 -19
  412. data/spec/models/card/create_spec.rb +14 -14
  413. data/spec/models/card/trash_spec.rb +37 -36
  414. data/spec/models/card/type_transition_spec.rb +13 -13
  415. data/spec/models/card/validation_spec.rb +6 -6
  416. data/spec/models/card_spec.rb +40 -39
  417. data/spec/spec_helper.rb +37 -11
  418. data/test/fixtures/card_actions.yml +4726 -0
  419. data/test/fixtures/card_acts.yml +589 -0
  420. data/test/fixtures/card_changes.yml +12644 -0
  421. data/test/fixtures/card_references.yml +976 -591
  422. data/test/fixtures/cards.yml +4544 -2781
  423. data/test/seed.rb +14 -13
  424. data/wagn.gemspec +4 -0
  425. metadata +404 -403
  426. data/db/bootstrap/card_revisions.yml +0 -3379
  427. data/lib/card/flexmail.rb +0 -53
  428. data/lib/card/mailer/change_notice.html.erb +0 -32
  429. data/lib/card/mailer/confirmation_email.html.erb +0 -12
  430. data/lib/card/mailer/flexmail.html.erb +0 -6
  431. data/lib/card/mailer/password_reset.html.erb +0 -9
  432. data/lib/card/mailer/signup_alert.html.erb +0 -14
  433. data/lib/card/revision.rb +0 -47
  434. data/lib/wagn/migration_helper.rb +0 -34
  435. data/mod/core/set/all/attribute_tracking.rb +0 -85
  436. data/mod/core/set/all/content.rb +0 -94
  437. data/mod/standard/set/all/flexmail.rb +0 -3
  438. data/mod/standard/set/all/follow.rb +0 -119
  439. data/mod/standard/set/all/history.rb +0 -107
  440. data/mod/standard/set/right/add_help.rb +0 -3
  441. data/mod/standard/set/right/default.rb +0 -3
  442. data/mod/standard/set/right/help.rb +0 -3
  443. data/spec/lib/card/flexmail_spec.rb +0 -209
  444. data/spec/lib/card/revision_spec.rb +0 -30
  445. data/spec/mod/core/chunk/literal_spec.rb +0 -14
  446. data/spec/mod/core/set/all/attribute_tracking_spec.rb +0 -21
  447. data/spec/mod/core/set/all/collection_spec.rb +0 -45
  448. data/spec/mod/core/set/all/content_spec.rb +0 -14
  449. data/spec/mod/core/set/all/rules_spec.rb +0 -98
  450. data/spec/mod/standard/chunk/link_spec.rb +0 -59
  451. data/spec/mod/standard/set/all/email_html_spec.rb +0 -13
  452. data/spec/mod/standard/set/all/flexmail_spec.rb +0 -5
  453. data/spec/mod/standard/set/all/follow_spec.rb +0 -95
  454. data/spec/mod/standard/set/all/history_spec.rb +0 -10
  455. data/spec/mod/standard/set/right/account_spec.rb +0 -90
  456. data/spec/mod/standard/set/type/search_type_spec.rb +0 -27
  457. data/spec/mod/standard/set/type/set_spec.rb +0 -26
  458. data/spec/mod/standard/set/type/signup_spec.rb +0 -169
  459. data/test/fixtures/card_revisions.yml +0 -4560
File without changes
@@ -43,7 +43,7 @@ def permission_rule_card action
43
43
  end
44
44
 
45
45
  rcard = Auth.as_bot do
46
- if ['_left','[[_left]]'].member?(opcard.content) && self.junction? # compound cards can inherit permissions from left parent
46
+ if ['_left','[[_left]]'].member?(opcard.db_content) && self.junction? # compound cards can inherit permissions from left parent
47
47
  lcard = left_or_new( :skip_virtual=>true, :skip_modules=>true )
48
48
  if action==:create && lcard.real? && !lcard.action==:create
49
49
  action = :update
@@ -10,6 +10,9 @@
10
10
  def abort status, msg='action canceled'
11
11
  if status == :failure && errors.empty?
12
12
  errors.add :abort, msg
13
+ elsif Hash === status and status[:success]
14
+ Env.params[:success] = status[:success]
15
+ status = :success
13
16
  end
14
17
  raise Card::Abort.new( status, msg)
15
18
  end
@@ -20,8 +23,11 @@ def abortable
20
23
  rescue Card::Abort => e
21
24
  if e.status == :triumph
22
25
  @supercard ? raise( e ) : true
23
- else
24
- e.status == :success
26
+ elsif e.status == :success
27
+ if @supercard
28
+ @supercard.subcards.delete_if { |k,v| v==self }
29
+ end
30
+ true
25
31
  end
26
32
  end
27
33
 
@@ -45,11 +51,9 @@ end
45
51
 
46
52
  def approve
47
53
  @action = identify_action
48
-
49
54
  # the following should really happen when type, name etc are changed
50
55
  reset_patterns
51
56
  include_set_modules
52
-
53
57
  run_callbacks :approve
54
58
  expire_pieces if errors.any?
55
59
  errors.empty?
@@ -65,9 +69,23 @@ def identify_action
65
69
  end
66
70
  end
67
71
 
72
+ def store_changes
73
+ @changed_fields = Card::TRACKED_FIELDS.select{ |f| changed_attributes.member? f }
74
+ return unless @current_action
75
+ if @changed_fields.present?
76
+ #@changed_fields.each{ |f| @current_action.changes.build :field => f, :value => self[f] }
77
+ @changed_fields.each{ |f| Card::Change.create :field => f, :value => self[f], :card_action_id=>@current_action.id }
78
+ elsif @current_action and @current_action.changes.empty?
79
+ @current_action.delete
80
+ end
81
+ end
82
+
83
+
84
+
68
85
  def store
69
86
  run_callbacks :store do
70
- yield
87
+ yield #unless @draft
88
+ store_changes
71
89
  @virtual = false
72
90
  end
73
91
  rescue =>e
@@ -78,7 +96,6 @@ end
78
96
 
79
97
 
80
98
  def extend
81
- # puts "extend called"
82
99
  run_callbacks :extend
83
100
  rescue =>e
84
101
  rescue_event e
@@ -118,7 +135,6 @@ end
118
135
 
119
136
 
120
137
  event :process_subcards, :after=>:approve, :on=>:save do
121
-
122
138
  subcards.keys.each do |sub_name|
123
139
  opts = @subcards[sub_name] || {}
124
140
  opts = { 'content' => opts } if String===opts
@@ -158,7 +174,7 @@ end
158
174
 
159
175
  event :store_subcards, :after=>:store do
160
176
  subcards.each do |key, sub|
161
- sub.save! :validate=>false
177
+ sub.save! :validate=>false #unless @draft
162
178
  end
163
179
  end
164
180
 
@@ -10,7 +10,7 @@ def extended_referencers
10
10
  end
11
11
 
12
12
  def replace_references old_name, new_name
13
- obj_content = Card::Content.new content, card=self
13
+ obj_content = Card::Content.new raw_content, card=self
14
14
 
15
15
  obj_content.find_chunks( Card::Chunk::Reference ).select do |chunk|
16
16
  if old_ref_name = chunk.referee_name and new_ref_name = old_ref_name.replace_part(old_name, new_name)
@@ -36,7 +36,7 @@ def update_references rendered_content = nil, refresh = false
36
36
  # references_expired = nil
37
37
  expire if refresh
38
38
 
39
- rendered_content ||= Card::Content.new(content, card=self)
39
+ rendered_content ||= Card::Content.new(raw_content, card=self)
40
40
 
41
41
  rendered_content.find_chunks(Card::Chunk::Reference).each do |chunk|
42
42
  if referee_name = chunk.referee_name # name is referenced (not true of commented inclusions)
@@ -23,7 +23,7 @@ end
23
23
  def rule setting_code, options={}
24
24
  options[:skip_modules] = true
25
25
  card = rule_card setting_code, options
26
- card && card.content
26
+ card && card.db_content
27
27
  end
28
28
 
29
29
  def rule_card setting_code, options={}
@@ -58,7 +58,7 @@ module ClassMethods
58
58
 
59
59
  def setting name
60
60
  Auth.as_bot do
61
- card=Card[name] and !card.content.strip.empty? and card.content
61
+ card=Card[name] and !card.db_content.strip.empty? and card.db_content
62
62
  end
63
63
  end
64
64
 
@@ -12,5 +12,5 @@ end
12
12
 
13
13
  def pristine?
14
14
  # has not been edited directly by human users. bleep blorp.
15
- new_card? or !revisions.map(&:creator_id).find { |id| id != Card::WagnBotID }
15
+ new_card? or actions.joins(:act).where('card_acts.actor_id != ?', Card::WagnBotID).exists?
16
16
  end
@@ -19,13 +19,13 @@ def template
19
19
  dup_card.type_id = default_card ? default_card.type_id : Card.default_type_id
20
20
 
21
21
 
22
- if content_card = dup_card.content_rule_card
22
+ if content_card = dup_card.structure_rule_card
23
23
  @virtual = true if junction?
24
24
  content_card
25
25
  else
26
26
  default_card
27
27
  end
28
- elsif tmpl = content_rule_card
28
+ elsif tmpl = structure_rule_card
29
29
  # this is a mechanism for repairing bad data. like #repair_key, it should be obviated and removed.
30
30
  if type_id != tmpl.type_id and tmpl.assigns_type?
31
31
  repair_type tmpl.type_id
@@ -49,9 +49,9 @@ def virtual?
49
49
  @virtual
50
50
  end
51
51
 
52
- def content_rule_card
52
+ def structure_rule_card
53
53
  card = rule_card :structure, :skip_modules=>true
54
- card && card.content.strip == '_self' ? nil : card
54
+ card && card.db_content.strip == '_self' ? nil : card
55
55
  end
56
56
 
57
57
  def structuree_names
@@ -1,15 +1,3 @@
1
-
2
- event :set_tracked_attributes, :before=>:store, :on=>:save do
3
- updates.each_pair do |attrib, value|
4
- if send("set_#{attrib}", value )
5
- updates.clear attrib
6
- end
7
- @changed ||={}; @changed[attrib.to_sym]=true
8
- end
9
- #Rails.logger.debug "Card(#{name})#set_tracked_attributes end"
10
- end
11
-
12
-
13
1
  #fixme -this is called by both initialize and update_attributes. really should be optimized for new!
14
2
  def assign_attributes args={}, options={}
15
3
  if args
@@ -23,7 +11,6 @@ def assign_attributes args={}, options={}
23
11
  super args, options
24
12
  end
25
13
 
26
-
27
14
  def extract_subcard_args! args={}
28
15
  extracted_subcards = args.delete('subcards') || {}
29
16
  args.keys.each do |key|
@@ -37,43 +24,14 @@ def extract_subcard_args! args={}
37
24
  end
38
25
 
39
26
 
40
-
41
27
  protected
42
28
 
43
-
44
-
45
-
46
- def set_content new_content
47
- if self.id #have to have this to create revision
48
- new_content ||= ''
49
- new_content = Card::Content.clean! new_content if clean_html?
50
- clear_drafts if current_revision_id
51
- new_rev = Card::Revision.create :card_id=>self.id, :content=>new_content, :creator_id =>Auth.current_id
52
- self.current_revision_id = new_rev.id
53
- self.selected_revision_id = nil
54
- reset_patterns_if_rule saving=true
55
- @name_or_content_changed = true
56
- else
57
- false
58
- end
59
- end
60
-
61
-
62
-
63
- event :set_initial_content, :after=>:store, :on=>:create do
64
- #Rails.logger.info "Card(#{inspect})#set_initial_content start #{content_without_tracking}"
65
- # set_content bails out if we call it on a new record because it needs the
66
- # card id to create the revision. call it again now that we have the id.
67
-
68
- #Rails.logger.warn "si cont #{content} #{updates.for?(:content).inspect}, #{updates[:content]}"
69
- unless @from_trash
70
- set_content updates[:content] # if updates.for?(:content)
71
-
72
- updates.clear :content
73
-
74
- Card.where(:id=>id).update_all(:current_revision_id => current_revision_id)
75
- end
76
- #Rails.logger.info "set_initial_content #{content}, #{@current_revision_id}, s.#{self.current_revision_id} #{inspect}"
29
+ event :set_content, :before=>:store, :on=>:save do
30
+ self.db_content = content || '' #necessary?
31
+ self.db_content = Card::Content.clean! self.db_content if clean_html?
32
+ self.selected_action_id = nil
33
+ clear_drafts
34
+ reset_patterns_if_rule saving=true
77
35
  end
78
36
 
79
37
 
@@ -85,17 +43,8 @@ event :update_ruled_cards, :after=>:store do
85
43
  self.class.clear_rule_cache
86
44
  left.reset_set_patterns
87
45
 
88
- if right_id==Card::ReadID && (@name_or_content_changed || ([:create, :delete].member? @action) )
89
- # These instance vars are messy. should use tracked attributes' @changed variable
90
- # and get rid of @name_changed, @name_or_content_changed, and @child.
91
- # Above should look like [:name, :content, :trash].member?( @changed.keys ).
92
- # To implement that, we need to make sure @changed actually tracks trash
93
- # (though maybe not as a tracked_attribute for performance reasons?)
94
- # AND need to make sure @changed gets wiped after save (probably last in the sequence)
95
-
46
+ if right_id==Card::ReadID and (name_changed? or trash_changed?)
96
47
  self.class.clear_read_rule_cache
97
-
98
- # Auth.cache.reset
99
48
  Card.cache.reset # maybe be more surgical, just Auth.user related
100
49
  expire #probably shouldn't be necessary,
101
50
  # but was sometimes getting cached version when card should be in the trash.
@@ -113,13 +62,15 @@ event :update_ruled_cards, :after=>:store do
113
62
  # Why isn't this just 'trunk', do we need the fetch?
114
63
  Card.fetch(cardname.trunk_name).item_cards(:limit=>0).each do |item_card|
115
64
  in_set[item_card.key] = true
116
- next if cur_index > rule_class_index
117
- item_card.update_read_rule
65
+ next if cur_index < rule_class_index
66
+ if cur_index >= rule_class_index
67
+ item_card.update_read_rule
68
+ end
118
69
  end
119
- elsif rule_class_index = rule_class_ids.index( 0 )
120
- in_set[trunk.key] = true
121
- #warn "self rule update: #{trunk.inspect}, #{rule_class_index}, #{cur_index}"
122
- trunk.update_read_rule if cur_index > rule_class_index
70
+ # elsif rule_class_index = rule_class_ids.index( 0 )
71
+ # in_set[trunk.key] = true
72
+ # #warn "self rule update: #{trunk.inspect}, #{rule_class_index}, #{cur_index}"
73
+ # trunk.update_read_rule if cur_index > rule_class_index
123
74
  else warn "No current rule index #{class_id}, #{rule_class_ids.inspect}"
124
75
  end
125
76
  end
@@ -1,9 +1,9 @@
1
1
  def delete
2
- update_attributes :trash => true
2
+ update_attributes :trash => true unless new_card?
3
3
  end
4
4
 
5
5
  def delete!
6
- update_attributes! :trash => true
6
+ update_attributes! :trash => true unless new_card?
7
7
  end
8
8
 
9
9
 
@@ -31,13 +31,14 @@ event :validate_delete, :before=>:approve, :on=>:delete do
31
31
  errors.add :delete, "#{name} is an indestructible rule"
32
32
  end
33
33
 
34
- if account && Card::Revision.find_by_creator_id( self.id )
35
- errors.add :delete, "Edits have been made with #{name}'s user account.\n Deleting this card would mess up our revision records."
36
- end
34
+ # if account && Card::Revision.find_by_creator_id( self.id ) #ask ethan
35
+ # errors.add :delete, "Edits have been made with #{name}'s user account.\n Deleting this card would mess up our revision records."
36
+ # end
37
37
  end
38
38
 
39
39
  event :validate_delete_children, :after=>:approve, :on=>:delete do
40
40
  children.each do |child|
41
+ child.supercard = self
41
42
  subcards[child.name]=child
42
43
  child.trash = true
43
44
  unless child.valid?
File without changes
@@ -3,7 +3,7 @@ module ClassMethods
3
3
 
4
4
  def empty_trash
5
5
  Card.where(:trash=>true).delete_all
6
- Card::Revision.delete_cardless
6
+ Card::Action.delete_cardless
7
7
  Card::Reference.repair_missing_referees
8
8
  Card.delete_trashed_files
9
9
  end
@@ -0,0 +1,14 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ describe Card::Chunk::EscapedLiteral, "literal chunk tests" do
4
+
5
+ it "should handle escaped link" do
6
+ expect(render_content('write this: \[[text]]')).to eq('write this: <span>[</span>[text]]')
7
+ end
8
+
9
+ it "should handle escaped inclusion" do
10
+ expect(render_content('write this: \{{cardname}}')).to eq('write this: <span>{</span>{cardname}}')
11
+ end
12
+
13
+ end
14
+
@@ -267,19 +267,19 @@ describe Card::Chunk::URI, "URI chunk tests" do
267
267
  # Asserts a number of tests for the given type and text.
268
268
  def no_match(type, test_text)
269
269
  test_cont = Card::Content.new(test_text, DUMMY_CARD)
270
- ( ((test_cont.respond_to? :each) ? test_cont : [test_cont]).find{|ck| type===ck } ).should be_nil
270
+ expect( ((test_cont.respond_to? :each) ? test_cont : [test_cont]).find{|ck| type===ck } ).to be_nil
271
271
  end
272
272
 
273
273
  def aa_match(type, test_text)
274
274
  test_cont = Card::Content.new(test_text, DUMMY_CARD)
275
- ( ((test_cont.respond_to? :each) ? test_cont : [test_cont]).find{|ck| type===ck } ).should_not be_nil
275
+ expect( ((test_cont.respond_to? :each) ? test_cont : [test_cont]).find{|ck| type===ck } ).not_to be_nil
276
276
  end
277
277
 
278
278
  def match_chunk(type, test_text, expected)
279
279
  test_cont = Card::Content.new(test_text, DUMMY_CARD)
280
280
  chunk = ((test_cont.respond_to? :each) ? test_cont : [test_cont]).find{ |ck| type===ck }
281
281
  #warn "chunk? #{chunk.inspect}"
282
- chunk.should_not be_nil
282
+ expect(chunk).not_to be_nil
283
283
 
284
284
  expected.each_pair do |method_sym, value|
285
285
  #assert_respond_to(chunk, method_sym)
@@ -115,7 +115,7 @@ describe Card::HtmlFormat do
115
115
  @layout_card.content = "Hi {{A}}"
116
116
  Card::Auth.as_bot { @layout_card.save }
117
117
 
118
- @main_card.format.render(:layout).should match('Hi Alpha')
118
+ expect(@main_card.format.render(:layout)).to match('Hi Alpha')
119
119
  end
120
120
 
121
121
  it "should default to open view for main card" do
@@ -123,9 +123,9 @@ describe Card::HtmlFormat do
123
123
  Card::Auth.as_bot { @layout_card.save }
124
124
 
125
125
  result = @main_card.format.render_layout
126
- result.should match(/Open up/)
127
- result.should match(/card-header/)
128
- result.should match(/Joe User/)
126
+ expect(result).to match(/Open up/)
127
+ expect(result).to match(/card-header/)
128
+ expect(result).to match(/Joe User/)
129
129
  end
130
130
 
131
131
  it "should render custom view of main" do
@@ -133,16 +133,17 @@ describe Card::HtmlFormat do
133
133
  Card::Auth.as_bot { @layout_card.save }
134
134
 
135
135
  result = @main_card.format.render_layout
136
- result.should match(/Hey.*div.*Joe User/)
137
- result.should_not match(/card-header/)
136
+ expect(result).to match(/Hey.*div.*Joe User/)
137
+ expect(result).not_to match(/card-header/)
138
138
  end
139
139
 
140
140
  it "shouldn't recurse" do
141
141
  @layout_card.content="Mainly {{_main|core}}"
142
142
  Card::Auth.as_bot { @layout_card.save }
143
143
 
144
- rendered = @layout_card.format.render(:layout).should ==
144
+ rendered = expect(@layout_card.format.render(:layout)).to eq(
145
145
  %{Mainly <div id="main"><div class="CodeRay">\n <div class="code"><pre>Mainly {{_main|core}}</pre></div>\n</div>\n</div>}
146
+ )
146
147
  #probably better to check that it matches "Mainly" exactly twice.
147
148
  end
148
149
 
@@ -154,7 +155,7 @@ describe Card::HtmlFormat do
154
155
  Card.create :name=>"outer space", :content=>"{{_main|name}}"
155
156
  end
156
157
 
157
- @layout_card.format.render(:layout).should == 'Joe User'
158
+ expect(@layout_card.format.render(:layout)).to eq('Joe User')
158
159
  end
159
160
  end
160
161
 
@@ -0,0 +1,21 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ # describe Card::Set::All::AttributeTracking do
4
+ # context "new card" do
5
+ # before(:each) do
6
+ # Card::Auth.as_bot do
7
+ # @c = Card.new :name=>"New Card", :content=>"Great Content"
8
+ # end
9
+ # end
10
+ #
11
+ # it "should have updates" do
12
+ # described_class::Updates.should === @c.updates
13
+ # end
14
+ #
15
+ # it "should track changes" do
16
+ # @c.name.should == 'New Card'
17
+ # @c.name = 'Old Card'
18
+ # @c.name.should == 'Old Card'
19
+ # end
20
+ # end
21
+ # end