penchant 0.2.13 → 0.2.14
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/README.md +10 -0
- data/bin/penchant +1 -3
- data/features/cli.feature +0 -2
- data/features/ruby_gemfile.feature +16 -0
- data/features/step_definitions/given/i_expect_git_hooks_to_be_installed.rb +3 -0
- data/lib/penchant/gemfile.rb +4 -0
- data/lib/penchant/hooks.rb +8 -0
- data/lib/penchant/version.rb +1 -1
- metadata +6 -4
data/README.md
CHANGED
@@ -29,6 +29,9 @@ Yeah, it's a `Gemfile` with some extras:
|
|
29
29
|
# Gemfile.penchant
|
30
30
|
source :rubygems
|
31
31
|
|
32
|
+
# ensure git hooks are installed when a gemfile is processed, see below
|
33
|
+
ensure_git_hooks!
|
34
|
+
|
32
35
|
gem 'rails', '3.2.3'
|
33
36
|
# expands to:
|
34
37
|
#
|
@@ -173,6 +176,13 @@ It runs `penchant gemfile remote` then runs `bundle exec rake`. Make sure your d
|
|
173
176
|
tests and performs any other magic necessary before each commit. Your re-environmented Gemfile and Gemfile.lock will be added
|
174
177
|
to your commit if they've changed.
|
175
178
|
|
179
|
+
### Ensuring git hooks get installed
|
180
|
+
|
181
|
+
I find that when I pull down new projects I never remember to install the git hooks, which involves an awkward running
|
182
|
+
of `bundle exec rake` *after* I've already committed code. Since we have computers now, and they can be told to do things,
|
183
|
+
you can add `ensure_git_hooks!` anywhere in your `Gemfile.penchant` to make sure the git hooks are symlinked to the ones
|
184
|
+
in the `script/hooks` directory with every processing of `Gemfile.penchant`.
|
185
|
+
|
176
186
|
### Skipping all that Rake falderal?
|
177
187
|
|
178
188
|
Do it Travis CI style: stick `[ci skip]` in your commit message. That's why the meat of the git hooks resides in
|
data/bin/penchant
CHANGED
@@ -19,9 +19,7 @@ class PenchantCLI < Thor
|
|
19
19
|
Dir[File.join(options[:dir], '**/*')].each { |file| File.chmod(0755, file) }
|
20
20
|
|
21
21
|
if File.directory?('.git')
|
22
|
-
|
23
|
-
FileUtils.ln_sf File.join(Dir.pwd, hook), ".git/hooks/#{File.split(hook).last}"
|
24
|
-
end
|
22
|
+
Penchant::Hooks.install!
|
25
23
|
else
|
26
24
|
puts "No git repository detected here. Skipping git hook installation..."
|
27
25
|
end
|
data/features/cli.feature
CHANGED
@@ -28,7 +28,6 @@ Feature: CLI
|
|
28
28
|
"""
|
29
29
|
And the output should include "No git"
|
30
30
|
|
31
|
-
@wip
|
32
31
|
Scenario: Run in a project where the git hooks are not set up
|
33
32
|
Given I have the file "tmp/Gemfile.penchant" with the content:
|
34
33
|
"""
|
@@ -41,7 +40,6 @@ Feature: CLI
|
|
41
40
|
When I run "bin/penchant gemfile remote" in the "tmp" directory
|
42
41
|
Then the output should include "git hooks not installed"
|
43
42
|
|
44
|
-
@wip
|
45
43
|
Scenario: Run in a project where git hooks are set up
|
46
44
|
Given I have the file "tmp/Gemfile.penchant" with the content:
|
47
45
|
"""
|
@@ -278,3 +278,19 @@ Feature: Gemfiles
|
|
278
278
|
gem "one", {:git=>"git://github.com/john/one.git"}
|
279
279
|
"""
|
280
280
|
|
281
|
+
@mocha
|
282
|
+
Scenario: Force installing of git hooks if the gemfile asks for it
|
283
|
+
Given I expect git hooks to be installed
|
284
|
+
Given I have the file "Gemfile.penchant" with the content:
|
285
|
+
"""
|
286
|
+
ensure_git_hooks!
|
287
|
+
|
288
|
+
gem 'one'
|
289
|
+
"""
|
290
|
+
When I rebuild the Gemfile for "local" mode
|
291
|
+
Then the file "Gemfile" should have the following content:
|
292
|
+
"""
|
293
|
+
# generated by penchant, environment: local
|
294
|
+
gem "one"
|
295
|
+
"""
|
296
|
+
|
data/lib/penchant/gemfile.rb
CHANGED
data/lib/penchant/hooks.rb
CHANGED
@@ -16,6 +16,14 @@ module Penchant
|
|
16
16
|
true
|
17
17
|
end
|
18
18
|
end
|
19
|
+
|
20
|
+
def self.install!
|
21
|
+
puts "[penchant] installing git hooks"
|
22
|
+
|
23
|
+
Dir['script/hooks/*'].each do |hook|
|
24
|
+
FileUtils.ln_sf File.join(Dir.pwd, hook), ".git/hooks/#{File.split(hook).last}"
|
25
|
+
end
|
26
|
+
end
|
19
27
|
end
|
20
28
|
end
|
21
29
|
|
data/lib/penchant/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: penchant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.14
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -143,6 +143,7 @@ files:
|
|
143
143
|
- features/gemfile.feature
|
144
144
|
- features/ruby_gemfile.feature
|
145
145
|
- features/step_definitions/given/i_am_on_the_linux_platform.rb
|
146
|
+
- features/step_definitions/given/i_expect_git_hooks_to_be_installed.rb
|
146
147
|
- features/step_definitions/given/i_have_the_file_with_content.rb
|
147
148
|
- features/step_definitions/given/i_have_the_symlink_git_hooks_pre_commit_which_points_to_script_hooks_pre_commit.rb
|
148
149
|
- features/step_definitions/then/i_should_get_the_following_environments.rb
|
@@ -196,7 +197,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
196
197
|
version: '0'
|
197
198
|
segments:
|
198
199
|
- 0
|
199
|
-
hash:
|
200
|
+
hash: -4027868368802670317
|
200
201
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
201
202
|
none: false
|
202
203
|
requirements:
|
@@ -205,7 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
205
206
|
version: '0'
|
206
207
|
segments:
|
207
208
|
- 0
|
208
|
-
hash:
|
209
|
+
hash: -4027868368802670317
|
209
210
|
requirements: []
|
210
211
|
rubyforge_project: penchant
|
211
212
|
rubygems_version: 1.8.23
|
@@ -218,6 +219,7 @@ test_files:
|
|
218
219
|
- features/gemfile.feature
|
219
220
|
- features/ruby_gemfile.feature
|
220
221
|
- features/step_definitions/given/i_am_on_the_linux_platform.rb
|
222
|
+
- features/step_definitions/given/i_expect_git_hooks_to_be_installed.rb
|
221
223
|
- features/step_definitions/given/i_have_the_file_with_content.rb
|
222
224
|
- features/step_definitions/given/i_have_the_symlink_git_hooks_pre_commit_which_points_to_script_hooks_pre_commit.rb
|
223
225
|
- features/step_definitions/then/i_should_get_the_following_environments.rb
|