lolcommits 0.6.5 → 0.6.6.pre1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NDZhY2Q5NDc0OTVjMzA5ZDE4MmFkNzc3OTc4YTBkM2UxNGQzOTcyNQ==
4
+ MDQ3ZGMxZDc3YWU4YWZiNGEwNWI1MmUzN2QyMmMwZGUwMDQwNTFmNg==
5
5
  data.tar.gz: !binary |-
6
- M2EwYjliMDA0ZmFmYThhOWVhNDUyMjlkMGMyZTA0ODAzNDE0ZTk5Ng==
6
+ Y2RjNWI5YjgyYTVkN2Q2ZGZjMThjOGE5ZDVhNTYwMzI5MzJhYzE3Mg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NmYzMmU0YjJjYjlmNTk4ODFlNDM0MDVkZDlhOWQzODI3ZTE0ZGM4ZTg4NjY1
10
- ZDBhODFlNWU0NDUyODA0Y2FjNTM5YzVkNzk5MDNlNzI0ODlmMTgwYjE5Njc5
11
- ZWU2NjY0MmM0MTc5NzcwZjhkODU0ZDAyODFkMmM3ODU4YTcyY2M=
9
+ YTBmMjI4MWUxMWY1MDVkMTM3ZjExMzkwYjQ5NGFhNzI2NzlhOWQ3MmI3NjVl
10
+ NWE4ZTY3YzMwZDgzYjUzYzZiMmQ1MTFkNDE1OTBmZjMzZTdhYWE0NThkMWYz
11
+ YzRkOWRjMzViZjU5M2FiZjI3MTI0MWEyZjZjZjllMWFkZjhiYjI=
12
12
  data.tar.gz: !binary |-
13
- YmQzZGVjYWE3YWU5ZjViOWZhNTZlYTFiOGMwNTE3OTA5MWEzMzFmZTFjYjc0
14
- ODliNTdjOGVkNzJhMWFhODlhZTczZjk4NTdjNTQ3NDI1MTUxODMxYmZiNDI2
15
- Njc1MThhMmVlZDBkYmI2NThjNDJiYjFmMTBjNDZkMWY0ZWUwYjE=
13
+ NmE5ZDY2YTA0YTkwZjFiZGFjNTllYjQxNjhlY2FiNzNiNmRhODgwMDY3Yjlk
14
+ ZDc1ZTVkZGNhNzM5ZDQ2NmJiYTM5M2I1MTE4YTAwNDVlOGY0YTc2MTMxNjk0
15
+ NDc4ODdjZjkyM2EwZmI0ZTE3Y2NhNWFkZTQ4ZDZiNjU4M2UwZGY=
data/.rubocop_todo.yml CHANGED
@@ -12,7 +12,7 @@ Metrics/AbcSize:
12
12
  # Offense count: 2
13
13
  # Configuration parameters: CountComments.
14
14
  Metrics/ClassLength:
15
- Max: 127
15
+ Max: 150
16
16
 
17
17
  # Offense count: 5
18
18
  Metrics/CyclomaticComplexity:
data/CHANGELOG.md CHANGED
@@ -1,39 +1,49 @@
1
- ### Version History
1
+ ### Lolcommits Change Log
2
2
 
3
- 0.7.0 (WIP)
4
- * extract plugins to separate gems ...
3
+ All notable changes to this project will be documented in this file. This
4
+ project adheres to [Semantic Versioning][Semver].
5
5
 
6
- 0.6.5 (12 April 2016)
6
+ ## [Unreleased]
7
+
8
+ * WIP - extract plugins to separate gems ...
9
+ * Your contribution here!
10
+
11
+ ## [0.6.6][] (1 June 2016)
12
+ * Show error/exit when --config outside a git repo (@matthutchinson #308)
13
+ * Add more options to loltext plugin (@ruxton #304)
14
+ * Added CODE_OF_CONDUCT.md to repo (@matthutchinson)
15
+
16
+ ## [0.6.5][] (12 April 2016)
7
17
  * Add mercurial support (@tak #301 #302 #303)
8
18
 
9
- 0.6.4 (15 March 2016)
19
+ ## [0.6.4][] (15 March 2016)
10
20
  * Add quotes to correctly handle paths with spaces (@matthutchinson #298)
11
21
 
12
- 0.6.3 (14 March 2016)
22
+ ## [0.6.3][] (14 March 2016)
13
23
  * Add quotes to correctly handle paths with spaces (@pedrocunha #296)
14
24
  * Added plugin config path to output (@KrauseFx #294)
15
25
 
16
- 0.6.2 (21 February 2016)
26
+ ## [0.6.2][] (21 February 2016)
17
27
  * Avoid invoking ruby if in a rebase (@jhawthorn #286)
18
28
  * Slow gif problem on mac (@a06kin #289)
19
29
  * Peg RuboCop gem to 0.37.2 and fix cop issues (@matthutchinson #292)
20
30
 
21
- 0.6.1 (16 September 2015)
31
+ ## [0.6.1][] (16 September 2015)
22
32
  * Optional http auth header user/password in uploldz plugin (@felixroos #283)
23
33
  * Slack plugin added (@yasakbulut #284)
24
34
  * Updated rubies in Travis settings (@matthutchinson)
25
35
  * Fixed README badge URLS (@matthutchinson)
26
36
 
27
- 0.6.0 (27 July 2015)
37
+ ## [0.6.0][] (27 July 2015)
28
38
  * Configurable text options for loltext plugin (@matthutchinson #282)
29
39
  * Working AppVeyor configuration added (@nysthee #280)
30
40
  * Tumblr plugin (@mveytsman #279)
31
41
  * CHANGELOG (this file) now in markdown format (@matthutchinson)
32
42
 
33
- 0.5.9 (24 April 2015)
43
+ ## [0.5.9][] (24 April 2015)
34
44
  * Fix windows post commit hook path (@matthutchinson #278)
35
45
 
36
- 0.5.8 (22 April 2015)
46
+ ## [0.5.8][] (22 April 2015)
37
47
  * Fix Windows MiniMagick issue (@matthutchinson #276)
38
48
  * Rubocop code clean ups (@nysthee #272)
39
49
  * Fix gem issues on earlier Ruby versions (#270)
@@ -44,14 +54,14 @@
44
54
  * lol_protonet plugin added (@salzig #251)
45
55
  * Allow local plugins in $LOLCOMMITS_DIR/.plugins (@salzig #250)
46
56
 
47
- 0.5.7 (28 December 2014)
57
+ ## [0.5.7][] (28 December 2014)
48
58
  * Uploldz plugin sends more post params (@clops #224 @matthutchinson #241)
49
59
  * More configurable twitter plugin (@woodrowbarlow #207 @matthutchinson)
50
60
  * Upgrade all gems that can be, 4 held back (#244 @matthutchinson)
51
61
  * Ruby 2.2.0 compatible (#244 @matthutchinson)
52
62
  * Glob /dev/video for default video device (linux only) (#246 @Ferada)
53
63
 
54
- 0.5.6 (24 November 2014)
64
+ ## [0.5.6][] (24 November 2014)
55
65
  * Updates and clean ups on the gemspec (@mroth #228)
56
66
  * Travis CI now includes ruby-head (@mroth #229)
57
67
  * Improved error message for ImageMagick issues #159 (@matthutchinson #233)
@@ -62,7 +72,7 @@
62
72
  * Better failover when no snapshot created (@matthutchinson #237)
63
73
  * Export LANG to post-commit hook, fixes GitHub client (@matthutchinson #240)
64
74
 
65
- 0.5.5 (29 September 2014)
75
+ ## [0.5.5][] (29 September 2014)
66
76
  * Animated gif capture support (@theY4Kman #226)
67
77
  * Fix plugin config issues with user input (@matthutchinson #225 #223)
68
78
  * Fix Linux FPS timing issues (@matthutchinson #215)
@@ -72,14 +82,14 @@
72
82
  * Explain global Git hooks how-to in README (@matthutchinson #212 #112)
73
83
  * Minor improvments to Linux Capturer (@matthutchinson)
74
84
 
75
- 0.5.4 (13 April 2014)
85
+ ## [0.5.4][] (13 April 2014)
76
86
  * Excluded vendor/bundle from rubocop cops (@matthutchinson)
77
87
  * Peg fivemat gem to ~> 1.2.1 (@mroth)
78
88
  * Fix lolsrv log file issue (@matthutchinson #202)
79
89
  * Yammer Plugin added (@mrclmvn #160)
80
90
  * Refactor on capture options (@mroth)
81
91
 
82
- 0.5.3 (30 March 2014)
92
+ ## [0.5.3][] (30 March 2014)
83
93
  * Fixed permissions on CommandCam (755) for cygwin (@matthutchinson)
84
94
  * Added `--devices` option, mac only for now (@matthutchinson #183, #174)
85
95
  * Replace http with https in twitter plugin (@kleinschmidt #195)
@@ -90,7 +100,7 @@
90
100
  * Added --version (-v) flag (@bfontaine #184)
91
101
  * Send more VCS details to lolsrv (@drewwells #181)
92
102
 
93
- 0.5.2 (5 December 2013)
103
+ ## [0.5.2][] (5 December 2013)
94
104
  * Allow lolsrv plugin to sync/upload gifs (@matthutchinson #180)
95
105
  * Plugins refactor, can now configure themselves (@matthutchinson #179)
96
106
  - also closes issue #136 and issue #73
@@ -103,14 +113,14 @@
103
113
  * Improved --enable option, accepts passing arguments (@matthutchinson #154)
104
114
  - README updated to explain enabling with options
105
115
 
106
- 0.5.1 (13 November 2013)
116
+ ## [0.5.1][] (13 November 2013)
107
117
  * Fix JSON gem issue #163 (@matthutchinson, #171)
108
118
  * Enable image capture under Cygwin (@cwc, #105)
109
119
  * Add Ruby PATH to post-commit hook (@matthutchinson, #155)
110
120
  * "Stealth mode" where no notification is given (@sionide21, #156)
111
121
  * BUGFIX: comparison error for animate (@Yabes, #151)
112
122
 
113
- 0.5.0 (10 September 2013)
123
+ ## [0.5.0][] (10 September 2013)
114
124
  * better handling of LOLCOMMITS_DELAY (thx @leewillis77, #125)
115
125
  * LOLCOMMITS_DEVICE support on Linux (thx @EbenezerEdelman, #139)
116
126
  * better handling of repository names (thx @drocamor and @andromedado, #145 and #146)
@@ -120,27 +130,27 @@
120
130
  - feature requires ffmpeg
121
131
  - README updated with details and an example
122
132
 
123
- 0.4.6 (12 August 2013)
133
+ ## 0.4.6 (12 August 2013)
124
134
  * Fix for incorrect permissioning in gem issue (see #112)
125
135
 
126
- 0.4.5 (8 July 2013)
136
+ ## 0.4.5 (8 July 2013)
127
137
  * disable&remove statsd plugin (as per #94)
128
138
  * fix issues with animated gif generation (#107)
129
139
  * added new LOLCOMMITS_FORK (or --fork) option to fork the runner capturing (#109)
130
140
 
131
- 0.4.4 (28 June 2013)
141
+ ## 0.4.4 (28 June 2013)
132
142
  * add -g option to produce animated gifs! (thx @hSATAC, #95)
133
143
 
134
- 0.4.3 (29 March 2013)
144
+ ## 0.4.3 (29 March 2013)
135
145
  * bump mini_magick dependency to deal with security alert
136
146
 
137
- 0.4.2 (11 March 2013)
147
+ ## 0.4.2 (11 March 2013)
138
148
  * fix ruby 2.0 compatibility (#91)
139
149
  * gracefully detect upstream issue with git color.ui being set to always (#50)
140
150
  * handle external capture devices with special characters in name (#93)
141
151
  * fixes to the uploldz plugin (#92)
142
152
 
143
- 0.4.1 (17 February 2013)
153
+ ## 0.4.1 (17 February 2013)
144
154
  * add lolsrv plugin (thx @sebastianmarr!, #82)
145
155
  * enable feature to change font (thx @fukayatsu!, #89)
146
156
  * correct activesupport gem name in bundle (thx @djbender!, #90)
@@ -148,7 +158,7 @@
148
158
  * restructure logging slightly to use Methadone::CLILogging in most places
149
159
  * add a bunch of debugging output, viewable via --debug flag
150
160
 
151
- 0.4.0 (13 January 2013)
161
+ ## 0.4.0 (13 January 2013)
152
162
  * Switch the main ImageMagick wrapper from RMagick to mini_magick
153
163
  - fix for RMagick not working with ImageMagick 6.8+ and generally
154
164
  being a buggy unmaintained piece of crap
@@ -158,40 +168,40 @@
158
168
  * make sure quotes are properly handled in commit messages
159
169
  * silence warnings generated by twitter gem in MRI 1.8.7
160
170
 
161
- 0.3.4 (27 December 2012)
171
+ ## 0.3.4 (27 December 2012)
162
172
  * Add uploldz plugin for posting to a remote server (thx @cnvandev)
163
173
 
164
- 0.3.3 (26 November 2012)
174
+ ## 0.3.3 (26 November 2012)
165
175
  * BUG: prevent repeated firing of lolcommits capture during a git rebase.
166
176
 
167
- 0.3.2 (3 October 2012)
177
+ ## 0.3.2 (3 October 2012)
168
178
  * Twitter posting support via the `twitter` plugin! (thx @coyboyrushforth!)
169
179
 
170
- 0.3.1 (5 August 2012)
180
+ ## 0.3.1 (5 August 2012)
171
181
  * fix regression with linux capture introduced in previous version
172
182
 
173
- 0.3.0 (3 August 2012)
183
+ ## 0.3.0 (3 August 2012)
174
184
  * fix bug involving git repositories with spaces in the name
175
185
  * internal refactoring for modularity (thanks @kenmazaika!), should be easier
176
186
  to add new plugin features to lolcommits now.
177
187
  * add some extremely basic anonymous usage tracking (if this bugs you, you
178
188
  can disable via disabling the `statsd` plugin).
179
189
 
180
- 0.2.0 (6 July 2012)
190
+ ## 0.2.0 (6 July 2012)
181
191
  * improved build system and testing with cucumber/methadone
182
192
  - goal is to get into a better framework to start doing major feature work
183
193
  - this should lead to increased reliability across systems as we refactor
184
194
  * writing tests (please help!)
185
195
  * fix issues with packaged files not being readable after a sudo gem install
186
196
 
187
- 0.1.5 (25 June 2012)
197
+ ## 0.1.5 (25 June 2012)
188
198
  * fix tranzlate on ruby1.8
189
199
 
190
- 0.1.4 (28 May 2012)
200
+ ## 0.1.4 (28 May 2012)
191
201
  * set device on mac via --device (or LOLCOMMITS_DEVICE env variable) --
192
202
  thanks @pioz (pull #51)
193
203
 
194
- 0.1.3 (18 May 2012)
204
+ ## 0.1.3 (18 May 2012)
195
205
  * add LGPLv3 license
196
206
  * add option to translate your commit message to lolspeak! (thx
197
207
  to @DanielleSucher!). To enable, set `LOLCOMMITS_TRANZLATE=1`.
@@ -199,30 +209,50 @@
199
209
  * fix issue with git repos with no hooks directory (pull #43 via @mkmaster)
200
210
  * fix missing dash in capture -c
201
211
 
202
- 0.1.2 (22 April 2012)
212
+ ## 0.1.2 (22 April 2012)
203
213
  * provide licensing info for CommandCam (Windows)
204
214
  * bundle imagesnap as well to remove a dependency on Mac OS X
205
215
 
206
- 0.1.1 (21 April 2012)
216
+ ## 0.1.1 (21 April 2012)
207
217
  * Windows compatibility! Thanks to @Prydonious.
208
218
 
209
- 0.1.0 (19 April 2012)
219
+ ## 0.1.0 (19 April 2012)
210
220
  * Linux compatibility! Thanks to @madjar, @cscorely, and @Prydonius.
211
221
 
212
- 0.0.3 (16 April 2012)
222
+ ## 0.0.3 (16 April 2012)
213
223
  * use only first line for multi-line commit msgs (pull req #21)
214
224
  * clean up some command line options
215
225
 
216
- 0.0.2 (2 April 2012)
226
+ ## 0.0.2 (2 April 2012)
217
227
  * add --delay option to delay image capture (thx JohanB), can be
218
228
  persistently set via LOLCOMMITS_DELAY environment variable.
219
229
  * add --last command to view most recent lolcommit for a repo
220
230
  * add --browse command to open the lolcommit images directory for a particular repo
221
231
 
222
- 0.0.1 (29 March 2012)
232
+ ## 0.0.1 (29 March 2012)
223
233
  * initial release as a gem package, major refactoring for this
224
234
  * refactored to remove git-hooks package dependency, now installs stub hook
225
235
  directly into each git repo
226
236
  * wordwrap commit_msg manually, to switch to use imagemagick annotate
227
237
  instead of compositing multiply image Caption objects (this seems to be more
228
238
  reliable to not glitch.)
239
+
240
+ [Unreleased]: https://github.com/mroth/lolcommits/compare/v0.6.6...HEAD
241
+ [0.6.6]: https://github.com/mroth/lolcommits/compare/v0.6.5...v0.6.6
242
+ [0.6.5]: https://github.com/mroth/lolcommits/compare/v0.6.4...v0.6.5
243
+ [0.6.4]: https://github.com/mroth/lolcommits/compare/v0.6.3...v0.6.4
244
+ [0.6.3]: https://github.com/mroth/lolcommits/compare/v0.6.2...v0.6.3
245
+ [0.6.2]: https://github.com/mroth/lolcommits/compare/v0.6.1...v0.6.2
246
+ [0.6.1]: https://github.com/mroth/lolcommits/compare/v0.6.0...v0.6.1
247
+ [0.6.0]: https://github.com/mroth/lolcommits/compare/v0.5.9...v0.6.0
248
+ [0.5.9]: https://github.com/mroth/lolcommits/compare/v0.5.8...v0.5.9
249
+ [0.5.8]: https://github.com/mroth/lolcommits/compare/v0.5.7...v0.5.8
250
+ [0.5.7]: https://github.com/mroth/lolcommits/compare/v0.5.6...v0.5.7
251
+ [0.5.6]: https://github.com/mroth/lolcommits/compare/v0.5.5...v0.5.6
252
+ [0.5.5]: https://github.com/mroth/lolcommits/compare/v0.5.4...v0.5.5
253
+ [0.5.4]: https://github.com/mroth/lolcommits/compare/v0.5.3...v0.5.4
254
+ [0.5.3]: https://github.com/mroth/lolcommits/compare/v0.5.2...v0.5.3
255
+ [0.5.2]: https://github.com/mroth/lolcommits/compare/v0.5.1...v0.5.2
256
+ [0.5.1]: https://github.com/mroth/lolcommits/compare/v0.5.0...v0.5.1
257
+ [0.5.0]: https://github.com/mroth/lolcommits/compare/v0.4.9...v0.5.0
258
+ [Semver]: http://semver.org
@@ -0,0 +1,50 @@
1
+ # Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project, and in the interest of
4
+ fostering an open and welcoming community, we pledge to respect all people who
5
+ contribute through reporting issues, posting feature requests, updating
6
+ documentation, submitting pull requests or patches, and other activities.
7
+
8
+ We are committed to making participation in this project a harassment-free
9
+ experience for everyone, regardless of level of experience, gender, gender
10
+ identity and expression, sexual orientation, disability, personal appearance,
11
+ body size, race, ethnicity, age, religion, or nationality.
12
+
13
+ Examples of unacceptable behavior by participants include:
14
+
15
+ * The use of sexualized language or imagery
16
+ * Personal attacks
17
+ * Trolling or insulting/derogatory comments
18
+ * Public or private harassment
19
+ * Publishing other's private information, such as physical or electronic
20
+ addresses, without explicit permission
21
+ * Other unethical or unprofessional conduct
22
+
23
+ Project maintainers have the right and responsibility to remove, edit, or
24
+ reject comments, commits, code, wiki edits, issues, and other contributions
25
+ that are not aligned to this Code of Conduct, or to ban temporarily or
26
+ permanently any contributor for other behaviors that they deem inappropriate,
27
+ threatening, offensive, or harmful.
28
+
29
+ By adopting this Code of Conduct, project maintainers commit themselves to
30
+ fairly and consistently applying these principles to every aspect of managing
31
+ this project. Project maintainers who do not follow or enforce the Code of
32
+ Conduct may be permanently removed from the project team.
33
+
34
+ This code of conduct applies both within project spaces and in public spaces
35
+ when an individual is representing the project or its community.
36
+
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
38
+ reported by contacting a project maintainer via [GitHub][maintainer]. All
39
+ complaints will be reviewed and investigated and will result in a response that
40
+ is deemed necessary and appropriate to the circumstances. Maintainers are
41
+ obligated to maintain confidentiality with regard to the reporter of an
42
+ incident.
43
+
44
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
45
+ version 1.3.0, available at
46
+ [http://contributor-covenant.org/version/1/3/0/][version]
47
+
48
+ [maintainer]: https://github.com/matthutchinson
49
+ [homepage]: http://contributor-covenant.org
50
+ [version]: http://contributor-covenant.org/version/1/3/0/
data/bin/console ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'lolcommits'
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # start irb
10
+ require 'irb'
11
+ IRB.start
data/bin/lolcommits CHANGED
@@ -108,6 +108,7 @@ def do_capture
108
108
  end
109
109
 
110
110
  def do_configure
111
+ Fatals.die_if_not_vcs_repo!
111
112
  $stdout.sync = true
112
113
  configuration.do_configure! Choice.choices[:plugin]
113
114
  end
@@ -121,22 +121,32 @@ Feature: Basic UI functionality
121
121
  Then I type "loltext"
122
122
  And I wait for output to contain "enabled:"
123
123
  Then I type "true"
124
+ And I wait for output to contain "message:"
124
125
  And I wait for output to contain "color"
125
126
  Then I type "red"
126
127
  And I wait for output to contain "font"
127
128
  Then I type "my-font.ttf"
128
129
  And I wait for output to contain "position"
129
- Then I type "SouthEast"
130
+ Then I type "SE"
130
131
  And I wait for output to contain "size"
131
132
  Then I type "32"
132
133
  And I wait for output to contain "stroke color"
133
134
  Then I type "white"
134
- And I wait for output to contain "sha text"
135
+ And I wait for output to contain "uppercase"
136
+ Then I type "true"
137
+ And I wait for output to contain "sha"
138
+ Then I type ""
135
139
  Then I type ""
136
140
  Then I type ""
137
141
  Then I type ""
138
142
  Then I type ""
139
143
  Then I type ""
144
+ And I wait for output to contain "overlay:"
145
+ Then I type "true"
146
+ And I wait for output to contain "overlay colors"
147
+ Then I type "#2884ae,#7e231f"
148
+ And I wait for output to contain "overlay percent"
149
+ Then I type "40"
140
150
  Then the output should contain "Successfully configured plugin: loltext"
141
151
  And the output should contain a list of plugins
142
152
  And a file named "~/.lolcommits/config-test/config.yml" should exist
@@ -144,9 +154,13 @@ Feature: Basic UI functionality
144
154
  Then the output should match /enabled: true/
145
155
  And the output should match /:font: my-font\.ttf/
146
156
  And the output should match /:size: 32/
147
- And the output should match /:position: SouthEast/
157
+ And the output should match /:position: S/
148
158
  And the output should match /:color: red/
149
159
  And the output should match /:stroke_color: white/
160
+ And the output should match /:uppercase: true/
161
+ And the output should match /:overlay:.*\n.*:enabled: true/
162
+ And the output should match /:overlay_colors:.*\n.*['"]#2884ae['"].*\n.*['"]#7e231f['"].*\n/
163
+ And the output should match /:overlay_percent: 40/
150
164
 
151
165
  Scenario: Configuring loltext plugin in test mode affects test loldir not repo loldir
152
166
  Given I am in a git repo named "testmode-config-test"
@@ -185,7 +199,7 @@ Feature: Basic UI functionality
185
199
  When I run `lolcommits --last`
186
200
  Then the output should not contain:
187
201
  """
188
- Unknown VCS
202
+ You don't appear to be in a directory of a supported vcs project.
189
203
  """
190
204
  And the exit status should be 0
191
205
 
@@ -195,7 +209,17 @@ Feature: Basic UI functionality
195
209
  When I run `lolcommits --last`
196
210
  Then the output should contain:
197
211
  """
198
- Unknown VCS
212
+ You don't appear to be in a directory of a supported vcs project.
213
+ """
214
+ And the exit status should be 1
215
+
216
+ @in-tempdir
217
+ Scenario: Configuring loltext plugin if not in a lolrepo
218
+ Given I am in a directory named "gitsuxcvs4eva"
219
+ When I run `lolcommits --config`
220
+ Then the output should contain:
221
+ """
222
+ You don't appear to be in a directory of a supported vcs project.
199
223
  """
200
224
  And the exit status should be 1
201
225
 
@@ -223,7 +247,7 @@ Feature: Basic UI functionality
223
247
  When I run `lolcommits --browse`
224
248
  Then the output should not contain:
225
249
  """
226
- Unknown VCS
250
+ You don't appear to be in a directory of a supported vcs project.
227
251
  """
228
252
  And the exit status should be 0
229
253
 
@@ -233,7 +257,7 @@ Feature: Basic UI functionality
233
257
  When I run `lolcommits --browse`
234
258
  Then the output should contain:
235
259
  """
236
- Unknown VCS
260
+ You don't appear to be in a directory of a supported vcs project.
237
261
  """
238
262
  And the exit status should be 1
239
263
 
@@ -347,7 +371,7 @@ Feature: Basic UI functionality
347
371
  When I run `lolcommits --last`
348
372
  Then the output should not contain:
349
373
  """
350
- Unknown VCS
374
+ You don't appear to be in a directory of a supported vcs project.
351
375
  """
352
376
  And the exit status should be 0
353
377
 
@@ -365,7 +389,7 @@ Feature: Basic UI functionality
365
389
  When I run `lolcommits --browse`
366
390
  Then the output should not contain:
367
391
  """
368
- Unknown VCS
392
+ You don't appear to be in a directory of a supported vcs project.
369
393
  """
370
394
  And the exit status should be 0
371
395
 
@@ -73,7 +73,7 @@ module Lolcommits
73
73
  current = parent
74
74
  parent = File.dirname(current)
75
75
  end
76
- fatal 'Unknown VCS'
76
+ fatal "You don't appear to be in a directory of a supported vcs project."
77
77
  exit 1
78
78
  end
79
79
  end
@@ -15,6 +15,13 @@ module Lolcommits
15
15
  def run_postcapture
16
16
  debug 'Annotating image via MiniMagick'
17
17
  image = MiniMagick::Image.open(runner.main_image)
18
+ if config_option(:overlay, :enabled)
19
+ image.combine_options do |c|
20
+ c.fill config_option(:overlay, :overlay_colors).sample
21
+ c.colorize config_option(:overlay, :overlay_percent)
22
+ end
23
+ end
24
+
18
25
  annotate(image, :message, clean_msg(runner.message))
19
26
  annotate(image, :sha, runner.sha)
20
27
  debug "Writing changed file to #{runner.main_image}"
@@ -22,17 +29,25 @@ module Lolcommits
22
29
  end
23
30
 
24
31
  def annotate(image, type, string)
25
- debug("annotating #{type} text to image")
32
+ debug("annotating #{type} to image with #{string}")
33
+
34
+ transformed_position = position_transform(config_option(type, :position))
35
+ annotate_location = '0'
36
+ if transformed_position == 'South'
37
+ annotate_location = '+0+20' # Move South gravity off the edge of the image.
38
+ end
39
+
40
+ string.upcase! if config_option(type, :uppercase)
26
41
 
27
42
  image.combine_options do |c|
28
- c.strokewidth '2'
29
- c.interline_spacing '-9'
43
+ c.strokewidth runner.animate? ? '1' : '2'
44
+ c.interline_spacing(-(config_option(type, :size) / 5))
30
45
  c.stroke config_option(type, :stroke_color)
31
46
  c.fill config_option(type, :color)
32
- c.gravity position_transform(config_option(type, :position))
33
- c.pointsize runner.animate? ? 24 : config_option(type, :size)
47
+ c.gravity transformed_position
48
+ c.pointsize runner.animate? ? (config_option(type, :size) / 2) : config_option(type, :size)
34
49
  c.font config_option(type, :font)
35
- c.annotate '0', string
50
+ c.annotate annotate_location, string
36
51
  end
37
52
  end
38
53
 
@@ -40,17 +55,22 @@ module Lolcommits
40
55
  options = super
41
56
  # ask user to configure text options when enabling
42
57
  if options['enabled']
43
- puts '------------------------------------------------------'
44
- puts ' Text options '
45
- puts
46
- puts ' * blank options use the (default)'
47
- puts ' * use full absolute path to fonts'
48
- puts ' * valid positions are NE, NW, SE, SW, C (centered)'
58
+ puts '---------------------------------------------------------------'
59
+ puts ' LolText options '
60
+ puts ''
61
+ puts ' * any blank options will use the (default)'
62
+ puts ' * always use the full absolute path to fonts'
63
+ puts ' * valid text positions are NE, NW, SE, SW, S, C (centered)'
49
64
  puts ' * colors can be hex #FC0 value or a string \'white\''
50
- puts '------------------------------------------------------'
65
+ puts ' - use `none` for no stroke color'
66
+ puts ' * overlay fills your image with a random color'
67
+ puts ' - set one or more overlay_colors with a comma seperator'
68
+ puts ' - overlay_percent (0-100) sets the fill colorize strength'
69
+ puts '---------------------------------------------------------------'
51
70
 
52
71
  options[:message] = configure_sub_options(:message)
53
72
  options[:sha] = configure_sub_options(:sha)
73
+ options[:overlay] = configure_sub_options(:overlay)
54
74
  end
55
75
  options
56
76
  end
@@ -58,32 +78,52 @@ module Lolcommits
58
78
  # TODO: consider this type of configuration prompting in the base Plugin
59
79
  # class, working with hash of defaults
60
80
  def configure_sub_options(type)
61
- print "#{type} text:\n"
81
+ print "#{type}:\n"
62
82
  defaults = config_defaults[type]
63
83
 
64
84
  # sort option keys since different `Hash#keys` varys across Ruby versions
65
85
  defaults.keys.sort_by(&:to_s).reduce({}) do |acc, opt|
66
- print " #{opt.to_s.tr('_', ' ')} (#{defaults[opt]}): "
67
- val = parse_user_input(STDIN.gets.strip)
68
- acc.merge(opt => val)
86
+ # if we have an enabled key set to false, abort asking for any more options
87
+ if acc.key?(:enabled) && acc[:enabled] != true
88
+ acc
89
+ else
90
+ print " #{opt.to_s.tr('_', ' ')} (#{defaults[opt]}): "
91
+ val = parse_user_input(STDIN.gets.chomp.strip)
92
+ # handle array options (comma seperated string)
93
+ if defaults[opt].is_a?(Array) && !val.nil?
94
+ val = val.split(',').map(&:strip).delete_if(&:empty?)
95
+ end
96
+ acc.merge(opt => val)
97
+ end
69
98
  end
70
99
  end
71
100
 
72
101
  def config_defaults
73
102
  {
74
103
  :message => {
104
+ :color => 'white',
75
105
  :font => DEFAULT_FONT_PATH,
76
- :size => 48,
77
106
  :position => 'SW',
78
- :color => 'white',
79
- :stroke_color => 'black'
107
+ :size => 48,
108
+ :stroke_color => 'black',
109
+ :uppercase => false
80
110
  },
81
111
  :sha => {
112
+ :color => 'white',
82
113
  :font => DEFAULT_FONT_PATH,
83
- :size => 32,
84
114
  :position => 'NE',
85
- :color => 'white',
86
- :stroke_color => 'black'
115
+ :size => 32,
116
+ :stroke_color => 'black',
117
+ :uppercase => false
118
+ },
119
+ :overlay => {
120
+ :enabled => false,
121
+ :overlay_colors => [
122
+ '#2e4970', '#674685', '#ca242f', '#1e7882', '#2884ae', '#4ba000',
123
+ '#187296', '#7e231f', '#017d9f', '#e52d7b', '#0f5eaa', '#e40087',
124
+ '#5566ac', '#ed8833', '#f8991c', '#408c93', '#ba9109'
125
+ ],
126
+ :overlay_percent => 50
87
127
  }
88
128
  }
89
129
  end
@@ -112,6 +152,8 @@ module Lolcommits
112
152
  'SouthWest'
113
153
  when 'C'
114
154
  'Center'
155
+ when 'S'
156
+ 'South'
115
157
  end
116
158
  end
117
159
 
@@ -21,7 +21,7 @@ module Lolcommits
21
21
  def run_postcapture
22
22
  return unless valid_configuration?
23
23
 
24
- if runner.vcs_info.repo.empty?
24
+ if !runner.vcs_info || runner.vcs_info.repo.empty?
25
25
  puts 'Repo is empty, skipping upload'
26
26
  else
27
27
  debug "Posting capture to #{configuration['endpoint']}"
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module Lolcommits
3
- VERSION = '0.6.5'.freeze
3
+ VERSION = '0.6.6.pre1'.freeze
4
4
  end
data/lolcommits.gemspec CHANGED
@@ -1,11 +1,12 @@
1
1
  # -*- encoding: utf-8 -*-
2
- $LOAD_PATH.push File.expand_path('../lib', __FILE__)
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
4
  require 'lolcommits/version'
4
5
 
5
6
  Gem::Specification.new do |s|
6
7
  s.name = 'lolcommits'
7
8
  s.version = Lolcommits::VERSION
8
- s.authors = ['Matthew Rothenberg', 'Matt Hutchinson']
9
+ s.authors = ['Matthew Rothenberg', 'Matthew Hutchinson']
9
10
  s.email = ['mrothenberg@gmail.com', 'matt@hiddenloop.com']
10
11
  s.homepage = 'http://mroth.github.com/lolcommits/'
11
12
  s.license = 'LGPL-3'
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.6.5
4
+ version: 0.6.6.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Rothenberg
8
- - Matt Hutchinson
8
+ - Matthew Hutchinson
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-04-12 00:00:00.000000000 Z
12
+ date: 2016-06-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
@@ -410,6 +410,7 @@ email:
410
410
  - mrothenberg@gmail.com
411
411
  - matt@hiddenloop.com
412
412
  executables:
413
+ - console
413
414
  - lolcommits
414
415
  extensions: []
415
416
  extra_rdoc_files: []
@@ -422,12 +423,14 @@ files:
422
423
  - .rubocop_todo.yml
423
424
  - .travis.yml
424
425
  - CHANGELOG.md
426
+ - CODE_OF_CONDUCT.md
425
427
  - CONTRIBUTING.md
426
428
  - Gemfile
427
429
  - LICENSE
428
430
  - README.md
429
431
  - Rakefile
430
432
  - appveyor.yml
433
+ - bin/console
431
434
  - bin/lolcommits
432
435
  - config/cucumber.yml
433
436
  - features/bugs.feature
@@ -501,9 +504,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
501
504
  version: 1.8.7
502
505
  required_rubygems_version: !ruby/object:Gem::Requirement
503
506
  requirements:
504
- - - ! '>='
507
+ - - ! '>'
505
508
  - !ruby/object:Gem::Version
506
- version: '0'
509
+ version: 1.3.1
507
510
  requirements:
508
511
  - imagemagick
509
512
  - a webcam