rorr 0.1.0
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 +7 -0
- data/.gitignore +9 -0
- data/.rspec +3 -0
- data/.travis.yml +6 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +155 -0
- data/Rakefile +9 -0
- data/bin/console +14 -0
- data/bin/rorr +5 -0
- data/bin/setup +8 -0
- data/lib/rorr.rb +22 -0
- data/lib/rorr/base.rb +15 -0
- data/lib/rorr/config.rb +14 -0
- data/lib/rorr/dont_ask_me.rb +60 -0
- data/lib/rorr/init.rb +24 -0
- data/lib/rorr/main.rb +28 -0
- data/lib/rorr/return_value.rb +68 -0
- data/lib/rorr/score.rb +76 -0
- data/lib/rorr/test_pass.rb +96 -0
- data/lib/rorr/ui.rb +86 -0
- data/lib/rorr/version.rb +3 -0
- data/lib/spec_helper.rb +4 -0
- data/rorr.gemspec +27 -0
- data/spec/check_answer/normal/001_spec.rb +14 -0
- data/spec/check_answer/normal/002_spec.rb +14 -0
- data/spec/check_answer/normal/003_spec.rb +14 -0
- data/spec/check_answer/normal/004_spec.rb +14 -0
- data/spec/check_answer/normal/005_spec.rb +11 -0
- data/spec/check_answer/normal/006_spec.rb +14 -0
- data/spec/check_answer/normal/007_spec.rb +14 -0
- data/spec/check_answer/normal/008_spec.rb +14 -0
- data/spec/check_answer/normal/009_spec.rb +11 -0
- data/spec/check_answer/normal/010_spec.rb +11 -0
- data/spec/rorr/config_spec.rb +15 -0
- data/spec/rorr/score_spec.rb +70 -0
- data/spec/rorr/ui_spec.rb +58 -0
- data/spec/spec_helper.rb +6 -0
- data/templates/README.erb +2 -0
- data/templates/Report.erb +14 -0
- data/templates/play.erb +3 -0
- data/topic/methods/normal/001.rb +15 -0
- data/topic/methods/normal/002.rb +17 -0
- data/topic/methods/normal/003.rb +19 -0
- data/topic/methods/normal/004.rb +16 -0
- data/topic/methods/normal/005.rb +16 -0
- data/topic/methods/normal/006.rb +15 -0
- data/topic/methods/normal/007.rb +16 -0
- data/topic/methods/normal/008.rb +17 -0
- data/topic/methods/normal/009.rb +16 -0
- data/topic/methods/normal/010.rb +17 -0
- data/topic/questions/normal/001.rb +19 -0
- data/topic/questions/normal/002.rb +19 -0
- data/topic/questions/normal/003.rb +1 -0
- data/topic/questions/normal/004.rb +1 -0
- data/topic/questions/normal/005.rb +4 -0
- data/topic/questions/normal/006.rb +14 -0
- data/topic/questions/normal/007.rb +14 -0
- data/topic/questions/normal/008.rb +14 -0
- data/topic/questions/normal/009.rb +14 -0
- data/topic/questions/normal/010.rb +14 -0
- data/topic/questions/normal/011.rb +4 -0
- data/topic/questions/normal/012.rb +4 -0
- data/topic/questions/normal/013.rb +5 -0
- data/topic/questions/normal/014.rb +5 -0
- data/topic/questions/normal/015.rb +5 -0
- data/topic/questions/normal/016.rb +5 -0
- data/topic/questions/normal/017.rb +2 -0
- data/topic/questions/normal/018.rb +2 -0
- data/topic/questions/normal/019.rb +1 -0
- data/topic/questions/normal/020.rb +14 -0
- data/topic/rails/001.rb +6 -0
- data/topic/rails/002.rb +12 -0
- data/topic/rails/003.rb +7 -0
- data/topic/rails/004.rb +20 -0
- data/topic/rails/005.rb +19 -0
- data/topic/rails/006.rb +17 -0
- data/topic/rails/007.rb +4 -0
- data/topic/rails/008.rb +6 -0
- data/topic/rails/009.rb +11 -0
- data/topic/rails/010.rb +9 -0
- data/topic/ruby/001.rb +5 -0
- data/topic/ruby/002.rb +9 -0
- data/topic/ruby/003.rb +8 -0
- data/topic/ruby/004.rb +4 -0
- data/topic/ruby/005.rb +5 -0
- data/topic/ruby/006.rb +8 -0
- data/topic/ruby/007.rb +8 -0
- data/topic/ruby/008.rb +7 -0
- data/topic/ruby/009.rb +5 -0
- data/topic/ruby/010.rb +6 -0
- metadata +207 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0ca103a7ee93c621213da7adca4e7f21190dd9a0
|
4
|
+
data.tar.gz: b30bc7e8c6ffbb6e3106e67963a5da106fd051cc
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6eefd4ae78e44825a3ded2572532f82e4075703af212b2f23a6b108ebb6a4e6d4887f51cc9f71cce4e78e70a629fd6c9bcda24ceefc1b27cd29a47c26e01937a
|
7
|
+
data.tar.gz: dbb6c97183b2041e578411765c260b5af6307605e9bb2fdcc0ec4ecd367164d806142cabd02b25a241b3cf62d541d86b9d06c46eccf8c79644e625a68f6239a7
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2016 Leon Ji
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,155 @@
|
|
1
|
+
# RorR
|
2
|
+
|
3
|
+
[](https://codeclimate.com/github/mgleon08/rorr)
|
4
|
+
[](https://travis-ci.org/mgleon08/rorr)
|
5
|
+
|
6
|
+
RorR(Ruby or Rails) is a test designed to evaluate the Ruby or Rails proficiency and artificial intelligence in a fun, interactive way.
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
```
|
11
|
+
$ gem install rorr
|
12
|
+
```
|
13
|
+
|
14
|
+
##Getting Started
|
15
|
+
|
16
|
+
Then run the `rorr` command to start
|
17
|
+
|
18
|
+
```
|
19
|
+
$ rorr
|
20
|
+
```
|
21
|
+
|
22
|
+
Have three topics
|
23
|
+
|
24
|
+
```ruby
|
25
|
+
Welcom to RorR!
|
26
|
+
|
27
|
+
Choose the topic you want to start
|
28
|
+
1. Don't ask me Ruby or Rails
|
29
|
+
2. What's the return value?
|
30
|
+
3. Make all test pass
|
31
|
+
0. exit
|
32
|
+
|
33
|
+
>
|
34
|
+
```
|
35
|
+
|
36
|
+
###Topic1: Don't ask me Ruby or Rails
|
37
|
+
|
38
|
+
This is to check whether you remember where Ruby ends and Rails.
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
Welcome to "Don't ask me Ruby or Rails"
|
42
|
+
Let's check whether you remember where Ruby ends and Rails
|
43
|
+
|
44
|
+
------------------------------
|
45
|
+
Question 1 :
|
46
|
+
------------------------------
|
47
|
+
|
48
|
+
Array(foo: :bar) # => [[:foo, :bar]]
|
49
|
+
|
50
|
+
------------------------------
|
51
|
+
ruby or rails? (Type the ruby or rails to answer, skip to next question, exit to exit)
|
52
|
+
|
53
|
+
>
|
54
|
+
```
|
55
|
+
|
56
|
+
###Topic2: What's the return value?
|
57
|
+
|
58
|
+
This will show you the several pieces of code. You should type the code returned values to answer.
|
59
|
+
|
60
|
+
```ruby
|
61
|
+
Welcome to "What's the return value?"
|
62
|
+
Let's check how much do you proficiency in ruby or rails
|
63
|
+
|
64
|
+
------------------------------
|
65
|
+
Question 1 :
|
66
|
+
------------------------------
|
67
|
+
|
68
|
+
1 == 1.0
|
69
|
+
|
70
|
+
------------------------------
|
71
|
+
What's the return value? (Type the Exception or SyntaxError if you expect it will return, skip to next question, exit to exit)
|
72
|
+
|
73
|
+
>
|
74
|
+
```
|
75
|
+
|
76
|
+
You can type `Exception` & `SyntaxError` to answer if you expect it will return.
|
77
|
+
|
78
|
+
|
79
|
+
###Topic3: Make all test pass
|
80
|
+
|
81
|
+
This will create a rorr directory in your current location where you find a `player.rb` and `README` file.
|
82
|
+
|
83
|
+
You can see `README` for instructions and write you answer to `player.rb`.
|
84
|
+
|
85
|
+
Type rorr to check if you've finished.
|
86
|
+
|
87
|
+
```ruby
|
88
|
+
Welcome to "Make all tests pass"
|
89
|
+
Let's check how much do you proficiency in ruby or rails
|
90
|
+
|
91
|
+
Question 001 has been generated.
|
92
|
+
See the ./rorr/normal/001/README for instructions.
|
93
|
+
|
94
|
+
When you're done editing player.rb, type the rorr to check, skip to next question, exit to exit
|
95
|
+
>
|
96
|
+
```
|
97
|
+
|
98
|
+
|
99
|
+
###Test Report
|
100
|
+
|
101
|
+
In finish it will show you test report.
|
102
|
+
|
103
|
+
```ruby
|
104
|
+
Test Report
|
105
|
+
|
106
|
+
Q. | Corr | Skip | Retry
|
107
|
+
-------------------------
|
108
|
+
1. | ✓ | | 0
|
109
|
+
2. | ✓ | | 0
|
110
|
+
3. | ✓ | | 0
|
111
|
+
4. | | ✓ | 0
|
112
|
+
5. | | ✓ | 0
|
113
|
+
6. | ✗ | | 0
|
114
|
+
7. | ✗ | | 0
|
115
|
+
8. | ✗ | | 0
|
116
|
+
9. | ✓ | | 0
|
117
|
+
10. | ✓ | | 0
|
118
|
+
-------------------------
|
119
|
+
10 | 5 | 2 | 0
|
120
|
+
|
121
|
+
Correct Rate: 50.0%
|
122
|
+
Skip Rate: 20.0%
|
123
|
+
|
124
|
+
Spend Time: 00:00:33
|
125
|
+
```
|
126
|
+
|
127
|
+
##Run Options
|
128
|
+
You can run `rorr -h` for help
|
129
|
+
|
130
|
+
```
|
131
|
+
Usage: rorr [options]
|
132
|
+
-t, --time SECONDS Delay each turn by seconds (default: 0.6)
|
133
|
+
-n, --number NUMBER Number of questions (default: 10, all = -1)
|
134
|
+
-s, --solution Show the solution (default: false)
|
135
|
+
-h, --help Show this message
|
136
|
+
```
|
137
|
+
|
138
|
+
##Questions Reference
|
139
|
+
|
140
|
+
If you have good questions welcome to pull requests or comments
|
141
|
+
on GitHub at `https://github.com/mgleon08/rorr`
|
142
|
+
|
143
|
+
* [Rails Hurts quiz](http://railshurts.com/quiz/)
|
144
|
+
* [11 Essential Ruby Interview Questions*](https://www.toptal.com/ruby/interview-questions)
|
145
|
+
* [15 Questions to Ask During a Ruby Interview](https://gist.github.com/ryansobol/5252653)
|
146
|
+
* [CoderByte](https://coderbyte.com/)
|
147
|
+
|
148
|
+
## Contributing
|
149
|
+
|
150
|
+
Bug reports and pull requests are welcome on GitHub at `https://github.com/mgleon08/rorr`
|
151
|
+
|
152
|
+
## Copyright & License
|
153
|
+
|
154
|
+
* Copyright (c) 2016 Leon Ji. See [LICENSE.txt](https://github.com/mgleon08/rorr/blob/master/LICENSE.txt) for further details.
|
155
|
+
* The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "rorr"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start
|
data/bin/rorr
ADDED
data/bin/setup
ADDED
data/lib/rorr.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
$LOAD_PATH << File.dirname(__FILE__)
|
2
|
+
|
3
|
+
require 'optparse'
|
4
|
+
require 'colorize'
|
5
|
+
require 'readline'
|
6
|
+
require 'fileutils'
|
7
|
+
require 'erb'
|
8
|
+
require 'rspec'
|
9
|
+
require 'spec_helper'
|
10
|
+
require 'coderay'
|
11
|
+
|
12
|
+
require 'rorr/version'
|
13
|
+
|
14
|
+
require 'rorr/base'
|
15
|
+
require 'rorr/ui'
|
16
|
+
require 'rorr/init'
|
17
|
+
require 'rorr/main'
|
18
|
+
require 'rorr/score'
|
19
|
+
require 'rorr/config'
|
20
|
+
require 'rorr/dont_ask_me'
|
21
|
+
require 'rorr/return_value'
|
22
|
+
require 'rorr/test_pass'
|
data/lib/rorr/base.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
module Rorr
|
2
|
+
module Base
|
3
|
+
def templates_path
|
4
|
+
File.expand_path('../../../templates', __FILE__)
|
5
|
+
end
|
6
|
+
|
7
|
+
def read_template(path)
|
8
|
+
ERB.new(File.read(path), nil, '-').result(binding)
|
9
|
+
end
|
10
|
+
|
11
|
+
def generate_file_base_path
|
12
|
+
Config.path_prefix + "/rorr/#{Config.level}"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/rorr/config.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
module Rorr
|
2
|
+
class Config
|
3
|
+
@stdin = $stdin
|
4
|
+
@stdout = $stdout
|
5
|
+
@delay = 0.6
|
6
|
+
@level = 'normal'
|
7
|
+
@number = 9
|
8
|
+
@path_prefix = '.'
|
9
|
+
@solution = false
|
10
|
+
class << self
|
11
|
+
attr_accessor :stdin, :stdout, :delay, :topic, :level, :number, :path_prefix, :solution
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
module Rorr
|
2
|
+
class DontAskMe
|
3
|
+
def initialize
|
4
|
+
@dir = %w(ruby rails)
|
5
|
+
@questions = []
|
6
|
+
create_questions
|
7
|
+
end
|
8
|
+
|
9
|
+
def start
|
10
|
+
system 'clear'
|
11
|
+
UI.puts "\nWelcome to #{"\"Don't ask me Ruby or Rails\"".light_cyan}"
|
12
|
+
UI.puts "Let's check whether you remember where Ruby ends and Rails\n"
|
13
|
+
Score.start
|
14
|
+
@questions.each.with_index(1) do |question, index|
|
15
|
+
UI.question(question[:qu], index)
|
16
|
+
Score.init(index)
|
17
|
+
UI.puts "ruby or rails? (Type the #{'ruby'.green} or #{'rails'.green} to answer, #{UI.skip}, #{UI.exit})\n\n"
|
18
|
+
while answer = UI.gets
|
19
|
+
case answer.downcase
|
20
|
+
when question[:ans]
|
21
|
+
UI.puts "Yes, this is #{question[:ans]}!".green
|
22
|
+
Score.add_correct
|
23
|
+
break
|
24
|
+
when 'ruby', 'rails'
|
25
|
+
UI.puts "No, this is not #{answer}!".red
|
26
|
+
Score.add_wrong
|
27
|
+
break
|
28
|
+
when 'skip'
|
29
|
+
UI.puts 'Skip the Question!'.light_blue
|
30
|
+
Score.add_skip
|
31
|
+
break
|
32
|
+
when 'exit' then exit
|
33
|
+
when '' then UI.puts_with_delay 'Please enter again!'.light_blue
|
34
|
+
else
|
35
|
+
UI.puts_with_delay 'Error, Please enter again!'.light_red
|
36
|
+
Score.add_retry
|
37
|
+
end
|
38
|
+
end
|
39
|
+
Score.add_report
|
40
|
+
UI.solution(question[:sol])
|
41
|
+
end
|
42
|
+
Score.finish
|
43
|
+
UI.report
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def create_questions
|
49
|
+
@dir.each do |dir|
|
50
|
+
Dir[File.expand_path("../../../topic/#{dir}/*.rb", __FILE__)].each do |file|
|
51
|
+
content = File.open(file).read.split('# solution')
|
52
|
+
qu = UI.coderay(content[0])
|
53
|
+
sol = UI.coderay(content[1])
|
54
|
+
@questions << { qu: qu, ans: dir, sol: sol }
|
55
|
+
end
|
56
|
+
end
|
57
|
+
@questions = @questions.shuffle[0..Config.number]
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
data/lib/rorr/init.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
module Rorr
|
2
|
+
class Init
|
3
|
+
def initialize(arguments)
|
4
|
+
@arguments = arguments
|
5
|
+
end
|
6
|
+
|
7
|
+
def run
|
8
|
+
parse_options
|
9
|
+
Rorr::Main.choose
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def parse_options
|
15
|
+
options = OptionParser.new
|
16
|
+
options.banner = 'Usage: rorr [options]'
|
17
|
+
options.on('-t', '--time SECONDS', 'Delay each turn by seconds (default: 0.6)') { |seconds| Config.delay = seconds.to_f }
|
18
|
+
options.on('-n', '--number NUMBER', 'Number of questions (default: 10, all = 0)') { |number| Config.number = (number.to_i -1) }
|
19
|
+
options.on('-s', '--solution', 'Show the solution (default: false)') { |_number| Config.solution = true }
|
20
|
+
options.on('-h', '--help', 'Show this message') { puts(options); exit }
|
21
|
+
options.parse!(@arguments)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/rorr/main.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
module Rorr
|
2
|
+
class Main
|
3
|
+
class << self
|
4
|
+
def choose
|
5
|
+
system 'clear'
|
6
|
+
UI.menu
|
7
|
+
while Config.topic = UI.gets
|
8
|
+
case Config.topic
|
9
|
+
when '1'
|
10
|
+
game = DontAskMe.new
|
11
|
+
break
|
12
|
+
when '2'
|
13
|
+
game = ReturnValue.new
|
14
|
+
break
|
15
|
+
when '3'
|
16
|
+
game = TestPass.new
|
17
|
+
break
|
18
|
+
when '0', 'exit' then exit
|
19
|
+
else
|
20
|
+
UI.puts_with_delay 'Please enter it again'.light_blue
|
21
|
+
end
|
22
|
+
end
|
23
|
+
UI.sleep_with_setting
|
24
|
+
game.start
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
module Rorr
|
2
|
+
class ReturnValue
|
3
|
+
def initialize
|
4
|
+
@questions = []
|
5
|
+
create_questions
|
6
|
+
end
|
7
|
+
|
8
|
+
def start
|
9
|
+
system 'clear'
|
10
|
+
UI.puts "\nWelcome to #{"\"What's the return value?\"".light_cyan}"
|
11
|
+
UI.puts "Let's check how much do you proficiency in ruby or rails\n"
|
12
|
+
Score.start
|
13
|
+
@questions.each.with_index(1) do |question, index|
|
14
|
+
UI.question(question[:qu], index)
|
15
|
+
Score.init(index)
|
16
|
+
UI.puts "What's the return value? (Type the #{'Exception'.green} or #{'SyntaxError'.green} if you expect it will return, #{UI.skip}, #{UI.exit})\n\n"
|
17
|
+
while answer = UI.gets
|
18
|
+
case
|
19
|
+
when match_ans?(answer, question[:ans])
|
20
|
+
UI.puts 'Correct!'.green
|
21
|
+
Score.add_correct
|
22
|
+
break
|
23
|
+
when answer == 'skip'
|
24
|
+
UI.puts 'Skip the Question!'.light_blue
|
25
|
+
Score.add_skip
|
26
|
+
break
|
27
|
+
when answer == '' then UI.puts_with_delay 'Please enter again!'.light_blue
|
28
|
+
when answer == 'exit' then exit
|
29
|
+
else
|
30
|
+
UI.puts_with_delay 'Error, Please enter again!'.light_red
|
31
|
+
Score.add_retry
|
32
|
+
end
|
33
|
+
end
|
34
|
+
Score.add_report
|
35
|
+
UI.solution(question[:sol])
|
36
|
+
end
|
37
|
+
Score.finish
|
38
|
+
UI.report
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def create_questions
|
44
|
+
UI.puts "\nCreate Questions...\n"
|
45
|
+
Dir[File.expand_path("../../../topic/questions/#{Config.level}/*.rb", __FILE__)].each do |file|
|
46
|
+
qu = UI.coderay(File.read(file))
|
47
|
+
ans = qu_ans(File.read(file))
|
48
|
+
sol = UI.coderay(ans)
|
49
|
+
@questions << { qu: "#{qu}\n", ans: ans, sol: "\n#{sol}\n" }
|
50
|
+
end
|
51
|
+
@questions = @questions.shuffle[0..Config.number]
|
52
|
+
end
|
53
|
+
|
54
|
+
def qu_ans(code)
|
55
|
+
eval(code)
|
56
|
+
rescue SyntaxError
|
57
|
+
SyntaxError
|
58
|
+
rescue
|
59
|
+
Exception
|
60
|
+
end
|
61
|
+
|
62
|
+
def match_ans?(stdin, answer)
|
63
|
+
eval(stdin) == answer
|
64
|
+
rescue
|
65
|
+
return false
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|