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