You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: proxy.rb
    path of file: ./repos/jets/lib/jets/router/helpers/named_routes
    
    the code of the file until where you have to start completion: module Jets::Router::Helpers::NamedRoutes
  class Proxy
    include AddFullUrl

    def initialize(view_context, helpers_module)
      @helpers = helpers_class(helpers_module).new(view_context)
    end

    # * The helpers_module is passed as a argument to give the anonymous class
    #   access via closure at include time.
    # * view_context is passed at initialize to provide access at instantiation time.
    def helpers_class(helpers_module)
      Class.new do
        include helpers_module #
    
    def helpers_class(helpers_module)
      Class.new do
        include helpers_module # IE: Generated::MainAppHelpers
        def initialize(view_context)
          @view_context = view_context
        end

        # Important:
        #
        # * The add_full_url method needs url_options.
        #   Without url_options the proxy methods are unavailable and creates
        #   an infinite loop with method_missing.
        # * request is needed for add_apigw_stage? to check request correctly
        #   Otherwise, gems like kingsman, that use the named routes proxy methods,
        #   won't get able to get the correct url with the stage name prepended.
        #
        # The request is the main reason an anonymous class is used since the
        # view_context has included modules like ApigwStage that assume a
        # request method is available.
        delegate :url_options, :request, :event, to: :@view_context
      end
    end