apidoco 1.3.0 → 1.5.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 (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"