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
@@ -2,7 +2,7 @@
2
2
 
3
3
  describe "Card::Set::All::Follow" do
4
4
  def follow_view card_name
5
- render_card :follow_link, :name=>card_name
5
+ render_card :follow_link, name: card_name
6
6
  end
7
7
 
8
8
  describe "follower_ids" do
@@ -57,7 +57,7 @@ describe "Card::Set::All::Follow" do
57
57
  end
58
58
 
59
59
  def assert_following_view name, args
60
- assert_follow_view name, args.reverse_merge(:following => true, :text=>"unfollow" )
60
+ assert_follow_view name, args.reverse_merge(following: true, text: "unfollow" )
61
61
  end
62
62
 
63
63
  # href="/card/update/Home+*self+philipp+*follow?card%5Bcontent%5D=%5B%5Bnever%5D%5D&success%5Bid%5D=Home&success%5Bview%5D=follow"
@@ -83,51 +83,51 @@ describe "Card::Set::All::Follow" do
83
83
 
84
84
  context "when not following" do
85
85
  it 'renders follow link' do
86
- assert_follow_view 'No One Sees Me', :add_set=>'No One Sees Me+*self'
86
+ assert_follow_view 'No One Sees Me', add_set: 'No One Sees Me+*self'
87
87
  end
88
88
  end
89
89
 
90
90
  context "when following *self" do
91
91
  it 'renders following link' do
92
- assert_following_view 'Look At Me', :add_set=>'Look at me+*self'
92
+ assert_following_view 'Look At Me', add_set: 'Look at me+*self'
93
93
  end
94
94
  end
95
95
 
96
96
  context "when following *type" do
97
97
  it 'renders following link' do
98
- assert_following_view 'Sunglasses', :add_set=>'Sunglasses+*self'
98
+ assert_following_view 'Sunglasses', add_set: 'Sunglasses+*self'
99
99
  end
100
100
  end
101
101
 
102
102
  context "when following cardtype card" do
103
103
  it 'renders following all link' do
104
- assert_following_view 'Optic', :add_set=>'Optic+*type', :text=>'unfollow'
104
+ assert_following_view 'Optic', add_set: 'Optic+*type', text: 'unfollow'
105
105
  end
106
106
  end
107
107
 
108
108
  context "when not following cardtype card" do
109
109
  it "renders 'follow all' link" do
110
- assert_follow_view 'Basic', :add_set=>'Basic+*type', :text=>'follow'
110
+ assert_follow_view 'Basic', add_set: 'Basic+*type', text: 'follow'
111
111
  end
112
112
  end
113
113
 
114
114
  context "when following *right" do
115
115
  it "renders following link" do
116
- assert_following_view 'Magnifier+lens', :add_set=>'Magnifier+lens+*self'
116
+ assert_following_view 'Magnifier+lens', add_set: 'Magnifier+lens+*self'
117
117
  end
118
118
  end
119
119
 
120
120
  context 'when following content I created' do
121
121
  before { Card::Auth.current_id = Card['Narcissist'].id }
122
122
  it "renders following link" do
123
- assert_following_view 'Sunglasses', :add_set=>'Sunglasses+*self', :user=>'Narcissist'
123
+ assert_following_view 'Sunglasses', add_set: 'Sunglasses+*self', user: 'Narcissist'
124
124
  end
125
125
  end
126
126
 
127
127
  context 'when following content I edited' do
128
128
  before { Card::Auth.current_id = Card['Narcissist'].id }
129
129
  it "renders following link" do
130
- assert_following_view 'Magnifier+lens', :add_set=>'Magnifier+lens+*self', :user=>'Narcissist'
130
+ assert_following_view 'Magnifier+lens', add_set: 'Magnifier+lens+*self', user: 'Narcissist'
131
131
  end
132
132
  end
133
133
  end
@@ -4,18 +4,18 @@ shared_examples_for 'notifications' do
4
4
  describe '#list_of_changes' do
5
5
  name = 'subedit notice'
6
6
  content = 'new content'
7
-
7
+
8
8
  before do
9
- @card = Card.create!(:name=>name, :content=>content)
9
+ @card = Card.create!(name: name, content: content)
10
10
  end
11
- subject { @card.format(:format=>format).render_list_of_changes }
12
-
11
+ subject { @card.format(format: format).render_list_of_changes }
12
+
13
13
  context 'for a new card' do
14
14
  it { is_expected.to include "content: #{content}" }
15
15
  it { is_expected.to include 'cardtype: Basic' }
16
16
  end
17
17
  context 'for a updated card' do
18
- before { @card.update_attributes!(:name=>'bnn card', :type=>:pointer, :content=>'changed content') }
18
+ before { @card.update_attributes!(name: 'bnn card', type: :pointer, content: 'changed content') }
19
19
  it { is_expected.to include 'new content: [[changed content]]' }
20
20
  it { is_expected.to include 'new cardtype: Pointer' }
21
21
  it { is_expected.to include 'new name: bnn card' }
@@ -24,25 +24,25 @@ shared_examples_for 'notifications' do
24
24
  before { @card.delete }
25
25
  it { is_expected.to be_empty }
26
26
  end
27
-
27
+
28
28
  context 'for a given action' do
29
29
  subject do
30
30
  action = @card.last_action
31
- @card.update_attributes!(:name=>'bnn card', :type=>:pointer, :content=>'changed content')
32
- @card.format(:format=>format).render_list_of_changes(:action=>action)
31
+ @card.update_attributes!(name: 'bnn card', type: :pointer, content: 'changed content')
32
+ @card.format(format: format).render_list_of_changes(action: action)
33
33
  end
34
34
  it { is_expected.to include "content: #{content}" }
35
35
  end
36
36
  context 'for a given action id' do
37
37
  subject do
38
38
  action_id = @card.last_action.id
39
- @card.update_attributes!(:name=>'bnn card', :type=>:pointer, :content=>'changed content')
40
- @card.format(:format=>format).render_list_of_changes(:action_id=>action_id)
39
+ @card.update_attributes!(name: 'bnn card', type: :pointer, content: 'changed content')
40
+ @card.format(format: format).render_list_of_changes(action_id: action_id)
41
41
  end
42
42
  it { is_expected.to include "content: #{content}" }
43
43
  end
44
44
  end
45
-
45
+
46
46
  describe 'subedit_notice' do
47
47
  def list_of_changes_for card
48
48
  card.db_content
@@ -50,27 +50,27 @@ shared_examples_for 'notifications' do
50
50
  name = 'subedit notice card'
51
51
  content = 'new content'
52
52
  before do
53
- @card = Card.create!(:name=>name, :content=>content)
53
+ @card = Card.create!(name: name, content: content)
54
54
  end
55
- subject { @card.format(:format=>format).render_subedit_notice }
56
-
55
+ subject { @card.format(format: format).render_subedit_notice }
56
+
57
57
  context 'for a new card' do
58
58
  it { is_expected.to include name }
59
59
  it { is_expected.to include 'created' }
60
60
  it { is_expected.to include list_of_changes_for @card }
61
61
  end
62
-
62
+
63
63
  context 'for a updated card' do
64
64
  changed_name = 'changed subedit notice'
65
65
  changed_content = 'changed content'
66
- before { @card.update_attributes!(:name=>changed_name, :content=>changed_content) }
66
+ before { @card.update_attributes!(name: changed_name, content: changed_content) }
67
67
  it { is_expected.to include changed_name }
68
68
  it { is_expected.to include 'updated' }
69
69
  it { is_expected.to include list_of_changes_for @card }
70
70
  end
71
-
71
+
72
72
  context 'for a deleted card' do
73
- before { @card.delete }
73
+ before { @card.delete }
74
74
  it { is_expected.to include name }
75
75
  it { is_expected.to include 'deleted' }
76
76
  end
@@ -79,7 +79,7 @@ end
79
79
 
80
80
 
81
81
  describe Card::Set::All::Notify do
82
-
82
+
83
83
  describe 'content of notification email' do
84
84
  context 'for new card with subcards' do
85
85
  name = "another card with subcards"
@@ -88,21 +88,21 @@ describe Card::Set::All::Notify do
88
88
  sub2_content = 'new content of subcard 2'
89
89
  before do
90
90
  Card::Auth.as_bot do
91
- @card = Card.create!(:name=>name, :content=>content,
92
- :subcards=>{ '+s1'=>{:content=>sub1_content},
93
- '+s2'=>{:content=>sub2_content} })
91
+ @card = Card.create!(name: name, content: content,
92
+ subcards: { '+s1'=>{content: sub1_content},
93
+ '+s2'=>{content: sub2_content} })
94
94
  end
95
95
  end
96
- subject {
96
+ subject {
97
97
  Card[:follower_notification_email].format.render_mail(
98
- :context => @card.refresh(true),
99
- :to => Card['Joe User'].email,
100
- :follower => Card['Joe User'].name,
101
- :followed_set => "#{@card.name}+*self",
102
- :follow_option => '*always'
98
+ context: @card.refresh(true),
99
+ to: Card['Joe User'].email,
100
+ follower: Card['Joe User'].name,
101
+ followed_set: "#{@card.name}+*self",
102
+ follow_option: '*always'
103
103
  ).text_part.body.raw_source
104
104
  }
105
-
105
+
106
106
  it { is_expected.to include content }
107
107
  it { is_expected.to include sub1_content }
108
108
  it { is_expected.to include sub2_content }
@@ -110,7 +110,7 @@ describe Card::Set::All::Notify do
110
110
  context 'and missing permissions' do
111
111
  context 'for subcard' do
112
112
  before do
113
- Card.create_or_update! "#{name}+s1+*self+*read",:type=>'Pointer',:content=>'[[Administrator]]'
113
+ Card.create_or_update! "#{name}+s1+*self+*read", type: 'Pointer', content: '[[Administrator]]'
114
114
  end
115
115
  it "excludes subcard content" do
116
116
  is_expected.not_to include sub1_content
@@ -118,18 +118,18 @@ describe Card::Set::All::Notify do
118
118
  end
119
119
  end
120
120
  context 'for main card' do
121
- subject {
121
+ subject {
122
122
  Card[:follower_notification_email].format.render_mail(
123
- :context => @card.refresh(true),
124
- :to => Card['Joe User'].email,
125
- :follower => Card['Joe User'].name,
126
- :followed_set => @card.name+"+s1+*self",
127
- :follow_option => '*always'
123
+ context: @card.refresh(true),
124
+ to: Card['Joe User'].email,
125
+ follower: Card['Joe User'].name,
126
+ followed_set: @card.name+"+s1+*self",
127
+ follow_option: '*always'
128
128
  ).text_part.body.raw_source
129
129
  }
130
130
  before do
131
- Card.create_or_update! "#{name}+*self+*read",:type=>'Pointer',:content=>'[[Administrator]]'
132
- Card.create_or_update! "#{name}+s1+*self+*read",:type=>'Pointer',:content=>'[[Anyone]]'
131
+ Card.create_or_update! "#{name}+*self+*read",type: 'Pointer',content: '[[Administrator]]'
132
+ Card.create_or_update! "#{name}+s1+*self+*read",type: 'Pointer',content: '[[Anyone]]'
133
133
  end
134
134
  it 'includes subcard content' do
135
135
  is_expected.to include sub1_content
@@ -141,9 +141,9 @@ describe Card::Set::All::Notify do
141
141
  end
142
142
  context 'for all parts' do
143
143
  before do
144
- Card.create_or_update! "#{name}+s1+*self+*read",:type=>'Pointer',:content=>'[[Administrator]]'
145
- Card.create_or_update! "#{name}+s2+*self+*read",:type=>'Pointer',:content=>'[[Administrator]]'
146
- Card.create_or_update! "#{name}+*self+*read",:type=>'Pointer',:content=>'[[Administrator]]'
144
+ Card.create_or_update! "#{name}+s1+*self+*read",type: 'Pointer',content: '[[Administrator]]'
145
+ Card.create_or_update! "#{name}+s2+*self+*read",type: 'Pointer',content: '[[Administrator]]'
146
+ Card.create_or_update! "#{name}+*self+*read",type: 'Pointer',content: '[[Administrator]]'
147
147
  end
148
148
  it { is_expected.not_to include content }
149
149
  it { is_expected.not_to include sub1_content }
@@ -155,8 +155,8 @@ describe Card::Set::All::Notify do
155
155
  end
156
156
  end
157
157
  end
158
-
159
-
158
+
159
+
160
160
  describe 'html format' do
161
161
  include_examples 'notifications' do
162
162
  let(:format) { 'email_html' }
@@ -174,16 +174,16 @@ describe Card::Set::All::Notify do
174
174
  sub1_content = 'new content of subcard 1'
175
175
  sub2_content = 'new content of subcard 2'
176
176
  Card::Auth.as_bot do
177
- @card = Card.create!(:name=>name, :content=>content,
178
- :subcards=>{ '+s1'=>{:content=>sub1_content},
179
- '+s2'=>{:content=>sub2_content} })
177
+ @card = Card.create!(name: name, content: content,
178
+ subcards: { '+s1'=>{content: sub1_content},
179
+ '+s2'=>{content: sub2_content} })
180
180
  end
181
181
  result = Card[:follower_notification_email].format.render_mail(
182
- :context => @card,
183
- :to => Card['Joe User'].email,
184
- :follower => Card['Joe User'].name,
185
- :followed_set => "#{@card.name}+*self",
186
- :follow_option => '*always'
182
+ context: @card,
183
+ to: Card['Joe User'].email,
184
+ follower: Card['Joe User'].name,
185
+ followed_set: "#{@card.name}+*self",
186
+ follow_option: '*always'
187
187
  ).text_part.body.raw_source
188
188
  expect(result).to eq(%{"another card with subcards" was just created by Joe User.
189
189
 
@@ -214,7 +214,7 @@ Use this link to unfollow /update/Joe_User+*follow?card%5Bsubcards%5D%5Banother+
214
214
  })
215
215
  end
216
216
  end
217
-
217
+
218
218
 
219
219
  describe "#notify_followers" do
220
220
  def expect_user user_name
@@ -224,16 +224,16 @@ Use this link to unfollow /update/Joe_User+*follow?card%5Bsubcards%5D%5Banother+
224
224
  def be_notified
225
225
  receive(:send_change_notice)
226
226
  end
227
-
227
+
228
228
  def be_notified_of set_name, option_name='*always'
229
229
  receive(:send_change_notice).with(kind_of(Card::Act), set_name, option_name)
230
230
  end
231
-
231
+
232
232
  def update card_name, new_content='updated content'
233
- Card[card_name].update_attributes! :content=>new_content
233
+ Card[card_name].update_attributes! content: new_content
234
234
  end
235
-
236
-
235
+
236
+
237
237
 
238
238
  it "sends notifications of edits" do
239
239
  expect_user("Big Brother").to be_notified_of "All Eyes On Me+*self"
@@ -245,7 +245,7 @@ Use this link to unfollow /update/Joe_User+*follow?card%5Bsubcards%5D%5Banother+
245
245
  expect_user("Big Brother").not_to be_notified
246
246
  update "Google glass"
247
247
  end
248
-
248
+
249
249
  it "sends only one notification per user" do
250
250
  expect_user("Big Brother").to receive(:send_change_notice).exactly(1)
251
251
  update "Google glass"
@@ -255,16 +255,16 @@ Use this link to unfollow /update/Joe_User+*follow?card%5Bsubcards%5D%5Banother+
255
255
  expect_user("Big Brother").not_to be_notified
256
256
  update "No One Sees Me"
257
257
  end
258
-
259
-
260
-
258
+
259
+
260
+
261
261
  context "when following *type sets" do
262
262
  before do
263
263
  Card::Auth.current_id = Card['joe admin'].id
264
264
  end
265
-
265
+
266
266
  it "sends notifications of new card" do
267
- new_card = Card.new :name => "Microscope", :type => "Optic"
267
+ new_card = Card.new name: "Microscope", type: "Optic"
268
268
  expect_user("Optic fan").to be_notified_of "Optic+*type", "*always"
269
269
  new_card.save!
270
270
  end
@@ -274,14 +274,14 @@ Use this link to unfollow /update/Joe_User+*follow?card%5Bsubcards%5D%5Banother+
274
274
  update "Sunglasses"
275
275
  end
276
276
  end
277
-
277
+
278
278
  context 'when following *right sets' do
279
279
  it "sends notifications of new card" do
280
- new_card = Card.new :name=>"Telescope+lens"
280
+ new_card = Card.new name: "Telescope+lens"
281
281
  expect_user("Big Brother").to be_notified_of "lens+*right", '*always'
282
282
  new_card.save!
283
283
  end
284
-
284
+
285
285
  it "sends notifications of update" do
286
286
  expect_user("Big Brother").to be_notified_of "lens+*right", '*always'
287
287
  update "Magnifier+lens"
@@ -294,7 +294,7 @@ Use this link to unfollow /update/Joe_User+*follow?card%5Bsubcards%5D%5Banother+
294
294
  update 'Sunglasses'
295
295
  end
296
296
  end
297
-
297
+
298
298
  context 'when following "content I edited"' do
299
299
  it 'sends notifications of update' do
300
300
  expect_user('Narcissist').to be_notified_of '*all', '*edited'
@@ -306,46 +306,46 @@ Use this link to unfollow /update/Joe_User+*follow?card%5Bsubcards%5D%5Banother+
306
306
  context "when following ascendant" do
307
307
  it "doesn't sends notification of arbitrary subcards" do
308
308
  expect_user('Sunglasses fan').not_to be_notified
309
- Card.create :name=>'Sunglasses+about'
309
+ Card.create name: 'Sunglasses+about'
310
310
  end
311
-
311
+
312
312
  context 'and follow fields rule contains subcards' do
313
313
  it 'sends notification of new subcard' do
314
- new_card = Card.new :name=>'Sunglasses+producer'
314
+ new_card = Card.new name: 'Sunglasses+producer'
315
315
  expect_user('Sunglasses fan').to be_notified_of 'Sunglasses+*self', '*always'
316
316
  new_card.save!
317
317
  end
318
-
318
+
319
319
  it 'sends notification of updated subcard' do
320
320
  expect_user('Sunglasses fan').to be_notified_of 'Sunglasses+*self', '*always'
321
321
  update 'Sunglasses+price'
322
322
  end
323
323
  end
324
-
324
+
325
325
  context "and follow fields rule contains *include" do
326
326
  it "sends notification of new included card" do
327
- new_card = Card.new :name=>'Sunglasses+lens'
327
+ new_card = Card.new name: 'Sunglasses+lens'
328
328
  expect_user("Sunglasses fan").to be_notified_of "Sunglasses+*self"
329
329
  new_card.save!
330
330
  end
331
-
331
+
332
332
  it "sends notification of updated included card" do
333
333
  expect_user("Sunglasses fan").to be_notified_of "Sunglasses+*self"
334
334
  update 'Sunglasses+tint'
335
335
  end
336
-
336
+
337
337
  it "doesn't send notification of not included card" do
338
- new_card = Card.new :name=>'Sunglasses+frame'
338
+ new_card = Card.new name: 'Sunglasses+frame'
339
339
  expect_user("Sunglasses fan").not_to be_notified
340
340
  new_card.save!
341
- end
341
+ end
342
342
  end
343
-
343
+
344
344
  context "and follow fields rule doesn't contain *include" do
345
345
  it "doesn't send notification of included card" do
346
346
  expect_user('Big Brother').not_to be_notified
347
- Card.create! :name=>'Google glass+price'
348
- end
347
+ Card.create! name: 'Google glass+price'
348
+ end
349
349
  end
350
350
  end
351
351
  context 'when following a set' do
@@ -353,9 +353,9 @@ Use this link to unfollow /update/Joe_User+*follow?card%5Bsubcards%5D%5Banother+
353
353
  expect_user('Optic fan').to be_notified_of 'Optic+*type'
354
354
  update 'Sunglasses+tint'
355
355
  end
356
-
356
+
357
357
  it 'sends notification of subcard mentioned in follow fields rule' do
358
- expect_user('Optic fan').to be_notified_of 'Optic+*type'
358
+ expect_user('Optic fan').to be_notified_of 'Optic+*type'
359
359
  update 'Sunglasses+price'
360
360
  end
361
361
  end
@@ -3,48 +3,48 @@
3
3
  describe Card::Set::Type::EmailTemplate do
4
4
  before :each do
5
5
  Card::Auth.as_bot do
6
- Card.create! :name=>"mail template", :type_code=>'email_template', :subcards=>{'+*html message'=>{content: 'Hi Joe! My name is {{_self|name}}'},
6
+ Card.create! name: "mail template", type_code: 'email_template', subcards: {'+*html message'=>{content: 'Hi Joe! My name is {{_self|name}}'},
7
7
  '+*to'=>{content: 'joe@user.com'},
8
8
  '+*from'=>{content: 'from@user.com'} }
9
9
  end
10
10
  end
11
11
  it 'sends email on update' do
12
12
  Card::Auth.as_bot do
13
- Card.create! :name=>"mail test+*self+*on update", type_code: :pointer, content: "[[mail template]]"
13
+ Card.create! name: "mail test+*self+*on update", type_code: :pointer, content: "[[mail template]]"
14
14
  end
15
15
  card = Card.fetch "mail test"
16
16
  expect { Card::Auth.as_bot { card.update_attributes(content: "test") } }.to change { Mail::TestMailer.deliveries.count }.by(1)
17
17
  end
18
-
18
+
19
19
  it 'sends email on delete' do
20
20
  Card::Auth.as_bot do
21
- Card.create! :name=>"mail test+*self+*on delete", type_code: :pointer, content: "[[mail template]]"
21
+ Card.create! name: "mail test+*self+*on delete", type_code: :pointer, content: "[[mail template]]"
22
22
  end
23
23
  card = Card.fetch "mail test"
24
24
  expect { Card::Auth.as_bot { card.delete } }.to change { Mail::TestMailer.deliveries.count }.by(1)
25
25
  end
26
-
26
+
27
27
  it 'sends email on create' do
28
28
  Card::Auth.as_bot do
29
- Card.create! :name=>"Cardtype A+*type+*on create", type_code: :pointer, content: "[[mail template]]"
29
+ Card.create! name: "Cardtype A+*type+*on create", type_code: :pointer, content: "[[mail template]]"
30
30
  end
31
- expect { Card::Auth.as_bot { Card.create! :name=>"mail test", type_code: :cardtype_a} }.to change { ActionMailer::Base.deliveries.count }.by(1)
31
+ expect { Card::Auth.as_bot { Card.create! name: "mail test", type_code: :cardtype_a} }.to change { ActionMailer::Base.deliveries.count }.by(1)
32
32
  end
33
-
33
+
34
34
  describe '#send_action_mails' do
35
35
  before do
36
36
  Card::Auth.as_bot do
37
- Card.create! :name=>"another mail template", :type_code=>'email_template', :subcards=>{'+*html message'=>{content: 'Hi Joe! My name is {{_self|name}}'},
37
+ Card.create! name: "another mail template", type_code: 'email_template', subcards: {'+*html message'=>{content: 'Hi Joe! My name is {{_self|name}}'},
38
38
  '+*to'=>{content: 'joe@user.com'},
39
39
  '+*from'=>{content: 'from@user.com'} }
40
- Card.create! :name=>"mail test+*self+*on update", type_code: :pointer, content: "[[mail template]]\n[[another mail template]]"
41
- Card.create! :name=>"mail test+*self+*on delete", type_code: :pointer, content: "[[mail template]]\n[[another mail template]]"
40
+ Card.create! name: "mail test+*self+*on update", type_code: :pointer, content: "[[mail template]]\n[[another mail template]]"
41
+ Card.create! name: "mail test+*self+*on delete", type_code: :pointer, content: "[[mail template]]\n[[another mail template]]"
42
42
  end
43
- card = Card.fetch "mail test"
43
+ card = Card.fetch "mail test"
44
44
  ActionMailer::Base.deliveries = []
45
- card.send_action_mails :on=>:update
45
+ card.send_action_mails on: :update
46
46
  end
47
-
47
+
48
48
  it 'delivers all emails for given action' do
49
49
  expect(ActionMailer::Base.deliveries.size).to eq(2)
50
50
  end
@@ -52,12 +52,12 @@ describe Card::Set::Type::EmailTemplate do
52
52
  expect(ActionMailer::Base.deliveries.last.body.raw_source).to include('My name is mail test')
53
53
  end
54
54
  end
55
-
55
+
56
56
  # describe '#send_timer_mails' do
57
57
  # before do
58
58
  # ActionMailer::Base.deliveries = []
59
59
  # Card::Auth.as_bot do
60
- # Card.create! :name=>"A+*hourly", :type_code=>'email_template', :subcards=>{'+*message'=>{content: 'hourly update name:{{_self|name}}'},
60
+ # Card.create! name: "A+*hourly", type_code: 'email_template', subcards: {'+*message'=>{content: 'hourly update name:{{_self|name}}'},
61
61
  # '+*to'=>{content: 'joe@user.com'},
62
62
  # '+*from'=>{content: 'from@user.com'}}
63
63
  # end