Sha256: 5736b4d3d54dd30f367a3ff0f629b0878b79bbdf9323c690bbedf337e1234236

Contents?: true

Size: 1.62 KB

Versions: 5

Compression:

Stored size: 1.62 KB

Contents

# frozen_string_literal: true
class ApacheGitWipUrlParser < URLParser
  CASE_SENSITIVE = true

  private

  def full_domain
    'https://git-wip-us.apache.org/repos/asf'
  end

  def tlds
    %w(org)
  end

  def domain
    'git-wip-us.apache'
  end

  def remove_querystring
    # it is common for the name to be passed in as a query parameter so we need to keep them in
    # the url string for now and process them in later steps to pull the name out of the parameter
    url
  end

  def remove_equals_sign
    # we need to preserve the p=<some_name> query parameter
    splits = url.split('=')
    p_index = splits.index{|s| s.end_with?("?p") || s.end_with?("&p")}
    if p_index
      new_url = splits[0..p_index+1].join("=") if p_index
      # remove separator characters present at the end of this string
      # before the next parameter in the query parameter list
      # ";"
      new_url.gsub!(/[;,&].*/, '')

      self.url = new_url
    end
  end

  def domain_regex
    # match only the repos/asf endpoint at the domain
    "#{domain.split("/").first}\.(#{tlds.join('|')})\/repos/asf"
  end

  def remove_domain
    url.sub!(/(git-wip-us\.apache\.org\/(repos\/asf))+?(:|\/)?/i, '')
  end

  def remove_extra_segments
    # by the time the URL gets here it should have been mostly pared down to the correct name
    # however if the name was passed as a query parameter the ?p= is still at the front of the name
    if url.is_a?(String) && url.start_with?("?p=")
      self.url = url.split("=").last
    end
  end

  def format_url
    # ignore something if it comes in at as an Array at this point
    url.is_a?(String) ? url : nil
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
librariesio-url-parser-1.0.10 lib/apache_git_wip_url_parser.rb
librariesio-url-parser-1.0.9 lib/apache_git_wip_url_parser.rb
librariesio-url-parser-1.0.8 lib/apache_git_wip_url_parser.rb
librariesio-url-parser-1.0.7 lib/apache_git_wip_url_parser.rb
librariesio-url-parser-1.0.6 lib/apache_git_wip_url_parser.rb