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



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

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

.hiObject



22
23
24
# File 'lib/api_document_generator.rb', line 22

def hi
  puts "Hello this is my api documentat generator gem!"
end

.initializeObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/api_document_generator.rb', line 3

def initialize
  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



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

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

.uninstallObject



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

def uninstall
  `rm -rf public/api_document`
end