Sha256: 0e1e6bfed9a7ae07a3078c7b7717d867f0d425553411b6e2171823735cbacacd

Contents?: true

Size: 708 Bytes

Versions: 3

Compression:

Stored size: 708 Bytes

Contents

module WebValve
  class ServiceUrlConverter
    TOKEN_BOUNDARY_CHARS = Regexp.escape('.:/?#@&=').freeze
    WILDCARD_SUBSTITUTION = ('[^' + TOKEN_BOUNDARY_CHARS + ']*').freeze
    URL_PREFIX_BOUNDARY = ('[' + TOKEN_BOUNDARY_CHARS + ']').freeze
    URL_SUFFIX_PATTERN = ('((' + URL_PREFIX_BOUNDARY + '|(?<=' + URL_PREFIX_BOUNDARY + ')).*)?\z').freeze

    attr_reader :url

    def initialize(url:)
      @url = url
    end

    def regexp
      if url.is_a?(String)
        regexp_string = Regexp.escape(url)
        substituted_regexp_string = regexp_string.gsub('\*', WILDCARD_SUBSTITUTION)
        %r(\A#{substituted_regexp_string}#{URL_SUFFIX_PATTERN})
      else
        url
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
webvalve-2.0.3 lib/webvalve/service_url_converter.rb
webvalve-2.0.2 lib/webvalve/service_url_converter.rb
webvalve-2.0.0 lib/webvalve/service_url_converter.rb