easy_api_doc 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +58 -0
  4. data/Rakefile +40 -0
  5. data/app/assets/images/easy_api_doc/favicon.ico +0 -0
  6. data/app/assets/images/easy_api_doc/glyphicons-halflings-white.png +0 -0
  7. data/app/assets/images/easy_api_doc/glyphicons-halflings.png +0 -0
  8. data/app/assets/images/easy_api_doc/loading.gif +0 -0
  9. data/app/assets/javascripts/easy_api_doc/api.js +2 -0
  10. data/app/assets/javascripts/easy_api_doc/application.js +15 -0
  11. data/app/assets/javascripts/easy_api_doc/base64.js +65 -0
  12. data/app/assets/javascripts/easy_api_doc/bootstrap.js +1999 -0
  13. data/app/assets/javascripts/easy_api_doc/documentation.js +223 -0
  14. data/app/assets/javascripts/easy_api_doc/status_codes.js +61 -0
  15. data/app/assets/stylesheets/easy_api_doc/api.css +4 -0
  16. data/app/assets/stylesheets/easy_api_doc/application.css +13 -0
  17. data/app/assets/stylesheets/easy_api_doc/bootstrap.css +6805 -0
  18. data/app/assets/stylesheets/easy_api_doc/documentation.css +47 -0
  19. data/app/controllers/easy_api_doc/api_controller.rb +13 -0
  20. data/app/controllers/easy_api_doc/application_controller.rb +17 -0
  21. data/app/controllers/easy_api_doc/documentation_controller.rb +42 -0
  22. data/app/helpers/easy_api_doc/application_helper.rb +71 -0
  23. data/app/helpers/easy_api_doc/documentation_helper.rb +5 -0
  24. data/app/models/easy_api_doc/action.rb +59 -0
  25. data/app/models/easy_api_doc/api_version.rb +18 -0
  26. data/app/models/easy_api_doc/namespace.rb +14 -0
  27. data/app/models/easy_api_doc/parameter.rb +49 -0
  28. data/app/models/easy_api_doc/resource.rb +18 -0
  29. data/app/views/easy_api_doc/api/index.html.erb +5 -0
  30. data/app/views/easy_api_doc/documentation/_parameter.html.erb +29 -0
  31. data/app/views/easy_api_doc/documentation/_resource_index.html.erb +16 -0
  32. data/app/views/easy_api_doc/documentation/api_action.html.erb +105 -0
  33. data/app/views/easy_api_doc/documentation/namespace.html.erb +13 -0
  34. data/app/views/easy_api_doc/documentation/resource.html.erb +18 -0
  35. data/app/views/layouts/easy_api_doc/_header.html.erb +23 -0
  36. data/app/views/layouts/easy_api_doc/application.html.erb +34 -0
  37. data/app/views/shared/_versions_index.html.erb +10 -0
  38. data/config/routes.rb +9 -0
  39. data/lib/configurable.rb +92 -0
  40. data/lib/configuration.rb +31 -0
  41. data/lib/easy_api_doc/engine.rb +5 -0
  42. data/lib/easy_api_doc/version.rb +3 -0
  43. data/lib/easy_api_doc.rb +6 -0
  44. data/test/dummy/README.rdoc +261 -0
  45. data/test/dummy/Rakefile +7 -0
  46. data/test/dummy/app/assets/javascripts/application.js +15 -0
  47. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  48. data/test/dummy/app/controllers/application_controller.rb +3 -0
  49. data/test/dummy/app/helpers/application_helper.rb +2 -0
  50. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  51. data/test/dummy/config/application.rb +59 -0
  52. data/test/dummy/config/boot.rb +10 -0
  53. data/test/dummy/config/database.yml +25 -0
  54. data/test/dummy/config/environment.rb +5 -0
  55. data/test/dummy/config/environments/development.rb +36 -0
  56. data/test/dummy/config/environments/production.rb +67 -0
  57. data/test/dummy/config/environments/test.rb +39 -0
  58. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  59. data/test/dummy/config/initializers/inflections.rb +15 -0
  60. data/test/dummy/config/initializers/mime_types.rb +5 -0
  61. data/test/dummy/config/initializers/secret_token.rb +7 -0
  62. data/test/dummy/config/initializers/session_store.rb +8 -0
  63. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  64. data/test/dummy/config/locales/en.yml +5 -0
  65. data/test/dummy/config/routes.rb +3 -0
  66. data/test/dummy/config.ru +4 -0
  67. data/test/dummy/doc/api_doc.yml +104 -0
  68. data/test/dummy/log/development.log +742 -0
  69. data/test/dummy/public/404.html +26 -0
  70. data/test/dummy/public/422.html +26 -0
  71. data/test/dummy/public/500.html +25 -0
  72. data/test/dummy/public/favicon.ico +0 -0
  73. data/test/dummy/script/rails +6 -0
  74. data/test/dummy/tmp/cache/assets/development/sprockets/04965396c9cfe69081b5dd98c3212fae +0 -0
  75. data/test/dummy/tmp/cache/assets/development/sprockets/16d88b38a506ba01a817e258ad8fb263 +0 -0
  76. data/test/dummy/tmp/cache/assets/development/sprockets/203aa633656e7d9c927c57c46e470c83 +0 -0
  77. data/test/dummy/tmp/cache/assets/development/sprockets/2f062b493cefffdbc012a973e9a105d5 +0 -0
  78. data/test/dummy/tmp/cache/assets/development/sprockets/2f0ed6020953bd16ba9b363edbf7cda0 +0 -0
  79. data/test/dummy/tmp/cache/assets/development/sprockets/30465ccaba36954861158b4242883bd6 +0 -0
  80. data/test/dummy/tmp/cache/assets/development/sprockets/36351f369d6eaf233c5e86e07555c170 +0 -0
  81. data/test/dummy/tmp/cache/assets/development/sprockets/405c9c78a785fb067d1c67657cfc62ef +0 -0
  82. data/test/dummy/tmp/cache/assets/development/sprockets/4abfd2becb22be944eb58bcf7107c873 +0 -0
  83. data/test/dummy/tmp/cache/assets/development/sprockets/4c371d51ee36edfddc4b8428b18dd632 +0 -0
  84. data/test/dummy/tmp/cache/assets/development/sprockets/4e7b4f8fde8fe12c9c12da639bed576e +0 -0
  85. data/test/dummy/tmp/cache/assets/development/sprockets/543e8b4a615c1577865f6ef73059d40f +0 -0
  86. data/test/dummy/tmp/cache/assets/development/sprockets/593636db3cefe193ebf65f5b58f57c9a +0 -0
  87. data/test/dummy/tmp/cache/assets/development/sprockets/67409083f86d1b03662b495d04418132 +0 -0
  88. data/test/dummy/tmp/cache/assets/development/sprockets/6afb7fed89c6f68558c4186d7a740a3a +0 -0
  89. data/test/dummy/tmp/cache/assets/development/sprockets/6b1110992dffe4c4455380229a0b8dff +0 -0
  90. data/test/dummy/tmp/cache/assets/development/sprockets/6db6675fbfed66d3d342f71869217dac +0 -0
  91. data/test/dummy/tmp/cache/assets/development/sprockets/75d2dc9028e3a3f3e6ca14d8f2fe7b5e +0 -0
  92. data/test/dummy/tmp/cache/assets/development/sprockets/76b036b95dde7edc081890640b4e7ed0 +0 -0
  93. data/test/dummy/tmp/cache/assets/development/sprockets/76da432edc6235bd7d73c3335233b1ed +0 -0
  94. data/test/dummy/tmp/cache/assets/development/sprockets/76faccd1d102ff2260e90ba48328b865 +0 -0
  95. data/test/dummy/tmp/cache/assets/development/sprockets/7cbc737c6b2b24706bf9170823e12d87 +0 -0
  96. data/test/dummy/tmp/cache/assets/development/sprockets/7de191b871e66d0c65b1cbaf04a60f58 +0 -0
  97. data/test/dummy/tmp/cache/assets/development/sprockets/802227e7577d1f42b5991586df8c9f02 +0 -0
  98. data/test/dummy/tmp/cache/assets/development/sprockets/848e56c99230cfa8034c10a99fc52c28 +0 -0
  99. data/test/dummy/tmp/cache/assets/development/sprockets/8619cf373138f78fdaab67c14cf6593b +0 -0
  100. data/test/dummy/tmp/cache/assets/development/sprockets/8b8f23bb1606d4e7f5738827686ff14f +0 -0
  101. data/test/dummy/tmp/cache/assets/development/sprockets/8dde0af325a3c57426da61982576c899 +0 -0
  102. data/test/dummy/tmp/cache/assets/development/sprockets/92396eadb57dc8abfb0bf5b3a01295a8 +0 -0
  103. data/test/dummy/tmp/cache/assets/development/sprockets/92a86617e44e9093fb483fc122b75752 +0 -0
  104. data/test/dummy/tmp/cache/assets/development/sprockets/940b911c55d2dc0ea6ca56b25f087739 +0 -0
  105. data/test/dummy/tmp/cache/assets/development/sprockets/a39a3034ca0b3e6ae8eaca11c3ca5ad6 +0 -0
  106. data/test/dummy/tmp/cache/assets/development/sprockets/a8036af98430c82633505d9ca5fcde5f +0 -0
  107. data/test/dummy/tmp/cache/assets/development/sprockets/b4869b1ad3dab2a1821989791a57171f +0 -0
  108. data/test/dummy/tmp/cache/assets/development/sprockets/b7ad7703003d24dab911bd3730756ca6 +0 -0
  109. data/test/dummy/tmp/cache/assets/development/sprockets/b89605b311bfb96d01c875e7a9710861 +0 -0
  110. data/test/dummy/tmp/cache/assets/development/sprockets/c237c4326b837e51c2650d4f6ed7b7a5 +0 -0
  111. data/test/dummy/tmp/cache/assets/development/sprockets/c780d1da090d4bb4d9fa09753f04e17f +0 -0
  112. data/test/dummy/tmp/cache/assets/development/sprockets/ca91101b167a195ab54cdbc39efec3e9 +0 -0
  113. data/test/dummy/tmp/cache/assets/development/sprockets/cdb61eee371606ef082a5ee3189889d2 +0 -0
  114. data/test/dummy/tmp/cache/assets/development/sprockets/d86f52fe55c0b5686bacec92537b0c03 +0 -0
  115. data/test/dummy/tmp/cache/assets/development/sprockets/e9636c04426623ad28848cb917d96a95 +0 -0
  116. data/test/dummy/tmp/cache/assets/development/sprockets/ee9a7b09a7ab141b6ae0cf8ce9197a3c +0 -0
  117. data/test/dummy/tmp/cache/assets/development/sprockets/f0fcdc72564e7709bcdeb9e88dd86135 +0 -0
  118. data/test/dummy/tmp/cache/assets/development/sprockets/f5bcd46e1a1371d63dec98bc97bcda4c +0 -0
  119. data/test/dummy/tmp/cache/assets/development/sprockets/fb3e3925ae8dcb2704d2602719387463 +0 -0
  120. data/test/dummy/tmp/cache/assets/development/sprockets/fcbbb63c7069e7c3b471d13ff0441d2a +0 -0
  121. data/test/dummy/tmp/cache/assets/development/sprockets/ff8858e82d7df03c855d847837676e31 +0 -0
  122. data/test/test_helper.rb +10 -0
  123. metadata +291 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 369706b22a12279844f6c302e3d3e44034ac844b
4
+ data.tar.gz: 47aefcd438a656ff180ef8951e9910404c19fca5
5
+ SHA512:
6
+ metadata.gz: a4f327228e0dc284546e20f5d2aeab261de590f63986b83bd501845624260e35bef4a800aba78bcd2537e74b387f2d6da0afe029fb9ab4d0164df53e2b9da7e8
7
+ data.tar.gz: 5c81e75006c6554c324362e2c2485b8eeffe050ee9e1c42f3049c13a5cd91ce83b2726f4a8e655c1f152ebfda2934b072e8af6f5d85184b94519a4d34b9a9e1e
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2012 Abletech Limited
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,58 @@
1
+ = EasyApiDoc
2
+
3
+ This project rocks and uses MIT-LICENSE.
4
+
5
+ See test/dummy/doc/api_doc.yml for an example YAML config file.
6
+
7
+ This project is a work in progress, and doesn't hold your hand with validating the config file format yet. It's current supported format is: (nodes named with <> are to be named whatever you like)
8
+
9
+ Use the rails convention of specifying dynamic url paramaters via ':id'
10
+
11
+ api:
12
+ <version_number>:
13
+ defaults:
14
+ domain: api.example.com
15
+ protocol: http
16
+ ...
17
+ <namespace>:
18
+ description: "..."
19
+ detail: "..."
20
+ formats: "json, xml"
21
+ authentication:
22
+ type: basic
23
+ user: admin
24
+ password: password
25
+ resources:
26
+ <users>:
27
+ description: "..."
28
+ actions:
29
+ <update>:
30
+ http_method: POST
31
+ uri: /users/:id
32
+ description: "..."
33
+ parameters:
34
+ <id>:
35
+ type: integer
36
+ example: 1
37
+ <account_type>:
38
+ type: string
39
+ default: personal
40
+ <nested_record>:
41
+ <nested_attr>:
42
+ type: string
43
+ example: test@example.com
44
+
45
+
46
+ To use this, add it to your gemfile by either:
47
+
48
+ gem 'easy_api_doc'
49
+
50
+ or
51
+
52
+ gem 'easy_api_doc', :git => 'git@github.com:AbleTech/easy_api_doc.git'
53
+
54
+
55
+ example routes.rb:
56
+
57
+ mount EasyApiDoc::Engine => "/api_docs"
58
+
data/Rakefile ADDED
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env rake
2
+ begin
3
+ require 'bundler/setup'
4
+ rescue LoadError
5
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ end
7
+ begin
8
+ require 'rdoc/task'
9
+ rescue LoadError
10
+ require 'rdoc/rdoc'
11
+ require 'rake/rdoctask'
12
+ RDoc::Task = Rake::RDocTask
13
+ end
14
+
15
+ RDoc::Task.new(:rdoc) do |rdoc|
16
+ rdoc.rdoc_dir = 'rdoc'
17
+ rdoc.title = 'EasyApiDoc'
18
+ rdoc.options << '--line-numbers'
19
+ rdoc.rdoc_files.include('README.rdoc')
20
+ rdoc.rdoc_files.include('lib/**/*.rb')
21
+ end
22
+
23
+ APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
24
+ load 'rails/tasks/engine.rake'
25
+
26
+
27
+
28
+ Bundler::GemHelper.install_tasks
29
+
30
+ require 'rake/testtask'
31
+
32
+ Rake::TestTask.new(:test) do |t|
33
+ t.libs << 'lib'
34
+ t.libs << 'test'
35
+ t.pattern = 'test/**/*_test.rb'
36
+ t.verbose = false
37
+ end
38
+
39
+
40
+ task :default => :test
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,15 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // the compiled file.
9
+ //
10
+ // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
11
+ // GO AFTER THE REQUIRES BELOW.
12
+ //
13
+ //= require jquery
14
+ //= require jquery_ujs
15
+ //= require_tree .
@@ -0,0 +1,65 @@
1
+ var END_OF_INPUT = -1;
2
+
3
+ var base64Chars = new Array(
4
+ 'A','B','C','D','E','F','G','H',
5
+ 'I','J','K','L','M','N','O','P',
6
+ 'Q','R','S','T','U','V','W','X',
7
+ 'Y','Z','a','b','c','d','e','f',
8
+ 'g','h','i','j','k','l','m','n',
9
+ 'o','p','q','r','s','t','u','v',
10
+ 'w','x','y','z','0','1','2','3',
11
+ '4','5','6','7','8','9','+','/'
12
+ );
13
+
14
+ var reverseBase64Chars = new Array();
15
+ for (var i=0; i < base64Chars.length; i++){
16
+ reverseBase64Chars[base64Chars[i]] = i;
17
+ }
18
+
19
+ var base64Str;
20
+ var base64Count;
21
+ function setBase64Str(str){
22
+ base64Str = str;
23
+ base64Count = 0;
24
+ }
25
+ function readBase64(){
26
+ if (!base64Str) return END_OF_INPUT;
27
+ if (base64Count >= base64Str.length) return END_OF_INPUT;
28
+ var c = base64Str.charCodeAt(base64Count) & 0xff;
29
+ base64Count++;
30
+ return c;
31
+ }
32
+ function encodeBase64(str){
33
+ setBase64Str(str);
34
+ var result = '';
35
+ var inBuffer = new Array(3);
36
+ var lineCount = 0;
37
+ var done = false;
38
+ while (!done && (inBuffer[0] = readBase64()) != END_OF_INPUT){
39
+ inBuffer[1] = readBase64();
40
+ inBuffer[2] = readBase64();
41
+ result += (base64Chars[ inBuffer[0] >> 2 ]);
42
+ if (inBuffer[1] != END_OF_INPUT){
43
+ result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]);
44
+ if (inBuffer[2] != END_OF_INPUT){
45
+ result += (base64Chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]);
46
+ result += (base64Chars [inBuffer[2] & 0x3F]);
47
+ } else {
48
+ result += (base64Chars [((inBuffer[1] << 2) & 0x3c)]);
49
+ result += ('=');
50
+ done = true;
51
+ }
52
+ } else {
53
+ result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30)]);
54
+ result += ('=');
55
+ result += ('=');
56
+ done = true;
57
+ }
58
+ lineCount += 4;
59
+ if (lineCount >= 76){
60
+ result += ('\n');
61
+ lineCount = 0;
62
+ }
63
+ }
64
+ return result;
65
+ }