Class: Marshalsea::Chains::PsychInitWith

Inherits:
Base
  • Object
show all
Defined in:
lib/marshalsea/chains/psych_init_with.rb

Constant Summary collapse

CHAIN_NAME =
"psych-init-with"
VECTOR =
"init_with"
CVE =
"none"
TARGET_GEM =
"psych"
AFFECTED =
[[">= 0"]].map { |constraints| constraints.map(&:freeze).freeze }.freeze
DOCUMENT_TEMPLATE =
<<~YAML
  --- !ruby/object:%<class_name>s
  %<ivar>s: %<value>s
YAML
DEFAULT_IVAR =
"cmd"
METADATA =
{
  name: CHAIN_NAME,
  vector: VECTOR,
  cve: CVE,
  gem: TARGET_GEM,
  affected: AFFECTED,
  kind: KIND_CHAIN
}.freeze

Constants inherited from Base

Base::HASH_WITH_ONE_ENTRY, Base::HEADER_BYTES, Base::KIND_CHAIN, Base::KIND_PRIMITIVE, Base::NIL_VALUE, Base::OBJECT_LINK_REFUSED, Base::SUBCLASS_MUST_DEFINE

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

affected_requirements, affects?, chain?, chain_name, cve, inherited, kind, primitive?, required_gems, target_gem, vector

Constructor Details

#initialize(class_name, value, ivar: DEFAULT_IVAR) ⇒ PsychInitWith

Returns a new instance of PsychInitWith.



37
38
39
40
41
42
# File 'lib/marshalsea/chains/psych_init_with.rb', line 37

def initialize(class_name, value, ivar: DEFAULT_IVAR)
  super()
  @class_name = class_name
  @value = value
  @ivar = ivar
end

Class Method Details

.metadataObject



33
34
35
# File 'lib/marshalsea/chains/psych_init_with.rb', line 33

def self.
  METADATA
end

Instance Method Details

#generateObject



44
45
46
# File 'lib/marshalsea/chains/psych_init_with.rb', line 44

def generate
  format(DOCUMENT_TEMPLATE, class_name: class_name, ivar: ivar, value: value.inspect)
end

#serializeObject



48
49
50
# File 'lib/marshalsea/chains/psych_init_with.rb', line 48

def serialize
  generate
end