Class: Necropsy::Evidence
- Inherits:
-
Data
- Object
- Data
- Necropsy::Evidence
- Defined in:
- lib/necropsy/models.rb
Instance Attribute Summary collapse
-
#analyzer ⇒ Object
readonly
Returns the value of attribute analyzer.
-
#assumptions ⇒ Object
readonly
Returns the value of attribute assumptions.
-
#details ⇒ Object
readonly
Returns the value of attribute details.
-
#evidence_id ⇒ Object
readonly
Returns the value of attribute evidence_id.
-
#grade ⇒ Object
readonly
Returns the value of attribute grade.
-
#kind ⇒ Object
readonly
Returns the value of attribute kind.
-
#metadata ⇒ Object
readonly
Returns the value of attribute metadata.
-
#producer ⇒ Object
readonly
Returns the value of attribute producer.
-
#producer_version ⇒ Object
readonly
Returns the value of attribute producer_version.
-
#relation ⇒ Object
readonly
Returns the value of attribute relation.
-
#scope ⇒ Object
readonly
Returns the value of attribute scope.
-
#source ⇒ Object
readonly
Returns the value of attribute source.
-
#weight ⇒ Object
readonly
Returns the value of attribute weight.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(analyzer:, kind:, weight:, details:, metadata:, evidence_id: nil, producer: nil, producer_version: nil, grade: nil, relation: nil, source: nil, assumptions: [], scope: nil) ⇒ Evidence
constructor
A new instance of Evidence.
- #to_h ⇒ Object
Constructor Details
#initialize(analyzer:, kind:, weight:, details:, metadata:, evidence_id: nil, producer: nil, producer_version: nil, grade: nil, relation: nil, source: nil, assumptions: [], scope: nil) ⇒ Evidence
Returns a new instance of Evidence.
443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 |
# File 'lib/necropsy/models.rb', line 443 def initialize(analyzer:, kind:, weight:, details:, metadata:, evidence_id: nil, producer: nil, producer_version: nil, grade: nil, relation: nil, source: nil, assumptions: [], scope: nil) raise ArgumentError, 'evidence analyzer must not be empty' if analyzer.to_s.empty? raise ArgumentError, 'evidence kind must not be empty' if kind.to_s.empty? weight = Float(weight) raise ArgumentError, 'evidence weight must be finite' unless weight.finite? valid_details = details.is_a?(String) && details.bytesize <= EVIDENCE_MAX_DETAILS_BYTES raise ArgumentError, 'evidence details must be a bounded string' unless valid_details raise ArgumentError, 'evidence metadata must be a mapping' unless .is_a?(Hash) grade = grade.to_sym if grade.respond_to?(:to_sym) raise ArgumentError, "invalid evidence grade: #{grade.inspect}" unless grade.nil? || EVIDENCE_GRADES.include?(grade) evidence_id = ModelNormalization.identifier(evidence_id, 'evidence_id') unless evidence_id.nil? assumptions = ModelNormalization.string_list(assumptions, 'assumption') if grade.nil? && provenance_present?(producer, producer_version, relation, source, assumptions, scope) raise ArgumentError, 'evidence grade may be nil only for legacy evidence' end if grade && [producer, producer_version, relation, source, scope].any?(&:nil?) raise ArgumentError, 'graded evidence requires producer, producer_version, relation, source, and scope' end validate_bounded_payload!(metadata: , source: source, scope: scope) super end |
Instance Attribute Details
#analyzer ⇒ Object (readonly)
Returns the value of attribute analyzer
408 409 410 |
# File 'lib/necropsy/models.rb', line 408 def analyzer @analyzer end |
#assumptions ⇒ Object (readonly)
Returns the value of attribute assumptions
408 409 410 |
# File 'lib/necropsy/models.rb', line 408 def assumptions @assumptions end |
#details ⇒ Object (readonly)
Returns the value of attribute details
408 409 410 |
# File 'lib/necropsy/models.rb', line 408 def details @details end |
#evidence_id ⇒ Object (readonly)
Returns the value of attribute evidence_id
408 409 410 |
# File 'lib/necropsy/models.rb', line 408 def evidence_id @evidence_id end |
#grade ⇒ Object (readonly)
Returns the value of attribute grade
408 409 410 |
# File 'lib/necropsy/models.rb', line 408 def grade @grade end |
#kind ⇒ Object (readonly)
Returns the value of attribute kind
408 409 410 |
# File 'lib/necropsy/models.rb', line 408 def kind @kind end |
#metadata ⇒ Object (readonly)
Returns the value of attribute metadata
408 409 410 |
# File 'lib/necropsy/models.rb', line 408 def @metadata end |
#producer ⇒ Object (readonly)
Returns the value of attribute producer
408 409 410 |
# File 'lib/necropsy/models.rb', line 408 def producer @producer end |
#producer_version ⇒ Object (readonly)
Returns the value of attribute producer_version
408 409 410 |
# File 'lib/necropsy/models.rb', line 408 def producer_version @producer_version end |
#relation ⇒ Object (readonly)
Returns the value of attribute relation
408 409 410 |
# File 'lib/necropsy/models.rb', line 408 def relation @relation end |
#scope ⇒ Object (readonly)
Returns the value of attribute scope
408 409 410 |
# File 'lib/necropsy/models.rb', line 408 def scope @scope end |
#source ⇒ Object (readonly)
Returns the value of attribute source
408 409 410 |
# File 'lib/necropsy/models.rb', line 408 def source @source end |
#weight ⇒ Object (readonly)
Returns the value of attribute weight
408 409 410 |
# File 'lib/necropsy/models.rb', line 408 def weight @weight end |
Class Method Details
.data_new ⇒ Object
424 |
# File 'lib/necropsy/models.rb', line 424 alias_method :data_new, :new |
.new(*values, **attributes) ⇒ Object Also known as: []
426 427 428 |
# File 'lib/necropsy/models.rb', line 426 def new(*values, **attributes) compatible_new(*values, **attributes) end |
Instance Method Details
#to_h ⇒ Object
472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 |
# File 'lib/necropsy/models.rb', line 472 def to_h { 'analyzer' => analyzer.to_s, 'kind' => kind.to_s, 'weight' => weight, 'details' => details, 'metadata' => , 'evidence_id' => evidence_id, 'producer' => producer&.to_s, 'producer_version' => producer_version&.to_s, 'grade' => grade&.to_s, 'relation' => relation&.to_s, 'source' => source.respond_to?(:to_h) ? source.to_h : source, 'assumptions' => assumptions, 'scope' => scope.respond_to?(:to_h) ? scope.to_h : scope } end |