jungi 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +675 -0
- data/README.md +49 -0
- data/Rakefile +38 -0
- data/bin/jungi +181 -0
- data/lib/jungi/bigfive.rb +329 -0
- data/lib/jungi/classes.rb +193 -0
- data/lib/jungi/cli.rb +105 -0
- data/lib/jungi/oejts.rb +170 -0
- data/lib/jungi/paulhus.rb +130 -0
- metadata +53 -0
data/README.md
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
# JungI (Yoong-ee)
|
2
|
+
|
3
|
+
```
|
4
|
+
JungI - A simple program for taking open source personality tests.
|
5
|
+
Copyright (C) 2015 Mfrogy Starmade
|
6
|
+
|
7
|
+
This program is free software: you can redistribute it and/or modify
|
8
|
+
it under the terms of the GNU General Public License as published by
|
9
|
+
the Free Software Foundation, either version 3 of the License, or
|
10
|
+
(at your option) any later version.
|
11
|
+
|
12
|
+
This program is distributed in the hope that it will be useful,
|
13
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
GNU General Public License for more details.
|
16
|
+
|
17
|
+
You should have received a copy of the GNU General Public License
|
18
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
```
|
20
|
+
|
21
|
+
> Disclaimer: I am not a psychologist!
|
22
|
+
|
23
|
+
## Goals
|
24
|
+
1. Provide a cross-platform way to take standardized Public Domain personality tests.
|
25
|
+
2. To reduce outside dependencies to a minimum.
|
26
|
+
3. To provide both a CLI(Command Line Interface) and a GUI(Graphical User Interface) as usable interfaces.
|
27
|
+
|
28
|
+
## Supports
|
29
|
+
* Open Extended Jungian Types (OEJTS) 1.2
|
30
|
+
* IPIP Big-Five Broad Domain 50 Questions
|
31
|
+
* IPIP Big-Five Broad Domain 100 Questions
|
32
|
+
* Delroy L. Paulhus' Short Dark Triad (SD3)
|
33
|
+
|
34
|
+
## Usage
|
35
|
+
```
|
36
|
+
Usage: jungi-cli [options]
|
37
|
+
|
38
|
+
Tests:
|
39
|
+
-b, --big Use IPIP Big Five Broad 50 test
|
40
|
+
-B, --bigger Use IPIP Big Five Broad 100 test
|
41
|
+
-j, --jungian Use OEJTS 1.2 test
|
42
|
+
-t, --triad Use Delroy L. Paulhus' SD3
|
43
|
+
|
44
|
+
Modifiers:
|
45
|
+
-r, --randomize Automatically fills in random answers
|
46
|
+
|
47
|
+
Common options:
|
48
|
+
-h, --help Display this help and exit
|
49
|
+
```
|
data/Rakefile
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Thanks, fhsjaagshs!
|
4
|
+
|
5
|
+
s = eval(File.read(Dir.glob("*.gemspec").first))
|
6
|
+
app_name = s.name
|
7
|
+
gem_name = "#{s.name}-#{s.version}.gem"
|
8
|
+
|
9
|
+
desc "Cleanup gem files"
|
10
|
+
task :clean do
|
11
|
+
`[ -f #{gem_name} ] && rm #{gem_name}`
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "Build gem"
|
15
|
+
task :build do
|
16
|
+
puts "Building '#{app_name}'..."
|
17
|
+
`gem build -q #{app_name}.gemspec`
|
18
|
+
end
|
19
|
+
|
20
|
+
desc "Install gem"
|
21
|
+
task :install do
|
22
|
+
puts "Uninstalling currently installed '#{app_name}'..."
|
23
|
+
`gem uninstall -q --force #{gem_name}`
|
24
|
+
puts "Installing '#{app_name}'..."
|
25
|
+
`gem install -q --ignore-dependencies --local #{gem_name}`
|
26
|
+
end
|
27
|
+
|
28
|
+
desc "Upload gem to rubyforge"
|
29
|
+
task :push do
|
30
|
+
Rake::Task["clean"].invoke
|
31
|
+
Rake::Task["build"].invoke
|
32
|
+
puts "Pushing '#{app_name}' to rubygems..."
|
33
|
+
exec("gem push #{gem_name}")
|
34
|
+
end
|
35
|
+
|
36
|
+
task :default do
|
37
|
+
Rake::Task["build"].invoke
|
38
|
+
end
|
data/bin/jungi
ADDED
@@ -0,0 +1,181 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
3
|
+
|
4
|
+
# JungI - A simple program for taking open source personality tests.
|
5
|
+
# Copyright (C) 2015 Mfrogy Starmade
|
6
|
+
#
|
7
|
+
# This program is free software: you can redistribute it and/or modify
|
8
|
+
# it under the terms of the GNU General Public License as published by
|
9
|
+
# the Free Software Foundation, either version 3 of the License, or
|
10
|
+
# (at your option) any later version.
|
11
|
+
#
|
12
|
+
# This program is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU General Public License
|
18
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
|
20
|
+
require 'optparse'
|
21
|
+
begin
|
22
|
+
require_relative '../lib/jungi/classes'
|
23
|
+
require_relative '../lib/jungi/oejts'
|
24
|
+
require_relative '../lib/jungi/bigfive'
|
25
|
+
require_relative '../lib/jungi/paulhus'
|
26
|
+
require_relative '../lib/jungi/cli.rb'
|
27
|
+
rescue LoadError
|
28
|
+
require 'jungi/classes'
|
29
|
+
require 'jungi/oejts'
|
30
|
+
require 'jungi/bigfive'
|
31
|
+
require 'jungi/paulhus'
|
32
|
+
require 'jungi/cli'
|
33
|
+
end
|
34
|
+
|
35
|
+
WIDTH = JungiCli.width
|
36
|
+
|
37
|
+
options = {}
|
38
|
+
ARGV.options do |opts|
|
39
|
+
opts.banner = 'Usage: jungi-cli [options]'
|
40
|
+
opts.separator 'This test has Mad Cow Powers' if Process.uid == 0
|
41
|
+
opts.separator ''
|
42
|
+
opts.separator 'Tests:'
|
43
|
+
opts.on('-b', '--big', 'Use IPIP Big Five Broad 50 test') do |_v|
|
44
|
+
options[:bigfivebroad50] = true
|
45
|
+
end
|
46
|
+
opts.on('-B', '--bigger', 'Use IPIP Big Five Broad 100 test') do |_v|
|
47
|
+
options[:bigfivebroad100] = true
|
48
|
+
end
|
49
|
+
opts.on('-j', '--jungian', 'Use OEJTS 1.2 test') do |_v|
|
50
|
+
options[:oejts] = true
|
51
|
+
end
|
52
|
+
opts.on('-t', '--triad', "Use Delroy L. Paulhus' SD3") do |_v|
|
53
|
+
options[:sd3test] = true
|
54
|
+
end
|
55
|
+
|
56
|
+
opts.separator ''
|
57
|
+
opts.separator 'Modifiers:'
|
58
|
+
opts.on('-r', '--randomize', 'Automatically fills in random answers') do |_v|
|
59
|
+
options[:randomize] = true
|
60
|
+
end
|
61
|
+
opts.on('-s', '--shoes', 'Use the green_shoes gem to provide a GUI') do |_v|
|
62
|
+
options[:shoes] = true
|
63
|
+
end
|
64
|
+
opts.separator ''
|
65
|
+
opts.separator 'Common options:'
|
66
|
+
opts.on_tail('-h', '--help', 'Display this help and exit')
|
67
|
+
|
68
|
+
options[:helper] = opts.help
|
69
|
+
|
70
|
+
opts.parse!
|
71
|
+
end
|
72
|
+
if options[:shoes]
|
73
|
+
shoes_available = begin
|
74
|
+
Gem::Specification.find_by_name('green_shoes')
|
75
|
+
rescue Gem::LoadError
|
76
|
+
false
|
77
|
+
rescue
|
78
|
+
Gem.available?('green_shoes')
|
79
|
+
end
|
80
|
+
|
81
|
+
if shoes_available
|
82
|
+
require 'green_shoes'
|
83
|
+
else
|
84
|
+
STDERR.puts options[:helper] + "\n"
|
85
|
+
STDERR.puts 'The -s/--shoes option requires the green_shoes gem'
|
86
|
+
exit
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
if WIDTH < 80
|
91
|
+
STDERR.puts options[:helper] + "\n"
|
92
|
+
STDERR.puts "Minimum shell width is 80 characters (#{WIDTH})"
|
93
|
+
exit
|
94
|
+
end
|
95
|
+
tests = 0
|
96
|
+
tests += 1 if options[:bigfivebroad50]
|
97
|
+
tests += 1 if options[:bigfivebroad100]
|
98
|
+
tests += 1 if options[:oejts]
|
99
|
+
tests += 1 if options[:sd3test]
|
100
|
+
|
101
|
+
if tests > 1
|
102
|
+
STDERR.puts options[:helper] + "\n"
|
103
|
+
STDERR.puts 'Only use one test argument at a time'
|
104
|
+
exit
|
105
|
+
end
|
106
|
+
|
107
|
+
if options[:oejts]
|
108
|
+
current_test = OEJTSTest.new
|
109
|
+
JungiCli.clr
|
110
|
+
JungiCli.display_doc(OEJTSTest::DOC)
|
111
|
+
JungiCli.line
|
112
|
+
|
113
|
+
32.times do |int|
|
114
|
+
puts "Question #{int + 1}".center WIDTH
|
115
|
+
s = JungiCli.ask_scale((current_test.question int), options[:randomize])
|
116
|
+
current_test.set_answer int, s
|
117
|
+
end
|
118
|
+
desig, iev, snv, ftv, jpv = current_test.result
|
119
|
+
|
120
|
+
puts('Test Complete'.center WIDTH)
|
121
|
+
puts('Designation'.center WIDTH, '-')
|
122
|
+
puts(desig.center WIDTH)
|
123
|
+
JungiCli.line
|
124
|
+
JungiCli.display_doc(OEJTSTest.parse_result(desig, iev, snv, ftv, jpv))
|
125
|
+
JungiCli.line
|
126
|
+
elsif options[:bigfivebroad50]
|
127
|
+
current_test = BigFiveBroad50Test.new
|
128
|
+
JungiCli.clr
|
129
|
+
JungiCli.display_doc(BigFiveBroad50Test::DOC)
|
130
|
+
JungiCli.line
|
131
|
+
|
132
|
+
50.times do |c|
|
133
|
+
puts "Question #{c + 1}".center WIDTH
|
134
|
+
s = JungiCli.ask_scale((current_test.question c), options[:randomize])
|
135
|
+
current_test.set_answer c, s
|
136
|
+
end
|
137
|
+
ex, agr, cons, emo, int = current_test.result
|
138
|
+
puts('Test Complete'.center WIDTH)
|
139
|
+
JungiCli.line
|
140
|
+
JungiCli.display_doc("Extraversion: #{ex} Agreeableness: #{agr}\n" \
|
141
|
+
"Conscientiousness: #{cons} Emotional Stability: #{emo}\n" \
|
142
|
+
"Intellect: #{int}")
|
143
|
+
JungiCli.line
|
144
|
+
elsif options[:bigfivebroad100]
|
145
|
+
current_test = BigFiveBroad100Test.new
|
146
|
+
JungiCli.clr
|
147
|
+
JungiCli.display_doc(BigFiveBroad100Test::DOC)
|
148
|
+
JungiCli.line
|
149
|
+
|
150
|
+
100.times do |num|
|
151
|
+
puts "Question #{num + 1}".center WIDTH
|
152
|
+
s = JungiCli.ask_scale((current_test.question num), options[:randomize])
|
153
|
+
current_test.set_answer num, s
|
154
|
+
end
|
155
|
+
ex, agr, cons, emo, int = current_test.result
|
156
|
+
puts('Test Complete'.center WIDTH)
|
157
|
+
JungiCli.line
|
158
|
+
JungiCli.display_doc("Extraversion: #{ex} Agreeableness: #{agr}\n" \
|
159
|
+
"Conscientiousness: #{cons} Emotional Stability: #{emo}\n" \
|
160
|
+
"Intellect: #{int}")
|
161
|
+
JungiCli.line
|
162
|
+
elsif options[:sd3test]
|
163
|
+
current_test = SD3Test.new
|
164
|
+
JungiCli.clr
|
165
|
+
JungiCli.display_doc(SD3Test::DOC)
|
166
|
+
JungiCli.line
|
167
|
+
|
168
|
+
27.times do |c|
|
169
|
+
puts "Question #{c + 1}".center WIDTH
|
170
|
+
s = JungiCli.ask_scale((current_test.question c), options[:randomize])
|
171
|
+
current_test.set_answer c, s
|
172
|
+
end
|
173
|
+
mach, narc, psycho = current_test.result
|
174
|
+
puts('Test Complete'.center WIDTH)
|
175
|
+
JungiCli.line
|
176
|
+
JungiCli.display_doc(SD3Test.parse_result(mach, narc, psycho))
|
177
|
+
JungiCli.line
|
178
|
+
else
|
179
|
+
STDERR.puts options[:helper] + "\n"
|
180
|
+
STDERR.puts 'You must specify a test type'
|
181
|
+
end
|
@@ -0,0 +1,329 @@
|
|
1
|
+
# JungI - A simple program for taking open source personality tests.
|
2
|
+
# Copyright (C) 2015 Mfrogy Starmade
|
3
|
+
#
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
7
|
+
# (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
# GNU General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
# BigFive IPIP tests are sourced from the following locations.
|
18
|
+
#
|
19
|
+
#
|
20
|
+
# Goldberg, L. R. (1999). A broad-bandwidth, public domain, personality
|
21
|
+
# inventory measuring the lower-level facets of several five-factor
|
22
|
+
# models. In I. Mervielde, I. Deary, F. De Fruyt, & F. Ostendorf (Eds.),
|
23
|
+
# Personality Psychology in Europe, Vol. 7 (pp. 7-28). Tilburg,
|
24
|
+
# The Netherlands: Tilburg University Press.
|
25
|
+
#
|
26
|
+
# Goldberg, L. R., Johnson, J. A., Eber, H. W., Hogan, R., Ashton,
|
27
|
+
# M. C., Cloninger, C. R., & Gough, H. C. (2006). The International
|
28
|
+
# Personality Item Pool and the future of public-domain personality
|
29
|
+
# measures. Journal of Research in Personality, 40, 84-96.
|
30
|
+
#
|
31
|
+
# International Personality Item Pool: A Scientific Collaboratory for
|
32
|
+
# the Development of Advanced Measures of Personality Traits and
|
33
|
+
# Other Individual Differences (http://ipip.ori.org/). Internet Web Site.
|
34
|
+
|
35
|
+
begin
|
36
|
+
require_relative './classes'
|
37
|
+
rescue LoadError
|
38
|
+
require 'jungi/classes'
|
39
|
+
end
|
40
|
+
|
41
|
+
# Implementation of BigFive Broad 50 Q
|
42
|
+
class BigFiveBroad50Test < ScaleTest
|
43
|
+
DOC = <<END_FILE
|
44
|
+
IPIP Big Five Broad Domains
|
45
|
+
50 Question Version
|
46
|
+
|
47
|
+
Each question will be asking how well a specific trait
|
48
|
+
describes you. For instance, if the trait is
|
49
|
+
"Start conversations" you should type in "1"
|
50
|
+
if you never start conversations, "2" if you rarely start
|
51
|
+
conversations, "3" if you sometimes do, "4" if you often
|
52
|
+
start them, and "5" if you start them all the time.
|
53
|
+
Press <ENTER> after you've made your choice.
|
54
|
+
END_FILE
|
55
|
+
QUESTIONS = [
|
56
|
+
'Am not really interested in others.',
|
57
|
+
'Often forget to put things back in their proper place.',
|
58
|
+
'Get irritated easily.',
|
59
|
+
'Am the life of the party.',
|
60
|
+
'Change my mood a lot.',
|
61
|
+
'Often feel blue.',
|
62
|
+
'Leave my belongings around.',
|
63
|
+
'Am quick to understand things.',
|
64
|
+
'Am exacting in my work.',
|
65
|
+
'Am quiet around strangers.',
|
66
|
+
'Have a vivid imagination.',
|
67
|
+
"Feel others' emotions.",
|
68
|
+
'Start conversations.',
|
69
|
+
'Get upset easily.',
|
70
|
+
'Am easily disturbed.',
|
71
|
+
'Am full of ideas.',
|
72
|
+
'Make a mess of things.',
|
73
|
+
"Don't like to draw attention to myself.",
|
74
|
+
'Take time out for others.',
|
75
|
+
'Do not have a good imagination.',
|
76
|
+
'Get stressed out easily.',
|
77
|
+
'Have excellent ideas.',
|
78
|
+
"Am not interested in other people's problems.",
|
79
|
+
'Have frequent mood swings.',
|
80
|
+
'Am interested in people.',
|
81
|
+
'Get chores done right away.',
|
82
|
+
'Talk to a lot of different people at parties.',
|
83
|
+
'Worry about things.',
|
84
|
+
'Feel comfortable around people.',
|
85
|
+
'Have difficulty understanding abstract ideas.',
|
86
|
+
"Don't mind being the center of attention.",
|
87
|
+
'Feel little concern for others.',
|
88
|
+
'Have a soft heart.',
|
89
|
+
"Don't talk a lot.",
|
90
|
+
'Spend time reflecting on things.',
|
91
|
+
'Have a rich vocabulary.',
|
92
|
+
'Am relaxed most of the time.',
|
93
|
+
'Keep in the background.',
|
94
|
+
'Shirk my duties.',
|
95
|
+
'Like order.',
|
96
|
+
'Pay attention to details.',
|
97
|
+
'Insult people.',
|
98
|
+
'Am not interested in abstract ideas.',
|
99
|
+
'Make people feel at ease.',
|
100
|
+
'Use difficult words.',
|
101
|
+
'Follow a schedule.',
|
102
|
+
'Have little to say.',
|
103
|
+
'Am always prepared.',
|
104
|
+
"Sympathize with others' feelings.",
|
105
|
+
'Seldom feel blue.'
|
106
|
+
]
|
107
|
+
|
108
|
+
def result
|
109
|
+
fail 'Not ready yet!' unless self.finished?
|
110
|
+
|
111
|
+
ex = self.Q4 + self.Q29 + self.Q13 + self.Q27 + self.Q31 +
|
112
|
+
Question::Answer.reverse_scale(self.Q34) +
|
113
|
+
Question::Answer.reverse_scale(self.Q38) +
|
114
|
+
Question::Answer.reverse_scale(self.Q47) +
|
115
|
+
Question::Answer.reverse_scale(self.Q18) +
|
116
|
+
Question::Answer.reverse_scale(self.Q10)
|
117
|
+
agr = self.Q25 + self.Q49 + self.Q33 + self.Q19 + self.Q12 +
|
118
|
+
self.Q44 + Question::Answer.reverse_scale(self.Q1) +
|
119
|
+
Question::Answer.reverse_scale(self.Q42) +
|
120
|
+
Question::Answer.reverse_scale(self.Q23) +
|
121
|
+
Question::Answer.reverse_scale(self.Q32)
|
122
|
+
cons = self.Q48 + self.Q41 + self.Q26 + self.Q40 + self.Q46 +
|
123
|
+
self.Q9 + Question::Answer.reverse_scale(self.Q7) +
|
124
|
+
Question::Answer.reverse_scale(self.Q17) +
|
125
|
+
Question::Answer.reverse_scale(self.Q2) +
|
126
|
+
Question::Answer.reverse_scale(self.Q39)
|
127
|
+
emo = self.Q37 + self.Q50 +
|
128
|
+
Question::Answer.reverse_scale(self.Q21) +
|
129
|
+
Question::Answer.reverse_scale(self.Q28) +
|
130
|
+
Question::Answer.reverse_scale(self.Q15) -
|
131
|
+
self.Q14 + Question::Answer.reverse_scale(self.Q5) +
|
132
|
+
Question::Answer.reverse_scale(self.Q24) +
|
133
|
+
Question::Answer.reverse_scale(self.Q3) +
|
134
|
+
Question::Answer.reverse_scale(self.Q6)
|
135
|
+
int = self.Q36 + self.Q11 + self.Q22 + self.Q8 + self.Q45 + self.Q35 +
|
136
|
+
self.Q16 + Question::Answer.reverse_scale(self.Q30) +
|
137
|
+
Question::Answer.reverse_scale(self.Q43) +
|
138
|
+
Question::Answer.reverse_scale(self.Q20)
|
139
|
+
|
140
|
+
[ex, agr, cons, emo, int]
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
# Implementation of BigFive Broad 100 Q
|
145
|
+
class BigFiveBroad100Test < ScaleTest
|
146
|
+
DOC = <<END_FILE
|
147
|
+
IPIP Big Five Broad Domains
|
148
|
+
100 Question Version
|
149
|
+
|
150
|
+
Each question will be asking how well a specific trait
|
151
|
+
describes you. For instance, if the trait is
|
152
|
+
"Start conversations" you should type in "1"
|
153
|
+
if you never start conversations, "2" if you rarely start
|
154
|
+
conversations, "3" if you sometimes do, "4" if you often
|
155
|
+
start them, and "5" if you start them all the time.
|
156
|
+
Press <ENTER> after you've made your choice.
|
157
|
+
END_FILE
|
158
|
+
QUESTIONS = [
|
159
|
+
'Talk to a lot of different people at parties.',
|
160
|
+
'Like to tidy up.',
|
161
|
+
'Know how to captivate people.',
|
162
|
+
'Change my mood a lot.',
|
163
|
+
'Have little to say.',
|
164
|
+
'Neglect my duties.',
|
165
|
+
'Panic easily.',
|
166
|
+
'Often forget to put things back in their proper place.',
|
167
|
+
'Make friends easily.',
|
168
|
+
'Start conversations.',
|
169
|
+
'Follow a schedule.',
|
170
|
+
'Am quiet around strangers.',
|
171
|
+
'Leave a mess in my room.',
|
172
|
+
'Have excellent ideas.',
|
173
|
+
'Use difficult words.',
|
174
|
+
'Try to avoid complex people.',
|
175
|
+
'Catch on to things quickly.',
|
176
|
+
'Feel at ease with people.',
|
177
|
+
'Love to think up new ways of doing things.',
|
178
|
+
'Am skilled in handling social situations.',
|
179
|
+
'Often feel blue.',
|
180
|
+
'Have a vivid imagination.',
|
181
|
+
'Often feel uncomfortable around others.',
|
182
|
+
'Insult people.',
|
183
|
+
'Love order and regularity.',
|
184
|
+
'Feel comfortable around people.',
|
185
|
+
'Get irritated easily.',
|
186
|
+
'Can handle a lot of information.',
|
187
|
+
'Carry the conversation to a higher level.',
|
188
|
+
'Grumble about things.',
|
189
|
+
'Spend time reflecting on things.',
|
190
|
+
'Waste my time.',
|
191
|
+
'Do things in a half-way manner.',
|
192
|
+
'Show my gratitude.',
|
193
|
+
'Seldom get mad.',
|
194
|
+
'Make plans and stick to them.',
|
195
|
+
'Leave my belongings around.',
|
196
|
+
'Have frequent mood swings.',
|
197
|
+
'Have difficulty imagining things.',
|
198
|
+
"Don't talk a lot.",
|
199
|
+
'Love to read challenging material.',
|
200
|
+
'Have a good word for everyone.',
|
201
|
+
'Get upset easily.',
|
202
|
+
'Love to help others.',
|
203
|
+
'Feel threatened easily.',
|
204
|
+
'Am exacting in my work.',
|
205
|
+
'Am not really interested in others.',
|
206
|
+
'Get stressed out easily.',
|
207
|
+
'Will not probe deeply into a subject.',
|
208
|
+
'Continue until everything is perfect.',
|
209
|
+
'Am easily disturbed.',
|
210
|
+
'Am not interested in abstract ideas.',
|
211
|
+
'Am relaxed most of the time.',
|
212
|
+
'Get caught up in my problems.',
|
213
|
+
"Sympathize with others' feelings.",
|
214
|
+
'Am on good terms with nearly everyone.',
|
215
|
+
'Find it difficult to get down to work.',
|
216
|
+
"Feel others' emotions.",
|
217
|
+
"Am not interested in other people's problems.",
|
218
|
+
'Do not have a good imagination.',
|
219
|
+
'Am the life of the party.',
|
220
|
+
'Like order.',
|
221
|
+
'Make a mess of things.',
|
222
|
+
'Get chores done right away.',
|
223
|
+
'Feel little concern for others.',
|
224
|
+
'Take offense easily.',
|
225
|
+
'Get angry easily.',
|
226
|
+
"Don't mind being the center of attention.",
|
227
|
+
"Inquire about others' well-being.",
|
228
|
+
'Am hard to get to know.',
|
229
|
+
'Am interested in people.',
|
230
|
+
'Am good at many things.',
|
231
|
+
'Worry about things.',
|
232
|
+
'Find it difficult to approach others.',
|
233
|
+
'Am a very private person.',
|
234
|
+
'Have a soft heart.',
|
235
|
+
'Keep in the background.',
|
236
|
+
'Love children.',
|
237
|
+
'Am quick to understand things.',
|
238
|
+
"Don't like to draw attention to myself.",
|
239
|
+
'Avoid difficult reading material.',
|
240
|
+
'Take charge.',
|
241
|
+
'Think of others first.',
|
242
|
+
'Make people feel at ease.',
|
243
|
+
'Wait for others to lead the way.',
|
244
|
+
'Know how to comfort others.',
|
245
|
+
'Seldom feel blue.',
|
246
|
+
'Bottle up my feelings.',
|
247
|
+
'Am not easily bothered by things.',
|
248
|
+
'Am full of ideas.',
|
249
|
+
'Am indifferent to the feelings of others.',
|
250
|
+
'Shirk my duties.',
|
251
|
+
'Pay attention to details.',
|
252
|
+
'Rarely get irritated.',
|
253
|
+
'Get overwhelmed by emotions.',
|
254
|
+
'Have difficulty understanding abstract ideas.',
|
255
|
+
'Have a rich vocabulary.',
|
256
|
+
'Am always prepared.',
|
257
|
+
'Do things according to a plan.',
|
258
|
+
'Take time out for others.'
|
259
|
+
]
|
260
|
+
|
261
|
+
def result
|
262
|
+
fail 'Not ready yet!' unless self.finished?
|
263
|
+
|
264
|
+
ex = self.Q61 + self.Q26 + self.Q10 + self.Q1 +
|
265
|
+
self.Q68 + self.Q9 + self.Q82 + self.Q3 +
|
266
|
+
self.Q18 +
|
267
|
+
Question::Answer.reverse_scale(self.Q20) +
|
268
|
+
Question::Answer.reverse_scale(self.Q4) +
|
269
|
+
Question::Answer.reverse_scale(self.Q77) +
|
270
|
+
Question::Answer.reverse_scale(self.Q5) +
|
271
|
+
Question::Answer.reverse_scale(self.Q80) +
|
272
|
+
Question::Answer.reverse_scale(self.Q12) +
|
273
|
+
Question::Answer.reverse_scale(self.Q74) +
|
274
|
+
Question::Answer.reverse_scale(self.Q23) +
|
275
|
+
Question::Answer.reverse_scale(self.Q88) +
|
276
|
+
Question::Answer.reverse_scale(self.Q75) +
|
277
|
+
Question::Answer.reverse_scale(self.Q85)
|
278
|
+
agr = self.Q71 + self.Q55 + self.Q76 + self.Q100 +
|
279
|
+
self.Q58 + self.Q84 + self.Q69 + self.Q86 +
|
280
|
+
self.Q78 + self.Q56 + self.Q42 + self.Q34 +
|
281
|
+
self.Q83 + self.Q44 +
|
282
|
+
Question::Answer.reverse_scale(self.Q24) +
|
283
|
+
Question::Answer.reverse_scale(self.Q59) +
|
284
|
+
Question::Answer.reverse_scale(self.Q65) +
|
285
|
+
Question::Answer.reverse_scale(self.Q47) +
|
286
|
+
Question::Answer.reverse_scale(self.Q70) +
|
287
|
+
Question::Answer.reverse_scale(self.Q91)
|
288
|
+
cons = self.Q98 + self.Q93 + self.Q64 + self.Q62 +
|
289
|
+
self.Q11 + self.Q46 + self.Q99 + self.Q50 +
|
290
|
+
self.Q36 + self.Q25 + self.Q2 +
|
291
|
+
Question::Answer.reverse_scale(self.Q37) +
|
292
|
+
Question::Answer.reverse_scale(self.Q63) +
|
293
|
+
Question::Answer.reverse_scale(self.Q8) +
|
294
|
+
Question::Answer.reverse_scale(self.Q92) +
|
295
|
+
Question::Answer.reverse_scale(self.Q6) +
|
296
|
+
Question::Answer.reverse_scale(self.Q32) +
|
297
|
+
Question::Answer.reverse_scale(self.Q33) +
|
298
|
+
Question::Answer.reverse_scale(self.Q57) +
|
299
|
+
Question::Answer.reverse_scale(self.Q13)
|
300
|
+
emo = self.Q53 + self.Q87 + self.Q89 + self.Q94 +
|
301
|
+
self.Q35 + Question::Answer.reverse_scale(self.Q48) +
|
302
|
+
Question::Answer.reverse_scale(self.Q73) +
|
303
|
+
Question::Answer.reverse_scale(self.Q51) +
|
304
|
+
Question::Answer.reverse_scale(self.Q43) +
|
305
|
+
Question::Answer.reverse_scale(self.Q4) +
|
306
|
+
Question::Answer.reverse_scale(self.Q38) +
|
307
|
+
Question::Answer.reverse_scale(self.Q27) +
|
308
|
+
Question::Answer.reverse_scale(self.Q21) +
|
309
|
+
Question::Answer.reverse_scale(self.Q67) +
|
310
|
+
Question::Answer.reverse_scale(self.Q7) +
|
311
|
+
Question::Answer.reverse_scale(self.Q45) +
|
312
|
+
Question::Answer.reverse_scale(self.Q95) +
|
313
|
+
Question::Answer.reverse_scale(self.Q66) +
|
314
|
+
Question::Answer.reverse_scale(self.Q54) +
|
315
|
+
Question::Answer.reverse_scale(self.Q30)
|
316
|
+
int = self.Q97 + self.Q22 + self.Q14 + self.Q79 + self.Q15 +
|
317
|
+
self.Q31 + self.Q90 + self.Q29 + self.Q17 + self.Q28 +
|
318
|
+
self.Q19 + self.Q41 + self.Q72 +
|
319
|
+
Question::Answer.reverse_scale(self.Q96) +
|
320
|
+
Question::Answer.reverse_scale(self.Q52) +
|
321
|
+
Question::Answer.reverse_scale(self.Q60) +
|
322
|
+
Question::Answer.reverse_scale(self.Q16) +
|
323
|
+
Question::Answer.reverse_scale(self.Q39) +
|
324
|
+
Question::Answer.reverse_scale(self.Q81) +
|
325
|
+
Question::Answer.reverse_scale(self.Q49)
|
326
|
+
|
327
|
+
[ex, agr, cons, emo, int]
|
328
|
+
end
|
329
|
+
end
|