forked from activeadmin/activeadmin
-
Notifications
You must be signed in to change notification settings - Fork 2
/
docs.rake
39 lines (31 loc) · 924 Bytes
/
docs.rake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
namespace :docs do
def rdoc_to_markdown(content)
content.gsub(/^ ?(=+) /) do |m|
m.gsub('=', '#')
end
end
def prepare_docstring(content)
content = rdoc_to_markdown(content)
"<!-- Please don't edit this file. It will be clobbered. -->\n\n#{content}"
end
def filename_from_module(mod)
mod.name.to_s.underscore.gsub('_', '-')
end
def write_docstrings_to(path, mods)
mods.each do |mod|
File.open("#{path}/#{filename_from_module(mod)}.md", 'w+') do |f|
f << prepare_docstring(mod.docstring)
end
end
end
desc "Update docs in the docs folder"
task :build do
require 'yard'
require 'active_support/all'
YARD::Registry.load!
views = YARD::Registry.at("ActiveAdmin::Views")
# Index Types
index_types = views.children.select{|obj| obj.name.to_s =~ /^IndexAs/ }
write_docstrings_to "docs/3-index-pages", index_types
end
end