rapi_doc 0.3.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.project +17 -0
- data/.rvmrc +1 -1
- data/Gemfile +5 -3
- data/Gemfile.lock +9 -3
- data/README.md +124 -13
- data/Rakefile +6 -4
- data/VERSION +1 -1
- data/autoscan.log +0 -0
- data/configure.scan +17 -0
- data/lib/rapi_doc.rb +75 -51
- data/lib/rapi_doc/method_doc.rb +71 -0
- data/lib/rapi_doc/rapi_config.rb +40 -0
- data/lib/rapi_doc/resource_doc.rb +85 -0
- data/lib/rapi_doc/tasks/rapi_doc_tasks.rake +29 -30
- data/templates/Search.png +0 -0
- data/templates/_resource_header.html.haml +17 -0
- data/templates/_resource_method.html.haml +38 -0
- data/templates/index.html.haml +40 -0
- data/templates/scripts.js +22 -0
- data/templates/styles.css +80 -0
- metadata +75 -29
- data/lib/doc_parser.rb +0 -53
- data/lib/doc_util.rb +0 -8
- data/lib/method_doc.rb +0 -44
- data/lib/rapi_config.rb +0 -37
- data/lib/resource_doc.rb +0 -102
- data/templates/_resource_header.html.erb +0 -18
- data/templates/_resource_method.html.erb +0 -56
- data/templates/class_layout.html.erb +0 -36
- data/templates/config.yml +0 -3
- data/templates/frameset.html.erb +0 -11
- data/templates/layout.html.erb +0 -69
- data/templates/main.html.erb +0 -15
@@ -0,0 +1,40 @@
|
|
1
|
+
module RapiDoc
|
2
|
+
module RapiConfig
|
3
|
+
|
4
|
+
# following helper methods return the directory location if no file type is specified or return the file location
|
5
|
+
# for that directory if one is supplied
|
6
|
+
def template_dir(f = nil)
|
7
|
+
@template_dir ||= File.join(File.dirname(__FILE__), '../../templates')
|
8
|
+
form_file_name @template_dir, f
|
9
|
+
end
|
10
|
+
|
11
|
+
def config_dir(f = nil)
|
12
|
+
@config_dir ||= File.join(::Rails.root.to_s, 'config/rapi_doc')
|
13
|
+
form_file_name @config_dir, f
|
14
|
+
end
|
15
|
+
|
16
|
+
def target_dir(f = nil)
|
17
|
+
@target_dir ||= File.join(::Rails.root.to_s, 'public/apidoc/')
|
18
|
+
form_file_name @target_dir, f
|
19
|
+
end
|
20
|
+
|
21
|
+
def controller_dir(f = nil)
|
22
|
+
@controller_dir ||= File.join(::Rails.root.to_s, 'app/controllers/')
|
23
|
+
form_file_name @controller_dir, f
|
24
|
+
end
|
25
|
+
|
26
|
+
# WARNING! - temp_dir will return different location for different runs. Use with Caution!
|
27
|
+
def temp_dir(f = nil)
|
28
|
+
@temp_dir ||= "#{Dir.mktmpdir("apidoc")}/"
|
29
|
+
form_file_name @temp_dir, f
|
30
|
+
end
|
31
|
+
|
32
|
+
def form_file_name(dir, file)
|
33
|
+
case file
|
34
|
+
when NilClass then dir
|
35
|
+
when String then File.join(dir, file)
|
36
|
+
else raise ArgumentError, "Invalid argument #{file}"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require_relative 'method_doc'
|
3
|
+
|
4
|
+
module RapiDoc
|
5
|
+
# custom exception class
|
6
|
+
class ParsingException < Exception;
|
7
|
+
end
|
8
|
+
# ResourceDoc holds the information a resource contains. It parses the class header and also the
|
9
|
+
# method documentation, which will be contained in MethodDoc.
|
10
|
+
class ResourceDoc
|
11
|
+
|
12
|
+
attr_reader :name, :resource_location, :controller_name, :class_block, :function_blocks, :resource_header, :resource_methods
|
13
|
+
|
14
|
+
# Initializes ResourceDoc.
|
15
|
+
def initialize(name, resource_location, controller_location, options = {})
|
16
|
+
@name = name
|
17
|
+
@class_block = nil
|
18
|
+
@function_blocks = []
|
19
|
+
@resource_methods = []
|
20
|
+
@resource_header = ""
|
21
|
+
@standard_methods = options[:standard_methods] || [:put, :post, :get, :delete]
|
22
|
+
@resource_location = resource_location
|
23
|
+
@controller_location = controller_location
|
24
|
+
@controller_name = File.basename(controller_location)
|
25
|
+
end
|
26
|
+
|
27
|
+
# parse the controller
|
28
|
+
def parse_apidoc!(class_template, method_template)
|
29
|
+
lines = IO.readlines(@controller_location)
|
30
|
+
begin
|
31
|
+
@class_block, @function_blocks = ResourceDoc.parse_controller_doc(@name, lines)
|
32
|
+
rescue ParsingException => ex
|
33
|
+
puts "error #{ex} while parsing #{@controller_location}"
|
34
|
+
exit
|
35
|
+
else
|
36
|
+
@resource_header = Haml::Engine.new(class_template).render(@class_block) unless class_block.nil?
|
37
|
+
@resource_methods = @function_blocks.each_with_index.collect do |method_block, i|
|
38
|
+
Haml::Engine.new(method_template).render(method_block)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# This method parses the doc
|
44
|
+
def self.parse_controller_doc(name, lines)
|
45
|
+
current_api_block = nil
|
46
|
+
current_scope = :none
|
47
|
+
in_class = false
|
48
|
+
class_block = nil
|
49
|
+
function_blocks = []
|
50
|
+
order = 1
|
51
|
+
lines.each_with_index do |line, line_no|
|
52
|
+
line.gsub!(/^ *#/, '') # strip the starting '#' on the line
|
53
|
+
case line
|
54
|
+
when /=begin apidoc/
|
55
|
+
# if we get apidoc tag inside class definition, then they are for a method
|
56
|
+
current_scope = !in_class ? :class : :function
|
57
|
+
current_api_block = MethodDoc.new(name, current_scope, order)
|
58
|
+
when /=end/
|
59
|
+
if current_api_block.nil?
|
60
|
+
raise ParsingException, "#{line_no} - No starttag for '=end' found"
|
61
|
+
else
|
62
|
+
case current_scope
|
63
|
+
when :class
|
64
|
+
class_block = current_api_block
|
65
|
+
when :function
|
66
|
+
function_blocks << current_api_block
|
67
|
+
else
|
68
|
+
raise ParsingException, "logic error: unknown current scope #{current_scope}"
|
69
|
+
end
|
70
|
+
current_api_block = nil
|
71
|
+
current_scope = :none
|
72
|
+
order += 1
|
73
|
+
end
|
74
|
+
when /class/ # keep track of whether a resource or an api is being annotated
|
75
|
+
in_class = true
|
76
|
+
else
|
77
|
+
if current_api_block # process ines only if they are apidoc comments
|
78
|
+
current_scope = current_api_block.process_line(line, current_scope)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
[class_block, function_blocks]
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -1,41 +1,40 @@
|
|
1
|
-
include RapiDoc::
|
1
|
+
include RapiDoc::RAPIDoc
|
2
2
|
|
3
3
|
namespace :rapi_doc do
|
4
|
+
|
4
5
|
desc "Generate the config files"
|
5
6
|
task :setup do
|
6
|
-
|
7
|
-
|
8
|
-
else
|
9
|
-
FileUtils.mkdir(config_dir)
|
10
|
-
end
|
11
|
-
%w(config_file layout_file class_layout_file frameset_file main_file).each do |type_file|
|
12
|
-
target_file = send(type_file, :target)
|
13
|
-
template_file = send(type_file, :template)
|
14
|
-
if File.exist? target_file
|
15
|
-
puts "#{BASE_DIR}/#{File.basename(target_file)} exists"
|
16
|
-
else
|
17
|
-
FileUtils.cp template_file, config_dir
|
18
|
-
puts "Generated #{BASE_DIR}/#{File.basename(template_file)}" # TODO Add instructions for users to update the config file
|
19
|
-
end
|
20
|
-
end
|
7
|
+
create_structure!
|
8
|
+
#puts "Now specify controllers in config/rapi_doc/config.yml for which api documentation is to be generated and then run rapi_doc::generate"
|
21
9
|
end
|
22
|
-
|
10
|
+
|
11
|
+
desc "Generate the api documentation"
|
23
12
|
task :generate do
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
13
|
+
resources = get_resources! do |controller, controller_url, controller_location|
|
14
|
+
print "Generate documentation for resource \"#{controller}\" mapped at \"#{controller_url}\" (\"#{File.basename(controller_location)}\")? (Y/n):"
|
15
|
+
response = STDIN.gets.chomp
|
16
|
+
['y', 'Y'].include? response
|
28
17
|
end
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
yml.keys.each do |key|
|
34
|
-
resources << RapiDoc::ResourceDoc.new(key, yml[key]["location"], yml[key]["controller_name"])
|
35
|
-
end
|
36
|
-
|
18
|
+
if resources.empty?
|
19
|
+
puts "Nothing to generate"
|
20
|
+
#puts "Please specify controllers in config/rapi_doc/config.yml for which api documentation is to be generated and then run rapi_doc::generate again"
|
21
|
+
else
|
37
22
|
# generate the apidoc
|
38
|
-
|
23
|
+
puts "Generating API documentation..."
|
24
|
+
generate_templates!(resources)
|
25
|
+
move_structure!
|
26
|
+
puts "Finished."
|
39
27
|
end
|
40
28
|
end
|
29
|
+
|
30
|
+
desc "Clean up generated documentation"
|
31
|
+
task :clean do
|
32
|
+
remove_structure!
|
33
|
+
end
|
34
|
+
|
35
|
+
desc "Clean up everything - generated documentation and all the config"
|
36
|
+
task :distclean do
|
37
|
+
remove_all!
|
38
|
+
end
|
39
|
+
|
41
40
|
end
|
Binary file
|
@@ -0,0 +1,17 @@
|
|
1
|
+
.resource_header
|
2
|
+
%h2= @name
|
3
|
+
%p.resource_summary= @content
|
4
|
+
- if @xml || @json
|
5
|
+
%h3 Representations
|
6
|
+
- if @json
|
7
|
+
.json
|
8
|
+
%p
|
9
|
+
%strong JSON representation:
|
10
|
+
%p
|
11
|
+
%textarea= @json
|
12
|
+
- if @xml
|
13
|
+
.xml
|
14
|
+
%p
|
15
|
+
%strong XML representation:
|
16
|
+
%p
|
17
|
+
%textarea= @xml
|
@@ -0,0 +1,38 @@
|
|
1
|
+
.resource_methods
|
2
|
+
%a{:id => "#{@resource_name}_method_#{@method_order}"}
|
3
|
+
%p
|
4
|
+
%strong Description:
|
5
|
+
= @content
|
6
|
+
%h2= @url
|
7
|
+
- if @access
|
8
|
+
%strong Access:
|
9
|
+
= @access
|
10
|
+
%br/
|
11
|
+
- if @return
|
12
|
+
%strong Return:
|
13
|
+
= @return
|
14
|
+
%br/
|
15
|
+
- if @params
|
16
|
+
%strong Parameters:
|
17
|
+
%ul
|
18
|
+
- @params.each do |v|
|
19
|
+
%li= v
|
20
|
+
- unless @outputs.empty?
|
21
|
+
%ul.output_format
|
22
|
+
- @outputs.each do |output_format, output|
|
23
|
+
%li{:class => output_format}
|
24
|
+
%a{:href => "##{"#{@resource_name}_#{output_format}_#{@method_order}"}"}= output_format
|
25
|
+
.output
|
26
|
+
- @outputs.each do |output_format, output|
|
27
|
+
%div{:class => output_format}
|
28
|
+
%a{:id => "#{@resource_name}_#{output_format}_#{@method_order}"}
|
29
|
+
%pre.prettyprint= output
|
30
|
+
%br/
|
31
|
+
- unless @request.blank?
|
32
|
+
%strong Request:
|
33
|
+
%pre.code
|
34
|
+
%code= @request
|
35
|
+
- unless @response.blank?
|
36
|
+
%strong Response:
|
37
|
+
%pre.code
|
38
|
+
%code= @response
|
@@ -0,0 +1,40 @@
|
|
1
|
+
!!!
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%meta{:content => "text/html; charset=utf-8", "http-equiv" => "Content-Type"}/
|
5
|
+
%link{:href => "styles.css", :rel => "stylesheet", :type => "text/css"}/
|
6
|
+
%script{:src => "http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js", :type => "text/javascript"}
|
7
|
+
%script{:src => "scripts.js", :type => "text/javascript"}
|
8
|
+
%title apidoc
|
9
|
+
%body
|
10
|
+
#resource_index
|
11
|
+
%form{:onsubmit => "return false;"}
|
12
|
+
%input{:type => "text"}/
|
13
|
+
%img{:alt => "search", :src => "Search.png"}
|
14
|
+
%h2 Resources
|
15
|
+
%ul#resource_index
|
16
|
+
- resource_docs.each do |resource|
|
17
|
+
%li
|
18
|
+
%a{:href => "##{resource.name}"}= resource.name
|
19
|
+
- if resource.function_blocks.any?
|
20
|
+
%ul
|
21
|
+
- resource.function_blocks.each do |method_block|
|
22
|
+
%li
|
23
|
+
%a{:href => "##{resource.name}_method_#{method_block.method_order}"}
|
24
|
+
= "#{method_block.method} #{method_block.url}"
|
25
|
+
#resources
|
26
|
+
%ul
|
27
|
+
%li
|
28
|
+
%strong Show XML
|
29
|
+
%a{:href => "#", :onclick => "$('.xml').toggle();"} toggle
|
30
|
+
%li
|
31
|
+
%strong Show JSON
|
32
|
+
%a{:href => "#", :onclick => "$('.json').toggle();"} toggle
|
33
|
+
- resource_docs.each do |resource|
|
34
|
+
%a{:id => "#{resource.name}"}
|
35
|
+
.resource
|
36
|
+
- if resource.resource_header
|
37
|
+
= resource.resource_header
|
38
|
+
- if resource.resource_methods
|
39
|
+
- resource.resource_methods.each do |method|
|
40
|
+
= method
|
@@ -0,0 +1,22 @@
|
|
1
|
+
/**
|
2
|
+
* created by: salilwadnerkar
|
3
|
+
* Date: 11/4/12
|
4
|
+
*/
|
5
|
+
$(function () {
|
6
|
+
$('#resource_index input').keyup(function(event) {
|
7
|
+
if ( event.keyCode == 13 ) {
|
8
|
+
event.preventDefault();
|
9
|
+
} else {
|
10
|
+
var search_txt = $(this).val();
|
11
|
+
var search_regex = new RegExp(search_txt, 'g');
|
12
|
+
$("#resource_index ul li").each ( function() {
|
13
|
+
var elem = $(this)
|
14
|
+
var h_elem = elem.find('a')[0];
|
15
|
+
var link_txt = h_elem.text;
|
16
|
+
var match = link_txt.match(search_regex);
|
17
|
+
match ? elem.show() : elem.hide();
|
18
|
+
});
|
19
|
+
}
|
20
|
+
});
|
21
|
+
});
|
22
|
+
|
@@ -0,0 +1,80 @@
|
|
1
|
+
html, body {
|
2
|
+
width: 100%;
|
3
|
+
height: 100%;
|
4
|
+
}
|
5
|
+
|
6
|
+
body {
|
7
|
+
line-height: 1.5em;
|
8
|
+
}
|
9
|
+
|
10
|
+
#resources {
|
11
|
+
float: right;
|
12
|
+
width: 80%;
|
13
|
+
}
|
14
|
+
|
15
|
+
#resource_index {
|
16
|
+
float: left;
|
17
|
+
height: 100%;
|
18
|
+
position: fixed;
|
19
|
+
width: 19%;
|
20
|
+
background-color: #ade;
|
21
|
+
}
|
22
|
+
|
23
|
+
#resource_index li {
|
24
|
+
background-color: #6699AA;
|
25
|
+
color:white;
|
26
|
+
padding: 5px 10px 0;
|
27
|
+
}
|
28
|
+
|
29
|
+
#resource_index li a {
|
30
|
+
display: block;
|
31
|
+
text-decoration: none;
|
32
|
+
font-weight: bold;
|
33
|
+
color:#ffffff;
|
34
|
+
}
|
35
|
+
|
36
|
+
#resource_index form img {
|
37
|
+
height: 25px;
|
38
|
+
width: 25px;
|
39
|
+
}
|
40
|
+
|
41
|
+
#resources h2 {
|
42
|
+
background-color: #6699AA;
|
43
|
+
color:white;
|
44
|
+
}
|
45
|
+
|
46
|
+
ul, ul li {
|
47
|
+
margin: 0;
|
48
|
+
padding: 0;
|
49
|
+
list-style: none outside;
|
50
|
+
}
|
51
|
+
|
52
|
+
h1, h2, h3 {
|
53
|
+
padding-top: 10px;
|
54
|
+
padding-bottom: 10px;
|
55
|
+
}
|
56
|
+
|
57
|
+
textarea {
|
58
|
+
width:100%;
|
59
|
+
height:200px;
|
60
|
+
display:none;
|
61
|
+
}
|
62
|
+
|
63
|
+
#method {
|
64
|
+
padding: 15px 30px;
|
65
|
+
border-top:1px solid #ddd;
|
66
|
+
}
|
67
|
+
|
68
|
+
#http_verb {
|
69
|
+
color:#ff6600;
|
70
|
+
width:200px;
|
71
|
+
margin-right:20px;'
|
72
|
+
}
|
73
|
+
|
74
|
+
.description{
|
75
|
+
font-size: 1.4em;
|
76
|
+
color:#262626;
|
77
|
+
}
|
78
|
+
.code {
|
79
|
+
font-family: monospace;
|
80
|
+
}
|
metadata
CHANGED
@@ -1,20 +1,21 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rapi_doc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Husein Choroomi
|
9
9
|
- Adinda Praditya
|
10
|
+
- Salil Wadnerkar
|
10
11
|
autorequire:
|
11
12
|
bindir: bin
|
12
13
|
cert_chain: []
|
13
|
-
date: 2012-
|
14
|
+
date: 2012-05-22 00:00:00.000000000Z
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
16
17
|
name: activesupport
|
17
|
-
requirement: &
|
18
|
+
requirement: &70219113103900 !ruby/object:Gem::Requirement
|
18
19
|
none: false
|
19
20
|
requirements:
|
20
21
|
- - ! '>='
|
@@ -22,43 +23,65 @@ dependencies:
|
|
22
23
|
version: '2.1'
|
23
24
|
type: :runtime
|
24
25
|
prerelease: false
|
25
|
-
version_requirements: *
|
26
|
+
version_requirements: *70219113103900
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: haml
|
29
|
+
requirement: &70219113100140 !ruby/object:Gem::Requirement
|
30
|
+
none: false
|
31
|
+
requirements:
|
32
|
+
- - ! '>='
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: *70219113100140
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: rdoc
|
40
|
+
requirement: &70219113098480 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
type: :runtime
|
47
|
+
prerelease: false
|
48
|
+
version_requirements: *70219113098480
|
26
49
|
- !ruby/object:Gem::Dependency
|
27
50
|
name: rspec
|
28
|
-
requirement: &
|
51
|
+
requirement: &70219113096980 !ruby/object:Gem::Requirement
|
29
52
|
none: false
|
30
53
|
requirements:
|
31
|
-
- -
|
54
|
+
- - ! '>='
|
32
55
|
- !ruby/object:Gem::Version
|
33
56
|
version: 2.7.0
|
34
57
|
type: :development
|
35
58
|
prerelease: false
|
36
|
-
version_requirements: *
|
59
|
+
version_requirements: *70219113096980
|
37
60
|
- !ruby/object:Gem::Dependency
|
38
61
|
name: bundler
|
39
|
-
requirement: &
|
62
|
+
requirement: &70219113095540 !ruby/object:Gem::Requirement
|
40
63
|
none: false
|
41
64
|
requirements:
|
42
|
-
- -
|
65
|
+
- - ! '>='
|
43
66
|
- !ruby/object:Gem::Version
|
44
67
|
version: 1.0.0
|
45
68
|
type: :development
|
46
69
|
prerelease: false
|
47
|
-
version_requirements: *
|
70
|
+
version_requirements: *70219113095540
|
48
71
|
- !ruby/object:Gem::Dependency
|
49
72
|
name: jeweler
|
50
|
-
requirement: &
|
73
|
+
requirement: &70219113094520 !ruby/object:Gem::Requirement
|
51
74
|
none: false
|
52
75
|
requirements:
|
53
|
-
- -
|
76
|
+
- - ! '>='
|
54
77
|
- !ruby/object:Gem::Version
|
55
78
|
version: 1.6.4
|
56
79
|
type: :development
|
57
80
|
prerelease: false
|
58
|
-
version_requirements: *
|
81
|
+
version_requirements: *70219113094520
|
59
82
|
- !ruby/object:Gem::Dependency
|
60
83
|
name: rcov
|
61
|
-
requirement: &
|
84
|
+
requirement: &70219113092920 !ruby/object:Gem::Requirement
|
62
85
|
none: false
|
63
86
|
requirements:
|
64
87
|
- - ! '>='
|
@@ -66,8 +89,31 @@ dependencies:
|
|
66
89
|
version: '0'
|
67
90
|
type: :development
|
68
91
|
prerelease: false
|
69
|
-
version_requirements: *
|
70
|
-
|
92
|
+
version_requirements: *70219113092920
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: haml
|
95
|
+
requirement: &70219113085900 !ruby/object:Gem::Requirement
|
96
|
+
none: false
|
97
|
+
requirements:
|
98
|
+
- - ! '>='
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '0'
|
101
|
+
type: :runtime
|
102
|
+
prerelease: false
|
103
|
+
version_requirements: *70219113085900
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: rdoc
|
106
|
+
requirement: &70219113085080 !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - ! '>='
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
type: :runtime
|
113
|
+
prerelease: false
|
114
|
+
version_requirements: *70219113085080
|
115
|
+
description: Rails API Doc Generator. Parses the apidoc annotations to generate HTML
|
116
|
+
pages.
|
71
117
|
email: hchoroomi@gmail.com
|
72
118
|
executables: []
|
73
119
|
extensions: []
|
@@ -75,6 +121,7 @@ extra_rdoc_files:
|
|
75
121
|
- LICENSE.txt
|
76
122
|
- README.md
|
77
123
|
files:
|
124
|
+
- .project
|
78
125
|
- .rvmrc
|
79
126
|
- Gemfile
|
80
127
|
- Gemfile.lock
|
@@ -82,26 +129,25 @@ files:
|
|
82
129
|
- README.md
|
83
130
|
- Rakefile
|
84
131
|
- VERSION
|
132
|
+
- autoscan.log
|
133
|
+
- configure.scan
|
85
134
|
- init.rb
|
86
135
|
- install.rb
|
87
|
-
- lib/doc_parser.rb
|
88
|
-
- lib/doc_util.rb
|
89
|
-
- lib/method_doc.rb
|
90
|
-
- lib/rapi_config.rb
|
91
136
|
- lib/rapi_doc.rb
|
137
|
+
- lib/rapi_doc/method_doc.rb
|
92
138
|
- lib/rapi_doc/railtie.rb
|
139
|
+
- lib/rapi_doc/rapi_config.rb
|
140
|
+
- lib/rapi_doc/resource_doc.rb
|
93
141
|
- lib/rapi_doc/tasks/rapi_doc_tasks.rake
|
94
|
-
- lib/resource_doc.rb
|
95
142
|
- spec/doc_parser_spec.rb
|
96
143
|
- spec/method_doc_spec.rb
|
97
144
|
- spec/spec_helper.rb
|
98
|
-
- templates/
|
99
|
-
- templates/
|
100
|
-
- templates/
|
101
|
-
- templates/
|
102
|
-
- templates/
|
103
|
-
- templates/
|
104
|
-
- templates/main.html.erb
|
145
|
+
- templates/Search.png
|
146
|
+
- templates/_resource_header.html.haml
|
147
|
+
- templates/_resource_method.html.haml
|
148
|
+
- templates/index.html.haml
|
149
|
+
- templates/scripts.js
|
150
|
+
- templates/styles.css
|
105
151
|
- uninstall.rb
|
106
152
|
homepage: http://github.com/elc/rapi_doc
|
107
153
|
licenses:
|
@@ -118,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
118
164
|
version: '0'
|
119
165
|
segments:
|
120
166
|
- 0
|
121
|
-
hash:
|
167
|
+
hash: 3223693436194821202
|
122
168
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
169
|
none: false
|
124
170
|
requirements:
|