apidocs 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cbb78f9303f77d1e79cc699920da79e6cdd83a76
4
- data.tar.gz: 436c973b2bcfc270e31f8ec9245f983bbc0805c2
3
+ metadata.gz: 23ce21f1585d8d57c49827f01a859ada6c85a8a9
4
+ data.tar.gz: f188f609d02c9f7b576ee0e2465c098552fddf87
5
5
  SHA512:
6
- metadata.gz: e811590754e9af2c13c39d7e8436d89ee7f264abb1de0ab954eff57bd237209667908e2a16ba647f56b159b64836a5f21970b1dd5d860a13987d0cce6b2e8de1
7
- data.tar.gz: b4aa56b568dc4039cf37a3a3e12c299bbd78f2e5fb0c3b329e6f174b909542cd21f11319b8b1a83d65204c431973d4b272c515fc6fc3148766382099d882f0fc
6
+ metadata.gz: b72c69640d2092773e8e33a184a13ece507ec10561271102e6c37780b5dae3c425a2bd0f67635a9ced1901fb5157136a082b3188f4803e8eb555f828f04e3aa2
7
+ data.tar.gz: be363524935efb6957511d522d12d05aed221c2c96b91129ec0eff9df72d8e00da454e7a65e22a11e681f6760b4eec09f1b780e1d2a41c873ab55e2a18f5a1ec
data/README.md CHANGED
@@ -1,18 +1,30 @@
1
- apidocs
1
+ APIDOCS
2
2
  =======
3
3
 
4
- Generates and serves HTML documentation out of your routing and controllers for your Rails apps
4
+ Generates on fly and serves RDoc documentation out of your controllers actions.
5
+
6
+ Implemented as rails engine
5
7
 
6
8
  Installation
7
9
  =======
10
+ Apidocs works with Rails 3.2 onwards. You can add it to your Gemfile with:
11
+
12
+ ```gem 'apidocs'```
13
+
14
+ Run the bundle command to install it.
8
15
 
9
16
  Add ```mount Apidocs::Engine => "/apidocs"``` to your applications ```routes.rb```
10
17
 
11
18
  Configuration
12
19
  =======
13
20
 
21
+ For better safety, in configuration file there is a MD5 hash of password used instead of actual password.
22
+ To generate it for your configuration use Digest::MD5.hexdigest('YOUR-PASSWORD-HERE').
23
+ It can be done in irb after requiring 'digest/md5'.
24
+
14
25
  Apidocs.configure do |config|
15
- config.regex_filter = /api/ # filter routes
26
+ config.regex_filter = /\A\/api/ # filter routes
16
27
  config.http_username = 'admin' # optional http basic authorization
17
28
  config.http_password = '5ebe2294ecd0e0f08eab7690d2a6ee69' # md5 hash for password
29
+ config.app_name = 'Test APP' # application name
18
30
  end
@@ -3,10 +3,10 @@ require_dependency "apidocs/application_controller"
3
3
  module Apidocs
4
4
  class ApidocsController < ApplicationController
5
5
  before_action :authenticate
6
+ before_action :clean_cache, if: -> { Rails.env.development? }
6
7
 
7
8
  def index
8
9
  @routes = routes_rdoc
9
-
10
10
  if params[:search]
11
11
  @searchinput = params[:search]
12
12
  end
@@ -14,20 +14,10 @@ module Apidocs
14
14
  if params[:path]
15
15
  @route = routes_rdoc[params[:path]]
16
16
  else
17
- begin
18
- h = RDoc::Markup::ToHtml.new(RDoc::Options.new)
19
- @intro = h.convert(Rails.root.join('API.rdoc').read)
20
- rescue
21
- @intro = "Please put API.rdoc into "+Rails.root.to_s
22
- end
17
+ @intro = intro_rdoc
23
18
  end
24
19
  end
25
20
 
26
- def flush
27
- Rails.cache.delete("routes_rdoc_html")
28
- redirect_to :back
29
- end
30
-
31
21
  private
32
22
 
33
23
  def routes_rdoc
@@ -37,6 +27,12 @@ module Apidocs
37
27
  end
38
28
  end
39
29
 
30
+ def intro_rdoc
31
+ RDoc::Markup::ToHtml.new(RDoc::Options.new).convert(Rails.root.join('API.rdoc').read)
32
+ rescue
33
+ ""
34
+ end
35
+
40
36
  def authenticate
41
37
  if Apidocs.configuration.http_username && Apidocs.configuration.http_password
42
38
  authenticate_or_request_with_http_basic do |u, p|
@@ -44,6 +40,9 @@ module Apidocs
44
40
  end
45
41
  end
46
42
  end
43
+
44
+ def clean_cache
45
+ Rails.cache.delete("routes_rdoc_html")
46
+ end
47
47
  end
48
48
  end
49
-
@@ -1,18 +1,22 @@
1
1
  <% content_for :nav do %>
2
- <ul id="search-list" class="list-unstyled">
3
- <% @routes.each do |path, route| %>
4
- <li><%= link_to path, root_path(path: path), class: 'nav-button', title: path %></li>
5
- <% end %>
6
- </ul>
2
+ <ul id="search-list" class="list-unstyled">
3
+ <% @routes.each do |path, route| %>
4
+ <li><%= link_to path, root_path(path: path), class: 'nav-button', title: path %></li>
5
+ <% end %>
6
+ </ul>
7
7
  <% end %>
8
+
8
9
  <% if @intro %>
9
- <%= @intro.html_safe %>
10
+ <%= @intro.html_safe %>
10
11
  <% end %>
12
+
11
13
  <% if @route %>
12
- <% @route.each do |r| %>
13
- <h3 class="action-name">
14
- <%= r[:verb] %> <%= r[:path] %>
15
- </h3>
16
- <%= r[:html_comment].html_safe %>
17
- <% end %>
14
+ <% @route.each do |r| %>
15
+
16
+ <h3 class="action-name">
17
+ <%= r[:verb] %> <%= r[:path] %>
18
+ </h3>
19
+
20
+ <%= r[:html_comment].html_safe %>
21
+ <% end %>
18
22
  <% end%>
@@ -1,33 +1,34 @@
1
1
  <!DOCTYPE html>
2
2
  <html>
3
- <head>
4
- <title>Apidocs</title>
3
+ <head>
4
+ <title><%= Apidocs.configuration.app_name %> API</title>
5
5
  <%= stylesheet_link_tag "apidocs/application", media: "all" %>
6
6
  <%= javascript_include_tag "apidocs/application" %>
7
7
  <%= csrf_meta_tags %>
8
- </head>
9
- <body>
8
+ </head>
10
9
 
11
- <div class="container-fluid">
12
- <nav class="navbar navbar-default" role="navigation">
13
- <div class="container-fluid">
14
- <%= link_to 'APIDOC', root_path, class: 'navbar-brand' %>
15
- <form class="navbar-form navbar-left" role="search">
16
- <div class="form-group">
17
- <input type="text" value='<%= @searchinput %>' class="search-query" id="search-input" placeholder="Filter">
18
- </div>
10
+ <body>
11
+ <div class="container">
12
+ <div class="row">
13
+ <nav class="navbar navbar-default" role="navigation">
14
+ <%= link_to "#{Apidocs.configuration.app_name} API", root_path, class: 'navbar-brand' %>
15
+ </nav>
16
+
17
+ <div class="col-md-3">
18
+ <div class="row">
19
+ <form class="col-md-12" role="search">
20
+ <div class="form-group">
21
+ <input type="text" value='<%= @searchinput %>' class="form-control" id="search-input" placeholder="Filter">
22
+ </div>
23
+
24
+ <nav><%= yield(:nav) %></nav>
19
25
  </form>
26
+ </div>
20
27
  </div>
21
- </nav>
22
- <div class="row">
23
- <div class="col-md-2">
24
- <nav><%= yield(:nav) %></nav>
25
- </div>
26
- <div class="col-md-10">
27
- <article id="main-content"><%= yield %></article>
28
+ <div class="col-md-9">
29
+ <article id="main-content"><%= yield %></article>
28
30
  </div>
31
+ </div>
29
32
  </div>
30
- <%= link_to "&#8634;".html_safe, flush_path, id: 'reload' %>
31
- </div>
32
- </body>
33
+ </body>
33
34
  </html>
@@ -1,4 +1,3 @@
1
1
  Apidocs::Engine.routes.draw do
2
2
  root "apidocs#index"
3
- get '/flush' => 'apidocs#flush' ,as: :flush
4
3
  end
@@ -9,7 +9,7 @@ module Apidocs
9
9
  # generate_html entry point for on fly document generation
10
10
  def generate_html
11
11
  FileUtils.rm_rf(Rails.root.join('tmp/apidocs'))
12
- options = ["app/controllers", "--op=#{Rails.root.join('tmp/apidocs')}"]
12
+ options = [Rails.root.join("app/controllers").to_s, "--op=#{Rails.root.join('tmp/apidocs')}"]
13
13
 
14
14
  self.store = RDoc::Store.new
15
15
 
@@ -73,7 +73,7 @@ module Apidocs
73
73
  end
74
74
 
75
75
  class Configuration
76
- attr_accessor :regex_filter, :http_username, :http_password
76
+ attr_accessor :regex_filter, :http_username, :http_password, :app_name
77
77
  def initialize
78
78
  @regex_filter = /.*/
79
79
  end
@@ -1,3 +1,3 @@
1
1
  module Apidocs
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apidocs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
+ - Hubert Łępicki
8
+ - Dominika Kruk
7
9
  - Vladimir Motsak
8
10
  autorequire:
9
11
  bindir: bin
10
12
  cert_chain: []
11
- date: 2014-07-16 00:00:00.000000000 Z
13
+ date: 2014-07-18 00:00:00.000000000 Z
12
14
  dependencies:
13
15
  - !ruby/object:Gem::Dependency
14
16
  name: rails
@@ -66,22 +68,10 @@ dependencies:
66
68
  - - ">="
67
69
  - !ruby/object:Gem::Version
68
70
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: sqlite3
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- description: On Fly RDoc generation
71
+ description: Rails engine that will generate and serve docs for your APIs if you documented
72
+ your controllers using RDoc
84
73
  email:
74
+ - hubert.lepicki@gmail.com
85
75
  - vmotsak@gmail.com
86
76
  executables: []
87
77
  extensions: []
@@ -105,7 +95,7 @@ files:
105
95
  - lib/apidocs/engine.rb
106
96
  - lib/apidocs/version.rb
107
97
  - lib/tasks/apidocs_tasks.rake
108
- homepage: http://github.com/vmotsak/apidocs
98
+ homepage: http://github.com/hubertlepicki/apidocs
109
99
  licenses:
110
100
  - MIT
111
101
  metadata: {}