documentarian 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ODgzMmM2ZjVjNjRhMzE1MGYzYmQ4MjFmNzcxYzlmMDc0YjcyODI3OQ==
5
+ data.tar.gz: !binary |-
6
+ NGZhOTdjZTk3NzkxZGViYzIxOWM1ODU3ZDlmMGUwYmM1ZTkzZmQwZA==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ NmU0MmM3YzRmNjgzYzE2MzcyZWRiMTM5MDZkMjdmOTcyNDRkYWE5NjQzMzY2
10
+ NmRiNTZhOGY3ZDQ3MmRiNzZlZWRhNDE3YzIxNjBhYzA0MmFkNDhiOGVmYzIy
11
+ NDAzYmMxNzY0NTBmNWU0ZjU5M2IzZTRlOGYzZmM2M2ZjZjAxYTk=
12
+ data.tar.gz: !binary |-
13
+ MTU2MTllZjM4MDJkN2M2MjIzYTEzMWNlOTFhY2NiNzRlOWNmYjk4YTVmMzRl
14
+ MTg3MzkyODZmZGZlNDhmY2E3YmVhYmZmM2MwY2Y0ODQ4MGExNjE4YzFmNTBk
15
+ NTk4MTI1YjA5YWNmN2U4MmM5YTVlODQ1YjA5NDRjYWUwNDIzNjc=
@@ -0,0 +1,14 @@
1
+ $(document).ready(function() {
2
+ $('pre').each(function(i, el) {
3
+ var lang = $(el).attr('lang')
4
+ if (lang) {
5
+ $(el).children('code').addClass($(el).attr('lang'));
6
+ } else {
7
+ $(el).children('code').addClass($(el).attr('nohighlight'));
8
+ }
9
+ })
10
+
11
+ $('pre[lang] > code').each(function(i, block) {
12
+ hljs.highlightBlock(block);
13
+ });
14
+ });
@@ -0,0 +1,506 @@
1
+ html, body {
2
+ padding: 0;
3
+ margin: 0;
4
+ height: 100%;
5
+ width: 100%;
6
+ }
7
+ .clear {
8
+ clear: both;
9
+ }
10
+
11
+ #document-content {
12
+ clear: left;
13
+ float: left;
14
+ width: 100%;
15
+ overflow: hidden;
16
+ }
17
+ #navigation-content {
18
+ float: left;
19
+ width: 100%;
20
+ position: relative;
21
+ right: 80%;
22
+ background-color: #efefef;
23
+ }
24
+ #navigation {
25
+ float: left;
26
+ width: 20%;
27
+ position: relative;
28
+ left: 80%;
29
+ overflow: hidden;
30
+ }
31
+ #document {
32
+ float: left;
33
+ width: 80%;
34
+ position: relative;
35
+ left: 80%;
36
+ overflow: hidden;
37
+ }
38
+
39
+
40
+ #content {
41
+ width:100%;
42
+ }
43
+ #navigation {
44
+ width:20%;
45
+ float: left;
46
+ ul {
47
+ list-style: none;
48
+ width:100%;
49
+ margin: 0;
50
+ padding: 0;
51
+ li {
52
+ span {
53
+ display: block;
54
+ padding: 10px 15px;
55
+ a {
56
+ text-decoration: none;
57
+ color: #43B4DD;
58
+ }
59
+ &.active {
60
+ border-left: 5px solid #43B4DD;
61
+ a {
62
+ font-weight: bold;
63
+ }
64
+ }
65
+ }
66
+ > ul {
67
+ display: none;
68
+ }
69
+ &.show {
70
+ > ul {
71
+ display: block;
72
+ }
73
+ }
74
+ }
75
+ }
76
+ }
77
+
78
+ #document {
79
+ padding: 20px;
80
+ float: left;
81
+ border-radius: 5px;
82
+ width: 75%;
83
+ overflow:hidden;
84
+ font-family:"Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif;
85
+ font-size:16px;
86
+ line-height:1.6;
87
+ word-wrap:break-word
88
+ }
89
+ #document>*:first-child {
90
+ margin-top:0 !important
91
+ }
92
+ #document>*:last-child {
93
+ margin-bottom:0 !important
94
+ }
95
+ #document a {
96
+ color: #43B4DD;
97
+ }
98
+ #document a:visited {
99
+ color: #43B4DD;
100
+ }
101
+ #document a:not([href]) {
102
+ color:inherit;
103
+ text-decoration:none
104
+ }
105
+ #document a[name] {
106
+ color:inherit;
107
+ text-decoration:none
108
+ }
109
+ #document h1,
110
+ #document h2,
111
+ #document h3,
112
+ #document h4,
113
+ #document h5,
114
+ #document h6 {
115
+ position:relative;
116
+ margin-top:1em;
117
+ margin-bottom:16px;
118
+ font-weight:bold;
119
+ line-height:1.4
120
+ }
121
+
122
+ #document h1 tt,
123
+ #document h1 code,
124
+ #document h2 tt,
125
+ #document h2 code,
126
+ #document h3 tt,
127
+ #document h3 code,
128
+ #document h4 tt,
129
+ #document h4 code,
130
+ #document h5 tt,
131
+ #document h5 code,
132
+ #document h6 tt,
133
+ #document h6 code {
134
+ font-size:inherit
135
+ }
136
+ #document h1 {
137
+ padding-bottom:0.3em;
138
+ font-size:2.25em;
139
+ line-height:1.2;
140
+ border-bottom:1px solid #eee
141
+ }
142
+ #document h2 {
143
+ padding-bottom:0.3em;
144
+ font-size:1.75em;
145
+ line-height:1.225;
146
+ border-bottom:1px solid #eee
147
+ }
148
+ #document h3 {
149
+ font-size:1.5em;
150
+ line-height:1.43
151
+ }
152
+ #document h4 {
153
+ font-size:1.25em
154
+ }
155
+ #document h5 {
156
+ font-size:1em
157
+ }
158
+ #document h6 {
159
+ font-size:1em;
160
+ color:#777
161
+ }
162
+ #document p,
163
+ #document blockquote,
164
+ #document ul,
165
+ #document ol,
166
+ #document dl,
167
+ #document table,
168
+ #document pre {
169
+ margin-top:0;
170
+ margin-bottom:15px
171
+ }
172
+ #document hr {
173
+ height:4px;
174
+ padding:0;
175
+ margin:16px 0;
176
+ background-color:#e7e7e7;
177
+ border:0 none
178
+ }
179
+ #document ul,
180
+ #document ol {
181
+ padding-left:2em
182
+ }
183
+ #document ul.no-list,
184
+ #document ol.no-list {
185
+ padding:0;
186
+ list-style-type:none
187
+ }
188
+ #document ul ul,
189
+ #document ul ol,
190
+ #document ol ol,
191
+ #document ol ul {
192
+ margin-top:0;
193
+ margin-bottom:0
194
+ }
195
+ #document li>p {
196
+ margin-top:16px
197
+ }
198
+ #document dl {
199
+ padding:0
200
+ }
201
+ #document dl dt {
202
+ padding:0;
203
+ margin-top:16px;
204
+ font-size:1em;
205
+ font-style:italic;
206
+ font-weight:bold
207
+ }
208
+ #document dl dd {
209
+ padding:0 16px;
210
+ margin-bottom:16px
211
+ }
212
+ #document blockquote {
213
+ padding:0 15px;
214
+ color:#777;
215
+ border-left:4px solid #ddd
216
+ }
217
+ #document blockquote>:first-child {
218
+ margin-top:0
219
+ }
220
+ #document blockquote>:last-child {
221
+ margin-bottom:0
222
+ }
223
+ #document table {
224
+ display:block;
225
+ width:100%;
226
+ overflow:auto;
227
+ word-break:normal;
228
+ word-break:keep-all
229
+ }
230
+ #document table th {
231
+ font-weight:bold
232
+ }
233
+ #document table th,
234
+ #document table td {
235
+ padding:6px 13px;
236
+ border:1px solid #ddd
237
+ }
238
+ #document table tr {
239
+ background-color:#fff;
240
+ border-top:1px solid #ccc
241
+ }
242
+ #document table tr:nth-child(2n) {
243
+ background-color:#f8f8f8
244
+ }
245
+ #document img {
246
+ max-width:100%;
247
+ box-sizing:border-box
248
+ }
249
+ #document .emoji {
250
+ max-width:none
251
+ }
252
+ #document span.frame {
253
+ display:block;
254
+ overflow:hidden
255
+ }
256
+ #document span.frame>span {
257
+ display:block;
258
+ float:left;
259
+ width:auto;
260
+ padding:7px;
261
+ margin:13px 0 0;
262
+ overflow:hidden;
263
+ border:1px solid #ddd
264
+ }
265
+ #document span.frame span img {
266
+ display:block;
267
+ float:left
268
+ }
269
+ #document span.frame span span {
270
+ display:block;
271
+ padding:5px 0 0;
272
+ clear:both;
273
+ color:#333
274
+ }
275
+ #document span.align-center {
276
+ display:block;
277
+ overflow:hidden;
278
+ clear:both
279
+ }
280
+ #document span.align-center>span {
281
+ display:block;
282
+ margin:13px auto 0;
283
+ overflow:hidden;
284
+ text-align:center
285
+ }
286
+ #document span.align-center span img {
287
+ margin:0 auto;
288
+ text-align:center
289
+ }
290
+ #document span.align-right {
291
+ display:block;
292
+ overflow:hidden;
293
+ clear:both
294
+ }
295
+ #document span.align-right>span {
296
+ display:block;
297
+ margin:13px 0 0;
298
+ overflow:hidden;
299
+ text-align:right
300
+ }
301
+ #document span.align-right span img {
302
+ margin:0;
303
+ text-align:right
304
+ }
305
+ #document span.float-left {
306
+ display:block;
307
+ float:left;
308
+ margin-right:13px;
309
+ overflow:hidden
310
+ }
311
+ #document span.float-left span {
312
+ margin:13px 0 0
313
+ }
314
+ #document span.float-right {
315
+ display:block;
316
+ float:right;
317
+ margin-left:13px;
318
+ overflow:hidden
319
+ }
320
+ #document span.float-right>span {
321
+ display:block;
322
+ margin:13px auto 0;
323
+ overflow:hidden;
324
+ text-align:right
325
+ }
326
+ #document code,
327
+ #document tt {
328
+ padding:0;
329
+ padding-top:2px;
330
+ padding-bottom:2px;
331
+ margin:0;
332
+ color: #c5c8c6;
333
+ font-size:85%;
334
+ background-color:#000000;
335
+ border-radius:3px
336
+ }
337
+ #document code:before,
338
+ #document code:after,
339
+ #document tt:before,
340
+ #document tt:after {
341
+ letter-spacing:-0.2em;
342
+ content:"\00a0"
343
+ }
344
+ #document code br,
345
+ #document tt br {
346
+ display:none
347
+ }
348
+ #document del code {
349
+ text-decoration:inherit
350
+ }
351
+ #document pre>code {
352
+ padding:0;
353
+ margin:0;
354
+ font-size:100%;
355
+ word-break:normal;
356
+ white-space:pre;
357
+ background:transparent;
358
+ border:0
359
+ }
360
+ #document .highlight {
361
+ margin-bottom:16px
362
+ }
363
+ #document .highlight pre,
364
+ #document pre {
365
+ overflow:auto;
366
+ font-size: 12px;
367
+ line-height: normal;
368
+ background-color:#000000;
369
+ border-radius:5px;
370
+ padding: 0px 0px 15px 25px;
371
+ }
372
+ #document .highlight pre {
373
+ margin-bottom:0;
374
+ word-break:normal
375
+ }
376
+ #document pre {
377
+ word-wrap:normal
378
+ }
379
+ #document pre code,
380
+ #document pre tt {
381
+ max-width:initial;
382
+ padding:0;
383
+ margin:0;
384
+ overflow:initial;
385
+ line-height:inherit;
386
+ word-wrap:normal;
387
+ background-color:transparent;
388
+ border:0
389
+ }
390
+ #document pre code:before,
391
+ #document pre code:after,
392
+ #document pre tt:before,
393
+ #document pre tt:after {
394
+ content:normal
395
+ }
396
+ #document kbd {
397
+ display:inline-block;
398
+ padding:3px 5px;
399
+ font-size:11px;
400
+ line-height:10px;
401
+ color:#555;
402
+ vertical-align:middle;
403
+ background-color:#fcfcfc;
404
+ border:solid 1px #ccc;
405
+ border-bottom-color:#bbb;
406
+ border-radius:3px;
407
+ box-shadow:inset 0 -1px 0 #bbb
408
+ }
409
+
410
+
411
+ /* Tomorrow Night Theme */
412
+ /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
413
+ /* Original theme - https://github.com/chriskempson/tomorrow-theme */
414
+ /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
415
+
416
+ /* Tomorrow Comment */
417
+ .hljs-comment {
418
+ color: #969896;
419
+ }
420
+
421
+ /* Tomorrow Red */
422
+ .hljs-variable,
423
+ .hljs-attribute,
424
+ .hljs-tag,
425
+ .hljs-regexp,
426
+ .ruby .hljs-constant,
427
+ .xml .hljs-tag .hljs-title,
428
+ .xml .hljs-pi,
429
+ .xml .hljs-doctype,
430
+ .html .hljs-doctype,
431
+ .css .hljs-id,
432
+ .css .hljs-class,
433
+ .css .hljs-pseudo {
434
+ color: #cc6666;
435
+ }
436
+
437
+ /* Tomorrow Orange */
438
+ .hljs-number,
439
+ .hljs-preprocessor,
440
+ .hljs-pragma,
441
+ .hljs-built_in,
442
+ .hljs-literal,
443
+ .hljs-params,
444
+ .hljs-constant {
445
+ color: #de935f;
446
+ }
447
+
448
+ /* Tomorrow Yellow */
449
+ .ruby .hljs-class .hljs-title,
450
+ .css .hljs-rule .hljs-attribute {
451
+ color: #f0c674;
452
+ }
453
+
454
+ /* Tomorrow Green */
455
+ .hljs-string,
456
+ .hljs-value,
457
+ .hljs-inheritance,
458
+ .hljs-header,
459
+ .hljs-name,
460
+ .ruby .hljs-symbol,
461
+ .xml .hljs-cdata {
462
+ color: #b5bd68;
463
+ }
464
+
465
+ /* Tomorrow Aqua */
466
+ .hljs-title,
467
+ .css .hljs-hexcolor {
468
+ color: #8abeb7;
469
+ }
470
+
471
+ /* Tomorrow Blue */
472
+ .hljs-function,
473
+ .python .hljs-decorator,
474
+ .python .hljs-title,
475
+ .ruby .hljs-function .hljs-title,
476
+ .ruby .hljs-title .hljs-keyword,
477
+ .perl .hljs-sub,
478
+ .javascript .hljs-title,
479
+ .coffeescript .hljs-title {
480
+ color: #81a2be;
481
+ }
482
+
483
+ /* Tomorrow Purple */
484
+ .hljs-keyword,
485
+ .javascript .hljs-function {
486
+ color: #b294bb;
487
+ }
488
+
489
+ .hljs {
490
+ display: block;
491
+ overflow-x: auto;
492
+ background: #1d1f21;
493
+ color: #c5c8c6;
494
+ padding: 0.5em;
495
+ -webkit-text-size-adjust: none;
496
+ }
497
+
498
+ .coffeescript .javascript,
499
+ .javascript .xml,
500
+ .tex .hljs-formula,
501
+ .xml .javascript,
502
+ .xml .vbscript,
503
+ .xml .css,
504
+ .xml .hljs-cdata {
505
+ opacity: 0.5;
506
+ }
@@ -0,0 +1,9 @@
1
+ module Documentarian
2
+ class ApplicationController < ActionController::Base
3
+ def build
4
+ Documentarian.load
5
+ Rails.cache.clear
6
+ redirect_to root_path
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,18 @@
1
+ module Documentarian
2
+ class DocumentationController < ApplicationController
3
+
4
+ caches_action :show, :cache_path => Proc.new { |c| c.params }
5
+
6
+ def index
7
+ end
8
+
9
+ def show
10
+ @resource = Documentarian::Resource.get(params[:slug]) or redirect_to root_path
11
+ end
12
+
13
+ def asset
14
+ send_file Documentarian::AssetProxy.link(params[:path]), disposition: 'inline'
15
+ end
16
+
17
+ end
18
+ end
@@ -0,0 +1,4 @@
1
+ module Documentarian
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ %ul.top
2
+ - Documentarian::Resource.roots.each do |resource|
3
+ - next if resource.directory_overview?
4
+ = render :partial => 'navigation_item', :locals => {:resource => resource}
@@ -0,0 +1,9 @@
1
+ - children = resource.children
2
+ %li.collapsible{:class => Regexp.new(resource.slug) =~ params[:slug] && :show}
3
+ %span.part{:class => resource.slug == params[:slug] && :active}
4
+ %a{:href => documentation_path(resource)}= resource.title
5
+ - if !children.empty?
6
+ %ul
7
+ - resource.children.each do |resource|
8
+ - next if resource.directory_overview?
9
+ = render :partial => 'navigation_item', :locals => {:resource => resource}
@@ -0,0 +1,5 @@
1
+ - if @resource.directory?
2
+ - if preview = @resource.directory_overview
3
+ != preview.to_html
4
+ - else
5
+ != @resource.to_html
@@ -0,0 +1,20 @@
1
+ !!!
2
+ %html
3
+ %head
4
+ %title Documentarian
5
+
6
+ = stylesheet_link_tag 'documentarian/application', media: 'all'
7
+ = javascript_include_tag '//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js'
8
+ = javascript_include_tag 'documentarian/application'
9
+ = javascript_include_tag '//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.7/highlight.min.js'
10
+
11
+ = csrf_meta_tags
12
+
13
+ %body
14
+ #document-content
15
+ #navigation-content
16
+ #navigation
17
+ = render :partial => 'navigation'
18
+ #document
19
+ = yield
20
+ .clear
data/config/routes.rb ADDED
@@ -0,0 +1,5 @@
1
+ Documentarian::Engine.routes.draw do
2
+ root :to => "documentation#index"
3
+ get '/assets/*path', :to => "documentation#asset", :as => :asset, :format => false
4
+ get '/*slug', :to => "documentation#show", :as => :documentation, :format => false
5
+ end
@@ -0,0 +1,7 @@
1
+ module Documentarian
2
+ module AssetProxy
3
+ def self.link(path)
4
+ File.join(Configuration.asset_path, path)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ module Documentarian
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace Documentarian
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Documentarian
2
+ module Navigation
3
+
4
+ end
5
+ end
@@ -0,0 +1,76 @@
1
+ module Documentarian
2
+ class Resource < Pathname
3
+
4
+ alias_method :body, :read
5
+
6
+ def self.roots
7
+ Documentarian.resources.select { |resource|
8
+ String(resource.relative_path).split('/').length == 1
9
+ }.sort_by { |resource|
10
+ [resource.directory? ? 0 : 1, resource.title]
11
+ }
12
+ end
13
+
14
+ def self.get(slug)
15
+ Documentarian.resources.find { |resource| resource.slug == slug }
16
+ end
17
+
18
+ def children
19
+ return [] if !directory?
20
+ items = (super).map {|item| String(item)}
21
+ Documentarian.resources.select { |resource|
22
+ items.include?(String(resource))
23
+ }.sort
24
+ end
25
+
26
+ def directory_overview
27
+ return nil unless directory?
28
+ siblings.find { |sibling| sibling.title == self.title }
29
+ end
30
+
31
+ def directory_overview?
32
+ return false if directory?
33
+ siblings.find { |sibling| sibling.directory? && sibling.title == self.title }
34
+ end
35
+
36
+ def siblings
37
+ Documentarian.resources.find { |resource|
38
+ resource.to_s == parent.to_s
39
+ }.try(:children).try(:select, &Proc.new{ |child| child != self }) || []
40
+ end
41
+
42
+ def relative_path
43
+ relative_path_from(Configuration.documentation_path)
44
+ end
45
+
46
+ def slug
47
+ @slug ||= String(relative_path)
48
+ .gsub(/[^\w\/\.]/, '_')
49
+ .downcase
50
+ end
51
+
52
+ def title
53
+ String(basename).gsub(Regexp.new("(%s)$" % Configuration.extensions.join('|')), '')
54
+ end
55
+
56
+ def to_param
57
+ slug
58
+ end
59
+
60
+ def to_html
61
+ Documentarian::Resource::Renderer.render(self)
62
+ end
63
+
64
+ module Renderer
65
+
66
+ class << self
67
+ include Documentarian::Engine.routes.url_helpers
68
+ def render(resource)
69
+ GitHub::Markdown.render(ERB.new(resource.body).result(binding))
70
+ end
71
+ end
72
+
73
+ end
74
+
75
+ end
76
+ end
@@ -0,0 +1,46 @@
1
+ require 'pathname'
2
+ require 'github/markdown'
3
+ require 'documentarian/engine'
4
+ require 'documentarian/asset_proxy'
5
+ require 'documentarian/resource'
6
+
7
+ module Documentarian
8
+ mattr_accessor :resources
9
+
10
+ module Configuration
11
+ mattr_accessor :root
12
+ mattr_accessor :extensions
13
+
14
+ def self.root=(value)
15
+ @@root ||= Pathname.new(value)
16
+ end
17
+
18
+ def self.documentation_path
19
+ Pathname.new(File.join(self.root, 'documentation'))
20
+ end
21
+
22
+ def self.asset_path
23
+ Pathname.new(File.join(self.root, 'assets'))
24
+ end
25
+
26
+ end
27
+
28
+ def self.install
29
+ yield Configuration
30
+ self.load
31
+ end
32
+
33
+ def self.resources
34
+ @@resources ||= []
35
+ end
36
+
37
+ def self.load
38
+ Dir[File.join(Configuration.documentation_path, '**/*{%s}' % Configuration.extensions.join(','))].each do |path|
39
+ Pathname.new(path).relative_path_from(Configuration.documentation_path).descend do |relative_path|
40
+ relative_resource = Resource.new(File.join(Configuration.documentation_path, relative_path))
41
+ self.resources << relative_resource unless self.resources.include?(relative_resource)
42
+ end
43
+ end
44
+ end
45
+
46
+ end
File without changes
metadata ADDED
@@ -0,0 +1,73 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: documentarian
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Christopher Jaeger
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-07-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: github-markdown
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description:
28
+ email: jaeger.ca@gmail.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - app/assets/javascripts/documentarian/application.js
34
+ - app/assets/stylesheets/documentarian/application.scss
35
+ - app/controllers/documentarian/application_controller.rb
36
+ - app/controllers/documentarian/documentation_controller.rb
37
+ - app/helpers/documentarian/application_helper.rb
38
+ - app/views/documentarian/application/_navigation.html.haml
39
+ - app/views/documentarian/application/_navigation_item.html.haml
40
+ - app/views/documentarian/documentation/index.html.haml
41
+ - app/views/documentarian/documentation/show.html.haml
42
+ - app/views/layouts/documentarian/application.html.haml
43
+ - config/routes.rb
44
+ - lib/documentarian.rb
45
+ - lib/documentarian/asset_proxy.rb
46
+ - lib/documentarian/engine.rb
47
+ - lib/documentarian/navigation.rb
48
+ - lib/documentarian/resource.rb
49
+ - lib/tasks/documentarian.rake
50
+ homepage:
51
+ licenses: []
52
+ metadata: {}
53
+ post_install_message:
54
+ rdoc_options: []
55
+ require_paths:
56
+ - lib
57
+ required_ruby_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ required_rubygems_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ requirements: []
68
+ rubyforge_project:
69
+ rubygems_version: 2.4.6
70
+ signing_key:
71
+ specification_version: 4
72
+ summary: Documentation
73
+ test_files: []