praxis 0.19.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
+ });