lolcommits 0.6.5 → 0.6.6.pre1

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 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