praxis 0.19.0 → 0.20.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (266) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -0
  3. data/CHANGELOG.md +16 -0
  4. data/lib/api_browser/Gruntfile.js +125 -16
  5. data/lib/api_browser/app/index.html +5 -1
  6. data/lib/api_browser/app/js/directives/fixed_if_fits.js +28 -17
  7. data/lib/api_browser/app/js/directives/highlight.js +14 -0
  8. data/lib/api_browser/app/js/directives/request_examples.js +29 -0
  9. data/lib/api_browser/app/js/factories/Documentation.js +6 -0
  10. data/lib/api_browser/app/js/factories/Example.js +47 -0
  11. data/lib/api_browser/app/js/factories/prepare_template.js +15 -0
  12. data/lib/api_browser/app/js/factories/template_for.js +2 -12
  13. data/lib/api_browser/app/sass/modules/_sidebar.scss +2 -0
  14. data/lib/api_browser/app/views/action.html +6 -24
  15. data/lib/api_browser/app/views/examples/general.html +26 -0
  16. data/lib/api_browser/{bower.json → bower_template.json} +13 -3
  17. data/lib/api_browser/package.json +3 -1
  18. data/lib/praxis/application.rb +2 -0
  19. data/lib/praxis/docs/generator.rb +4 -2
  20. data/lib/praxis/extensions/field_selection/field_selector.rb +1 -0
  21. data/lib/praxis/media_type.rb +1 -1
  22. data/lib/praxis/plugin.rb +4 -0
  23. data/lib/praxis/plugin_concern.rb +2 -1
  24. data/lib/praxis/tasks/api_docs.rb +9 -2
  25. data/lib/praxis/version.rb +1 -1
  26. data/praxis.gemspec +2 -2
  27. data/spec/praxis/action_definition_spec.rb +26 -1
  28. data/spec/praxis/extensions/field_selection/field_selector_spec.rb +4 -0
  29. data/spec/praxis/media_type_spec.rb +4 -3
  30. data/spec/support/spec_media_types.rb +5 -1
  31. metadata +12 -242
  32. data/lib/api_browser/app/bower_components/angular-mocks/.bower.json +0 -19
  33. data/lib/api_browser/app/bower_components/angular-mocks/README.md +0 -63
  34. data/lib/api_browser/app/bower_components/angular-mocks/angular-mocks.js +0 -2452
  35. data/lib/api_browser/app/bower_components/angular-mocks/bower.json +0 -9
  36. data/lib/api_browser/app/bower_components/angular-mocks/ngAnimateMock.js +0 -2
  37. data/lib/api_browser/app/bower_components/angular-mocks/ngMock.js +0 -2
  38. data/lib/api_browser/app/bower_components/angular-mocks/ngMockE2E.js +0 -2
  39. data/lib/api_browser/app/bower_components/angular-mocks/package.json +0 -27
  40. data/lib/api_browser/app/bower_components/angular-sanitize/.bower.json +0 -19
  41. data/lib/api_browser/app/bower_components/angular-sanitize/README.md +0 -68
  42. data/lib/api_browser/app/bower_components/angular-sanitize/angular-sanitize.js +0 -683
  43. data/lib/api_browser/app/bower_components/angular-sanitize/angular-sanitize.min.js +0 -16
  44. data/lib/api_browser/app/bower_components/angular-sanitize/angular-sanitize.min.js.map +0 -8
  45. data/lib/api_browser/app/bower_components/angular-sanitize/bower.json +0 -9
  46. data/lib/api_browser/app/bower_components/angular-sanitize/index.js +0 -2
  47. data/lib/api_browser/app/bower_components/angular-sanitize/package.json +0 -26
  48. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/.bower.json +0 -31
  49. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/bower.json +0 -19
  50. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap-csp.css +0 -6
  51. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap-tpls.js +0 -4840
  52. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap-tpls.min.js +0 -10
  53. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap.js +0 -4461
  54. data/lib/api_browser/app/bower_components/angular-ui-bootstrap-bower/ui-bootstrap.min.js +0 -9
  55. data/lib/api_browser/app/bower_components/angular-ui-router/.bower.json +0 -33
  56. data/lib/api_browser/app/bower_components/angular-ui-router/CHANGELOG.md +0 -228
  57. data/lib/api_browser/app/bower_components/angular-ui-router/CONTRIBUTING.md +0 -65
  58. data/lib/api_browser/app/bower_components/angular-ui-router/LICENSE +0 -21
  59. data/lib/api_browser/app/bower_components/angular-ui-router/README.md +0 -245
  60. data/lib/api_browser/app/bower_components/angular-ui-router/api/angular-ui-router.d.ts +0 -126
  61. data/lib/api_browser/app/bower_components/angular-ui-router/bower.json +0 -23
  62. data/lib/api_browser/app/bower_components/angular-ui-router/release/angular-ui-router.js +0 -4370
  63. data/lib/api_browser/app/bower_components/angular-ui-router/release/angular-ui-router.min.js +0 -7
  64. data/lib/api_browser/app/bower_components/angular-ui-router/src/common.js +0 -292
  65. data/lib/api_browser/app/bower_components/angular-ui-router/src/resolve.js +0 -252
  66. data/lib/api_browser/app/bower_components/angular-ui-router/src/state.js +0 -1465
  67. data/lib/api_browser/app/bower_components/angular-ui-router/src/stateDirectives.js +0 -285
  68. data/lib/api_browser/app/bower_components/angular-ui-router/src/stateFilters.js +0 -39
  69. data/lib/api_browser/app/bower_components/angular-ui-router/src/templateFactory.js +0 -110
  70. data/lib/api_browser/app/bower_components/angular-ui-router/src/urlMatcherFactory.js +0 -1050
  71. data/lib/api_browser/app/bower_components/angular-ui-router/src/urlRouter.js +0 -427
  72. data/lib/api_browser/app/bower_components/angular-ui-router/src/view.js +0 -71
  73. data/lib/api_browser/app/bower_components/angular-ui-router/src/viewDirective.js +0 -303
  74. data/lib/api_browser/app/bower_components/angular-ui-router/src/viewScroll.js +0 -52
  75. data/lib/api_browser/app/bower_components/angular/.bower.json +0 -17
  76. data/lib/api_browser/app/bower_components/angular/README.md +0 -64
  77. data/lib/api_browser/app/bower_components/angular/angular-csp.css +0 -21
  78. data/lib/api_browser/app/bower_components/angular/angular.js +0 -28133
  79. data/lib/api_browser/app/bower_components/angular/angular.min.js +0 -289
  80. data/lib/api_browser/app/bower_components/angular/angular.min.js.gzip +0 -0
  81. data/lib/api_browser/app/bower_components/angular/angular.min.js.map +0 -8
  82. data/lib/api_browser/app/bower_components/angular/bower.json +0 -8
  83. data/lib/api_browser/app/bower_components/angular/index.js +0 -2
  84. data/lib/api_browser/app/bower_components/angular/package.json +0 -25
  85. data/lib/api_browser/app/bower_components/bootstrap-sass/.bower.json +0 -41
  86. data/lib/api_browser/app/bower_components/bootstrap-sass/CHANGELOG.md +0 -108
  87. data/lib/api_browser/app/bower_components/bootstrap-sass/CONTRIBUTING.md +0 -79
  88. data/lib/api_browser/app/bower_components/bootstrap-sass/README.md +0 -218
  89. data/lib/api_browser/app/bower_components/bootstrap-sass/bower.json +0 -22
  90. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
  91. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +0 -229
  92. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  93. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  94. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap.js +0 -12
  95. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/affix.js +0 -126
  96. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/alert.js +0 -98
  97. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/button.js +0 -115
  98. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/carousel.js +0 -217
  99. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/collapse.js +0 -179
  100. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/dropdown.js +0 -154
  101. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/modal.js +0 -246
  102. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/popover.js +0 -117
  103. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/scrollspy.js +0 -158
  104. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/tab.js +0 -135
  105. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/tooltip.js +0 -386
  106. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/javascripts/bootstrap/transition.js +0 -56
  107. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap.scss +0 -1
  108. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_alerts.scss +0 -67
  109. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_badges.scss +0 -51
  110. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_breadcrumbs.scss +0 -23
  111. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_button-groups.scss +0 -227
  112. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_buttons.scss +0 -155
  113. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_carousel.scss +0 -232
  114. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_close.scss +0 -35
  115. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_code.scss +0 -53
  116. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_component-animations.scss +0 -29
  117. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_dropdowns.scss +0 -188
  118. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_forms.scss +0 -374
  119. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_glyphicons.scss +0 -237
  120. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_grid.scss +0 -79
  121. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_input-groups.scss +0 -136
  122. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_jumbotron.scss +0 -46
  123. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_labels.scss +0 -64
  124. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_list-group.scss +0 -88
  125. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_media.scss +0 -56
  126. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_mixins.scss +0 -848
  127. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_modals.scss +0 -129
  128. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_navbar.scss +0 -616
  129. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_navs.scss +0 -242
  130. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_normalize.scss +0 -406
  131. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_pager.scss +0 -55
  132. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_pagination.scss +0 -85
  133. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_panels.scss +0 -182
  134. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_popovers.scss +0 -133
  135. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_print.scss +0 -105
  136. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_progress-bars.scss +0 -80
  137. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_responsive-utilities.scss +0 -198
  138. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_scaffolding.scss +0 -119
  139. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_tables.scss +0 -231
  140. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_theme.scss +0 -247
  141. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_thumbnails.scss +0 -38
  142. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_tooltip.scss +0 -95
  143. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_type.scss +0 -281
  144. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_utilities.scss +0 -56
  145. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_variables.scss +0 -646
  146. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/_wells.scss +0 -29
  147. data/lib/api_browser/app/bower_components/bootstrap-sass/vendor/assets/stylesheets/bootstrap/bootstrap.scss +0 -49
  148. data/lib/api_browser/app/bower_components/jquery/.bower.json +0 -38
  149. data/lib/api_browser/app/bower_components/jquery/MIT-LICENSE.txt +0 -21
  150. data/lib/api_browser/app/bower_components/jquery/bower.json +0 -27
  151. data/lib/api_browser/app/bower_components/jquery/dist/jquery.js +0 -9190
  152. data/lib/api_browser/app/bower_components/jquery/dist/jquery.min.js +0 -5
  153. data/lib/api_browser/app/bower_components/jquery/dist/jquery.min.map +0 -1
  154. data/lib/api_browser/app/bower_components/jquery/src/ajax.js +0 -806
  155. data/lib/api_browser/app/bower_components/jquery/src/ajax/jsonp.js +0 -89
  156. data/lib/api_browser/app/bower_components/jquery/src/ajax/load.js +0 -75
  157. data/lib/api_browser/app/bower_components/jquery/src/ajax/parseJSON.js +0 -13
  158. data/lib/api_browser/app/bower_components/jquery/src/ajax/parseXML.js +0 -28
  159. data/lib/api_browser/app/bower_components/jquery/src/ajax/script.js +0 -64
  160. data/lib/api_browser/app/bower_components/jquery/src/ajax/var/nonce.js +0 -5
  161. data/lib/api_browser/app/bower_components/jquery/src/ajax/var/rquery.js +0 -3
  162. data/lib/api_browser/app/bower_components/jquery/src/ajax/xhr.js +0 -135
  163. data/lib/api_browser/app/bower_components/jquery/src/attributes.js +0 -11
  164. data/lib/api_browser/app/bower_components/jquery/src/attributes/attr.js +0 -143
  165. data/lib/api_browser/app/bower_components/jquery/src/attributes/classes.js +0 -158
  166. data/lib/api_browser/app/bower_components/jquery/src/attributes/prop.js +0 -96
  167. data/lib/api_browser/app/bower_components/jquery/src/attributes/support.js +0 -35
  168. data/lib/api_browser/app/bower_components/jquery/src/attributes/val.js +0 -163
  169. data/lib/api_browser/app/bower_components/jquery/src/callbacks.js +0 -205
  170. data/lib/api_browser/app/bower_components/jquery/src/core.js +0 -498
  171. data/lib/api_browser/app/bower_components/jquery/src/core/access.js +0 -60
  172. data/lib/api_browser/app/bower_components/jquery/src/core/init.js +0 -123
  173. data/lib/api_browser/app/bower_components/jquery/src/core/parseHTML.js +0 -39
  174. data/lib/api_browser/app/bower_components/jquery/src/core/ready.js +0 -97
  175. data/lib/api_browser/app/bower_components/jquery/src/core/var/rsingleTag.js +0 -4
  176. data/lib/api_browser/app/bower_components/jquery/src/css.js +0 -451
  177. data/lib/api_browser/app/bower_components/jquery/src/css/addGetHookIf.js +0 -24
  178. data/lib/api_browser/app/bower_components/jquery/src/css/curCSS.js +0 -57
  179. data/lib/api_browser/app/bower_components/jquery/src/css/defaultDisplay.js +0 -70
  180. data/lib/api_browser/app/bower_components/jquery/src/css/hiddenVisibleSelectors.js +0 -15
  181. data/lib/api_browser/app/bower_components/jquery/src/css/support.js +0 -91
  182. data/lib/api_browser/app/bower_components/jquery/src/css/swap.js +0 -28
  183. data/lib/api_browser/app/bower_components/jquery/src/css/var/cssExpand.js +0 -3
  184. data/lib/api_browser/app/bower_components/jquery/src/css/var/getStyles.js +0 -5
  185. data/lib/api_browser/app/bower_components/jquery/src/css/var/isHidden.js +0 -13
  186. data/lib/api_browser/app/bower_components/jquery/src/css/var/rmargin.js +0 -3
  187. data/lib/api_browser/app/bower_components/jquery/src/css/var/rnumnonpx.js +0 -5
  188. data/lib/api_browser/app/bower_components/jquery/src/data.js +0 -179
  189. data/lib/api_browser/app/bower_components/jquery/src/data/Data.js +0 -181
  190. data/lib/api_browser/app/bower_components/jquery/src/data/accepts.js +0 -20
  191. data/lib/api_browser/app/bower_components/jquery/src/data/var/data_priv.js +0 -5
  192. data/lib/api_browser/app/bower_components/jquery/src/data/var/data_user.js +0 -5
  193. data/lib/api_browser/app/bower_components/jquery/src/deferred.js +0 -149
  194. data/lib/api_browser/app/bower_components/jquery/src/deprecated.js +0 -13
  195. data/lib/api_browser/app/bower_components/jquery/src/dimensions.js +0 -50
  196. data/lib/api_browser/app/bower_components/jquery/src/effects.js +0 -649
  197. data/lib/api_browser/app/bower_components/jquery/src/effects/Tween.js +0 -114
  198. data/lib/api_browser/app/bower_components/jquery/src/effects/animatedSelector.js +0 -13
  199. data/lib/api_browser/app/bower_components/jquery/src/event.js +0 -868
  200. data/lib/api_browser/app/bower_components/jquery/src/event/alias.js +0 -39
  201. data/lib/api_browser/app/bower_components/jquery/src/event/support.js +0 -9
  202. data/lib/api_browser/app/bower_components/jquery/src/exports/amd.js +0 -24
  203. data/lib/api_browser/app/bower_components/jquery/src/exports/global.js +0 -32
  204. data/lib/api_browser/app/bower_components/jquery/src/intro.js +0 -44
  205. data/lib/api_browser/app/bower_components/jquery/src/jquery.js +0 -36
  206. data/lib/api_browser/app/bower_components/jquery/src/manipulation.js +0 -582
  207. data/lib/api_browser/app/bower_components/jquery/src/manipulation/_evalUrl.js +0 -18
  208. data/lib/api_browser/app/bower_components/jquery/src/manipulation/support.js +0 -31
  209. data/lib/api_browser/app/bower_components/jquery/src/manipulation/var/rcheckableType.js +0 -3
  210. data/lib/api_browser/app/bower_components/jquery/src/offset.js +0 -204
  211. data/lib/api_browser/app/bower_components/jquery/src/outro.js +0 -1
  212. data/lib/api_browser/app/bower_components/jquery/src/queue.js +0 -142
  213. data/lib/api_browser/app/bower_components/jquery/src/queue/delay.js +0 -22
  214. data/lib/api_browser/app/bower_components/jquery/src/selector-native.js +0 -172
  215. data/lib/api_browser/app/bower_components/jquery/src/selector-sizzle.js +0 -14
  216. data/lib/api_browser/app/bower_components/jquery/src/selector.js +0 -1
  217. data/lib/api_browser/app/bower_components/jquery/src/serialize.js +0 -111
  218. data/lib/api_browser/app/bower_components/jquery/src/sizzle/dist/sizzle.js +0 -2044
  219. data/lib/api_browser/app/bower_components/jquery/src/sizzle/dist/sizzle.min.js +0 -3
  220. data/lib/api_browser/app/bower_components/jquery/src/sizzle/dist/sizzle.min.map +0 -1
  221. data/lib/api_browser/app/bower_components/jquery/src/traversing.js +0 -200
  222. data/lib/api_browser/app/bower_components/jquery/src/traversing/findFilter.js +0 -100
  223. data/lib/api_browser/app/bower_components/jquery/src/traversing/var/rneedsContext.js +0 -6
  224. data/lib/api_browser/app/bower_components/jquery/src/var/arr.js +0 -3
  225. data/lib/api_browser/app/bower_components/jquery/src/var/class2type.js +0 -4
  226. data/lib/api_browser/app/bower_components/jquery/src/var/concat.js +0 -5
  227. data/lib/api_browser/app/bower_components/jquery/src/var/hasOwn.js +0 -5
  228. data/lib/api_browser/app/bower_components/jquery/src/var/indexOf.js +0 -5
  229. data/lib/api_browser/app/bower_components/jquery/src/var/pnum.js +0 -3
  230. data/lib/api_browser/app/bower_components/jquery/src/var/push.js +0 -5
  231. data/lib/api_browser/app/bower_components/jquery/src/var/rnotwhite.js +0 -3
  232. data/lib/api_browser/app/bower_components/jquery/src/var/slice.js +0 -5
  233. data/lib/api_browser/app/bower_components/jquery/src/var/strundefined.js +0 -3
  234. data/lib/api_browser/app/bower_components/jquery/src/var/support.js +0 -4
  235. data/lib/api_browser/app/bower_components/jquery/src/var/toString.js +0 -5
  236. data/lib/api_browser/app/bower_components/jquery/src/wrap.js +0 -78
  237. data/lib/api_browser/app/bower_components/lodash/.bower.json +0 -30
  238. data/lib/api_browser/app/bower_components/lodash/LICENSE.txt +0 -22
  239. data/lib/api_browser/app/bower_components/lodash/bower.json +0 -20
  240. data/lib/api_browser/app/bower_components/lodash/lodash.js +0 -12235
  241. data/lib/api_browser/app/bower_components/lodash/lodash.min.js +0 -98
  242. data/lib/api_browser/app/bower_components/showdown/.bower.json +0 -39
  243. data/lib/api_browser/app/bower_components/showdown/.jshintignore +0 -2
  244. data/lib/api_browser/app/bower_components/showdown/.travis.yml +0 -8
  245. data/lib/api_browser/app/bower_components/showdown/Gruntfile.js +0 -100
  246. data/lib/api_browser/app/bower_components/showdown/README.md +0 -317
  247. data/lib/api_browser/app/bower_components/showdown/bower.json +0 -26
  248. data/lib/api_browser/app/bower_components/showdown/compressed/Showdown.js +0 -1606
  249. data/lib/api_browser/app/bower_components/showdown/compressed/Showdown.js.map +0 -1
  250. data/lib/api_browser/app/bower_components/showdown/compressed/Showdown.min.js +0 -2
  251. data/lib/api_browser/app/bower_components/showdown/compressed/extensions/github.min.js +0 -2
  252. data/lib/api_browser/app/bower_components/showdown/compressed/extensions/github.min.js.map +0 -1
  253. data/lib/api_browser/app/bower_components/showdown/compressed/extensions/prettify.min.js +0 -2
  254. data/lib/api_browser/app/bower_components/showdown/compressed/extensions/prettify.min.js.map +0 -1
  255. data/lib/api_browser/app/bower_components/showdown/compressed/extensions/table.min.js +0 -2
  256. data/lib/api_browser/app/bower_components/showdown/compressed/extensions/table.min.js.map +0 -1
  257. data/lib/api_browser/app/bower_components/showdown/compressed/extensions/twitter.min.js +0 -2
  258. data/lib/api_browser/app/bower_components/showdown/compressed/extensions/twitter.min.js.map +0 -1
  259. data/lib/api_browser/app/bower_components/showdown/license.txt +0 -34
  260. data/lib/api_browser/app/bower_components/showdown/package.json +0 -47
  261. data/lib/api_browser/app/bower_components/showdown/src/extensions/github.js +0 -25
  262. data/lib/api_browser/app/bower_components/showdown/src/extensions/prettify.js +0 -29
  263. data/lib/api_browser/app/bower_components/showdown/src/extensions/table.js +0 -106
  264. data/lib/api_browser/app/bower_components/showdown/src/extensions/twitter.js +0 -42
  265. data/lib/api_browser/app/bower_components/showdown/src/ng-showdown.js +0 -150
  266. data/lib/api_browser/app/bower_components/showdown/src/showdown.js +0 -1454
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5c3c0d0844cabeb646b294a5a91b3c1fff24c848
4
- data.tar.gz: edcb41f6707ec368f6a87f0f6273bc6aef558b7b
3
+ metadata.gz: 1f9e3125f14a1661de76a4f8f5af8749dcc0b2c1
4
+ data.tar.gz: 5e88bc49232b9ad8dbd7c20b046c49905d14f52c
5
5
  SHA512:
6
- metadata.gz: afecbf0a00ee48c51eb9c49a1e0867431569e9136ef74a1e852800d143f5f672d276fa5ba80c1339629faf23d518d50067693ddb4f05702925fa4fb2071131f1
7
- data.tar.gz: 6348cd21d00aa34085870a0b8af94a4939b31da4d00c962ab4dd49cb316a699a0412082db7e104c18bfb423a731000f04c86422d228be7ecb2ee156573d0afda
6
+ metadata.gz: 5f0fa85f2dbb7d145f9e56f49aa755a2dc5cf4db65db107f73c468d3b71908e832c404d1b5cc96ac55b6f8a93c9724d7ed43192cb2f5a6fe45b18f8e2ce944b9
7
+ data.tar.gz: c451e56a47994d560fc3b739bc8f63a08c5f9ffb6ba7136a9b343059bb3c3e5c34c31382e8cdcf2ec2065b00d9d81ff5a7afd7da375d22a582d02eda18469369
data/.gitignore CHANGED
@@ -9,3 +9,8 @@ _site/
9
9
  node_modules/
10
10
  *.css.map
11
11
  pkg
12
+
13
+ lib/api_browser/node_modules/
14
+ lib/api_browser/app/bower_components/
15
+ lib/api_browser/.tmp/
16
+ lib/api_browser/bower.json
data/CHANGELOG.md CHANGED
@@ -2,6 +2,22 @@
2
2
 
3
3
  ## next
4
4
 
5
+ ## 0.20.0
6
+
7
+ * You can now add a `bower.json` file to your `docs` folder. Any dependencies
8
+ you list there will be included in the doc browser.
9
+ * The Plugin API now exposes `Praxis::Plugin#register_doc_browser_plugin(path)`,
10
+ which allows plugins to register assets that will be included in the doc browser.
11
+ This is a convenient way to share customizations and optional features amongst
12
+ different API projects.
13
+ * Fixes an issue where an odd scrollbar would appear in some cases in the doc browser.
14
+ * Fixed a corner-case in doc generation which could omit certain existing MediaTypes
15
+ (when these existed but there were never referenced in any other part of the app).
16
+ * Added `ApiGeneralInfo` to supported modules a `PluginConcern` can extend.
17
+ * Fixed `MediaType` support for attributor advanced requirements.
18
+ * Doc Browser now exposes an API to register functions that generate code examples.
19
+ These can be registered with `ExamplesProvider.register` call.
20
+
5
21
  ## 0.19.0
6
22
 
7
23
  * Handle loading empty `MediaTypeIdentifier` values (to return `nil`)
@@ -10,12 +10,56 @@ module.exports = function(grunt) {
10
10
  }
11
11
 
12
12
  var userDocsPath = process.env.USER_DOCS_PATH,
13
+ pluginPaths = process.env.PLUGIN_PATHS ? process.env.PLUGIN_PATHS.split(':') : [],
13
14
  buildPath = userDocsPath + '/output',
14
- browserPort = process.env.DOC_PORT || '9090';
15
+ browserPort = process.env.DOC_PORT || '9090',
16
+ bowerPaths = pluginPaths.concat([userDocsPath]).map(function(f) { return f + '/bower.json'; });
15
17
 
16
18
  var cssOutput = {};
17
19
  cssOutput[buildPath + '/css/main.css'] = userDocsPath + '/styles.scss';
18
20
 
21
+ grunt.registerMultiTask('merge_bower', function() {
22
+ var merge = require('package-merge'),
23
+ options = this.options({
24
+ template: {},
25
+ writePath: './bower.json',
26
+ install: false
27
+ }),
28
+ shouldInstallDevAssets = this.flags.development,
29
+ files = [],
30
+ template = options.templatePath ? grunt.file.read(options.templatePath) : JSON.stringify(options.template, null, 2),
31
+ dependencies = template.dependencies || {},
32
+ devDependencies = template.devDependencies || {};
33
+
34
+ this.files.forEach(function(obj) {
35
+ files = files.concat(obj.src.filter(function(file) {
36
+ return grunt.file.exists(file);
37
+ }));
38
+ });
39
+
40
+ var result = files.reduce(function(combined, file) {
41
+ grunt.verbose.writelns("Combining " + file);
42
+ return merge(grunt.file.read(file), combined);
43
+ }, template);
44
+
45
+ grunt.file.write(options.writePath, result);
46
+
47
+ if (options.install) {
48
+ grunt.log.writeln('Installing Bower Dependencies');
49
+ var exec = require('child_process').exec;
50
+ var done = this.async();
51
+ exec('node_modules/.bin/bower install --force-latest' + (shouldInstallDevAssets ? '' : ' --production') + '--config.interactive=false --config.analytics=false', { cwd: '.' }, function(error, result) {
52
+ if (error) {
53
+ grunt.log.error('bower install failed with' + error);
54
+ done(false);
55
+ } else {
56
+ grunt.log.ok('Dependencies installed succesfully');
57
+ done();
58
+ }
59
+ });
60
+ }
61
+ });
62
+
19
63
  grunt.initConfig({
20
64
  // web server for development
21
65
  connect: {
@@ -27,12 +71,11 @@ module.exports = function(grunt) {
27
71
  options: {
28
72
  livereload: 9091,
29
73
  open: true,
30
- base: [
31
- userDocsPath,
74
+ base: [userDocsPath].concat(pluginPaths).concat([,
32
75
  '.tmp',
33
76
  '.data',
34
77
  'app'
35
- ]
78
+ ])
36
79
  }
37
80
  },
38
81
  dist: {
@@ -83,9 +126,15 @@ module.exports = function(grunt) {
83
126
  blocks: {
84
127
  scripts: {
85
128
  cwd: 'app',
86
- // This ensures app.js comes first so the angular module is declared
129
+ // This ensures app.js comes first so the angular module is declared,
130
+ // then Praxis core files, then plugin files
87
131
  src: ['js/app.js', 'js/**/*.js']
88
132
  },
133
+ pluginscripts: {
134
+ src: pluginPaths.map(function(path) {
135
+ return path + '/**/*.js';
136
+ })
137
+ },
89
138
  userscripts: {
90
139
  // cwd: userDocsPath,
91
140
  src: [userDocsPath + '/app.js', userDocsPath + '/**/*.js', '!' + userDocsPath + '/output/**/*.js']
@@ -102,6 +151,20 @@ module.exports = function(grunt) {
102
151
  // This ensures app.js comes first so the angular module is declared
103
152
  src: ['js/app.js', 'js/**/*.js']
104
153
  },
154
+ pluginscripts: {
155
+ src: pluginPaths.map(function(path) {
156
+ return path + '/**/*.js';
157
+ }),
158
+ templatesFn: {
159
+ js: function(file) {
160
+ var pluginPath = pluginPaths.filter(function(path) {
161
+ return grunt.file.isMatch(path + '/**/*.js', file);
162
+ })[0];
163
+
164
+ return file.replace(pluginPath + '/', '');
165
+ }
166
+ }
167
+ },
105
168
  userscripts: {
106
169
  cwd: userDocsPath,
107
170
  src: ['app.js', '**/*.js', '!output/**/*.js']
@@ -116,7 +179,7 @@ module.exports = function(grunt) {
116
179
  options: {
117
180
  sourceComments: 'map',
118
181
  sourceMap: __dirname + '/.tmp/css/main.css.map',
119
- includePaths: ['app/sass']
182
+ includePaths: ['app/sass'].concat(pluginPaths)
120
183
  },
121
184
  files: {
122
185
  '.tmp/css/main.css': userDocsPath + '/styles.scss'
@@ -125,7 +188,7 @@ module.exports = function(grunt) {
125
188
  dist: {
126
189
  options: {
127
190
  sourceComments: 'none',
128
- includePaths: ['app/sass']
191
+ includePaths: ['app/sass'].concat(pluginPaths)
129
192
  },
130
193
  files: cssOutput
131
194
  }
@@ -152,6 +215,9 @@ module.exports = function(grunt) {
152
215
  if (object && object.type === 'Identifier' && object.name === 'templateForProvider' && node.callee.property.name === 'register') {
153
216
  return node.arguments[0];
154
217
  }
218
+ if (object && object.type === 'Identifier' && object.name === 'ExamplesProvider' && node.callee.property.name === 'register') {
219
+ return node.arguments[2];
220
+ }
155
221
  }
156
222
  }}]
157
223
  }
@@ -192,9 +258,18 @@ module.exports = function(grunt) {
192
258
  },
193
259
  },
194
260
  dist: {
195
- cwd: 'app',
196
- src: 'views/**/*.html',
197
- dest: '.tmp/templates.js',
261
+ files: [{
262
+ cwd: 'app',
263
+ src: 'views/**/*.html',
264
+ dest: '.tmp/templates.js'
265
+ }].concat(pluginPaths.map(function (path, i) {
266
+ return {
267
+ cwd: path,
268
+ src: 'views/**/*.html',
269
+ dest: '.tmp/plugin-templates-' + i + '.js'
270
+ };
271
+ })),
272
+
198
273
  options: {
199
274
  usemin: buildPath + '/scripts/praxis.js',
200
275
  module: 'PraxisDocBrowser',
@@ -239,10 +314,36 @@ module.exports = function(grunt) {
239
314
  '!**/*.{js,scss,sass,less,coffee}',
240
315
  '!views/**',
241
316
  '!**/.*',
242
- '!output/**'
243
-
317
+ '!output/**',
318
+ '!bower.json'
244
319
  ]
245
- }]
320
+ }].concat(pluginPaths.map(function(path) {
321
+ return {
322
+ expand: true,
323
+ dot: true,
324
+ cwd: path,
325
+ dest: buildPath,
326
+ src: [
327
+ '**/*',
328
+ '!**/*.{js,scss,sass,less,coffee}',
329
+ '!views/**',
330
+ '!**/.*',
331
+ '!output/**',
332
+ '!bower.json'
333
+ ]
334
+ };
335
+ }))
336
+ }
337
+ },
338
+
339
+ merge_bower: {
340
+ app: {
341
+ options: {
342
+ writePath: 'bower.json',
343
+ templatePath: 'bower_template.json',
344
+ install: true
345
+ },
346
+ src: bowerPaths
246
347
  }
247
348
  },
248
349
 
@@ -334,7 +435,6 @@ module.exports = function(grunt) {
334
435
  if (target === 'dist') {
335
436
  return grunt.task.run(['build', 'connect:dist:keepalive']);
336
437
  }
337
-
338
438
  grunt.config.merge({
339
439
  watch: {
340
440
  // Updates index.html for any file added or removed
@@ -346,11 +446,18 @@ module.exports = function(grunt) {
346
446
 
347
447
  // Updates index.html for any bower component added or removed
348
448
  bowerComponents: {
349
- files: ['app/bower_components/**/*', userDocsPath + '/bower_components/**/*'],
449
+ files: ['app/bower_components/**/.bower.json'],
350
450
  tasks: 'wiredep',
351
451
  options: { livereload: 9091 }
352
452
  },
353
453
 
454
+ // watches bower paths to retrigger bower install
455
+ bower: {
456
+ files: bowerPaths.concat(['bower_template.json']),
457
+ tasks: ['merge_bower:app', 'wiredep'],
458
+ options: { livereload: 9091 }
459
+ },
460
+
354
461
  // Rebuild the stylesheets for any SASS file changed
355
462
  sass: {
356
463
  files: [
@@ -385,9 +492,9 @@ module.exports = function(grunt) {
385
492
  }
386
493
  });
387
494
 
388
-
389
495
  grunt.task.run([
390
496
  'clean:serve',
497
+ 'merge_bower:app',
391
498
  'fileblocks:serve',
392
499
  'wiredep',
393
500
  'sass:server',
@@ -398,6 +505,7 @@ module.exports = function(grunt) {
398
505
 
399
506
  grunt.registerTask('build', [
400
507
  'clean:dist',
508
+ 'merge_bower:app',
401
509
  'fileblocks:dist',
402
510
  'wiredep',
403
511
  'sass:dist',
@@ -433,6 +541,7 @@ module.exports = function(grunt) {
433
541
  });
434
542
 
435
543
  grunt.registerTask('ci', [
544
+ 'merge_bower:app:development',
436
545
  'ngtemplates:dist',
437
546
  'jshint:src',
438
547
  'karma:unit'
@@ -6,13 +6,15 @@
6
6
  <title ng-bind="subtitle ? title + ' – ' + subtitle : title">API Browser</title>
7
7
  <meta name="description" content="">
8
8
  <meta name="viewport" content="width=device-width">
9
+ <!-- build:css({.tmp,app,/}) css/other.css -->
9
10
  <!-- bower:css -->
10
11
  <!-- endbower -->
12
+ <!-- endbuild -->
11
13
  <link rel="stylesheet" href="css/main.css">
12
14
  </head>
13
15
  <body>
14
16
  <div ui-view=""></div>
15
- <!-- build:js({.tmp,app}) scripts/praxis.js -->
17
+ <!-- build:js({.tmp,app,/}) scripts/praxis.js -->
16
18
  <!-- bower:js -->
17
19
  <script src="bower_components/jquery/dist/jquery.js"></script>
18
20
  <script src="bower_components/angular/angular.js"></script>
@@ -43,6 +45,8 @@
43
45
  <script src="js/directives/request_headers.js"></script>
44
46
  <script src="js/directives/request_parameters.js"></script>
45
47
  <!-- endfileblock -->
48
+ <!-- fileblock:js pluginscripts -->
49
+ <!-- endfileblock -->
46
50
  <!-- endbuild -->
47
51
  <!-- build:js({/,.tmp}) scripts/docs.js -->
48
52
  <!-- fileblock:js userscripts -->
@@ -2,26 +2,37 @@
2
2
  * This directive adds the css position fixed if the tabs fit on screen
3
3
  */
4
4
 
5
- app.directive('fixedIfFits', function($timeout) {
5
+ app.directive('fixedIfFits', function($timeout, $rootScope) {
6
6
  return {
7
7
  restrict: 'C',
8
8
  link: function(scope, element) {
9
- $timeout(function() {
10
- var height = _(element.find('.tab-content .tab-pane').get()).map(function(el) {
11
- return angular.element(el).height();
12
- }).max() + element.offset().top;
13
- var mq = window.matchMedia('(min-width: 768px)');
14
- if (height < $(window).height() && mq.matches) {
15
- var padding = 20;
16
- element[0].style.width = (element.width() + padding) + 'px';
17
- element[0].style.paddingRight = padding + 'px';
18
- var navbarHeight = '' + ($('.navbar').height() || 60) + 'px';
19
- element[0].style.height = 'calc(100vh - ' + navbarHeight + ')';
20
- element[0].style.paddingBottom = '30px';
21
- element[0].style.overflow = 'auto';
22
- element[0].style.position = 'fixed';
23
- }
24
- }, 100);
9
+ function recalculateLayout() {
10
+ $timeout(function() {
11
+ var height = _(element.find('.tab-content .tab-pane').get()).map(function(el) {
12
+ return angular.element(el).height();
13
+ }).concat([element[0].scrollHeight]).max() + element.offset().top + element.find('.row:first-of-type').height();
14
+ var mq = window.matchMedia('(min-width: 768px)');
15
+ if (height < $(window).height() && mq.matches) {
16
+ var padding = 20;
17
+ element[0].style.width = (element.width() + padding) + 'px';
18
+ element[0].style.paddingRight = padding + 'px';
19
+ var navbarHeight = '' + ($('.navbar').height() || 60) + 'px';
20
+ element[0].style.height = 'calc(100vh - ' + navbarHeight + ')';
21
+ element[0].style.paddingBottom = '30px';
22
+ element[0].style['overflow-y'] = 'auto';
23
+ element[0].style.position = 'fixed';
24
+ } else {
25
+ element[0].style.width = null;
26
+ element[0].style.paddingRight = null;
27
+ element[0].style.height = null;
28
+ element[0].style.paddingBottom = null;
29
+ element[0].style['overflow-y'] = null;
30
+ element[0].style.position = 'static';
31
+ }
32
+ }, 100);
33
+ }
34
+ recalculateLayout();
35
+ $rootScope.$on('$stateChangeSuccess', recalculateLayout);
25
36
  }
26
37
  };
27
38
  });
@@ -0,0 +1,14 @@
1
+ app.directive('highlight', function() {
2
+ return {
3
+ restrict: 'EA',
4
+ link: function ($scope, element, attrs) {
5
+ var prism = window.Prism;
6
+ prism.plugins.autoloader.languages_path = 'https://cdn.jsdelivr.net/prism/1.3.0/components/';
7
+ element.ready(function() {
8
+ element.html('<code>' + element.text() + '</code>');
9
+ element.addClass('language-' + attrs.highlight);
10
+ prism.highlightElement(element.find('code')[0]);
11
+ });
12
+ }
13
+ };
14
+ });
@@ -0,0 +1,29 @@
1
+ app.directive('requestExamples', function(Examples, $timeout) {
2
+ return {
3
+ restrict: 'E',
4
+ scope: {
5
+ action: '=',
6
+ resource: '=',
7
+ version: '='
8
+ },
9
+ template: '<tabset><tab ng-repeat="example in examples" heading="{{example.displayName}}" select="select(example.template)"></tab></tabset>',
10
+ link: function(scope, element) {
11
+ scope.examples = Examples.forContext(scope.action, scope.version, scope.resource);
12
+ var keys = _.keys(scope.examples);
13
+ if (keys.length === 1) {
14
+ scope.examples[keys[0]].template.then(function(templateFn) {
15
+ element.empty().append(templateFn(scope));
16
+ });
17
+ } else {
18
+ scope.select = function(template) {
19
+ template.then(function(templateFn) {
20
+ $timeout(function() {
21
+ element.find('.tab-content:eq(0)>.tab-pane.active:not(.initialized)').append(templateFn(scope)).addClass('initialized');
22
+ template.then = _.noop;
23
+ }, 100);
24
+ });
25
+ };
26
+ }
27
+ }
28
+ };
29
+ });
@@ -17,6 +17,12 @@ app.factory('Documentation', function($http, $q) {
17
17
  versions: function() {
18
18
  return versions.then(_.keys);
19
19
  },
20
+ /**
21
+ * Returns the info for the requested version
22
+ */
23
+ info: function(version) {
24
+ return versions.then(function(v) { return v[version].info; });
25
+ },
20
26
  /**
21
27
  * Returns a list of controllers and types, useful for generating navigation
22
28
  */
@@ -0,0 +1,47 @@
1
+ app.provider('Examples', function() {
2
+ var registry = {};
3
+
4
+ this.register = function(key, displayName, handler) {
5
+ registry[key] = registry[key] || [];
6
+ registry[key].unshift({
7
+ key: key,
8
+ displayName: displayName,
9
+ handler: handler
10
+ });
11
+ };
12
+
13
+ this.register('general', 'General', function() {
14
+ return 'views/examples/general.html';
15
+ });
16
+
17
+ this.$get = function(prepareTemplate, $injector) {
18
+ return {
19
+ forContext: function(action, version, resource) {
20
+ var results = {};
21
+ for (var key in registry) {
22
+ for (var i = 0; i < registry[key].length; i++) {
23
+ var result = $injector.invoke(registry[key][i].handler, this, {
24
+ $action: action,
25
+ $version: version,
26
+ $context: {
27
+ resource: resource,
28
+ action: action,
29
+ version: version
30
+ }
31
+ });
32
+ if (result) {
33
+ results[key] = {
34
+ key: key,
35
+ displayName: registry[key][i].displayName,
36
+ template: prepareTemplate(result)
37
+ };
38
+ break;
39
+ }
40
+ }
41
+ }
42
+ return results;
43
+ }
44
+ };
45
+ };
46
+
47
+ });