apidoco 1.3.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +70 -61
  3. data/Rakefile +2 -2
  4. data/app/assets/javascripts/apidoco/apidoco_app.js +1 -3
  5. data/app/assets/javascripts/apidoco/application.js +0 -1
  6. data/app/assets/javascripts/apidoco/controllers/documentations_controller.js +9 -0
  7. data/app/assets/javascripts/apidoco/directives/jq_json_viewer.js +3 -0
  8. data/app/assets/stylesheets/apidoco/custom.css +23 -1
  9. data/app/assets/stylesheets/apidoco/helpers.css +5 -0
  10. data/app/assets/stylesheets/apidoco/simple-sidebar.css +17 -12
  11. data/app/controllers/apidoco/apis_controller.rb +1 -1
  12. data/app/helpers/apidoco/application_helper.rb +12 -0
  13. data/app/views/apidoco/apis/_side_bar.html.erb +10 -2
  14. data/app/views/apidoco/apis/show.html.erb +110 -66
  15. data/lib/apidoco/file_parser.rb +31 -0
  16. data/lib/apidoco/folder_parser.rb +42 -0
  17. data/lib/apidoco/version.rb +1 -1
  18. data/lib/apidoco/version_documentation.rb +4 -6
  19. data/lib/apidoco/version_parser.rb +1 -1
  20. data/lib/apidoco.rb +6 -5
  21. data/lib/generators/apidoco_generator.rb +2 -2
  22. data/spec/dummy/config/application.rb +1 -2
  23. data/spec/dummy/config/environments/production.rb +2 -2
  24. data/spec/dummy/config/puma.rb +3 -3
  25. data/spec/dummy/config/routes.rb +1 -1
  26. data/spec/dummy/db/development.sqlite3 +0 -0
  27. data/spec/dummy/db/schema.rb +15 -0
  28. data/spec/dummy/db/test.sqlite3 +0 -0
  29. data/spec/dummy/docs/api/v1/currencies/1.json +1 -0
  30. data/spec/dummy/log/development.log +7 -0
  31. data/spec/dummy/log/test.log +6222 -0
  32. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0-/0-YgeTJSE1q4clM9bSJB_GTox7GlRp-8pHRcAZIX-vI.cache +1 -0
  33. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0W/0WF06LMvNnOAwAIhbHUKSDbNoTH0ZnZYfM5D6cFJSP8.cache +0 -0
  34. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0p/0pnkgDd6zHgJvNGhERovgjytDhjQl9FHDyulU5OfTKA.cache +1 -0
  35. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/11/11EIDKcdhcv1Qb2B-K4b6B74JlSwSAmH1wGQYYXFbAY.cache +0 -0
  36. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2-/2-s7v1oQIHyJZKroEr6XVG9u6mIQXmTbXk_6FObweAY.cache +1 -0
  37. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2d/2dlz6Xz7eXDeN251vx1t_iV2iIMeHLW4FUY0-3_Qbf4.cache +0 -0
  38. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2w/2w9Q5UMXRSM0qlH-ZUCS_2gWhwHsVcONcE38cj3FyIg.cache +1 -0
  39. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4S/4SSbEqCgp27LXTuYGGwEy9lKbXmA3lf6XlieWDOVfwk.cache +1 -0
  40. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4Y/4YLm7kHQYv1TkJgjUB3FnpMjuA_rubfpLFKaP6vPY6s.cache +3 -0
  41. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4s/4sLuSoOXwFzYYx144EDC-3wlBtHw2oAUO7cSBbdkMLA.cache +1 -0
  42. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5o/5oUzhCJ31pgi4LxEgr26BPEBjneLiTN95IZC-teraac.cache +0 -0
  43. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7Y/7Y9eh4iJ0yKjeNtELQUFkcW-oxVkJ-EivdqfMEgYwRs.cache +0 -0
  44. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7i/7iVMJ-kFv8lsO01cy7MdBQ01rjK_BYUKfqDKDx0ZgEY.cache +3 -0
  45. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7u/7uBpLSZhetnlt-so8q0LQ-cbmlBL47cNHR0N8fd5rXg.cache +3 -0
  46. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9O/9OfljynzsfcWxFUENDisgT784iWM-FwSYh0aJWHo4Ys.cache +1 -0
  47. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9Z/9ZwJBXqMugLeN2WUE2INPiwSZMQoUbiyfcqY5Q7y3Hw.cache +1 -0
  48. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9m/9mIl8z9uNbnGMjeRwf69-EmY4Y6Gz7Q8ClzAx60_XXU.cache +3 -0
  49. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9r/9rIr1hVQt8bg3NoQHHbrBc9VKo3PNiMbIdPdtnZ9sM4.cache +3 -0
  50. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9s/9ssciHMad4pq-ESqS_4kVHIBx9E_h6yC7rlrkxrZ7kY.cache +1 -0
  51. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/A0/A0fCSrg4IGqfzU2OAKdZekezZigjw4LFikxWh40czx4.cache +0 -0
  52. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/A1/A1s4AVdRY0z1vvzWpB2MabWFsQZjlpGtBU9Tl4e7mFw.cache +1 -0
  53. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/AE/AEEKSpGPVkAvkRRNENdsVzFxJ04JA6VqhQsoXeQYNa4.cache +1 -0
  54. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Av/AvbyfrHxcpMVMi_qL82k8pdqIJQF67ROnJe7cFx0z08.cache +0 -0
  55. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/B5/B5DoPGUgo5KosvliGBDnemUcWzTpIbOI4IfhQBuIyiw.cache +0 -0
  56. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/B6/B6vXjfwQXtjaR1HXtFbUkIsDbRbEdBfW3UWYyUsrxkg.cache +0 -0
  57. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/BX/BXNxtQFqw2EHejBXuoANupukoqEcYtTL3bEVrrHooHA.cache +1 -0
  58. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Cn/Cn9kkdy05ZeIiZi03Lz3yYRC0HCUK2dt0H0dDBPLamU.cache +2 -0
  59. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Dq/Dq-rR0Hy4wGk3wVIzG1LP6dwT2jNxnkCzmd3i2_H1EA.cache +1 -0
  60. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Dt/DtB0crMCz0L4Jx18as0NHH4RGUe6fQlwOoo4qFDQgmA.cache +0 -0
  61. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/E6/E6xHpdAaL5JnHPDD76tJnpCqw1GoxUGsCgweDugFdYA.cache +3 -0
  62. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/EH/EHbdc6A7jPlfpwDMwBTQvMs0WbDbf8xkmbNcgb37V_k.cache +0 -0
  63. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ec/Ec8EvZH1hrjJyvCW4w_hfC3g1Qo65YEbo0_llb93apY.cache +1 -0
  64. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/F4/F4qdAF7--nUHBDVeSZXDDNL2XBJbJUi8PpNOo15crUI.cache +0 -0
  65. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Fz/FzKCrs3VEITSA2-3Lfd6hW2lvDfcZkNWQlHZaTqDd-g.cache +3 -0
  66. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/G7/G7HHYpGnG-frzjePnv3lIXO4Nj_Oh01c286Xw1C_Wwg.cache +1 -0
  67. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/GX/GXAZx98OFoYDYxv_bI3ppJBPI0gVjmQBZMWMCJDGdV4.cache +0 -0
  68. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HD/HDcT9en9UzbNh2THtkKv5felxziQr6CBMZ47fV6ujAQ.cache +0 -0
  69. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HT/HTllsUlLhdjnADC2J1-T8TrjTbFTM05p06MGOw_6nCE.cache +0 -0
  70. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HV/HVSkf7epetzWwJvd6StbCEGqj7tZhwNIYLFZ3kltRjY.cache +1 -0
  71. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Hr/HrPO4hELPzatgcKib14BiFkkikJYiXlmDG4F8fFX_Xw.cache +1 -0
  72. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Hr/HrQXWtcisSeTOzMtin6sacrTUyocEmMsyjxdYvCVGe4.cache +1 -0
  73. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/IH/IHPBM0rk8pfNaJjLDbree5Il_30FQp1beJ0dBaswGYM.cache +0 -0
  74. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/J5/J504FhjlxKXQ2taCEXTfGauvBIL3MQ7vfWOTNOBA1S0.cache +1 -0
  75. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/J7/J7ZVw2vzrv2LLg_U2VE2gRDLrXWTDn94BVMgiJvlmhA.cache +1 -0
  76. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/JB/JB8pVqQuZ1k3UIeMqish6_nwiemx2FR_Upu8P13Svv4.cache +1 -0
  77. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Jm/JmMzbcpwt70vpUxp8KYIp24YfEIlLppZ6NVVcZiWVhg.cache +1 -0
  78. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Kk/KkJx96BWFcskFHL001xf28iSIbkQHgLJiZ1ET-0lAyA.cache +0 -0
  79. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/L0/L0H8ztcg2-iNtAc3nQNEde7opDc0ITrJ6BUL81PoijE.cache +0 -0
  80. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LK/LKVALuvgPucd4gHmYhW5Y0Qo3lOZkApGVGZTznm9dXs.cache +1 -0
  81. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LS/LS_mP0cjtz0NG2bsjyVqp8-B0MAGOgFTiRLxMSuF5Us.cache +3 -0
  82. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Lb/LbkCKEDegYFbBs2s3KChmP7cfGXJiB40tqGRXJFUzgw.cache +1 -0
  83. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/MP/MPn8nvIKm9qd-k0p9Yg16o9ZEQANB-10IEWW9x2ZP50.cache +1 -0
  84. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/MZ/MZ0FB2bHHkFQ89JUrTdLr1wuD_hsah9ZGvFJy2-WPjk.cache +3 -0
  85. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Mk/MkY5PX7Q8GcpgxwP2QtgOQITsSn9obY6lf8APHXGlPI.cache +0 -0
  86. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/NU/NUCbh9TuPYFA7d3EHfpHzHkfseBE2uBen-LMUiHpExg.cache +2 -0
  87. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/NX/NXJgj1A58fLFTH8ifBC0KybCwhB0d_iWdOXo9wpLfgI.cache +0 -0
  88. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Nj/Nj-WIDqEGSkn4duTZ4owzNHCRhzEKPReKa_CG1AoY2s.cache +1 -0
  89. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Nz/NzrQTIU4VIBSneKd9I-z6C09xEbjUcWAvMShB7MkJrE.cache +0 -0
  90. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/P7/P7VPBLJjYhfwDfMCfB07xX_wLUiWUvM4t1DBH3z0u8g.cache +1 -0
  91. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/PB/PBe15w7ao_0fFXF-Bzm-9PIXPU1DgTzrkxnBGwMe7_k.cache +1 -0
  92. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/PV/PVMpu_1XPQSI3m1K-okgPnGWc09Y3xfL6ZBRvxC8IJw.cache +1 -0
  93. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Pe/PerM5AWwrz4TSVk2WJJjx_7xD9c4q8McJ9eILZYcrNY.cache +1 -0
  94. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Pr/PrDu7z2OvgrAvgrMMYtS-S8rDfjGfWfSZCgcn7cG7so.cache +1 -0
  95. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/QD/QDDLavxwe0rjWlCuyNh3sikcPi4lliJ2Enkjd_INL08.cache +1 -0
  96. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/RD/RDEcxefgDn0XeM5IjoUdC_9X_tP4fMdhBg4_xXd-Mbs.cache +0 -0
  97. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/RW/RWdYiaix_cvD3vIxv66jQBrggw2zBlerUJzest84UUg.cache +0 -0
  98. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/RX/RXvULdttuk0gYaTxF1Ur7to4G9oRuxFtjKEQksQBgAk.cache +1 -0
  99. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ru/RuKdTSR5jziQHc5c-SecFLPe3707epfkvvzuASjQZcE.cache +1 -0
  100. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/S5/S5PLUkysSVqcfxXcey7c3B0nzJxikDReWBZ2wxT8jFA.cache +1 -0
  101. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SM/SMWFaj7_hNXoxtqADEy_g20CNPyFUuHVQNnAI2IZhXI.cache +1 -0
  102. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/S_/S_5gTSmQM72HggIHLVfhMG4eo2Hs27xtEewR6gfxBBs.cache +1 -0
  103. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Sd/Sdn4jzQ9qqxZx_it0QtTXHZR7trudBKSMyX2jB1TUbI.cache +3 -0
  104. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/T9/T9XSZCV6iDtdrGWe4pqUOqAbObAQ9M8xgqUOuK8brDU.cache +0 -0
  105. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/TL/TLaeHIJxVEsv4MqA-Pv3UQvVR4cITPLaqjx0MxObCfc.cache +0 -0
  106. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Tm/Tm9va6u3jYtU9rOl5YEZiAlOzyEayTNSh5HWp9sMXnk.cache +1 -0
  107. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Uh/Uhpj0OS6XP0a9T55f_OQDGny35TNNuqCjU_6eA68ttw.cache +1 -0
  108. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/VK/VKLPoMtPlCR8w-c4NTHIiinWPDJjxtvqJ6ixrELMASg.cache +0 -0
  109. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vj/VjDFPpGMpqAtEbsTM2UEna-gYFWsHzdtOw8GpWhMBoI.cache +1 -0
  110. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vr/VrQmTbHSGAW8LQj-KGdWJno896ZmQPNwufuGvGJ9aw0.cache +1 -0
  111. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vy/VyLqL4-YezncMKaJt68QxLs0yPbpdXrr0D3Wh5mQhwE.cache +0 -0
  112. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/WN/WNllPb_dYm8XKtErkzlWMMzAIfPY0jQmBwz_MR4jvl0.cache +3 -0
  113. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/XG/XG7qqxQLMaozha8r5iG_yH3FZh_nypb4csJ_keNaGVQ.cache +3 -0
  114. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ZJ/ZJoKVLsgS5gEDnIQ8VcZh5CuKZrrqx456p96DxVMqck.cache +1 -0
  115. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_L/_L1v-AP0oCX-_W0xcKKIEeTpnT81sRSHN8y4tilcp9M.cache +2 -0
  116. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_b/_b-kuLcbtrkCfvGqUEswMcxIJGRVchGVciIaGgSPfDk.cache +1 -0
  117. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/a5/a5VnNcqCf4l84twPpWHQ9eAJQ2_aRbKChjAh4E7Tn2Y.cache +0 -0
  118. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/aa/aaVdpnrYpJ1XO7zzrldKWCioU7DhIRKd7P8IkM-kayA.cache +0 -0
  119. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/aw/awlgMuL2tIfNvhE-YzPZgkrrOTZb55Szx1R0SDwbwN8.cache +0 -0
  120. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/az/azMTeNj28HMsKO2c1-UWYG1sqhYuEG7L1QmvslXYi-8.cache +0 -0
  121. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bB/bBW-UpBnZ-Lii4lu2O71WAErQQa3BGBM1KqcpFYLj34.cache +1 -0
  122. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bK/bKkzmpCMNQd_aK9AxeVM1e44SiKT83c8HiOVQxYMBQI.cache +0 -0
  123. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bX/bXuIc3Q7q7YI-0-xw23y_ZSYbInd5lskEU6lYe0xBi0.cache +1 -0
  124. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/b_/b_Itlk9QZZd7Rvf8kcA4yLP1R5Acu7jB-m1xQiSU0qE.cache +2 -0
  125. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/cP/cPh5Vb44F7UysIugDuZ-hWstmKolE1CxTuKeh6McuXg.cache +1 -0
  126. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/cc/cc_GR9HagEI2eAJrZ_H-McHBwM4vc76PpEcWRLgl1RI.cache +1 -0
  127. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/d1/d13MfTIDLah5vvhUBUEXmuQfTrJzaLPkm35CYWQSZGI.cache +1 -0
  128. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/d2/d2spUVS7F5j0CD6RxbPtzwS3P5g1wB4X0RWTD_pHi7k.cache +1 -0
  129. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/d7/d7NEFK_rsHYqX7HJgDHMKT42WHDrNApOp31Ouu9E-mA.cache +3 -0
  130. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dL/dLKhY2WfQ1_OqIb-lUk8CFKjy6MWRioISs2JvxtxY4g.cache +1 -0
  131. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/de/deNx3gHJ0GmVHvykgsvkdreY8KeJ9uckxu_SuAUVTBk.cache +3 -0
  132. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eM/eMG4xtSfyJoiUxo2PTZsskoxK684AUM3Ut6qJVdoVO0.cache +1 -0
  133. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eN/eN_0JlW-UXMaOlMIEy9CwhzeJBcz8M_LMooDjqhkA3M.cache +1 -0
  134. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eP/ePD3-isf_MuhiF7sXRGAlOR7UXQkzPWYZgWDN_Wc-9E.cache +1 -0
  135. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fO/fO1-ENqGxUGg9IjuYA9aM8Mo5NBD-HxxGi9MiOwutbs.cache +0 -0
  136. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fm/fmzK5LBduM0yDbjQoey_bRlz0uy9XoccUWdZPqBFOHk.cache +1 -0
  137. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fx/fxBgxCEaj17M-5jk-8OVoQolN0-PS2BEln9ewMB4K3I.cache +0 -0
  138. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gT/gTTDPSWiS5SGJVqwW1aY4xLcYNWX4QI0r9PtjQVZooU.cache +1 -0
  139. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/h3/h37cNd9yGTSiw_6D6YAeKodhnMe-dNryebqZLZbm8hE.cache +1 -0
  140. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hI/hIuw39mTHrW7p3UeWAjsFEBpZDC-_9uJPoWH5f634IQ.cache +0 -0
  141. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hV/hVhlNVxoYtta41RCDzoAPaMdvd8nLgH4oRPcELREJTQ.cache +0 -0
  142. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hk/hkFx8xXi7kcebX8z_GVDWUZCv85YmQmC_s3G1Mf2Q5I.cache +1 -0
  143. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/i4/i4b4oeQp99cTp130jv2VaD0CGoV9qU4Hs1ZXQlZDxAU.cache +3 -0
  144. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iE/iEJYtsDHKTkniUZJghtEMEQby6WrT2v_BrRjN8Em2tg.cache +1 -0
  145. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iM/iMRNKfq_RgPrZKgAwnfe-kpWeeO4ZIAfnj162mXV4BQ.cache +0 -0
  146. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iY/iY4ZZHPlV7F1VsfN48Rm7XjEC0IEn3OYaerwcuUjGbM.cache +1 -0
  147. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iw/iwlZ-m8qEeXPgzPRA3VwStEK0roX_KZD7e1lCZweQic.cache +0 -0
  148. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/j7/j7rz_1ck-y4uq3CmlEcE5UAHjf-iaIS_6_fenSMv-JM.cache +1 -0
  149. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jL/jLDIRkzUQrhFA4ASjIE-6p8dAj1sFZNNPV82A1nj4lY.cache +1 -0
  150. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/je/jeGZhnebAZftxwziYt7Fm0ok4d2L56LmHdZ0yFGJaRA.cache +1 -0
  151. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jz/jzvC5-2gSn7hy4Keaj6Vj2RK5GyNAeIwebkKEoGEH5c.cache +0 -0
  152. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/kc/kcsvOne7bvMCcp1C-Jd_MJTEu4jNrJAc8MCqf--Flto.cache +0 -0
  153. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/l-/l-uWoWjd0tPHQVHNJ77wR_OXyRJ-Yydh28Z63_dLHKo.cache +0 -0
  154. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/la/la1sFsnNYhwXbBG4h7unOSsJqN0NDYXUZs4RMi4LHOI.cache +1 -0
  155. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lv/lvVdScEcEcGwZ-KSjR_D9QH9zNE6-5t4pbIiMX-jWrc.cache +3 -0
  156. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lw/lw_PM_memJuD8Piry94bGueknyfMTBj2lazKQ8-vtGk.cache +1 -0
  157. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/m0/m0z6hySuJvGKjsgaNwUxHi7s8HhkowmfoGqHa5vs0uI.cache +3 -0
  158. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mF/mFB5vMpLLJam7WfNIi-fnxy0my3uyMPo9vee_JTk2ro.cache +0 -0
  159. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mF/mFJ5uJ_4F5SB_QSQtTkv_TOlUaPSOPkvVdJb1UFvgvQ.cache +1 -0
  160. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mX/mX1nlsL_SWOB4y22W5FheRX0YEONKyOY7xUeIvRiHco.cache +2 -0
  161. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mY/mYU0asnUKj51YFYFRFwlybaBqGzrIBaJy10lbMmsIw4.cache +1 -0
  162. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mm/mm_-bhoeg5a2lQneagY-vTgmUvHoT-AEMhfOCaIXsQU.cache +1 -0
  163. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mn/mnGD7PE2q0wWi8NatneeCnbz2ZugGZHku5i7QRN_nLc.cache +1 -0
  164. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nM/nMBlugSLZK18il9mkLPTbj9gozo3KG0MW6Wc8fra-bY.cache +1 -0
  165. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/n_/n_xYqQYhwEMQknb3jFQnjlxxBE9TzMNHCdJ-bEyZFIw.cache +2 -0
  166. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nb/nboQTOTxtI1JR0e0cfDQF9YGwff3oLxM6qxokXuYNF8.cache +3 -0
  167. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache +2 -0
  168. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ot/ot0SI1D1KuRT3iZGTq_gIMFYoSsih0e0D4fg3H4aekY.cache +3 -0
  169. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/p6/p6puEBnM1qHSl2Ndr6t2cVrYFs9S4IBuW8nHQeNUxfA.cache +0 -0
  170. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/q8/q8QRvY7rbG6M3TaL3uRza0-l7oMqSAwGcMfXQiAOPuM.cache +1 -0
  171. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qu/quDcdv-gXd6Jyg_r5T--b8PeoNy7KKRR_tQq3XSrvBs.cache +0 -0
  172. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rT/rT2rpIUwdYmg5Ey3giiQvHWKNOCTIRrAoQs2W9duN6E.cache +3 -0
  173. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rw/rwjDdHETd1PzKjugsZwUy1gf7ALNbHNEqDV6VZGTolU.cache +1 -0
  174. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sU/sUNywFBF1YX6yr16vdrZ-RJtx0xMDkFNnqYTETOkgCA.cache +2 -0
  175. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sc/scRj8QGdjkmzHSBAsmaQ8o7ojzdwGRj3U3-Qvejs8Hs.cache +3 -0
  176. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sd/sdiI0Gloh2Ap_GU86Dir8Y1ltm-mK0_8w9gxX6ZU9F4.cache +1 -0
  177. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sl/slB_TA5SgiNpSxq-kyfgVM9rptBh1YJLlCOqTM_tM2E.cache +3 -0
  178. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/tU/tUYzErP5kAHsf5aSIS6ahup8QT8H7vcnapsSIlpRgQE.cache +1 -0
  179. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/u7/u7vX1nd--W4ZiVjTomv_jZSIxdmZ9_lgPNZuLQjH8YU.cache +1 -0
  180. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wV/wVyY6EpMTmaaHCSLoC72zrVGUcWlN1L-4Kbuuzpa2dY.cache +1 -0
  181. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wo/woIF0cutiiewF7Q38dvqVKxZMQ6N9AUQhxI7zcqZHA4.cache +0 -0
  182. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/x7/x7PYh8DJvPykcEqpVab2vcY9-GFz-3cqtoMlRAu94Uc.cache +2 -0
  183. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xx/xxtexGOCu75DPQnYX4w-_VG49_PtHlPMNZ6WvxmVmIk.cache +0 -0
  184. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yD/yDwSJAQJBiUJ6HpVs07ibCmqxsSjpI01dcHlIH1Ui8A.cache +1 -0
  185. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yr/yrSIA1GW7o_iScyIR-0R-p4KY2bWXbGODJHWbJB8z6Y.cache +0 -0
  186. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zL/zLeXEVtRZBgObSTvs7c6QwCRC_GUMytpBRN_BTgMoHg.cache +0 -0
  187. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zN/zNHarSpBPQWOIA--ZaBPxlXcAuCkpH8zag4p3pHcbq0.cache +0 -0
  188. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zh/zhe6BGB9ZKbZMFeVbOqyz7XGEZdC2GjY7tSLUzv9HYY.cache +3 -0
  189. data/spec/dummy/tmp/capybara/capybara-201707031600317624819040.png +0 -0
  190. data/spec/dummy/tmp/capybara/capybara-201707041454378591419470.png +0 -0
  191. data/spec/dummy/tmp/capybara/capybara-201707131126067941049866.png +0 -0
  192. data/spec/dummy/tmp/capybara/capybara-201707131130322610601531.png +0 -0
  193. data/spec/dummy/tmp/capybara/capybara-20170713113119989978693.png +0 -0
  194. data/spec/dummy/tmp/capybara/capybara-201707191233458908880943.png +0 -0
  195. data/spec/dummy/tmp/capybara/capybara-201707191240548278955091.png +0 -0
  196. data/spec/dummy/tmp/capybara/capybara-201707191248343514596020.png +0 -0
  197. data/spec/dummy/tmp/capybara/capybara-201707191445233726304325.png +0 -0
  198. data/spec/features/apidoco/documentation_attributes/end_point_spec.rb +17 -0
  199. data/spec/features/apidoco/documentation_attributes/examples_spec.rb +40 -0
  200. data/spec/features/apidoco/documentation_attributes/http_method_spec.rb +17 -0
  201. data/spec/features/apidoco/documentation_attributes/name_spec.rb +16 -0
  202. data/spec/features/apidoco/documentation_attributes/params_spec.rb +45 -0
  203. data/spec/features/apidoco/documentation_attributes/published_spec.rb +31 -0
  204. data/spec/generators/{apidoco_generator_spec.rb → apidoco/apidoco_generator_spec.rb} +1 -1
  205. data/spec/rails_helper.rb +4 -4
  206. data/spec/spec_helper.rb +5 -6
  207. data/spec/support/capybara.rb +4 -0
  208. data/spec/support/documentation_builder.rb +9 -0
  209. metadata +376 -6
  210. data/app/assets/javascripts/apidoco/directives/angular_scroll.min.js +0 -1
  211. data/lib/apidoco/resource_documentation.rb +0 -28
@@ -1,7 +1,8 @@
1
1
  <div ng-controller="DocumentationController"
2
- ng-init="jsonItem = <%= @data.to_json %>;
2
+ ng-init="data = <%= @data.to_json %>;
3
3
  documentationVersions = <%= documentation_versions(@vp).to_json %>;
4
- currentVersion = '<%= @documentation.version %>';">
4
+ currentVersion = '<%= @documentation.version %>';
5
+ documentationArray = <%= build_documentation_array(@data[:apis]).to_json %>;">
5
6
  <!-- Sidebar -->
6
7
  <%= render partial: "side_bar" %>
7
8
  <!-- Page Content -->
@@ -17,92 +18,135 @@
17
18
  </div>
18
19
  </div><br />
19
20
 
20
- <div ng-if="jsonItem.base_url" class="row">
21
+ <div ng-if="data.base_url" class="row">
21
22
  <div class="col-lg-12 text_wheat">
22
23
  <strong>BASE URL</strong>
23
- {{ jsonItem.base_url }}
24
+ {{ data.base_url }}
24
25
  </div>
25
26
  </div><br />
26
27
 
27
- <div class="row api_details" ng-repeat="x in jsonItem.apis | filter: searchKeyword" id="api_{{$index}}">
28
+ <div class="row api_details" ng-repeat="x in documentationArray | filter: searchKeyword" id="{{x.id}}">
28
29
  <div class="col-lg-12">
29
- <h4>{{x.name}}</h4>
30
- <div class="row mt-10">
31
- <div class="col-lg-2 text-right">End Point:</div>
32
- <div class="col-lg-5">
33
- <div class="input-group">
34
- <input type="text" readonly class="form-control" value="{{x.end_point}}">
35
- <span class="input-group-btn">
36
- <button class="btn btn-default" type="button" ngclipboard data-clipboard-text="{{x.end_point}}">Copy</button>
37
- </span>
38
- </div>
39
- </div>
40
- </div>
30
+ <ol class="breadcrumb">
31
+ <li ng-repeat="p in x.parents">{{p}}</li>
32
+ </ol>
33
+ <h2 class="section-title">{{x.name}}</h4>
41
34
 
42
- <div class="row mt-10">
43
- <div class="col-lg-2 text-right">HTTP Method:</div>
44
- <div class="col-lg-10">{{x.http_method}}</div>
45
- </div>
35
+ <p ng-if="x.description">{{x.description}}</p>
46
36
 
47
- <div class="row mt-10" ng-if="x.header">
48
- <div class="col-lg-2 text-right">Headers:</div>
49
- <div class="col-lg-10">
50
- <p ng-repeat="(key, value) in x.header">
51
- <code>{{ key }}:
52
- <span>
53
- {{ value }}
37
+ <div class="section-block">
38
+ <h3 class="block-title">Request</h5>
39
+ <div class="row">
40
+ <div class="col-sm-8">
41
+ <div class="input-group">
42
+ <span class="input-group-btn">
43
+ <button class="btn btn-success" type="button"><b>{{x.http_method}}</b></button>
54
44
  </span>
55
- </code>
56
- </p>
45
+ <input type="text" readonly class="form-control" value="{{x.end_point}}">
46
+ </div>
47
+ </div>
48
+ <div class="col-sm-4">
49
+ <button class="btn btn-default btn-sm mt-2" type="button" ngclipboard data-clipboard-text="{{x.end_point}}">Copy</button>
50
+ </div>
57
51
  </div>
58
52
  </div>
59
53
 
60
- <div class="row mt-10" ng-if="x.params && x.params.length > 0">
61
- <div class="col-lg-2 text-right">Params:</div>
62
- <div class="col-lg-10">
63
- <p ng-repeat="param in x.params">
64
- <code>{{param.key}}
65
- <span ng-if="param.required">
66
- #{{param.required ? 'required' : 'optional'}}</span>
67
- <span ng-if="param.type">type: {{param.type}}</span>
68
- </code>
69
- </p>
54
+ <div class="section-block" ng-if="x.header">
55
+ <h3 class="block-title">Headers</h5>
56
+ <div class="table-responsive">
57
+ <table class="table">
58
+ <thead>
59
+ <tr>
60
+ <td>Name</td>
61
+ <td>Description</td>
62
+ </tr>
63
+ </thead>
64
+ <tbody>
65
+ <tr ng-repeat="(key, value) in x.header">
66
+ <td>
67
+ <code>{{key}}</code>
68
+ </td>
69
+ <td>
70
+ <code>{{value}}</code>
71
+ </td>
72
+ </tr>
73
+ </tbody>
74
+ </table>
70
75
  </div>
71
76
  </div>
72
77
 
73
- <div class="row mt-10" ng-if="x.notes">
74
- <div class="col-lg-2 text-right">Notes:</div>
75
- <div class="col-lg-10">
76
- <p ng-repeat="note in x.notes">
77
- {{ note }}
78
- </p>
78
+ <div class="section-block" ng-if="x.params && x.params.length > 0">
79
+ <h3 class="block-title">Parameters</h5>
80
+ <div class="table-responsive">
81
+ <table class="table">
82
+ <thead>
83
+ <tr>
84
+ <td>Parameter Name</td>
85
+ <td></td>
86
+ <td>Data Type</td>
87
+ <td>Description</td>
88
+ <td></td>
89
+ </tr>
90
+ </thead>
91
+ <tbody>
92
+ <tr ng-repeat="param in x.params">
93
+ <td>
94
+ <code>{{param.key}}</code>
95
+ </td>
96
+ <td>
97
+ <button class="btn btn-xs btn-danger" ng-if="param.required">required</button>
98
+ <button class="btn btn-xs btn-primary" ng-if="!param.required">optional</button>
99
+ </td>
100
+ <td>{{param.type}}</td>
101
+ <td>{{param.description}}</td>
102
+ <td>
103
+ {{param.notes}}
104
+ <p ng-if="param.validations">
105
+ <b>Validations:</b><br>
106
+ <span ng-repeat="validation in param.validations">{{validation}}<br></span>
107
+ </p>
108
+ </td>
109
+ </tr>
110
+ </tbody>
111
+ </table>
79
112
  </div>
80
113
  </div>
81
114
 
82
- <div class="row mt-10" ng-if="x.examples && x.examples.length > 0">
83
- <div class="col-lg-2 text-right">Examples:</div>
84
- <div class="col-lg-10">
85
- <div ng-repeat="example in x.examples">
86
- <div ng-if="example.request">
87
- <div class="panel panel-default">
88
- <div class="panel-heading">
89
- <h4 class="panel-title">Request</h4>
90
- </div>
91
- <div class="panel-body">
92
- <button class="btn btn-default btn-sm pull-right" ngclipboard data-clipboard-text="{{example.request}}">Copy</button>
93
- <div jq-json-viewer data="example.request"></div>
115
+ <div class="section-block" ng-if="x.notes">
116
+ <h3 class="block-title">Notes</h5>
117
+ <p ng-repeat="note in x.notes">
118
+ {{ note }}
119
+ </p>
120
+ </div>
121
+
122
+ <div class="section-block" ng-if="x.examples && x.examples.length > 0">
123
+ <h3 class="block-title">Examples</h5>
124
+ <div class="rows" ng-repeat="example in x.examples">
125
+ <div class="col-sm-6" ng-if="example.request">
126
+ <div class="panel panel-default">
127
+ <div class="panel-heading">
128
+ <h4 class="panel-title">Request</h4>
129
+ </div>
130
+ <div class="panel-body">
131
+ <div class="btn-group pull-right" role="group">
132
+ <button class="btn btn-default btn-sm" ng-click="viewRaw(example.request)">Raw</button>
133
+ <button class="btn btn-default btn-sm" ngclipboard data-clipboard-text="{{example.request}}">Copy</button>
94
134
  </div>
135
+ <div jq-json-viewer data="example.request"></div>
95
136
  </div>
96
137
  </div>
97
- <div ng-if="example.response">
98
- <div class="panel panel-default">
99
- <div class="panel-heading">
100
- <h4 class="panel-title">Response</h4>
101
- </div>
102
- <div class="panel-body">
103
- <button class="btn btn-default btn-sm pull-right" ngclipboard data-clipboard-text="{{example.response}}">Copy</button>
104
- <div jq-json-viewer data="example.response"></div>
138
+ </div>
139
+ <div class="col-sm-6" ng-if="example.response">
140
+ <div class="panel panel-default">
141
+ <div class="panel-heading">
142
+ <h4 class="panel-title">Response</h4>
143
+ </div>
144
+ <div class="panel-body">
145
+ <div class="btn-group pull-right" role="group">
146
+ <button class="btn btn-default btn-sm" ng-click="viewRaw(example.response)">Raw</button>
147
+ <button class="btn btn-default btn-sm" ngclipboard data-clipboard-text="{{example.response}}">Copy</button>
105
148
  </div>
149
+ <div jq-json-viewer data="example.response"></div>
106
150
  </div>
107
151
  </div>
108
152
  </div>
@@ -0,0 +1,31 @@
1
+ module Apidoco
2
+ # Parse a folder and find all the sub folders and files
3
+ class FileParser
4
+ attr_accessor :file, :parents
5
+
6
+ def initialize(file, parents:)
7
+ self.file = file
8
+ self.parents = parents
9
+ end
10
+
11
+ def as_json
12
+ content.merge(parents: parents, id: id)
13
+ end
14
+
15
+ def content
16
+ JSON.parse(File.read(file))
17
+ end
18
+
19
+ def id
20
+ parents.push(content['name']).join('-').downcase.delete(' ')
21
+ end
22
+
23
+ def published?
24
+ content['published'].nil? || content['published']
25
+ end
26
+
27
+ def sort_order
28
+ content['sort_order'] || 999
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,42 @@
1
+ module Apidoco
2
+ # Parse a folder and find all the sub folders and files
3
+ class FolderParser
4
+ attr_accessor :directory, :parents
5
+
6
+ def initialize(directory, parents: [])
7
+ self.directory = directory
8
+ self.parents = parents
9
+ end
10
+
11
+ def as_json
12
+ {
13
+ is_folder: true,
14
+ name: basename,
15
+ children: children.select(&:published?).sort_by(&:sort_order).map(&:as_json)
16
+ }
17
+ end
18
+
19
+ def basename
20
+ directory.basename.to_s.titleize
21
+ end
22
+
23
+ def children
24
+ directory.children.map do |child|
25
+ hierrarchy = parents + [basename]
26
+ if child.directory?
27
+ Apidoco::FolderParser.new(child, parents: hierrarchy)
28
+ else
29
+ Apidoco::FileParser.new(child, parents: hierrarchy)
30
+ end
31
+ end
32
+ end
33
+
34
+ def published?
35
+ true
36
+ end
37
+
38
+ def sort_order
39
+ 999
40
+ end
41
+ end
42
+ end
@@ -1,3 +1,3 @@
1
1
  module Apidoco
2
- VERSION = '1.3.0'
2
+ VERSION = '1.5.0'
3
3
  end
@@ -15,17 +15,15 @@ module Apidoco
15
15
  {
16
16
  name: name,
17
17
  base_url: '',
18
- apis: resource_documentations.flat_map(&:as_json)
18
+ apis: documentations.flat_map(&:as_json)
19
19
  }
20
20
  end
21
21
 
22
- def resource_documentations
23
- resource_directories.map { |dir| ResourceDocumentation.new(dir) }
22
+ def documentations
23
+ documentation_directories.map { |dir| FolderParser.new(dir) }
24
24
  end
25
25
 
26
- protected
27
-
28
- def resource_directories
26
+ def documentation_directories
29
27
  directory.children.select(&:directory?)
30
28
  end
31
29
  end
@@ -4,7 +4,7 @@ module Apidoco
4
4
  attr_accessor :base_path
5
5
 
6
6
  def initialize
7
- self.base_path = Pathname('docs').join('api')
7
+ self.base_path = Rails.root.join('docs', 'api')
8
8
  end
9
9
 
10
10
  def documentations
data/lib/apidoco.rb CHANGED
@@ -1,9 +1,10 @@
1
- require "angularjs-rails"
1
+ require 'angularjs-rails'
2
2
 
3
- require "apidoco/engine"
4
- require "apidoco/version_parser"
5
- require "apidoco/version_documentation"
6
- require "apidoco/resource_documentation"
3
+ require 'apidoco/engine'
4
+ require 'apidoco/version_parser'
5
+ require 'apidoco/version_documentation'
6
+ require 'apidoco/folder_parser'
7
+ require 'apidoco/file_parser'
7
8
 
8
9
  module Apidoco
9
10
  mattr_accessor :auth_name, :auth_password
@@ -21,7 +21,7 @@ class ApidocoGenerator < Rails::Generators::Base
21
21
  def actions(args)
22
22
  return args if args.present?
23
23
 
24
- [:show, :index, :create, :update, :destroy]
24
+ %i[show index create update destroy]
25
25
  end
26
26
 
27
27
  def default_end_points_with_method(action)
@@ -69,11 +69,11 @@ class ApidocoGenerator < Rails::Generators::Base
69
69
  <<-FILE
70
70
  {
71
71
  "published": true,
72
- "sort_order": 100,
73
72
  "name": "#{name}",
74
73
  "end_point": "#{resource}#{endpoint_with_method[:endpoint]}",
75
74
  "http_method": "#{endpoint_with_method[:method]}",
76
75
  "params": [],
76
+ "header": {},
77
77
  "examples": [{
78
78
  "request": {},
79
79
  "response": {}
@@ -3,7 +3,7 @@ require_relative 'boot'
3
3
  require 'rails/all'
4
4
 
5
5
  Bundler.require(*Rails.groups)
6
- require "apidoco"
6
+ require 'apidoco'
7
7
 
8
8
  module Dummy
9
9
  class Application < Rails::Application
@@ -12,4 +12,3 @@ module Dummy
12
12
  # -- all .rb files in that directory are automatically loaded.
13
13
  end
14
14
  end
15
-
@@ -47,7 +47,7 @@ Rails.application.configure do
47
47
  config.log_level = :debug
48
48
 
49
49
  # Prepend all log lines with the following tags.
50
- config.log_tags = [ :request_id ]
50
+ config.log_tags = [:request_id]
51
51
 
52
52
  # Use a different cache store in production.
53
53
  # config.cache_store = :mem_cache_store
@@ -75,7 +75,7 @@ Rails.application.configure do
75
75
  # require 'syslog/logger'
76
76
  # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
77
77
 
78
- if ENV["RAILS_LOG_TO_STDOUT"].present?
78
+ if ENV['RAILS_LOG_TO_STDOUT'].present?
79
79
  logger = ActiveSupport::Logger.new(STDOUT)
80
80
  logger.formatter = config.log_formatter
81
81
  config.logger = ActiveSupport::TaggedLogging.new(logger)
@@ -4,16 +4,16 @@
4
4
  # the maximum value specified for Puma. Default is set to 5 threads for minimum
5
5
  # and maximum, this matches the default thread size of Active Record.
6
6
  #
7
- threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i
7
+ threads_count = ENV.fetch('RAILS_MAX_THREADS') { 5 }.to_i
8
8
  threads threads_count, threads_count
9
9
 
10
10
  # Specifies the `port` that Puma will listen on to receive requests, default is 3000.
11
11
  #
12
- port ENV.fetch("PORT") { 3000 }
12
+ port ENV.fetch('PORT') { 3000 }
13
13
 
14
14
  # Specifies the `environment` that Puma will run in.
15
15
  #
16
- environment ENV.fetch("RAILS_ENV") { "development" }
16
+ environment ENV.fetch('RAILS_ENV') { 'development' }
17
17
 
18
18
  # Specifies the number of `workers` to boot in clustered mode.
19
19
  # Workers are forked webserver processes. If using threads and workers together
@@ -1,3 +1,3 @@
1
1
  Rails.application.routes.draw do
2
- mount Apidoco::Engine => "/apidoco"
2
+ mount Apidoco::Engine => '/apidoco'
3
3
  end
Binary file
@@ -0,0 +1,15 @@
1
+ # This file is auto-generated from the current state of the database. Instead
2
+ # of editing this file, please use the migrations feature of Active Record to
3
+ # incrementally modify your database, and then regenerate this schema definition.
4
+ #
5
+ # Note that this schema.rb definition is the authoritative source for your
6
+ # database schema. If you need to create the application database on another
7
+ # system, you should be using db:schema:load, not running all the migrations
8
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
9
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
10
+ #
11
+ # It's strongly recommended that you check this file into your version control system.
12
+
13
+ ActiveRecord::Schema.define(version: 0) do
14
+
15
+ end
Binary file
@@ -0,0 +1 @@
1
+ {"published":true,"name":"Create Currency","http_method":"/currencies"}
@@ -0,0 +1,7 @@
1
+  (87.2ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)
2
+  (82.6ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
3
+ ActiveRecord::InternalMetadata Load (0.3ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ? [["key", :environment], ["LIMIT", 1]]
4
+  (0.1ms) begin transaction
5
+ SQL (0.3ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["key", "environment"], ["value", "development"], ["created_at", 2017-06-30 06:48:39 UTC], ["updated_at", 2017-06-30 06:48:39 UTC]]
6
+  (86.8ms) commit transaction
7
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"