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
@@ -5,73 +5,73 @@ describe Card::Name do
5
5
  describe "#key" do
6
6
 
7
7
  it "should lowercase and underscore" do
8
- "This Name".to_name.key.should == "this_name"
8
+ expect("This Name".to_name.key).to eq("this_name")
9
9
  end
10
10
 
11
11
  it "should remove spaces" do
12
- "this Name".to_name.key.should == "this_name"
12
+ expect("this Name".to_name.key).to eq("this_name")
13
13
  end
14
14
 
15
15
  describe "underscores" do
16
16
 
17
17
  it "should be treated like spaces" do
18
- 'weird_ combo'.to_name.key.should == 'weird combo'.to_name.key
18
+ expect('weird_ combo'.to_name.key).to eq('weird combo'.to_name.key)
19
19
  end
20
20
 
21
21
  it "should not impede pluralization checks" do
22
- 'Mamas_and_Papas'.to_name.key.should == "Mamas and Papas".to_name.key
22
+ expect('Mamas_and_Papas'.to_name.key).to eq("Mamas and Papas".to_name.key)
23
23
  end
24
24
 
25
25
  it "should be removed when before first word character" do
26
- "_This Name".to_name.key.should == "this_name"
26
+ expect("_This Name".to_name.key).to eq("this_name")
27
27
  end
28
28
 
29
29
  end
30
30
 
31
31
  it "should singularize" do
32
- "ethans".to_name.key.should == "ethan"
32
+ expect("ethans".to_name.key).to eq("ethan")
33
33
  end
34
34
 
35
35
  it "should change CamelCase to snake case" do
36
- "ThisThing".to_name.key.should == "this_thing"
36
+ expect("ThisThing".to_name.key).to eq("this_thing")
37
37
  end
38
38
 
39
39
  it "should handle plus cards" do
40
- "ThisThing+Ethans".to_name.key.should == "this_thing+ethan"
40
+ expect("ThisThing+Ethans".to_name.key).to eq("this_thing+ethan")
41
41
  end
42
42
 
43
43
  it "should retain * for star cards" do
44
- "*right".to_name.key.should == "*right"
44
+ expect("*right".to_name.key).to eq("*right")
45
45
  end
46
46
 
47
47
  it "should not singularize double s's" do
48
- "grass".to_name.key.should == 'grass'
48
+ expect("grass".to_name.key).to eq('grass')
49
49
  end
50
50
 
51
51
  it "should not singularize letter 'S'" do
52
- 'S'.to_name.key.should == 's'
52
+ expect('S'.to_name.key).to eq('s')
53
53
  end
54
54
 
55
55
  it "should handle unicode characters" do
56
- "Mañana".to_name.key.should == 'mañana'
56
+ expect("Mañana".to_name.key).to eq('mañana')
57
57
  end
58
58
 
59
59
  it "should handle weird initial characters" do
60
- '__you motha @#$'.to_name.key.should == 'you_motha'
61
- '?!_you motha @#$'.to_name.key.should == 'you_motha'
60
+ expect('__you motha @#$'.to_name.key).to eq('you_motha')
61
+ expect('?!_you motha @#$'.to_name.key).to eq('you_motha')
62
62
  end
63
63
 
64
64
  it "should allow numbers" do
65
- "3way".to_name.key.should == '3way'
65
+ expect("3way".to_name.key).to eq('3way')
66
66
  end
67
67
 
68
68
  it "internal plurals" do
69
- "cards hooks label foos".to_name.key.should == 'card_hook_label_foo'
69
+ expect("cards hooks label foos".to_name.key).to eq('card_hook_label_foo')
70
70
  end
71
71
 
72
72
  it "should handle html entities" do
73
73
  # This no longer takes off the s, is singularize broken now?
74
- "Jean-françois Noubel".to_name.key.should == 'jean_françoi_noubel'
74
+ expect("Jean-françois Noubel".to_name.key).to eq('jean_françoi_noubel')
75
75
  end
76
76
  end
77
77
 
@@ -86,193 +86,193 @@ describe Card::Name do
86
86
  it "should have the same key as the name" do
87
87
  k, k2 = cardname.key, cardname.url_key
88
88
  #warn "cn tok #{cardname.inspect}, #{k.inspect}, #{k2.inspect}"
89
- k.should == k2.to_name.key
89
+ expect(k).to eq(k2.to_name.key)
90
90
  end
91
91
  end
92
92
  end
93
93
 
94
94
  describe "#valid" do
95
95
  it "accepts valid names" do
96
- "this+THAT".to_name.should be_valid
97
- "THE*ONE*AND$!ONLY".to_name.should be_valid
96
+ expect("this+THAT".to_name).to be_valid
97
+ expect("THE*ONE*AND$!ONLY".to_name).to be_valid
98
98
  end
99
99
 
100
100
  it "rejects invalid names" do
101
101
  # "Tes~sd".to_name.should_not be_valid
102
- "TEST/DDER".to_name.should_not be_valid
102
+ expect("TEST/DDER".to_name).not_to be_valid
103
103
  end
104
104
 
105
105
  it "rejects long names" do
106
106
  card = Card.new
107
107
  card.name="1"*256
108
- card.should_not be_valid
108
+ expect(card).not_to be_valid
109
109
  end
110
110
  end
111
111
 
112
112
  describe "#left_name" do
113
113
  it "returns nil for non junction" do
114
- "a".to_name.left_name.should == nil
114
+ expect("a".to_name.left_name).to eq(nil)
115
115
  end
116
116
 
117
117
  it "returns parent for parent" do
118
- "a+b+c+d".to_name.left_name.should == "a+b+c"
118
+ expect("a+b+c+d".to_name.left_name).to eq("a+b+c")
119
119
  end
120
120
  end
121
121
 
122
122
  describe "#tag_name" do
123
123
  it "returns last part of plus card" do
124
- "a+b+c".to_name.tag.should == "c"
124
+ expect("a+b+c".to_name.tag).to eq("c")
125
125
  end
126
126
 
127
127
  it "returns name of simple card" do
128
- "a".to_name.tag.should == "a"
128
+ expect("a".to_name.tag).to eq("a")
129
129
  end
130
130
  end
131
131
 
132
132
  describe "#safe_key" do
133
133
  it "subs pluses & stars" do
134
- "Alpha?+*be-ta".to_name.safe_key.should == "alpha-Xbe_tum"
134
+ expect("Alpha?+*be-ta".to_name.safe_key).to eq("alpha-Xbe_tum")
135
135
  end
136
136
  end
137
137
 
138
138
  describe "#replace_part" do
139
139
  it "replaces first name part" do
140
- 'a+b'.to_name.replace_part('a','x').to_s.should == 'x+b'
140
+ expect('a+b'.to_name.replace_part('a','x').to_s).to eq('x+b')
141
141
  end
142
142
  it "replaces second name part" do
143
- 'a+b'.to_name.replace_part('b','x').to_s.should == 'a+x'
143
+ expect('a+b'.to_name.replace_part('b','x').to_s).to eq('a+x')
144
144
  end
145
145
  it "replaces two name parts" do
146
- 'a+b+c' .to_name.replace_part('a+b', 'x' ).to_s.should == 'x+c'
147
- 'a+b+c+d'.to_name.replace_part('a+b', 'e+f').to_s.should == 'e+f+c+d'
146
+ expect('a+b+c' .to_name.replace_part('a+b', 'x' ).to_s).to eq('x+c')
147
+ expect('a+b+c+d'.to_name.replace_part('a+b', 'e+f').to_s).to eq('e+f+c+d')
148
148
  end
149
149
  it "doesn't replace two part tag" do
150
- 'a+b+c'.to_name.replace_part('b+c','x').to_s.should == 'a+b+c'
150
+ expect('a+b+c'.to_name.replace_part('b+c','x').to_s).to eq('a+b+c')
151
151
  end
152
152
  end
153
153
 
154
154
  describe "Cardnames star handling" do
155
155
  it "recognizes star cards" do
156
- '*a'.to_name.star?.should be_true
156
+ expect('*a'.to_name.star?).to be_truthy
157
157
  end
158
158
 
159
159
  it "doesn't recognize star cards with plusses" do
160
- '*a+*b'.to_name.star?.should be_false
160
+ expect('*a+*b'.to_name.star?).to be_falsey
161
161
  end
162
162
 
163
163
  it "recognizes rstar cards" do
164
- 'a+*a'.to_name.rstar?.should be_true
164
+ expect('a+*a'.to_name.rstar?).to be_truthy
165
165
  end
166
166
 
167
167
  it "doesn't recognize star cards as rstar" do
168
- '*a'.to_name.rstar?.should be_false
168
+ expect('*a'.to_name.rstar?).to be_falsey
169
169
  end
170
170
 
171
171
  it "doesn't recognize non-star or star left" do
172
- '*a+a'.to_name.rstar?.should be_false
172
+ expect('*a+a'.to_name.rstar?).to be_falsey
173
173
  end
174
174
  end
175
175
 
176
176
  describe "trait_name?" do
177
177
  it "returns true for content codename" do
178
- "bazoinga+*right+*structure".to_name.trait_name?(:structure).should be_true
178
+ expect("bazoinga+*right+*structure".to_name.trait_name?(:structure)).to be_truthy
179
179
  end
180
180
 
181
181
  it "handles arrays" do
182
- "bazoinga+*right+*structure".to_name.trait_name?(:structure, :default).should be_true
182
+ expect("bazoinga+*right+*structure".to_name.trait_name?(:structure, :default)).to be_truthy
183
183
  end
184
184
 
185
185
  it "returns false for non-template" do
186
- "bazoinga+*right+nontent".to_name.trait_name?(:structure).should be_false
186
+ expect("bazoinga+*right+nontent".to_name.trait_name?(:structure)).to be_falsey
187
187
  end
188
188
  end
189
189
 
190
190
  describe "#to_absolute" do
191
191
  it "handles _self, _whole, _" do
192
- "_self".to_name.to_absolute("foo").should == "foo"
193
- "_whole".to_name.to_absolute("foo").should == "foo"
194
- "_".to_name.to_absolute("foo").should == "foo"
192
+ expect("_self".to_name.to_absolute("foo")).to eq("foo")
193
+ expect("_whole".to_name.to_absolute("foo")).to eq("foo")
194
+ expect("_".to_name.to_absolute("foo")).to eq("foo")
195
195
  end
196
196
 
197
197
  it "handles _left" do
198
- "_left+Z".to_name.to_absolute("A+B+C").should == "A+B+Z"
198
+ expect("_left+Z".to_name.to_absolute("A+B+C")).to eq("A+B+Z")
199
199
  end
200
200
 
201
201
  it "handles white space" do
202
- "_left + Z".to_name.to_absolute("A+B+C").should == "A+B+Z"
202
+ expect("_left + Z".to_name.to_absolute("A+B+C")).to eq("A+B+Z")
203
203
  end
204
204
 
205
205
  it "handles _right" do
206
- "_right+bang".to_name.to_absolute("nutter+butter").should == "butter+bang"
207
- "C+_right".to_name.to_absolute("B+A").should == "C+A"
206
+ expect("_right+bang".to_name.to_absolute("nutter+butter")).to eq("butter+bang")
207
+ expect("C+_right".to_name.to_absolute("B+A")).to eq("C+A")
208
208
  end
209
209
 
210
210
  it "handles leading +" do
211
- "+bug".to_name.to_absolute("hum").should == "hum+bug"
211
+ expect("+bug".to_name.to_absolute("hum")).to eq("hum+bug")
212
212
  end
213
213
 
214
214
  it "handles trailing +" do
215
- "bug+".to_name.to_absolute("tracks").should == "bug+tracks"
215
+ expect("bug+".to_name.to_absolute("tracks")).to eq("bug+tracks")
216
216
  end
217
217
 
218
218
  it "handles _(numbers)" do
219
- "_1".to_name.to_absolute("A+B+C").should == "A"
220
- "_1+_2".to_name.to_absolute("A+B+C").should == "A+B"
221
- "_2+_3".to_name.to_absolute("A+B+C").should == "B+C"
219
+ expect("_1".to_name.to_absolute("A+B+C")).to eq("A")
220
+ expect("_1+_2".to_name.to_absolute("A+B+C")).to eq("A+B")
221
+ expect("_2+_3".to_name.to_absolute("A+B+C")).to eq("B+C")
222
222
  end
223
223
 
224
224
  it "handles _LLR etc" do
225
- "_R".to_name.to_absolute("A+B+C+D+E").should == "E"
226
- "_L".to_name.to_absolute("A+B+C+D+E").should == "A+B+C+D"
227
- "_LR".to_name.to_absolute("A+B+C+D+E").should == "D"
228
- "_LL".to_name.to_absolute("A+B+C+D+E").should == "A+B+C"
229
- "_LLR".to_name.to_absolute("A+B+C+D+E").should == "C"
230
- "_LLL".to_name.to_absolute("A+B+C+D+E").should == "A+B"
231
- "_LLLR".to_name.to_absolute("A+B+C+D+E").should == "B"
232
- "_LLLL".to_name.to_absolute("A+B+C+D+E").should == "A"
225
+ expect("_R".to_name.to_absolute("A+B+C+D+E")).to eq("E")
226
+ expect("_L".to_name.to_absolute("A+B+C+D+E")).to eq("A+B+C+D")
227
+ expect("_LR".to_name.to_absolute("A+B+C+D+E")).to eq("D")
228
+ expect("_LL".to_name.to_absolute("A+B+C+D+E")).to eq("A+B+C")
229
+ expect("_LLR".to_name.to_absolute("A+B+C+D+E")).to eq("C")
230
+ expect("_LLL".to_name.to_absolute("A+B+C+D+E")).to eq("A+B")
231
+ expect("_LLLR".to_name.to_absolute("A+B+C+D+E")).to eq("B")
232
+ expect("_LLLL".to_name.to_absolute("A+B+C+D+E")).to eq("A")
233
233
  end
234
234
 
235
235
  context "mismatched requests" do
236
236
  it "returns _self for _left or _right on simple cards" do
237
- "_left+Z".to_name.to_absolute("A").should == "A+Z"
238
- "_right+Z".to_name.to_absolute("A").should == "A+Z"
237
+ expect("_left+Z".to_name.to_absolute("A")).to eq("A+Z")
238
+ expect("_right+Z".to_name.to_absolute("A")).to eq("A+Z")
239
239
  end
240
240
 
241
241
  it "handles bogus numbers" do
242
- "_1".to_name.to_absolute("A").should == "A"
243
- "_1+_2".to_name.to_absolute("A").should == "A+A"
244
- "_2+_3".to_name.to_absolute("A").should == "A+A"
242
+ expect("_1".to_name.to_absolute("A")).to eq("A")
243
+ expect("_1+_2".to_name.to_absolute("A")).to eq("A+A")
244
+ expect("_2+_3".to_name.to_absolute("A")).to eq("A+A")
245
245
  end
246
246
 
247
247
  it "handles bogus _llr requests" do
248
- "_R".to_name.to_absolute("A").should == "A"
249
- "_L".to_name.to_absolute("A").should == "A"
250
- "_LR".to_name.to_absolute("A").should == "A"
251
- "_LL".to_name.to_absolute("A").should == "A"
252
- "_LLR".to_name.to_absolute("A").should == "A"
253
- "_LLL".to_name.to_absolute("A").should == "A"
254
- "_LLLR".to_name.to_absolute("A").should == "A"
255
- "_LLLL".to_name.to_absolute("A").should == "A"
248
+ expect("_R".to_name.to_absolute("A")).to eq("A")
249
+ expect("_L".to_name.to_absolute("A")).to eq("A")
250
+ expect("_LR".to_name.to_absolute("A")).to eq("A")
251
+ expect("_LL".to_name.to_absolute("A")).to eq("A")
252
+ expect("_LLR".to_name.to_absolute("A")).to eq("A")
253
+ expect("_LLL".to_name.to_absolute("A")).to eq("A")
254
+ expect("_LLLR".to_name.to_absolute("A")).to eq("A")
255
+ expect("_LLLL".to_name.to_absolute("A")).to eq("A")
256
256
  end
257
257
  end
258
258
 
259
259
  it "does session user substitution" do
260
- "_user".to_name.to_absolute("A").should == Card::Auth.current.name
260
+ expect("_user".to_name.to_absolute("A")).to eq(Card::Auth.current.name)
261
261
  Card::Auth.as_bot do
262
- "_user".to_name.to_absolute("A").should == Card::Auth.current.name
262
+ expect("_user".to_name.to_absolute("A")).to eq(Card::Auth.current.name)
263
263
  end
264
264
  end
265
265
  end
266
266
 
267
267
  describe "#to_show" do
268
268
  it "ignores ignorables" do
269
- 'you+awe'.to_name.to_show('you').should == '+awe'
270
- 'me+you+awe'.to_name.to_show('you').should == 'me+awe' #HMMM..... what should this do?
271
- 'me+you+awe'.to_name.to_show('me' ).should == '+you+awe'
272
- 'me+you+awe'.to_name.to_show('me','you').should == '+awe'
273
- 'me+you'.to_name.to_show('me','you').should == 'me+you'
274
- '?a?+awe'.to_name.to_show('A').should == '+awe'
275
- '+awe'.to_name.to_show().should == '+awe'
269
+ expect('you+awe'.to_name.to_show('you')).to eq('+awe')
270
+ expect('me+you+awe'.to_name.to_show('you')).to eq('me+awe') #HMMM..... what should this do?
271
+ expect('me+you+awe'.to_name.to_show('me' )).to eq('+you+awe')
272
+ expect('me+you+awe'.to_name.to_show('me','you')).to eq('+awe')
273
+ expect('me+you'.to_name.to_show('me','you')).to eq('me+you')
274
+ expect('?a?+awe'.to_name.to_show('A')).to eq('+awe')
275
+ expect('+awe'.to_name.to_show()).to eq('+awe')
276
276
  end
277
277
  end
278
278
 
@@ -8,36 +8,36 @@ describe Card::Query do
8
8
 
9
9
  describe 'append' do
10
10
  it "should find real cards" do
11
- Card::Query.new(:name=>[:in, 'C', 'D', 'F'], :append=>'A' ).run.map(&:name).sort.should == ["C+A", "D+A", "F+A"]
11
+ expect(Card::Query.new(:name=>[:in, 'C', 'D', 'F'], :append=>'A' ).run.map(&:name).sort).to eq(["C+A", "D+A", "F+A"])
12
12
  end
13
13
 
14
14
  it "should absolutize names" do
15
- Card::Query.new(:name=>[:in, 'C', 'D', 'F'], :append=>'_right', :context=>'B+A' ).run.map(&:name).sort.should == ["C+A", "D+A", "F+A"]
15
+ expect(Card::Query.new(:name=>[:in, 'C', 'D', 'F'], :append=>'_right', :context=>'B+A' ).run.map(&:name).sort).to eq(["C+A", "D+A", "F+A"])
16
16
  end
17
17
 
18
18
  it "should find virtual cards" do
19
- Card::Query.new(:name=>[:in, 'C', 'D'], :append=>'*plus cards' ).run.map(&:name).sort.should == ["C+*plus cards", "D+*plus cards"]
19
+ expect(Card::Query.new(:name=>[:in, 'C', 'D'], :append=>'*plus cards' ).run.map(&:name).sort).to eq(["C+*plus cards", "D+*plus cards"])
20
20
  end
21
21
  end
22
22
 
23
23
  describe "in" do
24
24
  it "should work for content options" do
25
- Card::Query.new(:in=>['AlphaBeta', 'Theta']).run.map(&:name).sort.should == %w(A+B T)
25
+ expect(Card::Query.new(:in=>['AlphaBeta', 'Theta']).run.map(&:name).sort).to eq(%w(A+B T))
26
26
  end
27
27
 
28
28
  it "should find the same thing in full syntax" do
29
- Card::Query.new(:content=>[:in,'Theta','AlphaBeta']).run.map(&:name).sort.should == %w(A+B T)
29
+ expect(Card::Query.new(:content=>[:in,'Theta','AlphaBeta']).run.map(&:name).sort).to eq(%w(A+B T))
30
30
  end
31
31
 
32
32
  it "should work on types" do
33
- Card::Query.new(:type=>[:in,'Cardtype E', 'Cardtype F']).run.map(&:name).sort.should == %w(type-e-card type-f-card)
33
+ expect(Card::Query.new(:type=>[:in,'Cardtype E', 'Cardtype F']).run.map(&:name).sort).to eq(%w(type-e-card type-f-card))
34
34
  end
35
35
  end
36
36
 
37
37
  describe "symbolization" do
38
38
  it "should handle array values" do
39
39
  query = {'plus'=>['tags',{'refer_to'=>'cookies'}]}
40
- Card::Query.new(query).query.should== {:plus=>['tags',{:refer_to=>'cookies'}]}
40
+ expect(Card::Query.new(query).query).to eq({:plus=>['tags',{:refer_to=>'cookies'}]})
41
41
  end
42
42
  end
43
43
 
@@ -47,38 +47,38 @@ describe Card::Query do
47
47
 
48
48
  describe "member_of/member" do
49
49
  it "member_of should find members" do
50
- Card::Query.new( :member_of => "r1" ).run.map(&:name).sort.should == %w(u1 u2 u3)
50
+ expect(Card::Query.new( :member_of => "r1" ).run.map(&:name).sort).to eq(%w(u1 u2 u3))
51
51
  end
52
52
  it "member should find roles" do
53
- Card::Query.new( :member => {:match=>"u1"} ).run.map(&:name).sort.should == %w(r1 r2 r3)
53
+ expect(Card::Query.new( :member => {:match=>"u1"} ).run.map(&:name).sort).to eq(%w(r1 r2 r3))
54
54
  end
55
55
  end
56
56
 
57
57
 
58
58
  describe "not" do
59
59
  it "should exclude cards matching not criteria" do
60
- Card::Query.new(:plus=>"A", :not=>{:plus=>"A+B"}).run.map(&:name).sort.should==%w{ B D E F }
60
+ expect(Card::Query.new(:plus=>"A", :not=>{:plus=>"A+B"}).run.map(&:name).sort).to eq(%w{ B D E F })
61
61
  end
62
62
  end
63
63
 
64
64
 
65
65
  describe "multiple values" do
66
66
  it "should handle multiple values for relational keys" do
67
- Card::Query.new( :member_of=>[:all, {:name=>'r1'}, {:key=>'r2'} ], :return=>:name).run.sort.should == %w{ u1 u2 }
68
- Card::Query.new( :member_of=>[ {:name=>'r1'}, {:key=>'r2'} ], :return=>:name).run.sort.should == %w{ u1 u2 }
69
- Card::Query.new( :member_of=>[:any, {:name=>'r1'}, {:key=>'r2'} ], :return=>:name).run.sort.should == %w{ u1 u2 u3 }
67
+ expect(Card::Query.new( :member_of=>[:all, {:name=>'r1'}, {:key=>'r2'} ], :return=>:name).run.sort).to eq(%w{ u1 u2 })
68
+ expect(Card::Query.new( :member_of=>[ {:name=>'r1'}, {:key=>'r2'} ], :return=>:name).run.sort).to eq(%w{ u1 u2 })
69
+ expect(Card::Query.new( :member_of=>[:any, {:name=>'r1'}, {:key=>'r2'} ], :return=>:name).run.sort).to eq(%w{ u1 u2 u3 })
70
70
  end
71
71
 
72
72
  it "should handle multiple values for plus_relational keys" do
73
- Card::Query.new( :right_plus=>[ :all, 'e', 'c' ], :return=>:name ).run.sort.should == %w{ A } #explicit conjunction
74
- Card::Query.new( :right_plus=>[ ['e',{}], 'c' ], :return=>:name ).run.sort.should == %w{ A } # first element is array
75
- Card::Query.new( :right_plus=>[ 'e', 'c' ], :return=>:name ).run.sort.should == [] # NOT interpreted as multi-value
73
+ expect(Card::Query.new( :right_plus=>[ :all, 'e', 'c' ], :return=>:name ).run.sort).to eq(%w{ A }) #explicit conjunction
74
+ expect(Card::Query.new( :right_plus=>[ ['e',{}], 'c' ], :return=>:name ).run.sort).to eq(%w{ A }) # first element is array
75
+ expect(Card::Query.new( :right_plus=>[ 'e', 'c' ], :return=>:name ).run.sort).to eq([]) # NOT interpreted as multi-value
76
76
  end
77
77
 
78
78
  it "should handle multiple values for plus_relational keys" do
79
- Card::Query.new( :refer_to=>[ :and, 'a', 'b' ], :return=>:name ).run.sort.should == %w{ Y }
80
- Card::Query.new( :refer_to=>[ 'a', 'T' ], :return=>:name ).run.sort.should == %w{ X Y }
81
- Card::Query.new( :refer_to=>[ :or, 'b', 'z' ], :return=>:name ).run.sort.should == %w{ A B Y}
79
+ expect(Card::Query.new( :refer_to=>[ :and, 'a', 'b' ], :return=>:name ).run.sort).to eq(%w{ Y })
80
+ expect(Card::Query.new( :refer_to=>[ 'a', 'T' ], :return=>:name ).run.sort).to eq(%w{ X Y })
81
+ expect(Card::Query.new( :refer_to=>[ :or, 'b', 'z' ], :return=>:name ).run.sort).to eq(%w{ A B Y})
82
82
  end
83
83
 
84
84
  end
@@ -86,15 +86,15 @@ describe Card::Query do
86
86
 
87
87
  describe "edited_by/editor_of" do
88
88
  it "should find card edited by joe using subspec" do
89
- Card::Query.new(:edited_by=>{:match=>"Joe User"}, :sort=>"name").run.should == [Card["JoeLater"], Card["JoeNow"]]
89
+ expect(Card::Query.new(:edited_by=>{:match=>"Joe User"}, :sort=>"name").run).to eq([Card["JoeLater"], Card["JoeNow"]])
90
90
  end
91
91
  it "should find card edited by Wagn Bot" do
92
92
  #this is a weak test, since it gives the name, but different sorting mechanisms in other db setups
93
93
  #was having it return *account in some cases and "A" in others
94
- Card::Query.new(:edited_by=>"Wagn Bot", :name=>'A', :return=>'name', :limit=>1).run.first.should == "A"
94
+ expect(Card::Query.new(:edited_by=>"Wagn Bot", :name=>'A', :return=>'name', :limit=>1).run.first).to eq("A")
95
95
  end
96
96
  it "should fail gracefully if user isn't there" do
97
- Card::Query.new(:edited_by=>"Joe LUser", :sort=>"name", :limit=>1).run.should == []
97
+ expect(Card::Query.new(:edited_by=>"Joe LUser", :sort=>"name", :limit=>1).run).to eq([])
98
98
  end
99
99
 
100
100
  it "should not give duplicate results for multiple edits" do
@@ -103,11 +103,11 @@ describe Card::Query do
103
103
  c.save
104
104
  c.content="test3"
105
105
  c.save!
106
- Card::Query.new(:edited_by=>"Joe User").run.map(&:name).sort.should == ["JoeLater","JoeNow"]
106
+ expect(Card::Query.new(:edited_by=>"Joe User").run.map(&:name).sort).to eq(["JoeLater","JoeNow"])
107
107
  end
108
108
 
109
109
  it "should find joe user among card's editors" do
110
- Card::Query.new(:editor_of=>'JoeLater').run.map(&:name).should == ['Joe User']
110
+ expect(Card::Query.new(:editor_of=>'JoeLater').run.map(&:name)).to eq(['Joe User'])
111
111
  end
112
112
  end
113
113
 
@@ -118,11 +118,11 @@ describe Card::Query do
118
118
 
119
119
  it "should find Joe User as the card's creator" do
120
120
  c = Card.fetch 'Create Test'
121
- Card::Query.new(:creator_of=>'Create Test').run.first.name.should == 'Joe User'
121
+ expect(Card::Query.new(:creator_of=>'Create Test').run.first.name).to eq('Joe User')
122
122
  end
123
123
 
124
124
  it "should find card created by Joe User" do
125
- Card::Query.new(:created_by=>'Joe User', :eq=>'sufficiently distinctive').run.first.name.should == 'Create Test'
125
+ expect(Card::Query.new(:created_by=>'Joe User', :eq=>'sufficiently distinctive').run.first.name).to eq('Create Test')
126
126
  end
127
127
  end
128
128
 
@@ -134,31 +134,31 @@ describe Card::Query do
134
134
  end
135
135
 
136
136
  it "should find Joe User as the card's last editor" do
137
- Card::Query.new(:last_editor_of=>'A').run.first.name.should == 'Joe User'
137
+ expect(Card::Query.new(:last_editor_of=>'A').run.first.name).to eq('Joe User')
138
138
  end
139
139
 
140
140
  it "should find card created by Joe User" do
141
- Card::Query.new(:last_edited_by=>'Joe User', :eq=>'peculicious').run.first.name.should == 'A'
141
+ expect(Card::Query.new(:last_edited_by=>'Joe User', :eq=>'peculicious').run.first.name).to eq('A')
142
142
  end
143
143
  end
144
144
 
145
145
  describe "keyword" do
146
146
  it "should escape nonword characters" do
147
- Card::Query.new( :match=>"two :(!").run.map(&:name).sort.should==CARDS_MATCHING_TWO
147
+ expect(Card::Query.new( :match=>"two :(!").run.map(&:name).sort).to eq(CARDS_MATCHING_TWO)
148
148
  end
149
149
  end
150
150
 
151
151
  describe "search count" do
152
152
  it "should count search" do
153
153
  s = Card.create! :name=>"ksearch", :type=>'Search', :content=>'{"match":"$keyword"}'
154
- s.count(:vars=>{:keyword=>"two"}).should==CARDS_MATCHING_TWO.length
154
+ expect(s.count(:vars=>{:keyword=>"two"})).to eq(CARDS_MATCHING_TWO.length)
155
155
  end
156
156
  end
157
157
 
158
158
 
159
159
  describe "cgi_params" do
160
160
  it "should match content from cgi" do
161
- Card::Query.new( :match=>"$keyword", :vars=>{:keyword=>"two"}).run.map(&:name).sort.should==CARDS_MATCHING_TWO
161
+ expect(Card::Query.new( :match=>"$keyword", :vars=>{:keyword=>"two"}).run.map(&:name).sort).to eq(CARDS_MATCHING_TWO)
162
162
  end
163
163
  end
164
164
 
@@ -166,26 +166,26 @@ describe Card::Query do
166
166
 
167
167
  describe "content equality" do
168
168
  it "should match content explicitly" do
169
- Card::Query.new( :content=>['=',"I'm number two"] ).run.map(&:name).should==["Joe User"]
169
+ expect(Card::Query.new( :content=>['=',"I'm number two"] ).run.map(&:name)).to eq(["Joe User"])
170
170
  end
171
171
  it "should match via shortcut" do
172
- Card::Query.new( '='=>"I'm number two" ).run.map(&:name).should==["Joe User"]
172
+ expect(Card::Query.new( '='=>"I'm number two" ).run.map(&:name)).to eq(["Joe User"])
173
173
  end
174
174
  end
175
175
 
176
176
 
177
177
  describe "links" do
178
178
 
179
- it("should handle refer_to") { Card::Query.new( :refer_to=>'Z').run.map(&:name).sort.should == %w{ A B } }
180
- it("should handle link_to") { Card::Query.new( :link_to=>'Z').run.map(&:name).should == %w{ A } }
181
- it("should handle include" ) { Card::Query.new( :include=>'Z').run.map(&:name).should == %w{ B } }
182
- it("should handle linked_to_by") { Card::Query.new( :linked_to_by=>'A').run.map(&:name).should == %w{ Z } }
183
- it("should handle included_by") { Card::Query.new( :included_by=>'B').run.map(&:name).should == %w{ Z } }
184
- it("should handle referred_to_by") { Card::Query.new( :referred_to_by=>'X').run.map(&:name).sort.should == %w{ A A+B T } }
179
+ it("should handle refer_to") { expect(Card::Query.new( :refer_to=>'Z').run.map(&:name).sort).to eq(%w{ A B }) }
180
+ it("should handle link_to") { expect(Card::Query.new( :link_to=>'Z').run.map(&:name)).to eq(%w{ A }) }
181
+ it("should handle include" ) { expect(Card::Query.new( :include=>'Z').run.map(&:name)).to eq(%w{ B }) }
182
+ it("should handle linked_to_by") { expect(Card::Query.new( :linked_to_by=>'A').run.map(&:name)).to eq(%w{ Z }) }
183
+ it("should handle included_by") { expect(Card::Query.new( :included_by=>'B').run.map(&:name)).to eq(%w{ Z }) }
184
+ it("should handle referred_to_by") { expect(Card::Query.new( :referred_to_by=>'X').run.map(&:name).sort).to eq(%w{ A A+B T }) }
185
185
  end
186
186
 
187
187
  describe "relative links" do
188
- it("should handle relative refer_to") { Card::Query.new( :refer_to=>'_self', :context=>'Z').run.map(&:name).sort.should == %w{ A B } }
188
+ it("should handle relative refer_to") { expect(Card::Query.new( :refer_to=>'_self', :context=>'Z').run.map(&:name).sort).to eq(%w{ A B }) }
189
189
  end
190
190
 
191
191
  describe "permissions" do
@@ -193,33 +193,33 @@ describe Card::Query do
193
193
  Card::Auth.as_bot do
194
194
  Card.create :name=>"C+*self+*read", :type=>'Pointer', :content=>"[[R1]]"
195
195
  end
196
- Card::Query.new( :plus=>"A" ).run.map(&:name).sort.should == %w{ B D E F }
196
+ expect(Card::Query.new( :plus=>"A" ).run.map(&:name).sort).to eq(%w{ B D E F })
197
197
  end
198
198
  end
199
199
 
200
200
  describe "basics" do
201
201
  it "should be case insensitive for name" do
202
- Card::Query.new( :name=>"a" ).run.first.name.should == 'A'
202
+ expect(Card::Query.new( :name=>"a" ).run.first.name).to eq('A')
203
203
  end
204
204
 
205
205
  it "should find plus cards" do
206
- Card::Query.new( :plus=>"A" ).run.map(&:name).sort.should == A_JOINEES
206
+ expect(Card::Query.new( :plus=>"A" ).run.map(&:name).sort).to eq(A_JOINEES)
207
207
  end
208
208
 
209
209
  it "should find connection cards" do
210
- Card::Query.new( :part=>"A" ).run.map(&:name).sort.should == ["A+B", "A+C", "A+D", "A+E", "C+A", "D+A", "F+A"]
210
+ expect(Card::Query.new( :part=>"A" ).run.map(&:name).sort).to eq(["A+B", "A+C", "A+D", "A+E", "C+A", "D+A", "F+A"])
211
211
  end
212
212
 
213
213
  it "should find left connection cards" do
214
- Card::Query.new( :left=>"A" ).run.map(&:name).sort.should == ["A+B", "A+C", "A+D", "A+E"]
214
+ expect(Card::Query.new( :left=>"A" ).run.map(&:name).sort).to eq(["A+B", "A+C", "A+D", "A+E"])
215
215
  end
216
216
 
217
217
  it "should find right connection cards" do
218
- Card::Query.new( :right=>"A" ).run.map(&:name).sort.should == ["C+A", "D+A", "F+A"]
218
+ expect(Card::Query.new( :right=>"A" ).run.map(&:name).sort).to eq(["C+A", "D+A", "F+A"])
219
219
  end
220
220
 
221
221
  it "should return count" do
222
- Card.count_by_wql( :part=>"A" ).should == 7
222
+ expect(Card.count_by_wql( :part=>"A" )).to eq(7)
223
223
  end
224
224
 
225
225
 
@@ -227,11 +227,11 @@ describe Card::Query do
227
227
 
228
228
  describe "limit and offset" do
229
229
  it "should return limit" do
230
- Card::Query.new( :part=>"A", :limit=>5 ).run.size.should == 5
230
+ expect(Card::Query.new( :part=>"A", :limit=>5 ).run.size).to eq(5)
231
231
  end
232
232
 
233
233
  it "should not break if offset but no limit" do
234
- Card::Query.new( :part=>"A", :offset=>5 ).run.size.should_not == 0
234
+ expect(Card::Query.new( :part=>"A", :offset=>5 ).run.size).not_to eq(0)
235
235
  end
236
236
 
237
237
  end
@@ -240,15 +240,15 @@ describe Card::Query do
240
240
  user_cards = ["Joe Admin", "Joe Camel", "Joe User", "John", "No Count", "Sample User", "Sara", "u1", "u2", "u3"].sort
241
241
 
242
242
  it "should find cards of this type" do
243
- Card::Query.new( :type=>"_self", :context=>'User').run.map(&:name).sort.should == user_cards
243
+ expect(Card::Query.new( :type=>"_self", :context=>'User').run.map(&:name).sort).to eq(user_cards)
244
244
  end
245
245
 
246
246
  it "should find User cards " do
247
- Card::Query.new( :type=>"User" ).run.map(&:name).sort.should == user_cards
247
+ expect(Card::Query.new( :type=>"User" ).run.map(&:name).sort).to eq(user_cards)
248
248
  end
249
249
 
250
250
  it "should handle casespace variants" do
251
- Card::Query.new( :type=>"users" ).run.map(&:name).sort.should == user_cards
251
+ expect(Card::Query.new( :type=>"users" ).run.map(&:name).sort).to eq(user_cards)
252
252
  end
253
253
 
254
254
  end
@@ -257,7 +257,7 @@ describe Card::Query do
257
257
  describe "trash handling" do
258
258
  it "should not find cards in the trash" do
259
259
  Card["A+B"].delete!
260
- Card::Query.new( :left=>"A" ).run.map(&:name).sort.should == ["A+C", "A+D", "A+E"]
260
+ expect(Card::Query.new( :left=>"A" ).run.map(&:name).sort).to eq(["A+C", "A+D", "A+E"])
261
261
  end
262
262
  end
263
263
 
@@ -271,23 +271,24 @@ describe Card::Query do
271
271
  Card.create! :type=>"Nudetype", :name=>"nsecond", :content=>"b"
272
272
  Card.create! :type=>"Nudetype", :name=>"nthird", :content=>"c"
273
273
  # WACK!! this doesn't seem to be consistent across fixture generations :-/
274
- Card::Query.new( :type=>"Nudetype", :sort=>"create", :dir=>"asc").run.map(&:name).should ==
274
+ expect(Card::Query.new( :type=>"Nudetype", :sort=>"create", :dir=>"asc").run.map(&:name)).to eq(
275
275
  ["nfirst","nsecond","nthird"]
276
+ )
276
277
  end
277
278
 
278
279
  it "should sort by name" do
279
- Card::Query.new( :name=> %w{ in B Z A Y C X }, :sort=>"alpha", :dir=>"desc" ).run.map(&:name).should == %w{ Z Y X C B A }
280
- Card::Query.new( :name=> %w{ in B Z A Y C X }, :sort=>"name", :dir=>"desc" ).run.map(&:name).should == %w{ Z Y X C B A }
280
+ expect(Card::Query.new( :name=> %w{ in B Z A Y C X }, :sort=>"alpha", :dir=>"desc" ).run.map(&:name)).to eq(%w{ Z Y X C B A })
281
+ expect(Card::Query.new( :name=> %w{ in B Z A Y C X }, :sort=>"name", :dir=>"desc" ).run.map(&:name)).to eq(%w{ Z Y X C B A })
281
282
  #Card.create! :name => 'the alphabet'
282
283
  #Card::Query.new( :name=>["in", "B", "C", "the alphabet"], :sort=>"name").run.map(&:name).should == ["the alphabet", "B", "C"]
283
284
  end
284
285
 
285
286
  it "should sort by content" do
286
- Card::Query.new( :name=> %w{ in Z T A }, :sort=>"content").run.map(&:name).should == %w{ A Z T }
287
+ expect(Card::Query.new( :name=> %w{ in Z T A }, :sort=>"content").run.map(&:name)).to eq(%w{ A Z T })
287
288
  end
288
289
 
289
290
  it "should play nice with match" do
290
- Card::Query.new( :match=>'Z', :type=>'Basic', :sort=>"content").run.map(&:name).should == %w{ A B Z }
291
+ expect(Card::Query.new( :match=>'Z', :type=>'Basic', :sort=>"content").run.map(&:name)).to eq(%w{ A B Z })
291
292
  end
292
293
 
293
294
  it "should sort by plus card content" do
@@ -299,14 +300,14 @@ describe Card::Query do
299
300
 
300
301
  w = Card::Query.new( :right_plus=>'*table of contents', :sort=>{ :right=>'*table_of_contents'}, :sort_as=>'integer' ) # FIXME: codename
301
302
  #warn "sql from new wql = #{w.sql}"
302
- w.run.map(&:name).should == %w{ *all *account+*right Basic+*type Config+*self Setting+*self }
303
+ expect(w.run.map(&:name)).to eq(%w{ *all Basic+*type Setting+*self })
303
304
  end
304
305
  end
305
306
 
306
307
  it "should sort by count" do
307
308
  Card::Auth.as_bot do
308
309
  w = Card::Query.new( :name=>[:in,'Sara','John','Joe User'], :sort=>{ :right=>'*watcher', :item=>'referred_to', :return=>'count' } )
309
- w.run.map(&:name).should == ['Joe User','John','Sara']
310
+ expect(w.run.map(&:name)).to eq(['Joe User','John','Sara'])
310
311
  end
311
312
  end
312
313
 
@@ -322,47 +323,47 @@ describe Card::Query do
322
323
 
323
324
  describe "params" do
324
325
  it "should merge in params as normal WQL" do
325
- Card::Query.new( :params=>{:name=>"two"}).run.first.name.should=='Two'
326
+ expect(Card::Query.new( :params=>{:name=>"two"}).run.first.name).to eq('Two')
326
327
  end
327
328
  end
328
329
 
329
330
 
330
331
  describe "match" do
331
332
  it "should reach content and name via shortcut" do
332
- Card::Query.new( :match=>"two").run.map(&:name).sort.should==CARDS_MATCHING_TWO
333
+ expect(Card::Query.new( :match=>"two").run.map(&:name).sort).to eq(CARDS_MATCHING_TWO)
333
334
  end
334
335
 
335
336
  it "should get only content when content is explicit" do
336
- Card::Query.new( :content=>[:match, "two"] ).run.map(&:name).sort.should==["Joe User"]
337
+ expect(Card::Query.new( :content=>[:match, "two"] ).run.map(&:name).sort).to eq(["Joe User"])
337
338
  end
338
339
 
339
340
  it "should get only name when name is explicit" do
340
- Card::Query.new( :name=>[:match, "two"] ).run.map(&:name).sort.should==["One+Two","One+Two+Three","Two"].sort
341
+ expect(Card::Query.new( :name=>[:match, "two"] ).run.map(&:name).sort).to eq(["One+Two","One+Two+Three","Two"].sort)
341
342
  end
342
343
  end
343
344
 
344
345
  describe "and" do
345
346
  it "should act as a simple passthrough" do
346
- Card::Query.new(:and=>{:match=>'two'}).run.map(&:name).sort.should==CARDS_MATCHING_TWO
347
+ expect(Card::Query.new(:and=>{:match=>'two'}).run.map(&:name).sort).to eq(CARDS_MATCHING_TWO)
347
348
  end
348
349
 
349
350
  it "should work within 'or'" do
350
351
  results = Card::Query.new(:or=>{:name=>'Z', :and=>{:left=>'A', :right=>'C'}}).run
351
- results.length.should == 2
352
- results.map(&:name).sort.should == ['A+C','Z']
352
+ expect(results.length).to eq(2)
353
+ expect(results.map(&:name).sort).to eq(['A+C','Z'])
353
354
  end
354
355
  end
355
356
 
356
357
  describe "any/or" do
357
358
  it "should work with :plus" do
358
- Card::Query.new(:plus=>"A", :or =>{:name=>'B', :match=>'K'}).run.map(&:name).sort.should==%w{ B }
359
- Card::Query.new(:plus=>"A", :any=>{:name=>'B', :match=>'K'}).run.map(&:name).sort.should==%w{ B }
359
+ expect(Card::Query.new(:plus=>"A", :or =>{:name=>'B', :match=>'K'}).run.map(&:name).sort).to eq(%w{ B })
360
+ expect(Card::Query.new(:plus=>"A", :any=>{:name=>'B', :match=>'K'}).run.map(&:name).sort).to eq(%w{ B })
360
361
  end
361
362
  end
362
363
 
363
364
  describe "offset" do
364
365
  it "should not break count" do
365
- Card.count_by_wql({:match=>'two', :offset=>1}).should==CARDS_MATCHING_TWO.length
366
+ expect(Card.count_by_wql({:match=>'two', :offset=>1})).to eq(CARDS_MATCHING_TWO.length)
366
367
  end
367
368
  end
368
369
 
@@ -375,16 +376,16 @@ describe Card::Query do
375
376
  end
376
377
 
377
378
  it "should find cards returned by search of given name" do
378
- Card::Query.new(:found_by=>'Simple Search').run.first.name.should=='A'
379
+ expect(Card::Query.new(:found_by=>'Simple Search').run.first.name).to eq('A')
379
380
  end
380
381
  it "should find cards returned by virtual cards" do
381
- Card::Query.new(:found_by=>'Image+*type+by name').run.map(&:name).sort.should==Card.search(:type=>'Image').map(&:name).sort
382
+ expect(Card::Query.new(:found_by=>'Image+*type+by name').run.map(&:name).sort).to eq(Card.search(:type=>'Image').map(&:name).sort)
382
383
  end
383
384
  it "should play nicely with other properties and relationships" do
384
- Card::Query.new(:plus=>{:found_by=>'Simple Search'}).run.map(&:name).sort.should==Card::Query.new(:plus=>{:name=>'A'}).run.map(&:name).sort
385
+ expect(Card::Query.new(:plus=>{:found_by=>'Simple Search'}).run.map(&:name).sort).to eq(Card::Query.new(:plus=>{:name=>'A'}).run.map(&:name).sort)
385
386
  end
386
387
  it "should be able to handle _self" do
387
- Card::Query.new(:context=>'Simple Search', :left=>{:found_by=>'_self'}, :right=>'B').run.first.name.should=='A+B'
388
+ expect(Card::Query.new(:context=>'Simple Search', :left=>{:found_by=>'_self'}, :right=>'B').run.first.name).to eq('A+B')
388
389
  end
389
390
 
390
391
  end
@@ -396,28 +397,28 @@ describe Card::Query do
396
397
  describe "relative" do
397
398
  it "should clean wql" do
398
399
  wql = Card::Query.new( :part=>"_self",:context=>'A' )
399
- wql.query[:part].should == 'A'
400
+ expect(wql.query[:part]).to eq('A')
400
401
  end
401
402
 
402
403
  it "should find connection cards" do
403
- Card::Query.new( :part=>"_self", :context=>'A' ).run.map(&:name).sort.should == ["A+B", "A+C", "A+D", "A+E", "C+A", "D+A", "F+A"]
404
+ expect(Card::Query.new( :part=>"_self", :context=>'A' ).run.map(&:name).sort).to eq(["A+B", "A+C", "A+D", "A+E", "C+A", "D+A", "F+A"])
404
405
  end
405
406
 
406
407
  it "should be able to use parts of nonexistent cards in search" do
407
- Card['B+A'].should be_nil
408
- Card::Query.new( :left=>'_right', :right=>'_left', :context=>'B+A' ).run.map(&:name).should == ['A+B']
408
+ expect(Card['B+A']).to be_nil
409
+ expect(Card::Query.new( :left=>'_right', :right=>'_left', :context=>'B+A' ).run.map(&:name)).to eq(['A+B'])
409
410
  end
410
411
 
411
412
  it "should find plus cards for _self" do
412
- Card::Query.new( :plus=>"_self", :context=>"A" ).run.map(&:name).sort.should == A_JOINEES
413
+ expect(Card::Query.new( :plus=>"_self", :context=>"A" ).run.map(&:name).sort).to eq(A_JOINEES)
413
414
  end
414
415
 
415
416
  it "should find plus cards for _left" do
416
- Card::Query.new( :plus=>"_left", :context=>"A+B" ).run.map(&:name).sort.should == A_JOINEES
417
+ expect(Card::Query.new( :plus=>"_left", :context=>"A+B" ).run.map(&:name).sort).to eq(A_JOINEES)
417
418
  end
418
419
 
419
420
  it "should find plus cards for _right" do
420
- Card::Query.new( :plus=>"_right", :context=>"C+A" ).run.map(&:name).sort.should == A_JOINEES
421
+ expect(Card::Query.new( :plus=>"_right", :context=>"C+A" ).run.map(&:name).sort).to eq(A_JOINEES)
421
422
  end
422
423
 
423
424
  end
@@ -429,7 +430,7 @@ describe Card::Query do
429
430
  Card::Query.new( { :left=>{:name=>"X"}}).sql.scan( /read_rule_id IN \([\d\,]+\)/ ) do |m|
430
431
  perm_count+=1
431
432
  end
432
- perm_count.should == 2
433
+ expect(perm_count).to eq(2)
433
434
  end
434
435
 
435
436
  # it "are not generated inside .without_nested_permissions block" do