class CodeParser
Public Class Methods
new(output)
click to toggle source
# File lib/code_parser.rb, line 3 def initialize(output) @raw_routes_output = output end
Public Instance Methods
all_endpoints(output = @raw_routes_output)
click to toggle source
# File lib/code_parser.rb, line 32 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)
click to toggle source
returns an empty array if no api_endpoints
in code
# 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 if route[:route].include?('/api') endpoints << route[:route] end end end endpoints end
http_requests(output = @raw_routes_output)
click to toggle source
returns all route http request type
# File lib/code_parser.rb, line 41 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)
click to toggle source
# File lib/code_parser.rb, line 69 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
public_api_endpoints(output = @raw_routes_output)
click to toggle source
# File lib/code_parser.rb, line 20 def public_api_endpoints(output = @raw_routes_output) endpoints = [] parsed_routes(output).each do |route| if route[:route] != nil if route[:route].include?('/api/public') endpoints << route[:route] end end end endpoints end
public_http_requests(output = @raw_routes_output)
click to toggle source
# File lib/code_parser.rb, line 55 def public_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/public') request_type << route[:request_type] end end end request_type.sort end