card 1.16.6 → 1.16.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (440) hide show
  1. checksums.yaml +4 -4
  2. data/.yardoc/checksums +234 -49
  3. data/.yardoc/object_types +0 -0
  4. data/.yardoc/objects/root.dat +0 -0
  5. data/VERSION +1 -1
  6. data/config/initializers/mime_types.rb +3 -3
  7. data/config/initializers/notification.rb +1 -1
  8. data/db/migrate/20121118115000_update_link_type.rb +8 -8
  9. data/db/migrate/20130411210957_update_codenames.rb +2 -2
  10. data/db/migrate/20140822073704_create_new_revision_tables.rb +12 -13
  11. data/db/migrate/20141001105348_move_revisions_to_actions.rb +16 -16
  12. data/db/migrate/20141121172918_rename_card_migration_table.rb +4 -4
  13. data/db/migrate_core_cards/20130419215612_import_help_text.rb +3 -3
  14. data/db/migrate_core_cards/20130823192433_add_style_cards.rb +45 -47
  15. data/db/migrate_core_cards/20130910183318_move_styles_to_content.rb +1 -1
  16. data/db/migrate_core_cards/20130920214038_jsonize_tinymce.rb +3 -3
  17. data/db/migrate_core_cards/20130920291703_update_stylesheets.rb +3 -3
  18. data/db/migrate_core_cards/20130927191728_account_events.rb +6 -6
  19. data/db/migrate_core_cards/20131016172445_common_css_patch.rb +1 -1
  20. data/db/migrate_core_cards/20140110193325_reset_account_request_type.rb +1 -1
  21. data/db/migrate_core_cards/20140307231621_user_data_to_cards.rb +19 -19
  22. data/db/migrate_core_cards/20140317035504_account_requests_to_signups.rb +11 -12
  23. data/db/migrate_core_cards/20140512155840_add_script_cards.rb +35 -36
  24. data/db/migrate_core_cards/20140629222005_add_email_cards.rb +55 -55
  25. data/db/migrate_core_cards/20140725180118_config_card_updates.rb +1 -1
  26. data/db/migrate_core_cards/20141111083921_delete_machine_output.rb +2 -2
  27. data/db/migrate_core_cards/20141115034214_config_descriptions_etc.rb +3 -3
  28. data/db/migrate_core_cards/20141120120605_fix_notification_html_message.rb +2 -2
  29. data/db/migrate_core_cards/20141204061304_watchers_to_following.rb +8 -8
  30. data/db/migrate_core_cards/20141208162106_add_ace_script.rb +2 -2
  31. data/db/migrate_core_cards/20141216155251_add_more_following_cards.rb +16 -16
  32. data/db/migrate_core_cards/20141230204340_uri_codename.rb +1 -1
  33. data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +19 -19
  34. data/db/migrate_core_cards/20150220134731_following_to_follow_rule.rb +3 -3
  35. data/db/migrate_core_cards/20150317162412_bootstrap_themes.rb +15 -15
  36. data/db/migrate_core_cards/20150326205655_bootswatch_themes.rb +11 -11
  37. data/db/migrate_core_cards/20150331135745_new_card_menu.rb +1 -1
  38. data/db/migrate_core_cards/20150429090551_search_card_context.rb +1 -1
  39. data/db/migrate_core_cards/20150508212032_menu_compatibility.rb +3 -3
  40. data/db/migrate_core_cards/20150510031118_fix_skin_images.rb +1 -1
  41. data/db/migrate_core_cards/20150528084659_add_session_cardtype.rb +4 -4
  42. data/db/migrate_core_cards/20150601133433_add_recent_setting_session_card.rb +5 -5
  43. data/db/migrate_core_cards/20150605115802_add_performance_log_card.rb +1 -1
  44. data/db/migrate_core_cards/20150610171702_add_debugger_session_card.rb +2 -2
  45. data/db/migrate_core_cards/20150611203506_rails_inflection_updates.rb +5 -5
  46. data/db/migrate_core_cards/20150627205133_fix_script_bootstrap_card_type.rb +1 -1
  47. data/db/migrate_core_cards/20150702130543_remove_edit_toolbar_pinned.rb +1 -1
  48. data/db/migrate_core_cards/20150724123438_update_file_and_image_cards.rb +5 -5
  49. data/db/migrate_core_cards/20150807205221_create_references_for_search_cards.rb +1 -1
  50. data/db/migrate_core_cards/20150824135418_update_file_history.rb +3 -3
  51. data/db/migrate_core_cards/20150903130006_attachment_upload_cards.rb +2 -2
  52. data/db/migrate_core_cards/20150910085603_remove_performance_log_card.rb +1 -1
  53. data/lib/card.rb +4 -4
  54. data/lib/card/active_record_ext.rb +8 -8
  55. data/lib/card/auth.rb +6 -6
  56. data/lib/card/cache.rb +1 -1
  57. data/lib/card/chunk.rb +1 -1
  58. data/lib/card/content.rb +1 -1
  59. data/lib/card/diff.rb +10 -10
  60. data/lib/card/env.rb +1 -1
  61. data/lib/card/format.rb +12 -12
  62. data/lib/card/loader.rb +1 -1
  63. data/lib/card/migration.rb +1 -1
  64. data/lib/card/name.rb +4 -4
  65. data/lib/card/query.rb +255 -61
  66. data/lib/card/query/attributes.rb +310 -0
  67. data/lib/card/query/clause.rb +12 -15
  68. data/lib/card/query/join.rb +73 -0
  69. data/lib/card/query/reference.rb +51 -0
  70. data/lib/card/query/sql_statement.rb +228 -0
  71. data/lib/card/query/value.rb +66 -0
  72. data/lib/card/reference.rb +6 -6
  73. data/lib/card/set.rb +12 -12
  74. data/lib/card/set_pattern.rb +9 -9
  75. data/lib/card/spec_helper.rb +5 -5
  76. data/lib/card/success.rb +1 -1
  77. data/lib/cardio.rb +7 -7
  78. data/lib/generators/card/format/format_generator.rb +3 -3
  79. data/lib/generators/card/migration/migration_generator.rb +5 -5
  80. data/lib/generators/card/set/set_generator.rb +4 -4
  81. data/mod/01_core/chunk/include.rb +4 -4
  82. data/mod/01_core/chunk/link.rb +5 -5
  83. data/mod/01_core/chunk/literal.rb +2 -2
  84. data/mod/01_core/chunk/query_reference.rb +8 -8
  85. data/mod/01_core/chunk/uri.rb +18 -18
  86. data/mod/01_core/format/html_format.rb +4 -4
  87. data/mod/01_core/set/all/active_card.rb +2 -2
  88. data/mod/01_core/set/all/collection.rb +21 -26
  89. data/mod/01_core/set/all/content.rb +2 -2
  90. data/mod/01_core/set/all/fetch.rb +6 -6
  91. data/mod/01_core/set/all/initialize.rb +4 -4
  92. data/mod/01_core/set/all/location_history.rb +2 -2
  93. data/mod/01_core/set/all/name.rb +14 -14
  94. data/mod/01_core/set/all/pattern.rb +1 -1
  95. data/mod/01_core/set/all/permissions.rb +12 -12
  96. data/mod/01_core/set/all/phases.rb +29 -12
  97. data/mod/01_core/set/all/references.rb +14 -14
  98. data/mod/01_core/set/all/rules.rb +8 -8
  99. data/mod/01_core/set/all/templating.rb +10 -9
  100. data/mod/01_core/set/all/tracked_attributes.rb +7 -7
  101. data/mod/01_core/set/all/trash.rb +6 -6
  102. data/mod/01_core/set/all/type.rb +7 -7
  103. data/mod/01_core/set/all/utils.rb +4 -4
  104. data/mod/01_core/set/all/view_cache.rb +1 -1
  105. data/mod/01_core/set_pattern/02_all_plus.rb +2 -2
  106. data/mod/01_core/set_pattern/03_type.rb +1 -1
  107. data/mod/01_core/set_pattern/04_star.rb +1 -1
  108. data/mod/01_core/set_pattern/05_rstar.rb +2 -2
  109. data/mod/01_core/set_pattern/06_right.rb +4 -4
  110. data/mod/01_core/set_pattern/07_type_plus_right.rb +4 -4
  111. data/mod/01_core/set_pattern/08_self.rb +1 -1
  112. data/mod/01_core/spec/chunk/uri_spec.rb +73 -73
  113. data/mod/01_core/spec/format/html_format_spec.rb +5 -5
  114. data/mod/01_core/spec/set/all/attribute_tracking_spec.rb +1 -1
  115. data/mod/01_core/spec/set/all/collection_spec.rb +22 -22
  116. data/mod/01_core/spec/set/all/content_spec.rb +1 -1
  117. data/mod/01_core/spec/set/all/fetch_spec.rb +24 -24
  118. data/mod/01_core/spec/set/all/initialize_spec.rb +9 -9
  119. data/mod/01_core/spec/set/all/name_spec.rb +8 -8
  120. data/mod/01_core/spec/set/all/pattern_spec.rb +10 -10
  121. data/mod/01_core/spec/set/all/permissions_spec.rb +45 -45
  122. data/mod/01_core/spec/set/all/references_spec.rb +1 -1
  123. data/mod/01_core/spec/set/all/rules2_spec.rb +15 -15
  124. data/mod/01_core/spec/set/all/rules_spec.rb +37 -37
  125. data/mod/01_core/spec/set/all/templating_spec.rb +21 -21
  126. data/mod/01_core/spec/set/all/tracked_attributes_spec.rb +55 -55
  127. data/mod/01_core/spec/set/all/trash_spec.rb +4 -4
  128. data/mod/01_core/spec/set/all/type_spec.rb +15 -15
  129. data/mod/01_history/lib/card/act.rb +2 -2
  130. data/mod/01_history/lib/card/action.rb +22 -22
  131. data/mod/01_history/lib/card/change.rb +1 -1
  132. data/mod/01_history/set/all/actions.rb +2 -2
  133. data/mod/01_history/set/all/content_history.rb +4 -4
  134. data/mod/01_history/set/all/history.rb +46 -46
  135. data/mod/02_basic_types/set/all/all_css.rb +10 -10
  136. data/mod/02_basic_types/set/all/all_csv.rb +7 -7
  137. data/mod/02_basic_types/set/all/base.rb +25 -25
  138. data/mod/02_basic_types/set/all/json.rb +16 -16
  139. data/mod/02_basic_types/set/all/rss.rb +7 -7
  140. data/mod/02_basic_types/set/type/html.rb +2 -2
  141. data/mod/02_basic_types/set/type/plain_text.rb +1 -1
  142. data/mod/02_basic_types/set/type/pointer.rb +39 -31
  143. data/mod/02_basic_types/spec/set/all/all_css_spec.rb +1 -1
  144. data/mod/02_basic_types/spec/set/all/all_csv_spec.rb +1 -1
  145. data/mod/02_basic_types/spec/set/all/base_spec.rb +18 -18
  146. data/mod/02_basic_types/spec/set/all/json_spec.rb +4 -4
  147. data/mod/02_basic_types/spec/set/all/rss_spec.rb +8 -2
  148. data/mod/02_basic_types/spec/set/type/plain_text_spec.rb +1 -1
  149. data/mod/02_basic_types/spec/set/type/pointer_spec.rb +54 -44
  150. data/mod/03_machines/lib/card/machine.rb +46 -29
  151. data/mod/03_machines/lib/card/machine_input.rb +34 -10
  152. data/mod/03_machines/set/type/coffee_script.rb +3 -3
  153. data/mod/03_machines/set/type/css.rb +8 -8
  154. data/mod/03_machines/set/type/java_script.rb +4 -4
  155. data/mod/03_machines/set/type/scss.rb +2 -2
  156. data/mod/03_machines/set/type/skin.rb +1 -1
  157. data/mod/03_machines/spec/lib/shared_machine_examples.rb +27 -27
  158. data/mod/03_machines/spec/lib/shared_machine_input_examples.rb +8 -8
  159. data/mod/03_machines/spec/set/type/coffeescript_spec.rb +6 -6
  160. data/mod/03_machines/spec/set/type/css_spec.rb +9 -9
  161. data/mod/03_machines/spec/set/type/javascript_spec.rb +6 -6
  162. data/mod/03_machines/spec/set/type/scss_spec.rb +5 -5
  163. data/mod/03_machines/spec/set/type/skin_spec.rb +25 -25
  164. data/mod/04_settings/lib/card/setting.rb +11 -11
  165. data/mod/04_settings/set/abstract/permission.rb +9 -9
  166. data/mod/04_settings/set/right/script.rb +1 -1
  167. data/mod/04_settings/set/right/structure.rb +0 -5
  168. data/mod/04_settings/set/right/style.rb +2 -2
  169. data/mod/04_settings/set/self/accountable.rb +1 -1
  170. data/mod/04_settings/set/self/add_help.rb +1 -1
  171. data/mod/04_settings/set/self/autoname.rb +1 -1
  172. data/mod/04_settings/set/self/captcha.rb +1 -1
  173. data/mod/04_settings/set/self/create.rb +1 -1
  174. data/mod/04_settings/set/self/default.rb +1 -1
  175. data/mod/04_settings/set/self/delete.rb +1 -1
  176. data/mod/04_settings/set/self/help.rb +1 -1
  177. data/mod/04_settings/set/self/input.rb +1 -1
  178. data/mod/04_settings/set/self/layout.rb +1 -1
  179. data/mod/04_settings/set/self/on_create.rb +1 -1
  180. data/mod/04_settings/set/self/on_delete.rb +1 -1
  181. data/mod/04_settings/set/self/on_update.rb +1 -1
  182. data/mod/04_settings/set/self/options.rb +1 -1
  183. data/mod/04_settings/set/self/options_label.rb +1 -1
  184. data/mod/04_settings/set/self/read.rb +1 -1
  185. data/mod/04_settings/set/self/script.rb +1 -1
  186. data/mod/04_settings/set/self/structure.rb +1 -1
  187. data/mod/04_settings/set/self/style.rb +1 -1
  188. data/mod/04_settings/set/self/table_of_contents.rb +1 -1
  189. data/mod/04_settings/set/self/thanks.rb +1 -1
  190. data/mod/04_settings/set/self/update.rb +1 -1
  191. data/mod/04_settings/set/type/setting.rb +14 -14
  192. data/mod/04_settings/spec/set/right/comment_spec.rb +5 -5
  193. data/mod/04_settings/spec/set/right/create_spec.rb +1 -1
  194. data/mod/04_settings/spec/set/right/script_spec.rb +5 -5
  195. data/mod/04_settings/spec/set/right/structure_spec.rb +4 -2
  196. data/mod/04_settings/spec/set/right/style_spec.rb +7 -7
  197. data/mod/04_settings/spec/set/type/setting_spec.rb +2 -2
  198. data/mod/05_email/lib/card/follow_option.rb +24 -24
  199. data/mod/05_email/set/all/follow.rb +24 -16
  200. data/mod/05_email/set/all/notify.rb +25 -23
  201. data/mod/05_email/set/all/observer.rb +5 -5
  202. data/mod/05_email/set/right/bcc.rb +8 -8
  203. data/mod/05_email/set/right/follow.rb +44 -17
  204. data/mod/05_email/set/right/follow_fields.rb +1 -1
  205. data/mod/05_email/set/right/following.rb +49 -40
  206. data/mod/05_email/set/self/always.rb +2 -2
  207. data/mod/05_email/set/self/created.rb +1 -1
  208. data/mod/05_email/set/self/edited.rb +4 -4
  209. data/mod/05_email/set/self/follow.rb +1 -1
  210. data/mod/05_email/set/self/follow_defaults.rb +9 -9
  211. data/mod/05_email/set/self/never.rb +1 -1
  212. data/mod/05_email/set/type/email_template.rb +9 -9
  213. data/mod/05_email/set/type_plus_right/user/follow.rb +16 -16
  214. data/mod/05_email/spec/set/all/follow_spec.rb +10 -10
  215. data/mod/05_email/spec/set/all/notify_spec.rb +82 -82
  216. data/mod/05_email/spec/set/all/observer_spec.rb +16 -16
  217. data/mod/05_email/spec/set/right/followers_spec.rb +6 -6
  218. data/mod/05_email/spec/set/self/follow_defaults_spec.rb +2 -2
  219. data/mod/05_standard/lib/carrier_wave/cardmount.rb +5 -5
  220. data/mod/05_standard/lib/image_uploader.rb +8 -8
  221. data/mod/05_standard/set/abstract/attachment.rb +18 -18
  222. data/mod/05_standard/set/all/account.rb +5 -5
  223. data/mod/05_standard/set/all/comment.rb +7 -7
  224. data/mod/05_standard/set/all/error.rb +25 -25
  225. data/mod/05_standard/set/all/event_viz.rb +1 -1
  226. data/mod/05_standard/set/all/links.rb +9 -9
  227. data/mod/05_standard/set/all/rich_html/content.rb +34 -34
  228. data/mod/05_standard/set/all/rich_html/editing.rb +35 -35
  229. data/mod/05_standard/set/all/rich_html/form.rb +20 -20
  230. data/mod/05_standard/set/all/rich_html/header.rb +8 -8
  231. data/mod/05_standard/set/all/rich_html/menu.rb +33 -33
  232. data/mod/05_standard/set/all/rich_html/modal.rb +16 -16
  233. data/mod/05_standard/set/all/rich_html/toolbar.rb +63 -63
  234. data/mod/05_standard/set/all/rich_html/wrapper.rb +8 -8
  235. data/mod/05_standard/set/right/account.rb +27 -27
  236. data/mod/05_standard/set/right/email.rb +5 -5
  237. data/mod/05_standard/set/right/password.rb +5 -5
  238. data/mod/05_standard/set/rstar/rules.rb +52 -52
  239. data/mod/05_standard/set/self/account_links.rb +27 -27
  240. data/mod/05_standard/set/self/all.rb +1 -1
  241. data/mod/05_standard/set/self/head.rb +5 -5
  242. data/mod/05_standard/set/self/navbox.rb +11 -11
  243. data/mod/05_standard/set/self/recent.rb +2 -2
  244. data/mod/05_standard/set/self/search.rb +13 -13
  245. data/mod/05_standard/set/self/signin.rb +19 -19
  246. data/mod/05_standard/set/self/stats.rb +2 -2
  247. data/mod/05_standard/set/type/basic.rb +1 -1
  248. data/mod/05_standard/set/type/cardtype.rb +5 -5
  249. data/mod/05_standard/set/type/date.rb +1 -1
  250. data/mod/05_standard/set/type/file.rb +7 -7
  251. data/mod/05_standard/set/type/image.rb +8 -8
  252. data/mod/05_standard/set/type/number.rb +2 -2
  253. data/mod/05_standard/set/type/phrase.rb +1 -1
  254. data/mod/05_standard/set/type/search_type.rb +27 -21
  255. data/mod/05_standard/set/type/session.rb +2 -2
  256. data/mod/05_standard/set/type/set.rb +37 -37
  257. data/mod/05_standard/set/type/signup.rb +25 -25
  258. data/mod/05_standard/set/type/uri.rb +1 -1
  259. data/mod/05_standard/set/type/user.rb +21 -21
  260. data/mod/05_standard/spec/chunk/include_spec.rb +16 -16
  261. data/mod/05_standard/spec/chunk/link_spec.rb +18 -18
  262. data/mod/05_standard/spec/chunk/query_reference_spec.rb +1 -1
  263. data/mod/05_standard/spec/set/all/account_spec.rb +7 -7
  264. data/mod/05_standard/spec/set/all/email_html_spec.rb +3 -3
  265. data/mod/05_standard/spec/set/all/history_spec.rb +14 -14
  266. data/mod/05_standard/spec/set/all/rich_html/editing_spec.rb +1 -1
  267. data/mod/05_standard/spec/set/all/rich_html/form_spec.rb +2 -2
  268. data/mod/05_standard/spec/set/right/account_spec.rb +9 -9
  269. data/mod/05_standard/spec/set/right/email_spec.rb +8 -8
  270. data/mod/05_standard/spec/set/right/password_spec.rb +9 -9
  271. data/mod/05_standard/spec/set/right/stats_spec.rb +1 -1
  272. data/mod/05_standard/spec/set/right/when_created_spec.rb +1 -1
  273. data/mod/05_standard/spec/set/right/when_last_edited_spec.rb +1 -1
  274. data/mod/05_standard/spec/set/rstar/rules_spec.rb +2 -2
  275. data/mod/05_standard/spec/set/self/account_links_spec.rb +2 -2
  276. data/mod/05_standard/spec/set/self/all_spec.rb +8 -11
  277. data/mod/05_standard/spec/set/self/head_spec.rb +1 -1
  278. data/mod/05_standard/spec/set/self/navbox_spec.rb +1 -1
  279. data/mod/05_standard/spec/set/self/now_spec.rb +1 -1
  280. data/mod/05_standard/spec/set/self/stats_spec.rb +1 -1
  281. data/mod/05_standard/spec/set/self/version_spec.rb +1 -1
  282. data/mod/05_standard/spec/set/type/email_template_spec.rb +25 -25
  283. data/mod/05_standard/spec/set/type/file_spec.rb +4 -4
  284. data/mod/05_standard/spec/set/type/html_spec.rb +3 -3
  285. data/mod/05_standard/spec/set/type/image_spec.rb +6 -6
  286. data/mod/05_standard/spec/set/type/layout_type_spec.rb +1 -1
  287. data/mod/05_standard/spec/set/type/search_type_spec.rb +10 -10
  288. data/mod/05_standard/spec/set/type/signup_spec.rb +11 -11
  289. data/mod/05_standard/spec/set/type/toggle_spec.rb +2 -2
  290. data/mod/05_standard/spec/set/type/uri_spec.rb +9 -9
  291. data/mod/06_bootstrap/set/all/bootstrap/helper.rb +10 -10
  292. data/mod/06_bootstrap/set/all/bootstrap/wrapper.rb +4 -4
  293. data/mod/06_bootstrap/set/all/rich_bootstrap.rb +1 -1
  294. data/spec/lib/card/action_spec.rb +2 -2
  295. data/spec/lib/card/cache_spec.rb +7 -7
  296. data/spec/lib/card/content_spec.rb +31 -37
  297. data/spec/lib/card/diff_spec.rb +56 -56
  298. data/spec/lib/card/format_spec.rb +11 -11
  299. data/spec/lib/card/query_spec.rb +382 -265
  300. data/spec/lib/card/reference_spec.rb +133 -140
  301. data/spec/lib/card/set_pattern_spec.rb +10 -9
  302. data/spec/lib/card/set_spec.rb +11 -11
  303. data/spec/lib/card/success_spec.rb +16 -8
  304. data/spec/mailers/mailer_spec.rb +5 -5
  305. data/spec/models/card/cardtype_spec.rb +20 -20
  306. data/spec/models/card/create_spec.rb +6 -6
  307. data/spec/models/card/trash_spec.rb +20 -20
  308. data/spec/models/card/type_transition_spec.rb +3 -3
  309. data/spec/models/card/validation_spec.rb +5 -5
  310. data/spec/models/card_spec.rb +24 -24
  311. data/spec/spec_helper.rb +5 -5
  312. data/tmpsets/set/mod001-01_core/all/active_card.rb +2 -2
  313. data/tmpsets/set/mod001-01_core/all/collection.rb +23 -26
  314. data/tmpsets/set/mod001-01_core/all/content.rb +2 -2
  315. data/tmpsets/set/mod001-01_core/all/fetch.rb +6 -6
  316. data/tmpsets/set/mod001-01_core/all/initialize.rb +8 -4
  317. data/tmpsets/set/mod001-01_core/all/name.rb +14 -14
  318. data/tmpsets/set/mod001-01_core/all/pattern.rb +1 -1
  319. data/tmpsets/set/mod001-01_core/all/permissions.rb +12 -12
  320. data/tmpsets/set/mod001-01_core/all/phases.rb +31 -13
  321. data/tmpsets/set/mod001-01_core/all/references.rb +14 -14
  322. data/tmpsets/set/mod001-01_core/all/rules.rb +8 -10
  323. data/tmpsets/set/mod001-01_core/all/templating.rb +10 -9
  324. data/tmpsets/set/mod001-01_core/all/tracked_attributes.rb +7 -7
  325. data/tmpsets/set/mod001-01_core/all/trash.rb +9 -8
  326. data/tmpsets/set/mod001-01_core/all/type.rb +7 -7
  327. data/tmpsets/set/mod001-01_core/all/utils.rb +16 -4
  328. data/tmpsets/set/mod001-01_core/all/view_cache.rb +1 -1
  329. data/tmpsets/set/mod002-01_history/all/actions.rb +2 -2
  330. data/tmpsets/set/mod002-01_history/all/content_history.rb +11 -7
  331. data/tmpsets/set/mod002-01_history/all/history.rb +46 -46
  332. data/tmpsets/set/mod003-02_basic_types/all/all_css.rb +10 -10
  333. data/tmpsets/set/mod003-02_basic_types/all/all_csv.rb +7 -7
  334. data/tmpsets/set/mod003-02_basic_types/all/base.rb +25 -25
  335. data/tmpsets/set/mod003-02_basic_types/all/json.rb +16 -16
  336. data/tmpsets/set/mod003-02_basic_types/all/rss.rb +7 -7
  337. data/tmpsets/set/mod003-02_basic_types/type/html.rb +2 -2
  338. data/tmpsets/set/mod003-02_basic_types/type/plain_text.rb +1 -1
  339. data/tmpsets/set/mod003-02_basic_types/type/pointer.rb +38 -31
  340. data/tmpsets/set/mod004-03_machines/right/machine_output.rb +4 -0
  341. data/tmpsets/set/mod004-03_machines/type/coffee_script.rb +3 -3
  342. data/tmpsets/set/mod004-03_machines/type/css.rb +8 -8
  343. data/tmpsets/set/mod004-03_machines/type/java_script.rb +4 -4
  344. data/tmpsets/set/mod004-03_machines/type/scss.rb +2 -2
  345. data/tmpsets/set/mod004-03_machines/type/skin.rb +1 -1
  346. data/tmpsets/set/mod005-04_settings/abstract/permission.rb +9 -9
  347. data/tmpsets/set/mod005-04_settings/right/script.rb +1 -1
  348. data/tmpsets/set/mod005-04_settings/right/structure.rb +0 -5
  349. data/tmpsets/set/mod005-04_settings/right/style.rb +2 -2
  350. data/tmpsets/set/mod005-04_settings/self/accountable.rb +1 -1
  351. data/tmpsets/set/mod005-04_settings/self/add_help.rb +1 -1
  352. data/tmpsets/set/mod005-04_settings/self/autoname.rb +1 -1
  353. data/tmpsets/set/mod005-04_settings/self/captcha.rb +1 -1
  354. data/tmpsets/set/mod005-04_settings/self/create.rb +1 -1
  355. data/tmpsets/set/mod005-04_settings/self/default.rb +1 -1
  356. data/tmpsets/set/mod005-04_settings/self/delete.rb +1 -1
  357. data/tmpsets/set/mod005-04_settings/self/help.rb +1 -1
  358. data/tmpsets/set/mod005-04_settings/self/input.rb +1 -1
  359. data/tmpsets/set/mod005-04_settings/self/layout.rb +1 -1
  360. data/tmpsets/set/mod005-04_settings/self/on_create.rb +1 -1
  361. data/tmpsets/set/mod005-04_settings/self/on_delete.rb +1 -1
  362. data/tmpsets/set/mod005-04_settings/self/on_update.rb +1 -1
  363. data/tmpsets/set/mod005-04_settings/self/options.rb +1 -1
  364. data/tmpsets/set/mod005-04_settings/self/options_label.rb +1 -1
  365. data/tmpsets/set/mod005-04_settings/self/read.rb +1 -1
  366. data/tmpsets/set/mod005-04_settings/self/script.rb +1 -1
  367. data/tmpsets/set/mod005-04_settings/self/structure.rb +1 -1
  368. data/tmpsets/set/mod005-04_settings/self/style.rb +1 -1
  369. data/tmpsets/set/mod005-04_settings/self/table_of_contents.rb +1 -1
  370. data/tmpsets/set/mod005-04_settings/self/thanks.rb +1 -1
  371. data/tmpsets/set/mod005-04_settings/self/update.rb +1 -1
  372. data/tmpsets/set/mod005-04_settings/type/setting.rb +14 -14
  373. data/tmpsets/set/mod006-05_email/all/follow.rb +24 -16
  374. data/tmpsets/set/mod006-05_email/all/notify.rb +25 -23
  375. data/tmpsets/set/mod006-05_email/all/observer.rb +8 -8
  376. data/tmpsets/set/mod006-05_email/right/bcc.rb +8 -8
  377. data/tmpsets/set/mod006-05_email/right/follow.rb +44 -17
  378. data/tmpsets/set/mod006-05_email/right/follow_fields.rb +1 -1
  379. data/tmpsets/set/mod006-05_email/right/following.rb +49 -40
  380. data/tmpsets/set/mod006-05_email/self/always.rb +2 -2
  381. data/tmpsets/set/mod006-05_email/self/created.rb +1 -1
  382. data/tmpsets/set/mod006-05_email/self/edited.rb +4 -4
  383. data/tmpsets/set/mod006-05_email/self/follow.rb +1 -1
  384. data/tmpsets/set/mod006-05_email/self/follow_defaults.rb +9 -9
  385. data/tmpsets/set/mod006-05_email/self/never.rb +1 -1
  386. data/tmpsets/set/mod006-05_email/type/email_template.rb +9 -9
  387. data/tmpsets/set/mod006-05_email/type_plus_right/user/follow.rb +17 -17
  388. data/tmpsets/set/mod007-05_standard/abstract/attachment.rb +98 -46
  389. data/tmpsets/set/mod007-05_standard/all/account.rb +5 -5
  390. data/tmpsets/set/mod007-05_standard/all/comment.rb +7 -7
  391. data/tmpsets/set/mod007-05_standard/all/error.rb +26 -26
  392. data/tmpsets/set/mod007-05_standard/all/event_viz.rb +1 -1
  393. data/tmpsets/set/mod007-05_standard/all/links.rb +10 -9
  394. data/tmpsets/set/mod007-05_standard/all/rich_html/content.rb +34 -34
  395. data/tmpsets/set/mod007-05_standard/all/rich_html/editing.rb +35 -35
  396. data/tmpsets/set/mod007-05_standard/all/rich_html/form.rb +20 -20
  397. data/tmpsets/set/mod007-05_standard/all/rich_html/header.rb +8 -8
  398. data/tmpsets/set/mod007-05_standard/all/rich_html/menu.rb +33 -33
  399. data/tmpsets/set/mod007-05_standard/all/rich_html/modal.rb +16 -16
  400. data/tmpsets/set/mod007-05_standard/all/rich_html/toolbar.rb +63 -63
  401. data/tmpsets/set/mod007-05_standard/all/rich_html/wrapper.rb +8 -8
  402. data/tmpsets/set/mod007-05_standard/right/account.rb +27 -27
  403. data/tmpsets/set/mod007-05_standard/right/email.rb +5 -5
  404. data/tmpsets/set/mod007-05_standard/right/password.rb +5 -5
  405. data/tmpsets/set/mod007-05_standard/rstar/rules.rb +52 -52
  406. data/tmpsets/set/mod007-05_standard/self/account_links.rb +27 -27
  407. data/tmpsets/set/mod007-05_standard/self/all.rb +1 -1
  408. data/tmpsets/set/mod007-05_standard/self/head.rb +5 -5
  409. data/tmpsets/set/mod007-05_standard/self/navbox.rb +11 -11
  410. data/tmpsets/set/mod007-05_standard/self/recent.rb +2 -2
  411. data/tmpsets/set/mod007-05_standard/self/search.rb +13 -13
  412. data/tmpsets/set/mod007-05_standard/self/signin.rb +19 -19
  413. data/tmpsets/set/mod007-05_standard/self/stats.rb +2 -2
  414. data/tmpsets/set/mod007-05_standard/type/basic.rb +1 -1
  415. data/tmpsets/set/mod007-05_standard/type/cardtype.rb +5 -5
  416. data/tmpsets/set/mod007-05_standard/type/date.rb +1 -1
  417. data/tmpsets/set/mod007-05_standard/type/file.rb +23 -8
  418. data/tmpsets/set/mod007-05_standard/type/image.rb +10 -8
  419. data/tmpsets/set/mod007-05_standard/type/number.rb +2 -2
  420. data/tmpsets/set/mod007-05_standard/type/phrase.rb +1 -1
  421. data/tmpsets/set/mod007-05_standard/type/search_type.rb +21 -19
  422. data/tmpsets/set/mod007-05_standard/type/session.rb +2 -2
  423. data/tmpsets/set/mod007-05_standard/type/set.rb +37 -37
  424. data/tmpsets/set/mod007-05_standard/type/signup.rb +25 -25
  425. data/tmpsets/set/mod007-05_standard/type/uri.rb +1 -1
  426. data/tmpsets/set/mod007-05_standard/type/user.rb +21 -21
  427. data/tmpsets/set/mod008-06_bootstrap/all/bootstrap/helper.rb +10 -10
  428. data/tmpsets/set/mod008-06_bootstrap/all/bootstrap/wrapper.rb +4 -4
  429. data/tmpsets/set/mod008-06_bootstrap/all/rich_bootstrap.rb +1 -1
  430. data/tmpsets/set_pattern/101-all_plus.rb +2 -2
  431. data/tmpsets/set_pattern/102-type.rb +1 -1
  432. data/tmpsets/set_pattern/103-star.rb +1 -1
  433. data/tmpsets/set_pattern/104-rstar.rb +2 -2
  434. data/tmpsets/set_pattern/105-right.rb +4 -4
  435. data/tmpsets/set_pattern/106-type_plus_right.rb +4 -4
  436. data/tmpsets/set_pattern/107-self.rb +1 -1
  437. metadata +7 -5
  438. data/lib/card/query/card_clause.rb +0 -528
  439. data/lib/card/query/ref_clause.rb +0 -47
  440. data/lib/card/query/value_clause.rb +0 -65
@@ -6,229 +6,222 @@ describe Card::Reference do
6
6
  Card::Auth.current_id = Card::WagnBotID
7
7
  end
8
8
 
9
- describe "references on hard templated cards should get updated" do
10
- it "on structuree creation" do
11
- Card.create! :name=>"JoeForm", :type=>'UserForm'
12
- Card["JoeForm"].format.render(:core)
13
- assert_equal ["joe_form+age", "joe_form+description", "joe_form+name"],
14
- Card["JoeForm"].includees.map(&:key).sort
15
- expect(Card["JoeForm"].references_expired).not_to eq(true)
9
+ describe 'references on hard templated cards should get updated' do
10
+ it 'on structuree creation' do
11
+ Card.create! name: 'JoeForm', type: 'UserForm'
12
+ Card['JoeForm'].format.render(:core)
13
+ assert_equal ['joe_form+age', 'joe_form+description', 'joe_form+name'],
14
+ Card['JoeForm'].includees.map(&:key).sort
15
+ expect(Card['JoeForm'].references_expired).not_to eq(true)
16
16
  end
17
17
 
18
- it "on template creation" do
19
- Card.create! :name=>"SpecialForm", :type=>'Cardtype'
20
- Card.create! :name=>"Form1", :type=>'SpecialForm', :content=>"foo"
21
- c = Card["Form1"]
18
+ it 'on template creation' do
19
+ Card.create! name: 'SpecialForm', type: 'Cardtype'
20
+ Card.create! name: 'Form1', type: 'SpecialForm', content: 'foo'
21
+ c = Card['Form1']
22
22
  expect(c.references_expired).to be_nil
23
- Card.create! :name=>"SpecialForm+*type+*structure", :content=>"{{+bar}}"
24
- c = Card["Form1"]
23
+ Card.create! name: 'SpecialForm+*type+*structure', content: '{{+bar}}'
24
+ c = Card['Form1']
25
25
  expect(c.references_expired).to be_truthy
26
- Card["Form1"].format.render(:core)
27
- c = Card["Form1"]
26
+ Card['Form1'].format.render(:core)
27
+ c = Card['Form1']
28
28
  expect(c.references_expired).to be_nil
29
- expect(Card["Form1"].includees.map(&:key)).to eq(["form1+bar"])
29
+ expect(Card['Form1'].includees.map(&:key)).to eq(['form1+bar'])
30
30
  end
31
31
 
32
- it "on template update" do
33
- Card.create! :name=>"JoeForm", :type=>'UserForm'
34
- tmpl = Card["UserForm+*type+*structure"]
35
- tmpl.content = "{{+monkey}} {{+banana}} {{+fruit}}";
32
+ it 'on template update' do
33
+ Card.create! name: 'JoeForm', type: 'UserForm'
34
+ tmpl = Card['UserForm+*type+*structure']
35
+ tmpl.content = '{{+monkey}} {{+banana}} {{+fruit}}';
36
36
  tmpl.save!
37
- expect(Card["JoeForm"].references_expired).to be_truthy
38
- Card["JoeForm"].format.render(:core)
39
- assert_equal ["joe_form+banana", "joe_form+fruit", "joe_form+monkey"],
40
- Card["JoeForm"].includees.map(&:key).sort
41
- expect(Card["JoeForm"].references_expired).not_to eq(true)
37
+ expect(Card['JoeForm'].references_expired).to be_truthy
38
+ Card['JoeForm'].format.render(:core)
39
+ assert_equal ['joe_form+banana', 'joe_form+fruit', 'joe_form+monkey'],
40
+ Card['JoeForm'].includees.map(&:key).sort
41
+ expect(Card['JoeForm'].references_expired).not_to eq(true)
42
42
  end
43
43
  end
44
44
 
45
- it "in references should survive cardtype change" do
46
- newcard("Banana","[[Yellow]]")
47
- newcard("Submarine","[[Yellow]]")
48
- newcard("Sun","[[Yellow]]")
49
- newcard("Yellow")
50
- expect(Card["Yellow"].referencers.map(&:name).sort).to eq(%w{ Banana Submarine Sun })
51
- y=Card["Yellow"];
52
- y.type_id= Card.fetch_id "UserForm";
45
+ it 'in references should survive cardtype change' do
46
+ newcard('Banana','[[Yellow]]')
47
+ newcard('Submarine','[[Yellow]]')
48
+ newcard('Sun','[[Yellow]]')
49
+ newcard('Yellow')
50
+ yellow_refs = Card['Yellow'].referencers.map(&:name).sort
51
+ expect(yellow_refs).to eq(%w{ Banana Submarine Sun })
52
+
53
+ y=Card['Yellow'];
54
+ y.type_id= Card.fetch_id 'UserForm';
53
55
  y.save!
54
- expect(Card["Yellow"].referencers.map(&:name).sort).to eq(%w{ Banana Submarine Sun })
56
+
57
+ yellow_refs = Card['Yellow'].referencers.map(&:name).sort
58
+ expect(yellow_refs).to eq(%w{ Banana Submarine Sun })
55
59
  end
56
60
 
57
- it "container inclusion" do
58
- Card.create :name=>'bob+city'
59
- Card.create :name=>'address+*right+*default',:content=>"{{_L+city}}"
60
- Card.create :name=>'bob+address'
61
- expect(Card.fetch('bob+address').includees.map(&:name)).to eq(["bob+city"])
62
- expect(Card.fetch('bob+city').includers.map(&:name)).to eq(["bob+address"])
61
+ it 'container inclusion' do
62
+ Card.create name: 'bob+city'
63
+ Card.create name: 'address+*right+*default', content: '{{_L+city}}'
64
+ Card.create name: 'bob+address'
65
+ expect(Card.fetch('bob+address').includees.map(&:name)).to eq(['bob+city'])
66
+ expect(Card.fetch('bob+city').includers.map(&:name)).to eq(['bob+address'])
63
67
  end
64
68
 
65
- it "pickup new links on rename" do
66
- @l = newcard("L", "[[Ethan]]") # no Ethan card yet...
67
- @e = newcard("Earthman")
68
- @e.update_attributes! :name => "Ethan" # NOW there is an Ethan card
69
- # @e.referencers.map(&:name).include("L") as the test was originally written, fails
69
+ it 'pickup new links on rename' do
70
+ @l = newcard('L', '[[Ethan]]') # no Ethan card yet...
71
+ @e = newcard('Earthman')
72
+ @e.update_attributes! name: 'Ethan' # NOW there is an Ethan card
70
73
  # do we need the links to be caught before reloading the card?
71
- expect(Card["Ethan"].referencers.map(&:name).include?("L")).not_to eq(nil)
74
+ expect(Card['Ethan'].referencers.map(&:name).include?('L')).not_to eq(nil)
72
75
  end
73
76
 
74
- it "should update references on rename when requested" do
77
+ it 'should update references on rename when requested' do
75
78
  watermelon = newcard('watermelon', 'mmmm')
76
79
  watermelon_seeds = newcard('watermelon+seeds', 'black')
77
- lew = newcard('Lew', "likes [[watermelon]] and [[watermelon+seeds|seeds]]")
80
+ lew = newcard('Lew', 'likes [[watermelon]] and [[watermelon+seeds|seeds]]')
78
81
 
79
82
  watermelon = Card['watermelon']
80
83
  watermelon.update_referencers = true
81
- watermelon.name="grapefruit"
84
+ watermelon.name='grapefruit'
82
85
  watermelon.save!
83
- expect(lew.reload.content).to eq("likes [[grapefruit]] and [[grapefruit+seeds|seeds]]")
86
+ result = 'likes [[grapefruit]] and [[grapefruit+seeds|seeds]]'
87
+ expect(lew.reload.content).to eq(result)
84
88
  end
85
89
 
86
- it "should update referencers on rename when requested (case 2)" do
90
+ it 'should update referencers on rename when requested (case 2)' do
87
91
  card = Card['Administrator Menu+*self+*read']
88
- refs = Card::Reference.where(:referee_id => Card::AdministratorID).map(&:referer_id).sort
92
+ old_refs = Card::Reference.where(referee_id: Card::AdministratorID)
93
+ old_referers = old_refs.map(&:referer_id).sort
94
+
89
95
  card.update_referencers = true
90
96
  card.name='Administrator Menu+*type+*read'
91
97
  card.save
92
- expect(Card::Reference.where(:referee_id => Card::AdministratorID).map(&:referer_id).sort).to eq(refs)
98
+
99
+ new_refs = Card::Reference.where(referee_id: Card::AdministratorID)
100
+ new_referers = new_refs.map(&:referer_id).sort
101
+ expect(old_refs).to eq(new_refs)
93
102
  end
94
103
 
95
- it "should not update references when not requested" do
104
+ it 'should not update references when not requested' do
96
105
 
97
106
  watermelon = newcard('watermelon', 'mmmm')
98
107
  watermelon_seeds = newcard('watermelon+seeds', 'black')
99
- lew = newcard('Lew', "likes [[watermelon]] and [[watermelon+seeds|seeds]]")
108
+ lew = newcard('Lew', 'likes [[watermelon]] and [[watermelon+seeds|seeds]]')
109
+
110
+ assert_equal [1, 1, 1, 1], lew.references_to.map(&:present),
111
+ 'links should not be Wanted before'
100
112
 
101
- assert_equal [1,1,1,1], lew.references_to.map(&:present), "links should not be Wanted before"
102
113
  watermelon = Card['watermelon']
103
114
  watermelon.update_referencers = false
104
- watermelon.name="grapefruit"
115
+ watermelon.name = 'grapefruit'
105
116
  watermelon.save!
106
- expect(lew.reload.content).to eq("likes [[watermelon]] and [[watermelon+seeds|seeds]]")
107
- assert_equal lew.references_to.order(:id).map(&:ref_type), ['L','P','P','L'], "links should be a LINK"
108
- assert_equal lew.references_to.order(:id).map(&:present), [ 0, 0, 1, 0 ], "only reference to +seeds should be present"
117
+ correct_content = 'likes [[watermelon]] and [[watermelon+seeds|seeds]]'
118
+ expect(lew.reload.content).to eq(correct_content)
119
+
120
+ ref_types = lew.references_to.order(:id).map(&:ref_type)
121
+ assert_equal ref_types, ['L','P','P','L'], 'links should be a LINK'
122
+ refs_are_present = lew.references_to.order(:id).map(&:present)
123
+ assert_equal refs_are_present, [0, 0, 1, 0],
124
+ 'only reference to +seeds should be present'
109
125
  end
110
126
 
111
- it "update referencing content on rename junction card" do
112
- @ab = Card["A+B"] #linked to from X, included by Y
113
- @ab.update_attributes! :name=>'Peanut+Butter', :update_referencers => true
127
+ it 'update referencing content on rename junction card' do
128
+ @ab = Card['A+B'] #linked to from X, included by Y
129
+ @ab.update_attributes! name: 'Peanut+Butter', update_referencers: true
114
130
  @x = Card['X']
115
- expect(@x.content).to eq("[[A]] [[Peanut+Butter]] [[T]]")
131
+ expect(@x.content).to eq('[[A]] [[Peanut+Butter]] [[T]]')
116
132
  end
117
133
 
118
- it "update referencing content on rename junction card" do
119
- @ab = Card["A+B"] #linked to from X, included by Y
120
- @ab.update_attributes! :name=>'Peanut+Butter', :update_referencers=>false
134
+ it 'update referencing content on rename junction card' do
135
+ @ab = Card['A+B'] #linked to from X, included by Y
136
+ @ab.update_attributes! name: 'Peanut+Butter', update_referencers: false
121
137
  @x = Card['X']
122
- expect(@x.content).to eq("[[A]] [[A+B]] [[T]]")
138
+ expect(@x.content).to eq('[[A]] [[A+B]] [[T]]')
123
139
  end
124
140
 
125
- it "template inclusion" do
126
- cardtype = Card.create! :name=>"ColorType", :type=>'Cardtype', :content=>""
127
- Card.create! :name=>"ColorType+*type+*structure", :content=>"{{+rgb}}"
128
- green = Card.create! :name=>"green", :type=>'ColorType'
141
+ it 'template inclusion' do
142
+ Card.create! name: 'ColorType', type: 'Cardtype', content: ''
143
+ Card.create! name: 'ColorType+*type+*structure', content: '{{+rgb}}'
144
+ green = Card.create! name: 'green', type: 'ColorType'
129
145
  rgb = newcard 'rgb'
130
- green_rgb = Card.create! :name => "green+rgb", :content=>"#00ff00"
146
+ green_rgb = Card.create! name: 'green+rgb', content: '#00ff00'
131
147
 
132
- expect(green.reload.includees.map(&:name)).to eq(["green+rgb"])
148
+ expect(green.reload.includees.map(&:name)).to eq(['green+rgb'])
133
149
  expect(green_rgb.reload.includers.map(&:name)).to eq(['green'])
134
150
  end
135
151
 
136
- it "simple link" do
137
- alpha = Card.create :name=>'alpha'
138
- beta = Card.create :name=>'beta', :content=>"I link to [[alpha]]"
152
+ it 'simple link' do
153
+ Card.create name: 'alpha'
154
+ Card.create name: 'beta', content: 'I link to [[alpha]]'
139
155
  expect(Card['alpha'].referencers.map(&:name)).to eq(['beta'])
140
156
  expect(Card['beta'].referees.map(&:name)).to eq(['alpha'])
141
157
  end
142
158
 
143
- it "link with spaces" do
144
- alpha = Card.create! :name=>'alpha card'
145
- beta = Card.create! :name=>'beta card', :content=>"I link to [[alpha_card|ALPHA CARD]]"
159
+ it 'link with spaces' do
160
+ Card.create! name: 'alpha card'
161
+ Card.create! name: 'beta card', content: 'I link to [[alpha_card]]'
146
162
  expect(Card['beta card'].referees.map(&:name)).to eq(['alpha card'])
147
163
  expect(Card['alpha card'].referencers.map(&:name)).to eq(['beta card'])
148
164
  end
149
165
 
150
166
 
151
- it "simple inclusion" do
152
- alpha = Card.create :name=>'alpha'
153
- beta = Card.create :name=>'beta', :content=>"I include to {{alpha}}"
167
+ it 'simple inclusion' do
168
+ Card.create name: 'alpha'
169
+ Card.create name: 'beta', content: 'I nest {{alpha}}'
154
170
  expect(Card['beta'].includees.map(&:name)).to eq(['alpha'])
155
171
  expect(Card['alpha'].includers.map(&:name)).to eq(['beta'])
156
172
  end
157
173
 
158
- it "non simple link" do
159
- alpha = Card.create :name=>'alpha'
160
- beta = Card.create :name=>'beta', :content=>"I link to [[alpha|ALPHA]]"
174
+ it 'non simple link' do
175
+ Card.create name: 'alpha'
176
+ Card.create name: 'beta', content: 'I link to [[alpha|ALPHA]]'
161
177
  expect(Card['beta'].referees.map(&:name)).to eq(['alpha'])
162
178
  expect(Card['alpha'].referencers.map(&:name)).to eq(['beta'])
163
179
  end
164
180
 
165
- it "query" do
166
- Card.create :type=>'Search', :name=>'search with references',
167
- :content=>'{"name":"X", "right_plus":["Y",{"content":["in","A","B"]}]}'
168
- expect(Card['Y'].referencers.map(&:name)).to include('search with references')
169
- expect(Card['search with references'].referees.map(&:name).sort).to eq ["A","B","X","Y"]
181
+ it 'query' do
182
+ Card.create(
183
+ type: 'Search',
184
+ name: 'search with references',
185
+ content: '{"name":"X", "right_plus":["Y",{"content":["in","A","B"]}]}'
186
+ )
187
+ y_referencers = Card['Y'].referencers.map &:name
188
+ expect(y_referencers).to include('search with references')
189
+
190
+ search_referees = Card['search with references'].referees.map(&:name).sort
191
+ expect(search_referees).to eq ['A','B','X','Y']
170
192
  end
171
193
 
172
- it "handles contextual names in Basic cards" do
173
- card = Card.create :type=>'Basic', :name=>'basic with references',
174
- :content=>'{{_+A}}'
175
- Card['A'].update_attributes! :name=>'AAA', :update_referencers=>true
176
- expect(Card['basic with references'].content).to eq '{{_+AAA}}'
194
+ it 'handles contextual names in Basic cards' do
195
+ Card.create type: 'Basic', name: 'basic w refs', content: '{{_+A}}'
196
+ Card['A'].update_attributes! name: 'AAA', update_referencers: true
197
+ expect(Card['basic w refs'].content).to eq '{{_+AAA}}'
177
198
  end
178
199
 
179
- it "handles contextual names in Search cards" do
180
- card = Card.create :type=>'Search', :name=>'search with references',
181
- :content=>'{"name":"_+A"}'
182
- Card['A'].update_attributes! :name=>'AAA', :update_referencers=>true
183
- expect(Card['search with references'].content).to eq '{"name":"_+AAA"}'
200
+ it 'handles contextual names in Search cards' do
201
+ Card.create type: 'Search', name: 'search w refs', content: '{"name":"_+A"}'
202
+ Card['A'].update_attributes! name: 'AAA', update_referencers: true
203
+ expect(Card['search w refs'].content).to eq '{"name":"_+AAA"}'
184
204
  end
185
205
 
186
- it "should handle commented inclusion" do
187
- c = Card.create :name=>'inclusion comment test', :content=>'{{## hi mom }}'
206
+ it 'should handle commented inclusion' do
207
+ c = Card.create name: 'inclusion comment test', content: '{{## hi mom }}'
188
208
  expect(c.errors.any?).to be_falsey
189
209
  end
190
210
 
191
211
 
192
- it "pickup new links on create" do
193
- @l = newcard("woof", "[[Lewdog]]") # no Lewdog card yet...
194
- @e = newcard("Lewdog") # now there is
212
+ it 'pickup new links on create' do
213
+ @l = newcard('woof', '[[Lewdog]]') # no Lewdog card yet...
214
+ @e = newcard('Lewdog') # now there is
195
215
  # NOTE @e.referencers does not work, you have to reload
196
- expect(@e.reload.referencers.map(&:name).include?("woof")).not_to eq(nil)
216
+ expect(@e.reload.referencers.map(&:name).include?('woof')).not_to eq(nil)
197
217
  end
198
218
 
199
- it "pickup new inclusions on create" do
200
- @l = Card.create! :name=>"woof", :content=>"{{Lewdog}}" # no Lewdog card yet...
201
- @e = Card.new(:name=>"Lewdog", :content=>"grrr") # now there is
202
- expect(@e.name_referencers.map(&:name).include?("woof")).not_to eq(nil)
203
- end
204
-
205
- =begin
206
-
207
- # This test doesn't make much sense to me... LWH
208
- it "revise changes references from wanted to linked for new cards" do
209
- new_card = Card.create(:name=>'NewCard')
210
- new_card.revise('Reference to [[WantedCard]], and to [[WantedCard2]]', Time.now, Card['quentin'].account),
211
- new_format)
212
-
213
- references = new_card.card_references(true)
214
- references.size.should == 2
215
- references[0].referee_key.should == 'WantedCard'
216
- references[0].ref_type.should == Card::Reference::WANTED_PAGE
217
- references[1].referee_key.should == 'WantedCard2'
218
- references[1].ref_type.should == Card::Reference::WANTED_PAGE
219
-
220
- wanted_card = Card.create(:name=>'WantedCard')
221
- wanted_card.revise('And here it is!', Time.now, Card['quentin'].account), new_format)
222
-
223
- # link type stored for NewCard -> WantedCard reference should change from WANTED to LINKED
224
- # reference NewCard -> WantedCard2 should remain the same
225
- references = new_card.card_references(true)
226
- references.size.should == 2
227
- references[0].referee_key.should == 'WantedCard'
228
- references[0].ref_type.should == Card::Reference::LINKED_PAGE
229
- references[1].referee_key.should == 'WantedCard2'
230
- references[1].ref_type.should == Card::Reference::WANTED_PAGE
219
+ it 'pickup new inclusions on create' do
220
+ @l = Card.create! name: 'woof', content: '{{Lewdog}}'
221
+ # no Lewdog card yet...
222
+ @e = Card.new name: 'Lewdog', content: 'grrr'
223
+ # now it's inititated
224
+ expect(@e.name_referencers.map(&:name).include?('woof')).not_to eq(nil)
231
225
  end
232
- =end
233
226
 
234
227
  end
@@ -18,21 +18,21 @@ end
18
18
  #FIXME - these should probably be in pattern-specific specs, though that may not leave much to test in the base class :)
19
19
 
20
20
  describe Card::RightSet do
21
- it_generates :name => "author+*right", :from => Card.new( :name => "Iliad+author" )
22
- it_generates :name => "author+*right", :from => Card.new( :name => "+author" )
21
+ it_generates name: 'author+*right', from: Card.new(name: 'Iliad+author')
22
+ it_generates name: 'author+*right', from: Card.new(name: '+author')
23
23
  end
24
24
 
25
25
  describe Card::TypeSet do
26
- it_generates :name => "Book+*type", :from => Card.new( :type => "Book" )
26
+ it_generates name: 'Book+*type', from: Card.new(type: "Book")
27
27
  end
28
28
 
29
29
  describe Card::TypeSet do
30
30
  before :each do
31
31
  Card::Auth.as_bot do
32
- @mylist = Card.create! :name=>'MyList', :type_id=>Card::CardtypeID
33
- Card.create :name=>'MyList+*type+*default', :type_id=>Card::PointerID
32
+ @mylist = Card.create! name: 'MyList', type_id: Card::CardtypeID
33
+ Card.create name: 'MyList+*type+*default', type_id: Card::PointerID
34
34
  end
35
- @mylist_card = Card.create :name=>'ip', :type_id=>@mylist.id
35
+ @mylist_card = Card.create name: 'ip', type_id: @mylist.id
36
36
  end
37
37
  # similar tests for an inherited type of Pointer
38
38
  it 'has inherited set module' do
@@ -44,13 +44,14 @@ describe Card::TypeSet do
44
44
  end
45
45
 
46
46
  describe Card::AllPlusSet do
47
- it_generates :name => "*all plus", :from => Card.new( :name => "Book+author" )
47
+ it_generates name: '*all plus', from: Card.new(name: 'Book+author')
48
48
  end
49
49
 
50
50
  describe Card::AllSet do
51
- it_generates :name => "*all", :from => Card.new( :type => "Book" )
51
+ it_generates name: '*all', from: Card.new(type: 'Book')
52
52
  end
53
53
 
54
54
  describe Card::TypePlusRightSet do
55
- it_generates :name => "Book+author+*type plus right", :from => Card.new( :name=>"Iliad+author" )
55
+ author_card = Card.new(name: 'Iliad+author')
56
+ it_generates name: 'Book+author+*type plus right', from: author_card
56
57
  end
@@ -3,14 +3,14 @@
3
3
  # module Card::Set::Right::Account # won't this conflict with a real set (and fail to provide controlled test?)
4
4
  # extend Card::Set
5
5
  #
6
- # card_accessor :role, :default => "request", :type=>:phrase
7
- # card_writer :write, :default => "request", :type=>:phrase
8
- # card_reader :read, :default => "request", :type=>:phrase
6
+ # card_accessor :role, default: "request", type: :phrase
7
+ # card_writer :write, default: "request", type: :phrase
8
+ # card_reader :read, default: "request", type: :phrase
9
9
  # end
10
10
  #
11
11
  # describe Card do
12
12
  # before do
13
- # @account_card = Card['sara'].fetch :trait=>:account
13
+ # @account_card = Card['sara'].fetch trait: :account
14
14
  # end
15
15
  #
16
16
  # describe "Read and write card attribute" do
@@ -34,19 +34,19 @@
34
34
  # # @account_card.status.should == 'pending'
35
35
  # Card::Auth.as_bot { @account_card.save }
36
36
  # # Card.cache.reset
37
- # expect(tcard = Card['sara'].fetch(:trait=>:account)).to be
37
+ # expect(tcard = Card['sara'].fetch(trait: :account)).to be
38
38
  # expect(tcard.status).to eq('pending')
39
- # expect(tcard.fetch(:trait=>:write).content).to eq('test_value')
39
+ # expect(tcard.fetch(trait: :write).content).to eq('test_value')
40
40
  # end
41
41
  #
42
42
  # end
43
43
  #
44
- # let(:card) { Card.new(:name=>'simple') }
45
- # let(:card_self) { Card.new(:name=>'*navbox') }
46
- # let(:card_right) { Card.new(:name=>'card+*right') }
47
- # let(:card_type_search) { Card.new(:name=>'search_me', :type=>Card::SearchID) }
44
+ # let(:card) { Card.new(name: 'simple') }
45
+ # let(:card_self) { Card.new(name: '*navbox') }
46
+ # let(:card_right) { Card.new(name: 'card+*right') }
47
+ # let(:card_type_search) { Card.new(name: 'search_me', type: Card::SearchID) }
48
48
  # let(:card_double) { Card }
49
- # let(:format_double) { object_double(Card.new(:name=>'card+*right').format) }
49
+ # let(:format_double) { object_double(Card.new(name: 'card+*right').format) }
50
50
  #
51
51
  # #let(:html_format_double) { Card::HtmlFormat }
52
52
  # let(:html_format_double) { double("Card::HtmlFormat") }