ruql 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c4e1dbaefe63c93236938687254c7eb6dcaf0bc3
4
- data.tar.gz: 8dfd7eaac4c4f363ed8bf83be5f72d1c428a117e
3
+ metadata.gz: 1a384710404460b95c945d6a1fb850c88531db8a
4
+ data.tar.gz: 5c6af8b878133a20c3f7b0e4e38a184b4b0b7400
5
5
  SHA512:
6
- metadata.gz: d859ea182e95f44111181c4e61c4cdb69320cde8ae30af8bdd446bc7f3c89d797cbdcc9e36628976f2c1d8f5a8f6a6a9aea67a19db2aecc47a01896325d0ce46
7
- data.tar.gz: 35f46ed721d7987109cc7f187b3ca531ebe953736576c6dbf9607a793ace9d72d0c8b151bed950ad960415f2fe79c12a51260d24e58c1c8eabd74ee40f348bc8
6
+ metadata.gz: feb04ca43e5e83c6e6a97f042ab03b3692663a23f835783121edd68bc3ebba1b3ffe728ab682edf053055ef64222625cf8f056a93112ebc287314f475edb0f4a
7
+ data.tar.gz: 0414a7abbd51a50703b290c2a912575b6fbaead7330cfbcede247950dd67e0e4d84a6f6e6d35120d26e8fdbcb37a6b103c75d512211e16b9db8eb2fcdc2b5736
data/bin/ruql CHANGED
@@ -98,6 +98,7 @@ def main
98
98
  raise "Unknown renderer '#{renderer}'" unless Quiz.get_renderer(renderer)
99
99
 
100
100
  opts = Getopt::Long.getopts(
101
+ ['-v', '--version', Getopt::BOOLEAN],
101
102
  ['-o', '--list-type', Getopt::REQUIRED],
102
103
  ['-r', '--report', Getopt::REQUIRED],
103
104
  ['-a', '--start', Getopt::REQUIRED],
data/lib/ruql/answer.rb CHANGED
@@ -7,11 +7,12 @@ class Answer
7
7
 
8
8
  def <=>(other) ; self.answer_text <=> other.answer_text ; end
9
9
  def correct? ; !!correct ; end
10
- def has_explanation? ; !!explanation ; end
11
- def initialize(answer_text = '', correct = false, explanation=nil)
10
+ def has_explanation? ; @explanation.to_s != '' ; end
11
+ def initialize(answer_text = '', correct = false, explanation=nil, question=nil)
12
12
  @answer_text = answer_text
13
13
  @correct = !!correct # ensure boolean
14
14
  @explanation = explanation
15
+ @question = question
15
16
  end
16
17
 
17
18
  def to_JSON
data/lib/ruql/question.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  class Question
2
2
  attr_accessor :question_text,
3
- :answers,
3
+ :answers,
4
4
  :question_image,
5
5
  :randomize,
6
6
  :points,
@@ -19,28 +19,35 @@ class Question
19
19
  @question_image = options[:image]
20
20
  @question_tags = []
21
21
  @question_uid = (options.delete(:uid) || SecureRandom.uuid).to_s
22
+ @explanation = nil
22
23
  @question_comment = ''
23
24
  end
24
25
  def raw? ; !!@raw ; end
25
26
 
27
+ def has_explanation? ; @explanation.to_s != '' ; end
28
+
29
+ def explanation(text=nil)
30
+ if text
31
+ @explanation = text
32
+ else
33
+ @explanation
34
+ end
35
+ end
36
+
26
37
  def uid(u) ; @question_uid = u ; end
27
38
 
28
39
  def text(s) ; @question_text = s ; end
29
40
 
30
- def explanation(text)
31
- @answers.each { |answer| answer.explanation ||= text }
32
- end
33
-
34
41
  def image(url)
35
42
  @question_image = url
36
43
  end
37
44
 
38
45
  def answer(text, opts={})
39
- @answers << Answer.new(text, correct=true, opts[:explanation])
46
+ @answers << Answer.new(text, correct=true, opts[:explanation], self)
40
47
  end
41
48
 
42
49
  def distractor(text, opts={})
43
- @answers << Answer.new(text, correct=false, opts[:explanation])
50
+ @answers << Answer.new(text, correct=false, opts[:explanation], self)
44
51
  end
45
52
 
46
53
  # these are ignored but legal for now:
@@ -62,6 +62,10 @@ class Html5Renderer
62
62
  if q.raw? then @h.li { |l| l << answer.answer_text } else @h.li answer.answer_text end
63
63
  end
64
64
  end
65
+ if @show_solutions && ((exp = q.explanation.to_s) != '')
66
+ @h.br
67
+ if q.raw? then @h.span(:class => 'explanation') { |p| p << exp } else @h.span(exp, :class => 'explanation') end
68
+ end
65
69
  end
66
70
  end
67
71
  self
@@ -100,10 +104,10 @@ class Html5Renderer
100
104
  answer.correct? ? "CORRECT: " : "INCORRECT: ")
101
105
  end
102
106
  @h.li(args) do
103
- if raw then @h.p { |p| p << answer.answer_text } else @h.p answer.answer_text end
107
+ if raw then @h.span { |p| p << answer.answer_text } else @h.span answer.answer_text end
104
108
  if answer.has_explanation?
105
- if raw then @h.p(:class => 'explanation') { |p| p << answer.explanation }
106
- else @h.p(answer.explanation, :class => 'explanation') end
109
+ @h.br
110
+ if raw then @h.span(:class => 'explanation') { |p| p << answer.explanation } else @h.span(answer.explanation, :class => 'explanation') end
107
111
  end
108
112
  end
109
113
  end
metadata CHANGED
@@ -1,71 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Armando Fox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-06 00:00:00.000000000 Z
11
+ date: 2016-11-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: builder
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
- - - ">="
16
+ - - '>='
18
17
  - !ruby/object:Gem::Version
19
18
  version: '3.0'
20
- type: :runtime
21
19
  prerelease: false
20
+ name: builder
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
- - - ">="
23
+ - - '>='
25
24
  - !ruby/object:Gem::Version
26
25
  version: '3.0'
26
+ type: :runtime
27
27
  - !ruby/object:Gem::Dependency
28
- name: getopt
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
- - - ">="
30
+ - - '>='
32
31
  - !ruby/object:Gem::Version
33
32
  version: '1.0'
34
- type: :runtime
35
33
  prerelease: false
34
+ name: getopt
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
- - - ">="
37
+ - - '>='
39
38
  - !ruby/object:Gem::Version
40
39
  version: '1.0'
40
+ type: :runtime
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
- - - ">="
44
+ - - '>='
46
45
  - !ruby/object:Gem::Version
47
46
  version: '2.0'
48
- type: :development
49
47
  prerelease: false
48
+ name: rspec
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
- - - ">="
51
+ - - '>='
53
52
  - !ruby/object:Gem::Version
54
53
  version: '2.0'
54
+ type: :development
55
55
  - !ruby/object:Gem::Dependency
56
- name: activesupport
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
- - - "~>"
58
+ - - ~>
60
59
  - !ruby/object:Gem::Version
61
60
  version: '4.0'
62
- type: :development
63
61
  prerelease: false
62
+ name: activesupport
64
63
  version_requirements: !ruby/object:Gem::Requirement
65
64
  requirements:
66
- - - "~>"
65
+ - - ~>
67
66
  - !ruby/object:Gem::Version
68
67
  version: '4.0'
68
+ type: :development
69
69
  description: Ruby-embedded DSL for creating short-answer quiz questions
70
70
  email: fox@cs.berkeley.edu
71
71
  executables:
@@ -109,17 +109,17 @@ require_paths:
109
109
  - lib
110
110
  required_ruby_version: !ruby/object:Gem::Requirement
111
111
  requirements:
112
- - - ">="
112
+ - - '>='
113
113
  - !ruby/object:Gem::Version
114
114
  version: '0'
115
115
  required_rubygems_version: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - ">="
117
+ - - '>='
118
118
  - !ruby/object:Gem::Version
119
119
  version: '0'
120
120
  requirements: []
121
121
  rubyforge_project:
122
- rubygems_version: 2.5.1
122
+ rubygems_version: 2.2.5
123
123
  signing_key:
124
124
  specification_version: 4
125
125
  summary: Ruby question language