restapi_doc 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +11 -0
- data/Gemfile.lock +36 -0
- data/LICENSE +20 -0
- data/README.rdoc +28 -0
- data/Rakefile +39 -0
- data/VERSION +1 -0
- data/lib/restapi_doc/config/restapi_doc.yml +2 -0
- data/lib/restapi_doc/config.rb +46 -0
- data/lib/restapi_doc/method_doc.rb +84 -0
- data/lib/restapi_doc/railtie.rb +9 -0
- data/lib/restapi_doc/resource_doc.rb +104 -0
- data/lib/restapi_doc/tasks/restapi_doc_tasks.rake +28 -0
- data/lib/restapi_doc/template/assets/css/bootstrap-responsive.min.css +12 -0
- data/lib/restapi_doc/template/assets/css/bootstrap.less +9 -0
- data/lib/restapi_doc/template/assets/css/bootstrap.min.css +689 -0
- data/lib/restapi_doc/template/assets/css/prettify.css +30 -0
- data/lib/restapi_doc/template/assets/img/glyphicons-halflings-white.png +0 -0
- data/lib/restapi_doc/template/assets/img/glyphicons-halflings.png +0 -0
- data/lib/restapi_doc/template/assets/js/bootstrap.min.js +6 -0
- data/lib/restapi_doc/template/assets/js/jquery.js +4 -0
- data/lib/restapi_doc/template/assets/js/less.min.js +9 -0
- data/lib/restapi_doc/template/assets/js/prettify.js +28 -0
- data/lib/restapi_doc/template/detail.html.haml +107 -0
- data/lib/restapi_doc/template/index.html.haml +57 -0
- data/lib/restapi_doc.rb +99 -0
- data/restapi_doc.gemspec +79 -0
- metadata +141 -0
@@ -0,0 +1,107 @@
|
|
1
|
+
!!!
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%meta{:name => "viewport", "content" => "width=device-width, initial-scale=1.0"}/
|
5
|
+
%meta{:description => ""}/
|
6
|
+
%meta{:author => ""}/
|
7
|
+
%link{:href => "../../assets/css/bootstrap.min.css", :rel => "stylesheet", :type => "text/css"}/
|
8
|
+
%link{:href => "../../assets/css/bootstrap-responsive.min.css", :rel => "stylesheet", :type => "text/css"}/
|
9
|
+
%link{:href => "../../assets/css/prettify.css", :rel => "stylesheet", :type => "text/css"}/
|
10
|
+
%link{:href => "../../assets/ico/favicon.ico", :rel => "shortcut icon"}/
|
11
|
+
%link{:href => "../../assets/ico/apple-touch-icon-114-precomposed.png", :rel => "apple-touch-icon-precomposed", :size => "114x114"}/
|
12
|
+
%link{:href => "../../assets/ico/apple-touch-icon-72-precomposed.png", :rel => "apple-touch-icon-precomposed", :size => "72x72"}/
|
13
|
+
%link{:href => "../../assets/ico/apple-touch-icon-57-precomposed.png", :rel => "apple-touch-icon-precomposed"}/
|
14
|
+
%style
|
15
|
+
body{padding-top:60px;padding-bottom: 40px;}
|
16
|
+
%title #{project_info['project_name']} - RESTful API Doc
|
17
|
+
%body{"onload" => "prettyPrint();"}
|
18
|
+
%div{:class => "navbar navbar-fixed-top"}
|
19
|
+
%div{:class => "navbar-inner"}
|
20
|
+
.container
|
21
|
+
%a{:class => "btn btn-navbar", "data-toggle" => "collapse", "data-target" => "nav-collapse"}
|
22
|
+
%span{:class => "icon-bar"}
|
23
|
+
%span{:class => "icon-bar"}
|
24
|
+
%span{:class => "icon-bar"}
|
25
|
+
%a{:class => "brand"}
|
26
|
+
= "#{project_info['project_name']}"
|
27
|
+
%div{:class => "nav-collapse"}
|
28
|
+
%ul{:class=> "nav"}
|
29
|
+
%li{:class => "active"}
|
30
|
+
%a{:href => "../../index.html"}
|
31
|
+
= "RESTful Resources"
|
32
|
+
%div{:class => "container"}
|
33
|
+
%h1{:style => "margin-bottom:20px;"} #{rmethod[1]} #{rmethod[2].gsub(/\(.*\)/, '')}
|
34
|
+
%div{:class => "row-fluid"}
|
35
|
+
%div{:class => "span9"}
|
36
|
+
%p #{rmethod[3].content unless rmethod[3].nil?}
|
37
|
+
%hr
|
38
|
+
%h4{:style => "margin-bottom:10px;"} Resource URL
|
39
|
+
%p #{project_info['base_url']}#{rmethod[2].gsub(/\(.*\)/, '')}
|
40
|
+
- if !rmethod[3].nil?
|
41
|
+
%h4{:style => "margin-top:30px;"} Parameters
|
42
|
+
%table{:class => "table"}
|
43
|
+
%tbody
|
44
|
+
- rmethod[3].params.each do |param|
|
45
|
+
%tr
|
46
|
+
%td{:style => "width:35%"}
|
47
|
+
= "#{param.split('-')[0].strip} (#{param.split('-')[1].strip})"
|
48
|
+
%span{:class => "muted", :style => "display:block;font-size:12px;"} #{param.split('-')[2].strip.downcase}
|
49
|
+
%td #{param.split('-')[3].strip}
|
50
|
+
%hr
|
51
|
+
- if !rmethod[3].nil?
|
52
|
+
%h4{:style => "margin-bottom:10px;"} HTTP Status Codes
|
53
|
+
%table{:class => "table"}
|
54
|
+
%tbody
|
55
|
+
- rmethod[3].http_responses.each do |httpresp|
|
56
|
+
%tr
|
57
|
+
%td
|
58
|
+
= "#{httpresp.split('-')[0].strip}"
|
59
|
+
%span{:class => "muted", :style => "display:block;font-size:12px;"} #{httpresp.split('-')[1].strip}
|
60
|
+
%td #{httpresp.split('-')[2].strip}
|
61
|
+
%hr
|
62
|
+
%h4{:style=> "margin-bottom:10px;"} Examples
|
63
|
+
-if !rmethod[3].nil?
|
64
|
+
- if !rmethod[3].request_url.nil?
|
65
|
+
%h5{:style => "margin-bottom:10px;"} Request URL
|
66
|
+
%blockquote
|
67
|
+
%p{:style => "font-size:12px;"} #{project_info['base_url']}#{rmethod[3].request_url}
|
68
|
+
- if !rmethod[3].nil?
|
69
|
+
- if !rmethod[3].request.empty?
|
70
|
+
%h5{:style => "margin-bottom:10px;"} Request
|
71
|
+
%pre{:class => "prettyprint linenums"} #{rmethod[3].request unless rmethod[3].nil?}
|
72
|
+
- if !rmethod[3].nil?
|
73
|
+
- if !rmethod[3].output.empty?
|
74
|
+
%h5{:style => "margin-bottom:10px;"} Response
|
75
|
+
%pre{:class => "prettyprint linenums"} #{rmethod[3].output unless rmethod[3].nil?}
|
76
|
+
|
77
|
+
%div{:class => "span3"}
|
78
|
+
%div{:class => "well"}
|
79
|
+
%h4 Resource Information
|
80
|
+
%table{:class=> "table table-condensed"}
|
81
|
+
%thead
|
82
|
+
%tr
|
83
|
+
%th
|
84
|
+
%tbody
|
85
|
+
%tr
|
86
|
+
%td Category
|
87
|
+
%td #{name}
|
88
|
+
%tr
|
89
|
+
%td Requires Authentication?
|
90
|
+
%td #{rmethod[3].requires_authentication unless rmethod[3].nil?}
|
91
|
+
%tr
|
92
|
+
%td Requires Account Password?
|
93
|
+
%td #{rmethod[3].account_password_required unless rmethod[3].nil?}
|
94
|
+
%tr
|
95
|
+
%td Response Formats
|
96
|
+
%td
|
97
|
+
- if !rmethod[3].nil?
|
98
|
+
- rmethod[3].response_formats.each do |rf|
|
99
|
+
%span #{rf}
|
100
|
+
%tr
|
101
|
+
%td HTTP Method
|
102
|
+
%td #{rmethod[1]}
|
103
|
+
|
104
|
+
|
105
|
+
%script{:src => "../../assets/js/jquery.js", :type => "text/javascript"}
|
106
|
+
%script{:src => "../../assets/js/bootstrap.min.js", :type => "text/javascript"}
|
107
|
+
%script{:src => "../../assets/js/prettify.js", :type => "text/javascript"}
|
@@ -0,0 +1,57 @@
|
|
1
|
+
!!!
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%meta{:name => "viewport", "content" => "width=device-width, initial-scale=1.0"}/
|
5
|
+
%meta{:description => ""}/
|
6
|
+
%meta{:author => ""}/
|
7
|
+
%link{:href => "assets/css/bootstrap.min.css", :rel => "stylesheet", :type => "text/css"}/
|
8
|
+
%link{:href => "assets/css/bootstrap-responsive.min.css", :rel => "stylesheet", :type => "text/css"}/
|
9
|
+
%link{:href => "assets/css/bootstrap.less", :rel => "stylesheet/less"}/
|
10
|
+
%script{:src => "assets/js/less.min.js", :type => "text/javascript"}
|
11
|
+
%link{:href => "assets/ico/favicon.ico", :rel => "shortcut icon"}/
|
12
|
+
%link{:href => "assets/ico/apple-touch-icon-114-precomposed.png", :rel => "apple-touch-icon-precomposed", :size => "114x114"}/
|
13
|
+
%link{:href => "assets/ico/apple-touch-icon-72-precomposed.png", :rel => "apple-touch-icon-precomposed", :size => "72x72"}/
|
14
|
+
%link{:href => "assets/ico/apple-touch-icon-57-precomposed.png", :rel => "apple-touch-icon-precomposed"}/
|
15
|
+
%style
|
16
|
+
body{padding-top:60px;padding-bottom: 40px;}
|
17
|
+
%title #{project_info['project_name']} - RESTful API Doc
|
18
|
+
%body
|
19
|
+
%div{:class => "navbar navbar-fixed-top"}
|
20
|
+
%div{:class => "navbar-inner"}
|
21
|
+
.container
|
22
|
+
%a{:class => "btn btn-navbar", "data-toggle" => "collapse", "data-target" => "nav-collapse"}
|
23
|
+
%span{:class => "icon-bar"}
|
24
|
+
%span{:class => "icon-bar"}
|
25
|
+
%span{:class => "icon-bar"}
|
26
|
+
%a{:class => "brand"}
|
27
|
+
= "#{project_info['project_name']}"
|
28
|
+
%div{:class => "nav-collapse"}
|
29
|
+
%ul{:class=> "nav"}
|
30
|
+
%li{:class => "active"}
|
31
|
+
%a{:href => "index.html"}
|
32
|
+
= "RESTful Resources"
|
33
|
+
%div{:class => "container"}
|
34
|
+
#resource_index
|
35
|
+
%h1 RESTful API Resources
|
36
|
+
%hr
|
37
|
+
%div{:class=> "row-fluid"}
|
38
|
+
- resource_docs.each do |resource|
|
39
|
+
%h3{:style => "text-indent:5x;"} #{resource.name.capitalize}
|
40
|
+
%p #{resource.description}
|
41
|
+
%hr{:style => "margin-top:2px;margin-bottom:2px;"}
|
42
|
+
%table{:class => "table table-striped"}
|
43
|
+
%thead
|
44
|
+
%tr
|
45
|
+
%th{"style" => "width:35%"} Resource
|
46
|
+
%th Description
|
47
|
+
%tbody
|
48
|
+
- resource.resource_methods.each do |method_block|
|
49
|
+
%tr
|
50
|
+
%td
|
51
|
+
%a{:href => "resources/#{resource.name}/#{method_block[0]}.html"}
|
52
|
+
= "#{method_block[1]} #{method_block[2].gsub(/\(.*\)/, '')}"
|
53
|
+
%td #{method_block[3].content unless method_block[3].nil?}
|
54
|
+
|
55
|
+
%script{:src => "assets/js/jquery.js", :type => "text/javascript"}
|
56
|
+
%script{:src => "assets/js/bootstrap.min.js", :type => "text/javascript"}
|
57
|
+
%script{:src => "assets/js/prettify.js", :type => "text/javascript"}
|
data/lib/restapi_doc.rb
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'haml'
|
3
|
+
require 'yaml'
|
4
|
+
require 'fileutils'
|
5
|
+
require File.expand_path('../restapi_doc/resource_doc', __FILE__)
|
6
|
+
require File.expand_path('../restapi_doc/config', __FILE__)
|
7
|
+
require File.expand_path('../restapi_doc/railtie', __FILE__) if defined?(Rails)
|
8
|
+
|
9
|
+
module RestApiDoc
|
10
|
+
VERSION = File.read(File.expand_path("../VERSION", File.dirname(__FILE__)))
|
11
|
+
|
12
|
+
include Config
|
13
|
+
include FileUtils
|
14
|
+
|
15
|
+
def create_structure
|
16
|
+
File.directory?(config_dir) || mkdir(config_dir)
|
17
|
+
Dir["#{config_template_dir}/*.*"].each do |template_file|
|
18
|
+
target_file = config_dir(File.basename(template_file))
|
19
|
+
cp template_file, config_dir if not File.exist? target_file
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# Reads 'rake routes' output and gets the controller info
|
24
|
+
def get_controller_info
|
25
|
+
controller_info = {}
|
26
|
+
routes = Dir.chdir(::Rails.root.to_s) { `rake routes` }
|
27
|
+
routes.split("\n").each do |entry|
|
28
|
+
method, url, controller_action = entry.split.slice(-3, 3)
|
29
|
+
controller, action = controller_action.split('#')
|
30
|
+
controller_info[controller] ||= []
|
31
|
+
controller_info[controller] << [action, method, url]
|
32
|
+
end
|
33
|
+
controller_info
|
34
|
+
end
|
35
|
+
|
36
|
+
# Create resources
|
37
|
+
def get_resources
|
38
|
+
controller_info = get_controller_info
|
39
|
+
resources = []
|
40
|
+
controller_info.each do |controller, action_entries|
|
41
|
+
controller_location = controller_dir(controller + '_controller.rb')
|
42
|
+
controller_base_routes = action_entries
|
43
|
+
resources << ResourceDoc.new(controller, action_entries, controller_location)
|
44
|
+
end
|
45
|
+
resources
|
46
|
+
end
|
47
|
+
|
48
|
+
# Generates views and their index in a temp directory
|
49
|
+
def generate_doc(resource_docs)
|
50
|
+
generate_index_templates(resource_docs)
|
51
|
+
copy_assets!
|
52
|
+
end
|
53
|
+
|
54
|
+
# Creates index template for all resources
|
55
|
+
def generate_index_templates(resource_docs)
|
56
|
+
restapi_config = YAML.load(File.read("#{config_dir}/restapi_doc.yml"))
|
57
|
+
resource_docs.each { |resource| resource.parse_apidoc }
|
58
|
+
template = IO.read(template_dir('index.html.haml'))
|
59
|
+
parsed = Haml::Engine.new(template).render(Object.new, :project_info => restapi_config, :resource_docs => resource_docs)
|
60
|
+
File.open(temp_dir("index.html"), 'w') { |file| file.write parsed }
|
61
|
+
|
62
|
+
# Generate detail files
|
63
|
+
resource_docs.each do | resource_doc|
|
64
|
+
generate_resource_detail_file!(resource_doc)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# Generate detail files for resource method
|
69
|
+
def generate_resource_detail_file!(resource_doc)
|
70
|
+
restapi_config = YAML.load(File.read("#{config_dir}/restapi_doc.yml"))
|
71
|
+
Dir.mkdir(temp_dir + "/resources") if (!File.directory?(temp_dir + "/resources"))
|
72
|
+
Dir.mkdir(temp_dir + "/resources/" + resource_doc.name) if (!File.directory?(temp_dir + "/resources/" + resource_doc.name))
|
73
|
+
resource_doc.resource_methods.each do | method|
|
74
|
+
template = IO.read(template_dir('detail.html.haml'))
|
75
|
+
parsed = Haml::Engine.new(template).render(Object.new, :project_info => restapi_config, :name => resource_doc.name , :rmethod => method)
|
76
|
+
File.open(temp_dir + "/resources/" + resource_doc.name + "/" + method[0] + ".html", 'w') { |file| file.write parsed }
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
# Move document to public
|
81
|
+
def move_document
|
82
|
+
Dir.mkdir(target_dir) if (!File.directory?(target_dir))
|
83
|
+
# Only want to move the .html, .css, .png and .js files, not the .haml templates.
|
84
|
+
html_css_files = temp_dir("*.{html,css,js,png}")
|
85
|
+
Dir[html_css_files].each { |f| mv f, target_dir }
|
86
|
+
mv temp_dir + "/resources", target_dir, :force => true if (File.directory?(temp_dir + "/resources"))
|
87
|
+
mv temp_dir + "/assets", target_dir, :force => true if (File.directory?(temp_dir + "/assets"))
|
88
|
+
end
|
89
|
+
|
90
|
+
def copy_assets!
|
91
|
+
# Copy over assets
|
92
|
+
cp_r asset_dir, temp_dir
|
93
|
+
end
|
94
|
+
|
95
|
+
# Removes the generated files
|
96
|
+
def remove_structure
|
97
|
+
rm_rf target_dir
|
98
|
+
end
|
99
|
+
end
|
data/restapi_doc.gemspec
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "restapi_doc"
|
8
|
+
s.version = "0.0.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Kevin Haight"]
|
12
|
+
s.date = "2012-04-26"
|
13
|
+
s.description = "REST API doc generates an easy way to create a twitter style document for your RESTful interface. \n Leveraging Twitter Bootstrap to create an easy to read document for your RESTful api. "
|
14
|
+
s.email = "kevinjhaight@gmail.com"
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
"Gemfile",
|
21
|
+
"Gemfile.lock",
|
22
|
+
"LICENSE",
|
23
|
+
"README.rdoc",
|
24
|
+
"Rakefile",
|
25
|
+
"VERSION",
|
26
|
+
"lib/restapi_doc.rb",
|
27
|
+
"lib/restapi_doc/config.rb",
|
28
|
+
"lib/restapi_doc/config/restapi_doc.yml",
|
29
|
+
"lib/restapi_doc/method_doc.rb",
|
30
|
+
"lib/restapi_doc/railtie.rb",
|
31
|
+
"lib/restapi_doc/resource_doc.rb",
|
32
|
+
"lib/restapi_doc/tasks/restapi_doc_tasks.rake",
|
33
|
+
"lib/restapi_doc/template/assets/css/bootstrap-responsive.min.css",
|
34
|
+
"lib/restapi_doc/template/assets/css/bootstrap.less",
|
35
|
+
"lib/restapi_doc/template/assets/css/bootstrap.min.css",
|
36
|
+
"lib/restapi_doc/template/assets/css/prettify.css",
|
37
|
+
"lib/restapi_doc/template/assets/img/glyphicons-halflings-white.png",
|
38
|
+
"lib/restapi_doc/template/assets/img/glyphicons-halflings.png",
|
39
|
+
"lib/restapi_doc/template/assets/js/bootstrap.min.js",
|
40
|
+
"lib/restapi_doc/template/assets/js/jquery.js",
|
41
|
+
"lib/restapi_doc/template/assets/js/less.min.js",
|
42
|
+
"lib/restapi_doc/template/assets/js/prettify.js",
|
43
|
+
"lib/restapi_doc/template/detail.html.haml",
|
44
|
+
"lib/restapi_doc/template/index.html.haml",
|
45
|
+
"restapi_doc.gemspec"
|
46
|
+
]
|
47
|
+
s.homepage = "http://github.com/alayho/restapi_doc"
|
48
|
+
s.require_paths = ["lib"]
|
49
|
+
s.rubygems_version = "1.8.17"
|
50
|
+
s.summary = "REST API doc generates an easy way to create a twitter style document for your RESTful interface"
|
51
|
+
|
52
|
+
if s.respond_to? :specification_version then
|
53
|
+
s.specification_version = 3
|
54
|
+
|
55
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
56
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 2.1"])
|
57
|
+
s.add_runtime_dependency(%q<haml>, ["= 3.1.4"])
|
58
|
+
s.add_development_dependency(%q<rake>, [">= 0"])
|
59
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
60
|
+
s.add_development_dependency(%q<rspec>, [">= 2.2.0"])
|
61
|
+
s.add_development_dependency(%q<mocha>, [">= 0"])
|
62
|
+
else
|
63
|
+
s.add_dependency(%q<activesupport>, [">= 2.1"])
|
64
|
+
s.add_dependency(%q<haml>, ["= 3.1.4"])
|
65
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
66
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
67
|
+
s.add_dependency(%q<rspec>, [">= 2.2.0"])
|
68
|
+
s.add_dependency(%q<mocha>, [">= 0"])
|
69
|
+
end
|
70
|
+
else
|
71
|
+
s.add_dependency(%q<activesupport>, [">= 2.1"])
|
72
|
+
s.add_dependency(%q<haml>, ["= 3.1.4"])
|
73
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
74
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
75
|
+
s.add_dependency(%q<rspec>, [">= 2.2.0"])
|
76
|
+
s.add_dependency(%q<mocha>, [">= 0"])
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
metadata
ADDED
@@ -0,0 +1,141 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: restapi_doc
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Kevin Haight
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-04-26 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: activesupport
|
16
|
+
requirement: &2152452280 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '2.1'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *2152452280
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: haml
|
27
|
+
requirement: &2152451780 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - =
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 3.1.4
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *2152451780
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rake
|
38
|
+
requirement: &2152451180 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *2152451180
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: jeweler
|
49
|
+
requirement: &2152450340 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *2152450340
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rspec
|
60
|
+
requirement: &2152449700 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 2.2.0
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *2152449700
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: mocha
|
71
|
+
requirement: &2152449180 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *2152449180
|
80
|
+
description: ! "REST API doc generates an easy way to create a twitter style document
|
81
|
+
for your RESTful interface. \n Leveraging Twitter Bootstrap
|
82
|
+
to create an easy to read document for your RESTful api. "
|
83
|
+
email: kevinjhaight@gmail.com
|
84
|
+
executables: []
|
85
|
+
extensions: []
|
86
|
+
extra_rdoc_files:
|
87
|
+
- LICENSE
|
88
|
+
- README.rdoc
|
89
|
+
files:
|
90
|
+
- Gemfile
|
91
|
+
- Gemfile.lock
|
92
|
+
- LICENSE
|
93
|
+
- README.rdoc
|
94
|
+
- Rakefile
|
95
|
+
- VERSION
|
96
|
+
- lib/restapi_doc.rb
|
97
|
+
- lib/restapi_doc/config.rb
|
98
|
+
- lib/restapi_doc/config/restapi_doc.yml
|
99
|
+
- lib/restapi_doc/method_doc.rb
|
100
|
+
- lib/restapi_doc/railtie.rb
|
101
|
+
- lib/restapi_doc/resource_doc.rb
|
102
|
+
- lib/restapi_doc/tasks/restapi_doc_tasks.rake
|
103
|
+
- lib/restapi_doc/template/assets/css/bootstrap-responsive.min.css
|
104
|
+
- lib/restapi_doc/template/assets/css/bootstrap.less
|
105
|
+
- lib/restapi_doc/template/assets/css/bootstrap.min.css
|
106
|
+
- lib/restapi_doc/template/assets/css/prettify.css
|
107
|
+
- lib/restapi_doc/template/assets/img/glyphicons-halflings-white.png
|
108
|
+
- lib/restapi_doc/template/assets/img/glyphicons-halflings.png
|
109
|
+
- lib/restapi_doc/template/assets/js/bootstrap.min.js
|
110
|
+
- lib/restapi_doc/template/assets/js/jquery.js
|
111
|
+
- lib/restapi_doc/template/assets/js/less.min.js
|
112
|
+
- lib/restapi_doc/template/assets/js/prettify.js
|
113
|
+
- lib/restapi_doc/template/detail.html.haml
|
114
|
+
- lib/restapi_doc/template/index.html.haml
|
115
|
+
- restapi_doc.gemspec
|
116
|
+
homepage: http://github.com/alayho/restapi_doc
|
117
|
+
licenses: []
|
118
|
+
post_install_message:
|
119
|
+
rdoc_options: []
|
120
|
+
require_paths:
|
121
|
+
- lib
|
122
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
123
|
+
none: false
|
124
|
+
requirements:
|
125
|
+
- - ! '>='
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: '0'
|
128
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ! '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
requirements: []
|
135
|
+
rubyforge_project:
|
136
|
+
rubygems_version: 1.8.17
|
137
|
+
signing_key:
|
138
|
+
specification_version: 3
|
139
|
+
summary: REST API doc generates an easy way to create a twitter style document for
|
140
|
+
your RESTful interface
|
141
|
+
test_files: []
|