praxis 0.0.1 → 0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (484) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +11 -0
  3. data/.rspec +3 -0
  4. data/.ruby-version +1 -0
  5. data/.simplecov +7 -0
  6. data/.travis.yml +4 -0
  7. data/CONTRIBUTING.md +183 -0
  8. data/Gemfile +3 -0
  9. data/Guardfile +8 -0
  10. data/LICENSE +22 -0
  11. data/MAINTAINERS +2 -0
  12. data/MAINTAINERS.md +86 -0
  13. data/README.md +69 -3
  14. data/Rakefile +18 -0
  15. data/bin/praxis +10 -0
  16. data/lib/api_browser/.bowerrc +3 -0
  17. data/lib/api_browser/.editorconfig +21 -0
  18. data/lib/api_browser/Gruntfile.js +264 -0
  19. data/lib/api_browser/app/bower_components/angular/.bower.json +16 -0
  20. data/lib/api_browser/app/bower_components/angular/README.md +48 -0
  21. data/lib/api_browser/app/bower_components/angular/angular-csp.css +18 -0
  22. data/lib/api_browser/app/bower_components/angular/angular.js +21464 -0
  23. data/lib/api_browser/app/bower_components/angular/angular.min.js +210 -0
  24. data/lib/api_browser/app/bower_components/angular/angular.min.js.gzip +0 -0
  25. data/lib/api_browser/app/bower_components/angular/angular.min.js.map +8 -0
  26. data/lib/api_browser/app/bower_components/angular/bower.json +7 -0
  27. data/lib/api_browser/app/bower_components/angular-sanitize/.bower.json +19 -0
  28. data/lib/api_browser/app/bower_components/angular-sanitize/README.md +54 -0
  29. data/lib/api_browser/app/bower_components/angular-sanitize/angular-sanitize.js +624 -0
  30. data/lib/api_browser/app/bower_components/angular-sanitize/angular-sanitize.min.js +14 -0
  31. data/lib/api_browser/app/bower_components/angular-sanitize/angular-sanitize.min.js.map +8 -0
  32. data/lib/api_browser/app/bower_components/angular-sanitize/bower.json +8 -0
  33. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/.bower.json +24 -0
  34. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/bower.json +11 -0
  35. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap-tpls.js +4116 -0
  36. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap-tpls.min.js +10 -0
  37. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap.js +3799 -0
  38. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap.min.js +9 -0
  39. data/lib/api_browser/app/bower_components/angular-ui-router/.bower.json +34 -0
  40. data/lib/api_browser/app/bower_components/angular-ui-router/CHANGELOG.md +23 -0
  41. data/lib/api_browser/app/bower_components/angular-ui-router/LICENSE +21 -0
  42. data/lib/api_browser/app/bower_components/angular-ui-router/README.md +280 -0
  43. data/lib/api_browser/app/bower_components/angular-ui-router/bower.json +23 -0
  44. data/lib/api_browser/app/bower_components/angular-ui-router/release/angular-ui-router.js +3223 -0
  45. data/lib/api_browser/app/bower_components/angular-ui-router/release/angular-ui-router.min.js +7 -0
  46. data/lib/api_browser/app/bower_components/angular-ui-router/src/common.js +246 -0
  47. data/lib/api_browser/app/bower_components/angular-ui-router/src/compat.js +146 -0
  48. data/lib/api_browser/app/bower_components/angular-ui-router/src/resolve.js +242 -0
  49. data/lib/api_browser/app/bower_components/angular-ui-router/src/state.js +1204 -0
  50. data/lib/api_browser/app/bower_components/angular-ui-router/src/stateDirectives.js +226 -0
  51. data/lib/api_browser/app/bower_components/angular-ui-router/src/stateFilters.js +35 -0
  52. data/lib/api_browser/app/bower_components/angular-ui-router/src/templateFactory.js +110 -0
  53. data/lib/api_browser/app/bower_components/angular-ui-router/src/urlMatcherFactory.js +325 -0
  54. data/lib/api_browser/app/bower_components/angular-ui-router/src/urlRouter.js +273 -0
  55. data/lib/api_browser/app/bower_components/angular-ui-router/src/view.js +71 -0
  56. data/lib/api_browser/app/bower_components/angular-ui-router/src/viewDirective.js +290 -0
  57. data/lib/api_browser/app/bower_components/angular-ui-router/src/viewScroll.js +52 -0
  58. data/lib/api_browser/app/bower_components/bootstrap-sass/.bower.json +26 -0
  59. data/lib/api_browser/app/bower_components/bootstrap-sass/CNAME +1 -0
  60. data/lib/api_browser/app/bower_components/bootstrap-sass/CONTRIBUTING.md +61 -0
  61. data/lib/api_browser/app/bower_components/bootstrap-sass/DOCS-LICENSE +319 -0
  62. data/lib/api_browser/app/bower_components/bootstrap-sass/Gemfile +5 -0
  63. data/lib/api_browser/app/bower_components/bootstrap-sass/Gemfile.lock +14 -0
  64. data/lib/api_browser/app/bower_components/bootstrap-sass/Gruntfile.js +244 -0
  65. data/lib/api_browser/app/bower_components/bootstrap-sass/LICENSE +176 -0
  66. data/lib/api_browser/app/bower_components/bootstrap-sass/LICENSE-MIT +21 -0
  67. data/lib/api_browser/app/bower_components/bootstrap-sass/README.md +277 -0
  68. data/lib/api_browser/app/bower_components/bootstrap-sass/Rakefile +44 -0
  69. data/lib/api_browser/app/bower_components/bootstrap-sass/_config.yml +25 -0
  70. data/lib/api_browser/app/bower_components/bootstrap-sass/_includes/ads.html +1 -0
  71. data/lib/api_browser/app/bower_components/bootstrap-sass/_includes/footer.html +34 -0
  72. data/lib/api_browser/app/bower_components/bootstrap-sass/_includes/header.html +42 -0
  73. data/lib/api_browser/app/bower_components/bootstrap-sass/_includes/nav-about.html +12 -0
  74. data/lib/api_browser/app/bower_components/bootstrap-sass/_includes/nav-components.html +137 -0
  75. data/lib/api_browser/app/bower_components/bootstrap-sass/_includes/nav-css.html +99 -0
  76. data/lib/api_browser/app/bower_components/bootstrap-sass/_includes/nav-customize.html +40 -0
  77. data/lib/api_browser/app/bower_components/bootstrap-sass/_includes/nav-getting-started.html +44 -0
  78. data/lib/api_browser/app/bower_components/bootstrap-sass/_includes/nav-javascript.html +88 -0
  79. data/lib/api_browser/app/bower_components/bootstrap-sass/_includes/nav-main.html +37 -0
  80. data/lib/api_browser/app/bower_components/bootstrap-sass/_includes/old-bs-docs.html +8 -0
  81. data/lib/api_browser/app/bower_components/bootstrap-sass/_includes/social-buttons.html +16 -0
  82. data/lib/api_browser/app/bower_components/bootstrap-sass/_layouts/default.html +79 -0
  83. data/lib/api_browser/app/bower_components/bootstrap-sass/_layouts/home.html +47 -0
  84. data/lib/api_browser/app/bower_components/bootstrap-sass/about.html +93 -0
  85. data/lib/api_browser/app/bower_components/bootstrap-sass/bower.json +11 -0
  86. data/lib/api_browser/app/bower_components/bootstrap-sass/browserstack.json +37 -0
  87. data/lib/api_browser/app/bower_components/bootstrap-sass/components.html +3689 -0
  88. data/lib/api_browser/app/bower_components/bootstrap-sass/composer.json +28 -0
  89. data/lib/api_browser/app/bower_components/bootstrap-sass/css.html +2674 -0
  90. data/lib/api_browser/app/bower_components/bootstrap-sass/customize.html +1715 -0
  91. data/lib/api_browser/app/bower_components/bootstrap-sass/dist/css/bootstrap-theme.css +427 -0
  92. data/lib/api_browser/app/bower_components/bootstrap-sass/dist/css/bootstrap-theme.min.css +1 -0
  93. data/lib/api_browser/app/bower_components/bootstrap-sass/dist/css/bootstrap.css +6350 -0
  94. data/lib/api_browser/app/bower_components/bootstrap-sass/dist/css/bootstrap.min.css +1 -0
  95. data/lib/api_browser/app/bower_components/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  96. data/lib/api_browser/app/bower_components/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.svg +229 -0
  97. data/lib/api_browser/app/bower_components/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  98. data/lib/api_browser/app/bower_components/bootstrap-sass/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  99. data/lib/api_browser/app/bower_components/bootstrap-sass/dist/js/bootstrap.js +2002 -0
  100. data/lib/api_browser/app/bower_components/bootstrap-sass/dist/js/bootstrap.min.js +9 -0
  101. data/lib/api_browser/app/bower_components/bootstrap-sass/docs-assets/css/docs.css +1195 -0
  102. data/lib/api_browser/app/bower_components/bootstrap-sass/docs-assets/css/pygments-manni.css +66 -0
  103. data/lib/api_browser/app/bower_components/bootstrap-sass/docs-assets/ico/apple-touch-icon-144-precomposed.png +0 -0
  104. data/lib/api_browser/app/bower_components/bootstrap-sass/docs-assets/ico/favicon.png +0 -0
  105. data/lib/api_browser/app/bower_components/bootstrap-sass/docs-assets/js/application.js +103 -0
  106. data/lib/api_browser/app/bower_components/bootstrap-sass/docs-assets/js/customizer.js +332 -0
  107. data/lib/api_browser/app/bower_components/bootstrap-sass/docs-assets/js/filesaver.js +169 -0
  108. data/lib/api_browser/app/bower_components/bootstrap-sass/docs-assets/js/holder.js +404 -0
  109. data/lib/api_browser/app/bower_components/bootstrap-sass/docs-assets/js/ie8-responsive-file-warning.js +12 -0
  110. data/lib/api_browser/app/bower_components/bootstrap-sass/docs-assets/js/jszip.js +1467 -0
  111. data/lib/api_browser/app/bower_components/bootstrap-sass/docs-assets/js/less.js +9 -0
  112. data/lib/api_browser/app/bower_components/bootstrap-sass/docs-assets/js/raw-files.js +3 -0
  113. data/lib/api_browser/app/bower_components/bootstrap-sass/docs-assets/js/uglify.js +14 -0
  114. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/carousel/carousel.css +148 -0
  115. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/carousel/index.html +206 -0
  116. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/grid/grid.css +28 -0
  117. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/grid/index.html +148 -0
  118. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/jumbotron/index.html +99 -0
  119. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/jumbotron/jumbotron.css +5 -0
  120. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/jumbotron-narrow/index.html +82 -0
  121. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/jumbotron-narrow/jumbotron-narrow.css +79 -0
  122. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/justified-nav/index.html +83 -0
  123. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/justified-nav/justified-nav.css +88 -0
  124. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/navbar/index.html +88 -0
  125. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/navbar/navbar.css +8 -0
  126. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/navbar-fixed-top/index.html +91 -0
  127. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/navbar-fixed-top/navbar-fixed-top.css +4 -0
  128. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/navbar-static-top/index.html +92 -0
  129. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/navbar-static-top/navbar-static-top.css +7 -0
  130. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/non-responsive/index.html +101 -0
  131. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/non-responsive/non-responsive.css +116 -0
  132. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/offcanvas/index.html +130 -0
  133. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/offcanvas/offcanvas.css +50 -0
  134. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/offcanvas/offcanvas.js +5 -0
  135. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/screenshots/carousel.jpg +0 -0
  136. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/screenshots/grid.jpg +0 -0
  137. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/screenshots/jumbotron-narrow.jpg +0 -0
  138. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/screenshots/jumbotron.jpg +0 -0
  139. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/screenshots/justified-nav.jpg +0 -0
  140. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/screenshots/navbar-fixed.jpg +0 -0
  141. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/screenshots/navbar-static.jpg +0 -0
  142. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/screenshots/navbar.jpg +0 -0
  143. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/screenshots/non-responsive.jpg +0 -0
  144. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/screenshots/offcanvas.jpg +0 -0
  145. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/screenshots/sign-in.jpg +0 -0
  146. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/screenshots/starter-template.jpg +0 -0
  147. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/screenshots/sticky-footer-navbar.jpg +0 -0
  148. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/screenshots/sticky-footer.jpg +0 -0
  149. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/screenshots/theme.jpg +0 -0
  150. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/signin/index.html +50 -0
  151. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/signin/signin.css +40 -0
  152. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/starter-template/index.html +68 -0
  153. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/starter-template/starter-template.css +7 -0
  154. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/sticky-footer/index.html +55 -0
  155. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/sticky-footer/sticky-footer.css +38 -0
  156. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/sticky-footer-navbar/index.html +91 -0
  157. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/sticky-footer-navbar/sticky-footer-navbar.css +45 -0
  158. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/theme/index.html +384 -0
  159. data/lib/api_browser/app/bower_components/bootstrap-sass/examples/theme/theme.css +14 -0
  160. data/lib/api_browser/app/bower_components/bootstrap-sass/fonts/glyphicons-halflings-regular.eot +0 -0
  161. data/lib/api_browser/app/bower_components/bootstrap-sass/fonts/glyphicons-halflings-regular.svg +229 -0
  162. data/lib/api_browser/app/bower_components/bootstrap-sass/fonts/glyphicons-halflings-regular.ttf +0 -0
  163. data/lib/api_browser/app/bower_components/bootstrap-sass/fonts/glyphicons-halflings-regular.woff +0 -0
  164. data/lib/api_browser/app/bower_components/bootstrap-sass/getting-started.html +1021 -0
  165. data/lib/api_browser/app/bower_components/bootstrap-sass/index.html +16 -0
  166. data/lib/api_browser/app/bower_components/bootstrap-sass/javascript.html +1983 -0
  167. data/lib/api_browser/app/bower_components/bootstrap-sass/js/affix.js +126 -0
  168. data/lib/api_browser/app/bower_components/bootstrap-sass/js/alert.js +98 -0
  169. data/lib/api_browser/app/bower_components/bootstrap-sass/js/button.js +109 -0
  170. data/lib/api_browser/app/bower_components/bootstrap-sass/js/carousel.js +217 -0
  171. data/lib/api_browser/app/bower_components/bootstrap-sass/js/collapse.js +179 -0
  172. data/lib/api_browser/app/bower_components/bootstrap-sass/js/dropdown.js +154 -0
  173. data/lib/api_browser/app/bower_components/bootstrap-sass/js/modal.js +246 -0
  174. data/lib/api_browser/app/bower_components/bootstrap-sass/js/popover.js +117 -0
  175. data/lib/api_browser/app/bower_components/bootstrap-sass/js/scrollspy.js +158 -0
  176. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tab.js +135 -0
  177. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tests/index.html +52 -0
  178. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tests/unit/affix.js +25 -0
  179. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tests/unit/alert.js +62 -0
  180. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tests/unit/button.js +116 -0
  181. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tests/unit/carousel.js +87 -0
  182. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tests/unit/collapse.js +164 -0
  183. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tests/unit/dropdown.js +219 -0
  184. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tests/unit/modal.js +196 -0
  185. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tests/unit/phantom.js +69 -0
  186. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tests/unit/popover.js +133 -0
  187. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tests/unit/scrollspy.js +37 -0
  188. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tests/unit/tab.js +86 -0
  189. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tests/unit/tooltip.js +437 -0
  190. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tests/unit/transition.js +13 -0
  191. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tests/vendor/jquery.js +6 -0
  192. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tests/vendor/qunit.css +232 -0
  193. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tests/vendor/qunit.js +1510 -0
  194. data/lib/api_browser/app/bower_components/bootstrap-sass/js/tooltip.js +386 -0
  195. data/lib/api_browser/app/bower_components/bootstrap-sass/js/transition.js +56 -0
  196. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_alerts.scss +67 -0
  197. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_badges.scss +51 -0
  198. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_breadcrumbs.scss +23 -0
  199. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_button-groups.scss +253 -0
  200. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_buttons.scss +158 -0
  201. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_carousel.scss +231 -0
  202. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_close.scss +35 -0
  203. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_code.scss +53 -0
  204. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_component-animations.scss +29 -0
  205. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_dropdowns.scss +193 -0
  206. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_forms.scss +363 -0
  207. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_glyphicons.scss +237 -0
  208. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_grid.scss +93 -0
  209. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_input-groups.scss +136 -0
  210. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_jumbotron.scss +40 -0
  211. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_labels.scss +58 -0
  212. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_list-group.scss +88 -0
  213. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_media.scss +56 -0
  214. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_mixins.scss +861 -0
  215. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_modals.scss +132 -0
  216. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_navbar.scss +628 -0
  217. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_navs.scss +262 -0
  218. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_normalize.scss +406 -0
  219. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_pager.scss +55 -0
  220. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_pagination.scss +85 -0
  221. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_panels.scss +172 -0
  222. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_popovers.scss +133 -0
  223. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_print.scss +105 -0
  224. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_progress-bars.scss +92 -0
  225. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_responsive-utilities.scss +198 -0
  226. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_scaffolding.scss +119 -0
  227. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_tables.scss +244 -0
  228. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_theme.scss +247 -0
  229. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_thumbnails.scss +32 -0
  230. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_tooltip.scss +95 -0
  231. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_type.scss +279 -0
  232. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_utilities.scss +56 -0
  233. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_variables.scss +637 -0
  234. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/_wells.scss +29 -0
  235. data/lib/api_browser/app/bower_components/bootstrap-sass/lib/bootstrap.scss +49 -0
  236. data/lib/api_browser/app/bower_components/bootstrap-sass/package.json +40 -0
  237. data/lib/api_browser/app/bower_components/jquery/.bower.json +38 -0
  238. data/lib/api_browser/app/bower_components/jquery/MIT-LICENSE.txt +21 -0
  239. data/lib/api_browser/app/bower_components/jquery/bower.json +27 -0
  240. data/lib/api_browser/app/bower_components/jquery/dist/jquery.js +9190 -0
  241. data/lib/api_browser/app/bower_components/jquery/dist/jquery.min.js +5 -0
  242. data/lib/api_browser/app/bower_components/jquery/dist/jquery.min.map +1 -0
  243. data/lib/api_browser/app/bower_components/jquery/src/ajax/jsonp.js +89 -0
  244. data/lib/api_browser/app/bower_components/jquery/src/ajax/load.js +75 -0
  245. data/lib/api_browser/app/bower_components/jquery/src/ajax/parseJSON.js +13 -0
  246. data/lib/api_browser/app/bower_components/jquery/src/ajax/parseXML.js +28 -0
  247. data/lib/api_browser/app/bower_components/jquery/src/ajax/script.js +64 -0
  248. data/lib/api_browser/app/bower_components/jquery/src/ajax/var/nonce.js +5 -0
  249. data/lib/api_browser/app/bower_components/jquery/src/ajax/var/rquery.js +3 -0
  250. data/lib/api_browser/app/bower_components/jquery/src/ajax/xhr.js +135 -0
  251. data/lib/api_browser/app/bower_components/jquery/src/ajax.js +806 -0
  252. data/lib/api_browser/app/bower_components/jquery/src/attributes/attr.js +143 -0
  253. data/lib/api_browser/app/bower_components/jquery/src/attributes/classes.js +158 -0
  254. data/lib/api_browser/app/bower_components/jquery/src/attributes/prop.js +96 -0
  255. data/lib/api_browser/app/bower_components/jquery/src/attributes/support.js +35 -0
  256. data/lib/api_browser/app/bower_components/jquery/src/attributes/val.js +163 -0
  257. data/lib/api_browser/app/bower_components/jquery/src/attributes.js +11 -0
  258. data/lib/api_browser/app/bower_components/jquery/src/callbacks.js +205 -0
  259. data/lib/api_browser/app/bower_components/jquery/src/core/access.js +60 -0
  260. data/lib/api_browser/app/bower_components/jquery/src/core/init.js +123 -0
  261. data/lib/api_browser/app/bower_components/jquery/src/core/parseHTML.js +39 -0
  262. data/lib/api_browser/app/bower_components/jquery/src/core/ready.js +97 -0
  263. data/lib/api_browser/app/bower_components/jquery/src/core/var/rsingleTag.js +4 -0
  264. data/lib/api_browser/app/bower_components/jquery/src/core.js +498 -0
  265. data/lib/api_browser/app/bower_components/jquery/src/css/addGetHookIf.js +24 -0
  266. data/lib/api_browser/app/bower_components/jquery/src/css/curCSS.js +57 -0
  267. data/lib/api_browser/app/bower_components/jquery/src/css/defaultDisplay.js +70 -0
  268. data/lib/api_browser/app/bower_components/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  269. data/lib/api_browser/app/bower_components/jquery/src/css/support.js +91 -0
  270. data/lib/api_browser/app/bower_components/jquery/src/css/swap.js +28 -0
  271. data/lib/api_browser/app/bower_components/jquery/src/css/var/cssExpand.js +3 -0
  272. data/lib/api_browser/app/bower_components/jquery/src/css/var/getStyles.js +5 -0
  273. data/lib/api_browser/app/bower_components/jquery/src/css/var/isHidden.js +13 -0
  274. data/lib/api_browser/app/bower_components/jquery/src/css/var/rmargin.js +3 -0
  275. data/lib/api_browser/app/bower_components/jquery/src/css/var/rnumnonpx.js +5 -0
  276. data/lib/api_browser/app/bower_components/jquery/src/css.js +451 -0
  277. data/lib/api_browser/app/bower_components/jquery/src/data/Data.js +181 -0
  278. data/lib/api_browser/app/bower_components/jquery/src/data/accepts.js +20 -0
  279. data/lib/api_browser/app/bower_components/jquery/src/data/var/data_priv.js +5 -0
  280. data/lib/api_browser/app/bower_components/jquery/src/data/var/data_user.js +5 -0
  281. data/lib/api_browser/app/bower_components/jquery/src/data.js +179 -0
  282. data/lib/api_browser/app/bower_components/jquery/src/deferred.js +149 -0
  283. data/lib/api_browser/app/bower_components/jquery/src/deprecated.js +13 -0
  284. data/lib/api_browser/app/bower_components/jquery/src/dimensions.js +50 -0
  285. data/lib/api_browser/app/bower_components/jquery/src/effects/Tween.js +114 -0
  286. data/lib/api_browser/app/bower_components/jquery/src/effects/animatedSelector.js +13 -0
  287. data/lib/api_browser/app/bower_components/jquery/src/effects.js +649 -0
  288. data/lib/api_browser/app/bower_components/jquery/src/event/alias.js +39 -0
  289. data/lib/api_browser/app/bower_components/jquery/src/event/support.js +9 -0
  290. data/lib/api_browser/app/bower_components/jquery/src/event.js +868 -0
  291. data/lib/api_browser/app/bower_components/jquery/src/exports/amd.js +24 -0
  292. data/lib/api_browser/app/bower_components/jquery/src/exports/global.js +32 -0
  293. data/lib/api_browser/app/bower_components/jquery/src/intro.js +44 -0
  294. data/lib/api_browser/app/bower_components/jquery/src/jquery.js +36 -0
  295. data/lib/api_browser/app/bower_components/jquery/src/manipulation/_evalUrl.js +18 -0
  296. data/lib/api_browser/app/bower_components/jquery/src/manipulation/support.js +31 -0
  297. data/lib/api_browser/app/bower_components/jquery/src/manipulation/var/rcheckableType.js +3 -0
  298. data/lib/api_browser/app/bower_components/jquery/src/manipulation.js +582 -0
  299. data/lib/api_browser/app/bower_components/jquery/src/offset.js +204 -0
  300. data/lib/api_browser/app/bower_components/jquery/src/outro.js +1 -0
  301. data/lib/api_browser/app/bower_components/jquery/src/queue/delay.js +22 -0
  302. data/lib/api_browser/app/bower_components/jquery/src/queue.js +142 -0
  303. data/lib/api_browser/app/bower_components/jquery/src/selector-native.js +172 -0
  304. data/lib/api_browser/app/bower_components/jquery/src/selector-sizzle.js +14 -0
  305. data/lib/api_browser/app/bower_components/jquery/src/selector.js +1 -0
  306. data/lib/api_browser/app/bower_components/jquery/src/serialize.js +111 -0
  307. data/lib/api_browser/app/bower_components/jquery/src/sizzle/dist/sizzle.js +2044 -0
  308. data/lib/api_browser/app/bower_components/jquery/src/sizzle/dist/sizzle.min.js +3 -0
  309. data/lib/api_browser/app/bower_components/jquery/src/sizzle/dist/sizzle.min.map +1 -0
  310. data/lib/api_browser/app/bower_components/jquery/src/traversing/findFilter.js +100 -0
  311. data/lib/api_browser/app/bower_components/jquery/src/traversing/var/rneedsContext.js +6 -0
  312. data/lib/api_browser/app/bower_components/jquery/src/traversing.js +200 -0
  313. data/lib/api_browser/app/bower_components/jquery/src/var/arr.js +3 -0
  314. data/lib/api_browser/app/bower_components/jquery/src/var/class2type.js +4 -0
  315. data/lib/api_browser/app/bower_components/jquery/src/var/concat.js +5 -0
  316. data/lib/api_browser/app/bower_components/jquery/src/var/hasOwn.js +5 -0
  317. data/lib/api_browser/app/bower_components/jquery/src/var/indexOf.js +5 -0
  318. data/lib/api_browser/app/bower_components/jquery/src/var/pnum.js +3 -0
  319. data/lib/api_browser/app/bower_components/jquery/src/var/push.js +5 -0
  320. data/lib/api_browser/app/bower_components/jquery/src/var/rnotwhite.js +3 -0
  321. data/lib/api_browser/app/bower_components/jquery/src/var/slice.js +5 -0
  322. data/lib/api_browser/app/bower_components/jquery/src/var/strundefined.js +3 -0
  323. data/lib/api_browser/app/bower_components/jquery/src/var/support.js +4 -0
  324. data/lib/api_browser/app/bower_components/jquery/src/var/toString.js +5 -0
  325. data/lib/api_browser/app/bower_components/jquery/src/wrap.js +78 -0
  326. data/lib/api_browser/app/bower_components/lodash/.bower.json +34 -0
  327. data/lib/api_browser/app/bower_components/lodash/LICENSE.txt +22 -0
  328. data/lib/api_browser/app/bower_components/lodash/bower.json +23 -0
  329. data/lib/api_browser/app/bower_components/lodash/dist/lodash.compat.js +7157 -0
  330. data/lib/api_browser/app/bower_components/lodash/dist/lodash.compat.min.js +61 -0
  331. data/lib/api_browser/app/bower_components/lodash/dist/lodash.js +6785 -0
  332. data/lib/api_browser/app/bower_components/lodash/dist/lodash.min.js +56 -0
  333. data/lib/api_browser/app/bower_components/lodash/dist/lodash.underscore.js +4979 -0
  334. data/lib/api_browser/app/bower_components/lodash/dist/lodash.underscore.min.js +39 -0
  335. data/lib/api_browser/app/css/main.css +4510 -0
  336. data/lib/api_browser/app/index.html +51 -0
  337. data/lib/api_browser/app/js/app.js +32 -0
  338. data/lib/api_browser/app/js/controllers/action.js +51 -0
  339. data/lib/api_browser/app/js/controllers/controller.js +10 -0
  340. data/lib/api_browser/app/js/controllers/menu.js +49 -0
  341. data/lib/api_browser/app/js/controllers/type.js +28 -0
  342. data/lib/api_browser/app/js/directives/attribute_description.js +43 -0
  343. data/lib/api_browser/app/js/directives/attribute_table.js +27 -0
  344. data/lib/api_browser/app/js/directives/attribute_table_row.js +17 -0
  345. data/lib/api_browser/app/js/directives/no_container.js +8 -0
  346. data/lib/api_browser/app/js/directives/request_body.js +25 -0
  347. data/lib/api_browser/app/js/directives/request_headers.js +20 -0
  348. data/lib/api_browser/app/js/directives/request_parameters.js +20 -0
  349. data/lib/api_browser/app/js/directives/type_label.js +53 -0
  350. data/lib/api_browser/app/js/factories/Documentation.js +16 -0
  351. data/lib/api_browser/app/js/factories/PayloadTemplates.js +10 -0
  352. data/lib/api_browser/app/js/factories/TemplateProvider.js +45 -0
  353. data/lib/api_browser/app/js/factories/TypeTemplates.js +11 -0
  354. data/lib/api_browser/app/js/filters/attribute_name.js +9 -0
  355. data/lib/api_browser/app/js/filters/friendly_json.js +5 -0
  356. data/lib/api_browser/app/js/filters/is_empty.js +8 -0
  357. data/lib/api_browser/app/js/filters/resource_name.js +5 -0
  358. data/lib/api_browser/app/sass/main.scss +59 -0
  359. data/lib/api_browser/app/sass/modules/_body.scss +11 -0
  360. data/lib/api_browser/app/sass/modules/_cloke.scss +8 -0
  361. data/lib/api_browser/app/sass/modules/_header.scss +15 -0
  362. data/lib/api_browser/app/sass/modules/_nav.scss +7 -0
  363. data/lib/api_browser/app/sass/modules/_sidebar.scss +26 -0
  364. data/lib/api_browser/app/sass/modules/_switch.scss +55 -0
  365. data/lib/api_browser/app/sass/modules/_table.scss +13 -0
  366. data/lib/api_browser/app/sass/variables/_bootstrap-variables.scss +762 -0
  367. data/lib/api_browser/app/views/action.html +83 -0
  368. data/lib/api_browser/app/views/controller.html +24 -0
  369. data/lib/api_browser/app/views/directives/attribute_description/_default.html +2 -0
  370. data/lib/api_browser/app/views/directives/attribute_description/_example.html +8 -0
  371. data/lib/api_browser/app/views/directives/attribute_description/_headers.html +8 -0
  372. data/lib/api_browser/app/views/directives/attribute_description.html +2 -0
  373. data/lib/api_browser/app/views/directives/attribute_table.html +23 -0
  374. data/lib/api_browser/app/views/directives/attribute_table_row/_default.html +10 -0
  375. data/lib/api_browser/app/views/directives/attribute_table_row/_links.html +10 -0
  376. data/lib/api_browser/app/views/directives/attribute_table_row/_struct.html +2 -0
  377. data/lib/api_browser/app/views/directives/request_body/_default.html +20 -0
  378. data/lib/api_browser/app/views/directives/request_body/_struct.html +1 -0
  379. data/lib/api_browser/app/views/home.html +7 -0
  380. data/lib/api_browser/app/views/layout.html +50 -0
  381. data/lib/api_browser/app/views/resource/_actions.html +23 -0
  382. data/lib/api_browser/app/views/type/_details.html +29 -0
  383. data/lib/api_browser/app/views/type.html +25 -0
  384. data/lib/api_browser/bower.json +26 -0
  385. data/lib/api_browser/package.json +30 -0
  386. data/lib/praxis/action_definition/headers_dsl_compiler.rb +36 -0
  387. data/lib/praxis/action_definition.rb +153 -0
  388. data/lib/praxis/api_definition.rb +59 -0
  389. data/lib/praxis/application.rb +65 -0
  390. data/lib/praxis/bootloader.rb +91 -0
  391. data/lib/praxis/bootloader_stages/environment.rb +57 -0
  392. data/lib/praxis/bootloader_stages/file_loader.rb +31 -0
  393. data/lib/praxis/bootloader_stages/routing.rb +34 -0
  394. data/lib/praxis/bootloader_stages/subgroup_loader.rb +27 -0
  395. data/lib/praxis/bootloader_stages/warn_unloaded_files.rb +40 -0
  396. data/lib/praxis/config.rb +92 -0
  397. data/lib/praxis/content_type_parser.rb +62 -0
  398. data/lib/praxis/controller.rb +59 -0
  399. data/lib/praxis/dispatcher.rb +102 -0
  400. data/lib/praxis/exception.rb +4 -0
  401. data/lib/praxis/exceptions/config.rb +6 -0
  402. data/lib/praxis/exceptions/config_load.rb +9 -0
  403. data/lib/praxis/exceptions/config_validation.rb +9 -0
  404. data/lib/praxis/exceptions/invalid_configuration.rb +6 -0
  405. data/lib/praxis/exceptions/invalid_response.rb +6 -0
  406. data/lib/praxis/exceptions/invalid_trait.rb +6 -0
  407. data/lib/praxis/exceptions/stage_not_found.rb +6 -0
  408. data/lib/praxis/exceptions/validation.rb +6 -0
  409. data/lib/praxis/file_group.rb +39 -0
  410. data/lib/praxis/links.rb +110 -0
  411. data/lib/praxis/media_type.rb +40 -0
  412. data/lib/praxis/media_type_collection.rb +120 -0
  413. data/lib/praxis/multipart/parser.rb +213 -0
  414. data/lib/praxis/multipart/part.rb +26 -0
  415. data/lib/praxis/plugin.rb +30 -0
  416. data/lib/praxis/request.rb +131 -0
  417. data/lib/praxis/request_stages/action.rb +20 -0
  418. data/lib/praxis/request_stages/load_request.rb +13 -0
  419. data/lib/praxis/request_stages/request_stage.rb +52 -0
  420. data/lib/praxis/request_stages/response.rb +26 -0
  421. data/lib/praxis/request_stages/validate.rb +20 -0
  422. data/lib/praxis/request_stages/validate_params_and_headers.rb +38 -0
  423. data/lib/praxis/request_stages/validate_payload.rb +32 -0
  424. data/lib/praxis/resource_definition.rb +89 -0
  425. data/lib/praxis/response.rb +107 -0
  426. data/lib/praxis/response_definition.rb +264 -0
  427. data/lib/praxis/response_template.rb +34 -0
  428. data/lib/praxis/responses/http.rb +166 -0
  429. data/lib/praxis/responses/validation_error.rb +36 -0
  430. data/lib/praxis/route.rb +27 -0
  431. data/lib/praxis/router.rb +89 -0
  432. data/lib/praxis/simple_media_type.rb +24 -0
  433. data/lib/praxis/skeletor/restful_routing_config.rb +45 -0
  434. data/lib/praxis/stage.rb +94 -0
  435. data/lib/praxis/tasks/api_docs.rb +336 -0
  436. data/lib/praxis/tasks/console.rb +11 -0
  437. data/lib/praxis/tasks/environment.rb +5 -0
  438. data/lib/praxis/tasks/routes.rb +45 -0
  439. data/lib/praxis/tasks.rb +4 -0
  440. data/lib/praxis/types/collection.rb +17 -0
  441. data/lib/praxis/types/multipart.rb +69 -0
  442. data/lib/praxis/version.rb +3 -0
  443. data/lib/praxis.rb +119 -1
  444. data/praxis.gemspec +50 -0
  445. data/spec/functional_spec.rb +186 -0
  446. data/spec/praxis/action_definition_spec.rb +134 -0
  447. data/spec/praxis/api_resource_spec.rb +0 -0
  448. data/spec/praxis/application_spec.rb +46 -0
  449. data/spec/praxis/bootloader_spec.rb +58 -0
  450. data/spec/praxis/config_spec.rb +118 -0
  451. data/spec/praxis/content_type_parser_spec.rb +91 -0
  452. data/spec/praxis/controller_spec.rb +73 -0
  453. data/spec/praxis/dispatcher_spec.rb +0 -0
  454. data/spec/praxis/file_group_spec.rb +34 -0
  455. data/spec/praxis/links_spec.rb +45 -0
  456. data/spec/praxis/media_type_collection_spec.rb +145 -0
  457. data/spec/praxis/media_type_spec.rb +80 -0
  458. data/spec/praxis/multipart/parser_spec.rb +54 -0
  459. data/spec/praxis/request_spec.rb +109 -0
  460. data/spec/praxis/request_stages_validate_spec.rb +34 -0
  461. data/spec/praxis/resource_definition_spec.rb +116 -0
  462. data/spec/praxis/response_definition_spec.rb +500 -0
  463. data/spec/praxis/response_spec.rb +166 -0
  464. data/spec/praxis/restful_routing_config_spec.rb +88 -0
  465. data/spec/praxis/route_spec.rb +42 -0
  466. data/spec/praxis/router_spec.rb +148 -0
  467. data/spec/praxis/stage_spec.rb +110 -0
  468. data/spec/praxis/types/multipart_spec.rb +81 -0
  469. data/spec/spec_app/app/controllers/instances.rb +63 -0
  470. data/spec/spec_app/app/responses/bulk_response.rb +6 -0
  471. data/spec/spec_app/app/responses/multipart.rb +10 -0
  472. data/spec/spec_app/app/responses/other_response.rb +6 -0
  473. data/spec/spec_app/config/environment.rb +17 -0
  474. data/spec/spec_app/config.ru +17 -0
  475. data/spec/spec_app/design/api.rb +27 -0
  476. data/spec/spec_app/design/media_types/instance.rb +35 -0
  477. data/spec/spec_app/design/media_types/volume.rb +34 -0
  478. data/spec/spec_app/design/media_types/volume_snapshot.rb +38 -0
  479. data/spec/spec_app/design/resources/instances.rb +161 -0
  480. data/spec/spec_helper.rb +39 -0
  481. data/spec/support/spec_media_types.rb +46 -0
  482. data/spec/support/spec_resource_definitions.rb +33 -0
  483. data/tasks/praxis_app_generator.thor +307 -0
  484. metadata +847 -12
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "sass-bootstrap",
3
+ "version": "3.0.2",
4
+ "main": [
5
+ "./dist/js/bootstrap.js",
6
+ "./dist/css/bootstrap.css",
7
+ "./dist/fonts/*"
8
+ ],
9
+ "ignore": [
10
+ "**/.*"
11
+ ],
12
+ "dependencies": {
13
+ "jquery": ">= 1.9.0"
14
+ },
15
+ "homepage": "https://github.com/jlong/sass-twitter-bootstrap",
16
+ "_release": "3.0.2",
17
+ "_resolution": {
18
+ "type": "version",
19
+ "tag": "v3.0.2",
20
+ "commit": "efd13cf8bf77c623cd38c927ad14a30eb1a1384b"
21
+ },
22
+ "_source": "git://github.com/jlong/sass-twitter-bootstrap.git",
23
+ "_target": "~3.0.2",
24
+ "_originalSource": "bootstrap-sass",
25
+ "_direct": true
26
+ }
@@ -0,0 +1 @@
1
+ getbootstrap.com
@@ -0,0 +1,61 @@
1
+ # Contributing to Bootstrap
2
+
3
+ Looking to contribute something to Bootstrap? **Here's how you can help.**
4
+
5
+
6
+
7
+ ## Reporting issues
8
+
9
+ We only accept issues that are bug reports or feature requests. Bugs must be isolated and reproducible problems that we can fix within the Bootstrap core. Please read the following guidelines before opening any issue.
10
+
11
+ 1. **Search for existing issues.** We get a lot of duplicate issues, and you'd help us out a lot by first checking if someone else has reported the same issue. Moreover, the issue may have already been resolved with a fix available.
12
+ 2. **Create an isolated and reproducible test case.** Be sure the problem exists in Bootstrap's code with a [reduced test case](http://css-tricks.com/reduced-test-cases/) that should be included in each bug report.
13
+ 3. **Include a live example.** Make use of jsFiddle or jsBin to share your isolated test cases.
14
+ 4. **Share as much information as possible.** Include operating system and version, browser and version, version of Bootstrap, customized or vanilla build, etc. where appropriate. Also include steps to reproduce the bug.
15
+
16
+
17
+
18
+ ## Pull requests
19
+
20
+ - CSS changes must be done in `.less` files first, never just the compiled `.css` files
21
+ - If modifying the `.less` files, always recompile and commit the compiled files `bootstrap.css` and `bootstrap.min.css`
22
+ - Try not to pollute your pull request with unintended changes--keep them simple and small
23
+ - Try to share which browsers your code has been tested in before submitting a pull request
24
+ - Pull requests should always be against the `master` branch, never against `gh-pages`.
25
+
26
+
27
+
28
+ ## Coding standards
29
+
30
+ ### HTML
31
+
32
+ - Two spaces for indentation, never tabs
33
+ - Double quotes only, never single quotes
34
+ - Always use proper indentation
35
+ - Use tags and elements appropriate for an HTML5 doctype (e.g., self-closing tags)
36
+ - Use CDNs and HTTPS for third-party JS when possible. We don't use protocol-relative URLs in this case because they break when viewing the page locally via `file://`.
37
+
38
+ ### CSS
39
+
40
+ - Adhere to the [RECESS CSS property order](http://markdotto.com/2011/11/29/css-property-order/)
41
+ - Multiple-line approach (one property and value per line)
42
+ - Always a space after a property's colon (e.g., `display: block;` and not `display:block;`)
43
+ - End all lines with a semi-colon
44
+ - For multiple, comma-separated selectors, place each selector on its own line
45
+ - Attribute selectors, like `input[type="text"]` should always wrap the attribute's value in double quotes, for consistency and safety (see this [blog post on unquoted attribute values](http://mathiasbynens.be/notes/unquoted-attribute-values) that can lead to XSS attacks).
46
+
47
+ ### JS
48
+
49
+ - No semicolons
50
+ - Comma first
51
+ - 2 spaces (no tabs)
52
+ - strict mode
53
+ - "Attractive"
54
+
55
+
56
+
57
+ ## License
58
+
59
+ With v3.1, we're moving from the Apache 2 to the MIT license for the Bootstrap code (not the docs). We're in the process of collecting permissions from all Bootstrap contributors with code still part of the project to make this happen. For details, please see [#2054](https://github.com/twbs/bootstrap/issues/2054).
60
+
61
+ By contributing your code, you agree to dual-license your contribution under the [Apache 2](https://github.com/twbs/bootstrap/blob/master/LICENSE) and [MIT](https://github.com/twbs/bootstrap/blob/master/MIT) licenses.
@@ -0,0 +1,319 @@
1
+ Creative Commons Legal Code
2
+
3
+ Attribution 3.0 Unported
4
+
5
+ CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
6
+ LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
7
+ ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
8
+ INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
9
+ REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR
10
+ DAMAGES RESULTING FROM ITS USE.
11
+
12
+ License
13
+
14
+ THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
15
+ COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
16
+ COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
17
+ AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
18
+
19
+ BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE
20
+ TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY
21
+ BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS
22
+ CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
23
+ CONDITIONS.
24
+
25
+ 1. Definitions
26
+
27
+ a. "Adaptation" means a work based upon the Work, or upon the Work and
28
+ other pre-existing works, such as a translation, adaptation,
29
+ derivative work, arrangement of music or other alterations of a
30
+ literary or artistic work, or phonogram or performance and includes
31
+ cinematographic adaptations or any other form in which the Work may be
32
+ recast, transformed, or adapted including in any form recognizably
33
+ derived from the original, except that a work that constitutes a
34
+ Collection will not be considered an Adaptation for the purpose of
35
+ this License. For the avoidance of doubt, where the Work is a musical
36
+ work, performance or phonogram, the synchronization of the Work in
37
+ timed-relation with a moving image ("synching") will be considered an
38
+ Adaptation for the purpose of this License.
39
+ b. "Collection" means a collection of literary or artistic works, such as
40
+ encyclopedias and anthologies, or performances, phonograms or
41
+ broadcasts, or other works or subject matter other than works listed
42
+ in Section 1(f) below, which, by reason of the selection and
43
+ arrangement of their contents, constitute intellectual creations, in
44
+ which the Work is included in its entirety in unmodified form along
45
+ with one or more other contributions, each constituting separate and
46
+ independent works in themselves, which together are assembled into a
47
+ collective whole. A work that constitutes a Collection will not be
48
+ considered an Adaptation (as defined above) for the purposes of this
49
+ License.
50
+ c. "Distribute" means to make available to the public the original and
51
+ copies of the Work or Adaptation, as appropriate, through sale or
52
+ other transfer of ownership.
53
+ d. "Licensor" means the individual, individuals, entity or entities that
54
+ offer(s) the Work under the terms of this License.
55
+ e. "Original Author" means, in the case of a literary or artistic work,
56
+ the individual, individuals, entity or entities who created the Work
57
+ or if no individual or entity can be identified, the publisher; and in
58
+ addition (i) in the case of a performance the actors, singers,
59
+ musicians, dancers, and other persons who act, sing, deliver, declaim,
60
+ play in, interpret or otherwise perform literary or artistic works or
61
+ expressions of folklore; (ii) in the case of a phonogram the producer
62
+ being the person or legal entity who first fixes the sounds of a
63
+ performance or other sounds; and, (iii) in the case of broadcasts, the
64
+ organization that transmits the broadcast.
65
+ f. "Work" means the literary and/or artistic work offered under the terms
66
+ of this License including without limitation any production in the
67
+ literary, scientific and artistic domain, whatever may be the mode or
68
+ form of its expression including digital form, such as a book,
69
+ pamphlet and other writing; a lecture, address, sermon or other work
70
+ of the same nature; a dramatic or dramatico-musical work; a
71
+ choreographic work or entertainment in dumb show; a musical
72
+ composition with or without words; a cinematographic work to which are
73
+ assimilated works expressed by a process analogous to cinematography;
74
+ a work of drawing, painting, architecture, sculpture, engraving or
75
+ lithography; a photographic work to which are assimilated works
76
+ expressed by a process analogous to photography; a work of applied
77
+ art; an illustration, map, plan, sketch or three-dimensional work
78
+ relative to geography, topography, architecture or science; a
79
+ performance; a broadcast; a phonogram; a compilation of data to the
80
+ extent it is protected as a copyrightable work; or a work performed by
81
+ a variety or circus performer to the extent it is not otherwise
82
+ considered a literary or artistic work.
83
+ g. "You" means an individual or entity exercising rights under this
84
+ License who has not previously violated the terms of this License with
85
+ respect to the Work, or who has received express permission from the
86
+ Licensor to exercise rights under this License despite a previous
87
+ violation.
88
+ h. "Publicly Perform" means to perform public recitations of the Work and
89
+ to communicate to the public those public recitations, by any means or
90
+ process, including by wire or wireless means or public digital
91
+ performances; to make available to the public Works in such a way that
92
+ members of the public may access these Works from a place and at a
93
+ place individually chosen by them; to perform the Work to the public
94
+ by any means or process and the communication to the public of the
95
+ performances of the Work, including by public digital performance; to
96
+ broadcast and rebroadcast the Work by any means including signs,
97
+ sounds or images.
98
+ i. "Reproduce" means to make copies of the Work by any means including
99
+ without limitation by sound or visual recordings and the right of
100
+ fixation and reproducing fixations of the Work, including storage of a
101
+ protected performance or phonogram in digital form or other electronic
102
+ medium.
103
+
104
+ 2. Fair Dealing Rights. Nothing in this License is intended to reduce,
105
+ limit, or restrict any uses free from copyright or rights arising from
106
+ limitations or exceptions that are provided for in connection with the
107
+ copyright protection under copyright law or other applicable laws.
108
+
109
+ 3. License Grant. Subject to the terms and conditions of this License,
110
+ Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
111
+ perpetual (for the duration of the applicable copyright) license to
112
+ exercise the rights in the Work as stated below:
113
+
114
+ a. to Reproduce the Work, to incorporate the Work into one or more
115
+ Collections, and to Reproduce the Work as incorporated in the
116
+ Collections;
117
+ b. to create and Reproduce Adaptations provided that any such Adaptation,
118
+ including any translation in any medium, takes reasonable steps to
119
+ clearly label, demarcate or otherwise identify that changes were made
120
+ to the original Work. For example, a translation could be marked "The
121
+ original work was translated from English to Spanish," or a
122
+ modification could indicate "The original work has been modified.";
123
+ c. to Distribute and Publicly Perform the Work including as incorporated
124
+ in Collections; and,
125
+ d. to Distribute and Publicly Perform Adaptations.
126
+ e. For the avoidance of doubt:
127
+
128
+ i. Non-waivable Compulsory License Schemes. In those jurisdictions in
129
+ which the right to collect royalties through any statutory or
130
+ compulsory licensing scheme cannot be waived, the Licensor
131
+ reserves the exclusive right to collect such royalties for any
132
+ exercise by You of the rights granted under this License;
133
+ ii. Waivable Compulsory License Schemes. In those jurisdictions in
134
+ which the right to collect royalties through any statutory or
135
+ compulsory licensing scheme can be waived, the Licensor waives the
136
+ exclusive right to collect such royalties for any exercise by You
137
+ of the rights granted under this License; and,
138
+ iii. Voluntary License Schemes. The Licensor waives the right to
139
+ collect royalties, whether individually or, in the event that the
140
+ Licensor is a member of a collecting society that administers
141
+ voluntary licensing schemes, via that society, from any exercise
142
+ by You of the rights granted under this License.
143
+
144
+ The above rights may be exercised in all media and formats whether now
145
+ known or hereafter devised. The above rights include the right to make
146
+ such modifications as are technically necessary to exercise the rights in
147
+ other media and formats. Subject to Section 8(f), all rights not expressly
148
+ granted by Licensor are hereby reserved.
149
+
150
+ 4. Restrictions. The license granted in Section 3 above is expressly made
151
+ subject to and limited by the following restrictions:
152
+
153
+ a. You may Distribute or Publicly Perform the Work only under the terms
154
+ of this License. You must include a copy of, or the Uniform Resource
155
+ Identifier (URI) for, this License with every copy of the Work You
156
+ Distribute or Publicly Perform. You may not offer or impose any terms
157
+ on the Work that restrict the terms of this License or the ability of
158
+ the recipient of the Work to exercise the rights granted to that
159
+ recipient under the terms of the License. You may not sublicense the
160
+ Work. You must keep intact all notices that refer to this License and
161
+ to the disclaimer of warranties with every copy of the Work You
162
+ Distribute or Publicly Perform. When You Distribute or Publicly
163
+ Perform the Work, You may not impose any effective technological
164
+ measures on the Work that restrict the ability of a recipient of the
165
+ Work from You to exercise the rights granted to that recipient under
166
+ the terms of the License. This Section 4(a) applies to the Work as
167
+ incorporated in a Collection, but this does not require the Collection
168
+ apart from the Work itself to be made subject to the terms of this
169
+ License. If You create a Collection, upon notice from any Licensor You
170
+ must, to the extent practicable, remove from the Collection any credit
171
+ as required by Section 4(b), as requested. If You create an
172
+ Adaptation, upon notice from any Licensor You must, to the extent
173
+ practicable, remove from the Adaptation any credit as required by
174
+ Section 4(b), as requested.
175
+ b. If You Distribute, or Publicly Perform the Work or any Adaptations or
176
+ Collections, You must, unless a request has been made pursuant to
177
+ Section 4(a), keep intact all copyright notices for the Work and
178
+ provide, reasonable to the medium or means You are utilizing: (i) the
179
+ name of the Original Author (or pseudonym, if applicable) if supplied,
180
+ and/or if the Original Author and/or Licensor designate another party
181
+ or parties (e.g., a sponsor institute, publishing entity, journal) for
182
+ attribution ("Attribution Parties") in Licensor's copyright notice,
183
+ terms of service or by other reasonable means, the name of such party
184
+ or parties; (ii) the title of the Work if supplied; (iii) to the
185
+ extent reasonably practicable, the URI, if any, that Licensor
186
+ specifies to be associated with the Work, unless such URI does not
187
+ refer to the copyright notice or licensing information for the Work;
188
+ and (iv) , consistent with Section 3(b), in the case of an Adaptation,
189
+ a credit identifying the use of the Work in the Adaptation (e.g.,
190
+ "French translation of the Work by Original Author," or "Screenplay
191
+ based on original Work by Original Author"). The credit required by
192
+ this Section 4 (b) may be implemented in any reasonable manner;
193
+ provided, however, that in the case of a Adaptation or Collection, at
194
+ a minimum such credit will appear, if a credit for all contributing
195
+ authors of the Adaptation or Collection appears, then as part of these
196
+ credits and in a manner at least as prominent as the credits for the
197
+ other contributing authors. For the avoidance of doubt, You may only
198
+ use the credit required by this Section for the purpose of attribution
199
+ in the manner set out above and, by exercising Your rights under this
200
+ License, You may not implicitly or explicitly assert or imply any
201
+ connection with, sponsorship or endorsement by the Original Author,
202
+ Licensor and/or Attribution Parties, as appropriate, of You or Your
203
+ use of the Work, without the separate, express prior written
204
+ permission of the Original Author, Licensor and/or Attribution
205
+ Parties.
206
+ c. Except as otherwise agreed in writing by the Licensor or as may be
207
+ otherwise permitted by applicable law, if You Reproduce, Distribute or
208
+ Publicly Perform the Work either by itself or as part of any
209
+ Adaptations or Collections, You must not distort, mutilate, modify or
210
+ take other derogatory action in relation to the Work which would be
211
+ prejudicial to the Original Author's honor or reputation. Licensor
212
+ agrees that in those jurisdictions (e.g. Japan), in which any exercise
213
+ of the right granted in Section 3(b) of this License (the right to
214
+ make Adaptations) would be deemed to be a distortion, mutilation,
215
+ modification or other derogatory action prejudicial to the Original
216
+ Author's honor and reputation, the Licensor will waive or not assert,
217
+ as appropriate, this Section, to the fullest extent permitted by the
218
+ applicable national law, to enable You to reasonably exercise Your
219
+ right under Section 3(b) of this License (right to make Adaptations)
220
+ but not otherwise.
221
+
222
+ 5. Representations, Warranties and Disclaimer
223
+
224
+ UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
225
+ OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
226
+ KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
227
+ INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
228
+ FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
229
+ LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
230
+ WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION
231
+ OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
232
+
233
+ 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
234
+ LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
235
+ ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
236
+ ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS
237
+ BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
238
+
239
+ 7. Termination
240
+
241
+ a. This License and the rights granted hereunder will terminate
242
+ automatically upon any breach by You of the terms of this License.
243
+ Individuals or entities who have received Adaptations or Collections
244
+ from You under this License, however, will not have their licenses
245
+ terminated provided such individuals or entities remain in full
246
+ compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
247
+ survive any termination of this License.
248
+ b. Subject to the above terms and conditions, the license granted here is
249
+ perpetual (for the duration of the applicable copyright in the Work).
250
+ Notwithstanding the above, Licensor reserves the right to release the
251
+ Work under different license terms or to stop distributing the Work at
252
+ any time; provided, however that any such election will not serve to
253
+ withdraw this License (or any other license that has been, or is
254
+ required to be, granted under the terms of this License), and this
255
+ License will continue in full force and effect unless terminated as
256
+ stated above.
257
+
258
+ 8. Miscellaneous
259
+
260
+ a. Each time You Distribute or Publicly Perform the Work or a Collection,
261
+ the Licensor offers to the recipient a license to the Work on the same
262
+ terms and conditions as the license granted to You under this License.
263
+ b. Each time You Distribute or Publicly Perform an Adaptation, Licensor
264
+ offers to the recipient a license to the original Work on the same
265
+ terms and conditions as the license granted to You under this License.
266
+ c. If any provision of this License is invalid or unenforceable under
267
+ applicable law, it shall not affect the validity or enforceability of
268
+ the remainder of the terms of this License, and without further action
269
+ by the parties to this agreement, such provision shall be reformed to
270
+ the minimum extent necessary to make such provision valid and
271
+ enforceable.
272
+ d. No term or provision of this License shall be deemed waived and no
273
+ breach consented to unless such waiver or consent shall be in writing
274
+ and signed by the party to be charged with such waiver or consent.
275
+ e. This License constitutes the entire agreement between the parties with
276
+ respect to the Work licensed here. There are no understandings,
277
+ agreements or representations with respect to the Work not specified
278
+ here. Licensor shall not be bound by any additional provisions that
279
+ may appear in any communication from You. This License may not be
280
+ modified without the mutual written agreement of the Licensor and You.
281
+ f. The rights granted under, and the subject matter referenced, in this
282
+ License were drafted utilizing the terminology of the Berne Convention
283
+ for the Protection of Literary and Artistic Works (as amended on
284
+ September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
285
+ Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996
286
+ and the Universal Copyright Convention (as revised on July 24, 1971).
287
+ These rights and subject matter take effect in the relevant
288
+ jurisdiction in which the License terms are sought to be enforced
289
+ according to the corresponding provisions of the implementation of
290
+ those treaty provisions in the applicable national law. If the
291
+ standard suite of rights granted under applicable copyright law
292
+ includes additional rights not granted under this License, such
293
+ additional rights are deemed to be included in the License; this
294
+ License is not intended to restrict the license of any rights under
295
+ applicable law.
296
+
297
+
298
+ Creative Commons Notice
299
+
300
+ Creative Commons is not a party to this License, and makes no warranty
301
+ whatsoever in connection with the Work. Creative Commons will not be
302
+ liable to You or any party on any legal theory for any damages
303
+ whatsoever, including without limitation any general, special,
304
+ incidental or consequential damages arising in connection to this
305
+ license. Notwithstanding the foregoing two (2) sentences, if Creative
306
+ Commons has expressly identified itself as the Licensor hereunder, it
307
+ shall have all rights and obligations of Licensor.
308
+
309
+ Except for the limited purpose of indicating to the public that the
310
+ Work is licensed under the CCPL, Creative Commons does not authorize
311
+ the use by either party of the trademark "Creative Commons" or any
312
+ related trademark or logo of Creative Commons without the prior
313
+ written consent of Creative Commons. Any permitted use will be in
314
+ compliance with Creative Commons' then-current trademark usage
315
+ guidelines, as may be published on its website or otherwise made
316
+ available upon request from time to time. For the avoidance of doubt,
317
+ this trademark restriction does not form part of this License.
318
+
319
+ Creative Commons may be contacted at http://creativecommons.org/.
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rake'
4
+ gem 'sass', '~>3.2'
5
+ gem 'rb-fsevent'
@@ -0,0 +1,14 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ rake (10.1.0)
5
+ rb-fsevent (0.9.3)
6
+ sass (3.2.12)
7
+
8
+ PLATFORMS
9
+ ruby
10
+
11
+ DEPENDENCIES
12
+ rake
13
+ rb-fsevent
14
+ sass (~> 3.2)
@@ -0,0 +1,244 @@
1
+ /* jshint node: true */
2
+
3
+ module.exports = function(grunt) {
4
+ "use strict";
5
+
6
+ RegExp.quote = require('regexp-quote')
7
+ var btoa = require('btoa')
8
+ // Project configuration.
9
+ grunt.initConfig({
10
+
11
+ // Metadata.
12
+ pkg: grunt.file.readJSON('package.json'),
13
+ banner: '/*!\n' +
14
+ ' * Bootstrap v<%= pkg.version %> by @fat and @mdo\n' +
15
+ ' * Copyright <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
16
+ ' * Licensed under <%= _.pluck(pkg.licenses, "url").join(", ") %>\n' +
17
+ ' *\n' +
18
+ ' * Designed and built with all the love in the world by @mdo and @fat.\n' +
19
+ ' */\n\n',
20
+ jqueryCheck: 'if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery") }\n\n',
21
+
22
+ // Task configuration.
23
+ clean: {
24
+ dist: ['dist']
25
+ },
26
+
27
+ jshint: {
28
+ options: {
29
+ jshintrc: 'js/.jshintrc'
30
+ },
31
+ gruntfile: {
32
+ src: 'Gruntfile.js'
33
+ },
34
+ src: {
35
+ src: ['js/*.js']
36
+ },
37
+ test: {
38
+ src: ['js/tests/unit/*.js']
39
+ }
40
+ },
41
+
42
+ concat: {
43
+ options: {
44
+ banner: '<%= banner %><%= jqueryCheck %>',
45
+ stripBanners: false
46
+ },
47
+ bootstrap: {
48
+ src: [
49
+ 'js/transition.js',
50
+ 'js/alert.js',
51
+ 'js/button.js',
52
+ 'js/carousel.js',
53
+ 'js/collapse.js',
54
+ 'js/dropdown.js',
55
+ 'js/modal.js',
56
+ 'js/tooltip.js',
57
+ 'js/popover.js',
58
+ 'js/scrollspy.js',
59
+ 'js/tab.js',
60
+ 'js/affix.js'
61
+ ],
62
+ dest: 'dist/js/<%= pkg.name %>.js'
63
+ }
64
+ },
65
+
66
+ uglify: {
67
+ options: {
68
+ banner: '<%= banner %>',
69
+ report: 'min'
70
+ },
71
+ bootstrap: {
72
+ src: ['<%= concat.bootstrap.dest %>'],
73
+ dest: 'dist/js/<%= pkg.name %>.min.js'
74
+ }
75
+ },
76
+
77
+ recess: {
78
+ options: {
79
+ compile: true,
80
+ banner: '<%= banner %>'
81
+ },
82
+ bootstrap: {
83
+ src: ['less/bootstrap.less'],
84
+ dest: 'dist/css/<%= pkg.name %>.css'
85
+ },
86
+ min: {
87
+ options: {
88
+ compress: true
89
+ },
90
+ src: ['less/bootstrap.less'],
91
+ dest: 'dist/css/<%= pkg.name %>.min.css'
92
+ },
93
+ theme: {
94
+ src: ['less/theme.less'],
95
+ dest: 'dist/css/<%= pkg.name %>-theme.css'
96
+ },
97
+ theme_min: {
98
+ options: {
99
+ compress: true
100
+ },
101
+ src: ['less/theme.less'],
102
+ dest: 'dist/css/<%= pkg.name %>-theme.min.css'
103
+ }
104
+ },
105
+
106
+ copy: {
107
+ fonts: {
108
+ expand: true,
109
+ src: ["fonts/*"],
110
+ dest: 'dist/'
111
+ }
112
+ },
113
+
114
+ qunit: {
115
+ options: {
116
+ inject: 'js/tests/unit/phantom.js'
117
+ },
118
+ files: ['js/tests/*.html']
119
+ },
120
+
121
+ connect: {
122
+ server: {
123
+ options: {
124
+ port: 3000,
125
+ base: '.'
126
+ }
127
+ }
128
+ },
129
+
130
+ jekyll: {
131
+ docs: {}
132
+ },
133
+
134
+ validation: {
135
+ options: {
136
+ reset: true,
137
+ relaxerror: [
138
+ "Bad value X-UA-Compatible for attribute http-equiv on element meta.",
139
+ "Element img is missing required attribute src."
140
+ ]
141
+ },
142
+ files: {
143
+ src: ["_gh_pages/**/*.html"]
144
+ }
145
+ },
146
+
147
+ watch: {
148
+ src: {
149
+ files: '<%= jshint.src.src %>',
150
+ tasks: ['jshint:src', 'qunit']
151
+ },
152
+ test: {
153
+ files: '<%= jshint.test.src %>',
154
+ tasks: ['jshint:test', 'qunit']
155
+ },
156
+ recess: {
157
+ files: 'less/*.less',
158
+ tasks: ['recess']
159
+ }
160
+ },
161
+
162
+ sed: {
163
+ versionNumber: {
164
+ pattern: (function () {
165
+ var old = grunt.option('oldver')
166
+ return old ? RegExp.quote(old) : old
167
+ })(),
168
+ replacement: grunt.option('newver'),
169
+ recursive: true
170
+ }
171
+ }
172
+ });
173
+
174
+
175
+ // These plugins provide necessary tasks.
176
+ grunt.loadNpmTasks('browserstack-runner');
177
+ grunt.loadNpmTasks('grunt-contrib-clean');
178
+ grunt.loadNpmTasks('grunt-contrib-concat');
179
+ grunt.loadNpmTasks('grunt-contrib-connect');
180
+ grunt.loadNpmTasks('grunt-contrib-copy');
181
+ grunt.loadNpmTasks('grunt-contrib-jshint');
182
+ grunt.loadNpmTasks('grunt-contrib-qunit');
183
+ grunt.loadNpmTasks('grunt-contrib-uglify');
184
+ grunt.loadNpmTasks('grunt-contrib-watch');
185
+ grunt.loadNpmTasks('grunt-html-validation');
186
+ grunt.loadNpmTasks('grunt-jekyll');
187
+ grunt.loadNpmTasks('grunt-recess');
188
+ grunt.loadNpmTasks('grunt-sed');
189
+
190
+ // Docs HTML validation task
191
+ grunt.registerTask('validate-html', ['jekyll', 'validation']);
192
+
193
+ // Test task.
194
+ var testSubtasks = ['dist-css', 'jshint', 'qunit', 'validate-html'];
195
+ // Only run BrowserStack tests under Travis
196
+ if (process.env.TRAVIS) {
197
+ // Only run BrowserStack tests if this is a mainline commit in twbs/bootstrap, or you have your own BrowserStack key
198
+ if ((process.env.TRAVIS_REPO_SLUG === 'twbs/bootstrap' && process.env.TRAVIS_PULL_REQUEST === 'false') || process.env.TWBS_HAVE_OWN_BROWSERSTACK_KEY) {
199
+ testSubtasks.push('browserstack_runner');
200
+ }
201
+ }
202
+ grunt.registerTask('test', testSubtasks);
203
+
204
+ // JS distribution task.
205
+ grunt.registerTask('dist-js', ['concat', 'uglify']);
206
+
207
+ // CSS distribution task.
208
+ grunt.registerTask('dist-css', ['recess']);
209
+
210
+ // Fonts distribution task.
211
+ grunt.registerTask('dist-fonts', ['copy']);
212
+
213
+ // Full distribution task.
214
+ grunt.registerTask('dist', ['clean', 'dist-css', 'dist-fonts', 'dist-js']);
215
+
216
+ // Default task.
217
+ grunt.registerTask('default', ['test', 'dist', 'build-customizer']);
218
+
219
+ // Version numbering task.
220
+ // grunt change-version-number --oldver=A.B.C --newver=X.Y.Z
221
+ // This can be overzealous, so its changes should always be manually reviewed!
222
+ grunt.registerTask('change-version-number', ['sed']);
223
+
224
+ // task for building customizer
225
+ grunt.registerTask('build-customizer', 'Add scripts/less files to customizer.', function () {
226
+ var fs = require('fs')
227
+
228
+ function getFiles(type) {
229
+ var files = {}
230
+ fs.readdirSync(type)
231
+ .filter(function (path) {
232
+ return type == 'fonts' ? true : new RegExp('\\.' + type + '$').test(path)
233
+ })
234
+ .forEach(function (path) {
235
+ var fullPath = type + '/' + path
236
+ return files[path] = (type == 'fonts' ? btoa(fs.readFileSync(fullPath)) : fs.readFileSync(fullPath, 'utf8'))
237
+ })
238
+ return 'var __' + type + ' = ' + JSON.stringify(files) + '\n'
239
+ }
240
+
241
+ var files = getFiles('js') + getFiles('less') + getFiles('fonts')
242
+ fs.writeFileSync('docs-assets/js/raw-files.js', files)
243
+ });
244
+ };