popquiz 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/pop_quiz.rb +36 -0
  3. metadata +58 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 802d047023cfc4737545f0e2868c29bd64b808e6
4
+ data.tar.gz: 1dea8c9369295a34fcee4f042dcced5f5a44d391
5
+ SHA512:
6
+ metadata.gz: 0451b315b7b2c3c9b4801b5ec3771eabfaf29a0ddf3b03bc8262552817607a46b8e2037fa8f7eaf0e61c415c594fa90dcd602b721d52444592af2acf266da2ec
7
+ data.tar.gz: 8ebcfb693e72a9647395f93c4168c26ab49b6f350f0742f9ed7a74db5aef35193ec8bd6374954bebf88acb21f3dfb2a8d1993b10674d5acfdebc12368bc723aa
@@ -0,0 +1,36 @@
1
+ class PopQuiz
2
+
3
+ def self.test_file(filename)
4
+ begin
5
+ file_data = File.read filename
6
+ require_relative "#{Dir.pwd}/#{filename}"
7
+ rescue Errno::ENOENT => e
8
+ puts 'Error reading file'
9
+ return false
10
+ end
11
+ comments = parse_comments(file_data)
12
+ quizzes = parse_quizzes(comments)
13
+ results = {}
14
+ quizzes.each do |quiz|
15
+ begin
16
+ return_value = eval(quiz)
17
+ if return_value
18
+ results[quiz] = {success: true}
19
+ else
20
+ results[quiz] = {success: false, message: 'Quiz returned a falsey value'}
21
+ end
22
+ rescue Exception => e
23
+ results[quiz] = {success: false, error: true, message: "Error was thrown: #{e}"}
24
+ end
25
+ end
26
+ results
27
+ end
28
+
29
+ def self.parse_comments(file_data)
30
+ file_data.split("\n").select { |line| line =~ /\s*#/ }.map { |line| line.sub /\s*# /, '' }
31
+ end
32
+
33
+ def self.parse_quizzes(comments)
34
+ comments.select { |c| c[0..2] == 'PQ:' }.map { |c| c.sub 'PQ: ', '' }
35
+ end
36
+ end
metadata ADDED
@@ -0,0 +1,58 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: popquiz
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ platform: ruby
6
+ authors:
7
+ - Thomas Hart
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-09-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 3.3.2
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 3.3.2
27
+ description:
28
+ email: tom@thomashart.me
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - lib/pop_quiz.rb
34
+ homepage: http://rubygems.org/gems/popquiz
35
+ licenses:
36
+ - MIT
37
+ metadata: {}
38
+ post_install_message:
39
+ rdoc_options: []
40
+ require_paths:
41
+ - lib
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ required_rubygems_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ requirements: []
53
+ rubyforge_project:
54
+ rubygems_version: 2.4.3
55
+ signing_key:
56
+ specification_version: 4
57
+ summary: PopQuiz is a micro inline testing framework for Ruby
58
+ test_files: []