popquiz 0.0.3

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.
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: []