easy_api_doc 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +58 -0
- data/Rakefile +40 -0
- data/app/assets/images/easy_api_doc/favicon.ico +0 -0
- data/app/assets/images/easy_api_doc/glyphicons-halflings-white.png +0 -0
- data/app/assets/images/easy_api_doc/glyphicons-halflings.png +0 -0
- data/app/assets/images/easy_api_doc/loading.gif +0 -0
- data/app/assets/javascripts/easy_api_doc/api.js +2 -0
- data/app/assets/javascripts/easy_api_doc/application.js +15 -0
- data/app/assets/javascripts/easy_api_doc/base64.js +65 -0
- data/app/assets/javascripts/easy_api_doc/bootstrap.js +1999 -0
- data/app/assets/javascripts/easy_api_doc/documentation.js +223 -0
- data/app/assets/javascripts/easy_api_doc/status_codes.js +61 -0
- data/app/assets/stylesheets/easy_api_doc/api.css +4 -0
- data/app/assets/stylesheets/easy_api_doc/application.css +13 -0
- data/app/assets/stylesheets/easy_api_doc/bootstrap.css +6805 -0
- data/app/assets/stylesheets/easy_api_doc/documentation.css +47 -0
- data/app/controllers/easy_api_doc/api_controller.rb +13 -0
- data/app/controllers/easy_api_doc/application_controller.rb +17 -0
- data/app/controllers/easy_api_doc/documentation_controller.rb +42 -0
- data/app/helpers/easy_api_doc/application_helper.rb +71 -0
- data/app/helpers/easy_api_doc/documentation_helper.rb +5 -0
- data/app/models/easy_api_doc/action.rb +59 -0
- data/app/models/easy_api_doc/api_version.rb +18 -0
- data/app/models/easy_api_doc/namespace.rb +14 -0
- data/app/models/easy_api_doc/parameter.rb +49 -0
- data/app/models/easy_api_doc/resource.rb +18 -0
- data/app/views/easy_api_doc/api/index.html.erb +5 -0
- data/app/views/easy_api_doc/documentation/_parameter.html.erb +29 -0
- data/app/views/easy_api_doc/documentation/_resource_index.html.erb +16 -0
- data/app/views/easy_api_doc/documentation/api_action.html.erb +105 -0
- data/app/views/easy_api_doc/documentation/namespace.html.erb +13 -0
- data/app/views/easy_api_doc/documentation/resource.html.erb +18 -0
- data/app/views/layouts/easy_api_doc/_header.html.erb +23 -0
- data/app/views/layouts/easy_api_doc/application.html.erb +34 -0
- data/app/views/shared/_versions_index.html.erb +10 -0
- data/config/routes.rb +9 -0
- data/lib/configurable.rb +92 -0
- data/lib/configuration.rb +31 -0
- data/lib/easy_api_doc/engine.rb +5 -0
- data/lib/easy_api_doc/version.rb +3 -0
- data/lib/easy_api_doc.rb +6 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +15 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/config/application.rb +59 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +36 -0
- data/test/dummy/config/environments/production.rb +67 -0
- data/test/dummy/config/environments/test.rb +39 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +3 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/doc/api_doc.yml +104 -0
- data/test/dummy/log/development.log +742 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/04965396c9cfe69081b5dd98c3212fae +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/16d88b38a506ba01a817e258ad8fb263 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/203aa633656e7d9c927c57c46e470c83 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2f062b493cefffdbc012a973e9a105d5 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2f0ed6020953bd16ba9b363edbf7cda0 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/30465ccaba36954861158b4242883bd6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/36351f369d6eaf233c5e86e07555c170 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/405c9c78a785fb067d1c67657cfc62ef +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4abfd2becb22be944eb58bcf7107c873 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4c371d51ee36edfddc4b8428b18dd632 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4e7b4f8fde8fe12c9c12da639bed576e +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/543e8b4a615c1577865f6ef73059d40f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/593636db3cefe193ebf65f5b58f57c9a +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/67409083f86d1b03662b495d04418132 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6afb7fed89c6f68558c4186d7a740a3a +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6b1110992dffe4c4455380229a0b8dff +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6db6675fbfed66d3d342f71869217dac +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/75d2dc9028e3a3f3e6ca14d8f2fe7b5e +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/76b036b95dde7edc081890640b4e7ed0 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/76da432edc6235bd7d73c3335233b1ed +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/76faccd1d102ff2260e90ba48328b865 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/7cbc737c6b2b24706bf9170823e12d87 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/7de191b871e66d0c65b1cbaf04a60f58 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/802227e7577d1f42b5991586df8c9f02 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/848e56c99230cfa8034c10a99fc52c28 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/8619cf373138f78fdaab67c14cf6593b +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/8b8f23bb1606d4e7f5738827686ff14f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/8dde0af325a3c57426da61982576c899 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/92396eadb57dc8abfb0bf5b3a01295a8 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/92a86617e44e9093fb483fc122b75752 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/940b911c55d2dc0ea6ca56b25f087739 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a39a3034ca0b3e6ae8eaca11c3ca5ad6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a8036af98430c82633505d9ca5fcde5f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/b4869b1ad3dab2a1821989791a57171f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/b7ad7703003d24dab911bd3730756ca6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/b89605b311bfb96d01c875e7a9710861 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c237c4326b837e51c2650d4f6ed7b7a5 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c780d1da090d4bb4d9fa09753f04e17f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ca91101b167a195ab54cdbc39efec3e9 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/cdb61eee371606ef082a5ee3189889d2 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d86f52fe55c0b5686bacec92537b0c03 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e9636c04426623ad28848cb917d96a95 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ee9a7b09a7ab141b6ae0cf8ce9197a3c +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f0fcdc72564e7709bcdeb9e88dd86135 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f5bcd46e1a1371d63dec98bc97bcda4c +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/fb3e3925ae8dcb2704d2602719387463 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/fcbbb63c7069e7c3b471d13ff0441d2a +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ff8858e82d7df03c855d847837676e31 +0 -0
- data/test/test_helper.rb +10 -0
- 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
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -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
|
+
}
|