Class: Sbom::Generator

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

Constant Summary collapse

VALID_FORMATS =
i[tag json yaml].freeze
VALID_TYPES =
i[spdx cyclonedx].freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sbom_type: :spdx, format: :json, application: "sbom", version: Sbom::VERSION) ⇒ Generator



8
9
10
11
12
13
14
# File 'lib/sbom/generator.rb', line 8

def initialize(sbom_type: :spdx, format: :json, application: "sbom", version: Sbom::VERSION)
  @sbom_type = validate_type(sbom_type)
  @format = validate_format(format, @sbom_type)
  @application = application
  @version = version
  @generator = create_generator
end

Class Method Details

.generate(project_name, sbom_data, sbom_type: :spdx, format: :json) ⇒ Object



36
37
38
39
40
# File 'lib/sbom/generator.rb', line 36

def self.generate(project_name, sbom_data, sbom_type: :spdx, format: :json)
  gen = new(sbom_type: sbom_type, format: format)
  gen.generate(project_name, sbom_data)
  gen
end

Instance Method Details

#formatObject



32
33
34
# File 'lib/sbom/generator.rb', line 32

def format
  @format
end

#generate(project_name, sbom_data) ⇒ Object



16
17
18
# File 'lib/sbom/generator.rb', line 16

def generate(project_name, sbom_data)
  @generator.generate(project_name, sbom_data)
end

#outputObject



20
21
22
# File 'lib/sbom/generator.rb', line 20

def output
  @generator.output
end

#sbom_typeObject



28
29
30
# File 'lib/sbom/generator.rb', line 28

def sbom_type
  @sbom_type
end

#to_hObject



24
25
26
# File 'lib/sbom/generator.rb', line 24

def to_h
  @generator.to_h
end