class OEJTSTest

Implementation of OEJTS

Constants

DOC
QUESTIONS

Public Class Methods

parse_ftv(desig, ftv) click to toggle source
# File lib/jungi/oejts.rb, line 144
def self.parse_ftv(desig, ftv)
  word = desig[2] == 'F' ? 'Feeling' : 'Thinking'
  if ftv.between?(0, 1)
    "Lukewarm #{word}, "
  elsif ftv < 4
    "Weak(#{ftv}) #{word}, "
  else
    "Strong(#{ftv}) #{word}, "
  end
end
parse_iev(desig, iev) click to toggle source
# File lib/jungi/oejts.rb, line 122
def self.parse_iev(desig, iev)
  word = desig[0] == 'E' ? 'Extraversion' : 'Intraversion'
  if iev.between?(0, 1)
    "Lukewarm #{word}, "
  elsif iev < 4
    "Weak(#{iev}) #{word}, "
  else
    "Strong(#{iev}) #{word}, "
  end
end
parse_jpv(desig, jpv) click to toggle source
# File lib/jungi/oejts.rb, line 155
def self.parse_jpv(desig, jpv)
  word = desig[3] == 'J' ? 'Judging' : 'Perceiving'
  if jpv.between?(0, 1)
    "Lukewarm #{word}"
  elsif jpv < 4
    "Weak(#{jpv}) #{word}"
  else
    "Strong(#{jpv}) #{word}"
  end
end
parse_result(desig, iev, snv, ftv, jpv) click to toggle source
# File lib/jungi/oejts.rb, line 166
def self.parse_result(desig, iev, snv, ftv, jpv)
  parse_iev(desig, iev) << parse_snv(desig, snv) <<
    parse_ftv(desig, ftv) << parse_jpv(desig, jpv)
end
parse_snv(desig, snv) click to toggle source
# File lib/jungi/oejts.rb, line 133
def self.parse_snv(desig, snv)
  word = desig[1] == 'S' ? 'Sensing' : 'Intuition'
  if snv.between?(0, 1)
    "Lukewarm #{word}\n"
  elsif snv < 4
    "Weak(#{snv}) #{word}\n"
  else
    "Strong(#{snv}) #{word}\n"
  end
end

Public Instance Methods

result() click to toggle source
# File lib/jungi/oejts.rb, line 81
def result
  fail 'Not ready yet!' unless self.finished?
  ie = 30 - self.Q3 - self.Q7 - self.Q11 + self.Q15 -
       self.Q19 + self.Q23 + self.Q27 - self.Q31
  sn = 12 + self.Q4 + self.Q8 + self.Q12 + self.Q16 +
       self.Q20 - self.Q24 - self.Q28 + self.Q32
  ft = 30 - self.Q2 + self.Q6 + self.Q10 - self.Q14 -
       self.Q18 + self.Q22 - self.Q26 - self.Q30
  jp = 18 + self.Q1 + self.Q5 - self.Q9 + self.Q13 -
       self.Q17 + self.Q21 - self.Q25 + self.Q29
  desig = ''

  if ie > 24
    desig << 'E'
  else
    desig << 'I'
  end
  if sn > 24
    desig << 'N'
  else
    desig << 'S'
  end
  if ft > 24
    desig << 'T'
  else
    desig << 'F'
  end
  if jp > 24
    desig << 'P'
  else
    desig << 'J'
  end

  iev = (ie - 24).abs
  snv = (sn - 24).abs
  ftv = (ft - 24).abs
  jpv = (jp - 24).abs

  [desig, iev, snv, ftv, jpv]
end