apidocs 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: {}