Class: Sbom::Spdx::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/sbom/spdx/parser.rb

Constant Summary collapse

FORMAT_TAG =
:tag
FORMAT_JSON =
:json
FORMAT_YAML =
:yaml
FORMAT_XML =
:xml
FORMAT_RDF =
:rdf

Instance Method Summary collapse

Constructor Details

#initializeParser

Returns a new instance of Parser.



16
17
18
19
20
21
22
23
# File 'lib/sbom/spdx/parser.rb', line 16

def initialize
  @document = Data::Document.new
  @packages = {}
  @files = {}
  @relationships = []
  @licenses = []
  @elements = {}
end

Instance Method Details

#parse(content, format = nil) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/sbom/spdx/parser.rb', line 25

def parse(content, format = nil)
  format ||= detect_format(content)

  case format
  when FORMAT_JSON
    parse_json(content)
  when FORMAT_YAML
    parse_yaml(content)
  when FORMAT_TAG
    parse_tag_value(content)
  when FORMAT_XML
    parse_xml(content)
  when FORMAT_RDF
    parse_rdf(content)
  else
    raise ParserError, "Unknown SPDX format"
  end

  build_sbom
end