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

#all_endpoints(output = @raw_routes_output) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/code_parser.rb', line 18

def all_endpoints(output = @raw_routes_output)
endpoints = []
	parsed_routes(output).each do |route|
		endpoints << route[:route] if route[:route] != nil
	end
	endpoints
end

#api_endpoints(output = @raw_routes_output) ⇒ Object

returns an empty array if no api_endpoints in code



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

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

#http_requests(output = @raw_routes_output) ⇒ Object

returns all route http request type



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/code_parser.rb', line 27

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

#parsed_routes(output = raw_routes_output) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/code_parser.rb', line 41

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