Class: Sbom::PackageUrl::Decoder

Inherits:
Object
  • Object
show all
Includes:
StringUtils
Defined in:
lib/sbom/package_url/decoder.rb

Instance Method Summary collapse

Constructor Details

#initialize(string) ⇒ Decoder

Returns a new instance of Decoder.



31
32
33
# File 'lib/sbom/package_url/decoder.rb', line 31

def initialize(string)
  @string = string
end

Instance Method Details

#decode!Object

Raises:

  • (ArgumentError)


35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/sbom/package_url/decoder.rb', line 35

def decode!
  raise ArgumentError, "expected String but given #{@string.class}" unless @string.is_a?(::String)

  decode_subpath!
  decode_qualifiers!
  decode_scheme!
  decode_type!
  decode_version!
  decode_name!
  decode_namespace!

  begin
    PackageUrl.new(
      type: @type,
      name: @name,
      namespace: @namespace,
      version: @version,
      qualifiers: @qualifiers,
      subpath: @subpath
    )
  rescue ArgumentError => e
    raise InvalidPackageUrl, e.message
  end
end