Module: Question::Answer

Defined in:
lib/jungi/classes.rb

Overview

Question Answer Module

Constant Summary collapse

YES =
:yes
NO =
:no

Class Method Summary collapse

Class Method Details

.follows_type?(type, value) ⇒ Boolean

Checks value follows type

Returns:

  • (Boolean)


75
76
77
78
79
80
81
82
83
84
85
# File 'lib/jungi/classes.rb', line 75

def self.follows_type?(type, value)
  if type == Question::Type::YESORNO
    return Question::Answer.yes_or_no?(value)
  elsif type == Question::Type::SCALE
    return Question::Answer.scale?(value)
  elsif type == Question::Type::SCALE7
    return Question::Answer.scale7?(value)
  else
    fail "#{type} is an invalid question type!"
  end
end

.reverse_scale(value) ⇒ Object

Reverse scale value



50
51
52
53
54
55
# File 'lib/jungi/classes.rb', line 50

def self.reverse_scale(value)
  unless Question::Answer.scale?(value)
    fail "#{type} is not a proper scale!"
  end
  [5, 4, 3, 2, 1].to_a[value - 1]
end

.reverse_scale7(value) ⇒ Object

Reverse scale7 value



67
68
69
70
71
72
# File 'lib/jungi/classes.rb', line 67

def self.reverse_scale7(value)
  unless Question::Answer.scale7?(value)
    fail "#{type} is not a proper scale7!"
  end
  [7, 6, 5, 4, 3, 2, 1].to_a[value - 1]
end

.scale7?(value) ⇒ Boolean

Check value for scale7 value

Returns:

  • (Boolean)


58
59
60
61
62
63
64
# File 'lib/jungi/classes.rb', line 58

def self.scale7?(value)
  if (value.instance_of? Fixnum) && value.between?(1, 7)
    return true
  else
    return false
  end
end

.scale?(value) ⇒ Boolean

Check value for scale value

Returns:

  • (Boolean)


41
42
43
44
45
46
47
# File 'lib/jungi/classes.rb', line 41

def self.scale?(value)
  if (value.instance_of? Fixnum) && value.between?(1, 5)
    return true
  else
    return false
  end
end

.yes_or_no?(value) ⇒ Boolean

Check value for yes or no value

Returns:

  • (Boolean)


32
33
34
35
36
37
38
# File 'lib/jungi/classes.rb', line 32

def self.yes_or_no?(value)
  if value == Question::Answer::YES || value == Question::Answer::NO
    return true
  else
    return false
  end
end