Class: Stix2::ConfidenceScale

Inherits:
Object
  • Object
show all
Defined in:
lib/stix2/confidence_scale.rb

Constant Summary collapse

SCALE_NONE_LOW_MED_HIGH =
{
  0..0 => {scale: "None", stix: 0},
  1..29 => {scale: "Low", stix: 15},
  30..69 => {scale: "Med", stix: 50},
  70..100 => {scale: "High", stix: 85}
}.freeze
SCALE_0_10 =
{
  0..4 => {scale: 0, stix: 0},
  5..14 => {scale: 1, stix: 10},
  15..24 => {scale: 2, stix: 20},
  25..34 => {scale: 3, stix: 30},
  35..44 => {scale: 4, stix: 40},
  45..54 => {scale: 5, stix: 50},
  55..64 => {scale: 6, stix: 60},
  65..74 => {scale: 7, stix: 70},
  75..84 => {scale: 8, stix: 80},
  85..94 => {scale: 9, stix: 90},
  95..100 => {scale: 10, stix: 100}
}.freeze
SCALE_ADMIRALTY_CREDIBILITY =
{
  0..19 => {scale: 5, stix: 10},
  20..39 => {scale: 4, stix: 30},
  40..59 => {scale: 3, stix: 50},
  60..79 => {scale: 2, stix: 70},
  80..100 => {scale: 1, stix: 90}
}.freeze
SCALE_WEP =
{
  0..0 => {scale: "Impossible", stix: 0},
  1..19 => {scale: "Highly Unlikely/Almost Certainly Not", stix: 10},
  20..39 => {scale: "Unlikely/Probably Not", stix: 30},
  40..59 => {scale: "Even Chance", stix: 50},
  60..79 => {scale: "Likely/Probable", stix: 70},
  80..99 => {scale: "Highly likely/Almost Certain", stix: 90},
  100..100 => {scale: "Certain", stix: 100}
}.freeze
SCALE_DNI =
{
  0..9 => {scale: "Almost No Chance / Remote", stix: 5},
  10..19 => {scale: "Very Unlikely / Highly Improbable", stix: 15},
  20..39 => {scale: "Unlikely / Improbable", stix: 30},
  40..59 => {scale: "Roughly Even Chance / Roughly Even Odds", stix: 50},
  60..79 => {scale: "Likely / Probable", stix: 70},
  80..89 => {scale: "Very Likely / Highly Probable", stix: 85},
  90..100 => {scale: "Almost Certain / Nearly Certain", stix: 95}
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(value = nil) ⇒ ConfidenceScale

Returns a new instance of ConfidenceScale.



52
53
54
# File 'lib/stix2/confidence_scale.rb', line 52

def initialize(value = nil)
  @value = value
end

Instance Method Details

#to_0_10Object



66
67
68
69
# File 'lib/stix2/confidence_scale.rb', line 66

def to_0_10
  !@value && 6
  find_range(SCALE_0_10, :scale)
end

#to_0_10_stixObject



71
72
73
# File 'lib/stix2/confidence_scale.rb', line 71

def to_0_10_stix
  find_range(SCALE_0_10, :stix)
end

#to_admiralty_credibilityObject



75
76
77
# File 'lib/stix2/confidence_scale.rb', line 75

def to_admiralty_credibility
  find_range(SCALE_ADMIRALTY_CREDIBILITY, :scale)
end

#to_admiralty_credibility_stixObject



79
80
81
# File 'lib/stix2/confidence_scale.rb', line 79

def to_admiralty_credibility_stix
  find_range(SCALE_ADMIRALTY_CREDIBILITY, :stix)
end

#to_dni_scaleObject



91
92
93
# File 'lib/stix2/confidence_scale.rb', line 91

def to_dni_scale
  find_range(SCALE_DNI, :scale)
end

#to_dni_scale_stixObject



95
96
97
# File 'lib/stix2/confidence_scale.rb', line 95

def to_dni_scale_stix
  find_range(SCALE_DNI, :stix)
end

#to_none_low_med_highObject



56
57
58
59
# File 'lib/stix2/confidence_scale.rb', line 56

def to_none_low_med_high
  !@value && "Not Specified"
  find_range(SCALE_NONE_LOW_MED_HIGH, :scale)
end

#to_none_low_med_high_stixObject



61
62
63
64
# File 'lib/stix2/confidence_scale.rb', line 61

def to_none_low_med_high_stix
  !@value && "Not Specified"
  find_range(SCALE_NONE_LOW_MED_HIGH, :stix)
end

#to_wepObject



83
84
85
# File 'lib/stix2/confidence_scale.rb', line 83

def to_wep
  find_range(SCALE_WEP, :scale)
end

#to_wep_stixObject



87
88
89
# File 'lib/stix2/confidence_scale.rb', line 87

def to_wep_stix
  find_range(SCALE_WEP, :stix)
end