question-simpleChoice 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/#question-simpleChoice.gemspec# +27 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +15 -0
- data/.rspec +2 -0
- data/.travis.yml +3 -0
- data/.yardoc/checksums +13 -0
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/.yardoc/proxy_types +0 -0
- data/Gemfile +7 -0
- data/Guardfile +7 -0
- data/LICENSE.txt +22 -0
- data/README.md +32 -0
- data/Rakefile +15 -0
- data/doc/Examen.html +766 -0
- data/doc/Interfaz.html +440 -0
- data/doc/Lista.html +929 -0
- data/doc/Lista/Node.html +397 -0
- data/doc/Node.html +516 -0
- data/doc/Question.html +117 -0
- data/doc/Question/SimpleChoice.html +132 -0
- data/doc/Question/TrueOrFalse.html +134 -0
- data/doc/QuestionFather.html +565 -0
- data/doc/SimpleChoice.html +505 -0
- data/doc/TrueOrFalse.html +279 -0
- data/doc/_index.html +207 -0
- data/doc/class_list.html +58 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +57 -0
- data/doc/css/style.css +339 -0
- data/doc/file.README.html +110 -0
- data/doc/file_list.html +60 -0
- data/doc/frames.html +26 -0
- data/doc/index.html +110 -0
- data/doc/js/app.js +219 -0
- data/doc/js/full_list.js +181 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +309 -0
- data/doc/top-level-namespace.html +114 -0
- data/lib/exam/examen.rb +85 -0
- data/lib/interfaz/interfaz.rb +49 -0
- data/lib/interfaz/interfazV2.rb +38 -0
- data/lib/node/node.rb +9 -0
- data/lib/nodelist/list.rb +119 -0
- data/lib/question/questionFather.rb +2 -0
- data/lib/question/questionFather/base.rb +16 -0
- data/lib/question/questionFather/version.rb +5 -0
- data/lib/question/simpleChoice.rb +2 -0
- data/lib/question/simpleChoice/base.rb +17 -0
- data/lib/question/simpleChoice/version.rb +5 -0
- data/lib/question/trueOrFalse.rb +2 -0
- data/lib/question/trueOrFalse/base.rb +10 -0
- data/lib/question/trueOrFalse/version.rb +5 -0
- data/lib/quiz/quiz.rb +58 -0
- data/prueba.html +1 -0
- data/prueba.rb +48 -0
- data/question-simpleChoice.gemspec +27 -0
- data/spec/list_spec.rb +51 -0
- data/spec/quiz_spec.rb +31 -0
- data/spec/simpleChoice_spec.rb +106 -0
- data/spec/spec_examen.rb +21 -0
- data/spec/spec_helper.rb +93 -0
- data/test.html +310 -0
- metadata +183 -0
@@ -0,0 +1,114 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
6
|
+
<title>
|
7
|
+
Top Level Namespace
|
8
|
+
|
9
|
+
— Documentation by YARD 0.8.7.6
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
hasFrames = window.top.frames.main ? true : false;
|
19
|
+
relpath = '';
|
20
|
+
framesUrl = "frames.html#!top-level-namespace.html";
|
21
|
+
</script>
|
22
|
+
|
23
|
+
|
24
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
25
|
+
|
26
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
27
|
+
|
28
|
+
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<div id="header">
|
32
|
+
<div id="menu">
|
33
|
+
|
34
|
+
<a href="_index.html">Index</a> »
|
35
|
+
|
36
|
+
|
37
|
+
<span class="title">Top Level Namespace</span>
|
38
|
+
|
39
|
+
|
40
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
41
|
+
</div>
|
42
|
+
|
43
|
+
<div id="search">
|
44
|
+
|
45
|
+
<a class="full_list_link" id="class_list_link"
|
46
|
+
href="class_list.html">
|
47
|
+
Class List
|
48
|
+
</a>
|
49
|
+
|
50
|
+
<a class="full_list_link" id="method_list_link"
|
51
|
+
href="method_list.html">
|
52
|
+
Method List
|
53
|
+
</a>
|
54
|
+
|
55
|
+
<a class="full_list_link" id="file_list_link"
|
56
|
+
href="file_list.html">
|
57
|
+
File List
|
58
|
+
</a>
|
59
|
+
|
60
|
+
</div>
|
61
|
+
<div class="clear"></div>
|
62
|
+
</div>
|
63
|
+
|
64
|
+
<iframe id="search_frame"></iframe>
|
65
|
+
|
66
|
+
<div id="content"><h1>Top Level Namespace
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
</h1>
|
71
|
+
|
72
|
+
<dl class="box">
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
</dl>
|
82
|
+
<div class="clear"></div>
|
83
|
+
|
84
|
+
<h2>Defined Under Namespace</h2>
|
85
|
+
<p class="children">
|
86
|
+
|
87
|
+
|
88
|
+
<strong class="modules">Modules:</strong> <span class='object_link'><a href="Question.html" title="Question (module)">Question</a></span>
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
<strong class="classes">Classes:</strong> <span class='object_link'><a href="Examen.html" title="Examen (class)">Examen</a></span>, <span class='object_link'><a href="Interfaz.html" title="Interfaz (class)">Interfaz</a></span>, <span class='object_link'><a href="Lista.html" title="Lista (class)">Lista</a></span>, <span class='object_link'><a href="Node.html" title="Node (class)">Node</a></span>, <span class='object_link'><a href="QuestionFather.html" title="QuestionFather (class)">QuestionFather</a></span>, <span class='object_link'><a href="SimpleChoice.html" title="SimpleChoice (class)">SimpleChoice</a></span>, <span class='object_link'><a href="TrueOrFalse.html" title="TrueOrFalse (class)">TrueOrFalse</a></span>
|
93
|
+
|
94
|
+
|
95
|
+
</p>
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
</div>
|
106
|
+
|
107
|
+
<div id="footer">
|
108
|
+
Generated on Thu Nov 27 14:39:06 2014 by
|
109
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
110
|
+
0.8.7.6 (ruby-2.0.0).
|
111
|
+
</div>
|
112
|
+
|
113
|
+
</body>
|
114
|
+
</html>
|
data/lib/exam/examen.rb
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
if __FILE__ == $0 then
|
2
|
+
$: << "."
|
3
|
+
end
|
4
|
+
|
5
|
+
require './lib/nodelist/list'
|
6
|
+
require './lib/question/simpleChoice/base'
|
7
|
+
require './lib/question/trueOrFalse/base'
|
8
|
+
require './lib/question/questionFather/base'
|
9
|
+
|
10
|
+
class Examen
|
11
|
+
attr_accessor :list , :node_i , :acierto , :fallo
|
12
|
+
def initialize(list)
|
13
|
+
@acierto = 0
|
14
|
+
@fallo = 0
|
15
|
+
@list = list
|
16
|
+
end
|
17
|
+
|
18
|
+
def next_question()
|
19
|
+
if @node_i != nil then
|
20
|
+
if @node_i.next != nil then
|
21
|
+
@node_i = @node_i.next
|
22
|
+
else
|
23
|
+
return nil
|
24
|
+
end
|
25
|
+
else
|
26
|
+
@node_i = @list.head
|
27
|
+
end
|
28
|
+
|
29
|
+
puts @node_i.value.to_s
|
30
|
+
return @node_i.value.to_s
|
31
|
+
end
|
32
|
+
def reverse_question
|
33
|
+
@list.reverse
|
34
|
+
end
|
35
|
+
def response_question(value)
|
36
|
+
print "Respuesta: "
|
37
|
+
if value == @node_i.value.right then
|
38
|
+
puts "\n"
|
39
|
+
puts "La pregunta es correcta"
|
40
|
+
puts "\n"
|
41
|
+
@acierto += 1
|
42
|
+
else
|
43
|
+
puts "\n"
|
44
|
+
puts "La pregunta es incorrecta"
|
45
|
+
puts "\n"
|
46
|
+
@fallo += 1
|
47
|
+
end
|
48
|
+
end
|
49
|
+
def show_stats
|
50
|
+
puts "\n"
|
51
|
+
puts "|---------------------------|"
|
52
|
+
puts "|--- Estadisticas ---|"
|
53
|
+
puts "|---------------------------|"
|
54
|
+
puts "|- Aciertos: #{@acierto} | Fallos: #{@fallo} -|"
|
55
|
+
puts "|---------------------------|"
|
56
|
+
puts "\n"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
if $0 == __FILE__ then
|
60
|
+
|
61
|
+
p1 = SimpleChoice.new(:text => '1)2 + 2 = ',:right => '1',:distractor => [5,3,2], :dif =>1)
|
62
|
+
p2 = SimpleChoice.new(:text => '2)5 + 2 = ',:right => '2',:distractor => [5,3,2], :dif =>1)
|
63
|
+
p3 = SimpleChoice.new(:text => '3)2 * 2 = ',:right => '3',:distractor => [5,3,2], :dif =>1)
|
64
|
+
|
65
|
+
list = Lista.new()
|
66
|
+
list.add(p1,p2,p3)
|
67
|
+
list.reverse
|
68
|
+
examen = Examen.new(list)
|
69
|
+
|
70
|
+
examen.next_question
|
71
|
+
STDOUT.flush
|
72
|
+
value = gets.chomp
|
73
|
+
examen.response_question(value)
|
74
|
+
examen.next_question
|
75
|
+
STDOUT.flush
|
76
|
+
value = gets.chomp
|
77
|
+
examen.response_question(value)
|
78
|
+
examen.next_question
|
79
|
+
STDOUT.flush
|
80
|
+
value = gets.chomp
|
81
|
+
examen.response_question(value)
|
82
|
+
|
83
|
+
examen.show_stats
|
84
|
+
|
85
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
if __FILE__ == $0 then
|
2
|
+
$: << "."
|
3
|
+
end
|
4
|
+
require './lib/nodelist/list'
|
5
|
+
require './lib/exam/examen'
|
6
|
+
require './lib/question/simpleChoice/base'
|
7
|
+
require './lib/question/trueOrFalse/base'
|
8
|
+
require './lib/question/questionFather/base'
|
9
|
+
|
10
|
+
class Interfaz
|
11
|
+
attr_accessor :list
|
12
|
+
def initialize(list)
|
13
|
+
if list != nil then
|
14
|
+
@list = list
|
15
|
+
else
|
16
|
+
@list = Lista.new()
|
17
|
+
end
|
18
|
+
end
|
19
|
+
def generate_q
|
20
|
+
q1 = SimpleChoice.new(:text => '2 + 2 = ',:right => '4',:distractor => [5,3,2], :dif =>1)
|
21
|
+
q2 = SimpleChoice.new(:text => '2 * 2 = ',:right => '4',:distractor => [5,3,2], :dif =>2)
|
22
|
+
q3 = SimpleChoice.new(:text => '3 + 2 = ',:right => '5',:distractor => [6,3,2], :dif =>3)
|
23
|
+
q4 = SimpleChoice.new(:text => '2 - 1 = ',:right => '1',:distractor => [0,3,2], :dif =>4)
|
24
|
+
q5 = SimpleChoice.new(:text => '2 - 2 = ',:right => '0',:distractor => [4,3,2], :dif =>5)
|
25
|
+
q6 = TrueOrFalse.new(:text => '2 + 2 = 4',:right => 'true', :dif =>6)
|
26
|
+
q7 = TrueOrFalse.new(:text => '2 * 2 = 4',:right => 'true', :dif =>7)
|
27
|
+
q8 = TrueOrFalse.new(:text => '3 + 2 = 6',:right => 'false', :dif =>8)
|
28
|
+
q9 = TrueOrFalse.new(:text => '2 - 2 = 1',:right => 'false', :dif =>9)
|
29
|
+
q10 = TrueOrFalse.new(:text => '2 - 1 = 1',:right => 'true', :dif =>10)
|
30
|
+
@list.add(q1,q2,q3,q4,q5,q6,q7,q8,q9,q10)
|
31
|
+
@list.reverse
|
32
|
+
end
|
33
|
+
def run
|
34
|
+
if @list.head == nil then
|
35
|
+
generate_q
|
36
|
+
end
|
37
|
+
examen = Examen.new(@list)
|
38
|
+
while examen.next_question != nil do
|
39
|
+
STDOUT.flush
|
40
|
+
value = gets.chomp
|
41
|
+
examen.response_question(value)
|
42
|
+
end
|
43
|
+
examen.show_stats
|
44
|
+
end
|
45
|
+
end
|
46
|
+
if __FILE__ == $0 then
|
47
|
+
interfaz = Interfaz.new(nil)
|
48
|
+
interfaz.run
|
49
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
if __FILE__ == $0 then
|
2
|
+
$: << "."
|
3
|
+
end
|
4
|
+
require './lib/nodelist/list'
|
5
|
+
require './lib/exam/examen'
|
6
|
+
require './lib/question/simpleChoice/base'
|
7
|
+
require './lib/question/trueOrFalse/base'
|
8
|
+
require './lib/question/questionFather/base'
|
9
|
+
require './lib/quiz/quiz.rb'
|
10
|
+
|
11
|
+
class Interfaz
|
12
|
+
def initialize
|
13
|
+
@quiz = Quiz.new("Cuestionario de LPP 05/12/2014") {
|
14
|
+
question '¿Cuantos argumentos de tipo bloque puede recibir un m´etodo?',
|
15
|
+
right =>'1',
|
16
|
+
wrong =>'2',
|
17
|
+
wrong =>'muchos',
|
18
|
+
wrong =>'los que defina el usuario'
|
19
|
+
question "En Ruby los bloque son objetos que continen codigo",
|
20
|
+
wrong =>'Cierto',
|
21
|
+
right =>'Falso'
|
22
|
+
}
|
23
|
+
end
|
24
|
+
|
25
|
+
def run
|
26
|
+
examen = @quiz.to_exam
|
27
|
+
while examen.next_question != nil do
|
28
|
+
STDOUT.flush
|
29
|
+
value = gets.chomp
|
30
|
+
examen.response_question(value)
|
31
|
+
end
|
32
|
+
examen.show_stats
|
33
|
+
end
|
34
|
+
end
|
35
|
+
if $0 == __FILE__ then
|
36
|
+
interfaz = Interfaz.new()
|
37
|
+
interfaz.run
|
38
|
+
end
|
data/lib/node/node.rb
ADDED
@@ -0,0 +1,119 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require "./lib/node/node.rb"
|
3
|
+
class Lista
|
4
|
+
include Enumerable
|
5
|
+
attr_accessor :head, :lastnext, :puntero
|
6
|
+
def initialize()
|
7
|
+
@head = nil
|
8
|
+
@lastnext = nil
|
9
|
+
end
|
10
|
+
def each
|
11
|
+
aux = @head
|
12
|
+
while aux != nil
|
13
|
+
yield aux.value
|
14
|
+
aux = aux.next
|
15
|
+
end
|
16
|
+
end
|
17
|
+
def reverse_each
|
18
|
+
@head.each {yield @lastnext.value; @lastnext=@lastnext.father} if @lastnext != nil
|
19
|
+
end
|
20
|
+
|
21
|
+
def reverse
|
22
|
+
list = Array.new
|
23
|
+
@head.reverse{|x| list.push(x.value)}
|
24
|
+
@head = nil
|
25
|
+
@lastnext = nil
|
26
|
+
list.each{|x| self.add(x)}
|
27
|
+
end
|
28
|
+
def add_s(value)
|
29
|
+
if @head == nil then
|
30
|
+
@head = Node.new(value, nil, nil)
|
31
|
+
@lastnext = @head
|
32
|
+
else
|
33
|
+
last = Node.new(value, nil, @lastnext)
|
34
|
+
last.father = @lastnext
|
35
|
+
@lastnext.next = last
|
36
|
+
@lastnext = last
|
37
|
+
end
|
38
|
+
end
|
39
|
+
def add(*args)
|
40
|
+
args.each do |value|
|
41
|
+
if @head == nil then
|
42
|
+
@head = Node.new(value, nil, nil)
|
43
|
+
@lastnext = @head
|
44
|
+
else
|
45
|
+
last = Node.new(value, nil, @lastnext)
|
46
|
+
last.father = @lastnext
|
47
|
+
@lastnext.next = last
|
48
|
+
@lastnext = last
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
def first
|
53
|
+
if @head != nil then
|
54
|
+
aux = @head.value
|
55
|
+
@head = @head.next
|
56
|
+
return aux
|
57
|
+
else
|
58
|
+
return -1
|
59
|
+
end
|
60
|
+
end
|
61
|
+
def to_s
|
62
|
+
"#{@head}"
|
63
|
+
end
|
64
|
+
def to_a
|
65
|
+
a_value = Array.new
|
66
|
+
pointer = @head
|
67
|
+
while pointer.next != nil do
|
68
|
+
a_value.push(pointer.value)
|
69
|
+
pointer = pointer.next
|
70
|
+
end
|
71
|
+
a_value.push(pointer.value)
|
72
|
+
a_value.to_s
|
73
|
+
end
|
74
|
+
end
|
75
|
+
if __FILE__ == $0 then
|
76
|
+
$: << "."
|
77
|
+
re = File.new("question/simpleChoice.rb")
|
78
|
+
require re
|
79
|
+
|
80
|
+
lista1 = Lista.new()
|
81
|
+
lista1.add(1,2,3)
|
82
|
+
lista1.add(4)
|
83
|
+
puts "Uso de la función first:"
|
84
|
+
puts lista1.first
|
85
|
+
puts "-- Estructura de la lista enlazada --"
|
86
|
+
puts lista1
|
87
|
+
puts "-- -- --"
|
88
|
+
puts lista1.to_a
|
89
|
+
|
90
|
+
listQuestion = Lista.new()
|
91
|
+
|
92
|
+
#Preguntas para el test de la practica 06
|
93
|
+
p1 = SimpleChoice.new(:text =>"¿Cual es la salida del siguiente código Ruby ? \n class Xyz \n def pots \n @nice\n end\n end\n", :right => 'nil' ,:distractor => ['#<Xyz: 0xa000208>','0','Nunguna de las anteriores'] )
|
94
|
+
p2 = SimpleChoice.new(:text => "La siguiente definici´on de un hash en Ruby es v´alida:hash_raro = {[1, 2, 3] => Object.new(),Hash.new => :toto}", :right => 'falso', :distractor => 'Cierto')
|
95
|
+
p3 = SimpleChoice.new(:text =>"¿Cu´al es la salida del siguiente c´odigo Ruby?class Arraydef say_hi\"HEY!\"endendp [1, \"bob\"].say_hi", :right =>'"HEY!"', :distractor => ['1','bob','Nunguna de las anteriores'] )
|
96
|
+
p4 = SimpleChoice.new(:text => "¿Cu´al es el tipo del objeto en el siguiente c´odigo Ruby?class Objetoend", :right =>'Un objeto', :distractor => ['Una instancia de una clase', 'Una constante', 'Ninguna de las anteriores'] )
|
97
|
+
p5 = SimpleChoice.new(:text => "Es apropiado que una clase Tablero herede de una clase Juego.", :right => 'Cierto', :distractor => 'Falso')
|
98
|
+
|
99
|
+
listQuestion.add(p1,p2,p3,p4,p5)
|
100
|
+
=begin
|
101
|
+
puts listQuestion.to_s
|
102
|
+
puts "**********"
|
103
|
+
puts listQuestion.first.right
|
104
|
+
puts "**********"
|
105
|
+
puts listQuestion.lastnext
|
106
|
+
puts " "
|
107
|
+
puts "******EACH****"
|
108
|
+
puts listQuestion.each { |o| p o }
|
109
|
+
puts listQuestion.is_a? Enumerable
|
110
|
+
=end
|
111
|
+
puts "------------------Normal--------------------"
|
112
|
+
listQuestion.each { |o| p o }
|
113
|
+
puts "------------------END NORMAL----------------"
|
114
|
+
puts "------------------REVERSE--------------------"
|
115
|
+
listQuestion.reverse
|
116
|
+
listQuestion.each{|x| p x}
|
117
|
+
puts "------------------END_REVERSE--------------------"
|
118
|
+
end
|
119
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
class QuestionFather
|
3
|
+
include Comparable
|
4
|
+
attr_accessor :text, :right, :distractor,:dif
|
5
|
+
|
6
|
+
def initialize(args)
|
7
|
+
@text = args[:text]
|
8
|
+
@right = args[:right]
|
9
|
+
@distractor = args[:distractor]
|
10
|
+
@dif = args[:dif]
|
11
|
+
end
|
12
|
+
def <=>(other)
|
13
|
+
self.dif <=> other.dif
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|