bloc 0.0.7 → 0.0.8
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.
- data/CHANGELOG.md +4 -0
- data/lib/bloc/command/validate.rb +6 -30
- data/lib/bloc/manifest.rb +19 -0
- data/lib/bloc/models.rb +25 -4
- data/lib/bloc/version.rb +1 -1
- metadata +11 -11
data/CHANGELOG.md
CHANGED
|
@@ -8,8 +8,7 @@ module Bloc
|
|
|
8
8
|
VALID_DEFAULT_CHAPTER_FILE = "Default file for chapter exists (OK): %s".green
|
|
9
9
|
INVALID_DEFAULT_CHAPTER_FILE = "Default file for chapter does not exist: %s (expected %s)".red
|
|
10
10
|
NO_SUCH_PATCH = "Patch not found: %s".red
|
|
11
|
-
|
|
12
|
-
TEST_PASSED = "Passed: %s".green
|
|
11
|
+
PATCH_EXISTS = "Patch exists: %s".green
|
|
13
12
|
|
|
14
13
|
def self.run(*args)
|
|
15
14
|
manifest = Manifest.parse
|
|
@@ -18,7 +17,6 @@ module Bloc
|
|
|
18
17
|
check_patches manifest
|
|
19
18
|
end
|
|
20
19
|
|
|
21
|
-
|
|
22
20
|
def self.check_course_default_file(manifest)
|
|
23
21
|
course_default_file = manifest.course.default_file
|
|
24
22
|
if course_default_file.nil?
|
|
@@ -48,36 +46,14 @@ module Bloc
|
|
|
48
46
|
|
|
49
47
|
def self.check_patches(manifest)
|
|
50
48
|
# TODO: ensure all chapters have patches
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
manifest.chapters.each do |chapter|
|
|
57
|
-
unless chapter.patch_exists?
|
|
58
|
-
raise NO_SUCH_PATCH % chapter.patch
|
|
59
|
-
end
|
|
60
|
-
chapter.apply_patch
|
|
61
|
-
unless chapter.patch.nil?
|
|
62
|
-
results = chapter.test
|
|
63
|
-
results["tests"].each do |test|
|
|
64
|
-
if test["passed"]
|
|
65
|
-
puts TEST_PASSED % test["name"]
|
|
66
|
-
else
|
|
67
|
-
raise TEST_FAILURE % JSON.pretty_generate(results)
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
end
|
|
49
|
+
manifest.chapters.each do |chapter|
|
|
50
|
+
if chapter.patch_exists?
|
|
51
|
+
puts PATCH_EXISTS % chapter.patch
|
|
52
|
+
else
|
|
53
|
+
raise NO_SUCH_PATCH % chapter.patch
|
|
71
54
|
end
|
|
72
|
-
rescue Exception => e
|
|
73
|
-
raise e
|
|
74
|
-
ensure
|
|
75
|
-
`git checkout .`
|
|
76
|
-
`rm -rf .git`
|
|
77
|
-
`mv .git.backup .git`
|
|
78
55
|
end
|
|
79
56
|
end
|
|
80
|
-
|
|
81
57
|
end
|
|
82
58
|
end
|
|
83
59
|
end
|
data/lib/bloc/manifest.rb
CHANGED
|
@@ -48,5 +48,24 @@ module Bloc
|
|
|
48
48
|
end
|
|
49
49
|
Manifest.new({"course" => course, "chapters" => chapters})
|
|
50
50
|
end
|
|
51
|
+
|
|
52
|
+
def run_tests
|
|
53
|
+
begin
|
|
54
|
+
`mv .git .git.backup`
|
|
55
|
+
`git init`
|
|
56
|
+
`git add .`
|
|
57
|
+
`git commit -m "initial"`
|
|
58
|
+
|
|
59
|
+
@chapters.each do |chapter|
|
|
60
|
+
chapter.run_tests
|
|
61
|
+
end
|
|
62
|
+
rescue
|
|
63
|
+
raise e
|
|
64
|
+
ensure
|
|
65
|
+
`git checkout .`
|
|
66
|
+
`rm -rf .git`
|
|
67
|
+
`mv .git.backup .git`
|
|
68
|
+
end
|
|
69
|
+
end
|
|
51
70
|
end
|
|
52
71
|
end
|
data/lib/bloc/models.rb
CHANGED
|
@@ -7,6 +7,8 @@ module Bloc
|
|
|
7
7
|
include HashConstructed
|
|
8
8
|
include ToHash
|
|
9
9
|
attr_accessor :name, :description, :default_file
|
|
10
|
+
|
|
11
|
+
|
|
10
12
|
end
|
|
11
13
|
|
|
12
14
|
class Chapter
|
|
@@ -14,6 +16,29 @@ module Bloc
|
|
|
14
16
|
include ToHash
|
|
15
17
|
attr_accessor :name, :command, :markdown, :default_file, :patch, :cursor_row, :cursor_column
|
|
16
18
|
|
|
19
|
+
TEST_FAILURE = "Failed test:\n%s".red
|
|
20
|
+
TEST_PASSED = "Passed: %s".green
|
|
21
|
+
|
|
22
|
+
def run_tests
|
|
23
|
+
apply_patch
|
|
24
|
+
unless @patch.nil?
|
|
25
|
+
results = test
|
|
26
|
+
results["tests"].each do |test_result|
|
|
27
|
+
if test_result["passed"]
|
|
28
|
+
puts TEST_PASSED % test_result["name"]
|
|
29
|
+
else
|
|
30
|
+
raise TEST_FAILURE % test_result["name"]
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def patch_exists?
|
|
37
|
+
File.exists?("bloc/#{@patch}")
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
private
|
|
41
|
+
|
|
17
42
|
def test
|
|
18
43
|
`#{@command}`
|
|
19
44
|
results = JSON.parse(File.read("results.json"))
|
|
@@ -21,10 +46,6 @@ module Bloc
|
|
|
21
46
|
results
|
|
22
47
|
end
|
|
23
48
|
|
|
24
|
-
def patch_exists?
|
|
25
|
-
File.exists?("bloc/#{@patch}")
|
|
26
|
-
end
|
|
27
|
-
|
|
28
49
|
def apply_patch
|
|
29
50
|
unless @patch.nil?
|
|
30
51
|
`patch < bloc/#{@patch}`
|
data/lib/bloc/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bloc
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.8
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -14,7 +14,7 @@ date: 2012-03-05 00:00:00.000000000Z
|
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: rspec
|
|
17
|
-
requirement: &
|
|
17
|
+
requirement: &70257638615020 !ruby/object:Gem::Requirement
|
|
18
18
|
none: false
|
|
19
19
|
requirements:
|
|
20
20
|
- - ! '>='
|
|
@@ -22,10 +22,10 @@ dependencies:
|
|
|
22
22
|
version: '0'
|
|
23
23
|
type: :development
|
|
24
24
|
prerelease: false
|
|
25
|
-
version_requirements: *
|
|
25
|
+
version_requirements: *70257638615020
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: fakefs
|
|
28
|
-
requirement: &
|
|
28
|
+
requirement: &70257638614600 !ruby/object:Gem::Requirement
|
|
29
29
|
none: false
|
|
30
30
|
requirements:
|
|
31
31
|
- - ! '>='
|
|
@@ -33,10 +33,10 @@ dependencies:
|
|
|
33
33
|
version: '0'
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
|
-
version_requirements: *
|
|
36
|
+
version_requirements: *70257638614600
|
|
37
37
|
- !ruby/object:Gem::Dependency
|
|
38
38
|
name: ruby-debug19
|
|
39
|
-
requirement: &
|
|
39
|
+
requirement: &70257638614180 !ruby/object:Gem::Requirement
|
|
40
40
|
none: false
|
|
41
41
|
requirements:
|
|
42
42
|
- - ! '>='
|
|
@@ -44,10 +44,10 @@ dependencies:
|
|
|
44
44
|
version: '0'
|
|
45
45
|
type: :development
|
|
46
46
|
prerelease: false
|
|
47
|
-
version_requirements: *
|
|
47
|
+
version_requirements: *70257638614180
|
|
48
48
|
- !ruby/object:Gem::Dependency
|
|
49
49
|
name: json
|
|
50
|
-
requirement: &
|
|
50
|
+
requirement: &70257638613760 !ruby/object:Gem::Requirement
|
|
51
51
|
none: false
|
|
52
52
|
requirements:
|
|
53
53
|
- - ! '>='
|
|
@@ -55,10 +55,10 @@ dependencies:
|
|
|
55
55
|
version: '0'
|
|
56
56
|
type: :runtime
|
|
57
57
|
prerelease: false
|
|
58
|
-
version_requirements: *
|
|
58
|
+
version_requirements: *70257638613760
|
|
59
59
|
- !ruby/object:Gem::Dependency
|
|
60
60
|
name: colorize
|
|
61
|
-
requirement: &
|
|
61
|
+
requirement: &70257638613340 !ruby/object:Gem::Requirement
|
|
62
62
|
none: false
|
|
63
63
|
requirements:
|
|
64
64
|
- - ! '>='
|
|
@@ -66,7 +66,7 @@ dependencies:
|
|
|
66
66
|
version: '0'
|
|
67
67
|
type: :runtime
|
|
68
68
|
prerelease: false
|
|
69
|
-
version_requirements: *
|
|
69
|
+
version_requirements: *70257638613340
|
|
70
70
|
description: A command-line tool for Bloc
|
|
71
71
|
email:
|
|
72
72
|
- roshan.choxi@gmail.com
|