lolcommits 0.4.3 → 0.4.4pre1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +1 -0
- data/bin/lolcommits +33 -0
- data/features/lolcommits.feature +14 -0
- data/features/plugins.feature +1 -1
- data/features/step_definitions/lolcommits_steps.rb +5 -5
- data/features/support/env.rb +1 -1
- data/lib/lolcommits.rb +1 -0
- data/lib/lolcommits/configuration.rb +19 -3
- data/lib/lolcommits/version.rb +1 -1
- metadata +7 -10
data/CHANGELOG
CHANGED
data/bin/lolcommits
CHANGED
@@ -170,6 +170,31 @@ def do_last
|
|
170
170
|
Launchy.open lolimage
|
171
171
|
end
|
172
172
|
|
173
|
+
def do_gif
|
174
|
+
die_if_not_git_repo!
|
175
|
+
|
176
|
+
case Choice.choices[:gif]
|
177
|
+
when "today"
|
178
|
+
lolimages = configuration.images_today
|
179
|
+
filename = "#{Date.today.to_s}.gif"
|
180
|
+
else
|
181
|
+
lolimages = configuration.images
|
182
|
+
filename = "archive.gif"
|
183
|
+
end
|
184
|
+
|
185
|
+
if lolimages.empty?
|
186
|
+
warn "No lolcommits have been captured for this time yet."
|
187
|
+
exit 1
|
188
|
+
end
|
189
|
+
|
190
|
+
puts "*** Generating animated gif."
|
191
|
+
|
192
|
+
gif = MiniMagick::Image.new File.join configuration.archivedir, filename
|
193
|
+
gif.run_command("convert", "-delay 50 -loop 0 #{lolimages.join(' ')} #{gif.path}")
|
194
|
+
|
195
|
+
puts "*** #{gif.path} generated."
|
196
|
+
end
|
197
|
+
|
173
198
|
#
|
174
199
|
# Command line parsing fun
|
175
200
|
#
|
@@ -272,6 +297,12 @@ Choice.options do
|
|
272
297
|
desc "pass font file location"
|
273
298
|
end
|
274
299
|
|
300
|
+
option :gif do
|
301
|
+
long "--gif"
|
302
|
+
short "-g"
|
303
|
+
desc "generate animated gif"
|
304
|
+
end
|
305
|
+
|
275
306
|
end
|
276
307
|
|
277
308
|
# Set debug level if needed
|
@@ -303,6 +334,8 @@ if not (Choice.choices[:enable] || Choice.choices[:disable])
|
|
303
334
|
elsif Choice.choices[:browse]
|
304
335
|
die_if_not_git_repo!
|
305
336
|
Launchy.open configuration.loldir
|
337
|
+
elsif Choice.choices[:gif]
|
338
|
+
do_gif()
|
306
339
|
else
|
307
340
|
do_noargs()
|
308
341
|
end
|
data/features/lolcommits.feature
CHANGED
@@ -145,3 +145,17 @@ Feature: Basic UI functionality
|
|
145
145
|
When I successfully run `git commit --allow-empty -m 'i hate \"air quotes\" dont you'`
|
146
146
|
Then the exit status should be 0
|
147
147
|
And there should be exactly 1 jpg in "../.lolcommits/shellz"
|
148
|
+
|
149
|
+
Scenario: generate gif should store in its own archive directory
|
150
|
+
Given I am in a git repository named "randomgitrepo" with lolcommits enabled
|
151
|
+
And a loldir named "randomgitrepo" with 2 lolimages
|
152
|
+
When I successfully run `lolcommits -g`
|
153
|
+
Then the output should contain "Generating animated gif."
|
154
|
+
And a directory named "../.lolcommits/randomgitrepo/archive" should exist
|
155
|
+
And a file named "../.lolcommits/randomgitrepo/archive/archive.gif" should exist
|
156
|
+
|
157
|
+
Scenario: generate gif with argument 'today'
|
158
|
+
Given I am in a git repository named "randomgitrepo" with lolcommits enabled
|
159
|
+
And a loldir named "randomgitrepo" with 2 lolimages
|
160
|
+
When I successfully run `lolcommits -g today`
|
161
|
+
And there should be exactly 1 gif in "../.lolcommits/randomgitrepo/archive"
|
data/features/plugins.feature
CHANGED
@@ -11,9 +11,9 @@ Given /^a git repository named "(.*?)"$/ do |repo_name|
|
|
11
11
|
repo_dir = File.join current_dir, repo_name
|
12
12
|
mkdir_p repo_dir
|
13
13
|
Dir.chdir repo_dir do
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
system "git init --quiet ."
|
15
|
+
system "git config user.name 'Testy McTesterson'"
|
16
|
+
system "git config user.email 'testy@tester.com'"
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -64,8 +64,8 @@ When /^I enter "(.*?)" for "(.*?)"$/ do |input, field|
|
|
64
64
|
@stdin.puts input
|
65
65
|
end
|
66
66
|
|
67
|
-
Then /^there should be (?:exactly|only) (.*?) jpg(?:s?) in "(.*?)"$/ do |n, folder|
|
68
|
-
assert_equal n.to_i, Dir["#{current_dir}/#{folder}
|
67
|
+
Then /^there should be (?:exactly|only) (.*?) (jpg|gif)(?:s?) in "(.*?)"$/ do |n, type, folder|
|
68
|
+
assert_equal n.to_i, Dir["#{current_dir}/#{folder}/*.#{type}"].count
|
69
69
|
end
|
70
70
|
|
71
71
|
Then /^the output should contain a list of plugins$/ do
|
data/features/support/env.rb
CHANGED
data/lib/lolcommits.rb
CHANGED
@@ -45,6 +45,14 @@ module Lolcommits
|
|
45
45
|
@loldir = Configuration.loldir_for(basename)
|
46
46
|
end
|
47
47
|
|
48
|
+
def archivedir
|
49
|
+
dir = File.join(loldir, 'archive')
|
50
|
+
if not File.directory? dir
|
51
|
+
FileUtils.mkdir_p dir
|
52
|
+
end
|
53
|
+
dir
|
54
|
+
end
|
55
|
+
|
48
56
|
def self.loldir_for(basename)
|
49
57
|
loldir = File.join(LOLBASEDIR, basename)
|
50
58
|
|
@@ -55,7 +63,15 @@ module Lolcommits
|
|
55
63
|
end
|
56
64
|
|
57
65
|
def most_recent
|
58
|
-
Dir.glob(File.join self.loldir, "
|
66
|
+
Dir.glob(File.join self.loldir, "*.jpg").max_by {|f| File.mtime(f)}
|
67
|
+
end
|
68
|
+
|
69
|
+
def images
|
70
|
+
Dir.glob(File.join self.loldir, "*.jpg").sort_by {|f| File.mtime(f)}
|
71
|
+
end
|
72
|
+
|
73
|
+
def images_today
|
74
|
+
images.select { |f| Date.parse(File.mtime(f).to_s) === Date.today }
|
59
75
|
end
|
60
76
|
|
61
77
|
def raw_image
|
@@ -105,9 +121,9 @@ module Lolcommits
|
|
105
121
|
|
106
122
|
config = self.user_configuration || Hash.new
|
107
123
|
config[plugin] = options
|
108
|
-
File.open(self.user_configuration_file, 'w') do |f|
|
124
|
+
File.open(self.user_configuration_file, 'w') do |f|
|
109
125
|
f.write(config.to_yaml)
|
110
|
-
end
|
126
|
+
end
|
111
127
|
|
112
128
|
puts "#{config.to_yaml}\n"
|
113
129
|
puts "Successfully Configured"
|
data/lib/lolcommits/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lolcommits
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
5
|
-
prerelease:
|
4
|
+
version: 0.4.4pre1
|
5
|
+
prerelease: 5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Matthew Rothenberg
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-05-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mini_magick
|
@@ -367,19 +367,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
367
367
|
version: '0'
|
368
368
|
segments:
|
369
369
|
- 0
|
370
|
-
hash:
|
370
|
+
hash: 2684250378401808879
|
371
371
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
372
372
|
none: false
|
373
373
|
requirements:
|
374
|
-
- - ! '
|
374
|
+
- - ! '>'
|
375
375
|
- !ruby/object:Gem::Version
|
376
|
-
version:
|
377
|
-
segments:
|
378
|
-
- 0
|
379
|
-
hash: -4097628544408723624
|
376
|
+
version: 1.3.1
|
380
377
|
requirements: []
|
381
378
|
rubyforge_project: lolcommits
|
382
|
-
rubygems_version: 1.8.
|
379
|
+
rubygems_version: 1.8.23
|
383
380
|
signing_key:
|
384
381
|
specification_version: 3
|
385
382
|
summary: Capture webcam image on git commit for lulz.
|