statixite 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (462) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +145 -0
  4. data/Rakefile +26 -0
  5. data/app/assets/images/statixite/STATIXITE-logo.png +0 -0
  6. data/app/assets/images/statixite/favicon.ico +0 -0
  7. data/app/assets/images/statixite/jekyll.png +0 -0
  8. data/app/assets/images/statixite/md-editor.png +0 -0
  9. data/app/assets/images/statixite/ring-alt.gif +0 -0
  10. data/app/assets/javascripts/controllers/statixite/deployments_create.js +13 -0
  11. data/app/assets/javascripts/controllers/statixite/deployments_index.js +13 -0
  12. data/app/assets/javascripts/controllers/statixite/sites_create.js +27 -0
  13. data/app/assets/javascripts/controllers/statixite/sites_new.js +27 -0
  14. data/app/assets/javascripts/controllers/statixite/templates_edit.js +208 -0
  15. data/app/assets/javascripts/statixite/application.js +8 -0
  16. data/app/assets/javascripts/statixite/array-helpers.js +13 -0
  17. data/app/assets/javascripts/statixite/editor.js +244 -0
  18. data/app/assets/javascripts/statixite/loader.js +14 -0
  19. data/app/assets/javascripts/statixite/notify-defaults.js +5 -0
  20. data/app/assets/stylesheets/statixite/application.less +271 -0
  21. data/app/assets/stylesheets/statixite/bootstrap-glyphicons.less +305 -0
  22. data/app/assets/stylesheets/statixite/bootstrap.less +58 -0
  23. data/app/assets/stylesheets/statixite/bootstrap_and_overrides.less +2 -0
  24. data/app/assets/stylesheets/statixite/landing-page.less +156 -0
  25. data/app/controllers/statixite/application_controller.rb +22 -0
  26. data/app/controllers/statixite/deployments_controller.rb +61 -0
  27. data/app/controllers/statixite/media_controller.rb +61 -0
  28. data/app/controllers/statixite/posts_controller.rb +68 -0
  29. data/app/controllers/statixite/sites_controller.rb +141 -0
  30. data/app/controllers/statixite/templates_controller.rb +233 -0
  31. data/app/helpers/statixite/application_helper.rb +63 -0
  32. data/app/models/statixite/deployment.rb +5 -0
  33. data/app/models/statixite/media.rb +7 -0
  34. data/app/models/statixite/post.rb +76 -0
  35. data/app/models/statixite/site.rb +76 -0
  36. data/app/services/statixite/deployment_service.rb +73 -0
  37. data/app/services/statixite/git_service.rb +102 -0
  38. data/app/services/statixite/site_deactivation_service.rb +52 -0
  39. data/app/services/statixite/site_operation_service.rb +251 -0
  40. data/app/uploaders/statixite/file_uploader.rb +14 -0
  41. data/app/validators/statixite/jekyll_template_validator.rb +16 -0
  42. data/app/validators/statixite/liquid_validator.rb +11 -0
  43. data/app/views/layouts/statixite/_dash_nav.html.haml +20 -0
  44. data/app/views/layouts/statixite/_flash.html.haml +13 -0
  45. data/app/views/layouts/statixite/_head.html.haml +12 -0
  46. data/app/views/layouts/statixite/_header.html.haml +30 -0
  47. data/app/views/layouts/statixite/_site_sub_items.html.haml +38 -0
  48. data/app/views/layouts/statixite/dashboard.html.haml +27 -0
  49. data/app/views/statixite/deployments/_modal.html.haml +18 -0
  50. data/app/views/statixite/deployments/index.html.haml +39 -0
  51. data/app/views/statixite/kaminari/_first_page.html.haml +2 -0
  52. data/app/views/statixite/kaminari/_gap.html.haml +2 -0
  53. data/app/views/statixite/kaminari/_last_page.html.haml +2 -0
  54. data/app/views/statixite/kaminari/_next_page.html.haml +2 -0
  55. data/app/views/statixite/kaminari/_page.html.haml +6 -0
  56. data/app/views/statixite/kaminari/_paginator.html.haml +11 -0
  57. data/app/views/statixite/kaminari/_prev_page.html.haml +2 -0
  58. data/app/views/statixite/media/_index.html.haml +13 -0
  59. data/app/views/statixite/media/_paginate.html.haml +1 -0
  60. data/app/views/statixite/media/index.html.haml +39 -0
  61. data/app/views/statixite/media/index.js.haml +2 -0
  62. data/app/views/statixite/posts/_form.html.haml +65 -0
  63. data/app/views/statixite/posts/_image_modal.html.haml +21 -0
  64. data/app/views/statixite/posts/_modals.html.haml +111 -0
  65. data/app/views/statixite/posts/_posts.html.haml +15 -0
  66. data/app/views/statixite/posts/edit.html.haml +6 -0
  67. data/app/views/statixite/posts/index.html.haml +4 -0
  68. data/app/views/statixite/posts/index.js.haml +1 -0
  69. data/app/views/statixite/posts/new.html.haml +5 -0
  70. data/app/views/statixite/sites/_sites.html.haml +27 -0
  71. data/app/views/statixite/sites/_templates.html.haml +26 -0
  72. data/app/views/statixite/sites/build_and_preview.html.haml +24 -0
  73. data/app/views/statixite/sites/index.html.haml +4 -0
  74. data/app/views/statixite/sites/index.js.haml +1 -0
  75. data/app/views/statixite/sites/new.html.haml +45 -0
  76. data/app/views/statixite/sites/settings.html.haml +77 -0
  77. data/app/views/statixite/templates/edit.html.haml +93 -0
  78. data/app/views/statixite/templates/upload_files.js.haml +2 -0
  79. data/config/routes.rb +24 -0
  80. data/db/migrate/20150525171543_create_statixite_sites.rb +15 -0
  81. data/db/migrate/20150530041055_create_statixite_posts.rb +14 -0
  82. data/db/migrate/20150610024047_create_statixite_deployments.rb +11 -0
  83. data/db/migrate/20151013131224_create_statixite_media.rb +10 -0
  84. data/lib/assets/templates.yaml +734 -0
  85. data/lib/generators/statixite/statixite_generator.rb +49 -0
  86. data/lib/statixite.rb +14 -0
  87. data/lib/statixite/cloud_sync.rb +104 -0
  88. data/lib/statixite/engine.rb +49 -0
  89. data/lib/statixite/version.rb +3 -0
  90. data/lib/tasks/statixite_tasks.rake +4 -0
  91. data/vendor/assets/bower_components/bootstrap/CHANGELOG.md +5 -0
  92. data/vendor/assets/bower_components/bootstrap/Gruntfile.js +533 -0
  93. data/vendor/assets/bower_components/bootstrap/LICENSE +21 -0
  94. data/vendor/assets/bower_components/bootstrap/README.md +139 -0
  95. data/vendor/assets/bower_components/bootstrap/bower.json +34 -0
  96. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.css +587 -0
  97. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.css.map +1 -0
  98. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.min.css +6 -0
  99. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.min.css.map +1 -0
  100. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.css +6760 -0
  101. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.css.map +1 -0
  102. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.min.css +6 -0
  103. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.min.css.map +1 -0
  104. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  105. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +288 -0
  106. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  107. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  108. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  109. data/vendor/assets/bower_components/bootstrap/dist/js/bootstrap.js +2363 -0
  110. data/vendor/assets/bower_components/bootstrap/dist/js/bootstrap.min.js +7 -0
  111. data/vendor/assets/bower_components/bootstrap/dist/js/npm.js +13 -0
  112. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  113. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg +288 -0
  114. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  115. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  116. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  117. data/vendor/assets/bower_components/bootstrap/grunt/bs-commonjs-generator.js +30 -0
  118. data/vendor/assets/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js +42 -0
  119. data/vendor/assets/bower_components/bootstrap/grunt/bs-lessdoc-parser.js +237 -0
  120. data/vendor/assets/bower_components/bootstrap/grunt/bs-raw-files-generator.js +44 -0
  121. data/vendor/assets/bower_components/bootstrap/grunt/configBridge.json +46 -0
  122. data/vendor/assets/bower_components/bootstrap/grunt/sauce_browsers.yml +82 -0
  123. data/vendor/assets/bower_components/bootstrap/js/affix.js +162 -0
  124. data/vendor/assets/bower_components/bootstrap/js/alert.js +94 -0
  125. data/vendor/assets/bower_components/bootstrap/js/button.js +120 -0
  126. data/vendor/assets/bower_components/bootstrap/js/carousel.js +237 -0
  127. data/vendor/assets/bower_components/bootstrap/js/collapse.js +211 -0
  128. data/vendor/assets/bower_components/bootstrap/js/dropdown.js +165 -0
  129. data/vendor/assets/bower_components/bootstrap/js/modal.js +337 -0
  130. data/vendor/assets/bower_components/bootstrap/js/popover.js +108 -0
  131. data/vendor/assets/bower_components/bootstrap/js/scrollspy.js +172 -0
  132. data/vendor/assets/bower_components/bootstrap/js/tab.js +155 -0
  133. data/vendor/assets/bower_components/bootstrap/js/tooltip.js +514 -0
  134. data/vendor/assets/bower_components/bootstrap/js/transition.js +59 -0
  135. data/vendor/assets/bower_components/bootstrap/less/alerts.less +73 -0
  136. data/vendor/assets/bower_components/bootstrap/less/badges.less +66 -0
  137. data/vendor/assets/bower_components/bootstrap/less/bootstrap.less +56 -0
  138. data/vendor/assets/bower_components/bootstrap/less/breadcrumbs.less +26 -0
  139. data/vendor/assets/bower_components/bootstrap/less/button-groups.less +244 -0
  140. data/vendor/assets/bower_components/bootstrap/less/buttons.less +166 -0
  141. data/vendor/assets/bower_components/bootstrap/less/carousel.less +270 -0
  142. data/vendor/assets/bower_components/bootstrap/less/close.less +34 -0
  143. data/vendor/assets/bower_components/bootstrap/less/code.less +69 -0
  144. data/vendor/assets/bower_components/bootstrap/less/component-animations.less +33 -0
  145. data/vendor/assets/bower_components/bootstrap/less/dropdowns.less +216 -0
  146. data/vendor/assets/bower_components/bootstrap/less/forms.less +613 -0
  147. data/vendor/assets/bower_components/bootstrap/less/glyphicons.less +305 -0
  148. data/vendor/assets/bower_components/bootstrap/less/grid.less +84 -0
  149. data/vendor/assets/bower_components/bootstrap/less/input-groups.less +171 -0
  150. data/vendor/assets/bower_components/bootstrap/less/jumbotron.less +54 -0
  151. data/vendor/assets/bower_components/bootstrap/less/labels.less +64 -0
  152. data/vendor/assets/bower_components/bootstrap/less/list-group.less +130 -0
  153. data/vendor/assets/bower_components/bootstrap/less/media.less +66 -0
  154. data/vendor/assets/bower_components/bootstrap/less/mixins.less +40 -0
  155. data/vendor/assets/bower_components/bootstrap/less/mixins/alerts.less +14 -0
  156. data/vendor/assets/bower_components/bootstrap/less/mixins/background-variant.less +9 -0
  157. data/vendor/assets/bower_components/bootstrap/less/mixins/border-radius.less +18 -0
  158. data/vendor/assets/bower_components/bootstrap/less/mixins/buttons.less +65 -0
  159. data/vendor/assets/bower_components/bootstrap/less/mixins/center-block.less +7 -0
  160. data/vendor/assets/bower_components/bootstrap/less/mixins/clearfix.less +22 -0
  161. data/vendor/assets/bower_components/bootstrap/less/mixins/forms.less +85 -0
  162. data/vendor/assets/bower_components/bootstrap/less/mixins/gradients.less +59 -0
  163. data/vendor/assets/bower_components/bootstrap/less/mixins/grid-framework.less +91 -0
  164. data/vendor/assets/bower_components/bootstrap/less/mixins/grid.less +122 -0
  165. data/vendor/assets/bower_components/bootstrap/less/mixins/hide-text.less +21 -0
  166. data/vendor/assets/bower_components/bootstrap/less/mixins/image.less +33 -0
  167. data/vendor/assets/bower_components/bootstrap/less/mixins/labels.less +12 -0
  168. data/vendor/assets/bower_components/bootstrap/less/mixins/list-group.less +30 -0
  169. data/vendor/assets/bower_components/bootstrap/less/mixins/nav-divider.less +10 -0
  170. data/vendor/assets/bower_components/bootstrap/less/mixins/nav-vertical-align.less +9 -0
  171. data/vendor/assets/bower_components/bootstrap/less/mixins/opacity.less +8 -0
  172. data/vendor/assets/bower_components/bootstrap/less/mixins/pagination.less +24 -0
  173. data/vendor/assets/bower_components/bootstrap/less/mixins/panels.less +24 -0
  174. data/vendor/assets/bower_components/bootstrap/less/mixins/progress-bar.less +10 -0
  175. data/vendor/assets/bower_components/bootstrap/less/mixins/reset-filter.less +8 -0
  176. data/vendor/assets/bower_components/bootstrap/less/mixins/reset-text.less +18 -0
  177. data/vendor/assets/bower_components/bootstrap/less/mixins/resize.less +6 -0
  178. data/vendor/assets/bower_components/bootstrap/less/mixins/responsive-visibility.less +15 -0
  179. data/vendor/assets/bower_components/bootstrap/less/mixins/size.less +10 -0
  180. data/vendor/assets/bower_components/bootstrap/less/mixins/tab-focus.less +9 -0
  181. data/vendor/assets/bower_components/bootstrap/less/mixins/table-row.less +28 -0
  182. data/vendor/assets/bower_components/bootstrap/less/mixins/text-emphasis.less +9 -0
  183. data/vendor/assets/bower_components/bootstrap/less/mixins/text-overflow.less +8 -0
  184. data/vendor/assets/bower_components/bootstrap/less/mixins/vendor-prefixes.less +227 -0
  185. data/vendor/assets/bower_components/bootstrap/less/modals.less +150 -0
  186. data/vendor/assets/bower_components/bootstrap/less/navbar.less +660 -0
  187. data/vendor/assets/bower_components/bootstrap/less/navs.less +242 -0
  188. data/vendor/assets/bower_components/bootstrap/less/normalize.less +424 -0
  189. data/vendor/assets/bower_components/bootstrap/less/pager.less +54 -0
  190. data/vendor/assets/bower_components/bootstrap/less/pagination.less +89 -0
  191. data/vendor/assets/bower_components/bootstrap/less/panels.less +271 -0
  192. data/vendor/assets/bower_components/bootstrap/less/popovers.less +131 -0
  193. data/vendor/assets/bower_components/bootstrap/less/print.less +101 -0
  194. data/vendor/assets/bower_components/bootstrap/less/progress-bars.less +87 -0
  195. data/vendor/assets/bower_components/bootstrap/less/responsive-embed.less +35 -0
  196. data/vendor/assets/bower_components/bootstrap/less/responsive-utilities.less +194 -0
  197. data/vendor/assets/bower_components/bootstrap/less/scaffolding.less +161 -0
  198. data/vendor/assets/bower_components/bootstrap/less/tables.less +234 -0
  199. data/vendor/assets/bower_components/bootstrap/less/theme.less +291 -0
  200. data/vendor/assets/bower_components/bootstrap/less/thumbnails.less +36 -0
  201. data/vendor/assets/bower_components/bootstrap/less/tooltip.less +101 -0
  202. data/vendor/assets/bower_components/bootstrap/less/type.less +302 -0
  203. data/vendor/assets/bower_components/bootstrap/less/utilities.less +55 -0
  204. data/vendor/assets/bower_components/bootstrap/less/variables.less +869 -0
  205. data/vendor/assets/bower_components/bootstrap/less/wells.less +29 -0
  206. data/vendor/assets/bower_components/bootstrap/nuget/MyGet.ps1 +8 -0
  207. data/vendor/assets/bower_components/bootstrap/nuget/bootstrap.less.nuspec +28 -0
  208. data/vendor/assets/bower_components/bootstrap/nuget/bootstrap.nuspec +28 -0
  209. data/vendor/assets/bower_components/bootstrap/package.js +32 -0
  210. data/vendor/assets/bower_components/bootstrap/package.json +87 -0
  211. data/vendor/assets/bower_components/jquery/AUTHORS.txt +275 -0
  212. data/vendor/assets/bower_components/jquery/LICENSE.txt +36 -0
  213. data/vendor/assets/bower_components/jquery/README.md +5 -0
  214. data/vendor/assets/bower_components/jquery/bower.json +14 -0
  215. data/vendor/assets/bower_components/jquery/dist/jquery.js +9831 -0
  216. data/vendor/assets/bower_components/jquery/dist/jquery.min.js +4 -0
  217. data/vendor/assets/bower_components/jquery/dist/jquery.min.map +1 -0
  218. data/vendor/assets/bower_components/jquery/src/ajax.js +845 -0
  219. data/vendor/assets/bower_components/jquery/src/ajax/jsonp.js +100 -0
  220. data/vendor/assets/bower_components/jquery/src/ajax/load.js +83 -0
  221. data/vendor/assets/bower_components/jquery/src/ajax/parseJSON.js +13 -0
  222. data/vendor/assets/bower_components/jquery/src/ajax/parseXML.js +27 -0
  223. data/vendor/assets/bower_components/jquery/src/ajax/script.js +68 -0
  224. data/vendor/assets/bower_components/jquery/src/ajax/var/location.js +3 -0
  225. data/vendor/assets/bower_components/jquery/src/ajax/var/nonce.js +5 -0
  226. data/vendor/assets/bower_components/jquery/src/ajax/var/rquery.js +3 -0
  227. data/vendor/assets/bower_components/jquery/src/ajax/xhr.js +167 -0
  228. data/vendor/assets/bower_components/jquery/src/attributes.js +11 -0
  229. data/vendor/assets/bower_components/jquery/src/attributes/attr.js +142 -0
  230. data/vendor/assets/bower_components/jquery/src/attributes/classes.js +177 -0
  231. data/vendor/assets/bower_components/jquery/src/attributes/prop.js +109 -0
  232. data/vendor/assets/bower_components/jquery/src/attributes/support.js +36 -0
  233. data/vendor/assets/bower_components/jquery/src/attributes/val.js +170 -0
  234. data/vendor/assets/bower_components/jquery/src/callbacks.js +232 -0
  235. data/vendor/assets/bower_components/jquery/src/core.js +489 -0
  236. data/vendor/assets/bower_components/jquery/src/core/access.js +65 -0
  237. data/vendor/assets/bower_components/jquery/src/core/init.js +134 -0
  238. data/vendor/assets/bower_components/jquery/src/core/parseHTML.js +49 -0
  239. data/vendor/assets/bower_components/jquery/src/core/ready.js +103 -0
  240. data/vendor/assets/bower_components/jquery/src/core/support.js +18 -0
  241. data/vendor/assets/bower_components/jquery/src/core/var/rsingleTag.js +5 -0
  242. data/vendor/assets/bower_components/jquery/src/css.js +515 -0
  243. data/vendor/assets/bower_components/jquery/src/css/addGetHookIf.js +24 -0
  244. data/vendor/assets/bower_components/jquery/src/css/adjustCSS.js +65 -0
  245. data/vendor/assets/bower_components/jquery/src/css/curCSS.js +57 -0
  246. data/vendor/assets/bower_components/jquery/src/css/defaultDisplay.js +72 -0
  247. data/vendor/assets/bower_components/jquery/src/css/hiddenVisibleSelectors.js +18 -0
  248. data/vendor/assets/bower_components/jquery/src/css/showHide.js +48 -0
  249. data/vendor/assets/bower_components/jquery/src/css/support.js +121 -0
  250. data/vendor/assets/bower_components/jquery/src/css/var/cssExpand.js +3 -0
  251. data/vendor/assets/bower_components/jquery/src/css/var/getStyles.js +15 -0
  252. data/vendor/assets/bower_components/jquery/src/css/var/isHidden.js +16 -0
  253. data/vendor/assets/bower_components/jquery/src/css/var/rmargin.js +3 -0
  254. data/vendor/assets/bower_components/jquery/src/css/var/rnumnonpx.js +5 -0
  255. data/vendor/assets/bower_components/jquery/src/css/var/swap.js +24 -0
  256. data/vendor/assets/bower_components/jquery/src/data.js +187 -0
  257. data/vendor/assets/bower_components/jquery/src/data/Data.js +200 -0
  258. data/vendor/assets/bower_components/jquery/src/data/accepts.js +20 -0
  259. data/vendor/assets/bower_components/jquery/src/data/support.js +23 -0
  260. data/vendor/assets/bower_components/jquery/src/data/var/acceptData.js +18 -0
  261. data/vendor/assets/bower_components/jquery/src/data/var/dataPriv.js +5 -0
  262. data/vendor/assets/bower_components/jquery/src/data/var/dataUser.js +5 -0
  263. data/vendor/assets/bower_components/jquery/src/deferred.js +158 -0
  264. data/vendor/assets/bower_components/jquery/src/deprecated.js +32 -0
  265. data/vendor/assets/bower_components/jquery/src/dimensions.js +54 -0
  266. data/vendor/assets/bower_components/jquery/src/effects.js +629 -0
  267. data/vendor/assets/bower_components/jquery/src/effects/Tween.js +121 -0
  268. data/vendor/assets/bower_components/jquery/src/effects/animatedSelector.js +13 -0
  269. data/vendor/assets/bower_components/jquery/src/effects/support.js +58 -0
  270. data/vendor/assets/bower_components/jquery/src/event.js +710 -0
  271. data/vendor/assets/bower_components/jquery/src/event/ajax.js +20 -0
  272. data/vendor/assets/bower_components/jquery/src/event/alias.js +27 -0
  273. data/vendor/assets/bower_components/jquery/src/event/focusin.js +53 -0
  274. data/vendor/assets/bower_components/jquery/src/event/support.js +9 -0
  275. data/vendor/assets/bower_components/jquery/src/event/trigger.js +199 -0
  276. data/vendor/assets/bower_components/jquery/src/exports/amd.js +24 -0
  277. data/vendor/assets/bower_components/jquery/src/exports/global.js +26 -0
  278. data/vendor/assets/bower_components/jquery/src/intro.js +44 -0
  279. data/vendor/assets/bower_components/jquery/src/jquery.js +37 -0
  280. data/vendor/assets/bower_components/jquery/src/manipulation.js +481 -0
  281. data/vendor/assets/bower_components/jquery/src/manipulation/_evalUrl.js +20 -0
  282. data/vendor/assets/bower_components/jquery/src/manipulation/buildFragment.js +102 -0
  283. data/vendor/assets/bower_components/jquery/src/manipulation/createSafeFragment.js +20 -0
  284. data/vendor/assets/bower_components/jquery/src/manipulation/getAll.js +21 -0
  285. data/vendor/assets/bower_components/jquery/src/manipulation/setGlobalEval.js +20 -0
  286. data/vendor/assets/bower_components/jquery/src/manipulation/support.js +33 -0
  287. data/vendor/assets/bower_components/jquery/src/manipulation/var/nodeNames.js +5 -0
  288. data/vendor/assets/bower_components/jquery/src/manipulation/var/rcheckableType.js +3 -0
  289. data/vendor/assets/bower_components/jquery/src/manipulation/var/rleadingWhitespace.js +3 -0
  290. data/vendor/assets/bower_components/jquery/src/manipulation/var/rscriptType.js +3 -0
  291. data/vendor/assets/bower_components/jquery/src/manipulation/var/rtagName.js +3 -0
  292. data/vendor/assets/bower_components/jquery/src/manipulation/wrapMap.js +27 -0
  293. data/vendor/assets/bower_components/jquery/src/offset.js +221 -0
  294. data/vendor/assets/bower_components/jquery/src/outro.js +2 -0
  295. data/vendor/assets/bower_components/jquery/src/queue.js +143 -0
  296. data/vendor/assets/bower_components/jquery/src/queue/delay.js +22 -0
  297. data/vendor/assets/bower_components/jquery/src/selector-native.js +211 -0
  298. data/vendor/assets/bower_components/jquery/src/selector-sizzle.js +14 -0
  299. data/vendor/assets/bower_components/jquery/src/selector.js +1 -0
  300. data/vendor/assets/bower_components/jquery/src/serialize.js +125 -0
  301. data/vendor/assets/bower_components/jquery/src/support.js +63 -0
  302. data/vendor/assets/bower_components/jquery/src/traversing.js +175 -0
  303. data/vendor/assets/bower_components/jquery/src/traversing/findFilter.js +100 -0
  304. data/vendor/assets/bower_components/jquery/src/traversing/var/dir.js +20 -0
  305. data/vendor/assets/bower_components/jquery/src/traversing/var/rneedsContext.js +6 -0
  306. data/vendor/assets/bower_components/jquery/src/traversing/var/siblings.js +15 -0
  307. data/vendor/assets/bower_components/jquery/src/var/arr.js +3 -0
  308. data/vendor/assets/bower_components/jquery/src/var/class2type.js +5 -0
  309. data/vendor/assets/bower_components/jquery/src/var/concat.js +5 -0
  310. data/vendor/assets/bower_components/jquery/src/var/deletedIds.js +3 -0
  311. data/vendor/assets/bower_components/jquery/src/var/document.js +3 -0
  312. data/vendor/assets/bower_components/jquery/src/var/documentElement.js +5 -0
  313. data/vendor/assets/bower_components/jquery/src/var/hasOwn.js +5 -0
  314. data/vendor/assets/bower_components/jquery/src/var/indexOf.js +5 -0
  315. data/vendor/assets/bower_components/jquery/src/var/pnum.js +3 -0
  316. data/vendor/assets/bower_components/jquery/src/var/push.js +5 -0
  317. data/vendor/assets/bower_components/jquery/src/var/rcssNum.js +7 -0
  318. data/vendor/assets/bower_components/jquery/src/var/rnotwhite.js +3 -0
  319. data/vendor/assets/bower_components/jquery/src/var/slice.js +5 -0
  320. data/vendor/assets/bower_components/jquery/src/var/support.js +5 -0
  321. data/vendor/assets/bower_components/jquery/src/var/toString.js +5 -0
  322. data/vendor/assets/bower_components/jquery/src/wrap.js +79 -0
  323. data/vendor/assets/bower_components/jsoneditor/CONTRIBUTING.md +15 -0
  324. data/vendor/assets/bower_components/jsoneditor/HISTORY.md +457 -0
  325. data/vendor/assets/bower_components/jsoneditor/LICENSE +176 -0
  326. data/vendor/assets/bower_components/jsoneditor/NOTICE +17 -0
  327. data/vendor/assets/bower_components/jsoneditor/README.md +155 -0
  328. data/vendor/assets/bower_components/jsoneditor/bower.json +32 -0
  329. data/vendor/assets/bower_components/jsoneditor/dist/img/jsoneditor-icons.svg +893 -0
  330. data/vendor/assets/bower_components/jsoneditor/dist/jsoneditor-minimalist.js +9418 -0
  331. data/vendor/assets/bower_components/jsoneditor/dist/jsoneditor-minimalist.map +1 -0
  332. data/vendor/assets/bower_components/jsoneditor/dist/jsoneditor-minimalist.min.js +35 -0
  333. data/vendor/assets/bower_components/jsoneditor/dist/jsoneditor.css.less +879 -0
  334. data/vendor/assets/bower_components/jsoneditor/dist/jsoneditor.js +35095 -0
  335. data/vendor/assets/bower_components/jsoneditor/dist/jsoneditor.map +1 -0
  336. data/vendor/assets/bower_components/jsoneditor/dist/jsoneditor.min.css +1 -0
  337. data/vendor/assets/bower_components/jsoneditor/dist/jsoneditor.min.js +48 -0
  338. data/vendor/assets/bower_components/jsoneditor/dist/which files do I need.md +41 -0
  339. data/vendor/assets/bower_components/jsoneditor/docs/api.md +286 -0
  340. data/vendor/assets/bower_components/jsoneditor/docs/shortcut_keys.md +38 -0
  341. data/vendor/assets/bower_components/jsoneditor/docs/usage.md +117 -0
  342. data/vendor/assets/bower_components/jsoneditor/examples/01_basic_usage.html +49 -0
  343. data/vendor/assets/bower_components/jsoneditor/examples/02_viewer.html +44 -0
  344. data/vendor/assets/bower_components/jsoneditor/examples/03_switch_mode.html +66 -0
  345. data/vendor/assets/bower_components/jsoneditor/examples/04_load_and_save.html +62 -0
  346. data/vendor/assets/bower_components/jsoneditor/examples/05_custom_fields_editable.html +63 -0
  347. data/vendor/assets/bower_components/jsoneditor/examples/06_custom_styling.html +51 -0
  348. data/vendor/assets/bower_components/jsoneditor/examples/07_json_schema_validation.html +71 -0
  349. data/vendor/assets/bower_components/jsoneditor/examples/css/darktheme.css +76 -0
  350. data/vendor/assets/bower_components/jsoneditor/examples/requirejs_demo/requirejs_demo.html +21 -0
  351. data/vendor/assets/bower_components/jsoneditor/examples/requirejs_demo/scripts/main.js +25 -0
  352. data/vendor/assets/bower_components/jsoneditor/examples/requirejs_demo/scripts/require.js +36 -0
  353. data/vendor/assets/bower_components/jsoneditor/index.js +1 -0
  354. data/vendor/assets/bower_components/jsoneditor/package.json +41 -0
  355. data/vendor/assets/bower_components/jsoneditor/src/css/contextmenu.css +233 -0
  356. data/vendor/assets/bower_components/jsoneditor/src/css/img/description.txt +14 -0
  357. data/vendor/assets/bower_components/jsoneditor/src/css/img/jsoneditor-icons.svg +893 -0
  358. data/vendor/assets/bower_components/jsoneditor/src/css/jsoneditor.css +433 -0
  359. data/vendor/assets/bower_components/jsoneditor/src/css/menu.css +110 -0
  360. data/vendor/assets/bower_components/jsoneditor/src/css/searchbox.css +75 -0
  361. data/vendor/assets/bower_components/jsoneditor/src/docs/which files do I need.md +41 -0
  362. data/vendor/assets/bower_components/jsoneditor/src/js/ContextMenu.js +455 -0
  363. data/vendor/assets/bower_components/jsoneditor/src/js/Highlighter.js +84 -0
  364. data/vendor/assets/bower_components/jsoneditor/src/js/History.js +252 -0
  365. data/vendor/assets/bower_components/jsoneditor/src/js/JSONEditor.js +371 -0
  366. data/vendor/assets/bower_components/jsoneditor/src/js/Node.js +3400 -0
  367. data/vendor/assets/bower_components/jsoneditor/src/js/SearchBox.js +295 -0
  368. data/vendor/assets/bower_components/jsoneditor/src/js/ace/index.js +9 -0
  369. data/vendor/assets/bower_components/jsoneditor/src/js/ace/theme-jsoneditor.js +144 -0
  370. data/vendor/assets/bower_components/jsoneditor/src/js/appendNodeFactory.js +226 -0
  371. data/vendor/assets/bower_components/jsoneditor/src/js/assets/jsonlint/README.md +15 -0
  372. data/vendor/assets/bower_components/jsoneditor/src/js/assets/jsonlint/jsonlint.js +418 -0
  373. data/vendor/assets/bower_components/jsoneditor/src/js/header.js +29 -0
  374. data/vendor/assets/bower_components/jsoneditor/src/js/modeswitcher.js +105 -0
  375. data/vendor/assets/bower_components/jsoneditor/src/js/textmode.js +474 -0
  376. data/vendor/assets/bower_components/jsoneditor/src/js/treemode.js +1150 -0
  377. data/vendor/assets/bower_components/jsoneditor/src/js/util.js +765 -0
  378. data/vendor/assets/bower_components/notifyjs/CHANGES.md +7 -0
  379. data/vendor/assets/bower_components/notifyjs/README.md +31 -0
  380. data/vendor/assets/bower_components/notifyjs/bower.json +14 -0
  381. data/vendor/assets/bower_components/notifyjs/dist/notify.js +586 -0
  382. data/vendor/assets/bower_components/notifyjs/dist/styles/metro/notify-metro.css +40 -0
  383. data/vendor/assets/bower_components/notifyjs/dist/styles/metro/notify-metro.js +39 -0
  384. data/vendor/assets/bower_components/notifyjs/examples/classes.html +49 -0
  385. data/vendor/assets/bower_components/notifyjs/examples/images/Mail.png +0 -0
  386. data/vendor/assets/bower_components/notifyjs/examples/inlines.html +111 -0
  387. data/vendor/assets/bower_components/notifyjs/examples/metro.html +37 -0
  388. data/vendor/assets/bower_components/notifyjs/examples/multi-text.html +55 -0
  389. data/vendor/assets/bower_components/notifyjs/examples/position.html +42 -0
  390. data/vendor/assets/bower_components/notifyjs/notify.jquery.json +28 -0
  391. data/vendor/assets/bower_components/notifyjs/package.json +18 -0
  392. data/vendor/assets/bower_components/vue/LICENSE +21 -0
  393. data/vendor/assets/bower_components/vue/bower.json +19 -0
  394. data/vendor/assets/bower_components/vue/dist/vue.js +10198 -0
  395. data/vendor/assets/bower_components/vue/dist/vue.min.js +8 -0
  396. data/vendor/assets/bower_components/vue/src/api/child.js +49 -0
  397. data/vendor/assets/bower_components/vue/src/api/data.js +159 -0
  398. data/vendor/assets/bower_components/vue/src/api/dom.js +226 -0
  399. data/vendor/assets/bower_components/vue/src/api/events.js +174 -0
  400. data/vendor/assets/bower_components/vue/src/api/global.js +129 -0
  401. data/vendor/assets/bower_components/vue/src/api/lifecycle.js +68 -0
  402. data/vendor/assets/bower_components/vue/src/batcher.js +98 -0
  403. data/vendor/assets/bower_components/vue/src/cache.js +112 -0
  404. data/vendor/assets/bower_components/vue/src/compiler/compile-props.js +183 -0
  405. data/vendor/assets/bower_components/vue/src/compiler/compile.js +630 -0
  406. data/vendor/assets/bower_components/vue/src/compiler/index.js +4 -0
  407. data/vendor/assets/bower_components/vue/src/compiler/transclude.js +144 -0
  408. data/vendor/assets/bower_components/vue/src/config.js +124 -0
  409. data/vendor/assets/bower_components/vue/src/directive.js +254 -0
  410. data/vendor/assets/bower_components/vue/src/directives/attr.js +59 -0
  411. data/vendor/assets/bower_components/vue/src/directives/class.js +70 -0
  412. data/vendor/assets/bower_components/vue/src/directives/cloak.js +10 -0
  413. data/vendor/assets/bower_components/vue/src/directives/component.js +344 -0
  414. data/vendor/assets/bower_components/vue/src/directives/el.js +12 -0
  415. data/vendor/assets/bower_components/vue/src/directives/html.js +40 -0
  416. data/vendor/assets/bower_components/vue/src/directives/if.js +125 -0
  417. data/vendor/assets/bower_components/vue/src/directives/index.js +24 -0
  418. data/vendor/assets/bower_components/vue/src/directives/model/checkbox.js +42 -0
  419. data/vendor/assets/bower_components/vue/src/directives/model/index.js +82 -0
  420. data/vendor/assets/bower_components/vue/src/directives/model/radio.js +33 -0
  421. data/vendor/assets/bower_components/vue/src/directives/model/select.js +236 -0
  422. data/vendor/assets/bower_components/vue/src/directives/model/text.js +132 -0
  423. data/vendor/assets/bower_components/vue/src/directives/on.js +59 -0
  424. data/vendor/assets/bower_components/vue/src/directives/prop.js +62 -0
  425. data/vendor/assets/bower_components/vue/src/directives/ref.js +22 -0
  426. data/vendor/assets/bower_components/vue/src/directives/repeat.js +770 -0
  427. data/vendor/assets/bower_components/vue/src/directives/show.js +8 -0
  428. data/vendor/assets/bower_components/vue/src/directives/style.js +110 -0
  429. data/vendor/assets/bower_components/vue/src/directives/text.js +14 -0
  430. data/vendor/assets/bower_components/vue/src/directives/transition.js +26 -0
  431. data/vendor/assets/bower_components/vue/src/element-directives/content.js +111 -0
  432. data/vendor/assets/bower_components/vue/src/element-directives/index.js +2 -0
  433. data/vendor/assets/bower_components/vue/src/element-directives/partial.js +73 -0
  434. data/vendor/assets/bower_components/vue/src/filters/array-filters.js +97 -0
  435. data/vendor/assets/bower_components/vue/src/filters/index.js +146 -0
  436. data/vendor/assets/bower_components/vue/src/instance/compile.js +200 -0
  437. data/vendor/assets/bower_components/vue/src/instance/events.js +139 -0
  438. data/vendor/assets/bower_components/vue/src/instance/init.js +89 -0
  439. data/vendor/assets/bower_components/vue/src/instance/misc.js +93 -0
  440. data/vendor/assets/bower_components/vue/src/instance/scope.js +282 -0
  441. data/vendor/assets/bower_components/vue/src/observer/array.js +98 -0
  442. data/vendor/assets/bower_components/vue/src/observer/dep.js +61 -0
  443. data/vendor/assets/bower_components/vue/src/observer/index.js +234 -0
  444. data/vendor/assets/bower_components/vue/src/observer/object.js +82 -0
  445. data/vendor/assets/bower_components/vue/src/parsers/directive.js +180 -0
  446. data/vendor/assets/bower_components/vue/src/parsers/expression.js +264 -0
  447. data/vendor/assets/bower_components/vue/src/parsers/path.js +348 -0
  448. data/vendor/assets/bower_components/vue/src/parsers/template.js +288 -0
  449. data/vendor/assets/bower_components/vue/src/parsers/text.js +178 -0
  450. data/vendor/assets/bower_components/vue/src/transition/index.js +128 -0
  451. data/vendor/assets/bower_components/vue/src/transition/queue.js +35 -0
  452. data/vendor/assets/bower_components/vue/src/transition/transition.js +357 -0
  453. data/vendor/assets/bower_components/vue/src/util/component.js +124 -0
  454. data/vendor/assets/bower_components/vue/src/util/debug.js +64 -0
  455. data/vendor/assets/bower_components/vue/src/util/dom.js +272 -0
  456. data/vendor/assets/bower_components/vue/src/util/env.js +85 -0
  457. data/vendor/assets/bower_components/vue/src/util/index.js +9 -0
  458. data/vendor/assets/bower_components/vue/src/util/lang.js +310 -0
  459. data/vendor/assets/bower_components/vue/src/util/options.js +357 -0
  460. data/vendor/assets/bower_components/vue/src/vue.js +89 -0
  461. data/vendor/assets/bower_components/vue/src/watcher.js +312 -0
  462. metadata +870 -0
@@ -0,0 +1,129 @@
1
+ var _ = require('../util')
2
+ var config = require('../config')
3
+
4
+ /**
5
+ * Expose useful internals
6
+ */
7
+
8
+ exports.util = _
9
+ exports.config = config
10
+ exports.nextTick = _.nextTick
11
+ exports.compiler = require('../compiler')
12
+
13
+ exports.parsers = {
14
+ path: require('../parsers/path'),
15
+ text: require('../parsers/text'),
16
+ template: require('../parsers/template'),
17
+ directive: require('../parsers/directive'),
18
+ expression: require('../parsers/expression')
19
+ }
20
+
21
+ /**
22
+ * Each instance constructor, including Vue, has a unique
23
+ * cid. This enables us to create wrapped "child
24
+ * constructors" for prototypal inheritance and cache them.
25
+ */
26
+
27
+ exports.cid = 0
28
+ var cid = 1
29
+
30
+ /**
31
+ * Class inheritance
32
+ *
33
+ * @param {Object} extendOptions
34
+ */
35
+
36
+ exports.extend = function (extendOptions) {
37
+ extendOptions = extendOptions || {}
38
+ var Super = this
39
+ var Sub = createClass(
40
+ extendOptions.name ||
41
+ Super.options.name ||
42
+ 'VueComponent'
43
+ )
44
+ Sub.prototype = Object.create(Super.prototype)
45
+ Sub.prototype.constructor = Sub
46
+ Sub.cid = cid++
47
+ Sub.options = _.mergeOptions(
48
+ Super.options,
49
+ extendOptions
50
+ )
51
+ Sub['super'] = Super
52
+ // allow further extension
53
+ Sub.extend = Super.extend
54
+ // create asset registers, so extended classes
55
+ // can have their private assets too.
56
+ config._assetTypes.forEach(function (type) {
57
+ Sub[type] = Super[type]
58
+ })
59
+ return Sub
60
+ }
61
+
62
+ /**
63
+ * A function that returns a sub-class constructor with the
64
+ * given name. This gives us much nicer output when
65
+ * logging instances in the console.
66
+ *
67
+ * @param {String} name
68
+ * @return {Function}
69
+ */
70
+
71
+ function createClass (name) {
72
+ return new Function(
73
+ 'return function ' + _.classify(name) +
74
+ ' (options) { this._init(options) }'
75
+ )()
76
+ }
77
+
78
+ /**
79
+ * Plugin system
80
+ *
81
+ * @param {Object} plugin
82
+ */
83
+
84
+ exports.use = function (plugin) {
85
+ // additional parameters
86
+ var args = _.toArray(arguments, 1)
87
+ args.unshift(this)
88
+ if (typeof plugin.install === 'function') {
89
+ plugin.install.apply(plugin, args)
90
+ } else {
91
+ plugin.apply(null, args)
92
+ }
93
+ return this
94
+ }
95
+
96
+ /**
97
+ * Apply a global mixin by merging it into the default
98
+ * options.
99
+ */
100
+
101
+ exports.mixin = function (mixin) {
102
+ var Vue = _.Vue
103
+ Vue.options = _.mergeOptions(Vue.options, mixin)
104
+ }
105
+
106
+ /**
107
+ * Create asset registration methods with the following
108
+ * signature:
109
+ *
110
+ * @param {String} id
111
+ * @param {*} definition
112
+ */
113
+
114
+ config._assetTypes.forEach(function (type) {
115
+ exports[type] = function (id, definition) {
116
+ if (!definition) {
117
+ return this.options[type + 's'][id]
118
+ } else {
119
+ if (
120
+ type === 'component' &&
121
+ _.isPlainObject(definition)
122
+ ) {
123
+ definition.name = id
124
+ definition = _.Vue.extend(definition)
125
+ }
126
+ this.options[type + 's'][id] = definition
127
+ }
128
+ }
129
+ })
@@ -0,0 +1,68 @@
1
+ var _ = require('../util')
2
+ var compiler = require('../compiler')
3
+
4
+ /**
5
+ * Set instance target element and kick off the compilation
6
+ * process. The passed in `el` can be a selector string, an
7
+ * existing Element, or a DocumentFragment (for block
8
+ * instances).
9
+ *
10
+ * @param {Element|DocumentFragment|string} el
11
+ * @public
12
+ */
13
+
14
+ exports.$mount = function (el) {
15
+ if (this._isCompiled) {
16
+ process.env.NODE_ENV !== 'production' && _.warn(
17
+ '$mount() should be called only once.'
18
+ )
19
+ return
20
+ }
21
+ el = _.query(el)
22
+ if (!el) {
23
+ el = document.createElement('div')
24
+ }
25
+ this._compile(el)
26
+ this._isCompiled = true
27
+ this._callHook('compiled')
28
+ this._initDOMHooks()
29
+ if (_.inDoc(this.$el)) {
30
+ this._callHook('attached')
31
+ ready.call(this)
32
+ } else {
33
+ this.$once('hook:attached', ready)
34
+ }
35
+ return this
36
+ }
37
+
38
+ /**
39
+ * Mark an instance as ready.
40
+ */
41
+
42
+ function ready () {
43
+ this._isAttached = true
44
+ this._isReady = true
45
+ this._callHook('ready')
46
+ }
47
+
48
+ /**
49
+ * Teardown the instance, simply delegate to the internal
50
+ * _destroy.
51
+ */
52
+
53
+ exports.$destroy = function (remove, deferCleanup) {
54
+ this._destroy(remove, deferCleanup)
55
+ }
56
+
57
+ /**
58
+ * Partially compile a piece of DOM and return a
59
+ * decompile function.
60
+ *
61
+ * @param {Element|DocumentFragment} el
62
+ * @param {Vue} [host]
63
+ * @return {Function}
64
+ */
65
+
66
+ exports.$compile = function (el, host) {
67
+ return compiler.compile(el, this.$options, true)(this, el, host)
68
+ }
@@ -0,0 +1,98 @@
1
+ var _ = require('./util')
2
+ var config = require('./config')
3
+
4
+ // we have two separate queues: one for directive updates
5
+ // and one for user watcher registered via $watch().
6
+ // we want to guarantee directive updates to be called
7
+ // before user watchers so that when user watchers are
8
+ // triggered, the DOM would have already been in updated
9
+ // state.
10
+ var queue = []
11
+ var userQueue = []
12
+ var has = {}
13
+ var circular = {}
14
+ var waiting = false
15
+ var internalQueueDepleted = false
16
+
17
+ /**
18
+ * Reset the batcher's state.
19
+ */
20
+
21
+ function resetBatcherState () {
22
+ queue = []
23
+ userQueue = []
24
+ has = {}
25
+ circular = {}
26
+ waiting = internalQueueDepleted = false
27
+ }
28
+
29
+ /**
30
+ * Flush both queues and run the watchers.
31
+ */
32
+
33
+ function flushBatcherQueue () {
34
+ runBatcherQueue(queue)
35
+ internalQueueDepleted = true
36
+ runBatcherQueue(userQueue)
37
+ resetBatcherState()
38
+ }
39
+
40
+ /**
41
+ * Run the watchers in a single queue.
42
+ *
43
+ * @param {Array} queue
44
+ */
45
+
46
+ function runBatcherQueue (queue) {
47
+ // do not cache length because more watchers might be pushed
48
+ // as we run existing watchers
49
+ for (var i = 0; i < queue.length; i++) {
50
+ var watcher = queue[i]
51
+ var id = watcher.id
52
+ has[id] = null
53
+ watcher.run()
54
+ // in dev build, check and stop circular updates.
55
+ if (process.env.NODE_ENV !== 'production' && has[id] != null) {
56
+ circular[id] = (circular[id] || 0) + 1
57
+ if (circular[id] > config._maxUpdateCount) {
58
+ queue.splice(has[id], 1)
59
+ _.warn(
60
+ 'You may have an infinite update loop for watcher ' +
61
+ 'with expression: ' + watcher.expression
62
+ )
63
+ }
64
+ }
65
+ }
66
+ }
67
+
68
+ /**
69
+ * Push a watcher into the watcher queue.
70
+ * Jobs with duplicate IDs will be skipped unless it's
71
+ * pushed when the queue is being flushed.
72
+ *
73
+ * @param {Watcher} watcher
74
+ * properties:
75
+ * - {Number} id
76
+ * - {Function} run
77
+ */
78
+
79
+ exports.push = function (watcher) {
80
+ var id = watcher.id
81
+ if (has[id] == null) {
82
+ // if an internal watcher is pushed, but the internal
83
+ // queue is already depleted, we run it immediately.
84
+ if (internalQueueDepleted && !watcher.user) {
85
+ watcher.run()
86
+ return
87
+ }
88
+ // push watcher into appropriate queue
89
+ var q = watcher.user ? userQueue : queue
90
+ has[id] = q.length
91
+ q.push(watcher)
92
+ // queue the flush
93
+ if (!waiting) {
94
+ waiting = true
95
+ _.nextTick(flushBatcherQueue)
96
+ }
97
+ }
98
+ }
@@ -0,0 +1,112 @@
1
+ /**
2
+ * A doubly linked list-based Least Recently Used (LRU)
3
+ * cache. Will keep most recently used items while
4
+ * discarding least recently used items when its limit is
5
+ * reached. This is a bare-bone version of
6
+ * Rasmus Andersson's js-lru:
7
+ *
8
+ * https://github.com/rsms/js-lru
9
+ *
10
+ * @param {Number} limit
11
+ * @constructor
12
+ */
13
+
14
+ function Cache (limit) {
15
+ this.size = 0
16
+ this.limit = limit
17
+ this.head = this.tail = undefined
18
+ this._keymap = Object.create(null)
19
+ }
20
+
21
+ var p = Cache.prototype
22
+
23
+ /**
24
+ * Put <value> into the cache associated with <key>.
25
+ * Returns the entry which was removed to make room for
26
+ * the new entry. Otherwise undefined is returned.
27
+ * (i.e. if there was enough room already).
28
+ *
29
+ * @param {String} key
30
+ * @param {*} value
31
+ * @return {Entry|undefined}
32
+ */
33
+
34
+ p.put = function (key, value) {
35
+ var entry = {
36
+ key: key,
37
+ value: value
38
+ }
39
+ this._keymap[key] = entry
40
+ if (this.tail) {
41
+ this.tail.newer = entry
42
+ entry.older = this.tail
43
+ } else {
44
+ this.head = entry
45
+ }
46
+ this.tail = entry
47
+ if (this.size === this.limit) {
48
+ return this.shift()
49
+ } else {
50
+ this.size++
51
+ }
52
+ }
53
+
54
+ /**
55
+ * Purge the least recently used (oldest) entry from the
56
+ * cache. Returns the removed entry or undefined if the
57
+ * cache was empty.
58
+ */
59
+
60
+ p.shift = function () {
61
+ var entry = this.head
62
+ if (entry) {
63
+ this.head = this.head.newer
64
+ this.head.older = undefined
65
+ entry.newer = entry.older = undefined
66
+ this._keymap[entry.key] = undefined
67
+ }
68
+ return entry
69
+ }
70
+
71
+ /**
72
+ * Get and register recent use of <key>. Returns the value
73
+ * associated with <key> or undefined if not in cache.
74
+ *
75
+ * @param {String} key
76
+ * @param {Boolean} returnEntry
77
+ * @return {Entry|*}
78
+ */
79
+
80
+ p.get = function (key, returnEntry) {
81
+ var entry = this._keymap[key]
82
+ if (entry === undefined) return
83
+ if (entry === this.tail) {
84
+ return returnEntry
85
+ ? entry
86
+ : entry.value
87
+ }
88
+ // HEAD--------------TAIL
89
+ // <.older .newer>
90
+ // <--- add direction --
91
+ // A B C <D> E
92
+ if (entry.newer) {
93
+ if (entry === this.head) {
94
+ this.head = entry.newer
95
+ }
96
+ entry.newer.older = entry.older // C <-- E.
97
+ }
98
+ if (entry.older) {
99
+ entry.older.newer = entry.newer // C. --> E
100
+ }
101
+ entry.newer = undefined // D --x
102
+ entry.older = this.tail // D. --> E
103
+ if (this.tail) {
104
+ this.tail.newer = entry // E. <-- D
105
+ }
106
+ this.tail = entry
107
+ return returnEntry
108
+ ? entry
109
+ : entry.value
110
+ }
111
+
112
+ module.exports = Cache
@@ -0,0 +1,183 @@
1
+ var _ = require('../util')
2
+ var textParser = require('../parsers/text')
3
+ var propDef = require('../directives/prop')
4
+ var propBindingModes = require('../config')._propBindingModes
5
+
6
+ // regexes
7
+ var identRE = require('../parsers/path').identRE
8
+ var dataAttrRE = /^data-/
9
+ var settablePathRE = /^[A-Za-z_$][\w$]*(\.[A-Za-z_$][\w$]*|\[[^\[\]]+\])*$/
10
+ var literalValueRE = /^(true|false)$|^\d.*/
11
+
12
+ /**
13
+ * Compile param attributes on a root element and return
14
+ * a props link function.
15
+ *
16
+ * @param {Element|DocumentFragment} el
17
+ * @param {Array} propOptions
18
+ * @return {Function} propsLinkFn
19
+ */
20
+
21
+ module.exports = function compileProps (el, propOptions) {
22
+ var props = []
23
+ var i = propOptions.length
24
+ var options, name, attr, value, path, prop, literal, single
25
+ while (i--) {
26
+ options = propOptions[i]
27
+ name = options.name
28
+ // props could contain dashes, which will be
29
+ // interpreted as minus calculations by the parser
30
+ // so we need to camelize the path here
31
+ path = _.camelize(name.replace(dataAttrRE, ''))
32
+ if (!identRE.test(path)) {
33
+ process.env.NODE_ENV !== 'production' && _.warn(
34
+ 'Invalid prop key: "' + name + '". Prop keys ' +
35
+ 'must be valid identifiers.'
36
+ )
37
+ continue
38
+ }
39
+ attr = _.hyphenate(name)
40
+ value = el.getAttribute(attr)
41
+ if (value === null) {
42
+ attr = 'data-' + attr
43
+ value = el.getAttribute(attr)
44
+ }
45
+ // create a prop descriptor
46
+ prop = {
47
+ name: name,
48
+ raw: value,
49
+ path: path,
50
+ options: options,
51
+ mode: propBindingModes.ONE_WAY
52
+ }
53
+ if (value !== null) {
54
+ // important so that this doesn't get compiled
55
+ // again as a normal attribute binding
56
+ el.removeAttribute(attr)
57
+ var tokens = textParser.parse(value)
58
+ if (tokens) {
59
+ prop.dynamic = true
60
+ prop.parentPath = textParser.tokensToExp(tokens)
61
+ // check prop binding type.
62
+ single = tokens.length === 1
63
+ literal = literalValueRE.test(prop.parentPath)
64
+ // one time: {{* prop}}
65
+ if (literal || (single && tokens[0].oneTime)) {
66
+ prop.mode = propBindingModes.ONE_TIME
67
+ } else if (
68
+ !literal &&
69
+ (single && tokens[0].twoWay)
70
+ ) {
71
+ if (settablePathRE.test(prop.parentPath)) {
72
+ prop.mode = propBindingModes.TWO_WAY
73
+ } else {
74
+ process.env.NODE_ENV !== 'production' && _.warn(
75
+ 'Cannot bind two-way prop with non-settable ' +
76
+ 'parent path: ' + prop.parentPath
77
+ )
78
+ }
79
+ }
80
+ if (
81
+ process.env.NODE_ENV !== 'production' &&
82
+ options.twoWay &&
83
+ prop.mode !== propBindingModes.TWO_WAY
84
+ ) {
85
+ _.warn(
86
+ 'Prop "' + name + '" expects a two-way binding type.'
87
+ )
88
+ }
89
+ }
90
+ } else if (options && options.required) {
91
+ process.env.NODE_ENV !== 'production' && _.warn(
92
+ 'Missing required prop: ' + name
93
+ )
94
+ }
95
+ props.push(prop)
96
+ }
97
+ return makePropsLinkFn(props)
98
+ }
99
+
100
+ /**
101
+ * Build a function that applies props to a vm.
102
+ *
103
+ * @param {Array} props
104
+ * @return {Function} propsLinkFn
105
+ */
106
+
107
+ function makePropsLinkFn (props) {
108
+ return function propsLinkFn (vm, el) {
109
+ // store resolved props info
110
+ vm._props = {}
111
+ var i = props.length
112
+ var prop, path, options, value
113
+ while (i--) {
114
+ prop = props[i]
115
+ path = prop.path
116
+ vm._props[path] = prop
117
+ options = prop.options
118
+ if (prop.raw === null) {
119
+ // initialize absent prop
120
+ _.initProp(vm, prop, getDefault(options))
121
+ } else if (prop.dynamic) {
122
+ // dynamic prop
123
+ if (vm._context) {
124
+ if (prop.mode === propBindingModes.ONE_TIME) {
125
+ // one time binding
126
+ value = vm._context.$get(prop.parentPath)
127
+ _.initProp(vm, prop, value)
128
+ } else {
129
+ // dynamic binding
130
+ vm._bindDir('prop', el, prop, propDef)
131
+ }
132
+ } else {
133
+ process.env.NODE_ENV !== 'production' && _.warn(
134
+ 'Cannot bind dynamic prop on a root instance' +
135
+ ' with no parent: ' + prop.name + '="' +
136
+ prop.raw + '"'
137
+ )
138
+ }
139
+ } else {
140
+ // literal, cast it and just set once
141
+ var raw = prop.raw
142
+ value = options.type === Boolean && raw === ''
143
+ ? true
144
+ // do not cast emptry string.
145
+ // _.toNumber casts empty string to 0.
146
+ : raw.trim()
147
+ ? _.toBoolean(_.toNumber(raw))
148
+ : raw
149
+ _.initProp(vm, prop, value)
150
+ }
151
+ }
152
+ }
153
+ }
154
+
155
+ /**
156
+ * Get the default value of a prop.
157
+ *
158
+ * @param {Object} options
159
+ * @return {*}
160
+ */
161
+
162
+ function getDefault (options) {
163
+ // no default, return undefined
164
+ if (!options.hasOwnProperty('default')) {
165
+ // absent boolean value defaults to false
166
+ return options.type === Boolean
167
+ ? false
168
+ : undefined
169
+ }
170
+ var def = options.default
171
+ // warn against non-factory defaults for Object & Array
172
+ if (_.isObject(def)) {
173
+ process.env.NODE_ENV !== 'production' && _.warn(
174
+ 'Object/Array as default prop values will be shared ' +
175
+ 'across multiple instances. Use a factory function ' +
176
+ 'to return the default value instead.'
177
+ )
178
+ }
179
+ // call factory function for non-Function types
180
+ return typeof def === 'function' && options.type !== Function
181
+ ? def()
182
+ : def
183
+ }