bloc 0.0.9 → 0.0.10
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 +8 -0
- data/bin/bloc +8 -5
- data/lib/bloc/command.rb +3 -1
- data/lib/bloc/command/create.rb +21 -0
- data/lib/bloc/command/patch.rb +14 -0
- data/lib/bloc/command/test.rb +14 -0
- data/lib/bloc/manifest.rb +17 -4
- data/lib/bloc/models.rb +6 -7
- data/lib/bloc/version.rb +1 -1
- metadata +14 -12
- data/lib/bloc/command/generate.rb +0 -12
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
### 0.0.10
|
2
|
+
|
3
|
+
* create, test, and patch commands added
|
4
|
+
* create the bloc directory on create if not already present
|
5
|
+
* add deployable key to manifest attr_accessors
|
6
|
+
* consolidate logic around running tests and patching
|
7
|
+
* applying patches is no longer a private method of the manifest
|
8
|
+
|
1
9
|
### 0.0.9
|
2
10
|
|
3
11
|
* in_tmp_git mixin, and removed reliance on bundler/setup
|
data/bin/bloc
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require "rubygems"
|
4
|
-
|
5
4
|
require "bloc"
|
6
5
|
|
7
6
|
commands = {
|
8
7
|
'validate' => proc { Bloc::Command::Validate.run },
|
9
|
-
'
|
8
|
+
'create' => proc { Bloc::Command::Create.run },
|
9
|
+
'test' => proc { Bloc::Command::Test.run },
|
10
|
+
'patch' => proc { Bloc::Command::Patch.run }
|
10
11
|
}
|
11
|
-
if
|
12
|
+
if commands.keys.include?(ARGV.first.downcase)
|
12
13
|
begin
|
13
14
|
commands[ARGV.first.downcase].call
|
14
15
|
rescue => e
|
@@ -20,8 +21,10 @@ else
|
|
20
21
|
bloc <command> [options]
|
21
22
|
|
22
23
|
Commands:
|
23
|
-
validate
|
24
|
-
|
24
|
+
validate Attempt to parse the manifest and check for the existence of default files
|
25
|
+
create["Course name"] Create a course manifest with the specified name prefilled
|
26
|
+
test [chapter-number] If chapter number is specified, run tests for that chapter. If not, run all tests in order.
|
27
|
+
patch [chapter-number] Same as "test", except apply patches first (if present)
|
25
28
|
eos
|
26
29
|
puts helpstring
|
27
30
|
end
|
data/lib/bloc/command.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
module Bloc
|
2
|
+
module Command
|
3
|
+
class Create
|
4
|
+
def self.run(*args)
|
5
|
+
name = ARGV[1]
|
6
|
+
if name.nil?
|
7
|
+
raise "Please specify a name.".red
|
8
|
+
end
|
9
|
+
course = Bloc::Models::Course.new(:name => name, :description => "")
|
10
|
+
chapters = []
|
11
|
+
manifest = Bloc::Manifest.new({"course" => course, "chapters" => chapters})
|
12
|
+
begin
|
13
|
+
manifest.write
|
14
|
+
puts "Wrote manifest.".green
|
15
|
+
rescue Exception => e
|
16
|
+
raise e.to_s.red
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Bloc
|
2
|
+
module Command
|
3
|
+
class Patch
|
4
|
+
def self.run(*args)
|
5
|
+
manifest = Manifest.parse
|
6
|
+
if ARGV[1].nil?
|
7
|
+
manifest.run_tests(:apply_patch => true)
|
8
|
+
else
|
9
|
+
manifest.run_tests(:chapter => ARGV[1].to_i, :apply_patch => true)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/bloc/manifest.rb
CHANGED
@@ -8,10 +8,11 @@ module Bloc
|
|
8
8
|
MANIFEST_PATH = File.join("bloc", "bloc_manifest.json")
|
9
9
|
INVALID_MANIFEST = "Invalid JSON in Bloc Manifest: #{MANIFEST_PATH}".red
|
10
10
|
VALID_MANIFEST = "Valid Bloc Manifest".green
|
11
|
+
NO_SUCH_CHAPTER = "No such chapter.".red
|
11
12
|
|
12
13
|
include TempGit
|
13
14
|
|
14
|
-
attr_accessor :course, :chapters
|
15
|
+
attr_accessor :course, :chapters, :deployable
|
15
16
|
|
16
17
|
def initialize(options)
|
17
18
|
@course = options["course"]
|
@@ -19,6 +20,7 @@ module Bloc
|
|
19
20
|
end
|
20
21
|
|
21
22
|
def write
|
23
|
+
Dir.mkdir(File.dirname(MANIFEST_PATH))
|
22
24
|
File.open(MANIFEST_PATH, "w") do |file|
|
23
25
|
file.write(JSON.pretty_generate(to_h))
|
24
26
|
end
|
@@ -52,10 +54,21 @@ module Bloc
|
|
52
54
|
Manifest.new({"course" => course, "chapters" => chapters})
|
53
55
|
end
|
54
56
|
|
55
|
-
def run_tests
|
57
|
+
def run_tests(options = {})
|
58
|
+
defaults = {:chapter => nil, :apply_patch => false}
|
59
|
+
options = defaults.merge(options)
|
60
|
+
|
56
61
|
in_tmp_git do
|
57
|
-
|
58
|
-
chapter
|
62
|
+
if options[:chapter].nil?
|
63
|
+
@chapters.each do |chapter|
|
64
|
+
chapter.apply_patch if options[:apply_patch]
|
65
|
+
chapter.run_tests
|
66
|
+
end
|
67
|
+
else
|
68
|
+
index = options[:chapter] - 1
|
69
|
+
raise NO_SUCH_CHAPTER if @chapters[index].nil?
|
70
|
+
@chapters[index].apply_patch if options[:apply_patch]
|
71
|
+
@chapters[index].run_tests
|
59
72
|
end
|
60
73
|
end
|
61
74
|
end
|
data/lib/bloc/models.rb
CHANGED
@@ -20,7 +20,6 @@ module Bloc
|
|
20
20
|
TEST_PASSED = "Passed: %s".green
|
21
21
|
|
22
22
|
def run_tests
|
23
|
-
apply_patch
|
24
23
|
unless @patch.nil?
|
25
24
|
results = test
|
26
25
|
results["tests"].each do |test_result|
|
@@ -37,6 +36,12 @@ module Bloc
|
|
37
36
|
File.exists?("bloc/#{@patch}")
|
38
37
|
end
|
39
38
|
|
39
|
+
def apply_patch
|
40
|
+
unless @patch.nil?
|
41
|
+
`patch < bloc/#{@patch}`
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
40
45
|
private
|
41
46
|
|
42
47
|
def test
|
@@ -45,12 +50,6 @@ module Bloc
|
|
45
50
|
File.delete("results.json")
|
46
51
|
results
|
47
52
|
end
|
48
|
-
|
49
|
-
def apply_patch
|
50
|
-
unless @patch.nil?
|
51
|
-
`patch < bloc/#{@patch}`
|
52
|
-
end
|
53
|
-
end
|
54
53
|
end
|
55
54
|
end
|
56
55
|
end
|
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.10
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -14,7 +14,7 @@ date: 2012-03-06 00:00:00.000000000Z
|
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|
17
|
-
requirement: &
|
17
|
+
requirement: &70339116316320 !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: *70339116316320
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: fakefs
|
28
|
-
requirement: &
|
28
|
+
requirement: &70339116315900 !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: *70339116315900
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: ruby-debug19
|
39
|
-
requirement: &
|
39
|
+
requirement: &70339116315480 !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: *70339116315480
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: json
|
50
|
-
requirement: &
|
50
|
+
requirement: &70339116315060 !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: *70339116315060
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: colorize
|
61
|
-
requirement: &
|
61
|
+
requirement: &70339116314640 !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: *70339116314640
|
70
70
|
description: A command-line tool for Bloc
|
71
71
|
email:
|
72
72
|
- roshan.choxi@gmail.com
|
@@ -86,7 +86,9 @@ files:
|
|
86
86
|
- bloc.gemspec
|
87
87
|
- lib/bloc.rb
|
88
88
|
- lib/bloc/command.rb
|
89
|
-
- lib/bloc/command/
|
89
|
+
- lib/bloc/command/create.rb
|
90
|
+
- lib/bloc/command/patch.rb
|
91
|
+
- lib/bloc/command/test.rb
|
90
92
|
- lib/bloc/command/validate.rb
|
91
93
|
- lib/bloc/hash_constructed.rb
|
92
94
|
- lib/bloc/manifest.rb
|
@@ -1,12 +0,0 @@
|
|
1
|
-
module Bloc
|
2
|
-
module Command
|
3
|
-
class Generate
|
4
|
-
def self.run(*args)
|
5
|
-
course = Bloc::Models::Course.new(:name => "My course", :description => "")
|
6
|
-
chapters = []
|
7
|
-
manifest = Bloc::Manifest.new({"course" => course, "chapters" => chapters})
|
8
|
-
manifest.write
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|