class Tapioca::SourceURI
def build(gem_name:, gem_version:, path:, line_number:)
def build(gem_name:, gem_version:, path:, line_number:) super( { scheme: "source", host: gem_name, path: PARSER.escape("/#{gem_version}/#{path}"), fragment: line_number, } ) end
def check_host(v)
def check_host(v) return true unless v if /[A-Za-z][A-Za-z0-9\-_]*/ !~ v raise InvalidComponentError, "bad component(expected gem name): #{v}" end true end
def gem_name
def gem_name host end
def line_number
def line_number fragment end
def set_path(v) # rubocop:disable Naming/AccessorMethodName
def set_path(v) # rubocop:disable Naming/AccessorMethodName return if v.nil? @gem_version, @path = v.split("/", 2) end
def to_s
def to_s "source://#{gem_name}/#{gem_version}#{path}##{line_number}" end