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

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

Instance Attribute Summary

Attributes inherited from Base

#errors, #value

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

const?, default, default?, required?, #valid?, #value?

Constructor Details

#initialize(*value) ⇒ PropBase

rubocop:disable Lint/MissingSuper

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) ⇒ Object

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_valueObject



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

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

#value=(val) ⇒ Object



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