Class: ApiDocumentGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/api_document_generator.rb

Defined Under Namespace

Classes: ApiGrabber, PageWriter

Class Method Summary collapse

Class Method Details

.generate_api_document(controllers) ⇒ Object



33
34
35
36
37
38
39
40
41
42
# File 'lib/api_document_generator.rb', line 33

def generate_api_document(controllers)
  apis = ApiDocumentGenerator::ApiGrabber.grab_apis(controllers)
  # api_document = ApiDocumentGenerator::PageWriter(apis)

  # File.open('public/api_document', 'w') do |f|
  #   api_document.each do |line|
  #     f.write(line + "\n")
  #   end
  # end
end

.initializeObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/api_document_generator.rb', line 6

def initialize
  install

  controllers = {}
  Rails.application.routes.routes.each do |route|
    controller_path = route.defaults[:controller]
  
    if controller_path
      controller_name = controller_path.split('/').map(&:humanize).join('::')

      if controller_name.constantize.include?(Api::GeneratorHelper)
        controllers[controller_name] ||= {path: controller_path, actions: []}
        
        controllers[controller_name][:actions].push({action: route.defaults[:action], method: route.verb})  
      end
    end
  end
  
  generate_api_document(controllers)
end

.installObject



27
28
29
30
31
# File 'lib/api_document_generator.rb', line 27

def install 
  if Dir.exist?('public') == false
    `mkdir public`
  end 
end

.uninstallObject



44
45
46
# File 'lib/api_document_generator.rb', line 44

def uninstall
  `rm -rf public/api_document`
end