/ _yard / rakefile.rb
rakefile.rb
 1  namespace :doc do
 2  
 3    desc "Generate the documentation"
 4    task :yard do
 5      puts "Generating YARD documentation"
 6      system(File.join("..", "build", "run"), "doc:yardoc")
 7    end
 8  
 9  
10    desc "Create the API.md file"
11    task :api do
12      puts "Creating the API.md file"
13      require 'erb'
14      require 'sinatra'
15      require 'jsonmodel'
16      require_relative '../backend/app/lib/rest.rb'
17      require_relative '../backend/app/lib/username.rb'
18      require_relative '../backend/app/model/backend_enum_source.rb'
19      require_relative '../common/log.rb'
20      require_relative '../backend/app/lib/streaming_import.rb'
21      require_relative '../backend/app/lib/component_transfer.rb'
22  
23  
24      class ArchivesSpaceService < Sinatra::Base
25  
26        def self.helpers
27          nil
28        end
29  
30        include RESTHelpers
31  
32      end
33  
34      @time = Time.new
35  
36      JSONModel::init(:enum_source => BackendEnumSource)
37  
38      require_relative '../backend/app/lib/export'
39  
40      Dir.glob(File.dirname(__FILE__) + '/../backend/app/controllers/*.rb').sort.each {|file| require file unless (file =~ /system/ || file =~ /oai/)}
41  
42      @endpoints = ArchivesSpaceService::Endpoint.all.sort{|a,b| a[:uri] <=> b[:uri]}
43      @examples = JSON.parse( IO.read File.dirname(__FILE__) + "/../endpoint_examples.json" )
44  
45  
46      erb = ERB.new(File.read('API.erb'), nil, '<>')
47  
48      File.open('../API.md', 'w') do |f|
49        f.write erb.result(binding)
50      end
51  
52    end
53  
54    desc 'Rename the YARD index file to avoid problems with Jekyll'
55    task :rename_index do
56      puts "Renaming the YARD index file"
57      Dir.chdir('../docs') do
58        files = Dir.glob('doc/**/*')
59        files.each do |f|
60          if File::file?(f)
61            content = File.read(f)
62            content.gsub!('"_index.html"', '"alpha_index.html"')
63            content.gsub!('/_index.html', '/alpha_index.html')
64            File.open(f, "w") do |io|
65              io.write content
66            end
67          end
68        end
69        `mv doc/_index.html doc/alpha_index.html`
70      end
71    end
72  
73    desc 'This generates all documentation and publishes it to the doc folder'
74    task :gen do
75      require 'fileutils'
76  
77      puts "Removing old documentation"
78      FileUtils.rm_rf("./docs/doc")
79  
80      Rake::Task["doc:api"].invoke
81      Rake::Task["doc:yard"].invoke
82      Rake::Task["doc:rename_index"].invoke
83  
84      puts "Updating API documentation"
85      FileUtils.cp("../API.md", "../docs/slate/source/index.md")
86    end
87  
88  
89  end