Class: SBOM::CycloneDX::Field::PropBase

Inherits:
Base
  • Object
show all
Defined in:
lib/sbom/cyclone_dx/field.rb,
sig/sbom/cyclone_dx/field.rbs

Instance Attribute Summary

Attributes inherited from Base

#errors, #value

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#const, #const?, const?, default, #default, default?, #default?, #field_name, #json_name, required?, #required?, #valid?, #validator, #value?

Methods included from _FieldBaseClass

#coerce, #const, #const?, #default, #default?, #field_name, #json_name, #required?, #validator

Constructor Details

#initialize(*value) ⇒ PropBase

rubocop:disable Lint/MissingSuper

Parameters:

  • (T, nil)

Raises:

  • (ArgumentError)


81
82
83
84
85
86
87
88
89
90
91
# File 'lib/sbom/cyclone_dx/field.rb', line 81

def initialize(*value) # rubocop:disable Lint/MissingSuper
  raise "Cannot instantiate abstract Field" unless self.class < PropBase
  raise ArgumentError, "Wrong number of arguments" if value.size > 1

  if value.empty?
    unset_value
    return
  end

  self.value = value.first
end

Class Method Details

.coerce(_value) ⇒ void

This method returns an undefined value.

Raises:

  • (NotImplementedError)


109
110
111
# File 'lib/sbom/cyclone_dx/field.rb', line 109

def self.coerce(_value)
  raise NotImplementedError
end

Instance Method Details

#unset_value ⇒ void

This method returns an undefined value.



104
105
106
107
# File 'lib/sbom/cyclone_dx/field.rb', line 104

def unset_value
  @value_set = !default?
  @value = default
end

#value=(val) ⇒ void

This method returns an undefined value.

Parameters:

  • (T, nil)


93
94
95
96
97
98
99
100
101
102
# File 'lib/sbom/cyclone_dx/field.rb', line 93

def value=(val)
  if val.nil? && required?
    @value_set = !default?
    @value = default
    return
  end

  @value_set = true
  @value = val
end