card 1.92.2 → 1.93.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (965) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +3 -3
  3. data/VERSION +1 -1
  4. data/card.gemspec +1 -1
  5. data/config/initializers/01_core_extensions/array.rb +1 -1
  6. data/config/initializers/01_core_extensions/object.rb +9 -0
  7. data/config/initializers/01_core_extensions/persistent_identifiers.rb +1 -1
  8. data/config/initializers/02_patches/action_dispatch.rb +1 -0
  9. data/config/initializers/02_patches/active_record.rb +42 -0
  10. data/config/initializers/02_patches/active_support.rb +13 -0
  11. data/config/initializers/deck_config.rb +3 -0
  12. data/config/initializers/patches.rb +37 -6
  13. data/config/locales/de.yml +1 -3
  14. data/config/locales/en.yml +1 -3
  15. data/db/migrate_core_cards/20120611203506_rails_inflection_updates.rb +3 -3
  16. data/db/migrate_core_cards/20130823192433_add_style_cards.rb +1 -1
  17. data/db/migrate_core_cards/20130920214038_jsonize_tinymce.rb +1 -1
  18. data/db/migrate_core_cards/20140629222005_add_email_cards.rb +4 -4
  19. data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +1 -1
  20. data/db/migrate_core_cards/20150220134731_following_to_follow_rule.rb +1 -1
  21. data/db/migrate_core_cards/20150317162412_bootstrap_themes.rb +1 -1
  22. data/db/migrate_core_cards/20150429090551_search_card_context.rb +2 -2
  23. data/db/migrate_core_cards/20150501010515_responsive_sidebar.rb +1 -1
  24. data/db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb +2 -2
  25. data/db/migrate_core_cards/20150724123438_update_file_and_image_cards.rb +2 -2
  26. data/db/migrate_core_cards/20160811115836_rename_stats_to_admin.rb +1 -1
  27. data/db/migrate_core_cards/20160914132636_fix_mod_files.rb +3 -3
  28. data/db/migrate_core_cards/20170830210517_correct_signup_success_message.rb +2 -2
  29. data/db/migrate_core_cards/data/cards.yml +2 -2
  30. data/db/migrate_core_cards/data/cards/*header +1 -1
  31. data/lib/card.rb +53 -34
  32. data/lib/card/act_manager.rb +64 -10
  33. data/lib/card/act_manager/stage_director.rb +13 -2
  34. data/lib/card/act_manager/stage_director/phases.rb +6 -4
  35. data/lib/card/auth.rb +3 -1
  36. data/lib/card/cache.rb +8 -2
  37. data/lib/card/cache/persistent.rb +23 -10
  38. data/lib/card/codename.rb +59 -18
  39. data/lib/card/dirty.rb +39 -0
  40. data/lib/card/env/location.rb +1 -1
  41. data/lib/card/env/location_history.rb +1 -1
  42. data/lib/card/env/success.rb +1 -1
  43. data/lib/card/error.rb +3 -0
  44. data/lib/card/format.rb +55 -21
  45. data/lib/card/format/content.rb +1 -1
  46. data/lib/card/format/context_names.rb +2 -2
  47. data/lib/card/format/nest.rb +2 -2
  48. data/lib/card/format/nest/fetch.rb +1 -1
  49. data/lib/card/format/nest/subformat.rb +1 -1
  50. data/lib/card/format/render.rb +4 -18
  51. data/lib/card/migration.rb +1 -1
  52. data/lib/card/migration/import.rb +1 -1
  53. data/lib/card/migration/import/import_data.rb +5 -12
  54. data/lib/card/migration/import/import_data/card_attributes.rb +3 -4
  55. data/lib/card/mod.rb +4 -3
  56. data/lib/card/mod/dirs.rb +21 -10
  57. data/lib/card/mod/loader.rb +1 -1
  58. data/lib/card/model/save_helper.rb +1 -1
  59. data/lib/card/name.rb +8 -6
  60. data/lib/card/name/fields_and_traits.rb +5 -10
  61. data/lib/card/query.rb +1 -1
  62. data/lib/card/reference.rb +1 -1
  63. data/lib/card/set.rb +7 -14
  64. data/lib/card/set/advanced_api.rb +1 -0
  65. data/lib/card/set/event.rb +19 -109
  66. data/lib/card/set/event/delayed_event.rb +104 -0
  67. data/lib/card/set/format.rb +2 -2
  68. data/lib/card/set_pattern.rb +4 -4
  69. data/lib/card/subcards.rb +22 -35
  70. data/lib/card/tasks/card.rake +1 -2
  71. data/lib/card/view.rb +1 -2
  72. data/lib/card/view/cache.rb +1 -1
  73. data/lib/card/view/cache_action.rb +1 -1
  74. data/lib/card/view/options.rb +1 -1
  75. data/lib/card/view/stub.rb +5 -1
  76. data/lib/cardio.rb +50 -22
  77. data/mod/Modfile +1 -0
  78. data/mod/account/set/all/account.rb +2 -2
  79. data/mod/account/set/right/account.rb +4 -2
  80. data/mod/account/set/right/email.rb +1 -1
  81. data/mod/account/set/self/account_links.rb +2 -2
  82. data/mod/account/set/self/signin.rb +3 -3
  83. data/mod/account/spec/set/right/account_spec.rb +2 -2
  84. data/mod/account/spec/set/right/email_spec.rb +1 -1
  85. data/mod/account/spec/set/right/password_spec.rb +1 -1
  86. data/mod/account/spec/set/right/salt_spec.rb +1 -1
  87. data/mod/account/spec/set/type/signup_spec.rb +1 -1
  88. data/mod/basic_formats/format/css_format.rb +1 -2
  89. data/mod/basic_formats/format/csv_format.rb +1 -1
  90. data/mod/basic_formats/format/js_format.rb +4 -0
  91. data/mod/basic_formats/set/all/all_css.rb +3 -3
  92. data/mod/basic_formats/set/all/all_js.rb +1 -1
  93. data/mod/basic_formats/set/all/base.rb +5 -5
  94. data/mod/basic_formats/set/all/json.rb +4 -4
  95. data/mod/basic_formats/set/all/rss.rb +3 -3
  96. data/mod/basic_formats/set/self/head.rb +12 -7
  97. data/mod/bootstrap/db/migrate_cards/20170719163710_update_bootswatch_themes_to_4_beta.rb +115 -0
  98. data/mod/bootstrap/db/migrate_cards/20170726145012_select2.rb +7 -7
  99. data/mod/bootstrap/lib/bootstrap/component/panel.rb +1 -1
  100. data/mod/bootstrap/lib/javascript/script_load_select2.js.coffee +2 -0
  101. data/mod/bootstrap/lib/stylesheets/bootstrap_cards.scss +2 -8
  102. data/mod/bootstrap/lib/stylesheets/style_select2_bootstrap.scss +546 -628
  103. data/mod/bootstrap/set/abstract/bootstrap_code_file.rb +9 -6
  104. data/mod/bootstrap/set/all/bootstrap/accordion.rb +3 -3
  105. data/mod/bootstrap/set/all/bootstrap/helper.rb +58 -15
  106. data/mod/bootstrap/set/all/bootstrap/tabs.rb +2 -2
  107. data/mod/bootstrap/set/all/bootstrap/wrapper.rb +1 -1
  108. data/mod/bootstrap/set/self/bootstrap_js.rb +7 -1
  109. data/mod/bootstrap/set/self/bootswatch_shared.rb +8 -17
  110. data/mod/bootstrap/set/self/script_select2.rb +9 -0
  111. data/mod/bootstrap/set/self/style_select2.rb +1 -1
  112. data/mod/bootstrap/set/self/style_select2_bootstrap.rb +1 -0
  113. data/mod/bootstrap/vendor/bootstrap/.editorconfig +17 -0
  114. data/mod/bootstrap/vendor/bootstrap/.gitattributes +15 -0
  115. data/mod/bootstrap/vendor/bootstrap/.gitignore +41 -0
  116. data/mod/bootstrap/vendor/bootstrap/.hound.yml +12 -0
  117. data/mod/bootstrap/vendor/bootstrap/.travis.yml +45 -0
  118. data/mod/bootstrap/vendor/bootstrap/CHANGELOG.md +5 -0
  119. data/mod/bootstrap/vendor/bootstrap/CNAME +1 -0
  120. data/mod/bootstrap/vendor/bootstrap/CONTRIBUTING.md +270 -0
  121. data/mod/bootstrap/vendor/bootstrap/Gemfile +6 -0
  122. data/mod/bootstrap/vendor/bootstrap/Gemfile.lock +49 -0
  123. data/mod/bootstrap/vendor/bootstrap/Gruntfile.js +511 -0
  124. data/mod/bootstrap/vendor/bootstrap/ISSUE_TEMPLATE.md +22 -0
  125. data/mod/bootstrap/vendor/bootstrap/LICENSE +21 -0
  126. data/mod/bootstrap/vendor/bootstrap/README.md +142 -0
  127. data/mod/bootstrap/vendor/bootstrap/_config.yml +42 -0
  128. data/mod/bootstrap/vendor/bootstrap/bower.json +34 -0
  129. data/mod/bootstrap/vendor/bootstrap/composer.json +37 -0
  130. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-theme.css +587 -0
  131. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-theme.css.map +0 -0
  132. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-theme.min.css +6 -0
  133. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-theme.min.css.map +0 -0
  134. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap.css +6757 -0
  135. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap.css.map +0 -0
  136. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap.min.css +6 -0
  137. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap.min.css.map +0 -0
  138. data/mod/bootstrap/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  139. data/mod/bootstrap/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +288 -0
  140. data/mod/bootstrap/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  141. data/mod/bootstrap/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  142. data/mod/bootstrap/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  143. data/mod/bootstrap/vendor/bootstrap/dist/js/bootstrap.js +2377 -0
  144. data/mod/bootstrap/vendor/bootstrap/dist/js/bootstrap.min.js +7 -0
  145. data/mod/bootstrap/vendor/bootstrap/dist/js/npm.js +13 -0
  146. data/mod/bootstrap/vendor/bootstrap/docs/LICENSE +319 -0
  147. data/mod/bootstrap/vendor/bootstrap/docs/_data/browser-bugs.yml +433 -0
  148. data/mod/bootstrap/vendor/bootstrap/docs/_data/browser-features.yml +109 -0
  149. data/mod/bootstrap/vendor/bootstrap/docs/_data/core-team.yml +27 -0
  150. data/mod/bootstrap/vendor/bootstrap/docs/_data/glyphicons.yml +266 -0
  151. data/mod/bootstrap/vendor/bootstrap/docs/_data/sass-team.yml +7 -0
  152. data/mod/bootstrap/vendor/bootstrap/docs/_data/showcase.yml +19 -0
  153. data/mod/bootstrap/vendor/bootstrap/docs/_data/translations.yml +64 -0
  154. data/mod/bootstrap/vendor/bootstrap/docs/_includes/ads.html +1 -0
  155. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/alerts.html +89 -0
  156. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/badges.html +45 -0
  157. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/breadcrumbs.html +27 -0
  158. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/button-dropdowns.html +321 -0
  159. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/button-groups.html +268 -0
  160. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/dropdowns.html +156 -0
  161. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/glyphicons.html +91 -0
  162. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/input-groups.html +365 -0
  163. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/jumbotron.html +27 -0
  164. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/labels.html +40 -0
  165. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/list-group.html +188 -0
  166. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/media.html +207 -0
  167. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/navbar.html +461 -0
  168. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/navs.html +189 -0
  169. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/page-header.html +15 -0
  170. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/pagination.html +202 -0
  171. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/panels.html +279 -0
  172. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/progress-bars.html +214 -0
  173. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/responsive-embed.html +23 -0
  174. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/thumbnails.html +94 -0
  175. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/wells.html +33 -0
  176. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/buttons.html +189 -0
  177. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/code.html +52 -0
  178. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/forms.html +1029 -0
  179. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/grid.html +560 -0
  180. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/helpers.html +207 -0
  181. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/images.html +31 -0
  182. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/less.html +499 -0
  183. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/overview.html +52 -0
  184. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/responsive-utilities.html +258 -0
  185. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/sass.html +52 -0
  186. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/tables.html +467 -0
  187. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/type.html +461 -0
  188. data/mod/bootstrap/vendor/bootstrap/docs/_includes/customizer-variables.html +1892 -0
  189. data/mod/bootstrap/vendor/bootstrap/docs/_includes/footer.html +67 -0
  190. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/accessibility.html +37 -0
  191. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/browser-device-support.html +237 -0
  192. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/community.html +13 -0
  193. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/disabling-responsiveness.html +22 -0
  194. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/download.html +63 -0
  195. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/examples.html +161 -0
  196. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/grunt.html +35 -0
  197. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/license.html +34 -0
  198. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/template.html +37 -0
  199. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/third-party-support.html +51 -0
  200. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/tools.html +6 -0
  201. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/translations.html +12 -0
  202. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/whats-included.html +55 -0
  203. data/mod/bootstrap/vendor/bootstrap/docs/_includes/header.html +58 -0
  204. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/affix.html +129 -0
  205. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/alerts.html +73 -0
  206. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/buttons.html +139 -0
  207. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/carousel.html +260 -0
  208. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/collapse.html +277 -0
  209. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/dropdowns.html +201 -0
  210. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/modal.html +520 -0
  211. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/overview.html +86 -0
  212. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/popovers.html +309 -0
  213. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/scrollspy.html +151 -0
  214. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/tabs.html +147 -0
  215. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/tooltips.html +276 -0
  216. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/transitions.html +15 -0
  217. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/about.html +9 -0
  218. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/components.html +146 -0
  219. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/css.html +136 -0
  220. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/customize.html +47 -0
  221. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/getting-started.html +76 -0
  222. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/javascript.html +124 -0
  223. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/main.html +37 -0
  224. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/migration.html +12 -0
  225. data/mod/bootstrap/vendor/bootstrap/docs/_layouts/default.html +65 -0
  226. data/mod/bootstrap/vendor/bootstrap/docs/_layouts/home.html +19 -0
  227. data/mod/bootstrap/vendor/bootstrap/docs/_plugins/bridge.rb +9 -0
  228. data/mod/bootstrap/vendor/bootstrap/docs/_plugins/bugify.rb +26 -0
  229. data/mod/bootstrap/vendor/bootstrap/docs/_pug/customizer-nav.pug +17 -0
  230. data/mod/bootstrap/vendor/bootstrap/docs/_pug/customizer-variables.pug +25 -0
  231. data/mod/bootstrap/vendor/bootstrap/docs/about.html +127 -0
  232. data/mod/bootstrap/vendor/bootstrap/docs/apple-touch-icon.png +0 -0
  233. data/mod/bootstrap/vendor/bootstrap/docs/assets/brand/bootstrap-outline.svg +20 -0
  234. data/mod/bootstrap/vendor/bootstrap/docs/assets/brand/bootstrap-punchout.svg +18 -0
  235. data/mod/bootstrap/vendor/bootstrap/docs/assets/brand/bootstrap-solid.svg +17 -0
  236. data/mod/bootstrap/vendor/bootstrap/docs/assets/css/docs.min.css +11 -0
  237. data/mod/bootstrap/vendor/bootstrap/docs/assets/css/docs.min.css.map +0 -0
  238. data/mod/bootstrap/vendor/bootstrap/docs/assets/css/ie10-viewport-bug-workaround.css +13 -0
  239. data/mod/bootstrap/vendor/bootstrap/docs/assets/css/src/docs.css +1632 -0
  240. data/mod/bootstrap/vendor/bootstrap/docs/assets/css/src/pygments-manni.css +66 -0
  241. data/mod/bootstrap/vendor/bootstrap/docs/assets/flash/ZeroClipboard.swf +0 -0
  242. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/components.png +0 -0
  243. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/devices.png +0 -0
  244. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/expo-lyft.jpg +0 -0
  245. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/expo-newsweek.jpg +0 -0
  246. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/expo-riot.jpg +0 -0
  247. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/expo-vogue.jpg +0 -0
  248. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/sass-less.png +0 -0
  249. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/customize.min.js +91 -0
  250. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/docs.min.js +26 -0
  251. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/ie-emulation-modes-warning.js +51 -0
  252. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/ie10-viewport-bug-workaround.js +23 -0
  253. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/ie8-responsive-file-warning.js +13 -0
  254. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/raw-files.min.js +8 -0
  255. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/src/application.js +183 -0
  256. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/src/customizer.js +520 -0
  257. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/Blob.js +211 -0
  258. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/FileSaver.js +248 -0
  259. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/ZeroClipboard.min.js +9 -0
  260. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/anchor.min.js +6 -0
  261. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/autoprefixer.js +21114 -0
  262. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/holder.min.js +12 -0
  263. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/jquery.min.js +5 -0
  264. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/jszip.min.js +14 -0
  265. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/less.min.js +16 -0
  266. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/uglify.min.js +6 -0
  267. data/mod/bootstrap/vendor/bootstrap/docs/browser-bugs.html +75 -0
  268. data/mod/bootstrap/vendor/bootstrap/docs/components.html +29 -0
  269. data/mod/bootstrap/vendor/bootstrap/docs/css.html +20 -0
  270. data/mod/bootstrap/vendor/bootstrap/docs/customize.html +385 -0
  271. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap-theme.css +587 -0
  272. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap-theme.css.map +0 -0
  273. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap-theme.min.css +6 -0
  274. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap-theme.min.css.map +0 -0
  275. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap.css +6757 -0
  276. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap.css.map +0 -0
  277. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap.min.css +6 -0
  278. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap.min.css.map +0 -0
  279. data/mod/bootstrap/vendor/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  280. data/mod/bootstrap/vendor/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.svg +288 -0
  281. data/mod/bootstrap/vendor/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  282. data/mod/bootstrap/vendor/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  283. data/mod/bootstrap/vendor/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  284. data/mod/bootstrap/vendor/bootstrap/docs/dist/js/bootstrap.js +2377 -0
  285. data/mod/bootstrap/vendor/bootstrap/docs/dist/js/bootstrap.min.js +7 -0
  286. data/mod/bootstrap/vendor/bootstrap/docs/dist/js/npm.js +13 -0
  287. data/mod/bootstrap/vendor/bootstrap/docs/examples/blog/blog.css +166 -0
  288. data/mod/bootstrap/vendor/bootstrap/docs/examples/blog/index.html +180 -0
  289. data/mod/bootstrap/vendor/bootstrap/docs/examples/carousel/carousel.css +134 -0
  290. data/mod/bootstrap/vendor/bootstrap/docs/examples/carousel/index.html +220 -0
  291. data/mod/bootstrap/vendor/bootstrap/docs/examples/cover/cover.css +163 -0
  292. data/mod/bootstrap/vendor/bootstrap/docs/examples/cover/index.html +84 -0
  293. data/mod/bootstrap/vendor/bootstrap/docs/examples/dashboard/dashboard.css +105 -0
  294. data/mod/bootstrap/vendor/bootstrap/docs/examples/dashboard/index.html +252 -0
  295. data/mod/bootstrap/vendor/bootstrap/docs/examples/grid/grid.css +23 -0
  296. data/mod/bootstrap/vendor/bootstrap/docs/examples/grid/index.html +156 -0
  297. data/mod/bootstrap/vendor/bootstrap/docs/examples/jumbotron-narrow/index.html +88 -0
  298. data/mod/bootstrap/vendor/bootstrap/docs/examples/jumbotron-narrow/jumbotron-narrow.css +79 -0
  299. data/mod/bootstrap/vendor/bootstrap/docs/examples/jumbotron/index.html +107 -0
  300. data/mod/bootstrap/vendor/bootstrap/docs/examples/jumbotron/jumbotron.css +5 -0
  301. data/mod/bootstrap/vendor/bootstrap/docs/examples/justified-nav/index.html +92 -0
  302. data/mod/bootstrap/vendor/bootstrap/docs/examples/justified-nav/justified-nav.css +88 -0
  303. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar-fixed-top/index.html +99 -0
  304. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar-fixed-top/navbar-fixed-top.css +4 -0
  305. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar-static-top/index.html +100 -0
  306. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar-static-top/navbar-static-top.css +7 -0
  307. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar/index.html +98 -0
  308. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar/navbar.css +8 -0
  309. data/mod/bootstrap/vendor/bootstrap/docs/examples/non-responsive/index.html +115 -0
  310. data/mod/bootstrap/vendor/bootstrap/docs/examples/non-responsive/non-responsive.css +262 -0
  311. data/mod/bootstrap/vendor/bootstrap/docs/examples/offcanvas/index.html +137 -0
  312. data/mod/bootstrap/vendor/bootstrap/docs/examples/offcanvas/offcanvas.css +59 -0
  313. data/mod/bootstrap/vendor/bootstrap/docs/examples/offcanvas/offcanvas.js +5 -0
  314. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/blog.jpg +0 -0
  315. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/carousel.jpg +0 -0
  316. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/cover.jpg +0 -0
  317. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/dashboard.jpg +0 -0
  318. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/equal-height-columns.jpg +0 -0
  319. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/grid.jpg +0 -0
  320. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/jumbotron-narrow.jpg +0 -0
  321. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/jumbotron.jpg +0 -0
  322. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/justified-nav.jpg +0 -0
  323. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/navbar-fixed.jpg +0 -0
  324. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/navbar-static.jpg +0 -0
  325. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/navbar.jpg +0 -0
  326. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/non-responsive.jpg +0 -0
  327. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/offcanvas.jpg +0 -0
  328. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/sign-in.jpg +0 -0
  329. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/starter-template.jpg +0 -0
  330. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/sticky-footer-navbar.jpg +0 -0
  331. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/sticky-footer.jpg +0 -0
  332. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/theme.jpg +0 -0
  333. data/mod/bootstrap/vendor/bootstrap/docs/examples/signin/index.html +58 -0
  334. data/mod/bootstrap/vendor/bootstrap/docs/examples/signin/signin.css +40 -0
  335. data/mod/bootstrap/vendor/bootstrap/docs/examples/starter-template/index.html +76 -0
  336. data/mod/bootstrap/vendor/bootstrap/docs/examples/starter-template/starter-template.css +7 -0
  337. data/mod/bootstrap/vendor/bootstrap/docs/examples/sticky-footer-navbar/index.html +95 -0
  338. data/mod/bootstrap/vendor/bootstrap/docs/examples/sticky-footer-navbar/sticky-footer-navbar.css +39 -0
  339. data/mod/bootstrap/vendor/bootstrap/docs/examples/sticky-footer/index.html +55 -0
  340. data/mod/bootstrap/vendor/bootstrap/docs/examples/sticky-footer/sticky-footer.css +32 -0
  341. data/mod/bootstrap/vendor/bootstrap/docs/examples/theme/index.html +644 -0
  342. data/mod/bootstrap/vendor/bootstrap/docs/examples/theme/theme.css +18 -0
  343. data/mod/bootstrap/vendor/bootstrap/docs/examples/tooltip-viewport/index.html +62 -0
  344. data/mod/bootstrap/vendor/bootstrap/docs/examples/tooltip-viewport/tooltip-viewport.css +26 -0
  345. data/mod/bootstrap/vendor/bootstrap/docs/examples/tooltip-viewport/tooltip-viewport.js +18 -0
  346. data/mod/bootstrap/vendor/bootstrap/docs/favicon.ico +0 -0
  347. data/mod/bootstrap/vendor/bootstrap/docs/getting-started.html +28 -0
  348. data/mod/bootstrap/vendor/bootstrap/docs/index.html +73 -0
  349. data/mod/bootstrap/vendor/bootstrap/docs/javascript.html +21 -0
  350. data/mod/bootstrap/vendor/bootstrap/docs/migration.html +445 -0
  351. data/mod/bootstrap/vendor/bootstrap/docs/robots.txt +9 -0
  352. data/mod/bootstrap/vendor/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  353. data/mod/bootstrap/vendor/bootstrap/fonts/glyphicons-halflings-regular.svg +288 -0
  354. data/mod/bootstrap/vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  355. data/mod/bootstrap/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  356. data/mod/bootstrap/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  357. data/mod/bootstrap/vendor/bootstrap/grunt/.jshintrc +7 -0
  358. data/mod/bootstrap/vendor/bootstrap/grunt/bs-commonjs-generator.js +30 -0
  359. data/mod/bootstrap/vendor/bootstrap/grunt/bs-glyphicons-data-generator.js +42 -0
  360. data/mod/bootstrap/vendor/bootstrap/grunt/bs-lessdoc-parser.js +237 -0
  361. data/mod/bootstrap/vendor/bootstrap/grunt/bs-raw-files-generator.js +44 -0
  362. data/mod/bootstrap/vendor/bootstrap/grunt/change-version.js +109 -0
  363. data/mod/bootstrap/vendor/bootstrap/grunt/configBridge.json +46 -0
  364. data/mod/bootstrap/vendor/bootstrap/grunt/npm-shrinkwrap.json +2679 -0
  365. data/mod/bootstrap/vendor/bootstrap/grunt/sauce_browsers.yml +82 -0
  366. data/mod/bootstrap/vendor/bootstrap/js/.jscsrc +42 -0
  367. data/mod/bootstrap/vendor/bootstrap/js/.jshintrc +15 -0
  368. data/mod/bootstrap/vendor/bootstrap/js/affix.js +162 -0
  369. data/mod/bootstrap/vendor/bootstrap/js/alert.js +94 -0
  370. data/mod/bootstrap/vendor/bootstrap/js/button.js +125 -0
  371. data/mod/bootstrap/vendor/bootstrap/js/carousel.js +239 -0
  372. data/mod/bootstrap/vendor/bootstrap/js/collapse.js +212 -0
  373. data/mod/bootstrap/vendor/bootstrap/js/dropdown.js +165 -0
  374. data/mod/bootstrap/vendor/bootstrap/js/modal.js +339 -0
  375. data/mod/bootstrap/vendor/bootstrap/js/popover.js +108 -0
  376. data/mod/bootstrap/vendor/bootstrap/js/scrollspy.js +172 -0
  377. data/mod/bootstrap/vendor/bootstrap/js/tab.js +155 -0
  378. data/mod/bootstrap/vendor/bootstrap/js/tests/README.md +62 -0
  379. data/mod/bootstrap/vendor/bootstrap/js/tests/index.html +169 -0
  380. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/.jshintrc +6 -0
  381. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/affix.js +107 -0
  382. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/alert.js +78 -0
  383. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/button.js +168 -0
  384. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/carousel.js +718 -0
  385. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/collapse.js +443 -0
  386. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/dropdown.js +423 -0
  387. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/modal.js +377 -0
  388. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/phantom.js +72 -0
  389. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/popover.js +290 -0
  390. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/scrollspy.js +278 -0
  391. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/tab.js +216 -0
  392. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/tooltip.js +1325 -0
  393. data/mod/bootstrap/vendor/bootstrap/js/tests/vendor/jquery.min.js +5 -0
  394. data/mod/bootstrap/vendor/bootstrap/js/tests/vendor/qunit.css +305 -0
  395. data/mod/bootstrap/vendor/bootstrap/js/tests/vendor/qunit.js +4204 -0
  396. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/affix-with-sticky-footer.html +317 -0
  397. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/affix.html +306 -0
  398. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/alert.html +48 -0
  399. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/button.html +79 -0
  400. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/carousel.html +58 -0
  401. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/collapse.html +78 -0
  402. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/dropdown.html +108 -0
  403. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/modal.html +205 -0
  404. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/popover.html +54 -0
  405. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/scrollspy.html +109 -0
  406. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/tab.html +172 -0
  407. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/tooltip.html +50 -0
  408. data/mod/bootstrap/vendor/bootstrap/js/tooltip.js +520 -0
  409. data/mod/bootstrap/vendor/bootstrap/js/transition.js +59 -0
  410. data/mod/bootstrap/vendor/bootstrap/less/.csscomb.json +304 -0
  411. data/mod/bootstrap/vendor/bootstrap/less/.csslintrc +19 -0
  412. data/mod/bootstrap/vendor/bootstrap/less/alerts.less +73 -0
  413. data/mod/bootstrap/vendor/bootstrap/less/badges.less +66 -0
  414. data/mod/bootstrap/vendor/bootstrap/less/bootstrap.less +56 -0
  415. data/mod/bootstrap/vendor/bootstrap/less/breadcrumbs.less +26 -0
  416. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/_button-group.scss → vendor/bootstrap/less/button-groups.less} +100 -58
  417. data/mod/bootstrap/vendor/bootstrap/less/buttons.less +166 -0
  418. data/mod/bootstrap/vendor/bootstrap/less/carousel.less +270 -0
  419. data/mod/bootstrap/vendor/bootstrap/less/close.less +34 -0
  420. data/mod/bootstrap/vendor/bootstrap/less/code.less +69 -0
  421. data/mod/bootstrap/vendor/bootstrap/less/component-animations.less +33 -0
  422. data/mod/bootstrap/vendor/bootstrap/less/dropdowns.less +216 -0
  423. data/mod/bootstrap/vendor/bootstrap/less/forms.less +613 -0
  424. data/mod/bootstrap/vendor/bootstrap/less/glyphicons.less +305 -0
  425. data/mod/bootstrap/vendor/bootstrap/less/grid.less +84 -0
  426. data/mod/bootstrap/vendor/bootstrap/less/input-groups.less +171 -0
  427. data/mod/bootstrap/vendor/bootstrap/less/jumbotron.less +54 -0
  428. data/mod/bootstrap/vendor/bootstrap/less/labels.less +64 -0
  429. data/mod/bootstrap/vendor/bootstrap/less/list-group.less +130 -0
  430. data/mod/bootstrap/vendor/bootstrap/less/media.less +66 -0
  431. data/mod/bootstrap/vendor/bootstrap/less/mixins.less +40 -0
  432. data/mod/bootstrap/vendor/bootstrap/less/mixins/alerts.less +14 -0
  433. data/mod/bootstrap/vendor/bootstrap/less/mixins/background-variant.less +9 -0
  434. data/mod/bootstrap/vendor/bootstrap/less/mixins/border-radius.less +18 -0
  435. data/mod/bootstrap/vendor/bootstrap/less/mixins/buttons.less +65 -0
  436. data/mod/bootstrap/vendor/bootstrap/less/mixins/center-block.less +7 -0
  437. data/mod/bootstrap/vendor/bootstrap/less/mixins/clearfix.less +22 -0
  438. data/mod/bootstrap/vendor/bootstrap/less/mixins/forms.less +85 -0
  439. data/mod/bootstrap/vendor/bootstrap/less/mixins/gradients.less +59 -0
  440. data/mod/bootstrap/vendor/bootstrap/less/mixins/grid-framework.less +91 -0
  441. data/mod/bootstrap/vendor/bootstrap/less/mixins/grid.less +122 -0
  442. data/mod/bootstrap/vendor/bootstrap/less/mixins/hide-text.less +21 -0
  443. data/mod/bootstrap/vendor/bootstrap/less/mixins/image.less +33 -0
  444. data/mod/bootstrap/vendor/bootstrap/less/mixins/labels.less +12 -0
  445. data/mod/bootstrap/vendor/bootstrap/less/mixins/list-group.less +30 -0
  446. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/mixins/_nav-divider.scss → vendor/bootstrap/less/mixins/nav-divider.less} +3 -3
  447. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/mixins/_navbar-align.scss → vendor/bootstrap/less/mixins/nav-vertical-align.less} +4 -4
  448. data/mod/bootstrap/vendor/bootstrap/less/mixins/opacity.less +8 -0
  449. data/mod/bootstrap/vendor/bootstrap/less/mixins/pagination.less +24 -0
  450. data/mod/bootstrap/vendor/bootstrap/less/mixins/panels.less +24 -0
  451. data/mod/bootstrap/vendor/bootstrap/less/mixins/progress-bar.less +10 -0
  452. data/mod/bootstrap/vendor/bootstrap/less/mixins/reset-filter.less +8 -0
  453. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/mixins/_reset-text.scss → vendor/bootstrap/less/mixins/reset-text.less} +6 -5
  454. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/mixins/_resize.scss → vendor/bootstrap/less/mixins/resize.less} +2 -2
  455. data/mod/bootstrap/vendor/bootstrap/less/mixins/responsive-visibility.less +15 -0
  456. data/mod/bootstrap/vendor/bootstrap/less/mixins/size.less +10 -0
  457. data/mod/bootstrap/vendor/bootstrap/less/mixins/tab-focus.less +9 -0
  458. data/mod/bootstrap/vendor/bootstrap/less/mixins/table-row.less +28 -0
  459. data/mod/bootstrap/vendor/bootstrap/less/mixins/text-emphasis.less +9 -0
  460. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/mixins/_text-truncate.scss → vendor/bootstrap/less/mixins/text-overflow.less} +3 -3
  461. data/mod/bootstrap/vendor/bootstrap/less/mixins/vendor-prefixes.less +227 -0
  462. data/mod/bootstrap/vendor/bootstrap/less/modals.less +150 -0
  463. data/mod/bootstrap/vendor/bootstrap/less/navbar.less +660 -0
  464. data/mod/bootstrap/vendor/bootstrap/less/navs.less +242 -0
  465. data/mod/bootstrap/vendor/bootstrap/less/normalize.less +424 -0
  466. data/mod/bootstrap/vendor/bootstrap/less/pager.less +54 -0
  467. data/mod/bootstrap/vendor/bootstrap/less/pagination.less +89 -0
  468. data/mod/bootstrap/vendor/bootstrap/less/panels.less +271 -0
  469. data/mod/bootstrap/vendor/bootstrap/less/popovers.less +131 -0
  470. data/mod/bootstrap/vendor/bootstrap/less/print.less +101 -0
  471. data/mod/bootstrap/vendor/bootstrap/less/progress-bars.less +87 -0
  472. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/_responsive-embed.scss → vendor/bootstrap/less/responsive-embed.less} +9 -26
  473. data/mod/bootstrap/vendor/bootstrap/less/responsive-utilities.less +194 -0
  474. data/mod/bootstrap/vendor/bootstrap/less/scaffolding.less +161 -0
  475. data/mod/bootstrap/vendor/bootstrap/less/tables.less +234 -0
  476. data/mod/bootstrap/vendor/bootstrap/less/theme.less +291 -0
  477. data/mod/bootstrap/vendor/bootstrap/less/thumbnails.less +36 -0
  478. data/mod/bootstrap/vendor/bootstrap/less/tooltip.less +101 -0
  479. data/mod/bootstrap/vendor/bootstrap/less/type.less +302 -0
  480. data/mod/bootstrap/vendor/bootstrap/less/utilities.less +55 -0
  481. data/mod/bootstrap/vendor/bootstrap/less/variables.less +869 -0
  482. data/mod/bootstrap/vendor/bootstrap/less/wells.less +29 -0
  483. data/mod/bootstrap/vendor/bootstrap/nuget/MyGet.ps1 +8 -0
  484. data/mod/bootstrap/vendor/bootstrap/nuget/bootstrap.less.nuspec +28 -0
  485. data/mod/bootstrap/vendor/bootstrap/nuget/bootstrap.nuspec +28 -0
  486. data/mod/bootstrap/vendor/bootstrap/package.js +32 -0
  487. data/mod/bootstrap/vendor/bootstrap/package.json +89 -0
  488. data/mod/bootstrap/vendor/bootswatch/README.md +63 -0
  489. data/mod/bootstrap/vendor/bootswatch/swatchmaker/README.md +1 -0
  490. data/mod/bootstrap/vendor/select2/.editorconfig +6 -0
  491. data/mod/bootstrap/vendor/select2/.github/CONTRIBUTING.md +203 -0
  492. data/mod/bootstrap/vendor/select2/.github/ISSUE_TEMPLATE.md +20 -0
  493. data/mod/bootstrap/vendor/select2/.github/PULL_REQUEST_TEMPLATE.md +13 -0
  494. data/mod/bootstrap/vendor/select2/.gitignore +3 -0
  495. data/mod/bootstrap/vendor/select2/.jshintignore +4 -0
  496. data/mod/bootstrap/vendor/select2/.jshintrc +25 -0
  497. data/mod/bootstrap/vendor/select2/.travis.yml +22 -0
  498. data/mod/bootstrap/vendor/select2/CHANGELOG.md +272 -0
  499. data/mod/bootstrap/vendor/select2/Gruntfile.js +380 -0
  500. data/mod/bootstrap/vendor/select2/LICENSE.md +21 -0
  501. data/mod/bootstrap/vendor/select2/README.md +123 -0
  502. data/mod/bootstrap/vendor/select2/bower.json +13 -0
  503. data/mod/bootstrap/vendor/select2/component.json +19 -0
  504. data/mod/bootstrap/vendor/select2/composer.json +25 -0
  505. data/mod/bootstrap/{lib/stylesheets/style_select2.css → vendor/select2/dist/css/select2.css} +0 -0
  506. data/mod/bootstrap/{lib/stylesheets → vendor/select2/dist/css}/select2.min.css +0 -0
  507. data/mod/bootstrap/vendor/select2/dist/js/i18n/af.js +3 -0
  508. data/mod/bootstrap/vendor/select2/dist/js/i18n/ar.js +3 -0
  509. data/mod/bootstrap/vendor/select2/dist/js/i18n/az.js +3 -0
  510. data/mod/bootstrap/vendor/select2/dist/js/i18n/bg.js +3 -0
  511. data/mod/bootstrap/vendor/select2/dist/js/i18n/bs.js +3 -0
  512. data/mod/bootstrap/vendor/select2/dist/js/i18n/ca.js +3 -0
  513. data/mod/bootstrap/vendor/select2/dist/js/i18n/cs.js +3 -0
  514. data/mod/bootstrap/vendor/select2/dist/js/i18n/da.js +3 -0
  515. data/mod/bootstrap/vendor/select2/dist/js/i18n/de.js +3 -0
  516. data/mod/bootstrap/vendor/select2/dist/js/i18n/dsb.js +3 -0
  517. data/mod/bootstrap/vendor/select2/dist/js/i18n/el.js +3 -0
  518. data/mod/bootstrap/vendor/select2/dist/js/i18n/en.js +3 -0
  519. data/mod/bootstrap/vendor/select2/dist/js/i18n/es.js +3 -0
  520. data/mod/bootstrap/vendor/select2/dist/js/i18n/et.js +3 -0
  521. data/mod/bootstrap/vendor/select2/dist/js/i18n/eu.js +3 -0
  522. data/mod/bootstrap/vendor/select2/dist/js/i18n/fa.js +3 -0
  523. data/mod/bootstrap/vendor/select2/dist/js/i18n/fi.js +3 -0
  524. data/mod/bootstrap/vendor/select2/dist/js/i18n/fr.js +3 -0
  525. data/mod/bootstrap/vendor/select2/dist/js/i18n/gl.js +3 -0
  526. data/mod/bootstrap/vendor/select2/dist/js/i18n/he.js +3 -0
  527. data/mod/bootstrap/vendor/select2/dist/js/i18n/hi.js +3 -0
  528. data/mod/bootstrap/vendor/select2/dist/js/i18n/hr.js +3 -0
  529. data/mod/bootstrap/vendor/select2/dist/js/i18n/hsb.js +3 -0
  530. data/mod/bootstrap/vendor/select2/dist/js/i18n/hu.js +3 -0
  531. data/mod/bootstrap/vendor/select2/dist/js/i18n/hy.js +3 -0
  532. data/mod/bootstrap/vendor/select2/dist/js/i18n/id.js +3 -0
  533. data/mod/bootstrap/vendor/select2/dist/js/i18n/is.js +3 -0
  534. data/mod/bootstrap/vendor/select2/dist/js/i18n/it.js +3 -0
  535. data/mod/bootstrap/vendor/select2/dist/js/i18n/ja.js +3 -0
  536. data/mod/bootstrap/vendor/select2/dist/js/i18n/km.js +3 -0
  537. data/mod/bootstrap/vendor/select2/dist/js/i18n/ko.js +3 -0
  538. data/mod/bootstrap/vendor/select2/dist/js/i18n/lt.js +3 -0
  539. data/mod/bootstrap/vendor/select2/dist/js/i18n/lv.js +3 -0
  540. data/mod/bootstrap/vendor/select2/dist/js/i18n/mk.js +3 -0
  541. data/mod/bootstrap/vendor/select2/dist/js/i18n/ms.js +3 -0
  542. data/mod/bootstrap/vendor/select2/dist/js/i18n/nb.js +3 -0
  543. data/mod/bootstrap/vendor/select2/dist/js/i18n/nl.js +3 -0
  544. data/mod/bootstrap/vendor/select2/dist/js/i18n/pl.js +3 -0
  545. data/mod/bootstrap/vendor/select2/dist/js/i18n/ps.js +3 -0
  546. data/mod/bootstrap/vendor/select2/dist/js/i18n/pt-BR.js +3 -0
  547. data/mod/bootstrap/vendor/select2/dist/js/i18n/pt.js +3 -0
  548. data/mod/bootstrap/vendor/select2/dist/js/i18n/ro.js +3 -0
  549. data/mod/bootstrap/vendor/select2/dist/js/i18n/ru.js +3 -0
  550. data/mod/bootstrap/vendor/select2/dist/js/i18n/sk.js +3 -0
  551. data/mod/bootstrap/vendor/select2/dist/js/i18n/sl.js +3 -0
  552. data/mod/bootstrap/vendor/select2/dist/js/i18n/sr-Cyrl.js +3 -0
  553. data/mod/bootstrap/vendor/select2/dist/js/i18n/sr.js +3 -0
  554. data/mod/bootstrap/vendor/select2/dist/js/i18n/sv.js +3 -0
  555. data/mod/bootstrap/vendor/select2/dist/js/i18n/th.js +3 -0
  556. data/mod/bootstrap/vendor/select2/dist/js/i18n/tr.js +3 -0
  557. data/mod/bootstrap/vendor/select2/dist/js/i18n/uk.js +3 -0
  558. data/mod/bootstrap/vendor/select2/dist/js/i18n/vi.js +3 -0
  559. data/mod/bootstrap/vendor/select2/dist/js/i18n/zh-CN.js +3 -0
  560. data/mod/bootstrap/vendor/select2/dist/js/i18n/zh-TW.js +3 -0
  561. data/mod/bootstrap/vendor/select2/dist/js/select2.full.js +6457 -0
  562. data/mod/bootstrap/vendor/select2/dist/js/select2.full.min.js +1 -0
  563. data/mod/bootstrap/{lib/javascript/script_select2.js → vendor/select2/dist/js/select2.js} +90 -69
  564. data/mod/bootstrap/vendor/select2/dist/js/select2.min.js +1 -0
  565. data/mod/bootstrap/vendor/select2/docs/README.md +1 -0
  566. data/mod/bootstrap/vendor/select2/docs/announcements-4.0.html +12 -0
  567. data/mod/bootstrap/vendor/select2/docs/community.html +12 -0
  568. data/mod/bootstrap/vendor/select2/docs/examples.html +12 -0
  569. data/mod/bootstrap/vendor/select2/docs/index.html +12 -0
  570. data/mod/bootstrap/vendor/select2/docs/options-old.html +12 -0
  571. data/mod/bootstrap/vendor/select2/docs/options.html +12 -0
  572. data/mod/bootstrap/vendor/select2/package.json +73 -0
  573. data/mod/bootstrap/vendor/select2/select2.jquery.json +32 -0
  574. data/mod/bootstrap/vendor/select2/src/js/banner.end.js +6 -0
  575. data/mod/bootstrap/vendor/select2/src/js/banner.start.js +6 -0
  576. data/mod/bootstrap/vendor/select2/src/js/jquery.mousewheel.shim.js +6 -0
  577. data/mod/bootstrap/vendor/select2/src/js/jquery.select2.js +57 -0
  578. data/mod/bootstrap/vendor/select2/src/js/jquery.shim.js +14 -0
  579. data/mod/bootstrap/vendor/select2/src/js/select2/compat/containerCss.js +56 -0
  580. data/mod/bootstrap/vendor/select2/src/js/select2/compat/dropdownCss.js +56 -0
  581. data/mod/bootstrap/vendor/select2/src/js/select2/compat/initSelection.js +42 -0
  582. data/mod/bootstrap/vendor/select2/src/js/select2/compat/inputData.js +127 -0
  583. data/mod/bootstrap/vendor/select2/src/js/select2/compat/matcher.js +42 -0
  584. data/mod/bootstrap/vendor/select2/src/js/select2/compat/query.js +26 -0
  585. data/mod/bootstrap/vendor/select2/src/js/select2/compat/utils.js +43 -0
  586. data/mod/bootstrap/vendor/select2/src/js/select2/core.js +612 -0
  587. data/mod/bootstrap/vendor/select2/src/js/select2/data/ajax.js +109 -0
  588. data/mod/bootstrap/vendor/select2/src/js/select2/data/array.js +79 -0
  589. data/mod/bootstrap/vendor/select2/src/js/select2/data/base.js +40 -0
  590. data/mod/bootstrap/vendor/select2/src/js/select2/data/maximumInputLength.js +31 -0
  591. data/mod/bootstrap/vendor/select2/src/js/select2/data/maximumSelectionLength.js +31 -0
  592. data/mod/bootstrap/vendor/select2/src/js/select2/data/minimumInputLength.js +30 -0
  593. data/mod/bootstrap/vendor/select2/src/js/select2/data/select.js +285 -0
  594. data/mod/bootstrap/vendor/select2/src/js/select2/data/tags.js +128 -0
  595. data/mod/bootstrap/vendor/select2/src/js/select2/data/tokenizer.js +116 -0
  596. data/mod/bootstrap/vendor/select2/src/js/select2/defaults.js +396 -0
  597. data/mod/bootstrap/vendor/select2/src/js/select2/diacritics.js +847 -0
  598. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown.js +42 -0
  599. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/attachBody.js +222 -0
  600. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/attachContainer.js +18 -0
  601. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/closeOnSelect.js +35 -0
  602. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/hidePlaceholder.js +42 -0
  603. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/infiniteScroll.js +89 -0
  604. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/minimumResultsForSearch.js +39 -0
  605. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/search.js +101 -0
  606. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/selectOnClose.js +50 -0
  607. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/stopPropagation.js +38 -0
  608. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/af.js +44 -0
  609. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ar.js +30 -0
  610. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/az.js +27 -0
  611. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/bg.js +47 -0
  612. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/bs.js +55 -0
  613. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ca.js +52 -0
  614. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/cs.js +61 -0
  615. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/da.js +36 -0
  616. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/de.js +40 -0
  617. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/dsb.js +48 -0
  618. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/el.js +52 -0
  619. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/en.js +44 -0
  620. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/es.js +52 -0
  621. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/et.js +53 -0
  622. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/eu.js +51 -0
  623. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/fa.js +38 -0
  624. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/fi.js +30 -0
  625. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/fr.js +33 -0
  626. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/gl.js +39 -0
  627. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/he.js +56 -0
  628. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/hi.js +39 -0
  629. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/hr.js +44 -0
  630. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/hsb.js +48 -0
  631. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/hu.js +30 -0
  632. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/hy.js +38 -0
  633. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/id.js +30 -0
  634. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/is.js +41 -0
  635. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/it.js +48 -0
  636. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ja.js +36 -0
  637. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/km.js +36 -0
  638. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ko.js +36 -0
  639. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/lt.js +52 -0
  640. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/lv.js +51 -0
  641. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/mk.js +47 -0
  642. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ms.js +30 -0
  643. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/nb.js +32 -0
  644. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/nl.js +43 -0
  645. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/pl.js +45 -0
  646. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ps.js +45 -0
  647. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/pt-BR.js +46 -0
  648. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/pt.js +40 -0
  649. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ro.js +46 -0
  650. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ru.js +58 -0
  651. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/sk.js +59 -0
  652. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/sl.js +54 -0
  653. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/sr-Cyrl.js +55 -0
  654. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/sr.js +55 -0
  655. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/sv.js +37 -0
  656. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/th.js +36 -0
  657. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/tr.js +36 -0
  658. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/uk.js +43 -0
  659. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/vi.js +37 -0
  660. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/zh-CN.js +36 -0
  661. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/zh-TW.js +33 -0
  662. data/mod/bootstrap/vendor/select2/src/js/select2/keys.js +25 -0
  663. data/mod/bootstrap/vendor/select2/src/js/select2/options.js +122 -0
  664. data/mod/bootstrap/vendor/select2/src/js/select2/results.js +523 -0
  665. data/mod/bootstrap/vendor/select2/src/js/select2/selection/allowClear.js +97 -0
  666. data/mod/bootstrap/vendor/select2/src/js/select2/selection/base.js +158 -0
  667. data/mod/bootstrap/vendor/select2/src/js/select2/selection/clickMask.js +29 -0
  668. data/mod/bootstrap/vendor/select2/src/js/select2/selection/eventRelay.js +45 -0
  669. data/mod/bootstrap/vendor/select2/src/js/select2/selection/multiple.js +109 -0
  670. data/mod/bootstrap/vendor/select2/src/js/select2/selection/placeholder.js +49 -0
  671. data/mod/bootstrap/vendor/select2/src/js/select2/selection/search.js +222 -0
  672. data/mod/bootstrap/vendor/select2/src/js/select2/selection/single.js +99 -0
  673. data/mod/bootstrap/vendor/select2/src/js/select2/selection/stopPropagation.js +38 -0
  674. data/mod/bootstrap/vendor/select2/src/js/select2/translation.js +36 -0
  675. data/mod/bootstrap/vendor/select2/src/js/select2/utils.js +276 -0
  676. data/mod/bootstrap/vendor/select2/src/js/wrapper.end.js +12 -0
  677. data/mod/bootstrap/vendor/select2/src/js/wrapper.start.js +38 -0
  678. data/mod/bootstrap/vendor/select2/src/scss/_dropdown.scss +73 -0
  679. data/mod/bootstrap/vendor/select2/src/scss/_multiple.scss +35 -0
  680. data/mod/bootstrap/vendor/select2/src/scss/_single.scss +34 -0
  681. data/mod/bootstrap/vendor/select2/src/scss/core.scss +48 -0
  682. data/mod/bootstrap/vendor/select2/src/scss/mixins/_gradients.scss +13 -0
  683. data/mod/bootstrap/vendor/select2/src/scss/theme/classic/_defaults.scss +34 -0
  684. data/mod/bootstrap/vendor/select2/src/scss/theme/classic/_multiple.scss +93 -0
  685. data/mod/bootstrap/vendor/select2/src/scss/theme/classic/_single.scss +124 -0
  686. data/mod/bootstrap/vendor/select2/src/scss/theme/classic/layout.scss +64 -0
  687. data/mod/bootstrap/vendor/select2/src/scss/theme/default/_multiple.scss +98 -0
  688. data/mod/bootstrap/vendor/select2/src/scss/theme/default/_single.scss +83 -0
  689. data/mod/bootstrap/vendor/select2/src/scss/theme/default/layout.scss +97 -0
  690. data/mod/bootstrap/vendor/select2/tests/a11y/search-tests.js +51 -0
  691. data/mod/bootstrap/vendor/select2/tests/a11y/selection-tests.js +154 -0
  692. data/mod/bootstrap/vendor/select2/tests/data/array-tests.js +318 -0
  693. data/mod/bootstrap/vendor/select2/tests/data/base-tests.js +29 -0
  694. data/mod/bootstrap/vendor/select2/tests/data/inputData-tests.js +158 -0
  695. data/mod/bootstrap/vendor/select2/tests/data/maximumInputLength-tests.js +138 -0
  696. data/mod/bootstrap/vendor/select2/tests/data/maximumSelectionLength-tests.js +202 -0
  697. data/mod/bootstrap/vendor/select2/tests/data/minimumInputLength-tests.js +138 -0
  698. data/mod/bootstrap/vendor/select2/tests/data/select-tests.js +489 -0
  699. data/mod/bootstrap/vendor/select2/tests/data/tags-tests.js +276 -0
  700. data/mod/bootstrap/vendor/select2/tests/data/tokenizer-tests.js +219 -0
  701. data/mod/bootstrap/vendor/select2/tests/dropdown/dropdownCss-tests.js +104 -0
  702. data/mod/bootstrap/vendor/select2/tests/dropdown/positioning-tests.js +177 -0
  703. data/mod/bootstrap/vendor/select2/tests/dropdown/selectOnClose-tests.js +137 -0
  704. data/mod/bootstrap/vendor/select2/tests/dropdown/stopPropagation-tests.js +33 -0
  705. data/mod/bootstrap/vendor/select2/tests/helpers.js +46 -0
  706. data/mod/bootstrap/vendor/select2/tests/integration.html +21 -0
  707. data/mod/bootstrap/vendor/select2/tests/integration/dom-changes.js +257 -0
  708. data/mod/bootstrap/vendor/select2/tests/integration/jquery-calls.js +30 -0
  709. data/mod/bootstrap/vendor/select2/tests/integration/select2-methods.js +139 -0
  710. data/mod/bootstrap/vendor/select2/tests/options/ajax-tests.js +32 -0
  711. data/mod/bootstrap/vendor/select2/tests/options/data-tests.js +44 -0
  712. data/mod/bootstrap/vendor/select2/tests/options/deprecated-tests.js +250 -0
  713. data/mod/bootstrap/vendor/select2/tests/options/translation-tests.js +28 -0
  714. data/mod/bootstrap/vendor/select2/tests/options/width-tests.js +66 -0
  715. data/mod/bootstrap/vendor/select2/tests/results/focusing-tests.js +138 -0
  716. data/mod/bootstrap/vendor/select2/tests/selection/allowClear-tests.js +218 -0
  717. data/mod/bootstrap/vendor/select2/tests/selection/containerCss-tests.js +104 -0
  718. data/mod/bootstrap/vendor/select2/tests/selection/multiple-tests.js +149 -0
  719. data/mod/bootstrap/vendor/select2/tests/selection/placeholder-tests.js +74 -0
  720. data/mod/bootstrap/vendor/select2/tests/selection/search-tests.js +191 -0
  721. data/mod/bootstrap/vendor/select2/tests/selection/single-tests.js +117 -0
  722. data/mod/bootstrap/vendor/select2/tests/selection/stopPropagation-tests.js +33 -0
  723. data/mod/bootstrap/vendor/select2/tests/unit.html +95 -0
  724. data/mod/bootstrap/vendor/select2/tests/utils/decorator-tests.js +189 -0
  725. data/mod/bootstrap/vendor/select2/tests/utils/escapeMarkup-tests.js +36 -0
  726. data/mod/bootstrap/vendor/select2/tests/vendor/jquery-1.7.2.js +9404 -0
  727. data/mod/bootstrap/vendor/select2/tests/vendor/qunit-1.23.1.css +305 -0
  728. data/mod/bootstrap/vendor/select2/tests/vendor/qunit-1.23.1.js +4334 -0
  729. data/mod/bootstrap/vendor/select2/vendor/jquery-2.1.0.js +9111 -0
  730. data/mod/carrierwave/lib/carrier_wave/cardmount.rb +6 -1
  731. data/mod/carrierwave/lib/carrier_wave/file_card_uploader.rb +4 -0
  732. data/mod/carrierwave/set/abstract/attachment.rb +13 -6
  733. data/mod/carrierwave/set/abstract/attachment/storage_type.rb +15 -12
  734. data/mod/carrierwave/set/abstract/attachment/upload_cache.rb +2 -3
  735. data/mod/carrierwave/set/type/file.rb +17 -17
  736. data/mod/carrierwave/set/type/image.rb +40 -37
  737. data/mod/carrierwave/spec/set/type/file_spec.rb +15 -15
  738. data/mod/carrierwave/spec/set/type/image_spec.rb +3 -3
  739. data/mod/core/chunk/reference.rb +3 -3
  740. data/mod/core/chunk/view_stub.rb +12 -4
  741. data/mod/core/format/html_format.rb +1 -1
  742. data/mod/core/format/text_format.rb +5 -0
  743. data/mod/core/set/abstract/code_file.rb +8 -3
  744. data/mod/core/set/all/actify.rb +8 -50
  745. data/mod/core/set/all/assign_attributes.rb +1 -1
  746. data/mod/core/set/all/cache.rb +1 -1
  747. data/mod/core/set/all/collection.rb +7 -7
  748. data/mod/core/set/all/content.rb +12 -6
  749. data/mod/core/set/all/fetch.rb +23 -15
  750. data/mod/core/set/all/fetch_helper.rb +11 -9
  751. data/mod/core/set/all/haml.rb +4 -0
  752. data/mod/core/set/all/initialize.rb +2 -2
  753. data/mod/core/set/all/mark.rb +17 -35
  754. data/mod/core/set/all/name.rb +25 -25
  755. data/mod/core/set/all/name_validations.rb +6 -6
  756. data/mod/core/set/all/permissions.rb +1 -1
  757. data/mod/core/set/all/phases.rb +3 -3
  758. data/mod/core/set/all/references.rb +4 -4
  759. data/mod/core/set/all/rename.rb +6 -7
  760. data/mod/core/set/all/rules.rb +2 -2
  761. data/mod/core/set/all/stages.rb +2 -11
  762. data/mod/core/set/all/subcards.rb +1 -1
  763. data/mod/core/set/all/templating.rb +4 -4
  764. data/mod/core/set/all/type.rb +2 -2
  765. data/mod/core/set/all/update_read_rules.rb +2 -56
  766. data/mod/core/set_pattern/04_star.rb +1 -1
  767. data/mod/core/set_pattern/05_rstar.rb +1 -1
  768. data/mod/core/set_pattern/06_right.rb +1 -1
  769. data/mod/core/set_pattern/07_type_plus_right.rb +2 -3
  770. data/mod/core/spec/format/html_format_spec.rb +4 -4
  771. data/mod/core/spec/set/all/actify_spec.rb +107 -42
  772. data/mod/core/spec/set/all/event_conditions_spec.rb +1 -1
  773. data/mod/core/spec/set/all/fetch_spec.rb +57 -13
  774. data/mod/core/spec/set/all/name_spec.rb +1 -1
  775. data/mod/core/spec/set/all/permissions/reader_rules_spec.rb +1 -1
  776. data/mod/core/spec/set/all/permissions_spec.rb +2 -2
  777. data/mod/core/spec/set/all/rename_spec.rb +7 -5
  778. data/mod/core/spec/set/all/templating_spec.rb +5 -5
  779. data/mod/core/spec/set/all/type_spec.rb +1 -1
  780. data/mod/developer/set/all/event_viz.rb +1 -3
  781. data/mod/history/lib/card/act.rb +2 -6
  782. data/mod/history/lib/card/act/act_renderer.rb +6 -11
  783. data/mod/history/lib/card/action/action_renderer.rb +1 -1
  784. data/mod/history/lib/card/change.rb +1 -1
  785. data/mod/history/set/all/action_view.rb +1 -1
  786. data/mod/history/set/all/actions.rb +10 -1
  787. data/mod/history/set/all/content_history.rb +9 -9
  788. data/mod/history/set/all/history.rb +40 -27
  789. data/mod/machines/lib/javascript/decko.js.coffee +1 -1
  790. data/mod/machines/lib/javascript/decko_filter.js.coffee +40 -0
  791. data/mod/machines/lib/javascript/decko_layout.js.coffee +16 -8
  792. data/mod/machines/lib/stylesheets/style_cards.scss +9 -0
  793. data/mod/machines/set/abstract/machine.rb +12 -9
  794. data/mod/machines/set/abstract/script.rb +4 -0
  795. data/mod/machines/set/self/script_slot.rb +2 -1
  796. data/mod/machines/set/type/css.rb +4 -0
  797. data/mod/machines/spec/set/type/skin_spec.rb +2 -2
  798. data/mod/machines/spec/shared_examples/machine_input.rb +3 -3
  799. data/mod/notifications/format/email_html_format.rb +4 -0
  800. data/mod/notifications/set/all/follow.rb +1 -1
  801. data/mod/notifications/set/all/send_notifications.rb +18 -17
  802. data/mod/notifications/set/right/bcc.rb +1 -1
  803. data/mod/notifications/set/right/follow.rb +3 -3
  804. data/mod/notifications/set/right/followers.rb +1 -1
  805. data/mod/notifications/set/right/following.rb +2 -2
  806. data/mod/notifications/set/right/html_message.rb +0 -5
  807. data/mod/notifications/set/right/text_message.rb +0 -5
  808. data/mod/notifications/set/self/follow_defaults.rb +3 -3
  809. data/mod/notifications/set/type_plus_right/user/follow.rb +1 -1
  810. data/mod/notifications/spec/set/right/followers_spec.rb +1 -1
  811. data/mod/pointer/set/abstract/01_paging.rb +1 -1
  812. data/mod/pointer/set/abstract/02_pointer.rb +2 -2
  813. data/mod/pointer/set/abstract/02_pointer/edit.rb +10 -8
  814. data/mod/pointer/set/abstract/code_pointer.rb +1 -1
  815. data/mod/pointer/set/self/input_options.rb +1 -1
  816. data/mod/pointer/spec/set/type/pointer_spec.rb +1 -1
  817. data/mod/prosemirror_editor/set/abstract/prosemirror_editor.rb +1 -1
  818. data/mod/{standard → search}/set/abstract/01_search_params.rb +0 -0
  819. data/mod/{standard → search}/set/abstract/search.rb +1 -1
  820. data/mod/{standard → search}/set/abstract/wql_search.rb +2 -2
  821. data/mod/search/set/all/filter.rb +12 -0
  822. data/mod/{standard → search}/set/self/navbox.rb +1 -1
  823. data/mod/{standard → search}/set/self/recent.rb +1 -1
  824. data/mod/{standard → search}/set/self/search.rb +2 -2
  825. data/mod/{standard → search}/set/type/search_type.rb +2 -2
  826. data/mod/search/spec/set/all/filter_spec.rb +37 -0
  827. data/mod/{standard → search}/spec/set/self/navbox_spec.rb +0 -0
  828. data/mod/{standard → search}/spec/set/self/recent_spec.rb +0 -0
  829. data/mod/{standard → search}/spec/set/self/search_spec.rb +0 -0
  830. data/mod/search/template/all/filter/_filter_input.haml +8 -0
  831. data/mod/search/template/all/filter/filter_form.haml +32 -0
  832. data/mod/settings/lib/card/setting.rb +11 -11
  833. data/mod/settings/set/abstract/permission.rb +3 -3
  834. data/mod/settings/set/right/read.rb +56 -0
  835. data/mod/settings/set/type/setting.rb +1 -1
  836. data/mod/solid_cache/set/right/solid_cache.rb +1 -1
  837. data/mod/standard/set/abstract/toolbar_split_button.rb +1 -1
  838. data/mod/standard/set/all/error.rb +1 -1
  839. data/mod/standard/set/all/links.rb +3 -3
  840. data/mod/standard/set/all/list_changes.rb +7 -3
  841. data/mod/standard/set/all/rich_html/content.rb +17 -17
  842. data/mod/standard/set/all/rich_html/editing.rb +3 -3
  843. data/mod/standard/set/all/rich_html/editor.rb +1 -1
  844. data/mod/standard/set/all/rich_html/form.rb +2 -2
  845. data/mod/standard/set/all/rich_html/formgroup.rb +1 -1
  846. data/mod/standard/set/all/rich_html/header.rb +3 -3
  847. data/mod/standard/set/all/rich_html/menu.rb +7 -7
  848. data/mod/standard/set/all/rich_html/modal.rb +3 -3
  849. data/mod/standard/set/all/rich_html/new.rb +3 -3
  850. data/mod/standard/set/all/rich_html/toolbar.rb +16 -14
  851. data/mod/standard/set/all/rich_html/wrapper.rb +7 -7
  852. data/mod/standard/set/rstar/rules.rb +5 -5
  853. data/mod/standard/set/rstar/rules_editor.rb +5 -5
  854. data/mod/standard/set/type/cardtype.rb +1 -1
  855. data/mod/standard/set/type/list.rb +6 -6
  856. data/mod/standard/set/type/listed_by.rb +29 -24
  857. data/mod/standard/set/type/session.rb +0 -4
  858. data/mod/standard/set/type/set.rb +23 -26
  859. data/mod/standard/set/type/toggle.rb +2 -2
  860. data/mod/standard/spec/set/all/history_spec.rb +1 -0
  861. data/mod/standard/spec/set/all/rich_html/editing_spec.rb +1 -1
  862. data/mod/standard/spec/set/all/rich_html/wrapper_spec.rb +2 -2
  863. data/mod/standard/spec/set/type/list_spec.rb +7 -3
  864. data/mod/standard/spec/set/type/listed_by_spec.rb +3 -2
  865. data/mod/standard/spec/set/type/uri_spec.rb +8 -8
  866. data/spec/config/initializers/core_extensions_spec.rb +2 -2
  867. data/spec/lib/card/cache_spec.rb +3 -3
  868. data/spec/lib/card/codename_spec.rb +40 -2
  869. data/spec/lib/card/format_spec.rb +6 -6
  870. data/spec/lib/card/query_spec.rb +0 -2
  871. data/spec/lib/card/reference_spec.rb +3 -3
  872. data/spec/lib/card/stage_director_spec.rb +52 -17
  873. data/spec/lib/card/success_spec.rb +1 -1
  874. data/spec/models/card/trash_spec.rb +1 -1
  875. data/spec/models/card_spec.rb +3 -3
  876. data/spec/support/helper/event_helper.rb +14 -0
  877. data/spec/support/helper/render_helper.rb +1 -1
  878. data/spec/support/matchers/card_matchers.rb +7 -9
  879. metadata +643 -111
  880. data/lib/active_record/connection_adapters_ext.rb +0 -52
  881. data/lib/active_support/callbacks_ext.rb +0 -9
  882. data/lib/card/name/view_name.rb +0 -50
  883. data/mod/bootstrap/db/migrate_cards/20170719163701_update_bootswatch_themes.rb +0 -80
  884. data/mod/bootstrap/lib/javascript/bootstrap.js +0 -3535
  885. data/mod/bootstrap/lib/javascript/bootstrap.min.js +0 -7
  886. data/mod/bootstrap/lib/javascript/select2.min.js +0 -3
  887. data/mod/bootstrap/lib/javascript/tether.min.js +0 -1
  888. data/mod/bootstrap/lib/stylesheets/bootstrap.css +0 -9320
  889. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/.scss-lint.yml +0 -548
  890. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_alert.scss +0 -55
  891. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_badge.scss +0 -77
  892. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_breadcrumb.scss +0 -38
  893. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_buttons.scss +0 -170
  894. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_card.scss +0 -276
  895. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_carousel.scss +0 -178
  896. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_close.scss +0 -31
  897. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_code.scss +0 -64
  898. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_custom-forms.scss +0 -263
  899. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_custom.scss +0 -4
  900. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_dropdown.scss +0 -161
  901. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_forms.scss +0 -388
  902. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_grid.scss +0 -52
  903. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_images.scss +0 -43
  904. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_input-group.scss +0 -178
  905. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_jumbotron.scss +0 -20
  906. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_list-group.scss +0 -141
  907. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_media.scss +0 -8
  908. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_mixins.scss +0 -57
  909. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_modal.scss +0 -142
  910. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_nav.scss +0 -119
  911. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_navbar.scss +0 -268
  912. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_normalize.scss +0 -461
  913. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_pagination.scss +0 -67
  914. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_popover.scss +0 -171
  915. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_print.scss +0 -119
  916. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_progress.scss +0 -32
  917. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_reboot.scss +0 -389
  918. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_tables.scss +0 -153
  919. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_tooltip.scss +0 -90
  920. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_transitions.scss +0 -34
  921. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_type.scss +0 -143
  922. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_utilities.scss +0 -13
  923. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_variables.scss +0 -961
  924. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/bootstrap-grid.scss +0 -43
  925. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/bootstrap-reboot.scss +0 -10
  926. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/bootstrap.scss +0 -54
  927. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_alert.scss +0 -14
  928. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_background-variant.scss +0 -12
  929. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_badge.scss +0 -11
  930. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_border-radius.scss +0 -35
  931. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_breakpoints.scss +0 -95
  932. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_buttons.scss +0 -86
  933. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_cards.scss +0 -47
  934. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_clearfix.scss +0 -7
  935. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_float.scss +0 -9
  936. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_forms.scss +0 -79
  937. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_gradients.scss +0 -37
  938. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_grid-framework.scss +0 -65
  939. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_grid.scss +0 -100
  940. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_hover.scss +0 -60
  941. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_image.scss +0 -36
  942. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_list-group.scss +0 -28
  943. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_lists.scss +0 -7
  944. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_pagination.scss +0 -21
  945. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_screen-reader.scss +0 -32
  946. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_size.scss +0 -6
  947. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_table-row.scss +0 -30
  948. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_text-emphasis.scss +0 -12
  949. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_text-hide.scss +0 -8
  950. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_transforms.scss +0 -14
  951. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_visibility.scss +0 -5
  952. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_align.scss +0 -6
  953. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_background.scss +0 -19
  954. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_borders.scss +0 -37
  955. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_clearfix.scss +0 -3
  956. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_display.scss +0 -18
  957. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_flex.scss +0 -48
  958. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_float.scss +0 -9
  959. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_position.scss +0 -23
  960. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_screenreaders.scss +0 -11
  961. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_sizing.scss +0 -10
  962. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_spacing.scss +0 -43
  963. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_text.scss +0 -61
  964. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_visibility.scss +0 -55
  965. data/mod/bootstrap/lib/stylesheets/select2-boostrap-v4-alpha-6.scss +0 -828
@@ -37,10 +37,11 @@ class Card
37
37
  end
38
38
 
39
39
  def select_cards names_or_keys
40
- cards.map do |attributes|
41
- next unless name_or_key_match attributes, names_or_keys
40
+ names_or_keys.map do |key|
41
+ attributes = find_card_attributes(key)
42
+ raise("no entry for #{key} (key: #{key.to_name.key}) in #{@path}") unless attributes
42
43
  prepare_for_import attributes
43
- end.compact
44
+ end
44
45
  end
45
46
 
46
47
  def changed_cards
@@ -70,8 +71,7 @@ class Card
70
71
  end
71
72
 
72
73
  def url remote_name
73
- remotes[remote_name.to_sym] ||
74
- raise("unknown remote: #{remote_name}")
74
+ remotes[remote_name.to_sym] || raise("unknown remote: #{remote_name}")
75
75
  end
76
76
 
77
77
  private
@@ -85,13 +85,6 @@ class Card
85
85
  [card_data, data[:content]]
86
86
  end
87
87
 
88
- def name_or_key_match attributes, names_or_keys
89
- names_or_keys.any? do |nk|
90
- nk == attributes[:name] || nk == attributes[:name].to_name.key ||
91
- nk == attributes[:key]
92
- end
93
- end
94
-
95
88
  def remotes
96
89
  @data[:remotes]
97
90
  end
@@ -37,10 +37,9 @@ class Card
37
37
 
38
38
  def find_card_attributes name
39
39
  key = name.to_name.key
40
- index = cards.find_index { |attr| attr[:key] == key } ||
41
- cards.find_index { |attr| attr[:name] == name }
42
- return unless index
43
- cards[index]
40
+ cards.find do |attr|
41
+ key == (attr[:key].present? ? attr[:key] : attr[:name].to_name.key)
42
+ end
44
43
  end
45
44
 
46
45
  private
@@ -34,8 +34,9 @@ class Card
34
34
  #
35
35
  # Learn more:
36
36
  # - {Card} introduces card objects
37
- # - {Card::Set} provides an overview of the set module API
38
- # - {Card::View} explains the basics of the view API
37
+ # - {Card::Set} provides an overview of how set modules work
38
+ # - {Card::Format} explains the basics of the view API
39
+ # - {Card::Set::Event} explains the basics of the event API
39
40
  #
40
41
  # ## Other Directories
41
42
  #
@@ -48,7 +49,7 @@ class Card
48
49
  # - **file** for any other supporting files
49
50
  #
50
51
 
51
- module Mod
52
+ module Mod
52
53
  class << self
53
54
  def load
54
55
  Loader.load_mods
@@ -27,9 +27,14 @@ class Card
27
27
  # in load order with a preceding "mod" command (similar to a Gemfile).
28
28
  # The mods are expected in subdirectories with the mod names.
29
29
  #
30
+ # Mods in Modfiles are always loaded before mods in the Gemfile.
31
+ # If you have to change the order add gem mods to your Modfile using the
32
+ # mod_gem command. You can omit the 'card-mod' prefix.
33
+ #
30
34
  # Example for a mod directory:
31
35
  # # my_mod/Modfile
32
36
  # mod "twitter"
37
+ # gem_mod "logger"
33
38
  # mod "cache"
34
39
  #
35
40
  # # directory structure
@@ -54,6 +59,7 @@ class Card
54
59
  # @param mod_paths [String, Array<String>] paths to directories that contain mods
55
60
  def initialize mod_paths=[]
56
61
  @mods = []
62
+ @loaded_gem_mods = ::Set.new
57
63
  @paths = {}
58
64
  mod_paths = Array(mod_paths)
59
65
  mod_paths.each do |mp|
@@ -78,6 +84,18 @@ class Card
78
84
  @paths[mod_name] = path
79
85
  end
80
86
 
87
+ def gem_mod mod_name, path=nil
88
+ path ||= Cardio.gem_mod_paths[mod_name]
89
+ raise Error, "Unknown gem mod \"#{mod_name}\". Make sure it is in your Gemfile." unless path
90
+ add_gem_mod mod_name, path
91
+ end
92
+
93
+ def add_gem_mod mod_name, mod_path
94
+ return if @loaded_gem_mods.include?(mod_name)
95
+ @loaded_gem_mods << mod_name
96
+ add_path mod_name, mod_path
97
+ end
98
+
81
99
  alias_method :mod, :add_path
82
100
 
83
101
  # @param mod_name [String] the name of a mod
@@ -129,16 +147,9 @@ class Card
129
147
  end
130
148
 
131
149
  def load_from_gemfile
132
- Bundler.definition.specs.map do |s|
133
- mod_name =
134
- if s.name =~ /^decko-mod-(.+)$/
135
- $1
136
- else
137
- s.metadata["card-mod"]
138
- end
139
- next unless mod_name
140
- add_path $1, s.full_gem_path
141
- end.compact
150
+ Cardio.gem_mod_paths.each do |mod_name, mod_path|
151
+ add_gem_mod mod_name, mod_path
152
+ end
142
153
  end
143
154
 
144
155
  def tmp_dir modname, type
@@ -40,10 +40,10 @@ class Card
40
40
  attr_reader :module_type
41
41
 
42
42
  def load_mods
43
- load_initializers
44
43
  SetPatternLoader.new.load
45
44
  load_formats
46
45
  SetLoader.new.load
46
+ load_initializers
47
47
  end
48
48
 
49
49
  def load_chunks
@@ -102,7 +102,7 @@ class Card
102
102
  end
103
103
 
104
104
  def validate_setting setting
105
- unless Card::Codename[setting] &&
105
+ unless Card::Codename.exist?(setting) &&
106
106
  Card.fetch_type_id(setting) == SettingID
107
107
  raise ArgumentError, "not a valid setting: #{setting}"
108
108
  end
@@ -16,16 +16,18 @@ class Card
16
16
  self.session = proc { Card::Auth.current.name } # also_yuck
17
17
 
18
18
  class << self
19
- def cardish mark
20
- case mark
21
- when Card then mark.cardname
22
- when Symbol, Integer then Card.quick_fetch(mark).cardname
23
- else mark.to_name
19
+ def [] *cardish
20
+ cardish = cardish.first if cardish.size <= 1
21
+ case cardish
22
+ when Card then cardish.name
23
+ when Symbol, Integer then Card.fetch_name(cardish)
24
+ when Array then compose cardish
25
+ else cardish.to_name
24
26
  end
25
27
  end
26
28
 
27
29
  def compose parts
28
- parts.flatten.map { |part| cardish part }.join joint
30
+ new parts.flatten.map { |part| self[part] }.join(joint)
29
31
  end
30
32
 
31
33
  def url_key_to_standard key
@@ -49,20 +49,15 @@ class Card
49
49
 
50
50
  # @return [Card::Name]
51
51
  def trait_name tag_code
52
- card_id = Card::Codename[tag_code]
53
- raise Card::Error::NotFound, "unknown codename: #{tag_code}" unless card_id
54
- [self, Card.quick_fetch(card_id).name].to_name
52
+ Card::Name[self, tag_code.to_sym]
55
53
  end
56
54
 
57
55
  # @return [True/False]
58
56
  def trait_name? *traitlist
59
- junction? && begin
60
- right_key = right_name.key
61
- traitlist.find do |codename|
62
- (card_id = Card::Codename[codename]) &&
63
- (card = Card.quick_fetch card_id) &&
64
- card.key == right_key
65
- end.present?
57
+ return false unless junction?
58
+ right_key = right_name.key
59
+ traitlist.any? do |codename|
60
+ Codename.name(codename)&.key == right_key
66
61
  end
67
62
  end
68
63
  end
@@ -7,7 +7,7 @@ class Card
7
7
  # frequently used directly in code.
8
8
  #
9
9
  # Query "statements" (objects, really) are made in WQL (Wagn Query
10
- # Language). Because WQL is used by Wagneers, the primary language
10
+ # Language). Because WQL is used by Deckers, the primary language
11
11
  # documentation is on wagn.org. (http://wagn.org/WQL_Syntax). Note that the
12
12
  # examples there are in JSON, like Search card content, but statements in
13
13
  # Card::Query are in ruby form.
@@ -43,7 +43,7 @@ class Card
43
43
  "cards.id IS NULL"
44
44
  ).pluck_in_batches(:id) do |group_ids|
45
45
  # used to be .delete_all here, but that was failing on large dbs
46
- puts "deleting batch of references"
46
+ Rails.logger.info "deleting batch of references"
47
47
  where("id in (#{group_ids.join ','})").delete_all
48
48
  end
49
49
  end
@@ -15,12 +15,9 @@ class Card
15
15
  #
16
16
  # ./contactmanager/set/right/address.rb
17
17
  #
18
- # Then, whenever you fetch or instantiate a +address card, the card will
19
- # automatically include code from that set module. In fact, it will include
20
- # all the set modules associated with sets of which it is a member.
18
+ # Then, whenever you fetch or instantiate a +address card, the card will automatically include code from that set module. In fact, it will include all the set modules associated with sets of which it is a member.
21
19
  #
22
- # For example, say you have a Plaintext card named 'Philipp+address', and
23
- # you have set files for the following sets:
20
+ # For example, say you have a Plaintext card named 'Philipp+address', and you have set files for the following sets:
24
21
  #
25
22
  # * all cards
26
23
  # * all Plaintext cards
@@ -30,17 +27,13 @@ class Card
30
27
  #
31
28
  # mycard = Card.fetch 'Philipp+address'
32
29
  #
33
- # ...then mycard will include the set modules associated with each of those
34
- # sets in the above order.
30
+ # ...then mycard will include the set modules associated with each of those sets in the above order.
35
31
  #
36
- # Note that the set module's filename connects it to the set, so both
37
- # the set_pattern and the set_anchor must correspond to the
38
- # codename of a card in the database to function correctly.
32
+ # Note that the set module's filename connects it to the set, so both the set_pattern and the set_anchor must correspond to the codename of a card in the database to function correctly.
39
33
  #
40
- # A set module is "just ruby", but is generally quite concise because
41
- # Card (a) uses its the set module's file location to autogenerate ruby
42
- # module names and (b) then uses Card::Set module to provide API for the
43
- # most common set methods.
34
+ # A set module is "just ruby", but is generally quite concise because Card
35
+ # a) uses its the set module's file location to autogenerate ruby module names and
36
+ # b) then uses Card::Set module to provide API for the most common set methods.
44
37
  #
45
38
  module Set
46
39
  include Event
@@ -23,6 +23,7 @@ class Card
23
23
  :storage_type, :bucket, :mod
24
24
  uploader_class = args[:uploader] || ::CarrierWave::FileCardUploader
25
25
  mount_uploader name, uploader_class
26
+ Card.define_dirty_methods name
26
27
  end
27
28
 
28
29
  def stage_method method, opts={}, &block
@@ -1,76 +1,16 @@
1
1
  class Card
2
- def deserialize_for_active_job! attr
3
- attr.each do |attname, val|
4
- instance_variable_set("@#{attname}", val)
5
- end
6
-
7
- include_set_modules
8
- end
9
-
10
- def with_env_and_auth env, auth
11
- # If active jobs (and hence the integrate_with_delay events) don't run
12
- # in a background process then Card::Env.deserialize! decouples the
13
- # controller's params hash and the Card::Env's params hash with the
14
- # effect that params changes in the CardController get lost
15
- # (a crucial example are success params that are processed in
16
- # CardController#update_params_for_success)
17
- return yield if Decko.config.active_job.queue_adapter == :inline
18
- Card::Auth.with auth do
19
- Card::Env.with env do
20
- yield
21
- end
22
- end
23
- end
24
-
25
- def serialize_for_active_job
26
- serializable_attributes.each_with_object({}) do |name, hash|
27
- hash[name] = instance_variable_get("@#{name}")
28
- end
29
- end
30
-
31
- def serialize_value value
32
- # ActiveJob doesn't accept symbols and Time as arguments
33
- case value
34
- when Symbol
35
- { value: value.to_s, type: "symbol" }
36
- when Time
37
- { value: value.to_s, type: "time" }
38
- when Hash
39
- {
40
- value: value.each_with_object({}) { |(k, v), h| h[k] = serialize_value(v) },
41
- type: "hash"
42
- }
43
- when ActionController::Parameters
44
- serialize_value value.to_unsafe_h
45
- else
46
- { value: value }
47
- end
48
- end
49
-
50
- def deserialize_value val, type
51
- case type
52
- when "symbol"
53
- val.to_sym
54
- when "time"
55
- DateTime.parse val
56
- when "hash"
57
- val.each_with_object({}) do |(k, v), h|
58
- h[k] = deserialize_value v[:value], v[:type]
59
- end
60
- else
61
- val
62
- end
63
- end
64
-
65
- def log_event_call event
66
- Rails.logger.debug "#{name}: #{event}"
67
- # puts "#{name}: #{event}"
68
- # puts "#{Card::ActManager.to_s}".green
69
- end
70
-
71
2
  module Set
72
- # Implements the event API for card sets
3
+ # Events are the building blocks of the three transformative card actions: _create_, _update_, and _delete_. (The fourth kind of action, _read_, does not transform cards, and is associated with {Card::Format views}, not events).
4
+ #
5
+ # Whenever you create, update, or delete a card, the card goes through three phases:
6
+ # * __validation__ makes sure all the data is in order
7
+ # * __storage__ puts the data in the database
8
+ # * __integration__ deals with any ramifications of those changes
9
+ #
10
+ #
73
11
  module Event
12
+ include DelayedEvent
13
+
74
14
  def event event, stage_or_opts={}, opts={}, &final
75
15
  if stage_or_opts.is_a? Symbol
76
16
  opts[:in] = stage_or_opts
@@ -93,16 +33,10 @@ class Card
93
33
  end
94
34
 
95
35
  if with_delay? opts
96
- delaying_method = "#{event}_with_delay"
97
- define_event_delaying_method event, delaying_method, final_method_name
98
- final_method_name = delaying_method
36
+ define_delayed_event_method event, final_method_name
37
+ else
38
+ define_event_method event, final_method_name
99
39
  end
100
- define_event_method event, final_method_name
101
- end
102
-
103
- def with_delay? opts
104
- opts[:after] == :integrate_with_delay_stage ||
105
- opts[:before] == :integrate_with_delay_stage
106
40
  end
107
41
 
108
42
  def process_stage_opts opts
@@ -131,36 +65,6 @@ class Card
131
65
  end
132
66
  end
133
67
 
134
- # creates an ActiveJob.
135
- # The scheduled job gets the card object as argument and all serializable
136
- # attributes of the card.
137
- # (when the job is executed ActiveJob fetches the card from the database
138
- # so all attributes get lost)
139
- # @param event [String] the event used as queue name
140
- # @param method_name [String] the name of the method we define to trigger
141
- # the actjve job
142
- # @param final_method_name [String] the name of the method that get called
143
- # by the active job and finally executes the event
144
- def define_event_delaying_method event, method_name, final_method_name
145
- class_eval do
146
- define_method(method_name, proc do
147
- IntegrateWithDelayJob.set(queue: event).perform_later(
148
- self, serialize_for_active_job, Card::Env.serialize,
149
- Card::Auth.serialize, final_method_name
150
- )
151
- end)
152
- end
153
- end
154
-
155
- class IntegrateWithDelayJob < ApplicationJob
156
- def perform card, card_attribs, env, auth, method_name
157
- card.deserialize_for_active_job! card_attribs
158
- card.with_env_and_auth env, auth do
159
- card.send method_name
160
- end
161
- end
162
- end
163
-
164
68
  def set_event_callbacks event, opts
165
69
  opts[:set] ||= self
166
70
  [:before, :after, :around].each do |kind|
@@ -175,4 +79,10 @@ class Card
175
79
  end
176
80
  end
177
81
  end
82
+
83
+ def log_event_call event
84
+ Rails.logger.debug "#{name}: #{event}"
85
+ # puts "#{name}: #{event}"
86
+ # puts "#{Card::ActManager.to_s}".green
87
+ end
178
88
  end
@@ -0,0 +1,104 @@
1
+ class Card
2
+ module Set
3
+ module Event
4
+ module DelayedEvent
5
+ DELAY_STAGES = ::Set.new([:integrate_with_delay_stage,
6
+ :integrate_with_delay_final_stage]).freeze
7
+
8
+ private
9
+
10
+ def with_delay? opts
11
+ DELAY_STAGES.include?(opts[:after]) || DELAY_STAGES.include?(opts[:before])
12
+ end
13
+
14
+ def define_delayed_event_method event, final_method_name
15
+ delaying_method = "#{event}_with_delay"
16
+ define_event_delaying_method event, delaying_method, final_method_name
17
+ define_event_method event, delaying_method
18
+ end
19
+
20
+ # creates an ActiveJob.
21
+ # The scheduled job gets the card object as argument and all serializable
22
+ # attributes of the card.
23
+ # (when the job is executed ActiveJob fetches the card from the database
24
+ # so all attributes get lost)
25
+ # @param event [String] the event used as queue name
26
+ # @param method_name [String] the name of the method we define to trigger
27
+ # the actjve job
28
+ # @param final_method_name [String] the name of the method that get called
29
+ # by the active job and finally executes the event
30
+ def define_event_delaying_method event, method_name, final_method_name
31
+ class_eval do
32
+ define_method(method_name, proc do
33
+ IntegrateWithDelayJob.set(queue: event).perform_later(
34
+ Card::ActManager.act&.id, self, serialize_for_active_job, Card::Env.serialize,
35
+ Card::Auth.serialize, final_method_name
36
+ )
37
+ end)
38
+ end
39
+ end
40
+
41
+ class IntegrateWithDelayJob < ApplicationJob
42
+ def perform act_id, card, card_attribs, env, auth, method_name
43
+ card.deserialize_for_active_job! card_attribs
44
+ ActManager.contextualize_delayed_event act_id, card, env, auth do
45
+ card.send method_name
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+
53
+ def deserialize_for_active_job! attr
54
+ attr.each do |attname, val|
55
+ instance_variable_set("@#{attname}", val)
56
+ end
57
+ include_set_modules
58
+ end
59
+
60
+ def serialize_for_active_job
61
+ serializable_attributes.each_with_object({}) do |name, hash|
62
+ hash[name] = instance_variable_get("@#{name}")
63
+ end
64
+ end
65
+
66
+ def serialize_value value
67
+ # ActiveJob doesn't accept symbols and Time as arguments
68
+ case value
69
+ when Symbol
70
+ { value: value.to_s, type: "symbol" }
71
+ when Time
72
+ { value: value.to_s, type: "time" }
73
+ when Hash
74
+ { value: serialize_hash_value(value), type: "hash"}
75
+ when ActionController::Parameters
76
+ serialize_value value.to_unsafe_h
77
+ else
78
+ { value: value }
79
+ end
80
+ end
81
+
82
+ def serialize_hash_value
83
+ value.each_with_object({}) { |(k, v), h| h[k] = serialize_value(v) }
84
+ end
85
+
86
+ def deserialize_value val, type
87
+ case type
88
+ when "symbol"
89
+ val.to_sym
90
+ when "time"
91
+ DateTime.parse val
92
+ when "hash"
93
+ deserialize_hash_value val
94
+ else
95
+ val
96
+ end
97
+ end
98
+
99
+ def deserialize_hash_value value
100
+ value.each_with_object({}) do |(k, v), h|
101
+ h[k] = deserialize_value v[:value], v[:type]
102
+ end
103
+ end
104
+ end