card 1.17.4 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/card.gemspec +24 -25
  4. data/config/initializers/01_init_ruby_extensions.rb +0 -4
  5. data/config/initializers/inflections.rb +1 -1
  6. data/config/initializers/notification.rb +2 -2
  7. data/db/migrate/20110511221913_require_earlier_migrations.rb +3 -3
  8. data/db/migrate/20120105203350_require_1_8_migrations.rb +3 -3
  9. data/db/migrate/20121111025347_require_1_10_migrations.rb +3 -3
  10. data/db/migrate/20130106052640_table_cleanup.rb +4 -4
  11. data/db/migrate/20130411210957_update_codenames.rb +2 -2
  12. data/db/migrate/20141001105348_move_revisions_to_actions.rb +4 -4
  13. data/db/migrate/20141121172918_rename_card_migration_table.rb +2 -2
  14. data/db/migrate/20141208132159_remove_present_from_reference_table.rb +2 -2
  15. data/db/migrate/20141216053032_better_index_names.rb +9 -9
  16. data/db/migrate_core_cards/20120611203506_rails_inflection_updates.rb +29 -32
  17. data/db/migrate_core_cards/20130411191151_renaming_for_menu.rb +3 -4
  18. data/db/migrate_core_cards/20130411211600_delete_old_related_tab_cards.rb +1 -1
  19. data/db/migrate_core_cards/20130419215612_import_help_text.rb +1 -2
  20. data/db/migrate_core_cards/20130823192433_add_style_cards.rb +3 -3
  21. data/db/migrate_core_cards/20130910183318_move_styles_to_content.rb +2 -3
  22. data/db/migrate_core_cards/20130920214038_jsonize_tinymce.rb +2 -2
  23. data/db/migrate_core_cards/20130920291703_update_stylesheets.rb +1 -2
  24. data/db/migrate_core_cards/20130927191728_account_events.rb +5 -6
  25. data/db/migrate_core_cards/20131016172445_common_css_patch.rb +2 -3
  26. data/db/migrate_core_cards/20140110193325_reset_account_request_type.rb +0 -1
  27. data/db/migrate_core_cards/20140307231621_user_data_to_cards.rb +23 -32
  28. data/db/migrate_core_cards/20140317035504_account_requests_to_signups.rb +1 -7
  29. data/db/migrate_core_cards/20140512155840_add_script_cards.rb +21 -24
  30. data/db/migrate_core_cards/20140629222005_add_email_cards.rb +17 -22
  31. data/db/migrate_core_cards/20140725180118_config_card_updates.rb +2 -2
  32. data/db/migrate_core_cards/20141111083921_delete_machine_output.rb +1 -3
  33. data/db/migrate_core_cards/20141115034214_config_descriptions_etc.rb +2 -2
  34. data/db/migrate_core_cards/20141119001955_make_symlinks_relative.rb +3 -3
  35. data/db/migrate_core_cards/20141120120605_fix_notification_html_message.rb +1 -1
  36. data/db/migrate_core_cards/20141204061304_watchers_to_following.rb +8 -12
  37. data/db/migrate_core_cards/20141208162106_add_ace_script.rb +2 -3
  38. data/db/migrate_core_cards/20141216155251_add_more_following_cards.rb +10 -10
  39. data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +10 -12
  40. data/db/migrate_core_cards/20150220134731_following_to_follow_rule.rb +4 -4
  41. data/db/migrate_core_cards/20150317162412_bootstrap_themes.rb +3 -3
  42. data/db/migrate_core_cards/20150326205655_bootswatch_themes.rb +7 -7
  43. data/db/migrate_core_cards/20150429090551_search_card_context.rb +18 -20
  44. data/db/migrate_core_cards/20150508212032_menu_compatibility.rb +3 -7
  45. data/db/migrate_core_cards/20150510031118_fix_skin_images.rb +2 -3
  46. data/db/migrate_core_cards/20150528084659_add_session_cardtype.rb +3 -3
  47. data/db/migrate_core_cards/20150601133433_add_recent_setting_session_card.rb +4 -4
  48. data/db/migrate_core_cards/20150610171702_add_debugger_session_card.rb +4 -4
  49. data/db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb +5 -11
  50. data/db/migrate_core_cards/20150724123438_update_file_and_image_cards.rb +29 -35
  51. data/db/migrate_core_cards/20150824135418_update_file_history.rb +10 -14
  52. data/db/migrate_core_cards/20150903130006_attachment_upload_cards.rb +1 -1
  53. data/db/schema.rb +92 -94
  54. data/db/seed/new/card_actions.yml +461 -469
  55. data/db/seed/new/card_acts.yml +154 -172
  56. data/db/seed/new/card_changes.yml +4076 -4031
  57. data/db/seed/new/card_references.yml +1584 -1927
  58. data/db/seed/new/cards.yml +2095 -2112
  59. data/db/seed/test/fixtures/card_actions.yml +1497 -1505
  60. data/db/seed/test/fixtures/card_acts.yml +454 -472
  61. data/db/seed/test/fixtures/card_changes.yml +7309 -7263
  62. data/db/seed/test/fixtures/card_references.yml +2263 -2613
  63. data/db/seed/test/fixtures/cards.yml +3298 -3316
  64. data/db/seed/test/seed.rb +3 -0
  65. data/lib/card.rb +17 -9
  66. data/lib/card/active_record_ext.rb +6 -8
  67. data/lib/card/active_record_helper.rb +42 -32
  68. data/lib/card/auth.rb +3 -3
  69. data/lib/card/cache.rb +4 -4
  70. data/lib/card/cache/persistent.rb +9 -5
  71. data/lib/card/cache/temporary.rb +5 -5
  72. data/lib/card/chunk.rb +1 -1
  73. data/lib/card/codename.rb +3 -2
  74. data/lib/card/content.rb +62 -57
  75. data/lib/card/core_ext.rb +20 -30
  76. data/lib/card/diff.rb +88 -76
  77. data/lib/card/director_register.rb +66 -0
  78. data/lib/card/env.rb +14 -17
  79. data/lib/card/exceptions.rb +7 -9
  80. data/lib/card/format.rb +18 -367
  81. data/lib/card/format/nest.rb +183 -0
  82. data/lib/card/format/permission.rb +63 -0
  83. data/lib/card/format/render.rb +140 -0
  84. data/lib/card/loader.rb +17 -26
  85. data/lib/card/location.rb +6 -6
  86. data/lib/card/mailer.rb +4 -7
  87. data/lib/card/migration.rb +1 -1
  88. data/lib/card/name.rb +3 -6
  89. data/lib/card/query.rb +8 -8
  90. data/lib/card/query/attributes.rb +6 -6
  91. data/lib/card/query/clause.rb +10 -10
  92. data/lib/card/query/join.rb +7 -9
  93. data/lib/card/query/reference.rb +17 -19
  94. data/lib/card/query/sql_statement.rb +2 -2
  95. data/lib/card/query/value.rb +15 -16
  96. data/lib/card/set.rb +106 -209
  97. data/lib/card/set/event.rb +126 -0
  98. data/lib/card/set_pattern.rb +42 -29
  99. data/lib/card/simplecov_helper.rb +19 -19
  100. data/lib/card/spec_helper.rb +40 -16
  101. data/lib/card/stage.rb +72 -0
  102. data/lib/card/stage_director.rb +231 -0
  103. data/lib/card/subcards.rb +56 -24
  104. data/lib/card/subdirector_array.rb +31 -0
  105. data/lib/card/success.rb +15 -18
  106. data/lib/card/version.rb +1 -2
  107. data/lib/card/view_cache.rb +4 -4
  108. data/lib/card/view_name.rb +10 -8
  109. data/lib/cardio.rb +1 -1
  110. data/lib/generators/card.rb +2 -4
  111. data/lib/generators/card/format/format_generator.rb +4 -4
  112. data/lib/generators/card/migration/migration_generator.rb +6 -6
  113. data/lib/generators/card/set/set_generator.rb +5 -6
  114. data/mod/01_core/chunk/include.rb +2 -1
  115. data/mod/01_core/chunk/link.rb +2 -2
  116. data/mod/01_core/chunk/literal.rb +6 -9
  117. data/mod/01_core/chunk/query_reference.rb +1 -1
  118. data/mod/01_core/chunk/reference.rb +2 -2
  119. data/mod/01_core/chunk/uri.rb +52 -63
  120. data/mod/01_core/format/html_format.rb +8 -12
  121. data/mod/01_core/format/text_format.rb +1 -1
  122. data/mod/01_core/set/all/actify.rb +96 -0
  123. data/mod/01_core/set/all/active_card.rb +7 -7
  124. data/mod/01_core/set/all/collection.rb +19 -20
  125. data/mod/01_core/set/all/content.rb +9 -7
  126. data/mod/01_core/set/all/erb.rb +5 -5
  127. data/mod/01_core/set/all/event.rb +60 -0
  128. data/mod/01_core/set/all/fetch.rb +13 -19
  129. data/mod/01_core/set/all/haml.rb +1 -1
  130. data/mod/01_core/set/all/initialize.rb +35 -41
  131. data/mod/01_core/set/all/location_history.rb +3 -5
  132. data/mod/01_core/set/all/name.rb +19 -68
  133. data/mod/01_core/set/all/name_validations.rb +56 -0
  134. data/mod/01_core/set/all/pattern.rb +2 -2
  135. data/mod/01_core/set/all/permissions.rb +14 -20
  136. data/mod/01_core/set/all/phases.rb +9 -200
  137. data/mod/01_core/set/all/references.rb +10 -10
  138. data/mod/01_core/set/all/rules.rb +3 -4
  139. data/mod/01_core/set/all/stages.rb +24 -0
  140. data/mod/01_core/set/all/states.rb +4 -4
  141. data/mod/01_core/set/all/subcards.rb +16 -26
  142. data/mod/01_core/set/all/templating.rb +1 -3
  143. data/mod/01_core/set/all/tracked_attributes.rb +47 -48
  144. data/mod/01_core/set/all/trash.rb +10 -10
  145. data/mod/01_core/set/all/type.rb +9 -8
  146. data/mod/01_core/set/all/utils.rb +10 -14
  147. data/mod/01_core/set/all/view_cache.rb +2 -2
  148. data/mod/01_core/set_pattern/01_all.rb +3 -3
  149. data/mod/01_core/set_pattern/02_all_plus.rb +3 -3
  150. data/mod/01_core/set_pattern/03_type.rb +2 -2
  151. data/mod/01_core/set_pattern/04_star.rb +3 -3
  152. data/mod/01_core/set_pattern/05_rstar.rb +3 -3
  153. data/mod/01_core/set_pattern/06_right.rb +2 -2
  154. data/mod/01_core/set_pattern/07_type_plus_right.rb +2 -2
  155. data/mod/01_core/set_pattern/08_self.rb +1 -1
  156. data/mod/01_core/spec/chunk/literal_spec.rb +7 -8
  157. data/mod/01_core/spec/chunk/uri_spec.rb +140 -142
  158. data/mod/01_core/spec/format/html_format_spec.rb +72 -57
  159. data/mod/01_core/spec/set/all/collection_spec.rb +63 -43
  160. data/mod/01_core/spec/set/all/content_spec.rb +4 -4
  161. data/mod/01_core/spec/set/all/fetch_spec.rb +12 -3
  162. data/mod/01_core/spec/set/all/name_spec.rb +3 -4
  163. data/mod/01_core/spec/set/all/pattern_spec.rb +32 -35
  164. data/mod/01_core/spec/set/all/permissions_spec.rb +17 -5
  165. data/mod/01_core/spec/set/all/phases_spec.rb +0 -1
  166. data/mod/01_core/spec/set/all/references_spec.rb +1 -1
  167. data/mod/01_core/spec/set/all/rules2_spec.rb +79 -91
  168. data/mod/01_core/spec/set/all/rules_spec.rb +63 -56
  169. data/mod/01_core/spec/set/all/templating_spec.rb +0 -1
  170. data/mod/01_core/spec/set/all/tracked_attributes_spec.rb +4 -5
  171. data/mod/01_core/spec/set/all/trash_spec.rb +23 -1
  172. data/mod/01_core/spec/set/all/type_spec.rb +2 -5
  173. data/mod/01_history/lib/card/action.rb +8 -10
  174. data/mod/01_history/set/all/actions.rb +2 -4
  175. data/mod/01_history/set/all/content_history.rb +38 -32
  176. data/mod/01_history/set/all/history.rb +20 -17
  177. data/mod/02_basic_types/format/rss_format.rb +0 -1
  178. data/mod/02_basic_types/set/all/all_css.rb +9 -13
  179. data/mod/02_basic_types/set/all/all_csv.rb +14 -17
  180. data/mod/02_basic_types/set/all/all_js.rb +3 -4
  181. data/mod/02_basic_types/set/all/base.rb +2 -2
  182. data/mod/02_basic_types/set/all/file.rb +2 -5
  183. data/mod/02_basic_types/set/all/json.rb +19 -18
  184. data/mod/02_basic_types/set/all/rss.rb +3 -3
  185. data/mod/02_basic_types/set/all/text.rb +1 -3
  186. data/mod/02_basic_types/set/type/html.rb +4 -8
  187. data/mod/02_basic_types/set/type/plain_text.rb +2 -3
  188. data/mod/02_basic_types/set/type/pointer.rb +82 -92
  189. data/mod/02_basic_types/spec/set/all/all_css_spec.rb +2 -2
  190. data/mod/02_basic_types/spec/set/all/all_csv_spec.rb +6 -4
  191. data/mod/02_basic_types/spec/set/all/base_spec.rb +6 -6
  192. data/mod/02_basic_types/spec/set/all/json_spec.rb +8 -8
  193. data/mod/02_basic_types/spec/set/type/plain_text_spec.rb +3 -3
  194. data/mod/02_basic_types/spec/set/type/pointer_spec.rb +29 -32
  195. data/mod/03_machines/lib/card/machine.rb +95 -81
  196. data/mod/03_machines/lib/card/machine_input.rb +35 -34
  197. data/mod/03_machines/set/right/machine_input.rb +1 -1
  198. data/mod/03_machines/set/self/script_ace.rb +2 -3
  199. data/mod/03_machines/set/self/script_card_menu.rb +2 -3
  200. data/mod/03_machines/set/self/script_jquery_helper.rb +2 -2
  201. data/mod/03_machines/set/self/script_slot.rb +2 -2
  202. data/mod/03_machines/set/self/style_bootstrap_compatible.rb +1 -1
  203. data/mod/03_machines/set/self/style_cards.rb +1 -1
  204. data/mod/03_machines/set/self/style_jquery_ui_smoothness.rb +0 -1
  205. data/mod/03_machines/set/type/coffee_script.rb +9 -13
  206. data/mod/03_machines/set/type/css.rb +12 -13
  207. data/mod/03_machines/set/type/java_script.rb +6 -8
  208. data/mod/03_machines/set/type/scss.rb +4 -5
  209. data/mod/03_machines/set/type/skin.rb +3 -6
  210. data/mod/03_machines/spec/lib/shared_machine_examples.rb +31 -38
  211. data/mod/03_machines/spec/lib/shared_machine_input_examples.rb +7 -8
  212. data/mod/03_machines/spec/set/type/coffeescript_spec.rb +19 -13
  213. data/mod/03_machines/spec/set/type/css_spec.rb +22 -16
  214. data/mod/03_machines/spec/set/type/scss_spec.rb +28 -21
  215. data/mod/03_machines/spec/set/type/skin_spec.rb +28 -30
  216. data/mod/04_settings/lib/card/setting.rb +4 -4
  217. data/mod/04_settings/set/abstract/permission.rb +30 -37
  218. data/mod/04_settings/set/right/add_help.rb +3 -3
  219. data/mod/04_settings/set/right/script.rb +4 -5
  220. data/mod/04_settings/set/right/structure.rb +3 -4
  221. data/mod/04_settings/set/right/style.rb +3 -3
  222. data/mod/04_settings/set/self/add_help.rb +1 -1
  223. data/mod/04_settings/set/self/input.rb +1 -1
  224. data/mod/04_settings/set/self/on_create.rb +1 -1
  225. data/mod/04_settings/set/self/options.rb +1 -1
  226. data/mod/04_settings/set/self/options_label.rb +1 -1
  227. data/mod/04_settings/set/type/setting.rb +29 -44
  228. data/mod/04_settings/spec/set/right/comment_spec.rb +9 -12
  229. data/mod/04_settings/spec/set/right/script_spec.rb +7 -7
  230. data/mod/04_settings/spec/set/right/structure_spec.rb +13 -12
  231. data/mod/04_settings/spec/set/right/style_spec.rb +13 -13
  232. data/mod/04_settings/spec/set/type/setting_spec.rb +1 -1
  233. data/mod/05_email/format/email_html_format.rb +1 -1
  234. data/mod/05_email/format/email_text_format.rb +2 -2
  235. data/mod/05_email/lib/card/follow_option.rb +12 -15
  236. data/mod/05_email/set/all/email_html.rb +2 -3
  237. data/mod/05_email/set/all/email_text.rb +3 -3
  238. data/mod/05_email/set/all/follow.rb +14 -22
  239. data/mod/05_email/set/all/notify.rb +11 -11
  240. data/mod/05_email/set/all/observer.rb +7 -8
  241. data/mod/05_email/set/right/bcc.rb +4 -9
  242. data/mod/05_email/set/right/follow.rb +26 -39
  243. data/mod/05_email/set/right/follow_fields.rb +2 -2
  244. data/mod/05_email/set/right/followers.rb +3 -1
  245. data/mod/05_email/set/right/following.rb +13 -16
  246. data/mod/05_email/set/self/always.rb +1 -2
  247. data/mod/05_email/set/self/created.rb +4 -6
  248. data/mod/05_email/set/self/edited.rb +3 -7
  249. data/mod/05_email/set/self/follow_defaults.rb +11 -12
  250. data/mod/05_email/set/self/never.rb +2 -4
  251. data/mod/05_email/set/type/email_template.rb +40 -27
  252. data/mod/05_email/set/type_plus_right/user/follow.rb +159 -157
  253. data/mod/05_email/spec/set/all/follow_spec.rb +28 -37
  254. data/mod/05_email/spec/set/all/notify_spec.rb +21 -26
  255. data/mod/05_email/spec/set/all/observer_spec.rb +58 -37
  256. data/mod/05_email/spec/set/right/followers_spec.rb +9 -14
  257. data/mod/05_email/spec/set/right/following_spec.rb +1 -1
  258. data/mod/05_email/spec/set/self/follow_defaults_spec.rb +1 -1
  259. data/mod/05_standard/lib/carrier_wave/cardmount.rb +9 -9
  260. data/mod/05_standard/lib/file_uploader.rb +8 -13
  261. data/mod/05_standard/lib/image_uploader.rb +8 -9
  262. data/mod/05_standard/set/abstract/attachment.rb +26 -43
  263. data/mod/05_standard/set/all/account.rb +2 -2
  264. data/mod/05_standard/set/all/comment.rb +11 -13
  265. data/mod/05_standard/set/all/error.rb +18 -18
  266. data/mod/05_standard/set/all/event_viz.rb +16 -29
  267. data/mod/05_standard/set/all/links.rb +35 -34
  268. data/mod/05_standard/set/all/list_changes.rb +10 -12
  269. data/mod/05_standard/set/all/rich_html/content.rb +13 -13
  270. data/mod/05_standard/set/all/rich_html/editing.rb +5 -5
  271. data/mod/05_standard/set/all/rich_html/form.rb +22 -26
  272. data/mod/05_standard/set/all/rich_html/header.rb +18 -25
  273. data/mod/05_standard/set/all/rich_html/menu.rb +20 -22
  274. data/mod/05_standard/set/all/rich_html/modal.rb +3 -3
  275. data/mod/05_standard/set/all/rich_html/toolbar.rb +49 -58
  276. data/mod/05_standard/set/all/rich_html/wrapper.rb +40 -41
  277. data/mod/05_standard/set/right/account.rb +26 -14
  278. data/mod/05_standard/set/right/email.rb +2 -2
  279. data/mod/05_standard/set/right/password.rb +6 -5
  280. data/mod/05_standard/set/right/salt.rb +2 -2
  281. data/mod/05_standard/set/right/stats.rb +17 -20
  282. data/mod/05_standard/set/right/token.rb +1 -1
  283. data/mod/05_standard/set/right/when_created.rb +1 -1
  284. data/mod/05_standard/set/right/when_last_edited.rb +1 -1
  285. data/mod/05_standard/set/rstar/rules.rb +3 -3
  286. data/mod/05_standard/set/rstar/rules_editor.rb +39 -39
  287. data/mod/05_standard/set/self/account_links.rb +21 -22
  288. data/mod/05_standard/set/self/admin_info.rb +5 -5
  289. data/mod/05_standard/set/self/alerts.rb +1 -1
  290. data/mod/05_standard/set/self/all.rb +1 -1
  291. data/mod/05_standard/set/self/foot.rb +1 -1
  292. data/mod/05_standard/set/self/head.rb +19 -22
  293. data/mod/05_standard/set/self/navbox.rb +3 -7
  294. data/mod/05_standard/set/self/now.rb +1 -1
  295. data/mod/05_standard/set/self/recent.rb +19 -25
  296. data/mod/05_standard/set/self/search.rb +2 -4
  297. data/mod/05_standard/set/self/signin.rb +6 -6
  298. data/mod/05_standard/set/self/stats.rb +31 -38
  299. data/mod/05_standard/set/self/version.rb +1 -2
  300. data/mod/05_standard/set/type/basic.rb +15 -17
  301. data/mod/05_standard/set/type/cardtype.rb +3 -3
  302. data/mod/05_standard/set/type/date.rb +1 -2
  303. data/mod/05_standard/set/type/file.rb +22 -33
  304. data/mod/05_standard/set/type/image.rb +30 -23
  305. data/mod/05_standard/set/type/layout_type.rb +4 -4
  306. data/mod/05_standard/set/type/list.rb +32 -38
  307. data/mod/05_standard/set/type/listed_by.rb +11 -13
  308. data/mod/05_standard/set/type/number.rb +5 -6
  309. data/mod/05_standard/set/type/phrase.rb +1 -1
  310. data/mod/05_standard/set/type/search_type.rb +25 -23
  311. data/mod/05_standard/set/type/session.rb +2 -3
  312. data/mod/05_standard/set/type/set.rb +46 -51
  313. data/mod/05_standard/set/type/signup.rb +18 -19
  314. data/mod/05_standard/set/type/toggle.rb +5 -5
  315. data/mod/05_standard/set/type/user.rb +6 -6
  316. data/mod/05_standard/spec/chunk/include_spec.rb +115 -98
  317. data/mod/05_standard/spec/chunk/link_spec.rb +58 -31
  318. data/mod/05_standard/spec/chunk/query_reference_spec.rb +12 -14
  319. data/mod/05_standard/spec/set/all/email_html_spec.rb +3 -3
  320. data/mod/05_standard/spec/set/all/error_spec.rb +3 -3
  321. data/mod/05_standard/spec/set/all/history_spec.rb +52 -38
  322. data/mod/05_standard/spec/set/all/links_spec.rb +2 -2
  323. data/mod/05_standard/spec/set/all/rich_html/editing_spec.rb +0 -1
  324. data/mod/05_standard/spec/set/all/rich_html/form_spec.rb +11 -11
  325. data/mod/05_standard/spec/set/all/rich_html/wrapper_spec.rb +4 -4
  326. data/mod/05_standard/spec/set/right/email_spec.rb +1 -4
  327. data/mod/05_standard/spec/set/right/password_spec.rb +4 -7
  328. data/mod/05_standard/spec/set/right/stats_spec.rb +2 -3
  329. data/mod/05_standard/spec/set/right/when_created_spec.rb +1 -1
  330. data/mod/05_standard/spec/set/right/when_last_edited_spec.rb +1 -1
  331. data/mod/05_standard/spec/set/rstar/rules_spec.rb +6 -6
  332. data/mod/05_standard/spec/set/self/all_spec.rb +11 -13
  333. data/mod/05_standard/spec/set/self/head_spec.rb +1 -3
  334. data/mod/05_standard/spec/set/self/navbox_spec.rb +1 -1
  335. data/mod/05_standard/spec/set/self/now_spec.rb +2 -2
  336. data/mod/05_standard/spec/set/self/signin_spec.rb +1 -1
  337. data/mod/05_standard/spec/set/self/stats_spec.rb +1 -1
  338. data/mod/05_standard/spec/set/self/version_spec.rb +2 -2
  339. data/mod/05_standard/spec/set/type/cardtype_spec.rb +3 -4
  340. data/mod/05_standard/spec/set/type/date_spec.rb +1 -1
  341. data/mod/05_standard/spec/set/type/email_template_spec.rb +5 -5
  342. data/mod/05_standard/spec/set/type/file_spec.rb +50 -28
  343. data/mod/05_standard/spec/set/type/html_spec.rb +12 -7
  344. data/mod/05_standard/spec/set/type/image_spec.rb +55 -45
  345. data/mod/05_standard/spec/set/type/layout_type_spec.rb +2 -2
  346. data/mod/05_standard/spec/set/type/listed_by_spec.rb +2 -2
  347. data/mod/05_standard/spec/set/type/number_spec.rb +1 -1
  348. data/mod/05_standard/spec/set/type/phrase_spec.rb +1 -1
  349. data/mod/05_standard/spec/set/type/search_type_spec.rb +15 -16
  350. data/mod/05_standard/spec/set/type/set_spec.rb +16 -17
  351. data/mod/05_standard/spec/set/type/signup_spec.rb +7 -5
  352. data/mod/05_standard/spec/set/type/toggle_spec.rb +4 -4
  353. data/mod/05_standard/spec/set/type/uri_spec.rb +11 -11
  354. data/mod/05_standard/spec/set/type/user_spec.rb +0 -1
  355. data/mod/06_bootstrap/set/all/bootstrap/form.rb +9 -10
  356. data/mod/06_bootstrap/set/all/bootstrap/helper.rb +22 -27
  357. data/mod/06_bootstrap/set/all/bootstrap/wrapper.rb +1 -2
  358. data/mod/06_bootstrap/set/all/rich_bootstrap.rb +1 -3
  359. data/mod/06_bootstrap/set/self/bootstrap_cards.rb +2 -2
  360. data/mod/06_bootstrap/set/self/bootstrap_js.rb +2 -2
  361. data/mod/06_bootstrap/set/self/bootswatch_shared.rb +19 -19
  362. data/mod/06_bootstrap/set/self/smartmenu_css.rb +2 -2
  363. data/mod/06_bootstrap/set/self/smartmenu_js.rb +3 -3
  364. data/mod/06_bootstrap/spec/set/all/bootstrap/form_spec.rb +5 -5
  365. data/spec/lib/card/action_spec.rb +4 -4
  366. data/spec/lib/card/cache_spec.rb +3 -5
  367. data/spec/lib/card/chunk_spec.rb +6 -8
  368. data/spec/lib/card/codename_spec.rb +4 -6
  369. data/spec/lib/card/content_spec.rb +12 -17
  370. data/spec/lib/card/diff_spec.rb +59 -61
  371. data/spec/lib/card/format_spec.rb +55 -34
  372. data/spec/lib/card/loader_spec.rb +35 -37
  373. data/spec/lib/card/name_spec.rb +159 -145
  374. data/spec/lib/card/query_spec.rb +4 -4
  375. data/spec/lib/card/reference_spec.rb +24 -24
  376. data/spec/lib/card/set_pattern_spec.rb +3 -3
  377. data/spec/lib/card/stage_director_spec.rb +218 -0
  378. data/spec/lib/card/subcards_spec.rb +12 -16
  379. data/spec/lib/card/success_spec.rb +16 -18
  380. data/spec/lib/card/view_cache_spec.rb +1 -1
  381. data/spec/mailers/mailer_spec.rb +3 -5
  382. data/spec/models/card/cardtype_spec.rb +40 -51
  383. data/spec/models/card/create_spec.rb +58 -39
  384. data/spec/models/card/trash_spec.rb +23 -32
  385. data/spec/models/card/type_transition_spec.rb +41 -32
  386. data/spec/models/card/validation_spec.rb +13 -15
  387. data/spec/models/card_spec.rb +48 -59
  388. data/spec/spec_helper.rb +26 -31
  389. metadata +16 -2
@@ -1,11 +1,11 @@
1
1
  format :html do
2
2
  view :core do |args|
3
- with_inclusion_mode :template do
3
+ with_nest_mode :template do
4
4
  super args
5
5
  end
6
6
  end
7
-
8
- view :closed_content do |args|
7
+
8
+ view :closed_content do |_args|
9
9
  "#{_render_type} : #{_render_raw}"
10
10
  end
11
11
  end
@@ -1,10 +1,9 @@
1
1
  include Machine
2
2
 
3
- store_machine_output filetype: "js"
3
+ store_machine_output filetype: 'js'
4
4
 
5
-
6
- view :javascript_include_tag do |args|
7
- %{
5
+ view :javascript_include_tag do |_args|
6
+ %(
8
7
  <script src="#{card.machine_output_url}" type="text/javascript"></script>
9
- }
8
+ )
10
9
  end
@@ -9,8 +9,7 @@ format :html do
9
9
  include AddHelp::HtmlFormat
10
10
  end
11
11
 
12
- event :update_structurees_references,
13
- before: :subsequent,
12
+ event :update_structurees_references, :integrate,
14
13
  when: proc { |c| c.db_content_changed? || c.action == :delete } do
15
14
  return unless (statement = structuree_statement)
16
15
  Auth.as_bot do
@@ -18,8 +17,8 @@ event :update_structurees_references,
18
17
  end
19
18
  end
20
19
 
21
- event :update_structurees_type, after: :store, changed: :type_id,
22
- when: proc { |c| c.assigns_type? } do
20
+ event :update_structurees_type, :finalize,
21
+ changed: :type_id, when: proc { |c| c.assigns_type? } do
23
22
  update_structurees type_id: type_id
24
23
  end
25
24
 
@@ -1,10 +1,10 @@
1
1
  require 'sass'
2
2
  include Machine
3
3
 
4
- store_machine_output filetype: "css"
4
+ store_machine_output filetype: 'css'
5
5
 
6
6
  format do
7
- def chunk_list #turn off autodetection of uri's
8
- :inclusion_only
7
+ def chunk_list # turn off autodetection of uri's
8
+ :nest_only
9
9
  end
10
10
  end
@@ -1,2 +1,2 @@
1
1
  extend Card::Setting
2
- setting_opts group: :editing_cue, position: 2, rule_type_editable: true
2
+ setting_opts group: :editing_cue, position: 2, rule_type_editable: true
@@ -1,2 +1,2 @@
1
1
  extend Card::Setting
2
- setting_opts group: :pointer, position: 3, restricted_to_type: [:pointer,:session], rule_type_editable: false
2
+ setting_opts group: :pointer, position: 3, restricted_to_type: [:pointer, :session], rule_type_editable: false
@@ -1,2 +1,2 @@
1
1
  extend Card::Setting
2
- setting_opts group: :event, position: 1 , rule_type_editable: false
2
+ setting_opts group: :event, position: 1, rule_type_editable: false
@@ -1,2 +1,2 @@
1
1
  extend Card::Setting
2
- setting_opts group: :pointer, position: 1, restricted_to_type: [:pointer,:session], rule_type_editable: true
2
+ setting_opts group: :pointer, position: 1, restricted_to_type: [:pointer, :session], rule_type_editable: true
@@ -1,2 +1,2 @@
1
1
  extend Card::Setting
2
- setting_opts group: :pointer, position: 2, restricted_to_type: [:pointer,:session], rule_type_editable: false
2
+ setting_opts group: :pointer, position: 2, restricted_to_type: [:pointer, :session], rule_type_editable: false
@@ -13,81 +13,66 @@ def self.member_names
13
13
  end
14
14
 
15
15
  view :core do |args|
16
-
17
16
  klasses = Card.set_patterns.reverse.map do |set_class|
18
17
  wql = { left: { type: Card::SetID },
19
18
  right: card.id,
20
- #sort: 'content',
19
+ # sort: 'content',
21
20
 
22
- sort: ['content', 'name'],
21
+ sort: %w(content name),
23
22
  limit: 0
24
23
  }
25
- wql[:left][ (set_class.anchorless? ? :id : :right_id )] = set_class.pattern_id
24
+ wql[:left][(set_class.anchorless? ? :id : :right_id)] = set_class.pattern_id
26
25
 
27
26
  rules = Card.search wql
28
- [ set_class, rules ] unless rules.empty?
27
+ [set_class, rules] unless rules.empty?
29
28
  end.compact
30
29
 
31
-
32
-
33
- %{
34
- #{ _render_rule_help args }
30
+ %(
31
+ #{_render_rule_help args}
35
32
  <table class="setting-rules">
36
33
  <tr><th>Set</th><th>Rule</th></tr>
37
- #{
38
- klasses.map do |klass, rules|
39
- %{
40
- <tr class="klass-row anchorless-#{ klass.anchorless? }">
41
- <td class="setting-klass">#{ klass.anchorless? ? card_link( klass.pattern ) : klass.pattern }</td>
34
+ #{klasses.map do |klass, rules|
35
+ %(
36
+ <tr class="klass-row anchorless-#{klass.anchorless?}">
37
+ <td class="setting-klass">#{klass.anchorless? ? card_link(klass.pattern) : klass.pattern}</td>
42
38
  <td class="rule-content-container">
43
- <span class="closed-content content">#{ subformat(rules[0])._render_closed_content if klass.anchorless? }</span>
39
+ <span class="closed-content content">#{subformat(rules[0])._render_closed_content if klass.anchorless?}</span>
44
40
  </td>
45
41
  </tr>
46
- #{
47
- unless klass.anchorless?
42
+ #{unless klass.anchorless?
48
43
  previous_content = nil
49
44
  rules.map do |rule|
50
45
  current_content = rule.db_content.strip
51
46
  duplicate = previous_content == current_content
52
47
  changeover = previous_content && !duplicate
53
48
  previous_content = current_content
54
- %{
55
- <tr class="#{ 'rule-changeover' if changeover }">
56
- <td class="rule-anchor">#{ card_link rule.cardname.trunk_name, text: rule.cardname.trunk_name.trunk_name }</td>
49
+ %(
50
+ <tr class="#{'rule-changeover' if changeover}">
51
+ <td class="rule-anchor">#{card_link rule.cardname.trunk_name, text: rule.cardname.trunk_name.trunk_name}</td>
57
52
 
58
- #{
59
- if duplicate
60
- %{ <td></td> }
53
+ #{if duplicate
54
+ %( <td></td> )
61
55
  else
62
- %{
56
+ %(
63
57
  <td class="rule-content-container">
64
- <span class="closed-content content">#{ subformat(rule)._render_closed_content }</span>
58
+ <span class="closed-content content">#{subformat(rule)._render_closed_content}</span>
65
59
  </td>
66
- }
67
- end
68
- }
60
+ )
61
+ end}
69
62
  </tr>
70
- }
71
-
63
+ )
72
64
  end * "\n"
73
- end
74
-
75
- }
76
- }
77
- end * "\n"
78
-
79
- }
65
+ end}
66
+ )
67
+ end * "\n"}
80
68
  </table>
81
- }
82
-
69
+ )
83
70
  end
84
71
 
85
- view :rule_help do |args|
86
- %{<div class="alert alert-info">#{process_content_object "{{+*right+*help|content}}"}</div>}
72
+ view :rule_help do |_args|
73
+ %(<div class="alert alert-info">#{process_content_object '{{+*right+*help|content}}'}</div>)
87
74
  end
88
75
 
89
-
90
- view :closed_content do |args|
76
+ view :closed_content do |_args|
91
77
  render_rule_help
92
78
  end
93
-
@@ -1,14 +1,13 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
3
  describe Card::Set::Right::Comment do
4
-
5
- context "record appender" do
4
+ context 'record appender' do
6
5
  before do
7
- # @r = Card.where(type_id: Card::RoleID).first
8
- @rule = Card.new name: 'A+*self+*comment', type_id: Card::PointerID, content: "[[Anyone Signed In]]"
6
+ # @r = Card.where(type_id: Card::RoleID).first
7
+ @rule = Card.new name: 'A+*self+*comment', type_id: Card::PointerID, content: '[[Anyone Signed In]]'
9
8
  end
10
9
 
11
- it "should have appender immediately" do
10
+ it 'should have appender immediately' do
12
11
  expect(Card['a'].ok?(:comment)).not_to be_truthy
13
12
  Card::Auth.as_bot do
14
13
  @rule.save!
@@ -16,7 +15,7 @@ describe Card::Set::Right::Comment do
16
15
  expect(Card['a'].ok?(:comment)).to be_truthy
17
16
  end
18
17
 
19
- it "should have appender immediately" do
18
+ it 'should have appender immediately' do
20
19
  Card::Auth.as_bot do
21
20
  expect(Card['a'].ok?(:comment)).not_to be_truthy
22
21
  @rule.save!
@@ -25,17 +24,15 @@ describe Card::Set::Right::Comment do
25
24
  end
26
25
  end
27
26
 
28
-
29
- context "comment addition" do
30
- it "should combine content after save" do
27
+ context 'comment addition' do
28
+ it 'should combine content after save' do
31
29
  Card::Auth.as_bot do
32
30
  Card.create name: 'basicname+*self+*comment', content: '[[Anyone Signed In]]'
33
- @c = Card.fetch "basicname"
31
+ @c = Card.fetch 'basicname'
34
32
  @c.comment = " and more\n \nsome lines\n\n"
35
33
  @c.save!
36
34
  end
37
- expect(Card["basicname"].content).to match(/\<p\>some lines\<\/p\>/)
35
+ expect(Card['basicname'].content).to match(/\<p\>some lines\<\/p\>/)
38
36
  end
39
37
  end
40
-
41
38
  end
@@ -9,16 +9,16 @@ describe Card::Set::Right::Script do
9
9
  let(:compressed_new_js) { 'alert("Hey");' }
10
10
 
11
11
  it_should_behave_like 'pointer machine', that_produces_js do
12
- let(:machine_card) { Card.gimme! "test my style+*script", type: :pointer, content: ''}
13
- let(:machine_input_card) { Card.gimme! "test js", type: Card::JavaScriptID, content: js }
14
- let(:another_machine_input_card) { Card.gimme! "more js", type: Card::JavaScriptID, content: new_js }
12
+ let(:machine_card) { Card.gimme! 'test my style+*script', type: :pointer, content: '' }
13
+ let(:machine_input_card) { Card.gimme! 'test js', type: Card::JavaScriptID, content: js }
14
+ let(:another_machine_input_card) { Card.gimme! 'more js', type: Card::JavaScriptID, content: new_js }
15
15
  let(:expected_input_items) { nil }
16
16
  let(:input_type) { :java_script }
17
17
  let(:card_content) do
18
- { in: js, out: compressed_js,
19
- changed_in: changed_js, changed_out: compressed_changed_js,
20
- new_in: new_js, new_out: compressed_new_js
21
- }
18
+ { in: js, out: compressed_js,
19
+ changed_in: changed_js, changed_out: compressed_changed_js,
20
+ new_in: new_js, new_out: compressed_new_js
21
+ }
22
22
  end
23
23
  end
24
24
  end
@@ -1,24 +1,25 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
3
  describe Card::Set::Right::Structure do
4
- it "closed_content is rendered as type + raw" do
5
- template = Card.new(name: 'A+*right+*structure', content: '[[link]] {{inclusion}}')
4
+ it 'closed_content is rendered as type + raw' do
5
+ template = Card.new name: 'A+*right+*structure',
6
+ content: '[[link]] {{nest}}'
6
7
  expect(template.format._render(:closed_content)).to eq(
7
- '<a class="cardtype known-card" href="/Basic">Basic</a> : [[link]] {{inclusion}}'
8
+ '<a class="cardtype known-card" href="/Basic">Basic</a>' \
9
+ ' : [[link]] {{nest}}'
8
10
  )
9
11
  end
10
12
 
11
- it "closed_content is rendered as type + raw" do
12
- template = Card.new(name: 'A+*right+*structure', type: 'Html', content: '[[link]] {{inclusion}}')
13
+ it 'closed_content is rendered as type + raw' do
14
+ template = Card.new name: 'A+*right+*structure', type: 'Html',
15
+ content: '[[link]] {{nest}}'
13
16
  expect(template.format._render(:closed_content)).to eq(
14
- '<a class="cardtype known-card" href="/HTML">HTML</a> : [[link]] {{inclusion}}'
17
+ '<a class="cardtype known-card" href="/HTML">HTML</a> : [[link]] {{nest}}'
15
18
  )
16
19
  end
17
20
 
18
- =begin
19
- it 'renders core as raw' do
20
- trs = Card.fetch('*type+*right+*structure').format.render_core
21
- expect(trs).to eq '{"type":"_left"}'
22
- end
23
- =end
21
+ # it 'renders core as raw' do
22
+ # trs = Card.fetch('*type+*right+*structure').format.render_core
23
+ # expect(trs).to eq '{"type":"_left"}'
24
+ # end
24
25
  end
@@ -3,27 +3,27 @@
3
3
  require File.expand_path('../../../../../03_machines/spec/lib/shared_machine_examples.rb', __FILE__)
4
4
 
5
5
  describe Card::Set::Right::Style do
6
- # describe "#delet"
7
- # it "should delete tempfile"
8
- #let!(:skin_card) { Card.gimme! "test skin", type: :skin, content: '[[test css]]'}
9
- let(:css) { "#box { display: block }" }
6
+ # describe "#delet"
7
+ # it "should delete tempfile"
8
+ # let!(:skin_card) { Card.gimme! "test skin", type: :skin, content: '[[test css]]'}
9
+ let(:css) { '#box { display: block }' }
10
10
  let(:compressed_css) { "#box{display:block}\n" }
11
- let(:changed_css) { "#box { display: inline }" }
11
+ let(:changed_css) { '#box { display: inline }' }
12
12
  let(:compressed_changed_css) { "#box{display:inline}\n" }
13
13
  let(:new_css) { "#box{ display: none}\n" }
14
14
  let(:compressed_new_css) { "#box{display:none}\n" }
15
15
 
16
16
  it_should_behave_like 'pointer machine', that_produces_css do
17
- let(:machine_card) { Card.gimme! "test my style+*style", type: :pointer, content: ''}
18
- let(:machine_input_card) { Card.gimme! "test css", type: :css, content: css }
19
- let(:another_machine_input_card) { Card.gimme! "more css", type: :css, content: new_css }
20
- let(:expected_input_items) { nil } #[Card.fetch("test skin"), machine_input_card] }
17
+ let(:machine_card) { Card.gimme! 'test my style+*style', type: :pointer, content: '' }
18
+ let(:machine_input_card) { Card.gimme! 'test css', type: :css, content: css }
19
+ let(:another_machine_input_card) { Card.gimme! 'more css', type: :css, content: new_css }
20
+ let(:expected_input_items) { nil } # [Card.fetch("test skin"), machine_input_card] }
21
21
  let(:input_type) { :css }
22
22
  let(:card_content) do
23
- { in: css, out: compressed_css,
24
- changed_in: changed_css, changed_out: compressed_changed_css,
25
- new_in: new_css, new_out: compressed_new_css
26
- }
23
+ { in: css, out: compressed_css,
24
+ changed_in: changed_css, changed_out: compressed_changed_css,
25
+ new_in: new_css, new_out: compressed_new_css
26
+ }
27
27
  end
28
28
  end
29
29
  end
@@ -1,7 +1,7 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
3
  describe Card::Set::Type::Setting do
4
- context "core view" do
4
+ context 'core view' do
5
5
  it 'should have a table' do
6
6
  core = render_card :core, name: :help
7
7
  assert_view_select core, 'table'
@@ -2,7 +2,7 @@
2
2
 
3
3
  class Card::EmailHtmlFormat < Card::HtmlFormat
4
4
  @@aliases['email'] = 'email_html'
5
-
5
+
6
6
  def internal_url relative_path
7
7
  card_url relative_path
8
8
  end
@@ -1,10 +1,10 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
- class Card::EmailTextFormat < Card::TextFormat
3
+ class Card::EmailTextFormat < Card::TextFormat
4
4
  def internal_url relative_path
5
5
  card_url relative_path
6
6
  end
7
-
7
+
8
8
  def chunk_list
9
9
  :references
10
10
  end
@@ -1,15 +1,15 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
-
4
3
  class Card
5
4
  module FollowOption
6
5
  mattr_reader :test, :follower_candidate_ids
7
- @@test, @@follower_candidate_ids = {}, {}
6
+ @@test = {}
7
+ @@follower_candidate_ids = {}
8
8
 
9
9
  @@options = { all: [], main: [], restrictive: [] }
10
10
 
11
- def self.included(host_class)
12
- host_class.extend ClassMethods
11
+ def self.included host_class
12
+ host_class.extend ClassMethods
13
13
  end
14
14
 
15
15
  def self.codenames type=:all
@@ -17,15 +17,15 @@ class Card
17
17
  end
18
18
 
19
19
  def self.cards
20
- codenames.map { |codename| Card[codename] }
20
+ codenames.map { |codename| Card[codename] }
21
21
  end
22
22
 
23
23
  def self.restrictive_options
24
- self.codenames :restrictive
24
+ codenames :restrictive
25
25
  end
26
26
 
27
27
  def self.main_options
28
- self.codenames :main
28
+ codenames :main
29
29
  end
30
30
 
31
31
  def restrictive_option?
@@ -37,7 +37,6 @@ class Card
37
37
  end
38
38
 
39
39
  module ClassMethods
40
-
41
40
  # args:
42
41
  # position: <Fixnum> (starting at 1, default: add to end)
43
42
  def restrictive_follow_opts args
@@ -51,11 +50,11 @@ class Card
51
50
  end
52
51
 
53
52
  def follow_test opts={}, &block
54
- Card::FollowOption.test[ get_codename(opts) ] = block
53
+ Card::FollowOption.test[get_codename(opts)] = block
55
54
  end
56
55
 
57
56
  def follower_candidate_ids opts={}, &block
58
- Card::FollowOption.follower_candidate_ids[ get_codename(opts) ] = block
57
+ Card::FollowOption.follower_candidate_ids[get_codename(opts)] = block
59
58
  end
60
59
 
61
60
  private
@@ -70,10 +69,10 @@ class Card
70
69
  end
71
70
  end
72
71
 
73
- def add_option opts, type, &block
72
+ def add_option opts, type, &_block
74
73
  codename = get_codename opts
75
74
  if opts[:position]
76
- insert_option opts[:position]-1, codename, type
75
+ insert_option opts[:position] - 1, codename, type
77
76
  else
78
77
  Card::FollowOption.codenames(type) << codename
79
78
  end
@@ -81,10 +80,8 @@ class Card
81
80
  end
82
81
 
83
82
  def get_codename opts
84
- opts[:codename] || self.name.match(/::(\w+)$/)[1].underscore.to_sym
83
+ opts[:codename] || name.match(/::(\w+)$/)[1].underscore.to_sym
85
84
  end
86
-
87
-
88
85
  end
89
86
  end
90
87
  end