Class: CodeParser

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

Instance Method Summary collapse

Constructor Details

#initialize(output) ⇒ CodeParser

Returns a new instance of CodeParser.



3
4
5
# File 'lib/code_parser.rb', line 3

def initialize(output)
  @raw_routes_output = output
end

Instance Method Details

#api_endpoints(output = @raw_routes_output, api = false) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/code_parser.rb', line 7

def api_endpoints(output = @raw_routes_output, api = false)
  endpoints = []
  parsed_routes(output).each do |route|
    if api
      endpoints << route[:route] if route[:route].include?('/api')
    else
      endpoints << route[:route]
    end
  end
  endpoints
end

#http_requests(output = @raw_routes_output) ⇒ Object

returns all route http request type



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/code_parser.rb', line 20

def http_requests(output = @raw_routes_output)
  request_type = []
  parsed_routes(output).each do |route|
    if route[:request_type] =~ /[\/]/
      request_type << route[:type]
    elsif route[:route].include?('/api')
      request_type << route[:request_type]
    end
  end
  request_type.sort
end

#parsed_routes(output = raw_routes_output) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/code_parser.rb', line 32

def parsed_routes(output = raw_routes_output)
  #add 'none specified'
  routes = []
  output.strip.each_line do |line|
    split = line.split(' ')
    route = {}
    route[:type]         = split[0]
    route[:request_type] = split[1]
    route[:route]        = split[2]
    route[:controller]   = split[3]
    route[:action]       = split[4]
    routes << route
  end
  routes
end