lolcommits 0.10.0 → 0.11.0.pre
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.
- checksums.yaml +4 -4
- data/.travis.yml +2 -1
- data/CHANGELOG.md +9 -1
- data/Rakefile +0 -1
- data/features/bugs.feature +6 -7
- data/features/lolcommits.feature +31 -35
- data/features/step_definitions/lolcommits_steps.rb +15 -15
- data/features/support/env.rb +28 -16
- data/features/support/path_helpers.rb +2 -2
- data/lib/lolcommits/plugin/base.rb +1 -2
- data/lib/lolcommits/version.rb +1 -1
- data/lolcommits.gemspec +4 -9
- metadata +35 -77
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f93509ee36cd5e7fa550f169a19f74e146048df155da1e5db23b6f1b1f13798
|
4
|
+
data.tar.gz: a8eaf4f0807b5ac62472bb4bd61f5ce9329cac784390bd66de1c60b391afdc62
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e20212c54de036f5dc129763369d82aba69f17f2f9154785fe25250f17407820482d68e7a549aea48d17c5bd08f3bdf99d085797b2c0e2a2d0c6d091c19b999c
|
7
|
+
data.tar.gz: c8db18a4f490e11ed5d9394c8baf5b3dfc99ca7049852abca852df966b57da7180df1ec8684197d123377d5695af21cc63dc15ee1a7deb8caa98b6b7ce59a08c
|
data/.travis.yml
CHANGED
@@ -2,11 +2,11 @@ sudo: false
|
|
2
2
|
language: ruby
|
3
3
|
cache: bundler
|
4
4
|
rvm:
|
5
|
-
- 2.0.0
|
6
5
|
- 2.1.10
|
7
6
|
- 2.2.9
|
8
7
|
- 2.3.6
|
9
8
|
- 2.4.3
|
9
|
+
- 2.5.0
|
10
10
|
- ruby-head
|
11
11
|
|
12
12
|
before_install:
|
@@ -15,6 +15,7 @@ before_install:
|
|
15
15
|
- touch ~/bin/mplayer ~/bin/ffmpeg
|
16
16
|
- chmod +x ~/bin/mplayer ~/bin/ffmpeg
|
17
17
|
- export PATH=~/bin:$PATH
|
18
|
+
- gem update --system
|
18
19
|
- git --version
|
19
20
|
|
20
21
|
matrix:
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,12 @@ project adheres to [Semantic Versioning][Semver].
|
|
7
7
|
|
8
8
|
* Your contribution here!
|
9
9
|
|
10
|
+
## [0.11.0][] (4 February 2018)
|
11
|
+
* Require at least Ruby 2.1 (@matthutchinson [#366][])
|
12
|
+
- drop support for Ruby 2.0
|
13
|
+
- update all remaining gem dependencies (incl. Aruba, Cucumber)
|
14
|
+
- remove @unstable tag from features
|
15
|
+
|
10
16
|
## [0.10.0][] (10 January 2018)
|
11
17
|
* Plugin configuration changes (@matthutchinson [#365][])
|
12
18
|
- `--plugins` now shows if plugin is enabled or not
|
@@ -310,7 +316,8 @@ project adheres to [Semantic Versioning][Semver].
|
|
310
316
|
instead of compositing multiply image Caption objects (this seems to be more
|
311
317
|
reliable to not glitch.)
|
312
318
|
|
313
|
-
[Unreleased]: https://github.com/mroth/lolcommits/compare/v0.
|
319
|
+
[Unreleased]: https://github.com/mroth/lolcommits/compare/v0.11.0...HEAD
|
320
|
+
[0.10.0]: https://github.com/mroth/lolcommits/compare/v0.10.0...v0.11.0
|
314
321
|
[0.10.0]: https://github.com/mroth/lolcommits/compare/v0.9.8...v0.10.0
|
315
322
|
[0.9.8]: https://github.com/mroth/lolcommits/compare/v0.9.7...v0.9.8
|
316
323
|
[0.9.7]: https://github.com/mroth/lolcommits/compare/v0.9.6...v0.9.7
|
@@ -495,3 +502,4 @@ project adheres to [Semantic Versioning][Semver].
|
|
495
502
|
[#361]: https://github.com/mroth/lolcommits/pull/361
|
496
503
|
[#363]: https://github.com/mroth/lolcommits/pull/363
|
497
504
|
[#365]: https://github.com/mroth/lolcommits/pull/365
|
505
|
+
[#366]: https://github.com/mroth/lolcommits/pull/366
|
data/Rakefile
CHANGED
@@ -37,7 +37,6 @@ CLEAN << CUKE_RESULTS
|
|
37
37
|
Cucumber::Rake::Task.new(:features) do |t|
|
38
38
|
optstr = "features --format html -o #{CUKE_RESULTS} --format progress -x"
|
39
39
|
optstr << " --tags @#{ENV['tag']}" unless ENV['tag'].nil?
|
40
|
-
optstr << ' --tags ~@unstable' if ENV['tag'].nil? # ignore unstable tests unless specifying something at CLI
|
41
40
|
t.cucumber_opts = optstr
|
42
41
|
t.fork = false
|
43
42
|
end
|
data/features/bugs.feature
CHANGED
@@ -11,20 +11,19 @@ Feature: Bug regression testing
|
|
11
11
|
#
|
12
12
|
Scenario: handle git repos with spaces in directory name
|
13
13
|
Given I am in a git repo named "test lolol" with lolcommits enabled
|
14
|
-
And I
|
14
|
+
And I run `git commit --allow-empty -m 'can haz commit'`
|
15
15
|
Then the output should contain "*** Preserving this moment in history."
|
16
16
|
And a directory named "../.lolcommits/test-lolol" should exist
|
17
17
|
|
18
18
|
#
|
19
19
|
# issue #68, https://github.com/mroth/lolcommits/issues/68
|
20
20
|
#
|
21
|
-
@fake-interactive-rebase @slow_process
|
21
|
+
@fake-interactive-rebase @slow_process
|
22
22
|
Scenario: Don't trigger capture during a git rebase
|
23
23
|
Given I am in a git repo named "yuh8history" with lolcommits enabled
|
24
|
-
And I do
|
25
|
-
When I
|
26
|
-
|
27
|
-
Then there should be exactly 6 jpgs in "../.lolcommits/yuh8history"
|
24
|
+
And I do 3 git commits
|
25
|
+
When I run `git rebase -i HEAD~2`
|
26
|
+
Then there should be exactly 3 jpgs in "~/.lolcommits/yuh8history"
|
28
27
|
|
29
28
|
#
|
30
29
|
# issue #87, https://github.com/mroth/lolcommits/issues/87
|
@@ -43,7 +42,7 @@ Feature: Bug regression testing
|
|
43
42
|
#
|
44
43
|
Scenario: catch upstream bug with ruby-git and color=always
|
45
44
|
Given I am in a git repo named "whatev" with lolcommits enabled
|
46
|
-
And I
|
45
|
+
And I run `git config color.ui always`
|
47
46
|
When I run `lolcommits`
|
48
47
|
Then the output should contain:
|
49
48
|
"""
|
data/features/lolcommits.feature
CHANGED
@@ -22,7 +22,7 @@ Feature: Basic UI functionality
|
|
22
22
|
|
23
23
|
Scenario: Enable in a naked git repo
|
24
24
|
Given I am in a git repo
|
25
|
-
When I
|
25
|
+
When I run `lolcommits --enable`
|
26
26
|
Then the output should contain "installed lolcommit hook to:"
|
27
27
|
And the lolcommits git post-commit hook should be properly installed
|
28
28
|
And the exit status should be 0
|
@@ -30,7 +30,7 @@ Feature: Basic UI functionality
|
|
30
30
|
Scenario: Enable in a git repo that already has a git post-commit hook
|
31
31
|
Given I am in a git repo
|
32
32
|
And a git post-commit hook with "#!/bin/sh\n\n/my/own/script"
|
33
|
-
When I
|
33
|
+
When I run `lolcommits --enable`
|
34
34
|
Then the output should contain "installed lolcommit hook to:"
|
35
35
|
And the lolcommits git post-commit hook should be properly installed
|
36
36
|
And the git post-commit hook should contain "#!/bin/sh"
|
@@ -47,13 +47,13 @@ Feature: Basic UI functionality
|
|
47
47
|
|
48
48
|
Scenario: Enable in a git repo passing capture arguments
|
49
49
|
Given I am in a git repo
|
50
|
-
When I
|
50
|
+
When I run `lolcommits --enable -w 5 --fork --stealth --device 'My Devce'`
|
51
51
|
Then the git post-commit hook should contain "lolcommits --capture --delay 5 --fork --stealth --device 'My Devce'"
|
52
52
|
And the exit status should be 0
|
53
53
|
|
54
54
|
Scenario: Disable in a enabled git repo
|
55
55
|
Given I am in a git repo with lolcommits enabled
|
56
|
-
When I
|
56
|
+
When I run `lolcommits --disable`
|
57
57
|
Then the output should contain "uninstalled"
|
58
58
|
And a file named ".git/hooks/post-commit" should exist
|
59
59
|
And the exit status should be 0
|
@@ -112,17 +112,16 @@ Feature: Basic UI functionality
|
|
112
112
|
And there should be exactly 1 jpg in its loldir
|
113
113
|
|
114
114
|
Scenario: Show plugins
|
115
|
-
When I
|
115
|
+
When I run `lolcommits --plugins`
|
116
116
|
Then the output should contain a list of plugins
|
117
117
|
|
118
118
|
Scenario: Configuring loltext plugin in test mode affects test loldir not repo loldir
|
119
119
|
Given I am in a git repo named "testmode-config-test"
|
120
120
|
When I run `lolcommits --config --test -p loltext` interactively
|
121
|
-
And I wait for output to contain "enabled:"
|
122
121
|
Then I type "false"
|
123
122
|
Then the output should contain "Disabling plugin: loltext - answer with 'true' to enable & configure"
|
124
123
|
And a file named "~/.lolcommits/test/config.yml" should exist
|
125
|
-
When I
|
124
|
+
When I run `lolcommits --test --show-config`
|
126
125
|
Then the output should match /loltext:\s+:enabled: false/
|
127
126
|
|
128
127
|
Scenario: test capture should work regardless of whether in a lolrepo
|
@@ -134,7 +133,7 @@ Feature: Basic UI functionality
|
|
134
133
|
|
135
134
|
Scenario: test capture should store in its own test directory
|
136
135
|
Given I am in a git repo named "randomgitrepo" with lolcommits enabled
|
137
|
-
When I
|
136
|
+
When I run `lolcommits --test --capture`
|
138
137
|
Then a directory named "~/.lolcommits/test" should exist
|
139
138
|
And a directory named "~/.lolcommits/randomgitrepo" should not exist
|
140
139
|
|
@@ -156,9 +155,8 @@ Feature: Basic UI functionality
|
|
156
155
|
"""
|
157
156
|
And the exit status should be 0
|
158
157
|
|
159
|
-
@
|
160
|
-
Scenario: last command should fail gracefully if not in a
|
161
|
-
Given I am in a directory named "gitsuxcvs4eva"
|
158
|
+
@no-repo-dir
|
159
|
+
Scenario: last command should fail gracefully if not in a repo
|
162
160
|
When I run `lolcommits --last`
|
163
161
|
Then the output should contain:
|
164
162
|
"""
|
@@ -166,9 +164,8 @@ Feature: Basic UI functionality
|
|
166
164
|
"""
|
167
165
|
And the exit status should be 1
|
168
166
|
|
169
|
-
@
|
170
|
-
Scenario: Configuring loltext plugin if not in a
|
171
|
-
Given I am in a directory named "gitsuxcvs4eva"
|
167
|
+
@no-repo-dir
|
168
|
+
Scenario: Configuring loltext plugin if not in a repo
|
172
169
|
When I run `lolcommits --config`
|
173
170
|
Then the output should contain:
|
174
171
|
"""
|
@@ -176,6 +173,15 @@ Feature: Basic UI functionality
|
|
176
173
|
"""
|
177
174
|
And the exit status should be 1
|
178
175
|
|
176
|
+
@no-repo-dir
|
177
|
+
Scenario: browse command should fail gracefully when not in a repo
|
178
|
+
When I run `lolcommits --browse`
|
179
|
+
Then the output should contain:
|
180
|
+
"""
|
181
|
+
You don't appear to be in a directory of a supported vcs project.
|
182
|
+
"""
|
183
|
+
And the exit status should be 1
|
184
|
+
|
179
185
|
Scenario: last command should fail gracefully if zero lolimages in lolrepo
|
180
186
|
Given I am in a git repo
|
181
187
|
And its loldir has 0 lolimages
|
@@ -204,26 +210,16 @@ Feature: Basic UI functionality
|
|
204
210
|
"""
|
205
211
|
And the exit status should be 0
|
206
212
|
|
207
|
-
@in-tempdir
|
208
|
-
Scenario: browse command should fail gracefully when not in a lolrepo
|
209
|
-
Given I am in a directory named "gitsuxcvs4eva"
|
210
|
-
When I run `lolcommits --browse`
|
211
|
-
Then the output should contain:
|
212
|
-
"""
|
213
|
-
You don't appear to be in a directory of a supported vcs project.
|
214
|
-
"""
|
215
|
-
And the exit status should be 1
|
216
|
-
|
217
213
|
Scenario: handle git commit messages with quotation marks
|
218
214
|
Given I am in a git repo with lolcommits enabled
|
219
|
-
When I
|
215
|
+
When I run `git commit --allow-empty -m 'no "air quotes" bae'`
|
220
216
|
Then the exit status should be 0
|
221
217
|
And there should be exactly 1 jpg in its loldir
|
222
218
|
|
223
219
|
Scenario: generate gif should store in its own archive directory
|
224
220
|
Given I am in a git repo named "giffy" with lolcommits enabled
|
225
221
|
And a loldir named "giffy" with 2 lolimages
|
226
|
-
When I
|
222
|
+
When I run `lolcommits --timelapse`
|
227
223
|
Then the output should contain "Generating animated gif."
|
228
224
|
And a directory named "~/.lolcommits/giffy/archive" should exist
|
229
225
|
And a file named "~/.lolcommits/giffy/archive/archive.gif" should exist
|
@@ -231,7 +227,7 @@ Feature: Basic UI functionality
|
|
231
227
|
Scenario: generate gif with argument 'today'
|
232
228
|
Given I am in a git repo named "sunday" with lolcommits enabled
|
233
229
|
And a loldir named "sunday" with 2 lolimages
|
234
|
-
When I
|
230
|
+
When I run `lolcommits --timelapse --period today`
|
235
231
|
Then there should be exactly 1 gif in "~/.lolcommits/sunday/archive"
|
236
232
|
|
237
233
|
@mac-only
|
@@ -258,13 +254,13 @@ Feature: Basic UI functionality
|
|
258
254
|
Scenario: Enable on windows platform setting PATH in git post-commit hook
|
259
255
|
Given I am using a "win32" platform
|
260
256
|
And I am in a git repo
|
261
|
-
When I
|
257
|
+
When I run `lolcommits --enable`
|
262
258
|
Then the git post-commit hook should contain "set path"
|
263
259
|
And the exit status should be 0
|
264
260
|
|
265
261
|
Scenario: Enable in a naked mercurial repo
|
266
262
|
Given I am in a mercurial repo
|
267
|
-
When I
|
263
|
+
When I run `lolcommits --enable`
|
268
264
|
Then the output should contain "installed lolcommit hook to:"
|
269
265
|
And the lolcommits mercurial post-commit hook should be properly installed
|
270
266
|
And the exit status should be 0
|
@@ -272,7 +268,7 @@ Feature: Basic UI functionality
|
|
272
268
|
Scenario: Enable in a mercurial repo that already has a mercurial post-commit hook
|
273
269
|
Given I am in a mercurial repo
|
274
270
|
And a mercurial post-commit hook with "[hooks]\npost-commit.mine = /my/own/script"
|
275
|
-
When I
|
271
|
+
When I run `lolcommits --enable`
|
276
272
|
Then the output should contain "installed lolcommit hook to:"
|
277
273
|
And the lolcommits mercurial post-commit hook should be properly installed
|
278
274
|
And the mercurial post-commit hook should contain "post-commit.mine = /my/own/script"
|
@@ -280,13 +276,13 @@ Feature: Basic UI functionality
|
|
280
276
|
|
281
277
|
Scenario: Enable in a mercurial repo passing capture arguments
|
282
278
|
Given I am in a mercurial repo
|
283
|
-
When I
|
279
|
+
When I run `lolcommits --enable -w 5 --fork`
|
284
280
|
Then the mercurial post-commit hook should contain "lolcommits --capture --delay 5 --fork"
|
285
281
|
And the exit status should be 0
|
286
282
|
|
287
283
|
Scenario: Disable in a enabled mercurial repo
|
288
284
|
Given I am in a mercurial repo with lolcommits enabled
|
289
|
-
When I
|
285
|
+
When I run `lolcommits --disable`
|
290
286
|
Then the output should contain "uninstalled"
|
291
287
|
And a file named ".hg/hgrc" should exist
|
292
288
|
And the exit status should be 0
|
@@ -348,8 +344,8 @@ Feature: Basic UI functionality
|
|
348
344
|
|
349
345
|
Scenario: handle mercurial commit messages with quotation marks
|
350
346
|
Given I am in a mercurial repo with lolcommits enabled
|
351
|
-
When I
|
352
|
-
And I
|
353
|
-
And I
|
347
|
+
When I run `touch meh`
|
348
|
+
And I run `hg add meh`
|
349
|
+
And I run `hg commit -m 'no "air quotes" bae'`
|
354
350
|
Then the exit status should be 0
|
355
351
|
And there should be exactly 1 jpg in its loldir
|
@@ -14,7 +14,7 @@ def default_repo
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def default_loldir
|
17
|
-
|
17
|
+
"~/.lolcommits/#{default_repo}"
|
18
18
|
end
|
19
19
|
|
20
20
|
Given(/^I am in a directory named "(.*?)"$/) do |dir_name|
|
@@ -26,7 +26,7 @@ end
|
|
26
26
|
|
27
27
|
Given(/^a git repo named "(.*?)"$/) do |repo_name|
|
28
28
|
steps %(
|
29
|
-
Given I
|
29
|
+
Given I run `git init --quiet "#{repo_name}"`
|
30
30
|
)
|
31
31
|
end
|
32
32
|
|
@@ -46,7 +46,7 @@ end
|
|
46
46
|
Given(/^I am in a git repo named "(.*?)" with lolcommits enabled$/) do |repo|
|
47
47
|
steps %(
|
48
48
|
Given I am in a git repo named "#{repo}"
|
49
|
-
And I
|
49
|
+
And I run `lolcommits --enable`
|
50
50
|
)
|
51
51
|
end
|
52
52
|
|
@@ -79,7 +79,7 @@ end
|
|
79
79
|
|
80
80
|
Given(/^a mercurial repo named "(.*?)"$/) do |repo_name|
|
81
81
|
steps %(
|
82
|
-
Given I
|
82
|
+
Given I run `hg init "#{repo_name}"`
|
83
83
|
)
|
84
84
|
end
|
85
85
|
|
@@ -99,7 +99,7 @@ end
|
|
99
99
|
Given(/^I am in a mercurial repo named "(.*?)" with lolcommits enabled$/) do |repo|
|
100
100
|
steps %(
|
101
101
|
Given I am in a mercurial repo named "#{repo}"
|
102
|
-
And I
|
102
|
+
And I run `lolcommits --enable`
|
103
103
|
)
|
104
104
|
end
|
105
105
|
|
@@ -131,7 +131,7 @@ Then(/^the mercurial post\-commit hook (should|should not) contain "(.*?)"$/) do
|
|
131
131
|
end
|
132
132
|
|
133
133
|
Given(/^I have environment variable (.*?) set to (.*?)$/) do |var, value|
|
134
|
-
|
134
|
+
set_environment_variable var, value
|
135
135
|
end
|
136
136
|
|
137
137
|
Given(/^its loldir has (\d+) lolimages$/) do |num_images|
|
@@ -141,7 +141,7 @@ Given(/^its loldir has (\d+) lolimages$/) do |num_images|
|
|
141
141
|
end
|
142
142
|
|
143
143
|
Given(/^a loldir named "(.*?)" with (\d+) lolimages$/) do |repo, num_images|
|
144
|
-
loldir =
|
144
|
+
loldir = expand_path("~/.lolcommits/#{repo}")
|
145
145
|
FileUtils.mkdir_p loldir
|
146
146
|
num_images.to_i.times do
|
147
147
|
hex = format('%011x', (rand * 0xfffffffffff)).to_s
|
@@ -156,7 +156,7 @@ Then(/^there should be exactly (.*?) (jpg|gif|pid)s? in its loldir$/) do |n, typ
|
|
156
156
|
end
|
157
157
|
|
158
158
|
Then(/^there should be exactly (.*?) (jpg|gif|pid)s? in "(.*?)"$/) do |n, type, folder|
|
159
|
-
expect(Dir[
|
159
|
+
expect(Dir[expand_path("#{folder}/*.#{type}")].count).to eq(n.to_i)
|
160
160
|
end
|
161
161
|
|
162
162
|
Then(/^the output should contain a list of plugins$/) do
|
@@ -168,8 +168,8 @@ When(/^I do a git commit with commit message "(.*?)"$/) do |commit_msg|
|
|
168
168
|
filename = FFaker::Lorem.words(1).first
|
169
169
|
steps %(
|
170
170
|
Given a 98 byte file named "#{filename}"
|
171
|
-
And I
|
172
|
-
And I
|
171
|
+
And I run `git add #{filename}`
|
172
|
+
And I run `git commit -m "#{commit_msg}"`
|
173
173
|
)
|
174
174
|
end
|
175
175
|
|
@@ -180,7 +180,7 @@ end
|
|
180
180
|
When(/^I do (\d+) git commits$/) do |n|
|
181
181
|
n.to_i.times do
|
182
182
|
step %(I do a git commit)
|
183
|
-
sleep 0.
|
183
|
+
sleep 0.2
|
184
184
|
end
|
185
185
|
end
|
186
186
|
|
@@ -193,8 +193,8 @@ When(/^I do a mercurial commit with commit message "(.*?)"$/) do |commit_msg|
|
|
193
193
|
filename = FFaker::Lorem.words(1).first
|
194
194
|
steps %(
|
195
195
|
Given a 98 byte file named "#{filename}"
|
196
|
-
And I
|
197
|
-
And I
|
196
|
+
And I run `hg add #{filename}`
|
197
|
+
And I run `hg commit -m "#{commit_msg}"`
|
198
198
|
)
|
199
199
|
end
|
200
200
|
|
@@ -215,10 +215,10 @@ Then(/^there should be (\d+) commit entries in the mercurial log$/) do |n|
|
|
215
215
|
end
|
216
216
|
|
217
217
|
Given(/^I am using a "(.*?)" platform$/) do |host_os_name|
|
218
|
-
|
218
|
+
set_environment_variable 'LOLCOMMITS_FAKE_HOST_OS', host_os_name
|
219
219
|
end
|
220
220
|
|
221
221
|
When(/^I wait for the child process to exit in "(.*?)"$/) do |repo_name|
|
222
|
-
pid_loc =
|
222
|
+
pid_loc = expand_path("~/.lolcommits/#{repo_name}/lolcommits.pid")
|
223
223
|
sleep 0.1 while File.exist?(pid_loc)
|
224
224
|
end
|
data/features/support/env.rb
CHANGED
@@ -9,33 +9,36 @@ include Lolcommits
|
|
9
9
|
|
10
10
|
World(PathHelpers)
|
11
11
|
|
12
|
-
|
13
|
-
|
12
|
+
Aruba.configure do |config|
|
13
|
+
config.exit_timeout = 20
|
14
|
+
end
|
14
15
|
|
16
|
+
Before do
|
15
17
|
# prevent launchy from opening gifs in tests
|
16
|
-
|
17
|
-
|
18
|
+
set_environment_variable 'LAUNCHY_DRY_RUN', 'true'
|
19
|
+
set_environment_variable 'LOLCOMMITS_CAPTURER', 'Lolcommits::CaptureFake'
|
18
20
|
|
19
21
|
author_name = 'Testy McTesterson'
|
20
22
|
author_email = 'testy@tester.com'
|
21
23
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
24
|
+
set_environment_variable 'GIT_AUTHOR_NAME', author_name
|
25
|
+
set_environment_variable 'GIT_COMMITTER_NAME', author_name
|
26
|
+
set_environment_variable 'GIT_AUTHOR_EMAIL', author_email
|
27
|
+
set_environment_variable 'GIT_COMMITTER_EMAIL', author_email
|
26
28
|
end
|
27
29
|
|
28
30
|
# for tasks that may take an incredibly long time (e.g. network related)
|
29
31
|
# we should strive to not have any of these in our scenarios, naturally.
|
30
32
|
Before('@slow_process') do
|
31
|
-
|
32
|
-
|
33
|
+
Aruba.configure do |config|
|
34
|
+
config.exit_timeout = 60
|
35
|
+
end
|
33
36
|
end
|
34
37
|
|
35
38
|
# in order to fake an interactive rebase, we replace the editor with a script
|
36
39
|
# to simply squash a few random commits. in this case, using lines 3-5.
|
37
40
|
Before('@fake-interactive-rebase') do
|
38
|
-
|
41
|
+
set_environment_variable 'GIT_EDITOR', "sed -i -e '3,5 s/pick/squash/g'"
|
39
42
|
end
|
40
43
|
|
41
44
|
# adjust the path so tests dont see a global imagemagick install
|
@@ -48,11 +51,20 @@ Before('@fake-no-ffmpeg') do
|
|
48
51
|
reject_paths_with_cmd('ffmpeg')
|
49
52
|
end
|
50
53
|
|
51
|
-
# do test in
|
52
|
-
|
53
|
-
|
54
|
+
# do test in a new temp directory (outside our own git repo-ness)
|
55
|
+
# due to https://github.com/cucumber/aruba/issues/478 aruba no longer allows
|
56
|
+
# wandering out of `tmp/aruba` so this pop/restore is necessary
|
57
|
+
Before('@no-repo-dir') do
|
58
|
+
@original_root = aruba.root_directory.pop
|
59
|
+
@original_dir = aruba.current_directory.pop
|
60
|
+
@working_dir = Dir.mktmpdir
|
61
|
+
aruba.current_directory << @working_dir
|
54
62
|
end
|
55
63
|
|
56
|
-
After('@
|
57
|
-
|
64
|
+
After('@no-repo-dir') do
|
65
|
+
aruba.current_directory.pop
|
66
|
+
aruba.root_directory << @original_root
|
67
|
+
aruba.current_directory << @original_dir
|
68
|
+
|
69
|
+
FileUtils.rm_rf(@working_dir)
|
58
70
|
end
|
@@ -5,7 +5,7 @@ require 'lolcommits/platform'
|
|
5
5
|
module PathHelpers
|
6
6
|
def reject_paths_with_cmd(cmd)
|
7
7
|
# make a new subdir that still contains cmds
|
8
|
-
tmpbindir =
|
8
|
+
tmpbindir = expand_path('./bin')
|
9
9
|
FileUtils.mkdir_p tmpbindir
|
10
10
|
|
11
11
|
preseve_cmds_in_path(%w(git mplayer), tmpbindir)
|
@@ -24,7 +24,7 @@ module PathHelpers
|
|
24
24
|
newpaths << tmpbindir
|
25
25
|
|
26
26
|
# use aruba/api set_environment_variable to set PATH, which will be automaticaly restored
|
27
|
-
|
27
|
+
set_environment_variable 'PATH', newpaths.join(File::PATH_SEPARATOR)
|
28
28
|
end
|
29
29
|
|
30
30
|
def preseve_cmds_in_path(cmds, tmpbindir)
|
data/lib/lolcommits/version.rb
CHANGED
data/lolcommits.gemspec
CHANGED
@@ -44,21 +44,14 @@ POSTINSTALL
|
|
44
44
|
s.require_paths = ['lib']
|
45
45
|
|
46
46
|
# non-gem dependencies
|
47
|
-
s.required_ruby_version = '>= 2.
|
47
|
+
s.required_ruby_version = '>= 2.1'
|
48
48
|
s.requirements << 'imagemagick'
|
49
49
|
s.requirements << 'a webcam'
|
50
50
|
|
51
|
-
# hold back upgrading (and why)
|
52
|
-
s.add_development_dependency('aruba', '=0.6.2') # upgrading requires a lot of test code changes
|
53
|
-
s.add_development_dependency('rake', '=10.5.0') # ~> 11+ introduces lots of warnings from other deps
|
54
|
-
s.add_development_dependency('cucumber', '~> 2.4.0') # > 2.4 breaks aruba, since aruba_timeout_seconds not set
|
55
|
-
s.add_runtime_dependency('net-http-persistent', '=2.9.4') # ~> 3+ requires Ruby 2.1
|
56
|
-
s.add_runtime_dependency('public_suffix', '~>2.0.0') # ~> 3+ requires Ruby 2.1
|
57
|
-
|
58
51
|
# core
|
59
52
|
s.add_runtime_dependency('methadone', '~> 1.9.5')
|
60
53
|
s.add_runtime_dependency('mercurial-ruby', '~> 0.7.12')
|
61
|
-
s.add_runtime_dependency('mini_magick', '~> 4.
|
54
|
+
s.add_runtime_dependency('mini_magick', '~> 4.8.0')
|
62
55
|
s.add_runtime_dependency('launchy', '~> 2.4.3')
|
63
56
|
s.add_runtime_dependency('open4', '~> 1.3.4')
|
64
57
|
s.add_runtime_dependency('git', '~> 1.3.0')
|
@@ -67,6 +60,8 @@ POSTINSTALL
|
|
67
60
|
s.add_runtime_dependency('lolcommits-loltext', '~> 0.0.5')
|
68
61
|
|
69
62
|
# development & test gems
|
63
|
+
s.add_development_dependency('aruba')
|
64
|
+
s.add_development_dependency('rake')
|
70
65
|
s.add_development_dependency('rdoc')
|
71
66
|
s.add_development_dependency('pry')
|
72
67
|
s.add_development_dependency('rubocop')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lolcommits
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Rothenberg
|
@@ -9,78 +9,8 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-02-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
-
- !ruby/object:Gem::Dependency
|
15
|
-
name: aruba
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
requirements:
|
18
|
-
- - '='
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: 0.6.2
|
21
|
-
type: :development
|
22
|
-
prerelease: false
|
23
|
-
version_requirements: !ruby/object:Gem::Requirement
|
24
|
-
requirements:
|
25
|
-
- - '='
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
version: 0.6.2
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: rake
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - '='
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: 10.5.0
|
35
|
-
type: :development
|
36
|
-
prerelease: false
|
37
|
-
version_requirements: !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - '='
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: 10.5.0
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: cucumber
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
45
|
-
requirements:
|
46
|
-
- - "~>"
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: 2.4.0
|
49
|
-
type: :development
|
50
|
-
prerelease: false
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - "~>"
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: 2.4.0
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: net-http-persistent
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - '='
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: 2.9.4
|
63
|
-
type: :runtime
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - '='
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 2.9.4
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: public_suffix
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - "~>"
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: 2.0.0
|
77
|
-
type: :runtime
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - "~>"
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: 2.0.0
|
84
14
|
- !ruby/object:Gem::Dependency
|
85
15
|
name: methadone
|
86
16
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,14 +45,14 @@ dependencies:
|
|
115
45
|
requirements:
|
116
46
|
- - "~>"
|
117
47
|
- !ruby/object:Gem::Version
|
118
|
-
version: 4.
|
48
|
+
version: 4.8.0
|
119
49
|
type: :runtime
|
120
50
|
prerelease: false
|
121
51
|
version_requirements: !ruby/object:Gem::Requirement
|
122
52
|
requirements:
|
123
53
|
- - "~>"
|
124
54
|
- !ruby/object:Gem::Version
|
125
|
-
version: 4.
|
55
|
+
version: 4.8.0
|
126
56
|
- !ruby/object:Gem::Dependency
|
127
57
|
name: launchy
|
128
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -179,6 +109,34 @@ dependencies:
|
|
179
109
|
- - "~>"
|
180
110
|
- !ruby/object:Gem::Version
|
181
111
|
version: 0.0.5
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: aruba
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: rake
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
182
140
|
- !ruby/object:Gem::Dependency
|
183
141
|
name: rdoc
|
184
142
|
requirement: !ruby/object:Gem::Requirement
|
@@ -372,12 +330,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
372
330
|
requirements:
|
373
331
|
- - ">="
|
374
332
|
- !ruby/object:Gem::Version
|
375
|
-
version: '2.
|
333
|
+
version: '2.1'
|
376
334
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
377
335
|
requirements:
|
378
|
-
- - "
|
336
|
+
- - ">"
|
379
337
|
- !ruby/object:Gem::Version
|
380
|
-
version:
|
338
|
+
version: 1.3.1
|
381
339
|
requirements:
|
382
340
|
- imagemagick
|
383
341
|
- a webcam
|