apidoco 1.3.0 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +70 -61
- data/Rakefile +2 -2
- data/app/assets/javascripts/apidoco/apidoco_app.js +1 -3
- data/app/assets/javascripts/apidoco/application.js +0 -1
- data/app/assets/javascripts/apidoco/controllers/documentations_controller.js +9 -0
- data/app/assets/javascripts/apidoco/directives/jq_json_viewer.js +3 -0
- data/app/assets/stylesheets/apidoco/custom.css +23 -1
- data/app/assets/stylesheets/apidoco/helpers.css +5 -0
- data/app/assets/stylesheets/apidoco/simple-sidebar.css +17 -12
- data/app/controllers/apidoco/apis_controller.rb +1 -1
- data/app/helpers/apidoco/application_helper.rb +12 -0
- data/app/views/apidoco/apis/_side_bar.html.erb +10 -2
- data/app/views/apidoco/apis/show.html.erb +110 -66
- data/lib/apidoco/file_parser.rb +31 -0
- data/lib/apidoco/folder_parser.rb +42 -0
- data/lib/apidoco/version.rb +1 -1
- data/lib/apidoco/version_documentation.rb +4 -6
- data/lib/apidoco/version_parser.rb +1 -1
- data/lib/apidoco.rb +6 -5
- data/lib/generators/apidoco_generator.rb +2 -2
- data/spec/dummy/config/application.rb +1 -2
- data/spec/dummy/config/environments/production.rb +2 -2
- data/spec/dummy/config/puma.rb +3 -3
- data/spec/dummy/config/routes.rb +1 -1
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/schema.rb +15 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/docs/api/v1/currencies/1.json +1 -0
- data/spec/dummy/log/development.log +7 -0
- data/spec/dummy/log/test.log +6222 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0-/0-YgeTJSE1q4clM9bSJB_GTox7GlRp-8pHRcAZIX-vI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0W/0WF06LMvNnOAwAIhbHUKSDbNoTH0ZnZYfM5D6cFJSP8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0p/0pnkgDd6zHgJvNGhERovgjytDhjQl9FHDyulU5OfTKA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/11/11EIDKcdhcv1Qb2B-K4b6B74JlSwSAmH1wGQYYXFbAY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2-/2-s7v1oQIHyJZKroEr6XVG9u6mIQXmTbXk_6FObweAY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2d/2dlz6Xz7eXDeN251vx1t_iV2iIMeHLW4FUY0-3_Qbf4.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2w/2w9Q5UMXRSM0qlH-ZUCS_2gWhwHsVcONcE38cj3FyIg.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4S/4SSbEqCgp27LXTuYGGwEy9lKbXmA3lf6XlieWDOVfwk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4Y/4YLm7kHQYv1TkJgjUB3FnpMjuA_rubfpLFKaP6vPY6s.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4s/4sLuSoOXwFzYYx144EDC-3wlBtHw2oAUO7cSBbdkMLA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5o/5oUzhCJ31pgi4LxEgr26BPEBjneLiTN95IZC-teraac.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7Y/7Y9eh4iJ0yKjeNtELQUFkcW-oxVkJ-EivdqfMEgYwRs.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7i/7iVMJ-kFv8lsO01cy7MdBQ01rjK_BYUKfqDKDx0ZgEY.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7u/7uBpLSZhetnlt-so8q0LQ-cbmlBL47cNHR0N8fd5rXg.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9O/9OfljynzsfcWxFUENDisgT784iWM-FwSYh0aJWHo4Ys.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9Z/9ZwJBXqMugLeN2WUE2INPiwSZMQoUbiyfcqY5Q7y3Hw.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9m/9mIl8z9uNbnGMjeRwf69-EmY4Y6Gz7Q8ClzAx60_XXU.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9r/9rIr1hVQt8bg3NoQHHbrBc9VKo3PNiMbIdPdtnZ9sM4.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9s/9ssciHMad4pq-ESqS_4kVHIBx9E_h6yC7rlrkxrZ7kY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/A0/A0fCSrg4IGqfzU2OAKdZekezZigjw4LFikxWh40czx4.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/A1/A1s4AVdRY0z1vvzWpB2MabWFsQZjlpGtBU9Tl4e7mFw.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/AE/AEEKSpGPVkAvkRRNENdsVzFxJ04JA6VqhQsoXeQYNa4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Av/AvbyfrHxcpMVMi_qL82k8pdqIJQF67ROnJe7cFx0z08.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/B5/B5DoPGUgo5KosvliGBDnemUcWzTpIbOI4IfhQBuIyiw.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/B6/B6vXjfwQXtjaR1HXtFbUkIsDbRbEdBfW3UWYyUsrxkg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/BX/BXNxtQFqw2EHejBXuoANupukoqEcYtTL3bEVrrHooHA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Cn/Cn9kkdy05ZeIiZi03Lz3yYRC0HCUK2dt0H0dDBPLamU.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Dq/Dq-rR0Hy4wGk3wVIzG1LP6dwT2jNxnkCzmd3i2_H1EA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Dt/DtB0crMCz0L4Jx18as0NHH4RGUe6fQlwOoo4qFDQgmA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/E6/E6xHpdAaL5JnHPDD76tJnpCqw1GoxUGsCgweDugFdYA.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/EH/EHbdc6A7jPlfpwDMwBTQvMs0WbDbf8xkmbNcgb37V_k.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ec/Ec8EvZH1hrjJyvCW4w_hfC3g1Qo65YEbo0_llb93apY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/F4/F4qdAF7--nUHBDVeSZXDDNL2XBJbJUi8PpNOo15crUI.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Fz/FzKCrs3VEITSA2-3Lfd6hW2lvDfcZkNWQlHZaTqDd-g.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/G7/G7HHYpGnG-frzjePnv3lIXO4Nj_Oh01c286Xw1C_Wwg.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/GX/GXAZx98OFoYDYxv_bI3ppJBPI0gVjmQBZMWMCJDGdV4.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HD/HDcT9en9UzbNh2THtkKv5felxziQr6CBMZ47fV6ujAQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HT/HTllsUlLhdjnADC2J1-T8TrjTbFTM05p06MGOw_6nCE.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HV/HVSkf7epetzWwJvd6StbCEGqj7tZhwNIYLFZ3kltRjY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Hr/HrPO4hELPzatgcKib14BiFkkikJYiXlmDG4F8fFX_Xw.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Hr/HrQXWtcisSeTOzMtin6sacrTUyocEmMsyjxdYvCVGe4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/IH/IHPBM0rk8pfNaJjLDbree5Il_30FQp1beJ0dBaswGYM.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/J5/J504FhjlxKXQ2taCEXTfGauvBIL3MQ7vfWOTNOBA1S0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/J7/J7ZVw2vzrv2LLg_U2VE2gRDLrXWTDn94BVMgiJvlmhA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/JB/JB8pVqQuZ1k3UIeMqish6_nwiemx2FR_Upu8P13Svv4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Jm/JmMzbcpwt70vpUxp8KYIp24YfEIlLppZ6NVVcZiWVhg.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Kk/KkJx96BWFcskFHL001xf28iSIbkQHgLJiZ1ET-0lAyA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/L0/L0H8ztcg2-iNtAc3nQNEde7opDc0ITrJ6BUL81PoijE.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LK/LKVALuvgPucd4gHmYhW5Y0Qo3lOZkApGVGZTznm9dXs.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LS/LS_mP0cjtz0NG2bsjyVqp8-B0MAGOgFTiRLxMSuF5Us.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Lb/LbkCKEDegYFbBs2s3KChmP7cfGXJiB40tqGRXJFUzgw.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/MP/MPn8nvIKm9qd-k0p9Yg16o9ZEQANB-10IEWW9x2ZP50.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/MZ/MZ0FB2bHHkFQ89JUrTdLr1wuD_hsah9ZGvFJy2-WPjk.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Mk/MkY5PX7Q8GcpgxwP2QtgOQITsSn9obY6lf8APHXGlPI.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/NU/NUCbh9TuPYFA7d3EHfpHzHkfseBE2uBen-LMUiHpExg.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/NX/NXJgj1A58fLFTH8ifBC0KybCwhB0d_iWdOXo9wpLfgI.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Nj/Nj-WIDqEGSkn4duTZ4owzNHCRhzEKPReKa_CG1AoY2s.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Nz/NzrQTIU4VIBSneKd9I-z6C09xEbjUcWAvMShB7MkJrE.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/P7/P7VPBLJjYhfwDfMCfB07xX_wLUiWUvM4t1DBH3z0u8g.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/PB/PBe15w7ao_0fFXF-Bzm-9PIXPU1DgTzrkxnBGwMe7_k.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/PV/PVMpu_1XPQSI3m1K-okgPnGWc09Y3xfL6ZBRvxC8IJw.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Pe/PerM5AWwrz4TSVk2WJJjx_7xD9c4q8McJ9eILZYcrNY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Pr/PrDu7z2OvgrAvgrMMYtS-S8rDfjGfWfSZCgcn7cG7so.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/QD/QDDLavxwe0rjWlCuyNh3sikcPi4lliJ2Enkjd_INL08.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/RD/RDEcxefgDn0XeM5IjoUdC_9X_tP4fMdhBg4_xXd-Mbs.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/RW/RWdYiaix_cvD3vIxv66jQBrggw2zBlerUJzest84UUg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/RX/RXvULdttuk0gYaTxF1Ur7to4G9oRuxFtjKEQksQBgAk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ru/RuKdTSR5jziQHc5c-SecFLPe3707epfkvvzuASjQZcE.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/S5/S5PLUkysSVqcfxXcey7c3B0nzJxikDReWBZ2wxT8jFA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SM/SMWFaj7_hNXoxtqADEy_g20CNPyFUuHVQNnAI2IZhXI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/S_/S_5gTSmQM72HggIHLVfhMG4eo2Hs27xtEewR6gfxBBs.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Sd/Sdn4jzQ9qqxZx_it0QtTXHZR7trudBKSMyX2jB1TUbI.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/T9/T9XSZCV6iDtdrGWe4pqUOqAbObAQ9M8xgqUOuK8brDU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/TL/TLaeHIJxVEsv4MqA-Pv3UQvVR4cITPLaqjx0MxObCfc.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Tm/Tm9va6u3jYtU9rOl5YEZiAlOzyEayTNSh5HWp9sMXnk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Uh/Uhpj0OS6XP0a9T55f_OQDGny35TNNuqCjU_6eA68ttw.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/VK/VKLPoMtPlCR8w-c4NTHIiinWPDJjxtvqJ6ixrELMASg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vj/VjDFPpGMpqAtEbsTM2UEna-gYFWsHzdtOw8GpWhMBoI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vr/VrQmTbHSGAW8LQj-KGdWJno896ZmQPNwufuGvGJ9aw0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vy/VyLqL4-YezncMKaJt68QxLs0yPbpdXrr0D3Wh5mQhwE.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/WN/WNllPb_dYm8XKtErkzlWMMzAIfPY0jQmBwz_MR4jvl0.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/XG/XG7qqxQLMaozha8r5iG_yH3FZh_nypb4csJ_keNaGVQ.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ZJ/ZJoKVLsgS5gEDnIQ8VcZh5CuKZrrqx456p96DxVMqck.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_L/_L1v-AP0oCX-_W0xcKKIEeTpnT81sRSHN8y4tilcp9M.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_b/_b-kuLcbtrkCfvGqUEswMcxIJGRVchGVciIaGgSPfDk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/a5/a5VnNcqCf4l84twPpWHQ9eAJQ2_aRbKChjAh4E7Tn2Y.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/aa/aaVdpnrYpJ1XO7zzrldKWCioU7DhIRKd7P8IkM-kayA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/aw/awlgMuL2tIfNvhE-YzPZgkrrOTZb55Szx1R0SDwbwN8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/az/azMTeNj28HMsKO2c1-UWYG1sqhYuEG7L1QmvslXYi-8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bB/bBW-UpBnZ-Lii4lu2O71WAErQQa3BGBM1KqcpFYLj34.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bK/bKkzmpCMNQd_aK9AxeVM1e44SiKT83c8HiOVQxYMBQI.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bX/bXuIc3Q7q7YI-0-xw23y_ZSYbInd5lskEU6lYe0xBi0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/b_/b_Itlk9QZZd7Rvf8kcA4yLP1R5Acu7jB-m1xQiSU0qE.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/cP/cPh5Vb44F7UysIugDuZ-hWstmKolE1CxTuKeh6McuXg.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/cc/cc_GR9HagEI2eAJrZ_H-McHBwM4vc76PpEcWRLgl1RI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/d1/d13MfTIDLah5vvhUBUEXmuQfTrJzaLPkm35CYWQSZGI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/d2/d2spUVS7F5j0CD6RxbPtzwS3P5g1wB4X0RWTD_pHi7k.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/d7/d7NEFK_rsHYqX7HJgDHMKT42WHDrNApOp31Ouu9E-mA.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dL/dLKhY2WfQ1_OqIb-lUk8CFKjy6MWRioISs2JvxtxY4g.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/de/deNx3gHJ0GmVHvykgsvkdreY8KeJ9uckxu_SuAUVTBk.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eM/eMG4xtSfyJoiUxo2PTZsskoxK684AUM3Ut6qJVdoVO0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eN/eN_0JlW-UXMaOlMIEy9CwhzeJBcz8M_LMooDjqhkA3M.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eP/ePD3-isf_MuhiF7sXRGAlOR7UXQkzPWYZgWDN_Wc-9E.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fO/fO1-ENqGxUGg9IjuYA9aM8Mo5NBD-HxxGi9MiOwutbs.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fm/fmzK5LBduM0yDbjQoey_bRlz0uy9XoccUWdZPqBFOHk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fx/fxBgxCEaj17M-5jk-8OVoQolN0-PS2BEln9ewMB4K3I.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gT/gTTDPSWiS5SGJVqwW1aY4xLcYNWX4QI0r9PtjQVZooU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/h3/h37cNd9yGTSiw_6D6YAeKodhnMe-dNryebqZLZbm8hE.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hI/hIuw39mTHrW7p3UeWAjsFEBpZDC-_9uJPoWH5f634IQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hV/hVhlNVxoYtta41RCDzoAPaMdvd8nLgH4oRPcELREJTQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hk/hkFx8xXi7kcebX8z_GVDWUZCv85YmQmC_s3G1Mf2Q5I.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/i4/i4b4oeQp99cTp130jv2VaD0CGoV9qU4Hs1ZXQlZDxAU.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iE/iEJYtsDHKTkniUZJghtEMEQby6WrT2v_BrRjN8Em2tg.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iM/iMRNKfq_RgPrZKgAwnfe-kpWeeO4ZIAfnj162mXV4BQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iY/iY4ZZHPlV7F1VsfN48Rm7XjEC0IEn3OYaerwcuUjGbM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iw/iwlZ-m8qEeXPgzPRA3VwStEK0roX_KZD7e1lCZweQic.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/j7/j7rz_1ck-y4uq3CmlEcE5UAHjf-iaIS_6_fenSMv-JM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jL/jLDIRkzUQrhFA4ASjIE-6p8dAj1sFZNNPV82A1nj4lY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/je/jeGZhnebAZftxwziYt7Fm0ok4d2L56LmHdZ0yFGJaRA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jz/jzvC5-2gSn7hy4Keaj6Vj2RK5GyNAeIwebkKEoGEH5c.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/kc/kcsvOne7bvMCcp1C-Jd_MJTEu4jNrJAc8MCqf--Flto.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/l-/l-uWoWjd0tPHQVHNJ77wR_OXyRJ-Yydh28Z63_dLHKo.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/la/la1sFsnNYhwXbBG4h7unOSsJqN0NDYXUZs4RMi4LHOI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lv/lvVdScEcEcGwZ-KSjR_D9QH9zNE6-5t4pbIiMX-jWrc.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lw/lw_PM_memJuD8Piry94bGueknyfMTBj2lazKQ8-vtGk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/m0/m0z6hySuJvGKjsgaNwUxHi7s8HhkowmfoGqHa5vs0uI.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mF/mFB5vMpLLJam7WfNIi-fnxy0my3uyMPo9vee_JTk2ro.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mF/mFJ5uJ_4F5SB_QSQtTkv_TOlUaPSOPkvVdJb1UFvgvQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mX/mX1nlsL_SWOB4y22W5FheRX0YEONKyOY7xUeIvRiHco.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mY/mYU0asnUKj51YFYFRFwlybaBqGzrIBaJy10lbMmsIw4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mm/mm_-bhoeg5a2lQneagY-vTgmUvHoT-AEMhfOCaIXsQU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mn/mnGD7PE2q0wWi8NatneeCnbz2ZugGZHku5i7QRN_nLc.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nM/nMBlugSLZK18il9mkLPTbj9gozo3KG0MW6Wc8fra-bY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/n_/n_xYqQYhwEMQknb3jFQnjlxxBE9TzMNHCdJ-bEyZFIw.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nb/nboQTOTxtI1JR0e0cfDQF9YGwff3oLxM6qxokXuYNF8.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ot/ot0SI1D1KuRT3iZGTq_gIMFYoSsih0e0D4fg3H4aekY.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/p6/p6puEBnM1qHSl2Ndr6t2cVrYFs9S4IBuW8nHQeNUxfA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/q8/q8QRvY7rbG6M3TaL3uRza0-l7oMqSAwGcMfXQiAOPuM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qu/quDcdv-gXd6Jyg_r5T--b8PeoNy7KKRR_tQq3XSrvBs.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rT/rT2rpIUwdYmg5Ey3giiQvHWKNOCTIRrAoQs2W9duN6E.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rw/rwjDdHETd1PzKjugsZwUy1gf7ALNbHNEqDV6VZGTolU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sU/sUNywFBF1YX6yr16vdrZ-RJtx0xMDkFNnqYTETOkgCA.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sc/scRj8QGdjkmzHSBAsmaQ8o7ojzdwGRj3U3-Qvejs8Hs.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sd/sdiI0Gloh2Ap_GU86Dir8Y1ltm-mK0_8w9gxX6ZU9F4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sl/slB_TA5SgiNpSxq-kyfgVM9rptBh1YJLlCOqTM_tM2E.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/tU/tUYzErP5kAHsf5aSIS6ahup8QT8H7vcnapsSIlpRgQE.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/u7/u7vX1nd--W4ZiVjTomv_jZSIxdmZ9_lgPNZuLQjH8YU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wV/wVyY6EpMTmaaHCSLoC72zrVGUcWlN1L-4Kbuuzpa2dY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wo/woIF0cutiiewF7Q38dvqVKxZMQ6N9AUQhxI7zcqZHA4.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/x7/x7PYh8DJvPykcEqpVab2vcY9-GFz-3cqtoMlRAu94Uc.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xx/xxtexGOCu75DPQnYX4w-_VG49_PtHlPMNZ6WvxmVmIk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yD/yDwSJAQJBiUJ6HpVs07ibCmqxsSjpI01dcHlIH1Ui8A.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yr/yrSIA1GW7o_iScyIR-0R-p4KY2bWXbGODJHWbJB8z6Y.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zL/zLeXEVtRZBgObSTvs7c6QwCRC_GUMytpBRN_BTgMoHg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zN/zNHarSpBPQWOIA--ZaBPxlXcAuCkpH8zag4p3pHcbq0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zh/zhe6BGB9ZKbZMFeVbOqyz7XGEZdC2GjY7tSLUzv9HYY.cache +3 -0
- data/spec/dummy/tmp/capybara/capybara-201707031600317624819040.png +0 -0
- data/spec/dummy/tmp/capybara/capybara-201707041454378591419470.png +0 -0
- data/spec/dummy/tmp/capybara/capybara-201707131126067941049866.png +0 -0
- data/spec/dummy/tmp/capybara/capybara-201707131130322610601531.png +0 -0
- data/spec/dummy/tmp/capybara/capybara-20170713113119989978693.png +0 -0
- data/spec/dummy/tmp/capybara/capybara-201707191233458908880943.png +0 -0
- data/spec/dummy/tmp/capybara/capybara-201707191240548278955091.png +0 -0
- data/spec/dummy/tmp/capybara/capybara-201707191248343514596020.png +0 -0
- data/spec/dummy/tmp/capybara/capybara-201707191445233726304325.png +0 -0
- data/spec/features/apidoco/documentation_attributes/end_point_spec.rb +17 -0
- data/spec/features/apidoco/documentation_attributes/examples_spec.rb +40 -0
- data/spec/features/apidoco/documentation_attributes/http_method_spec.rb +17 -0
- data/spec/features/apidoco/documentation_attributes/name_spec.rb +16 -0
- data/spec/features/apidoco/documentation_attributes/params_spec.rb +45 -0
- data/spec/features/apidoco/documentation_attributes/published_spec.rb +31 -0
- data/spec/generators/{apidoco_generator_spec.rb → apidoco/apidoco_generator_spec.rb} +1 -1
- data/spec/rails_helper.rb +4 -4
- data/spec/spec_helper.rb +5 -6
- data/spec/support/capybara.rb +4 -0
- data/spec/support/documentation_builder.rb +9 -0
- metadata +376 -6
- data/app/assets/javascripts/apidoco/directives/angular_scroll.min.js +0 -1
- data/lib/apidoco/resource_documentation.rb +0 -28
@@ -1,7 +1,8 @@
|
|
1
1
|
<div ng-controller="DocumentationController"
|
2
|
-
ng-init="
|
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="
|
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
|
-
{{
|
24
|
+
{{ data.base_url }}
|
24
25
|
</div>
|
25
26
|
</div><br />
|
26
27
|
|
27
|
-
<div class="row api_details" ng-repeat="x in
|
28
|
+
<div class="row api_details" ng-repeat="x in documentationArray | filter: searchKeyword" id="{{x.id}}">
|
28
29
|
<div class="col-lg-12">
|
29
|
-
<
|
30
|
-
|
31
|
-
|
32
|
-
|
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
|
-
<
|
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="
|
48
|
-
<
|
49
|
-
<div class="
|
50
|
-
<
|
51
|
-
<
|
52
|
-
<span>
|
53
|
-
{{
|
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
|
-
|
56
|
-
|
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="
|
61
|
-
<
|
62
|
-
<div class="
|
63
|
-
<
|
64
|
-
<
|
65
|
-
<
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
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="
|
74
|
-
<
|
75
|
-
<div class="
|
76
|
-
<
|
77
|
-
|
78
|
-
|
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="
|
83
|
-
<
|
84
|
-
<
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
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
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
</
|
102
|
-
|
103
|
-
|
104
|
-
|
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
|
data/lib/apidoco/version.rb
CHANGED
@@ -15,17 +15,15 @@ module Apidoco
|
|
15
15
|
{
|
16
16
|
name: name,
|
17
17
|
base_url: '',
|
18
|
-
apis:
|
18
|
+
apis: documentations.flat_map(&:as_json)
|
19
19
|
}
|
20
20
|
end
|
21
21
|
|
22
|
-
def
|
23
|
-
|
22
|
+
def documentations
|
23
|
+
documentation_directories.map { |dir| FolderParser.new(dir) }
|
24
24
|
end
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
def resource_directories
|
26
|
+
def documentation_directories
|
29
27
|
directory.children.select(&:directory?)
|
30
28
|
end
|
31
29
|
end
|
data/lib/apidoco.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
require
|
1
|
+
require 'angularjs-rails'
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
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
|
-
[
|
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
|
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 = [
|
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[
|
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)
|
data/spec/dummy/config/puma.rb
CHANGED
@@ -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(
|
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(
|
12
|
+
port ENV.fetch('PORT') { 3000 }
|
13
13
|
|
14
14
|
# Specifies the `environment` that Puma will run in.
|
15
15
|
#
|
16
|
-
environment ENV.fetch(
|
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
|
data/spec/dummy/config/routes.rb
CHANGED
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
|
data/spec/dummy/db/test.sqlite3
CHANGED
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
{"published":true,"name":"Create Currency","http_method":"/currencies"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
[1m[35m (87.2ms)[0m [1m[35mCREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)[0m
|
2
|
+
[1m[35m (82.6ms)[0m [1m[35mCREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)[0m
|
3
|
+
[1m[36mActiveRecord::InternalMetadata Load (0.3ms)[0m [1m[34mSELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ?[0m [["key", :environment], ["LIMIT", 1]]
|
4
|
+
[1m[35m (0.1ms)[0m [1m[36mbegin transaction[0m
|
5
|
+
[1m[35mSQL (0.3ms)[0m [1m[32mINSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?)[0m [["key", "environment"], ["value", "development"], ["created_at", 2017-06-30 06:48:39 UTC], ["updated_at", 2017-06-30 06:48:39 UTC]]
|
6
|
+
[1m[35m (86.8ms)[0m [1m[36mcommit transaction[0m
|
7
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.1ms)[0m [1m[34mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|