class CycloneDX::BOM

Overview

Represents a CycloneDX Bill of Materials (BOM). This class manages a collection of components and provides methods for serializing the BOM into different formats (JSON, XML, CSV).

Included Modules

Defined in:

cyclonedx/bom.cr

Constant Summary

BOM_FORMAT = "CycloneDX"
BOM_VERSION = 1
XML_NAMESPACE = "http://cyclonedx.org/schema/bom"

Constructors

Instance Method Summary

Constructor Detail

def self.new(components : Array(Component), spec_version : String) #

Initializes a new CycloneDX BOM.

@param components [Array(Component)] An array of components to include in the BOM. @param spec_version [String] The CycloneDX specification version (e.g., "1.4", "1.5").


[View source]
def self.new(pull : JSON::PullParser) #

[View source]

Instance Method Detail

def bom_format : String #

Specifies the format of the BOM (always "CycloneDX" for JSON serialization).


[View source]
def bom_version : Int32 #

The version of the BOM itself (not the spec version), typically 1.


[View source]
def components : Array(Component) #

An array of CycloneDX::Component objects included in the BOM.


[View source]
def spec_version : String #

The CycloneDX specification version.


[View source]
def to_csv : String #

Serializes the BOM to CSV format. The CSV output includes Name, Version, PURL, and Type for each component.

@return [String] The BOM in CSV format.


[View source]
def to_xml : String #

Serializes the BOM to XML format. The XML output includes a unique serial number (UUID).

@return [String] The BOM in XML format.


[View source]