captain_hoog 1.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +5 -0
- data/README.md +23 -4
- data/Rakefile +4 -0
- data/bin/githoog +1 -0
- data/captain_hoog.gemspec +2 -1
- data/changelog.md +15 -0
- data/features/support/world.rb +2 -0
- data/lib/captain_hoog/config/hook_types.yml +8 -0
- data/lib/captain_hoog/core_ext/hash.rb +12 -0
- data/lib/captain_hoog/core_ext.rb +1 -0
- data/lib/captain_hoog/dependencies.rb +3 -0
- data/lib/captain_hoog/hoogfile.rb +48 -0
- data/lib/captain_hoog/plugin.rb +8 -0
- data/lib/captain_hoog/pre_git.rb +14 -10
- data/lib/captain_hoog/struct/hoog_struct.rb +26 -0
- data/lib/captain_hoog/templates/hoogfile.erb +2 -1
- data/lib/captain_hoog/templates/install.erb +4 -5
- data/lib/captain_hoog/version.rb +1 -1
- data/lib/captain_hoog.rb +3 -0
- data/spec/fixtures/config/cucumber/hoogfile.yml +13 -0
- data/spec/fixtures/config/spec/hoogfile.yml +6 -0
- data/spec/fixtures/plugins/test_plugins/passing/pure/foo.rb +11 -0
- data/spec/fixtures/plugins/test_plugins/passing/simple.rb +1 -1
- data/spec/fixtures/pre-commit-pass +4 -12
- data/spec/lib/captain_hoog/hoogfile_spec.rb +72 -0
- data/spec/lib/captain_hoog/plugin_list_spec.rb +12 -3
- data/spec/lib/captain_hoog/pre_git_spec.rb +5 -3
- metadata +19 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90a0156f2d2ceb92d76f79340d5def6d7a7322cb
|
4
|
+
data.tar.gz: da5dd7da0c3059b88fcc4be4d207fee81ac5911a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 85516122ffae7b7c311f68d7cffa4067b06d0078e4d0ddc0e1b1dd20b9b59266ed84407fef622115afce0d34561bcbd422b9c5cd613d2388388d2aaa9fb7a231
|
7
|
+
data.tar.gz: 06a158fa3f4cb7ddce69300e84d0b2120fd948e6a9434fec005e08f60b8575a69b0b5fceb59b1d8cf71213a50719b0d1ae9f161a8cd910d4ed0dc61d4c558f04
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -51,7 +51,7 @@ to your needs. You can omit this.
|
|
51
51
|
|
52
52
|
is not required anymore. If it's omited it will point to the actual directory you run the install script from. It should point to the directory you store the CaptainHoog plugins.
|
53
53
|
|
54
|
-
_A note about plugin directories:_
|
54
|
+
_A note about plugin directories:_ To have more than one plugin directory used, just add as many plugin directories as you want do the ```plugins_dir``` section in the Hoogfile. You can select which plugin is called from which Git hook later by defining it in the Hoogfile.
|
55
55
|
|
56
56
|
### Removing the hook
|
57
57
|
|
@@ -92,8 +92,6 @@ pre-commit:
|
|
92
92
|
|
93
93
|
So the plugins named **cucumber** and **rspec** are running before your commit applies to the index.
|
94
94
|
|
95
|
-
|
96
|
-
|
97
95
|
### Migrating from pre 1.0 versions
|
98
96
|
|
99
97
|
There is no migration path from previous versions. Just re-install and adjust the Hoogfile to your previous configuration.
|
@@ -111,7 +109,7 @@ Within ```test``` any stuff is done that either forces the commit to exit or
|
|
111
109
|
to pass. Whatever you want to do like syntax checking, code style checking -
|
112
110
|
implement it and make sure you return a boolean value.
|
113
111
|
|
114
|
-
```message``` is used to define a
|
112
|
+
```message``` is used to define a notification that is shown to the user if
|
115
113
|
the test **fails**. This obviously must return a String.
|
116
114
|
|
117
115
|
You have to add a description (or name) to your plugin, this description (or name) will be used to check if the plugin should be executed or not by adding the plugins name to the section <hook plugins per type> of your Hoogfile.
|
@@ -165,6 +163,27 @@ end
|
|
165
163
|
|
166
164
|
```
|
167
165
|
|
166
|
+
|
167
|
+
**Plugin specific configurations**
|
168
|
+
|
169
|
+
Sometimes a plugin needs specific configurations that not match the use of a helper method. You can add plugin configurations to your Hoogfile by adding a section that is named after the plugin. Let's say there is a plugin called 'clear logs' that needs a 'truncate_line_numbers' configuration. The Hoogfile section would look like:
|
170
|
+
|
171
|
+
```yaml
|
172
|
+
clear logs:
|
173
|
+
truncate_line_numbers: 100
|
174
|
+
```
|
175
|
+
|
176
|
+
You are able to access this configuration within your plugin by using the ```config``` method:
|
177
|
+
|
178
|
+
```rb
|
179
|
+
git.describe 'clear logs' do |pre|
|
180
|
+
pre.run do
|
181
|
+
system "sed -i '#{config.truncate_line_numbers},$ d' development.log"
|
182
|
+
end
|
183
|
+
end
|
184
|
+
```
|
185
|
+
|
186
|
+
|
168
187
|
## Last stuff
|
169
188
|
|
170
189
|
Init and written by Daniel Schmidt (daniel.schmidt@gateprotect.com)
|
data/Rakefile
CHANGED
data/bin/githoog
CHANGED
data/captain_hoog.gemspec
CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.name = "captain_hoog"
|
8
8
|
spec.version = CaptainHoog::VERSION
|
9
9
|
spec.authors = ["Daniel Schmidt"]
|
10
|
-
spec.email = ["daniel.schmidt@
|
10
|
+
spec.email = ["daniel.schmidt@gateprotect.com"]
|
11
11
|
spec.summary = %q{ Plugin based git-pre hook.}
|
12
12
|
spec.homepage = ""
|
13
13
|
spec.license = "MIT"
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
githoog install --type <GIT_HOOK_TYPE> --plugins_dir <PATH_TO_PLUGINS> \
|
20
20
|
--project_dir <PATH_TO_PROJECT>
|
21
21
|
}
|
22
|
+
spec.required_ruby_version = '>= 2.0'
|
22
23
|
|
23
24
|
|
24
25
|
spec.files = `git ls-files -z`.split("\x0")
|
data/changelog.md
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
## 1.0.1 (2015-05-06)
|
2
|
+
|
3
|
+
Features:
|
4
|
+
|
5
|
+
- support ERB (embedded Ruby) in Hoogfile.yml
|
6
|
+
- support multiple plugin directories
|
7
|
+
- support for specific plugin/hookin configurations
|
8
|
+
|
9
|
+
Bugfixes:
|
10
|
+
|
11
|
+
- fix githoog install by requiring 'pathname'
|
12
|
+
|
13
|
+
Notes:
|
14
|
+
|
15
|
+
- minimum Ruby version is 2.0
|
data/features/support/world.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
require "captain_hoog/core_ext/hash"
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module CaptainHoog
|
2
|
+
class Hoogfile < Struct
|
3
|
+
|
4
|
+
def self.read(path)
|
5
|
+
self.send(:new,path)
|
6
|
+
end
|
7
|
+
|
8
|
+
singleton_class.send(:alias_method, :config, :read)
|
9
|
+
|
10
|
+
private_class_method :new
|
11
|
+
|
12
|
+
def initialize(path)
|
13
|
+
@path = path
|
14
|
+
super(hoogfile)
|
15
|
+
end
|
16
|
+
|
17
|
+
def plugins_config
|
18
|
+
# select all plugin config into an env hash
|
19
|
+
config = self.to_h.reduce({}) do |plugins_env_hash, (item_key, item_value)|
|
20
|
+
unless reserved_keys.include?(item_key)
|
21
|
+
plugins_env_hash.update(item_key => item_value)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
CaptainHoog::Struct.new(config)
|
25
|
+
end
|
26
|
+
alias_method :plugins_env, :plugins_config
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def hoogfile
|
31
|
+
config = File.read(File.join(@path, 'hoogfile.yml'))
|
32
|
+
data = ERB.new(config).result
|
33
|
+
interpreted_config = YAML.load(data)
|
34
|
+
raise StandardError if interpreted_config.key?(:plugins_config)
|
35
|
+
interpreted_config
|
36
|
+
end
|
37
|
+
|
38
|
+
def hook_types
|
39
|
+
@hook_types ||= YAML.load_file(File.join(File.dirname(__FILE__),
|
40
|
+
'config',
|
41
|
+
'hook_types.yml'))
|
42
|
+
end
|
43
|
+
|
44
|
+
def reserved_keys
|
45
|
+
hook_types + %w(project_dir plugins_dir)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
data/lib/captain_hoog/plugin.rb
CHANGED
@@ -42,6 +42,14 @@ module CaptainHoog
|
|
42
42
|
}
|
43
43
|
end
|
44
44
|
|
45
|
+
# Public: Provides access to the configuration section in the hoogfile
|
46
|
+
# with the plugin's name.
|
47
|
+
#
|
48
|
+
# Returns the value of the key.
|
49
|
+
def config
|
50
|
+
Struct.new(env[:plugins_config].send(git.plugin_name))
|
51
|
+
end
|
52
|
+
|
45
53
|
private
|
46
54
|
|
47
55
|
def eigenplugin
|
data/lib/captain_hoog/pre_git.rb
CHANGED
@@ -7,7 +7,8 @@ module CaptainHoog
|
|
7
7
|
:plugins_dir,
|
8
8
|
:headline_on_success,
|
9
9
|
:headline_on_failure,
|
10
|
-
:suppress_headline
|
10
|
+
:suppress_headline,
|
11
|
+
:plugins_conf
|
11
12
|
end
|
12
13
|
|
13
14
|
# Public: Runs the hook.
|
@@ -29,15 +30,9 @@ module CaptainHoog
|
|
29
30
|
end
|
30
31
|
|
31
32
|
def initialize(plugins_list = nil)
|
32
|
-
env = prepare_env
|
33
33
|
@plugins = []
|
34
34
|
@plugins_list = plugins_list
|
35
|
-
|
36
|
-
read_plugins_from_dir(self.class.plugins_dir, env)
|
37
|
-
end
|
38
|
-
if shared_plugins_dir_present?
|
39
|
-
read_plugins_from_dir(shared_plugins_dir, env)
|
40
|
-
end
|
35
|
+
prepare_plugins
|
41
36
|
end
|
42
37
|
|
43
38
|
# Public: Evaluates all plugins that are found in plugins_dir.
|
@@ -72,7 +67,8 @@ module CaptainHoog
|
|
72
67
|
|
73
68
|
def prepare_env
|
74
69
|
env = Env.new
|
75
|
-
env[:project_dir]
|
70
|
+
env[:project_dir] = self.class.project_dir
|
71
|
+
env[:plugins_config] = self.class.plugins_conf
|
76
72
|
env
|
77
73
|
end
|
78
74
|
|
@@ -116,7 +112,15 @@ module CaptainHoog
|
|
116
112
|
def read_plugins_from_dir(dir, env)
|
117
113
|
Dir["#{dir}/**/**.rb"].each do |plugin|
|
118
114
|
code = File.read(plugin)
|
119
|
-
@plugins << Plugin.new(code,env)
|
115
|
+
@plugins << Plugin.new(code, env)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
def prepare_plugins
|
120
|
+
env = prepare_env
|
121
|
+
plugins_dir = self.class.plugins_dir
|
122
|
+
(plugins_dir.is_a?(Array) ? plugins_dir : Array(plugins_dir)).each do |dir|
|
123
|
+
read_plugins_from_dir(dir, env)
|
120
124
|
end
|
121
125
|
end
|
122
126
|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module CaptainHoog
|
2
|
+
class Struct < ::OpenStruct
|
3
|
+
|
4
|
+
def fetch(key, default = nil)
|
5
|
+
if not self.respond_to?(key)
|
6
|
+
raise IndexError unless default
|
7
|
+
return default
|
8
|
+
else
|
9
|
+
self.public_send(key)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def method_missing(method_name, *args, &block)
|
14
|
+
if self.to_h.respond_to?(method_name)
|
15
|
+
self.to_h.stringify_keys.send(method_name.to_s, *args, &block)
|
16
|
+
else
|
17
|
+
super
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def respond_to_missing?(method_name, include_private = false)
|
22
|
+
self.to_h.respond_to?(method_name) || super
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
@@ -1,15 +1,14 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'captain_hoog'
|
3
|
-
require 'yaml'
|
4
3
|
|
5
4
|
# read config
|
6
|
-
hoog_config =
|
7
|
-
'hoogfile.yml'))
|
5
|
+
hoog_config = CaptainHoog::Hoogfile.config('<%= config[:root_dir] %>')
|
8
6
|
|
9
7
|
# Adjust settings
|
10
8
|
CaptainHoog::PreGit.configure do |config|
|
11
|
-
config.plugins_dir = hoog_config
|
12
|
-
config.project_dir = hoog_config
|
9
|
+
config.plugins_dir = hoog_config.plugins_dir
|
10
|
+
config.project_dir = hoog_config.project_dir
|
11
|
+
config.plugins_conf = hoog_config.plugins_env
|
13
12
|
#config.headline_on_success = "All is fine."
|
14
13
|
#config.headline_on_failure = "Oops. Something went wrong"
|
15
14
|
end
|
data/lib/captain_hoog/version.rb
CHANGED
data/lib/captain_hoog.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "captain_hoog/version"
|
2
2
|
require "captain_hoog/dependencies"
|
3
|
+
require "captain_hoog/core_ext"
|
3
4
|
require "captain_hoog/errors"
|
4
5
|
require "captain_hoog/delegatable"
|
5
6
|
require "captain_hoog/helper_table"
|
@@ -8,6 +9,8 @@ require "captain_hoog/git"
|
|
8
9
|
require "captain_hoog/plugin"
|
9
10
|
require "captain_hoog/pre_git"
|
10
11
|
require "captain_hoog/plugin_list"
|
12
|
+
require "captain_hoog/struct/hoog_struct"
|
13
|
+
require "captain_hoog/hoogfile"
|
11
14
|
|
12
15
|
module CaptainHoog
|
13
16
|
# Your code goes here...
|
@@ -0,0 +1,13 @@
|
|
1
|
+
plugins_dir:
|
2
|
+
- <%= File.expand_path(File.join(File.dirname(__FILE__),
|
3
|
+
"plugins",
|
4
|
+
"test_plugins",
|
5
|
+
"passing")) %>
|
6
|
+
|
7
|
+
project_dir: <%= File.expand_path(File.join(File.dirname(__FILE__),"with_git" )) %>
|
8
|
+
|
9
|
+
pre-commit:
|
10
|
+
- simple
|
11
|
+
|
12
|
+
simple:
|
13
|
+
runtime_count: <%= a = 0; 12.times { |i| a += 1 }; a %>
|
@@ -1,25 +1,17 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'captain_hoog'
|
3
|
+
cucumber_hoogfile = File.expand_path(File.join(File.dirname(__FILE__),
|
4
|
+
"config", "cucumber"))
|
3
5
|
|
4
|
-
|
5
|
-
"plugins",
|
6
|
-
"test_plugins",
|
7
|
-
"passing"))
|
8
|
-
|
9
|
-
hoog_config = {
|
10
|
-
'exclude' => [],
|
11
|
-
'plugins_dir' => plugins_path,
|
12
|
-
'project_dir' => 'with_git',
|
13
|
-
'pre-commit' => ['simple']
|
14
|
-
}
|
6
|
+
hoog_config = CaptainHoog::Hoogfile.config(cucumber_hoogfile)
|
15
7
|
|
16
8
|
plugin_list = CaptainHoog::PluginList.new('pre-commit',
|
17
9
|
config: hoog_config)
|
18
|
-
|
19
10
|
# Adjust settings
|
20
11
|
CaptainHoog::PreGit.configure do |config|
|
21
12
|
config.plugins_dir = hoog_config['plugins_dir']
|
22
13
|
config.project_dir = hoog_config['project_dir']
|
14
|
+
config.plugins_conf = hoog_config.plugins_env
|
23
15
|
end
|
24
16
|
|
25
17
|
CaptainHoog::PreGit.run(plugins_list: plugin_list)
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe CaptainHoog::Hoogfile do
|
4
|
+
let(:path) do
|
5
|
+
File.expand_path(File.join(File.dirname(__FILE__),
|
6
|
+
'..', '..','fixtures', 'config', 'spec'))
|
7
|
+
end
|
8
|
+
|
9
|
+
let(:plugins_dir) do
|
10
|
+
File.expand_path(File.join(File.dirname(__FILE__),
|
11
|
+
'..', '..','fixtures', 'plugins'))
|
12
|
+
end
|
13
|
+
|
14
|
+
describe 'class methods' do
|
15
|
+
it 'provides .read' do
|
16
|
+
expect(described_class).to respond_to(:read)
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'provides .config' do
|
20
|
+
expect(described_class).to respond_to(:config)
|
21
|
+
end
|
22
|
+
|
23
|
+
describe '.new' do
|
24
|
+
it 'is not callable' do
|
25
|
+
expect do
|
26
|
+
described_class.new
|
27
|
+
end.to raise_error NoMethodError
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '.read' do
|
32
|
+
|
33
|
+
subject{ described_class.read(path) }
|
34
|
+
|
35
|
+
it 'returns an instance of Hoogfile' do
|
36
|
+
expect(subject).to be_instance_of(CaptainHoog::Hoogfile)
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'evaluates erb' do
|
40
|
+
expect(subject.plugins_dir).to include(plugins_dir)
|
41
|
+
expect(subject.plugins_env).to have_key('foo plugin')
|
42
|
+
expect(subject.plugins_env['foo plugin']).to be_instance_of(Hash)
|
43
|
+
expect(subject.plugins_env['foo plugin']).to have_key('bar')
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe 'instance methods' do
|
48
|
+
|
49
|
+
subject{ described_class.read(path) }
|
50
|
+
|
51
|
+
it 'provides #fetch' do
|
52
|
+
expect(subject).to respond_to(:fetch)
|
53
|
+
end
|
54
|
+
|
55
|
+
describe 'fetch' do
|
56
|
+
it 'returns the value for a given key' do
|
57
|
+
expect(subject.fetch(:plugins_dir)).to include(plugins_dir)
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'returns default value if give isnt found' do
|
61
|
+
expect(subject.fetch(:foo, [])).to eq []
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'raises an error if no default value is given and key not exists' do
|
65
|
+
expect do
|
66
|
+
subject.fetch(:foo)
|
67
|
+
end.to raise_error IndexError
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -21,11 +21,20 @@ describe CaptainHoog::PluginList do
|
|
21
21
|
'passing')
|
22
22
|
end
|
23
23
|
|
24
|
+
let(:shared_plugin_dir) do
|
25
|
+
File.join(File.dirname(__FILE__),
|
26
|
+
'..', '..',
|
27
|
+
'fixtures',
|
28
|
+
'plugins',
|
29
|
+
'shared',
|
30
|
+
'passing')
|
31
|
+
end
|
32
|
+
|
24
33
|
let(:config) do
|
25
34
|
{
|
26
35
|
'exclude' => %w(mat git log),
|
27
|
-
'pre-commit' => %w(rspec),
|
28
|
-
'plugins_dir' => plugin_dir_path
|
36
|
+
'pre-commit' => %w(rspec shared),
|
37
|
+
'plugins_dir' => [plugin_dir_path, shared_plugin_dir]
|
29
38
|
}
|
30
39
|
end
|
31
40
|
|
@@ -34,7 +43,7 @@ describe CaptainHoog::PluginList do
|
|
34
43
|
end
|
35
44
|
|
36
45
|
it 'returns available plugins' do
|
37
|
-
expect(subject.plugins).to eq %w(rspec)
|
46
|
+
expect(subject.plugins).to eq %w(rspec shared)
|
38
47
|
end
|
39
48
|
|
40
49
|
end
|
@@ -32,12 +32,14 @@ describe CaptainHoog::PreGit do
|
|
32
32
|
|
33
33
|
describe "#configure" do
|
34
34
|
let(:plugins_path) do
|
35
|
-
File.join(File.dirname(__FILE__),
|
35
|
+
[File.join(File.dirname(__FILE__),
|
36
36
|
"..",
|
37
37
|
"..",
|
38
38
|
"fixtures",
|
39
39
|
"plugins",
|
40
|
-
"test_plugins"
|
40
|
+
"test_plugins",
|
41
|
+
"passing",
|
42
|
+
"pure")]
|
41
43
|
end
|
42
44
|
|
43
45
|
before do
|
@@ -73,7 +75,7 @@ describe CaptainHoog::PreGit do
|
|
73
75
|
let(:plugins_list) do
|
74
76
|
Class.new do
|
75
77
|
def plugins
|
76
|
-
%w(
|
78
|
+
%w(foo)
|
77
79
|
end
|
78
80
|
|
79
81
|
def has?(plugin)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: captain_hoog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Schmidt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
@@ -136,19 +136,21 @@ dependencies:
|
|
136
136
|
version: '0'
|
137
137
|
description:
|
138
138
|
email:
|
139
|
-
- daniel.schmidt@
|
139
|
+
- daniel.schmidt@gateprotect.com
|
140
140
|
executables:
|
141
141
|
- githoog
|
142
142
|
extensions: []
|
143
143
|
extra_rdoc_files: []
|
144
144
|
files:
|
145
145
|
- ".gitignore"
|
146
|
+
- ".travis.yml"
|
146
147
|
- Gemfile
|
147
148
|
- LICENSE.txt
|
148
149
|
- README.md
|
149
150
|
- Rakefile
|
150
151
|
- bin/githoog
|
151
152
|
- captain_hoog.gemspec
|
153
|
+
- changelog.md
|
152
154
|
- features/failed_hook.feature
|
153
155
|
- features/installing_hook.feature
|
154
156
|
- features/moving_hooks.feature
|
@@ -158,6 +160,9 @@ files:
|
|
158
160
|
- features/support/steps/hooks_steps.rb
|
159
161
|
- features/support/world.rb
|
160
162
|
- lib/captain_hoog.rb
|
163
|
+
- lib/captain_hoog/config/hook_types.yml
|
164
|
+
- lib/captain_hoog/core_ext.rb
|
165
|
+
- lib/captain_hoog/core_ext/hash.rb
|
161
166
|
- lib/captain_hoog/delegatable.rb
|
162
167
|
- lib/captain_hoog/dependencies.rb
|
163
168
|
- lib/captain_hoog/env.rb
|
@@ -165,20 +170,26 @@ files:
|
|
165
170
|
- lib/captain_hoog/errors/dsl_errors.rb
|
166
171
|
- lib/captain_hoog/git.rb
|
167
172
|
- lib/captain_hoog/helper_table.rb
|
173
|
+
- lib/captain_hoog/hoogfile.rb
|
168
174
|
- lib/captain_hoog/plugin.rb
|
169
175
|
- lib/captain_hoog/plugin_list.rb
|
170
176
|
- lib/captain_hoog/pre_git.rb
|
177
|
+
- lib/captain_hoog/struct/hoog_struct.rb
|
171
178
|
- lib/captain_hoog/templates/hoogfile.erb
|
172
179
|
- lib/captain_hoog/templates/install.erb
|
173
180
|
- lib/captain_hoog/version.rb
|
174
181
|
- spec/fixtures/code/helper.rb
|
182
|
+
- spec/fixtures/config/cucumber/hoogfile.yml
|
183
|
+
- spec/fixtures/config/spec/hoogfile.yml
|
175
184
|
- spec/fixtures/plugins/shared/passing/simple_shared.rb
|
176
185
|
- spec/fixtures/plugins/test_plugins/failing/simple.rb
|
186
|
+
- spec/fixtures/plugins/test_plugins/passing/pure/foo.rb
|
177
187
|
- spec/fixtures/plugins/test_plugins/passing/simple.rb
|
178
188
|
- spec/fixtures/pre-commit-fail
|
179
189
|
- spec/fixtures/pre-commit-pass
|
180
190
|
- spec/lib/captain_hoog/env_spec.rb
|
181
191
|
- spec/lib/captain_hoog/git_spec.rb
|
192
|
+
- spec/lib/captain_hoog/hoogfile_spec.rb
|
182
193
|
- spec/lib/captain_hoog/plugin_list_spec.rb
|
183
194
|
- spec/lib/captain_hoog/plugin_spec.rb
|
184
195
|
- spec/lib/captain_hoog/pre_git_spec.rb
|
@@ -199,7 +210,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
199
210
|
requirements:
|
200
211
|
- - ">="
|
201
212
|
- !ruby/object:Gem::Version
|
202
|
-
version: '0'
|
213
|
+
version: '2.0'
|
203
214
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
204
215
|
requirements:
|
205
216
|
- - ">="
|
@@ -221,13 +232,17 @@ test_files:
|
|
221
232
|
- features/support/steps/hooks_steps.rb
|
222
233
|
- features/support/world.rb
|
223
234
|
- spec/fixtures/code/helper.rb
|
235
|
+
- spec/fixtures/config/cucumber/hoogfile.yml
|
236
|
+
- spec/fixtures/config/spec/hoogfile.yml
|
224
237
|
- spec/fixtures/plugins/shared/passing/simple_shared.rb
|
225
238
|
- spec/fixtures/plugins/test_plugins/failing/simple.rb
|
239
|
+
- spec/fixtures/plugins/test_plugins/passing/pure/foo.rb
|
226
240
|
- spec/fixtures/plugins/test_plugins/passing/simple.rb
|
227
241
|
- spec/fixtures/pre-commit-fail
|
228
242
|
- spec/fixtures/pre-commit-pass
|
229
243
|
- spec/lib/captain_hoog/env_spec.rb
|
230
244
|
- spec/lib/captain_hoog/git_spec.rb
|
245
|
+
- spec/lib/captain_hoog/hoogfile_spec.rb
|
231
246
|
- spec/lib/captain_hoog/plugin_list_spec.rb
|
232
247
|
- spec/lib/captain_hoog/plugin_spec.rb
|
233
248
|
- spec/lib/captain_hoog/pre_git_spec.rb
|