questiongenerator 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +7 -4
- data/lib/questiongenerator.rb +53 -7
- data/lib/questions/en.yml +126 -11
- data/questiongenerator.gemspec +2 -2
- metadata +7 -13
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 41d61d976534cc4eecad47da3478fd1bff9a786f
|
4
|
+
data.tar.gz: bfc90e54cd448085dacf19e505798d0bff013a34
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: de58d92b739865038ef2e51c7df558b7eea7d4999db4e524e89824c2ceef6e3227c22cba125d1af1119337395d1bf3e27dd619ffe85dd6fd469b48a9daf9dd04
|
7
|
+
data.tar.gz: 3f3628c3fca34c2be268e1a7befb6fa9349efcb620396503472cb87b28b49263cb8eafa5dc74dca1fdf6494127a8075bf07a18bd963f477210f2671ee232eb96
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# questiongenerator
|
2
2
|
|
3
|
-
A simple question generator, used by justask.
|
3
|
+
A simple question generator, used by Retrospring (formerly justask).
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -10,7 +10,7 @@ Add this line to your application's Gemfile:
|
|
10
10
|
|
11
11
|
If you're feeling _edgy_, you can add this line instead:
|
12
12
|
|
13
|
-
gem 'questiongenerator', git: 'https://github.com/
|
13
|
+
gem 'questiongenerator', git: 'https://github.com/retrospring/questiongenerator.git'
|
14
14
|
|
15
15
|
## Usage
|
16
16
|
|
@@ -21,18 +21,21 @@ require 'questiongenerator'
|
|
21
21
|
QuestionGenerator.question_base_path = '/home/nilsding/questions'
|
22
22
|
QuestionGenerator.default_locale = :en
|
23
23
|
|
24
|
+
# Compile the questions for increased randomness
|
25
|
+
QuestionGenerator.compile
|
26
|
+
|
24
27
|
# Get some questions
|
25
28
|
puts QuestionGenerator.generate
|
26
29
|
# => "What is the best thing about the internet?"
|
27
30
|
|
28
31
|
# You can also specify the locale, if you want to
|
29
|
-
puts QuestionGenerator.generate :de
|
32
|
+
puts QuestionGenerator.generate locale: :de
|
30
33
|
# => "Was war das letzte, das du gegessen hast?"
|
31
34
|
```
|
32
35
|
|
33
36
|
## Contributing
|
34
37
|
|
35
|
-
1. Fork it ( https://github.com/
|
38
|
+
1. Fork it ( https://github.com/retrospring/questiongenerator/fork )
|
36
39
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
37
40
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
38
41
|
4. Push to the branch (`git push origin my-new-feature`)
|
data/lib/questiongenerator.rb
CHANGED
@@ -1,20 +1,49 @@
|
|
1
1
|
require 'yaml'
|
2
2
|
|
3
|
+
# Generates some questions.
|
3
4
|
module QuestionGenerator
|
4
|
-
|
5
|
+
# Version of QuestionGenerator
|
6
|
+
VERSION = "0.1.0"
|
5
7
|
|
6
8
|
class << self
|
9
|
+
# The base path to the questions (e.g. +'/home/nilsding/questions'+).
|
7
10
|
attr_accessor :question_base_path
|
11
|
+
# The default locale, as a symbol.
|
8
12
|
attr_accessor :default_locale
|
9
13
|
end
|
10
14
|
|
11
|
-
|
12
|
-
|
15
|
+
# Generates a new question.
|
16
|
+
# @param options [Hash] A customizable set of options.
|
17
|
+
# @option options [Symbol] :locale (@default_locale) The target locale
|
18
|
+
# @option options [String] :prefix Prefix of the question, e.g. +'¿'+
|
19
|
+
# @option options [String] :suffix ('?') Suffix of the question, e.g. +' ?'+
|
20
|
+
# @option options [Boolean] :use_compiled (true) Use compiled questions
|
21
|
+
# instead of generating it. See also {compile}
|
22
|
+
# @return [String] String containing the generated question.
|
23
|
+
def self.generate(options = {})
|
24
|
+
opts = {
|
25
|
+
locale: @default_locale,
|
26
|
+
prefix: '',
|
27
|
+
suffix: '?',
|
28
|
+
use_compiled: true
|
29
|
+
}.merge!(options)
|
30
|
+
if opts[:use_compiled] and !@compiled[opts[:locale]].nil?
|
31
|
+
opts[:prefix] + @compiled[opts[:locale]].sample + opts[:suffix]
|
32
|
+
else
|
33
|
+
questions = YAML.load_file(File.expand_path("#{opts[:locale].to_s}.yml", @question_base_path))
|
34
|
+
opts[:prefix] + get_question(questions).strip + opts[:suffix]
|
35
|
+
end
|
13
36
|
end
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
37
|
+
|
38
|
+
# Compiles all the questions and stores it into the +@compiled+ hash.
|
39
|
+
# @param options [Hash] A customizable set of options.
|
40
|
+
# @option options [Symbol] :locale (@default_locale) The target locale
|
41
|
+
def self.compile(options = {})
|
42
|
+
opts = {
|
43
|
+
locale: @default_locale
|
44
|
+
}.merge!(options)
|
45
|
+
questions = YAML.load_file(File.expand_path("#{opts[:locale].to_s}.yml", @question_base_path))
|
46
|
+
@compiled[@default_locale] = build(questions)
|
18
47
|
end
|
19
48
|
|
20
49
|
private
|
@@ -32,7 +61,24 @@ module QuestionGenerator
|
|
32
61
|
end
|
33
62
|
question
|
34
63
|
end
|
64
|
+
|
65
|
+
def self.build(questions, q = "")
|
66
|
+
ary = []
|
67
|
+
if questions.is_a? Hash
|
68
|
+
questions.each do |k, v|
|
69
|
+
ary << build(v, "#{q}#{k} ")
|
70
|
+
end
|
71
|
+
elsif questions.is_a? Array
|
72
|
+
questions.each do |v|
|
73
|
+
ary << build(v, q)
|
74
|
+
end
|
75
|
+
elsif questions.is_a? String
|
76
|
+
return "#{q}#{questions}".strip
|
77
|
+
end
|
78
|
+
ary.flatten
|
79
|
+
end
|
35
80
|
|
36
81
|
@question_base_path = File.expand_path("../questions/", __FILE__)
|
37
82
|
@default_locale = :en
|
83
|
+
@compiled = {}
|
38
84
|
end
|
data/lib/questions/en.yml
CHANGED
@@ -1,10 +1,26 @@
|
|
1
1
|
Do:
|
2
2
|
you:
|
3
|
-
|
3
|
+
- recycle
|
4
|
+
- have:
|
5
|
+
- a:
|
6
|
+
- nickname
|
7
|
+
- any:
|
8
|
+
- siblings
|
9
|
+
- pets
|
10
|
+
- like:
|
4
11
|
- social networks
|
5
12
|
- muffins
|
6
13
|
- video games
|
7
|
-
|
14
|
+
- the:
|
15
|
+
- city:
|
16
|
+
- or:
|
17
|
+
- country
|
18
|
+
- where you:
|
19
|
+
- live
|
20
|
+
- to:
|
21
|
+
- travel
|
22
|
+
- sing out loud when no one else is around
|
23
|
+
- want:
|
8
24
|
- old times back
|
9
25
|
- to know more:
|
10
26
|
about:
|
@@ -17,8 +33,11 @@ Do:
|
|
17
33
|
- money
|
18
34
|
- friends
|
19
35
|
- things than you need
|
20
|
-
think that:
|
36
|
+
- think that:
|
21
37
|
- late is better than never
|
38
|
+
- prefer:
|
39
|
+
to:
|
40
|
+
- take baths or showers
|
22
41
|
your:
|
23
42
|
friends:
|
24
43
|
like:
|
@@ -35,6 +54,7 @@ Do:
|
|
35
54
|
- life
|
36
55
|
- hobbies
|
37
56
|
- family
|
57
|
+
- friends
|
38
58
|
- you
|
39
59
|
much:
|
40
60
|
about: *friends_know_much
|
@@ -68,10 +88,21 @@ What:
|
|
68
88
|
- some drawings in your face
|
69
89
|
- do:
|
70
90
|
you:
|
91
|
+
do:
|
92
|
+
- for fun
|
93
|
+
- on:
|
94
|
+
- the:
|
95
|
+
- weekend
|
96
|
+
like:
|
97
|
+
more:
|
98
|
+
- dogs or cats
|
99
|
+
- shower or bath
|
100
|
+
- tea or coffee
|
71
101
|
think:
|
72
102
|
about:
|
73
103
|
- the:
|
74
104
|
- internet
|
105
|
+
- Bad Dragon
|
75
106
|
- dragons
|
76
107
|
- '"fact" accounts'
|
77
108
|
- society
|
@@ -83,17 +114,48 @@ What:
|
|
83
114
|
you:
|
84
115
|
- enjoy the most
|
85
116
|
- activities: *activity
|
117
|
+
- kind:
|
118
|
+
of:
|
119
|
+
animals:
|
120
|
+
- do you have
|
121
|
+
- habit:
|
122
|
+
do:
|
123
|
+
you:
|
124
|
+
really:
|
125
|
+
find:
|
126
|
+
cute:
|
127
|
+
- in a person?
|
86
128
|
- is:
|
87
129
|
your:
|
130
|
+
- first memory
|
131
|
+
- dream job
|
88
132
|
- favourite:
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
133
|
+
- season
|
134
|
+
- video game
|
135
|
+
- board game
|
136
|
+
- sports team
|
137
|
+
- activity
|
138
|
+
- beverage
|
139
|
+
- internet browser
|
140
|
+
- piece of music
|
141
|
+
- console
|
142
|
+
- retrospring developer
|
143
|
+
- retrospring moderator
|
144
|
+
- snack
|
145
|
+
- food
|
146
|
+
- programming language:
|
147
|
+
- ''
|
148
|
+
- and why is it:
|
149
|
+
- PHP
|
150
|
+
website:
|
151
|
+
- ''
|
152
|
+
- and why is it:
|
153
|
+
- 4chan
|
154
|
+
- 9gag
|
155
|
+
- Reddit
|
156
|
+
- Twitter
|
157
|
+
- Facebook
|
158
|
+
- YouTube
|
97
159
|
the:
|
98
160
|
best: &is_the_best
|
99
161
|
thing:
|
@@ -111,7 +173,12 @@ What:
|
|
111
173
|
- if:
|
112
174
|
- "they're bored"
|
113
175
|
- ever
|
176
|
+
fast:
|
177
|
+
food:
|
178
|
+
- chain
|
114
179
|
worst: *is_the_best
|
180
|
+
one:
|
181
|
+
- thing you would like to become better at
|
115
182
|
- was:
|
116
183
|
the:
|
117
184
|
last:
|
@@ -128,13 +195,23 @@ What:
|
|
128
195
|
Can:
|
129
196
|
you:
|
130
197
|
- swim
|
198
|
+
- speak:
|
199
|
+
- different:
|
200
|
+
- languages
|
131
201
|
- play:
|
202
|
+
- any:
|
203
|
+
- sports
|
132
204
|
- the:
|
133
205
|
- piano
|
134
206
|
- guitar
|
135
207
|
- trumpet
|
136
208
|
- baseball
|
137
209
|
- ski
|
210
|
+
- cook
|
211
|
+
- dance
|
212
|
+
Are:
|
213
|
+
you:
|
214
|
+
- religious
|
138
215
|
Have:
|
139
216
|
you:
|
140
217
|
ever:
|
@@ -158,13 +235,51 @@ Have:
|
|
158
235
|
- caught:
|
159
236
|
- "doing things you shouldn't do"
|
160
237
|
- cheating
|
238
|
+
- mistaken for:
|
239
|
+
- someone else
|
161
240
|
- listened to:
|
162
241
|
- classical music
|
163
242
|
- music:
|
164
243
|
- "from the 80's"
|
165
244
|
- dubstep
|
166
245
|
- nightcore
|
246
|
+
- had:
|
247
|
+
- an:
|
248
|
+
- accident
|
167
249
|
- written:
|
168
250
|
- a love letter
|
169
251
|
- code
|
170
252
|
- in Japanese
|
253
|
+
How:
|
254
|
+
has:
|
255
|
+
your:
|
256
|
+
day:
|
257
|
+
- been
|
258
|
+
old:
|
259
|
+
are:
|
260
|
+
- you
|
261
|
+
Where:
|
262
|
+
do:
|
263
|
+
you:
|
264
|
+
- work
|
265
|
+
Which:
|
266
|
+
food:
|
267
|
+
do:
|
268
|
+
you:
|
269
|
+
- love
|
270
|
+
- hate
|
271
|
+
Who:
|
272
|
+
is:
|
273
|
+
the:
|
274
|
+
- most famous person you have met
|
275
|
+
Would:
|
276
|
+
you:
|
277
|
+
rather:
|
278
|
+
live:
|
279
|
+
- in:
|
280
|
+
- a city or in the countryside
|
281
|
+
- a flat or in a house
|
282
|
+
lose:
|
283
|
+
- an arm or a leg
|
284
|
+
be:
|
285
|
+
- the best player on a horrible team or the worst player on a great team
|
data/questiongenerator.gemspec
CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["nilsding"]
|
10
10
|
spec.email = ["nilsding@nilsding.org"]
|
11
11
|
spec.summary = %q{A simple question generator.}
|
12
|
-
spec.description = %q{A simple question generator.}
|
13
|
-
spec.homepage = "https://github.com/
|
12
|
+
spec.description = %q{A simple question generator, used by Retrospring.}
|
13
|
+
spec.homepage = "https://github.com/retrospring/questiongenerator"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: questiongenerator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- nilsding
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2015-01-18 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,12 +34,11 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
|
-
description: A simple question generator.
|
41
|
+
description: A simple question generator, used by Retrospring.
|
47
42
|
email:
|
48
43
|
- nilsding@nilsding.org
|
49
44
|
executables: []
|
@@ -58,30 +53,29 @@ files:
|
|
58
53
|
- lib/questiongenerator.rb
|
59
54
|
- lib/questions/en.yml
|
60
55
|
- questiongenerator.gemspec
|
61
|
-
homepage: https://github.com/
|
56
|
+
homepage: https://github.com/retrospring/questiongenerator
|
62
57
|
licenses:
|
63
58
|
- MIT
|
59
|
+
metadata: {}
|
64
60
|
post_install_message:
|
65
61
|
rdoc_options: []
|
66
62
|
require_paths:
|
67
63
|
- lib
|
68
64
|
required_ruby_version: !ruby/object:Gem::Requirement
|
69
|
-
none: false
|
70
65
|
requirements:
|
71
66
|
- - '>='
|
72
67
|
- !ruby/object:Gem::Version
|
73
68
|
version: '0'
|
74
69
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
|
-
none: false
|
76
70
|
requirements:
|
77
71
|
- - '>='
|
78
72
|
- !ruby/object:Gem::Version
|
79
73
|
version: '0'
|
80
74
|
requirements: []
|
81
75
|
rubyforge_project:
|
82
|
-
rubygems_version:
|
76
|
+
rubygems_version: 2.4.5
|
83
77
|
signing_key:
|
84
|
-
specification_version:
|
78
|
+
specification_version: 4
|
85
79
|
summary: A simple question generator.
|
86
80
|
test_files: []
|
87
81
|
has_rdoc:
|