Imported Upstream version 0.32~dfsg
Jonas Smedegaard
8 years ago
0 | Revision history for Code-TidyAll | |
1 | ||
2 | ** denotes an incompatible change | |
3 | ||
4 | 0.20 May 18, 2014 | |
5 | ||
6 | * Fixes | |
7 | - Fix option handling implentation and documentation for Test::Code::TidyAll::tidyall_ok - https://github.com/jonswar/perl-code-tidyall/issues/18 (Olad Alders) | |
8 | ||
9 | 0.19 Mar 6, 2014 | |
10 | ||
11 | * Plugins | |
12 | - Add JSON plugin (Gregory Oschwald) | |
13 | ||
14 | 0.18 Sep 21, 2013 | |
15 | ||
16 | * Fixes | |
17 | - Fix Test::Code::TidyAll::tidyall_ok - https://github.com/jonswar/perl-code-tidyall/issues/12 (Adam Taylor) | |
18 | - Fix JSBeautify plugin as js-beautify no longer respects --replace | |
19 | ||
20 | 0.17 Mar 11, 2013 | |
21 | ||
22 | * Improvements | |
23 | - ** Rename API method process_files to more accurate process_paths | |
24 | ||
25 | * Fixes | |
26 | - Fix recursive processing of directories (Mark Risman) | |
27 | - Improve git precommit setup script - https://github.com/jonswar/perl-code-tidyall/pull/10 (Olaf Anders) | |
28 | ||
29 | 0.16 Oct 22, 2012 | |
30 | ||
31 | * Plugins | |
32 | - Add phpcs plugin (Joseph Crotty) | |
33 | - Add cssunminifier plugin | |
34 | - Add SortLines plugin, for one-entry-per-line files like .gitignore | |
35 | ||
36 | 0.15 Oct 11, 2012 | |
37 | ||
38 | * Fixes | |
39 | - Fix test_dirs test to not rely on file ordering | |
40 | ||
41 | 0.14 Oct 10, 2012 | |
42 | ||
43 | * Improvements | |
44 | - Allow a plugin to be listed multiple times in config with different configuration | |
45 | - Specify order that plugins run (tidiers before validators, then alpha) and document | |
46 | that they are applied atomically | |
47 | - Add etc/editors/tidyall.vim for Vim (Justin Devuyst) | |
48 | - Add -r/--recursive flag to process directories recursively | |
49 | - In -p/--pipe mode, mirror input to output in case of error (Justin Devuyst) | |
50 | - Fix -l/--list handling of local files | |
51 | - Add --version option | |
52 | - Make git prereceive hook more modular, so it can be combined with other checks | |
53 | ||
54 | 0.13 Sep 30, 2012 | |
55 | ||
56 | * Fixes | |
57 | - Adjust MasonTidy plugin for new API | |
58 | - Remove Util.t containing only author-only tests | |
59 | ||
60 | 0.12 Sep 27, 2012 | |
61 | ||
62 | * Plugins | |
63 | - Add podspell plugin (POD spell checker) | |
64 | ||
65 | * Improvements | |
66 | - Add --iterations flag to run tidier transforms multiple times | |
67 | - Allow .tidyallrc as alternative to tidyall.ini | |
68 | - Allow git prereceive hook to be bypassed by pushing an identical set of commits | |
0 | 0.32 2015-11-19 | |
1 | ||
2 | - When in verbose mode we now show what plugins are being applied to each | |
3 | file. This is helpful if you want to know why a file isn't being ignored, | |
4 | for example. | |
5 | ||
6 | - Added a new plugin configuration option for the rc file, "weight". You can | |
7 | use this to exercise greater control over the order that plugins run in. | |
8 | ||
9 | ||
10 | 0.31 2015-11-17 | |
11 | ||
12 | - Added a new plugin, DiffOnTidyError. This plugin will call "diff -u" to | |
13 | compare the original file content to the tidy version. | |
14 | ||
15 | ||
16 | 0.30 2015-09-14 | |
17 | ||
18 | - Added a --no-cleanup option for the tidyall script that causes it to leave | |
19 | any tempdirs it creates behind. Implemented by Mark Fowler. GitHub #41. | |
20 | ||
21 | ||
22 | 0.29 2015-08-15 | |
23 | ||
24 | - Replaced use of Digest::SHA1 with Digest::SHA. The latter module has been | |
25 | part of the Perl core since 5.10. Implemented by Sergey Romanov. GitHub #39. | |
26 | ||
27 | ||
28 | 0.28 2015-08-06 | |
29 | ||
30 | - The JSON plugin now uses JSON::MaybeXS instead of JSON.pm. Patch by Greg | |
31 | Oschwald. GitHub #37. | |
32 | ||
33 | - Added a new plugin, PerlTidySweet, which uses perltidy-sweet instead of | |
34 | perltidy. Implemented by Mark Grimes. GitHub #26. | |
35 | ||
36 | ||
37 | 0.27 2015-07-04 | |
38 | ||
39 | [BUG FIXES] | |
40 | ||
41 | - Fixed broken POD. Most modules were missing their NAME sections because of a | |
42 | mistake in the distro's weaver.ini file. Reported by Красимир Беров. | |
43 | ||
44 | ||
45 | 0.26 2015-06-29 | |
46 | ||
47 | [BUG FIXES] | |
48 | ||
49 | - The tidyall script did not handle the -I option correctly. It was treated as | |
50 | a boolean rather than a string, meaning it basically ignored whatever you | |
51 | passed. Fixed by Andy Jack. GH #35. | |
52 | ||
53 | - The PodChecker plugin no longer generates warnings about an undef variable | |
54 | if the file did not have any Pod. | |
55 | ||
56 | - Added an option for the tidyall config file, shebang. This is an additional | |
57 | filter that selects files based on the shebang line | |
58 | (#!/bin/foo). Implemented by timgimyee. GH #25. | |
59 | ||
60 | ||
61 | 0.25 2015-03-31 | |
62 | ||
63 | [ENHANCEMENTS] | |
64 | ||
65 | - You can now pass "verbose => 1" to tidyall_ok(). Previously this would have | |
66 | been overridden because we unconditionally set "quiet => 1", but now we only | |
67 | do this when verbose is not specified. | |
68 | ||
69 | - Added a new "msg_outputter" attribute to Code::TidyAll. By default, this is | |
70 | a sub that simply calls "printf", but you can pass something else to change | |
71 | how messages are printed. Test::Code::TidyAll uses this to send messages | |
72 | through diag(). | |
73 | ||
74 | - If you set "verbose => 1" when calling Test::Code::TidyAll, it will now use | |
75 | Text::Diff::Table to show details of how a file needs to be tidied in order | |
76 | to pass the tidyall checks. | |
77 | ||
78 | - Made the PerlCritic plugin pass even if a critic module issues some | |
79 | warnings. As long as perlcritic says "source OK", we want to treat that as a | |
80 | pass, despite any warnings it may issue. Fixed by Mark Fowler. | |
81 | ||
82 | - Made the caching model pluggable, and added a new | |
83 | Code::TidyAll::CacheModel::Shared class as an alternative to the default | |
84 | model. This lets you share the cache directory between multiple branches in | |
85 | a single checkout while still detecting file changes properly. Implemented | |
86 | by Mark Fowler. | |
87 | ||
88 | ||
89 | 0.24 2014-11-06 | |
90 | ||
91 | [WARNING FOR A FUTURE RELEASE] | |
92 | ||
93 | - At some point in the future, it will probably be necessary for Code::TidyAll | |
94 | to become aware of encodings on a per-file basis. As it stands right now, | |
95 | any tidying plugin which reformats text could, in theory, end up splitting | |
96 | up a UTF-8 character's bytes across at a line break. | |
97 | ||
98 | [BUG FIXES] | |
99 | ||
100 | - Replaced the use of Capture::Tiny with IPC::Run3 for some plugins. The | |
101 | former seems to sometimes return character data where we want bytes, even if | |
102 | the STDOUT and STDERR handles are binmode()'d to the ":bytes" encoding. This | |
103 | prevents warnings about writing wide characters from the JSBeautify plugin. | |
104 | ||
105 | ||
106 | 0.23 2014-11-06 | |
107 | ||
108 | - Fix test failures seen on CPANTesters. | |
109 | ||
110 | ||
111 | 0.22 2014-11-05 | |
112 | ||
113 | [BUG FIXES] | |
114 | ||
115 | * Removed the compile test added in the last release. Many plugin modules | |
116 | won't compile unless optional prereqs are manually installed first (such as | |
117 | Perl::Critic, Perl::Tidy, etc.). | |
118 | ||
119 | ||
120 | 0.21 2014-11-05 | |
121 | ||
122 | [ENHANCEMENTS] | |
123 | ||
124 | * Test::Code::TidyAll now sets "quiet => 1" when creating the Code::TidyAll | |
125 | object to suppress noise from any plugins. | |
126 | ||
127 | * Test::Code::TidyAll now calls Test::More::diag() after test failures instead | |
128 | of before. | |
129 | ||
130 | [BUG FIXES] | |
131 | ||
132 | * Lots of little doc tweaks and fixes. | |
133 | ||
134 | ||
135 | 0.20 2014-05-18 | |
136 | ||
137 | [BUG FIXES] | |
138 | ||
139 | * Fix option handling implentation and documentation for | |
140 | Test::Code::TidyAll::tidyall_ok - | |
141 | https://github.com/jonswar/perl-code-tidyall/issues/18 (Olad Alders) | |
142 | ||
143 | ||
144 | 0.19 2014-03-06 | |
145 | ||
146 | [ENHANCEMENTS] | |
147 | ||
148 | * Added a JSON plugin (Gregory Oschwald) | |
149 | ||
150 | ||
151 | 0.18 2013-09-21 | |
152 | ||
153 | [BUG FIXES] | |
154 | ||
155 | * Fix Test::Code::TidyAll::tidyall_ok - | |
156 | https://github.com/jonswar/perl-code-tidyall/issues/12 (Adam Taylor) | |
157 | ||
158 | * Fix JSBeautify plugin as js-beautify no longer respects --replace | |
159 | ||
160 | ||
161 | 0.17 2013-03-11 | |
162 | ||
163 | [BACKWARDS INCOMPATIBILITIES] | |
164 | ||
165 | * Rename API method process_files to more accurate process_paths | |
166 | ||
167 | [BUG FIXES] | |
168 | ||
169 | * Fix recursive processing of directories (Mark Risman) | |
170 | ||
171 | * Improve git precommit setup script - | |
172 | https://github.com/jonswar/perl-code-tidyall/pull/10 (Olaf Anders) | |
173 | ||
174 | ||
175 | 0.16 2012-10-22 | |
176 | ||
177 | [ENHANCEMENTS] | |
178 | ||
179 | * Added phpcs plugin (Joseph Crotty) | |
180 | ||
181 | * Added cssunminifier plugin | |
182 | ||
183 | * Added SortLines plugin, for one-entry-per-line files like .gitignore | |
184 | ||
185 | ||
186 | 0.15 2012-10-11 | |
187 | ||
188 | [BUG FIXES] | |
189 | ||
190 | * Fix test_dirs test to not rely on file ordering | |
191 | ||
192 | ||
193 | 0.14 2012-10-10 | |
194 | ||
195 | [ENHANCEMENTS] | |
196 | ||
197 | * Allow a plugin to be listed multiple times in config with different | |
198 | configuration | |
199 | ||
200 | * Specify order that plugins run (tidiers before validators, then alpha) and | |
201 | document that they are applied atomically | |
202 | ||
203 | * Added etc/editors/tidyall.vim for Vim (Justin Devuyst) | |
204 | ||
205 | * Added -r/--recursive flag to process directories recursively | |
206 | ||
207 | * In -p/--pipe mode, mirror input to output in case of error (Justin Devuyst) | |
208 | ||
209 | * Fix -l/--list handling of local files | |
210 | ||
211 | * Added --version option | |
212 | ||
213 | * Make git prereceive hook more modular, so it can be combined with other | |
214 | checks | |
215 | ||
216 | ||
217 | 0.13 2012-09-30 | |
218 | ||
219 | [BUG FIXES] | |
220 | ||
221 | * Adjust MasonTidy plugin for new API | |
222 | ||
223 | * Remove Util.t containing only author-only tests | |
224 | ||
225 | ||
226 | 0.12 2012-09-27 | |
227 | ||
228 | [ENHANCEMENTS] | |
229 | ||
230 | * Added podspell plugin (POD spell checker) | |
231 | ||
232 | * Added --iterations flag to run tidier transforms multiple times | |
233 | ||
234 | * Allow .tidyallrc as alternative to tidyall.ini | |
235 | ||
236 | * Allow git prereceive hook to be bypassed by pushing an identical set of commits | |
69 | 237 | several consecutive times (allow_repeated_push) |
70 | - Add handcrafted usage w/summary of options, instead of Pod::Usage | |
71 | ||
72 | 0.11 Sep 21, 2012 | |
73 | ||
74 | * Improvements | |
75 | - Allow multiple select and ignore patterns, separated by whitespace or on separate lines | |
76 | - Add -l/--list flag to show which plugins match which files | |
77 | - Add conf_name parameter to specify name other than tidyall.ini | |
78 | - Redirect stdout to stderr with -p/--pipe, so that stdout is dedicated to the tidied content | |
79 | - In tidyall.el, hide error buffer on successful tidy | |
80 | ||
81 | * Fixes | |
82 | - Handle argv/config errors correctly in various plugins | |
83 | - Eliminate double-printed error with -p/--pipe | |
84 | - Allow relative paths to -p/--pipe | |
85 | ||
86 | 0.10 Sep 12, 2012 | |
87 | ||
88 | * Plugins | |
89 | - Add masontidy plugin (Mason component tidier) | |
90 | - Add jslint plugin (javascript validator) | |
91 | ||
92 | 0.09 Sep 11, 2012 | |
93 | ||
94 | * Fixes | |
95 | - Remove use of ex-dependency Hash::MoreUtils from bin/tidyall (Jason Wieland) | |
96 | - Add IPC::System::Simple and Pod::Usage to deps (Jason Wieland) | |
97 | ||
98 | 0.08 Sep 10, 2012 | |
99 | ||
100 | * Plugins | |
101 | - Add js-beautify plugin (javascript tidier) | |
102 | - Add jshint plugin (javascript validator) | |
103 | - Add podchecker plugin | |
104 | ||
105 | * Improvements | |
106 | - Add -p/--pipe flag to read from STDIN and write to STDOUT | |
107 | - Allow tidyall.el to work in narrowed regions | |
108 | - Make plugins into Moo classes, pass configuration as attributes | |
109 | ||
110 | * Fixes | |
111 | - Remove unused SVN::Look - perl-code-tidyall/pull/1 (Pedro Melo) | |
112 | - Filter just files from git status in Code::TidyAll::Git::Precommit (Pedro Melo) | |
113 | ||
114 | 0.07 Sep 5, 2012 | |
115 | ||
116 | * Improvements | |
117 | - Add git pre-receive hook (Code::TidyAll::Git::Prereceive) | |
118 | ||
119 | * Fixes | |
120 | - Show file paths with errors in quiet mode | |
121 | ||
122 | 0.06 Sep 3, 2012 | |
123 | ||
124 | * Improvements | |
125 | - Add -g/--git flag and git pre-commit hook (Code::TidyAll::Git::Precommit) | |
126 | ||
127 | * Fixes | |
128 | - Omit directories from svn_uncommitted_files (--svn) | |
129 | ||
130 | 0.05 Aug 21, 2012 | |
131 | ||
132 | * Improvements | |
133 | - Add etc/editors/tidyall.el for Emacs | |
134 | - Only print 'no plugins apply' warning in verbose mode | |
135 | ||
136 | 0.04 Aug 14, 2012 | |
137 | ||
138 | * Fixes | |
139 | - Add back missing plugins | |
140 | - Fix --check-only flag | |
141 | ||
142 | * Improvements | |
143 | - Add -s/--svn flag | |
144 | - Add emergency_comment_prefix ("NO TIDYALL") to svn precommit hook | |
145 | ||
146 | 0.03 Jul 24, 2012 | |
147 | ||
148 | * Improvements | |
149 | - Add svn precommit hook (Code::TidyAll::SVN::Precommit) | |
150 | - Add preprocess_source and postprocess_source to plugins | |
151 | - Add only_modes and except_modes configuration for plugins | |
152 | - Add Code::TidyAll::process_source(), for processing a string instead of a file | |
153 | - When only specified files are being processed, don't scan the whole hierarchy | |
154 | - Add -I flag to tidyall | |
155 | ||
156 | * Implementation | |
157 | - Switch to Moo | |
158 | - Add separate new_from_conf_file constructor, for cleaner separation of cases | |
159 | ||
160 | 0.02 Jul 3, 2012 | |
161 | ||
162 | * Improvements | |
163 | - Add Test::Code::TidyAll, to test that a project is tidied | |
164 | - Add prefilter and postfilter params, to be applied to code before and after processing | |
165 | - Add --check-only option to check but not tidy | |
166 | - Add --mode option and modes config entry, to activate only a subset of plugins in config | |
167 | - Add --output-suffix to write file to a different destination | |
168 | - Add --quiet option to suppress most output | |
169 | - Add --tidyall-class option to specify a different Code::TidyAll subclass | |
170 | ||
171 | * Documentation | |
172 | - Document how to create new plugins in Code::Tidy::Plugin | |
173 | ||
174 | 0.01 Jun 17, 2012 | |
175 | ||
176 | - Initial version | |
177 | ||
238 | ||
239 | * Added handcrafted usage w/summary of options, instead of Pod::Usage | |
240 | ||
241 | ||
242 | 0.11 2012-09-21 | |
243 | ||
244 | [ENHANCEMENTS] | |
245 | ||
246 | * Allow multiple select and ignore patterns, separated by whitespace or on separate lines | |
247 | ||
248 | * Added -l/--list flag to show which plugins match which files | |
249 | ||
250 | * Added conf_name parameter to specify name other than tidyall.ini | |
251 | ||
252 | * Redirect stdout to stderr with -p/--pipe, so that stdout is dedicated to the tidied content | |
253 | ||
254 | * In tidyall.el, hide error buffer on successful tidy | |
255 | ||
256 | [BUG FIXES] | |
257 | ||
258 | * Handle argv/config errors correctly in various plugins | |
259 | ||
260 | * Eliminate double-printed error with -p/--pipe | |
261 | ||
262 | * Allow relative paths to -p/--pipe | |
263 | ||
264 | ||
265 | 0.10 2012-09-12 | |
266 | ||
267 | [ENHANCEMENTS] | |
268 | ||
269 | * Added masontidy plugin (Mason component tidier) | |
270 | ||
271 | * Added jslint plugin (javascript validator) | |
272 | ||
273 | ||
274 | 0.09 2012-09-11 | |
275 | ||
276 | [BUG FIXES] | |
277 | ||
278 | * Remove use of ex-dependency Hash::MoreUtils from bin/tidyall (Jason Wieland) | |
279 | ||
280 | * Added IPC::System::Simple and Pod::Usage to deps (Jason Wieland) | |
281 | ||
282 | ||
283 | 0.08 2012-09-10 | |
284 | ||
285 | [ENHANCEMENTS] | |
286 | ||
287 | * Added js-beautify plugin (javascript tidier) | |
288 | ||
289 | * Added jshint plugin (javascript validator) | |
290 | ||
291 | * Added podchecker plugin | |
292 | ||
293 | * Added -p/--pipe flag to read from STDIN and write to STDOUT | |
294 | ||
295 | * Allow tidyall.el to work in narrowed regions | |
296 | ||
297 | * Make plugins into Moo classes, pass configuration as attributes | |
298 | ||
299 | [BUG FIXES] | |
300 | ||
301 | * Remove unused SVN::Look - perl-code-tidyall/pull/1 (Pedro Melo) | |
302 | ||
303 | * Filter just files from git status in Code::TidyAll::Git::Precommit (Pedro Melo) | |
304 | ||
305 | ||
306 | 0.07 2012-09-05 | |
307 | ||
308 | [ENHANCEMENTS] | |
309 | ||
310 | * Added git pre-receive hook (Code::TidyAll::Git::Prereceive) | |
311 | ||
312 | [BUG FIXES] | |
313 | ||
314 | * Show file paths with errors in quiet mode | |
315 | ||
316 | ||
317 | 0.06 2012-09-03 | |
318 | ||
319 | [ENHANCEMENTS] | |
320 | ||
321 | * Added -g/--git flag and git pre-commit hook (Code::TidyAll::Git::Precommit) | |
322 | ||
323 | [BUG FIXES] | |
324 | ||
325 | * Omit directories from svn_uncommitted_files (--svn) | |
326 | ||
327 | ||
328 | 0.05 2012-08-21 | |
329 | ||
330 | [ENHANCEMENTS] | |
331 | ||
332 | * Added etc/editors/tidyall.el for Emacs | |
333 | ||
334 | * Only print 'no plugins apply' warning in verbose mode | |
335 | ||
336 | ||
337 | 0.04 2012-08-14 | |
338 | ||
339 | [ENHANCEMENTS] | |
340 | ||
341 | * Added -s/--svn flag | |
342 | ||
343 | * Added emergency_comment_prefix ("NO TIDYALL") to svn precommit hook | |
344 | ||
345 | [BUG FIXES] | |
346 | ||
347 | * Added back missing plugins | |
348 | ||
349 | * Fix --check-only flag | |
350 | ||
351 | ||
352 | 0.03 2012-07-24 | |
353 | ||
354 | [eNHANCEMENTS] | |
355 | ||
356 | * Added svn precommit hook (Code::TidyAll::SVN::Precommit) | |
357 | ||
358 | * Added preprocess_source and postprocess_source to plugins | |
359 | ||
360 | * Added only_modes and except_modes configuration for plugins | |
361 | ||
362 | * Added Code::TidyAll::process_source(), for processing a string instead of a file | |
363 | ||
364 | * When only specified files are being processed, don't scan the whole hierarchy | |
365 | ||
366 | * Added -I flag to tidyall | |
367 | ||
368 | [INTERNALS] | |
369 | ||
370 | * Switch to Moo | |
371 | ||
372 | * Added separate new_from_conf_file constructor, for cleaner separation of cases | |
373 | ||
374 | ||
375 | 0.02 2012-07-03 | |
376 | ||
377 | [ENHANCEMENTS] | |
378 | ||
379 | * Added Test::Code::TidyAll, to test that a project is tidied | |
380 | ||
381 | * Added prefilter and postfilter params, to be applied to code before and after processing | |
382 | ||
383 | * Added --check-only option to check but not tidy | |
384 | ||
385 | * Added --mode option and modes config entry, to activate only a subset of plugins in config | |
386 | ||
387 | * Added --output-suffix to write file to a different destination | |
388 | ||
389 | * Added --quiet option to suppress most output | |
390 | ||
391 | * Added --tidyall-class option to specify a different Code::TidyAll subclass | |
392 | ||
393 | * Document how to create new plugins in Code::Tidy::Plugin | |
394 | ||
395 | ||
396 | 0.01 2012-06-17 | |
397 | ||
398 | * Initial release | |
399 |
0 | This software is copyright (c) 2011 by Jonathan Swartz. | |
0 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
1 | 1 | |
2 | 2 | This is free software; you can redistribute it and/or modify it under |
3 | 3 | the same terms as the Perl 5 programming language system itself. |
11 | 11 | |
12 | 12 | --- The GNU General Public License, Version 1, February 1989 --- |
13 | 13 | |
14 | This software is Copyright (c) 2011 by Jonathan Swartz. | |
14 | This software is Copyright (c) 2011 - 2015 by Jonathan Swartz. | |
15 | 15 | |
16 | 16 | This is free software, licensed under: |
17 | 17 | |
21 | 21 | Version 1, February 1989 |
22 | 22 | |
23 | 23 | Copyright (C) 1989 Free Software Foundation, Inc. |
24 | 51 Franklin St, Suite 500, Boston, MA 02110-1335 USA | |
24 | 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | |
25 | 25 | |
26 | 26 | Everyone is permitted to copy and distribute verbatim copies |
27 | 27 | of this license document, but changing it is not allowed. |
271 | 271 | |
272 | 272 | --- The Artistic License 1.0 --- |
273 | 273 | |
274 | This software is Copyright (c) 2011 by Jonathan Swartz. | |
274 | This software is Copyright (c) 2011 - 2015 by Jonathan Swartz. | |
275 | 275 | |
276 | 276 | This is free software, licensed under: |
277 | 277 |
0 | # This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.012. | |
0 | # This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.041. | |
1 | 1 | Changes |
2 | 2 | INSTALL |
3 | 3 | LICENSE |
5 | 5 | META.json |
6 | 6 | META.yml |
7 | 7 | Makefile.PL |
8 | README.md | |
8 | 9 | bin/tidyall |
10 | cpanfile | |
11 | dist.ini | |
9 | 12 | etc/editors/tidyall.el |
10 | 13 | etc/editors/tidyall.vim |
14 | inc/MyMakeMaker.pm | |
15 | inc/Pod/Weaver/Section/SeeAlsoCodeTidyAll.pm | |
16 | inc/Util.pm | |
11 | 17 | lib/Code/TidyAll.pm |
12 | 18 | lib/Code/TidyAll/Cache.pm |
19 | lib/Code/TidyAll/CacheModel.pm | |
20 | lib/Code/TidyAll/CacheModel/Shared.pm | |
13 | 21 | lib/Code/TidyAll/Config/INI/Reader.pm |
14 | 22 | lib/Code/TidyAll/Git/Precommit.pm |
15 | 23 | lib/Code/TidyAll/Git/Prereceive.pm |
16 | 24 | lib/Code/TidyAll/Git/Util.pm |
17 | 25 | lib/Code/TidyAll/Plugin.pm |
18 | 26 | lib/Code/TidyAll/Plugin/CSSUnminifier.pm |
27 | lib/Code/TidyAll/Plugin/DiffOnTidyError.pm | |
19 | 28 | lib/Code/TidyAll/Plugin/JSBeautify.pm |
20 | 29 | lib/Code/TidyAll/Plugin/JSHint.pm |
21 | 30 | lib/Code/TidyAll/Plugin/JSLint.pm |
24 | 33 | lib/Code/TidyAll/Plugin/PHPCodeSniffer.pm |
25 | 34 | lib/Code/TidyAll/Plugin/PerlCritic.pm |
26 | 35 | lib/Code/TidyAll/Plugin/PerlTidy.pm |
36 | lib/Code/TidyAll/Plugin/PerlTidySweet.pm | |
27 | 37 | lib/Code/TidyAll/Plugin/PodChecker.pm |
28 | 38 | lib/Code/TidyAll/Plugin/PodSpell.pm |
29 | 39 | lib/Code/TidyAll/Plugin/PodTidy.pm |
30 | 40 | lib/Code/TidyAll/Plugin/SortLines.pm |
31 | 41 | lib/Code/TidyAll/Result.pm |
42 | lib/Code/TidyAll/Role/Tempdir.pm | |
32 | 43 | lib/Code/TidyAll/SVN/Precommit.pm |
33 | 44 | lib/Code/TidyAll/SVN/Util.pm |
34 | lib/Code/TidyAll/Test/Class.pm | |
35 | lib/Code/TidyAll/Test/Plugin/AToZ.pm | |
36 | lib/Code/TidyAll/Test/Plugin/CheckUpper.pm | |
37 | lib/Code/TidyAll/Test/Plugin/RepeatFoo.pm | |
38 | lib/Code/TidyAll/Test/Plugin/ReverseFoo.pm | |
39 | lib/Code/TidyAll/Test/Plugin/UpperText.pm | |
40 | 45 | lib/Code/TidyAll/Util.pm |
41 | 46 | lib/Code/TidyAll/Util/Zglob.pm |
42 | lib/Code/TidyAll/t/Basic.pm | |
43 | lib/Code/TidyAll/t/Conf.pm | |
44 | lib/Code/TidyAll/t/Git.pm | |
45 | lib/Code/TidyAll/t/Plugin.pm | |
46 | lib/Code/TidyAll/t/Plugin/CSSUnminifier.pm | |
47 | lib/Code/TidyAll/t/Plugin/JSBeautify.pm | |
48 | lib/Code/TidyAll/t/Plugin/JSHint.pm | |
49 | lib/Code/TidyAll/t/Plugin/JSLint.pm | |
50 | lib/Code/TidyAll/t/Plugin/MasonTidy.pm | |
51 | lib/Code/TidyAll/t/Plugin/PHPCodeSniffer.pm | |
52 | lib/Code/TidyAll/t/Plugin/PerlCritic.pm | |
53 | lib/Code/TidyAll/t/Plugin/PerlTidy.pm | |
54 | lib/Code/TidyAll/t/Plugin/PodChecker.pm | |
55 | lib/Code/TidyAll/t/Plugin/PodSpell.pm | |
56 | lib/Code/TidyAll/t/Plugin/PodTidy.pm | |
57 | lib/Code/TidyAll/t/Plugin/SortLines.pm | |
58 | lib/Code/TidyAll/t/SVN.pm | |
59 | lib/Code/TidyAll/t/Util.pm | |
60 | lib/Code/TidyAll/t/Zglob.pm | |
61 | lib/Pod/Weaver/Section/SeeAlsoCodeTidyAll.pm | |
62 | 47 | lib/Test/Code/TidyAll.pm |
48 | node_modules/cssunminifier/README.md | |
49 | node_modules/cssunminifier/bin/cssunminifier | |
50 | node_modules/cssunminifier/lib/cssunminifier.js | |
51 | node_modules/cssunminifier/package.json | |
52 | node_modules/cssunminifier/test/run.sh | |
53 | node_modules/cssunminifier/test/sample.css | |
54 | node_modules/js-beautify/CHANGELOG.md | |
55 | node_modules/js-beautify/CONTRIBUTING.md | |
56 | node_modules/js-beautify/LICENSE | |
57 | node_modules/js-beautify/README.md | |
58 | node_modules/js-beautify/bower.json | |
59 | node_modules/js-beautify/generate-changelog.sh | |
60 | node_modules/js-beautify/js/bin/css-beautify.js | |
61 | node_modules/js-beautify/js/bin/html-beautify.js | |
62 | node_modules/js-beautify/js/bin/js-beautify.js | |
63 | node_modules/js-beautify/js/config/defaults.json | |
64 | node_modules/js-beautify/js/index.js | |
65 | node_modules/js-beautify/js/lib/beautify-css.js | |
66 | node_modules/js-beautify/js/lib/beautify-html.js | |
67 | node_modules/js-beautify/js/lib/beautify.js | |
68 | node_modules/js-beautify/js/lib/cli.js | |
69 | node_modules/js-beautify/js/lib/unpackers/javascriptobfuscator_unpacker.js | |
70 | node_modules/js-beautify/js/lib/unpackers/myobfuscate_unpacker.js | |
71 | node_modules/js-beautify/js/lib/unpackers/p_a_c_k_e_r_unpacker.js | |
72 | node_modules/js-beautify/js/lib/unpackers/urlencode_unpacker.js | |
73 | node_modules/js-beautify/js/test/amd-beautify-tests.js | |
74 | node_modules/js-beautify/js/test/beautify-tests.js | |
75 | node_modules/js-beautify/js/test/node-beautify-perf-tests.js | |
76 | node_modules/js-beautify/js/test/node-beautify-tests.js | |
77 | node_modules/js-beautify/js/test/requirejs-html-beautify.html | |
78 | node_modules/js-beautify/js/test/resources/example1.js | |
79 | node_modules/js-beautify/js/test/resources/indent11chars/subDir1/subDir2/empty.txt | |
80 | node_modules/js-beautify/js/test/run-tests | |
81 | node_modules/js-beautify/js/test/sanitytest.js | |
82 | node_modules/js-beautify/js/test/shell-smoke-test.sh | |
83 | node_modules/js-beautify/node_modules/config-chain/LICENCE | |
84 | node_modules/js-beautify/node_modules/config-chain/index.js | |
85 | node_modules/js-beautify/node_modules/config-chain/node_modules/ini/LICENSE | |
86 | node_modules/js-beautify/node_modules/config-chain/node_modules/ini/README.md | |
87 | node_modules/js-beautify/node_modules/config-chain/node_modules/ini/ini.js | |
88 | node_modules/js-beautify/node_modules/config-chain/node_modules/ini/package.json | |
89 | node_modules/js-beautify/node_modules/config-chain/node_modules/ini/test/bar.js | |
90 | node_modules/js-beautify/node_modules/config-chain/node_modules/ini/test/fixtures/foo.ini | |
91 | node_modules/js-beautify/node_modules/config-chain/node_modules/ini/test/foo.js | |
92 | node_modules/js-beautify/node_modules/config-chain/node_modules/proto-list/LICENSE | |
93 | node_modules/js-beautify/node_modules/config-chain/node_modules/proto-list/README.md | |
94 | node_modules/js-beautify/node_modules/config-chain/node_modules/proto-list/package.json | |
95 | node_modules/js-beautify/node_modules/config-chain/node_modules/proto-list/proto-list.js | |
96 | node_modules/js-beautify/node_modules/config-chain/node_modules/proto-list/test/basic.js | |
97 | node_modules/js-beautify/node_modules/config-chain/package.json | |
98 | node_modules/js-beautify/node_modules/config-chain/readme.markdown | |
99 | node_modules/js-beautify/node_modules/config-chain/test/broken.js | |
100 | node_modules/js-beautify/node_modules/config-chain/test/broken.json | |
101 | node_modules/js-beautify/node_modules/config-chain/test/chain-class.js | |
102 | node_modules/js-beautify/node_modules/config-chain/test/env.js | |
103 | node_modules/js-beautify/node_modules/config-chain/test/find-file.js | |
104 | node_modules/js-beautify/node_modules/config-chain/test/get.js | |
105 | node_modules/js-beautify/node_modules/config-chain/test/ignore-unfound-file.js | |
106 | node_modules/js-beautify/node_modules/config-chain/test/ini.js | |
107 | node_modules/js-beautify/node_modules/config-chain/test/save.js | |
108 | node_modules/js-beautify/node_modules/mkdirp/LICENSE | |
109 | node_modules/js-beautify/node_modules/mkdirp/bin/cmd.js | |
110 | node_modules/js-beautify/node_modules/mkdirp/bin/usage.txt | |
111 | node_modules/js-beautify/node_modules/mkdirp/examples/pow.js | |
112 | node_modules/js-beautify/node_modules/mkdirp/index.js | |
113 | node_modules/js-beautify/node_modules/mkdirp/node_modules/minimist/LICENSE | |
114 | node_modules/js-beautify/node_modules/mkdirp/node_modules/minimist/example/parse.js | |
115 | node_modules/js-beautify/node_modules/mkdirp/node_modules/minimist/index.js | |
116 | node_modules/js-beautify/node_modules/mkdirp/node_modules/minimist/package.json | |
117 | node_modules/js-beautify/node_modules/mkdirp/node_modules/minimist/readme.markdown | |
118 | node_modules/js-beautify/node_modules/mkdirp/node_modules/minimist/test/dash.js | |
119 | node_modules/js-beautify/node_modules/mkdirp/node_modules/minimist/test/default_bool.js | |
120 | node_modules/js-beautify/node_modules/mkdirp/node_modules/minimist/test/dotted.js | |
121 | node_modules/js-beautify/node_modules/mkdirp/node_modules/minimist/test/long.js | |
122 | node_modules/js-beautify/node_modules/mkdirp/node_modules/minimist/test/parse.js | |
123 | node_modules/js-beautify/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js | |
124 | node_modules/js-beautify/node_modules/mkdirp/node_modules/minimist/test/short.js | |
125 | node_modules/js-beautify/node_modules/mkdirp/node_modules/minimist/test/whitespace.js | |
126 | node_modules/js-beautify/node_modules/mkdirp/package.json | |
127 | node_modules/js-beautify/node_modules/mkdirp/readme.markdown | |
128 | node_modules/js-beautify/node_modules/mkdirp/test/chmod.js | |
129 | node_modules/js-beautify/node_modules/mkdirp/test/clobber.js | |
130 | node_modules/js-beautify/node_modules/mkdirp/test/mkdirp.js | |
131 | node_modules/js-beautify/node_modules/mkdirp/test/opts_fs.js | |
132 | node_modules/js-beautify/node_modules/mkdirp/test/opts_fs_sync.js | |
133 | node_modules/js-beautify/node_modules/mkdirp/test/perm.js | |
134 | node_modules/js-beautify/node_modules/mkdirp/test/perm_sync.js | |
135 | node_modules/js-beautify/node_modules/mkdirp/test/race.js | |
136 | node_modules/js-beautify/node_modules/mkdirp/test/rel.js | |
137 | node_modules/js-beautify/node_modules/mkdirp/test/return.js | |
138 | node_modules/js-beautify/node_modules/mkdirp/test/return_sync.js | |
139 | node_modules/js-beautify/node_modules/mkdirp/test/root.js | |
140 | node_modules/js-beautify/node_modules/mkdirp/test/sync.js | |
141 | node_modules/js-beautify/node_modules/mkdirp/test/umask.js | |
142 | node_modules/js-beautify/node_modules/mkdirp/test/umask_sync.js | |
143 | node_modules/js-beautify/node_modules/nopt/LICENSE | |
144 | node_modules/js-beautify/node_modules/nopt/README.md | |
145 | node_modules/js-beautify/node_modules/nopt/bin/nopt.js | |
146 | node_modules/js-beautify/node_modules/nopt/examples/my-program.js | |
147 | node_modules/js-beautify/node_modules/nopt/lib/nopt.js | |
148 | node_modules/js-beautify/node_modules/nopt/node_modules/abbrev/CONTRIBUTING.md | |
149 | node_modules/js-beautify/node_modules/nopt/node_modules/abbrev/LICENSE | |
150 | node_modules/js-beautify/node_modules/nopt/node_modules/abbrev/README.md | |
151 | node_modules/js-beautify/node_modules/nopt/node_modules/abbrev/abbrev.js | |
152 | node_modules/js-beautify/node_modules/nopt/node_modules/abbrev/package.json | |
153 | node_modules/js-beautify/node_modules/nopt/node_modules/abbrev/test.js | |
154 | node_modules/js-beautify/node_modules/nopt/package.json | |
155 | node_modules/js-beautify/node_modules/nopt/test/basic.js | |
156 | node_modules/js-beautify/package.json | |
157 | node_modules/js-beautify/test/underscore-min.js | |
158 | node_modules/js-beautify/test/underscore.js | |
159 | node_modules/jshint/README.md | |
160 | node_modules/jshint/bin/apply | |
161 | node_modules/jshint/bin/build | |
162 | node_modules/jshint/bin/changelog | |
163 | node_modules/jshint/bin/jshint | |
164 | node_modules/jshint/bin/land | |
165 | node_modules/jshint/data/ascii-identifier-data.js | |
166 | node_modules/jshint/data/non-ascii-identifier-part-only.js | |
167 | node_modules/jshint/data/non-ascii-identifier-start.js | |
168 | node_modules/jshint/dist/jshint-rhino.js | |
169 | node_modules/jshint/dist/jshint.js | |
170 | node_modules/jshint/node_modules/cli/README.md | |
171 | node_modules/jshint/node_modules/cli/cli.js | |
172 | node_modules/jshint/node_modules/cli/examples/cat.js | |
173 | node_modules/jshint/node_modules/cli/examples/command.js | |
174 | node_modules/jshint/node_modules/cli/examples/echo.js | |
175 | node_modules/jshint/node_modules/cli/examples/glob.js | |
176 | node_modules/jshint/node_modules/cli/examples/long_desc.js | |
177 | node_modules/jshint/node_modules/cli/examples/progress.js | |
178 | node_modules/jshint/node_modules/cli/examples/sort.js | |
179 | node_modules/jshint/node_modules/cli/examples/spinner.js | |
180 | node_modules/jshint/node_modules/cli/examples/static.coffee | |
181 | node_modules/jshint/node_modules/cli/examples/static.js | |
182 | node_modules/jshint/node_modules/cli/index.js | |
183 | node_modules/jshint/node_modules/cli/node_modules/glob/LICENSE | |
184 | node_modules/jshint/node_modules/cli/node_modules/glob/README.md | |
185 | node_modules/jshint/node_modules/cli/node_modules/glob/examples/g.js | |
186 | node_modules/jshint/node_modules/cli/node_modules/glob/examples/usr-local.js | |
187 | node_modules/jshint/node_modules/cli/node_modules/glob/glob.js | |
188 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/inherits/LICENSE | |
189 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/inherits/README.md | |
190 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/inherits/inherits.js | |
191 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/inherits/inherits_browser.js | |
192 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/inherits/package.json | |
193 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/inherits/test.js | |
194 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/LICENSE | |
195 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/README.md | |
196 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/minimatch.js | |
197 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS | |
198 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/LICENSE | |
199 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/README.md | |
200 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js | |
201 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/package.json | |
202 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/basic.js | |
203 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/foreach.js | |
204 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js | |
205 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/node_modules/sigmund/LICENSE | |
206 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/node_modules/sigmund/README.md | |
207 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/node_modules/sigmund/bench.js | |
208 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/node_modules/sigmund/package.json | |
209 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/node_modules/sigmund/sigmund.js | |
210 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/node_modules/sigmund/test/basic.js | |
211 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/package.json | |
212 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/test/basic.js | |
213 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/test/brace-expand.js | |
214 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/test/caching.js | |
215 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/test/defaults.js | |
216 | node_modules/jshint/node_modules/cli/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js | |
217 | node_modules/jshint/node_modules/cli/node_modules/glob/package.json | |
218 | node_modules/jshint/node_modules/cli/node_modules/glob/test/00-setup.js | |
219 | node_modules/jshint/node_modules/cli/node_modules/glob/test/bash-comparison.js | |
220 | node_modules/jshint/node_modules/cli/node_modules/glob/test/bash-results.json | |
221 | node_modules/jshint/node_modules/cli/node_modules/glob/test/cwd-test.js | |
222 | node_modules/jshint/node_modules/cli/node_modules/glob/test/globstar-match.js | |
223 | node_modules/jshint/node_modules/cli/node_modules/glob/test/mark.js | |
224 | node_modules/jshint/node_modules/cli/node_modules/glob/test/new-glob-optional-options.js | |
225 | node_modules/jshint/node_modules/cli/node_modules/glob/test/nocase-nomagic.js | |
226 | node_modules/jshint/node_modules/cli/node_modules/glob/test/pause-resume.js | |
227 | node_modules/jshint/node_modules/cli/node_modules/glob/test/readme-issue.js | |
228 | node_modules/jshint/node_modules/cli/node_modules/glob/test/root-nomount.js | |
229 | node_modules/jshint/node_modules/cli/node_modules/glob/test/root.js | |
230 | node_modules/jshint/node_modules/cli/node_modules/glob/test/stat.js | |
231 | node_modules/jshint/node_modules/cli/node_modules/glob/test/zz-cleanup.js | |
232 | node_modules/jshint/node_modules/cli/package.json | |
233 | node_modules/jshint/node_modules/console-browserify/LICENCE | |
234 | node_modules/jshint/node_modules/console-browserify/README.md | |
235 | node_modules/jshint/node_modules/console-browserify/index.js | |
236 | node_modules/jshint/node_modules/console-browserify/node_modules/date-now/LICENCE | |
237 | node_modules/jshint/node_modules/console-browserify/node_modules/date-now/README.md | |
238 | node_modules/jshint/node_modules/console-browserify/node_modules/date-now/index.js | |
239 | node_modules/jshint/node_modules/console-browserify/node_modules/date-now/package.json | |
240 | node_modules/jshint/node_modules/console-browserify/node_modules/date-now/seed.js | |
241 | node_modules/jshint/node_modules/console-browserify/node_modules/date-now/test/index.js | |
242 | node_modules/jshint/node_modules/console-browserify/node_modules/date-now/test/static/index.html | |
243 | node_modules/jshint/node_modules/console-browserify/package.json | |
244 | node_modules/jshint/node_modules/console-browserify/test/index.js | |
245 | node_modules/jshint/node_modules/console-browserify/test/static/index.html | |
246 | node_modules/jshint/node_modules/console-browserify/test/static/test-adapter.js | |
247 | node_modules/jshint/node_modules/exit/Gruntfile.js | |
248 | node_modules/jshint/node_modules/exit/LICENSE-MIT | |
249 | node_modules/jshint/node_modules/exit/README.md | |
250 | node_modules/jshint/node_modules/exit/lib/exit.js | |
251 | node_modules/jshint/node_modules/exit/package.json | |
252 | node_modules/jshint/node_modules/exit/test/exit_test.js | |
253 | node_modules/jshint/node_modules/exit/test/fixtures/10-stderr.txt | |
254 | node_modules/jshint/node_modules/exit/test/fixtures/10-stdout-stderr.txt | |
255 | node_modules/jshint/node_modules/exit/test/fixtures/10-stdout.txt | |
256 | node_modules/jshint/node_modules/exit/test/fixtures/100-stderr.txt | |
257 | node_modules/jshint/node_modules/exit/test/fixtures/100-stdout-stderr.txt | |
258 | node_modules/jshint/node_modules/exit/test/fixtures/100-stdout.txt | |
259 | node_modules/jshint/node_modules/exit/test/fixtures/1000-stderr.txt | |
260 | node_modules/jshint/node_modules/exit/test/fixtures/1000-stdout-stderr.txt | |
261 | node_modules/jshint/node_modules/exit/test/fixtures/1000-stdout.txt | |
262 | node_modules/jshint/node_modules/exit/test/fixtures/create-files.sh | |
263 | node_modules/jshint/node_modules/exit/test/fixtures/log-broken.js | |
264 | node_modules/jshint/node_modules/exit/test/fixtures/log.js | |
265 | node_modules/jshint/node_modules/htmlparser2/LICENSE | |
266 | node_modules/jshint/node_modules/htmlparser2/README.md | |
267 | node_modules/jshint/node_modules/htmlparser2/lib/CollectingHandler.js | |
268 | node_modules/jshint/node_modules/htmlparser2/lib/FeedHandler.js | |
269 | node_modules/jshint/node_modules/htmlparser2/lib/Parser.js | |
270 | node_modules/jshint/node_modules/htmlparser2/lib/ProxyHandler.js | |
271 | node_modules/jshint/node_modules/htmlparser2/lib/Stream.js | |
272 | node_modules/jshint/node_modules/htmlparser2/lib/Tokenizer.js | |
273 | node_modules/jshint/node_modules/htmlparser2/lib/WritableStream.js | |
274 | node_modules/jshint/node_modules/htmlparser2/lib/index.js | |
275 | node_modules/jshint/node_modules/htmlparser2/node_modules/domelementtype/LICENSE | |
276 | node_modules/jshint/node_modules/htmlparser2/node_modules/domelementtype/index.js | |
277 | node_modules/jshint/node_modules/htmlparser2/node_modules/domelementtype/package.json | |
278 | node_modules/jshint/node_modules/htmlparser2/node_modules/domelementtype/readme.md | |
279 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/LICENSE | |
280 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/index.js | |
281 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/lib/element.js | |
282 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/lib/node.js | |
283 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/package.json | |
284 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/readme.md | |
285 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/01-basic.json | |
286 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/02-single_tag_1.json | |
287 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/03-single_tag_2.json | |
288 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/04-unescaped_in_script.json | |
289 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/05-tags_in_comment.json | |
290 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/06-comment_in_script.json | |
291 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/07-unescaped_in_style.json | |
292 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/08-extra_spaces_in_tag.json | |
293 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/09-unquoted_attrib.json | |
294 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/10-singular_attribute.json | |
295 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/11-text_outside_tags.json | |
296 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/12-text_only.json | |
297 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/13-comment_in_text.json | |
298 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/14-comment_in_text_in_script.json | |
299 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/15-non-verbose.json | |
300 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/16-normalize_whitespace.json | |
301 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/17-xml_namespace.json | |
302 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/18-enforce_empty_tags.json | |
303 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/19-ignore_empty_tags.json | |
304 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/20-template_script_tags.json | |
305 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/21-conditional_comments.json | |
306 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/22-lowercase_tags.json | |
307 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/23-dom-lvl1.json | |
308 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/cases/24-with-start-indices.json | |
309 | node_modules/jshint/node_modules/htmlparser2/node_modules/domhandler/test/tests.js | |
310 | node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/LICENSE | |
311 | node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/index.js | |
312 | node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/lib/helpers.js | |
313 | node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/lib/legacy.js | |
314 | node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js | |
315 | node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/lib/querying.js | |
316 | node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/lib/stringify.js | |
317 | node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/lib/traversal.js | |
318 | node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/package.json | |
319 | node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/readme.md | |
320 | node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/test/fixture.js | |
321 | node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/test/tests/helpers.js | |
322 | node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/test/tests/legacy.js | |
323 | node_modules/jshint/node_modules/htmlparser2/node_modules/domutils/test/utils.js | |
324 | node_modules/jshint/node_modules/htmlparser2/node_modules/entities/LICENSE | |
325 | node_modules/jshint/node_modules/htmlparser2/node_modules/entities/index.js | |
326 | node_modules/jshint/node_modules/htmlparser2/node_modules/entities/lib/decode.js | |
327 | node_modules/jshint/node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.js | |
328 | node_modules/jshint/node_modules/htmlparser2/node_modules/entities/lib/encode.js | |
329 | node_modules/jshint/node_modules/htmlparser2/node_modules/entities/maps/decode.json | |
330 | node_modules/jshint/node_modules/htmlparser2/node_modules/entities/maps/entities.json | |
331 | node_modules/jshint/node_modules/htmlparser2/node_modules/entities/maps/legacy.json | |
332 | node_modules/jshint/node_modules/htmlparser2/node_modules/entities/maps/xml.json | |
333 | node_modules/jshint/node_modules/htmlparser2/node_modules/entities/package.json | |
334 | node_modules/jshint/node_modules/htmlparser2/node_modules/entities/readme.md | |
335 | node_modules/jshint/node_modules/htmlparser2/node_modules/entities/test/mocha.opts | |
336 | node_modules/jshint/node_modules/htmlparser2/node_modules/entities/test/test.js | |
337 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/LICENSE | |
338 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/README.md | |
339 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/duplex.js | |
340 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/float.patch | |
341 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/lib/_stream_duplex.js | |
342 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/lib/_stream_passthrough.js | |
343 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/lib/_stream_readable.js | |
344 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/lib/_stream_transform.js | |
345 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/lib/_stream_writable.js | |
346 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/core-util-is/README.md | |
347 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/core-util-is/float.patch | |
348 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/core-util-is/lib/util.js | |
349 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/core-util-is/package.json | |
350 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/core-util-is/util.js | |
351 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/inherits/LICENSE | |
352 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/inherits/README.md | |
353 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/inherits/inherits.js | |
354 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/inherits/inherits_browser.js | |
355 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/inherits/package.json | |
356 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/inherits/test.js | |
357 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/isarray/README.md | |
358 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/isarray/build/build.js | |
359 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/isarray/component.json | |
360 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/isarray/index.js | |
361 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/isarray/package.json | |
362 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/string_decoder/LICENSE | |
363 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/string_decoder/README.md | |
364 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/string_decoder/index.js | |
365 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/node_modules/string_decoder/package.json | |
366 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/package.json | |
367 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/passthrough.js | |
368 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/readable.js | |
369 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/transform.js | |
370 | node_modules/jshint/node_modules/htmlparser2/node_modules/readable-stream/writable.js | |
371 | node_modules/jshint/node_modules/htmlparser2/package.json | |
372 | node_modules/jshint/node_modules/htmlparser2/test/01-events.js | |
373 | node_modules/jshint/node_modules/htmlparser2/test/02-stream.js | |
374 | node_modules/jshint/node_modules/htmlparser2/test/03-feed.js | |
375 | node_modules/jshint/node_modules/htmlparser2/test/Documents/Atom_Example.xml | |
376 | node_modules/jshint/node_modules/htmlparser2/test/Documents/Attributes.html | |
377 | node_modules/jshint/node_modules/htmlparser2/test/Documents/Basic.html | |
378 | node_modules/jshint/node_modules/htmlparser2/test/Documents/RDF_Example.xml | |
379 | node_modules/jshint/node_modules/htmlparser2/test/Documents/RSS_Example.xml | |
380 | node_modules/jshint/node_modules/htmlparser2/test/Events/01-simple.json | |
381 | node_modules/jshint/node_modules/htmlparser2/test/Events/02-template.json | |
382 | node_modules/jshint/node_modules/htmlparser2/test/Events/03-lowercase_tags.json | |
383 | node_modules/jshint/node_modules/htmlparser2/test/Events/04-cdata.json | |
384 | node_modules/jshint/node_modules/htmlparser2/test/Events/05-cdata-special.json | |
385 | node_modules/jshint/node_modules/htmlparser2/test/Events/06-leading-lt.json | |
386 | node_modules/jshint/node_modules/htmlparser2/test/Events/07-self-closing.json | |
387 | node_modules/jshint/node_modules/htmlparser2/test/Events/08-implicit-close-tags.json | |
388 | node_modules/jshint/node_modules/htmlparser2/test/Events/09-attributes.json | |
389 | node_modules/jshint/node_modules/htmlparser2/test/Events/10-crazy-attrib.json | |
390 | node_modules/jshint/node_modules/htmlparser2/test/Events/11-script_in_script.json | |
391 | node_modules/jshint/node_modules/htmlparser2/test/Events/12-long-comment-end.json | |
392 | node_modules/jshint/node_modules/htmlparser2/test/Events/13-long-cdata-end.json | |
393 | node_modules/jshint/node_modules/htmlparser2/test/Events/14-implicit-open-tags.json | |
394 | node_modules/jshint/node_modules/htmlparser2/test/Events/15-lt-whitespace.json | |
395 | node_modules/jshint/node_modules/htmlparser2/test/Events/16-double_attribs.json | |
396 | node_modules/jshint/node_modules/htmlparser2/test/Events/17-numeric_entities.json | |
397 | node_modules/jshint/node_modules/htmlparser2/test/Events/18-legacy_entities.json | |
398 | node_modules/jshint/node_modules/htmlparser2/test/Events/19-named_entities.json | |
399 | node_modules/jshint/node_modules/htmlparser2/test/Events/20-xml_entities.json | |
400 | node_modules/jshint/node_modules/htmlparser2/test/Events/21-entity_in_attribute.json | |
401 | node_modules/jshint/node_modules/htmlparser2/test/Events/22-double_brackets.json | |
402 | node_modules/jshint/node_modules/htmlparser2/test/Events/23-legacy_entity_fail.json | |
403 | node_modules/jshint/node_modules/htmlparser2/test/Events/24-special_special.json | |
404 | node_modules/jshint/node_modules/htmlparser2/test/Events/25-empty_tag_name.json | |
405 | node_modules/jshint/node_modules/htmlparser2/test/Events/26-not-quite-closed.json | |
406 | node_modules/jshint/node_modules/htmlparser2/test/Events/27-entities_in_attributes.json | |
407 | node_modules/jshint/node_modules/htmlparser2/test/Events/28-cdata_in_html.json | |
408 | node_modules/jshint/node_modules/htmlparser2/test/Events/29-comment_edge-cases.json | |
409 | node_modules/jshint/node_modules/htmlparser2/test/Events/30-cdata_edge-cases.json | |
410 | node_modules/jshint/node_modules/htmlparser2/test/Events/31-comment_false-ending.json | |
411 | node_modules/jshint/node_modules/htmlparser2/test/Feeds/01-rss.js | |
412 | node_modules/jshint/node_modules/htmlparser2/test/Feeds/02-atom.js | |
413 | node_modules/jshint/node_modules/htmlparser2/test/Feeds/03-rdf.js | |
414 | node_modules/jshint/node_modules/htmlparser2/test/Stream/01-basic.json | |
415 | node_modules/jshint/node_modules/htmlparser2/test/Stream/02-RSS.json | |
416 | node_modules/jshint/node_modules/htmlparser2/test/Stream/03-Atom.json | |
417 | node_modules/jshint/node_modules/htmlparser2/test/Stream/04-RDF.json | |
418 | node_modules/jshint/node_modules/htmlparser2/test/Stream/05-Attributes.json | |
419 | node_modules/jshint/node_modules/htmlparser2/test/api.js | |
420 | node_modules/jshint/node_modules/htmlparser2/test/test-helper.js | |
421 | node_modules/jshint/node_modules/minimatch/LICENSE | |
422 | node_modules/jshint/node_modules/minimatch/README.md | |
423 | node_modules/jshint/node_modules/minimatch/minimatch.js | |
424 | node_modules/jshint/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS | |
425 | node_modules/jshint/node_modules/minimatch/node_modules/lru-cache/LICENSE | |
426 | node_modules/jshint/node_modules/minimatch/node_modules/lru-cache/README.md | |
427 | node_modules/jshint/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js | |
428 | node_modules/jshint/node_modules/minimatch/node_modules/lru-cache/package.json | |
429 | node_modules/jshint/node_modules/minimatch/node_modules/lru-cache/test/basic.js | |
430 | node_modules/jshint/node_modules/minimatch/node_modules/lru-cache/test/foreach.js | |
431 | node_modules/jshint/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js | |
432 | node_modules/jshint/node_modules/minimatch/node_modules/sigmund/LICENSE | |
433 | node_modules/jshint/node_modules/minimatch/node_modules/sigmund/README.md | |
434 | node_modules/jshint/node_modules/minimatch/node_modules/sigmund/bench.js | |
435 | node_modules/jshint/node_modules/minimatch/node_modules/sigmund/package.json | |
436 | node_modules/jshint/node_modules/minimatch/node_modules/sigmund/sigmund.js | |
437 | node_modules/jshint/node_modules/minimatch/node_modules/sigmund/test/basic.js | |
438 | node_modules/jshint/node_modules/minimatch/package.json | |
439 | node_modules/jshint/node_modules/minimatch/test/basic.js | |
440 | node_modules/jshint/node_modules/minimatch/test/brace-expand.js | |
441 | node_modules/jshint/node_modules/minimatch/test/caching.js | |
442 | node_modules/jshint/node_modules/minimatch/test/defaults.js | |
443 | node_modules/jshint/node_modules/minimatch/test/extglob-ending-with-state-char.js | |
444 | node_modules/jshint/node_modules/shelljs/LICENSE | |
445 | node_modules/jshint/node_modules/shelljs/README.md | |
446 | node_modules/jshint/node_modules/shelljs/bin/shjs | |
447 | node_modules/jshint/node_modules/shelljs/global.js | |
448 | node_modules/jshint/node_modules/shelljs/make.js | |
449 | node_modules/jshint/node_modules/shelljs/package.json | |
450 | node_modules/jshint/node_modules/shelljs/scripts/generate-docs.js | |
451 | node_modules/jshint/node_modules/shelljs/scripts/run-tests.js | |
452 | node_modules/jshint/node_modules/shelljs/shell.js | |
453 | node_modules/jshint/node_modules/shelljs/src/cat.js | |
454 | node_modules/jshint/node_modules/shelljs/src/cd.js | |
455 | node_modules/jshint/node_modules/shelljs/src/chmod.js | |
456 | node_modules/jshint/node_modules/shelljs/src/common.js | |
457 | node_modules/jshint/node_modules/shelljs/src/cp.js | |
458 | node_modules/jshint/node_modules/shelljs/src/dirs.js | |
459 | node_modules/jshint/node_modules/shelljs/src/echo.js | |
460 | node_modules/jshint/node_modules/shelljs/src/error.js | |
461 | node_modules/jshint/node_modules/shelljs/src/exec.js | |
462 | node_modules/jshint/node_modules/shelljs/src/find.js | |
463 | node_modules/jshint/node_modules/shelljs/src/grep.js | |
464 | node_modules/jshint/node_modules/shelljs/src/ln.js | |
465 | node_modules/jshint/node_modules/shelljs/src/ls.js | |
466 | node_modules/jshint/node_modules/shelljs/src/mkdir.js | |
467 | node_modules/jshint/node_modules/shelljs/src/mv.js | |
468 | node_modules/jshint/node_modules/shelljs/src/popd.js | |
469 | node_modules/jshint/node_modules/shelljs/src/pushd.js | |
470 | node_modules/jshint/node_modules/shelljs/src/pwd.js | |
471 | node_modules/jshint/node_modules/shelljs/src/rm.js | |
472 | node_modules/jshint/node_modules/shelljs/src/sed.js | |
473 | node_modules/jshint/node_modules/shelljs/src/tempdir.js | |
474 | node_modules/jshint/node_modules/shelljs/src/test.js | |
475 | node_modules/jshint/node_modules/shelljs/src/to.js | |
476 | node_modules/jshint/node_modules/shelljs/src/toEnd.js | |
477 | node_modules/jshint/node_modules/shelljs/src/which.js | |
478 | node_modules/jshint/node_modules/strip-json-comments/cli.js | |
479 | node_modules/jshint/node_modules/strip-json-comments/package.json | |
480 | node_modules/jshint/node_modules/strip-json-comments/readme.md | |
481 | node_modules/jshint/node_modules/strip-json-comments/strip-json-comments.js | |
482 | node_modules/jshint/node_modules/underscore/LICENSE | |
483 | node_modules/jshint/node_modules/underscore/README.md | |
484 | node_modules/jshint/node_modules/underscore/package.json | |
485 | node_modules/jshint/node_modules/underscore/underscore-min.js | |
486 | node_modules/jshint/node_modules/underscore/underscore.js | |
487 | node_modules/jshint/package.json | |
488 | node_modules/jshint/src/cli.js | |
489 | node_modules/jshint/src/jshint.js | |
490 | node_modules/jshint/src/lex.js | |
491 | node_modules/jshint/src/messages.js | |
492 | node_modules/jshint/src/name-stack.js | |
493 | node_modules/jshint/src/options.js | |
494 | node_modules/jshint/src/platforms/rhino.js | |
495 | node_modules/jshint/src/reg.js | |
496 | node_modules/jshint/src/reporters/checkstyle.js | |
497 | node_modules/jshint/src/reporters/default.js | |
498 | node_modules/jshint/src/reporters/jslint_xml.js | |
499 | node_modules/jshint/src/reporters/non_error.js | |
500 | node_modules/jshint/src/reporters/unix.js | |
501 | node_modules/jshint/src/state.js | |
502 | node_modules/jshint/src/style.js | |
503 | node_modules/jshint/src/vars.js | |
504 | node_modules/jslint/README.md | |
505 | node_modules/jslint/bin/jslint.js | |
506 | node_modules/jslint/doc/jslint.html | |
507 | node_modules/jslint/doc/jslint.md | |
508 | node_modules/jslint/lib/color.js | |
509 | node_modules/jslint/lib/fileopener.js | |
510 | node_modules/jslint/lib/jslint-2012-02-03.js | |
511 | node_modules/jslint/lib/jslint-2013-02-03.js | |
512 | node_modules/jslint/lib/jslint-2013-08-13.js | |
513 | node_modules/jslint/lib/jslint-2013-08-26.js | |
514 | node_modules/jslint/lib/jslint-2013-09-22.js | |
515 | node_modules/jslint/lib/jslint-2013-11-23.js | |
516 | node_modules/jslint/lib/jslint-2014-01-26.js | |
517 | node_modules/jslint/lib/jslint-2014-02-06.js | |
518 | node_modules/jslint/lib/jslint-2014-04-21.js | |
519 | node_modules/jslint/lib/jslint-2014-07-08.js | |
520 | node_modules/jslint/lib/jslint-latest.js | |
521 | node_modules/jslint/lib/jslint.js | |
522 | node_modules/jslint/lib/jsonreportstream.js | |
523 | node_modules/jslint/lib/linter.js | |
524 | node_modules/jslint/lib/lintstream.js | |
525 | node_modules/jslint/lib/main.js | |
526 | node_modules/jslint/lib/nodelint.js | |
527 | node_modules/jslint/lib/options.js | |
528 | node_modules/jslint/lib/reporter.js | |
529 | node_modules/jslint/lib/reportstream.js | |
530 | node_modules/jslint/lib/stream.js | |
531 | node_modules/jslint/man/jslint.1 | |
532 | node_modules/jslint/node_modules/exit/Gruntfile.js | |
533 | node_modules/jslint/node_modules/exit/LICENSE-MIT | |
534 | node_modules/jslint/node_modules/exit/README.md | |
535 | node_modules/jslint/node_modules/exit/lib/exit.js | |
536 | node_modules/jslint/node_modules/exit/package.json | |
537 | node_modules/jslint/node_modules/exit/test/exit_test.js | |
538 | node_modules/jslint/node_modules/exit/test/fixtures/10-stderr.txt | |
539 | node_modules/jslint/node_modules/exit/test/fixtures/10-stdout-stderr.txt | |
540 | node_modules/jslint/node_modules/exit/test/fixtures/10-stdout.txt | |
541 | node_modules/jslint/node_modules/exit/test/fixtures/100-stderr.txt | |
542 | node_modules/jslint/node_modules/exit/test/fixtures/100-stdout-stderr.txt | |
543 | node_modules/jslint/node_modules/exit/test/fixtures/100-stdout.txt | |
544 | node_modules/jslint/node_modules/exit/test/fixtures/1000-stderr.txt | |
545 | node_modules/jslint/node_modules/exit/test/fixtures/1000-stdout-stderr.txt | |
546 | node_modules/jslint/node_modules/exit/test/fixtures/1000-stdout.txt | |
547 | node_modules/jslint/node_modules/exit/test/fixtures/create-files.sh | |
548 | node_modules/jslint/node_modules/exit/test/fixtures/log-broken.js | |
549 | node_modules/jslint/node_modules/exit/test/fixtures/log.js | |
550 | node_modules/jslint/node_modules/glob/LICENSE | |
551 | node_modules/jslint/node_modules/glob/README.md | |
552 | node_modules/jslint/node_modules/glob/examples/g.js | |
553 | node_modules/jslint/node_modules/glob/examples/usr-local.js | |
554 | node_modules/jslint/node_modules/glob/glob.js | |
555 | node_modules/jslint/node_modules/glob/node_modules/inherits/LICENSE | |
556 | node_modules/jslint/node_modules/glob/node_modules/inherits/README.md | |
557 | node_modules/jslint/node_modules/glob/node_modules/inherits/inherits.js | |
558 | node_modules/jslint/node_modules/glob/node_modules/inherits/inherits_browser.js | |
559 | node_modules/jslint/node_modules/glob/node_modules/inherits/package.json | |
560 | node_modules/jslint/node_modules/glob/node_modules/inherits/test.js | |
561 | node_modules/jslint/node_modules/glob/node_modules/minimatch/LICENSE | |
562 | node_modules/jslint/node_modules/glob/node_modules/minimatch/README.md | |
563 | node_modules/jslint/node_modules/glob/node_modules/minimatch/minimatch.js | |
564 | node_modules/jslint/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS | |
565 | node_modules/jslint/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/LICENSE | |
566 | node_modules/jslint/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/README.md | |
567 | node_modules/jslint/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js | |
568 | node_modules/jslint/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/package.json | |
569 | node_modules/jslint/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/basic.js | |
570 | node_modules/jslint/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/foreach.js | |
571 | node_modules/jslint/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js | |
572 | node_modules/jslint/node_modules/glob/node_modules/minimatch/node_modules/sigmund/LICENSE | |
573 | node_modules/jslint/node_modules/glob/node_modules/minimatch/node_modules/sigmund/README.md | |
574 | node_modules/jslint/node_modules/glob/node_modules/minimatch/node_modules/sigmund/bench.js | |
575 | node_modules/jslint/node_modules/glob/node_modules/minimatch/node_modules/sigmund/package.json | |
576 | node_modules/jslint/node_modules/glob/node_modules/minimatch/node_modules/sigmund/sigmund.js | |
577 | node_modules/jslint/node_modules/glob/node_modules/minimatch/node_modules/sigmund/test/basic.js | |
578 | node_modules/jslint/node_modules/glob/node_modules/minimatch/package.json | |
579 | node_modules/jslint/node_modules/glob/node_modules/minimatch/test/basic.js | |
580 | node_modules/jslint/node_modules/glob/node_modules/minimatch/test/brace-expand.js | |
581 | node_modules/jslint/node_modules/glob/node_modules/minimatch/test/caching.js | |
582 | node_modules/jslint/node_modules/glob/node_modules/minimatch/test/defaults.js | |
583 | node_modules/jslint/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js | |
584 | node_modules/jslint/node_modules/glob/package.json | |
585 | node_modules/jslint/node_modules/glob/test/00-setup.js | |
586 | node_modules/jslint/node_modules/glob/test/bash-comparison.js | |
587 | node_modules/jslint/node_modules/glob/test/bash-results.json | |
588 | node_modules/jslint/node_modules/glob/test/cwd-test.js | |
589 | node_modules/jslint/node_modules/glob/test/globstar-match.js | |
590 | node_modules/jslint/node_modules/glob/test/mark.js | |
591 | node_modules/jslint/node_modules/glob/test/new-glob-optional-options.js | |
592 | node_modules/jslint/node_modules/glob/test/nocase-nomagic.js | |
593 | node_modules/jslint/node_modules/glob/test/pause-resume.js | |
594 | node_modules/jslint/node_modules/glob/test/readme-issue.js | |
595 | node_modules/jslint/node_modules/glob/test/root-nomount.js | |
596 | node_modules/jslint/node_modules/glob/test/root.js | |
597 | node_modules/jslint/node_modules/glob/test/stat.js | |
598 | node_modules/jslint/node_modules/glob/test/zz-cleanup.js | |
599 | node_modules/jslint/node_modules/nopt/LICENSE | |
600 | node_modules/jslint/node_modules/nopt/README.md | |
601 | node_modules/jslint/node_modules/nopt/bin/nopt.js | |
602 | node_modules/jslint/node_modules/nopt/examples/my-program.js | |
603 | node_modules/jslint/node_modules/nopt/lib/nopt.js | |
604 | node_modules/jslint/node_modules/nopt/node_modules/abbrev/CONTRIBUTING.md | |
605 | node_modules/jslint/node_modules/nopt/node_modules/abbrev/LICENSE | |
606 | node_modules/jslint/node_modules/nopt/node_modules/abbrev/README.md | |
607 | node_modules/jslint/node_modules/nopt/node_modules/abbrev/abbrev.js | |
608 | node_modules/jslint/node_modules/nopt/node_modules/abbrev/package.json | |
609 | node_modules/jslint/node_modules/nopt/node_modules/abbrev/test.js | |
610 | node_modules/jslint/node_modules/nopt/package.json | |
611 | node_modules/jslint/node_modules/readable-stream/LICENSE | |
612 | node_modules/jslint/node_modules/readable-stream/README.md | |
613 | node_modules/jslint/node_modules/readable-stream/duplex.js | |
614 | node_modules/jslint/node_modules/readable-stream/lib/_stream_duplex.js | |
615 | node_modules/jslint/node_modules/readable-stream/lib/_stream_passthrough.js | |
616 | node_modules/jslint/node_modules/readable-stream/lib/_stream_readable.js | |
617 | node_modules/jslint/node_modules/readable-stream/lib/_stream_transform.js | |
618 | node_modules/jslint/node_modules/readable-stream/lib/_stream_writable.js | |
619 | node_modules/jslint/node_modules/readable-stream/node_modules/core-util-is/README.md | |
620 | node_modules/jslint/node_modules/readable-stream/node_modules/core-util-is/float.patch | |
621 | node_modules/jslint/node_modules/readable-stream/node_modules/core-util-is/lib/util.js | |
622 | node_modules/jslint/node_modules/readable-stream/node_modules/core-util-is/package.json | |
623 | node_modules/jslint/node_modules/readable-stream/node_modules/core-util-is/util.js | |
624 | node_modules/jslint/node_modules/readable-stream/node_modules/inherits/LICENSE | |
625 | node_modules/jslint/node_modules/readable-stream/node_modules/inherits/README.md | |
626 | node_modules/jslint/node_modules/readable-stream/node_modules/inherits/inherits.js | |
627 | node_modules/jslint/node_modules/readable-stream/node_modules/inherits/inherits_browser.js | |
628 | node_modules/jslint/node_modules/readable-stream/node_modules/inherits/package.json | |
629 | node_modules/jslint/node_modules/readable-stream/node_modules/inherits/test.js | |
630 | node_modules/jslint/node_modules/readable-stream/node_modules/isarray/README.md | |
631 | node_modules/jslint/node_modules/readable-stream/node_modules/isarray/build/build.js | |
632 | node_modules/jslint/node_modules/readable-stream/node_modules/isarray/component.json | |
633 | node_modules/jslint/node_modules/readable-stream/node_modules/isarray/index.js | |
634 | node_modules/jslint/node_modules/readable-stream/node_modules/isarray/package.json | |
635 | node_modules/jslint/node_modules/readable-stream/node_modules/string_decoder/LICENSE | |
636 | node_modules/jslint/node_modules/readable-stream/node_modules/string_decoder/README.md | |
637 | node_modules/jslint/node_modules/readable-stream/node_modules/string_decoder/index.js | |
638 | node_modules/jslint/node_modules/readable-stream/node_modules/string_decoder/package.json | |
639 | node_modules/jslint/node_modules/readable-stream/package.json | |
640 | node_modules/jslint/node_modules/readable-stream/passthrough.js | |
641 | node_modules/jslint/node_modules/readable-stream/readable.js | |
642 | node_modules/jslint/node_modules/readable-stream/transform.js | |
643 | node_modules/jslint/node_modules/readable-stream/writable.js | |
644 | node_modules/jslint/package.json | |
645 | perlcriticrc | |
646 | perltidyrc | |
647 | php5/usr/bin/phpcs | |
648 | php5/usr/bin/scripts/phpcs-svn-pre-commit | |
649 | php5/usr/share/php/PHP/CodeSniffer.php | |
650 | php5/usr/share/php/PHP/CodeSniffer/CLI.php | |
651 | php5/usr/share/php/PHP/CodeSniffer/CommentParser/AbstractDocElement.php | |
652 | php5/usr/share/php/PHP/CodeSniffer/CommentParser/AbstractParser.php | |
653 | php5/usr/share/php/PHP/CodeSniffer/CommentParser/ClassCommentParser.php | |
654 | php5/usr/share/php/PHP/CodeSniffer/CommentParser/CommentElement.php | |
655 | php5/usr/share/php/PHP/CodeSniffer/CommentParser/DocElement.php | |
656 | php5/usr/share/php/PHP/CodeSniffer/CommentParser/FunctionCommentParser.php | |
657 | php5/usr/share/php/PHP/CodeSniffer/CommentParser/MemberCommentParser.php | |
658 | php5/usr/share/php/PHP/CodeSniffer/CommentParser/PairElement.php | |
659 | php5/usr/share/php/PHP/CodeSniffer/CommentParser/ParameterElement.php | |
660 | php5/usr/share/php/PHP/CodeSniffer/CommentParser/ParserException.php | |
661 | php5/usr/share/php/PHP/CodeSniffer/CommentParser/SingleElement.php | |
662 | php5/usr/share/php/PHP/CodeSniffer/DocGenerators/Generator.php | |
663 | php5/usr/share/php/PHP/CodeSniffer/DocGenerators/HTML.php | |
664 | php5/usr/share/php/PHP/CodeSniffer/DocGenerators/Text.php | |
665 | php5/usr/share/php/PHP/CodeSniffer/Exception.php | |
666 | php5/usr/share/php/PHP/CodeSniffer/File.php | |
667 | php5/usr/share/php/PHP/CodeSniffer/Report.php | |
668 | php5/usr/share/php/PHP/CodeSniffer/Reporting.php | |
669 | php5/usr/share/php/PHP/CodeSniffer/Reports/Checkstyle.php | |
670 | php5/usr/share/php/PHP/CodeSniffer/Reports/Csv.php | |
671 | php5/usr/share/php/PHP/CodeSniffer/Reports/Emacs.php | |
672 | php5/usr/share/php/PHP/CodeSniffer/Reports/Full.php | |
673 | php5/usr/share/php/PHP/CodeSniffer/Reports/Gitblame.php | |
674 | php5/usr/share/php/PHP/CodeSniffer/Reports/Hgblame.php | |
675 | php5/usr/share/php/PHP/CodeSniffer/Reports/Json.php | |
676 | php5/usr/share/php/PHP/CodeSniffer/Reports/Junit.php | |
677 | php5/usr/share/php/PHP/CodeSniffer/Reports/Notifysend.php | |
678 | php5/usr/share/php/PHP/CodeSniffer/Reports/Source.php | |
679 | php5/usr/share/php/PHP/CodeSniffer/Reports/Summary.php | |
680 | php5/usr/share/php/PHP/CodeSniffer/Reports/Svnblame.php | |
681 | php5/usr/share/php/PHP/CodeSniffer/Reports/VersionControl.php | |
682 | php5/usr/share/php/PHP/CodeSniffer/Reports/Xml.php | |
683 | php5/usr/share/php/PHP/CodeSniffer/Sniff.php | |
684 | php5/usr/share/php/PHP/CodeSniffer/Standards/AbstractPatternSniff.php | |
685 | php5/usr/share/php/PHP/CodeSniffer/Standards/AbstractScopeSniff.php | |
686 | php5/usr/share/php/PHP/CodeSniffer/Standards/AbstractVariableSniff.php | |
687 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Classes/DuplicateClassNameStandard.xml | |
688 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/CodeAnalysis/EmptyStatementStandard.xml | |
689 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/CodeAnalysis/ForLoopShouldBeWhileLoopStandard.xml | |
690 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/CodeAnalysis/ForLoopWithTestFunctionCallStandard.xml | |
691 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/CodeAnalysis/JumbledIncrementerStandard.xml | |
692 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/CodeAnalysis/UnconditionalIfStatementStandard.xml | |
693 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/CodeAnalysis/UnnecessaryFinalModifierStandard.xml | |
694 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/CodeAnalysis/UnusedFunctionParameterStandard.xml | |
695 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/CodeAnalysis/UselessOverridingMethodStandard.xml | |
696 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Commenting/FixmeStandard.xml | |
697 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Commenting/TodoStandard.xml | |
698 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/ControlStructures/InlineControlStructureStandard.xml | |
699 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Debug/CSSLintStandard.xml | |
700 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Debug/ClosureLinterStandard.xml | |
701 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Debug/JSHintStandard.xml | |
702 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Files/ByteOrderMarkStandard.xml | |
703 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Files/EndFileNewlineStandard.xml | |
704 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Files/EndFileNoNewlineStandard.xml | |
705 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Files/InlineHTMLStandard.xml | |
706 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Files/LineEndingsStandard.xml | |
707 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Files/LineLengthStandard.xml | |
708 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Files/LowercasedFilenameStandard.xml | |
709 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Files/OneClassPerFileStandard.xml | |
710 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Files/OneInterfacePerFileStandard.xml | |
711 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Formatting/DisallowMultipleStatementsStandard.xml | |
712 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Formatting/MultipleStatementAlignmentStandard.xml | |
713 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Formatting/NoSpaceAfterCastStandard.xml | |
714 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Formatting/SpaceAfterCastStandard.xml | |
715 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Functions/CallTimePassByReferenceStandard.xml | |
716 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Functions/FunctionCallArgumentSpacingStandard.xml | |
717 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Functions/OpeningFunctionBraceBsdAllmanStandard.xml | |
718 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Functions/OpeningFunctionBraceKernighanRitchieStandard.xml | |
719 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Metrics/CyclomaticComplexityStandard.xml | |
720 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Metrics/NestingLevelStandard.xml | |
721 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/NamingConventions/CamelCapsFunctionNameStandard.xml | |
722 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/NamingConventions/ConstructorNameStandard.xml | |
723 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/NamingConventions/UpperCaseConstantNameStandard.xml | |
724 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/PHP/CharacterBeforePHPOpeningTagStandard.xml | |
725 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/PHP/ClosingPHPTagStandard.xml | |
726 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/PHP/DeprecatedFunctionsStandard.xml | |
727 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/PHP/DisallowShortOpenTagStandard.xml | |
728 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/PHP/ForbiddenFunctionsStandard.xml | |
729 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/PHP/LowerCaseConstantStandard.xml | |
730 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/PHP/LowerCaseKeywordStandard.xml | |
731 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/PHP/NoSilencedErrorsStandard.xml | |
732 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/PHP/SAPIUsageStandard.xml | |
733 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/PHP/UpperCaseConstantStandard.xml | |
734 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/Strings/UnnecessaryStringConcatStandard.xml | |
735 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/VersionControl/SubversionPropertiesStandard.xml | |
736 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/WhiteSpace/DisallowSpaceIndentStandard.xml | |
737 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/WhiteSpace/DisallowTabIndentStandard.xml | |
738 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Docs/WhiteSpace/ScopeIndentStandard.xml | |
739 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Classes/DuplicateClassNameSniff.php | |
740 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/EmptyStatementSniff.php | |
741 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/ForLoopShouldBeWhileLoopSniff.php | |
742 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/ForLoopWithTestFunctionCallSniff.php | |
743 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/JumbledIncrementerSniff.php | |
744 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/UnconditionalIfStatementSniff.php | |
745 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/UnnecessaryFinalModifierSniff.php | |
746 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/UnusedFunctionParameterSniff.php | |
747 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/CodeAnalysis/UselessOverridingMethodSniff.php | |
748 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Commenting/FixmeSniff.php | |
749 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Commenting/TodoSniff.php | |
750 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/ControlStructures/InlineControlStructureSniff.php | |
751 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Debug/CSSLintSniff.php | |
752 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Debug/ClosureLinterSniff.php | |
753 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Debug/JSHintSniff.php | |
754 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Files/ByteOrderMarkSniff.php | |
755 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Files/EndFileNewlineSniff.php | |
756 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Files/EndFileNoNewlineSniff.php | |
757 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Files/InlineHTMLSniff.php | |
758 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Files/LineEndingsSniff.php | |
759 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Files/LineLengthSniff.php | |
760 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Files/LowercasedFilenameSniff.php | |
761 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Files/OneClassPerFileSniff.php | |
762 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Files/OneInterfacePerFileSniff.php | |
763 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Formatting/DisallowMultipleStatementsSniff.php | |
764 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Formatting/MultipleStatementAlignmentSniff.php | |
765 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Formatting/NoSpaceAfterCastSniff.php | |
766 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Formatting/SpaceAfterCastSniff.php | |
767 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Functions/CallTimePassByReferenceSniff.php | |
768 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Functions/FunctionCallArgumentSpacingSniff.php | |
769 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Functions/OpeningFunctionBraceBsdAllmanSniff.php | |
770 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Functions/OpeningFunctionBraceKernighanRitchieSniff.php | |
771 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Metrics/CyclomaticComplexitySniff.php | |
772 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Metrics/NestingLevelSniff.php | |
773 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/NamingConventions/CamelCapsFunctionNameSniff.php | |
774 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/NamingConventions/ConstructorNameSniff.php | |
775 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/NamingConventions/UpperCaseConstantNameSniff.php | |
776 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/PHP/CharacterBeforePHPOpeningTagSniff.php | |
777 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/PHP/ClosingPHPTagSniff.php | |
778 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/PHP/DeprecatedFunctionsSniff.php | |
779 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/PHP/DisallowShortOpenTagSniff.php | |
780 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/PHP/ForbiddenFunctionsSniff.php | |
781 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/PHP/LowerCaseConstantSniff.php | |
782 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/PHP/LowerCaseKeywordSniff.php | |
783 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/PHP/NoSilencedErrorsSniff.php | |
784 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/PHP/SAPIUsageSniff.php | |
785 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/PHP/SyntaxSniff.php | |
786 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/PHP/UpperCaseConstantSniff.php | |
787 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/Strings/UnnecessaryStringConcatSniff.php | |
788 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/VersionControl/SubversionPropertiesSniff.php | |
789 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/WhiteSpace/DisallowSpaceIndentSniff.php | |
790 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/WhiteSpace/DisallowTabIndentSniff.php | |
791 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/Sniffs/WhiteSpace/ScopeIndentSniff.php | |
792 | php5/usr/share/php/PHP/CodeSniffer/Standards/Generic/ruleset.xml | |
793 | php5/usr/share/php/PHP/CodeSniffer/Standards/IncorrectPatternException.php | |
794 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/Sniffs/CSS/BrowserSpecificStylesSniff.php | |
795 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/Sniffs/Channels/ChannelExceptionSniff.php | |
796 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/Sniffs/Channels/DisallowSelfActionsSniff.php | |
797 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/Sniffs/Channels/IncludeOwnSystemSniff.php | |
798 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/Sniffs/Channels/IncludeSystemSniff.php | |
799 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/Sniffs/Channels/UnusedSystemSniff.php | |
800 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/Sniffs/Commenting/FunctionCommentSniff.php | |
801 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/Sniffs/Debug/DebugCodeSniff.php | |
802 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/Sniffs/Debug/FirebugConsoleSniff.php | |
803 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/Sniffs/Objects/AssignThisSniff.php | |
804 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/Sniffs/Objects/CreateWidgetTypeCallbackSniff.php | |
805 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/Sniffs/Objects/DisallowNewWidgetSniff.php | |
806 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/Sniffs/PHP/AjaxNullComparisonSniff.php | |
807 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/Sniffs/PHP/EvalObjectFactorySniff.php | |
808 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/Sniffs/PHP/GetRequestDataSniff.php | |
809 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/Sniffs/PHP/ReturnFunctionValueSniff.php | |
810 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/Sniffs/Strings/JoinStringsSniff.php | |
811 | php5/usr/share/php/PHP/CodeSniffer/Standards/MySource/ruleset.xml | |
812 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/Classes/ClassDeclarationStandard.xml | |
813 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/Commenting/ClassCommentStandard.xml | |
814 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/Commenting/FileCommentStandard.xml | |
815 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/Commenting/FunctionCommentStandard.xml | |
816 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/Commenting/InlineCommentStandard.xml | |
817 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/ControlStructures/ControlSignatureStandard.xml | |
818 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/ControlStructures/MultiLineConditionStandard.xml | |
819 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/Files/IncludingFileStandard.xml | |
820 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/Files/LineLengthStandard.xml | |
821 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/Formatting/MultiLineAssignmentStandard.xml | |
822 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/Functions/FunctionCallSignatureStandard.xml | |
823 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/Functions/FunctionDeclarationStandard.xml | |
824 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/Functions/ValidDefaultValueStandard.xml | |
825 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/NamingConventions/ValidClassNameStandard.xml | |
826 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/NamingConventions/ValidFunctionNameStandard.xml | |
827 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/NamingConventions/ValidVariableNameStandard.xml | |
828 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/WhiteSpace/ObjectOperatorIndentStandard.xml | |
829 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/WhiteSpace/ScopeClosingBraceStandard.xml | |
830 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Docs/WhiteSpace/ScopeIndentStandard.xml | |
831 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/Classes/ClassDeclarationSniff.php | |
832 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/Commenting/ClassCommentSniff.php | |
833 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/Commenting/FileCommentSniff.php | |
834 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/Commenting/FunctionCommentSniff.php | |
835 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/Commenting/InlineCommentSniff.php | |
836 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/ControlStructures/ControlSignatureSniff.php | |
837 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/ControlStructures/MultiLineConditionSniff.php | |
838 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/Files/IncludingFileSniff.php | |
839 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/Formatting/MultiLineAssignmentSniff.php | |
840 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/Functions/FunctionCallSignatureSniff.php | |
841 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/Functions/FunctionDeclarationSniff.php | |
842 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/Functions/ValidDefaultValueSniff.php | |
843 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/NamingConventions/ValidClassNameSniff.php | |
844 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/NamingConventions/ValidFunctionNameSniff.php | |
845 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/NamingConventions/ValidVariableNameSniff.php | |
846 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/WhiteSpace/ObjectOperatorIndentSniff.php | |
847 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/WhiteSpace/ScopeClosingBraceSniff.php | |
848 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/Sniffs/WhiteSpace/ScopeIndentSniff.php | |
849 | php5/usr/share/php/PHP/CodeSniffer/Standards/PEAR/ruleset.xml | |
850 | php5/usr/share/php/PHP/CodeSniffer/Standards/PHPCS/ruleset.xml | |
851 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR1/Docs/Classes/ClassDeclarationStandard.xml | |
852 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR1/Docs/Files/SideEffectsStandard.xml | |
853 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR1/Sniffs/Classes/ClassDeclarationSniff.php | |
854 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR1/Sniffs/Files/SideEffectsSniff.php | |
855 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR1/Sniffs/Methods/CamelCapsMethodNameSniff.php | |
856 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR1/ruleset.xml | |
857 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Docs/Classes/ClassDeclarationStandard.xml | |
858 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Docs/Classes/PropertyDeclarationStandard.xml | |
859 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Docs/ControlStructures/ControlStructureSpacingStandard.xml | |
860 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Docs/ControlStructures/ElseIfDeclarationStandard.xml | |
861 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Docs/ControlStructures/SwitchDeclarationStandard.xml | |
862 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Docs/Files/EndFileNewlineStandard.xml | |
863 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Docs/Methods/MethodDeclarationStandard.xml | |
864 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Docs/Namespaces/NamespaceDeclarationStandard.xml | |
865 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Docs/Namespaces/UseDeclarationStandard.xml | |
866 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Sniffs/Classes/ClassDeclarationSniff.php | |
867 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Sniffs/Classes/PropertyDeclarationSniff.php | |
868 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/ControlStructureSpacingSniff.php | |
869 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/ElseIfDeclarationSniff.php | |
870 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/SwitchDeclarationSniff.php | |
871 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Sniffs/Files/EndFileNewlineSniff.php | |
872 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Sniffs/Methods/FunctionCallSignatureSniff.php | |
873 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Sniffs/Methods/MethodDeclarationSniff.php | |
874 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Sniffs/Namespaces/NamespaceDeclarationSniff.php | |
875 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/Sniffs/Namespaces/UseDeclarationSniff.php | |
876 | php5/usr/share/php/PHP/CodeSniffer/Standards/PSR2/ruleset.xml | |
877 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/Arrays/ArrayBracketSpacingStandard.xml | |
878 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/Arrays/ArrayDeclarationStandard.xml | |
879 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/Classes/LowercaseClassKeywordsStandard.xml | |
880 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/Classes/SelfMemberReferenceStandard.xml | |
881 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/Commenting/DocCommentAlignmentStandard.xml | |
882 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/Commenting/FunctionCommentThrowTagStandard.xml | |
883 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/ControlStructures/ForEachLoopDeclarationStandard.xml | |
884 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/ControlStructures/ForLoopDeclarationStandard.xml | |
885 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/ControlStructures/LowercaseDeclarationStandard.xml | |
886 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/Functions/FunctionDuplicateArgumentStandard.xml | |
887 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/Functions/LowercaseFunctionKeywordsStandard.xml | |
888 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/Scope/StaticThisUsageStandard.xml | |
889 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/Strings/EchoedStringsStandard.xml | |
890 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/WhiteSpace/CastSpacingStandard.xml | |
891 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/WhiteSpace/FunctionOpeningBraceStandard.xml | |
892 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/WhiteSpace/LanguageConstructSpacingStandard.xml | |
893 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/WhiteSpace/ObjectOperatorSpacingStandard.xml | |
894 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/WhiteSpace/ScopeKeywordSpacingStandard.xml | |
895 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Docs/WhiteSpace/SemicolonSpacingStandard.xml | |
896 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Arrays/ArrayBracketSpacingSniff.php | |
897 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Arrays/ArrayDeclarationSniff.php | |
898 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/ClassDefinitionClosingBraceSpaceSniff.php | |
899 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/ClassDefinitionNameSpacingSniff.php | |
900 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/ClassDefinitionOpeningBraceSpaceSniff.php | |
901 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/ColonSpacingSniff.php | |
902 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/ColourDefinitionSniff.php | |
903 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/DisallowMultipleStyleDefinitionsSniff.php | |
904 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/DuplicateClassDefinitionSniff.php | |
905 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/DuplicateStyleDefinitionSniff.php | |
906 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/EmptyClassDefinitionSniff.php | |
907 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/EmptyStyleDefinitionSniff.php | |
908 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/ForbiddenStylesSniff.php | |
909 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/IndentationSniff.php | |
910 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/LowercaseStyleDefinitionSniff.php | |
911 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/MissingColonSniff.php | |
912 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/NamedColoursSniff.php | |
913 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/OpacitySniff.php | |
914 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/SemicolonSpacingSniff.php | |
915 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CSS/ShorthandSizeSniff.php | |
916 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Classes/ClassDeclarationSniff.php | |
917 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Classes/ClassFileNameSniff.php | |
918 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Classes/DuplicatePropertySniff.php | |
919 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Classes/LowercaseClassKeywordsSniff.php | |
920 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Classes/SelfMemberReferenceSniff.php | |
921 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Classes/ValidClassNameSniff.php | |
922 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/CodeAnalysis/EmptyStatementSniff.php | |
923 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Commenting/BlockCommentSniff.php | |
924 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Commenting/ClassCommentSniff.php | |
925 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Commenting/ClosingDeclarationCommentSniff.php | |
926 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Commenting/DocCommentAlignmentSniff.php | |
927 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Commenting/EmptyCatchCommentSniff.php | |
928 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Commenting/FileCommentSniff.php | |
929 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Commenting/FunctionCommentSniff.php | |
930 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Commenting/FunctionCommentThrowTagSniff.php | |
931 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Commenting/InlineCommentSniff.php | |
932 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Commenting/LongConditionClosingCommentSniff.php | |
933 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Commenting/PostStatementCommentSniff.php | |
934 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Commenting/VariableCommentSniff.php | |
935 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/ControlSignatureSniff.php | |
936 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/ElseIfDeclarationSniff.php | |
937 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/ForEachLoopDeclarationSniff.php | |
938 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/ForLoopDeclarationSniff.php | |
939 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/InlineIfDeclarationSniff.php | |
940 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/LowercaseDeclarationSniff.php | |
941 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/ControlStructures/SwitchDeclarationSniff.php | |
942 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Debug/JSLintSniff.php | |
943 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Debug/JavaScriptLintSniff.php | |
944 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Files/FileExtensionSniff.php | |
945 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Formatting/OperatorBracketSniff.php | |
946 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Functions/FunctionDeclarationArgumentSpacingSniff.php | |
947 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Functions/FunctionDeclarationSniff.php | |
948 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Functions/FunctionDuplicateArgumentSniff.php | |
949 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Functions/GlobalFunctionSniff.php | |
950 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Functions/LowercaseFunctionKeywordsSniff.php | |
951 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Functions/MultiLineFunctionDeclarationSniff.php | |
952 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/NamingConventions/ConstantCaseSniff.php | |
953 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/NamingConventions/ValidFunctionNameSniff.php | |
954 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/NamingConventions/ValidVariableNameSniff.php | |
955 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Objects/DisallowObjectStringIndexSniff.php | |
956 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Objects/ObjectInstantiationSniff.php | |
957 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Objects/ObjectMemberCommaSniff.php | |
958 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Operators/ComparisonOperatorUsageSniff.php | |
959 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Operators/IncrementDecrementUsageSniff.php | |
960 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Operators/ValidLogicalOperatorsSniff.php | |
961 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/PHP/CommentedOutCodeSniff.php | |
962 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowBooleanStatementSniff.php | |
963 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowComparisonAssignmentSniff.php | |
964 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowInlineIfSniff.php | |
965 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowMultipleAssignmentsSniff.php | |
966 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowObEndFlushSniff.php | |
967 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/PHP/DisallowSizeFunctionsInLoopsSniff.php | |
968 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/PHP/DiscouragedFunctionsSniff.php | |
969 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/PHP/EmbeddedPhpSniff.php | |
970 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/PHP/EvalSniff.php | |
971 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/PHP/ForbiddenFunctionsSniff.php | |
972 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/PHP/GlobalKeywordSniff.php | |
973 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/PHP/HeredocSniff.php | |
974 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/PHP/InnerFunctionsSniff.php | |
975 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/PHP/LowercasePHPFunctionsSniff.php | |
976 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/PHP/NonExecutableCodeSniff.php | |
977 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Scope/MemberVarScopeSniff.php | |
978 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Scope/MethodScopeSniff.php | |
979 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Scope/StaticThisUsageSniff.php | |
980 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Strings/ConcatenationSpacingSniff.php | |
981 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Strings/DoubleQuoteUsageSniff.php | |
982 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/Strings/EchoedStringsSniff.php | |
983 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/CastSpacingSniff.php | |
984 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/ControlStructureSpacingSniff.php | |
985 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/FunctionClosingBraceSpaceSniff.php | |
986 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/FunctionOpeningBraceSpaceSniff.php | |
987 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/FunctionSpacingSniff.php | |
988 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/LanguageConstructSpacingSniff.php | |
989 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/LogicalOperatorSpacingSniff.php | |
990 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/MemberVarSpacingSniff.php | |
991 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/ObjectOperatorSpacingSniff.php | |
992 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/OperatorSpacingSniff.php | |
993 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/PropertyLabelSpacingSniff.php | |
994 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/ScopeClosingBraceSniff.php | |
995 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/ScopeKeywordSpacingSniff.php | |
996 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/SemicolonSpacingSniff.php | |
997 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/Sniffs/WhiteSpace/SuperfluousWhitespaceSniff.php | |
998 | php5/usr/share/php/PHP/CodeSniffer/Standards/Squiz/ruleset.xml | |
999 | php5/usr/share/php/PHP/CodeSniffer/Standards/Zend/Docs/Debug/CodeAnalyzerStandard.xml | |
1000 | php5/usr/share/php/PHP/CodeSniffer/Standards/Zend/Docs/Files/ClosingTagStandard.xml | |
1001 | php5/usr/share/php/PHP/CodeSniffer/Standards/Zend/Docs/NamingConventions/ValidVariableNameStandard.xml | |
1002 | php5/usr/share/php/PHP/CodeSniffer/Standards/Zend/Sniffs/Debug/CodeAnalyzerSniff.php | |
1003 | php5/usr/share/php/PHP/CodeSniffer/Standards/Zend/Sniffs/Files/ClosingTagSniff.php | |
1004 | php5/usr/share/php/PHP/CodeSniffer/Standards/Zend/Sniffs/NamingConventions/ValidVariableNameSniff.php | |
1005 | php5/usr/share/php/PHP/CodeSniffer/Standards/Zend/ruleset.xml | |
1006 | php5/usr/share/php/PHP/CodeSniffer/Tokenizers/CSS.php | |
1007 | php5/usr/share/php/PHP/CodeSniffer/Tokenizers/JS.php | |
1008 | php5/usr/share/php/PHP/CodeSniffer/Tokenizers/PHP.php | |
1009 | php5/usr/share/php/PHP/CodeSniffer/Tokens.php | |
1010 | php5/usr/share/php/test/PHP_CodeSniffer/AllTests.php | |
1011 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Core/AllTests.php | |
1012 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Core/ErrorSuppressionTest.php | |
1013 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Core/File/GetMethodParametersTest.php | |
1014 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Core/IsCamelCapsTest.php | |
1015 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/AbstractSniffUnitTest.php | |
1016 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/AllSniffs.php | |
1017 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.1.inc | |
1018 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.2.inc | |
1019 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.3.inc | |
1020 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.4.inc | |
1021 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.5.inc | |
1022 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.6.inc | |
1023 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Classes/DuplicateClassNameUnitTest.php | |
1024 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/CodeAnalysis/EmptyStatementUnitTest.inc | |
1025 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/CodeAnalysis/EmptyStatementUnitTest.php | |
1026 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.inc | |
1027 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/CodeAnalysis/ForLoopShouldBeWhileLoopUnitTest.php | |
1028 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.inc | |
1029 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/CodeAnalysis/ForLoopWithTestFunctionCallUnitTest.php | |
1030 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.inc | |
1031 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/CodeAnalysis/JumbledIncrementerUnitTest.php | |
1032 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/CodeAnalysis/UnconditionalIfStatementUnitTest.inc | |
1033 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/CodeAnalysis/UnconditionalIfStatementUnitTest.php | |
1034 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/CodeAnalysis/UnnecessaryFinalModifierUnitTest.inc | |
1035 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/CodeAnalysis/UnnecessaryFinalModifierUnitTest.php | |
1036 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.inc | |
1037 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/CodeAnalysis/UnusedFunctionParameterUnitTest.php | |
1038 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.inc | |
1039 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/CodeAnalysis/UselessOverridingMethodUnitTest.php | |
1040 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Commenting/FixmeUnitTest.inc | |
1041 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Commenting/FixmeUnitTest.js | |
1042 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Commenting/FixmeUnitTest.php | |
1043 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Commenting/TodoUnitTest.inc | |
1044 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Commenting/TodoUnitTest.js | |
1045 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Commenting/TodoUnitTest.php | |
1046 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.inc | |
1047 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.js | |
1048 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/ControlStructures/InlineControlStructureUnitTest.php | |
1049 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.inc | |
1050 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/ByteOrderMarkUnitTest.php | |
1051 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.1.css | |
1052 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.1.inc | |
1053 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.1.js | |
1054 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.2.css | |
1055 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.2.inc | |
1056 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.2.js | |
1057 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.3.css | |
1058 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.3.inc | |
1059 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.3.js | |
1060 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNewlineUnitTest.php | |
1061 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.1.css | |
1062 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.1.inc | |
1063 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.1.js | |
1064 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.2.css | |
1065 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.2.inc | |
1066 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.2.js | |
1067 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.3.css | |
1068 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.3.inc | |
1069 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.3.js | |
1070 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.4.inc | |
1071 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/EndFileNoNewlineUnitTest.php | |
1072 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/InlineHTMLUnitTest.1.inc | |
1073 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/InlineHTMLUnitTest.2.inc | |
1074 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/InlineHTMLUnitTest.3.inc | |
1075 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/InlineHTMLUnitTest.4.inc | |
1076 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/InlineHTMLUnitTest.php | |
1077 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/LineEndingsUnitTest.css | |
1078 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/LineEndingsUnitTest.inc | |
1079 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/LineEndingsUnitTest.js | |
1080 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/LineEndingsUnitTest.php | |
1081 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/LineLengthUnitTest.inc | |
1082 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/LineLengthUnitTest.php | |
1083 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/LowercasedFilenameUnitTest.inc | |
1084 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/LowercasedFilenameUnitTest.php | |
1085 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/OneClassPerFileUnitTest.inc | |
1086 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/OneClassPerFileUnitTest.php | |
1087 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/OneInterfacePerFileUnitTest.inc | |
1088 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Files/OneInterfacePerFileUnitTest.php | |
1089 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Formatting/DisallowMultipleStatementsUnitTest.inc | |
1090 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Formatting/DisallowMultipleStatementsUnitTest.php | |
1091 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.inc | |
1092 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.js | |
1093 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.php | |
1094 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Formatting/NoSpaceAfterCastUnitTest.inc | |
1095 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Formatting/NoSpaceAfterCastUnitTest.php | |
1096 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.inc | |
1097 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Formatting/SpaceAfterCastUnitTest.php | |
1098 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.inc | |
1099 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Functions/CallTimePassByReferenceUnitTest.php | |
1100 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Functions/FunctionCallArgumentSpacingUnitTest.inc | |
1101 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Functions/FunctionCallArgumentSpacingUnitTest.php | |
1102 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Functions/OpeningFunctionBraceBsdAllmanUnitTest.inc | |
1103 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Functions/OpeningFunctionBraceBsdAllmanUnitTest.php | |
1104 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Functions/OpeningFunctionBraceKernighanRitchieUnitTest.inc | |
1105 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Functions/OpeningFunctionBraceKernighanRitchieUnitTest.php | |
1106 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Metrics/CyclomaticComplexityUnitTest.inc | |
1107 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Metrics/CyclomaticComplexityUnitTest.php | |
1108 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Metrics/NestingLevelUnitTest.inc | |
1109 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Metrics/NestingLevelUnitTest.php | |
1110 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/NamingConventions/CamelCapsFunctionNameUnitTest.inc | |
1111 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/NamingConventions/CamelCapsFunctionNameUnitTest.php | |
1112 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/NamingConventions/ConstructorNameUnitTest.inc | |
1113 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/NamingConventions/ConstructorNameUnitTest.php | |
1114 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/NamingConventions/UpperCaseConstantNameUnitTest.inc | |
1115 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/NamingConventions/UpperCaseConstantNameUnitTest.php | |
1116 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/CharacterBeforePHPOpeningTagUnitTest.inc | |
1117 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/CharacterBeforePHPOpeningTagUnitTest.php | |
1118 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/ClosingPHPTagUnitTest.inc | |
1119 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/ClosingPHPTagUnitTest.php | |
1120 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/DisallowShortOpenTagUnitTest.inc | |
1121 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/DisallowShortOpenTagUnitTest.php | |
1122 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/ForbiddenFunctionsUnitTest.inc | |
1123 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/ForbiddenFunctionsUnitTest.php | |
1124 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/LowerCaseConstantUnitTest.inc | |
1125 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/LowerCaseConstantUnitTest.js | |
1126 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/LowerCaseConstantUnitTest.php | |
1127 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/LowerCaseKeywordUnitTest.inc | |
1128 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/LowerCaseKeywordUnitTest.php | |
1129 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/NoSilencedErrorsUnitTest.inc | |
1130 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/NoSilencedErrorsUnitTest.php | |
1131 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/SAPIUsageUnitTest.inc | |
1132 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/SAPIUsageUnitTest.php | |
1133 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/SyntaxUnitTest.inc | |
1134 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/SyntaxUnitTest.php | |
1135 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/UpperCaseConstantUnitTest.inc | |
1136 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/PHP/UpperCaseConstantUnitTest.php | |
1137 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Strings/UnnecessaryStringConcatUnitTest.inc | |
1138 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Strings/UnnecessaryStringConcatUnitTest.js | |
1139 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/Strings/UnnecessaryStringConcatUnitTest.php | |
1140 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/WhiteSpace/DisallowSpaceIndentUnitTest.css | |
1141 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/WhiteSpace/DisallowSpaceIndentUnitTest.inc | |
1142 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/WhiteSpace/DisallowSpaceIndentUnitTest.js | |
1143 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/WhiteSpace/DisallowSpaceIndentUnitTest.php | |
1144 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/WhiteSpace/DisallowTabIndentUnitTest.css | |
1145 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/WhiteSpace/DisallowTabIndentUnitTest.inc | |
1146 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/WhiteSpace/DisallowTabIndentUnitTest.js | |
1147 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/WhiteSpace/DisallowTabIndentUnitTest.php | |
1148 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/WhiteSpace/ScopeIndentUnitTest.inc | |
1149 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Generic/Tests/WhiteSpace/ScopeIndentUnitTest.php | |
1150 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/CSS/BrowserSpecificStylesUnitTest.css | |
1151 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/CSS/BrowserSpecificStylesUnitTest.php | |
1152 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Channels/DisallowSelfActionsUnitTest.inc | |
1153 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Channels/DisallowSelfActionsUnitTest.php | |
1154 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Channels/IncludeSystemUnitTest.inc | |
1155 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Channels/IncludeSystemUnitTest.php | |
1156 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Channels/UnusedSystemUnitTest.inc | |
1157 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Channels/UnusedSystemUnitTest.php | |
1158 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Commenting/FunctionCommentUnitTest.inc | |
1159 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Commenting/FunctionCommentUnitTest.php | |
1160 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Debug/DebugCodeUnitTest.inc | |
1161 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Debug/DebugCodeUnitTest.php | |
1162 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Debug/FirebugConsoleUnitTest.js | |
1163 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Debug/FirebugConsoleUnitTest.php | |
1164 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Objects/AssignThisUnitTest.js | |
1165 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Objects/AssignThisUnitTest.php | |
1166 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Objects/CreateWidgetTypeCallbackUnitTest.js | |
1167 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Objects/CreateWidgetTypeCallbackUnitTest.php | |
1168 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Objects/DisallowNewWidgetUnitTest.inc | |
1169 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Objects/DisallowNewWidgetUnitTest.php | |
1170 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/PHP/AjaxNullComparisonUnitTest.inc | |
1171 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/PHP/AjaxNullComparisonUnitTest.php | |
1172 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/PHP/EvalObjectFactoryUnitTest.inc | |
1173 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/PHP/EvalObjectFactoryUnitTest.php | |
1174 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/PHP/GetRequestDataUnitTest.inc | |
1175 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/PHP/GetRequestDataUnitTest.php | |
1176 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/PHP/ReturnFunctionValueUnitTest.inc | |
1177 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/PHP/ReturnFunctionValueUnitTest.php | |
1178 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Strings/JoinStringsUnitTest.js | |
1179 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/MySource/Tests/Strings/JoinStringsUnitTest.php | |
1180 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Classes/ClassDeclarationUnitTest.inc | |
1181 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Classes/ClassDeclarationUnitTest.php | |
1182 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Commenting/ClassCommentUnitTest.inc | |
1183 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Commenting/ClassCommentUnitTest.php | |
1184 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Commenting/FileCommentUnitTest.inc | |
1185 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Commenting/FileCommentUnitTest.php | |
1186 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Commenting/FunctionCommentUnitTest.inc | |
1187 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Commenting/FunctionCommentUnitTest.php | |
1188 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Commenting/InlineCommentUnitTest.inc | |
1189 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Commenting/InlineCommentUnitTest.php | |
1190 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/ControlStructures/ControlSignatureUnitTest.inc | |
1191 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/ControlStructures/ControlSignatureUnitTest.php | |
1192 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/ControlStructures/MultiLineConditionUnitTest.inc | |
1193 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/ControlStructures/MultiLineConditionUnitTest.php | |
1194 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Files/IncludingFileUnitTest.inc | |
1195 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Files/IncludingFileUnitTest.php | |
1196 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Formatting/MultiLineAssignmentUnitTest.inc | |
1197 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Formatting/MultiLineAssignmentUnitTest.php | |
1198 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Functions/FunctionCallSignatureUnitTest.inc | |
1199 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Functions/FunctionCallSignatureUnitTest.php | |
1200 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Functions/FunctionDeclarationUnitTest.inc | |
1201 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Functions/FunctionDeclarationUnitTest.php | |
1202 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Functions/ValidDefaultValueUnitTest.inc | |
1203 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/Functions/ValidDefaultValueUnitTest.php | |
1204 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/NamingConventions/ValidClassNameUnitTest.inc | |
1205 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/NamingConventions/ValidClassNameUnitTest.php | |
1206 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/NamingConventions/ValidFunctionNameUnitTest.inc | |
1207 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/NamingConventions/ValidFunctionNameUnitTest.php | |
1208 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/NamingConventions/ValidVariableNameUnitTest.inc | |
1209 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/NamingConventions/ValidVariableNameUnitTest.php | |
1210 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/WhiteSpace/ObjectOperatorIndentUnitTest.inc | |
1211 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/WhiteSpace/ObjectOperatorIndentUnitTest.php | |
1212 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/WhiteSpace/ScopeClosingBraceUnitTest.inc | |
1213 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/WhiteSpace/ScopeClosingBraceUnitTest.php | |
1214 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/WhiteSpace/ScopeIndentUnitTest.inc | |
1215 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PEAR/Tests/WhiteSpace/ScopeIndentUnitTest.php | |
1216 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR1/Tests/Classes/ClassDeclarationUnitTest.inc | |
1217 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR1/Tests/Classes/ClassDeclarationUnitTest.php | |
1218 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR1/Tests/Files/SideEffectsUnitTest.1.inc | |
1219 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR1/Tests/Files/SideEffectsUnitTest.2.inc | |
1220 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR1/Tests/Files/SideEffectsUnitTest.3.inc | |
1221 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR1/Tests/Files/SideEffectsUnitTest.4.inc | |
1222 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR1/Tests/Files/SideEffectsUnitTest.php | |
1223 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR1/Tests/Methods/CamelCapsMethodNameUnitTest.inc | |
1224 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR1/Tests/Methods/CamelCapsMethodNameUnitTest.php | |
1225 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Classes/ClassDeclarationUnitTest.inc | |
1226 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Classes/ClassDeclarationUnitTest.php | |
1227 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Classes/PropertyDeclarationUnitTest.inc | |
1228 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Classes/PropertyDeclarationUnitTest.php | |
1229 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/ControlStructures/ControlStructureSpacingUnitTest.inc | |
1230 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/ControlStructures/ControlStructureSpacingUnitTest.php | |
1231 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/ControlStructures/ElseIfDeclarationUnitTest.inc | |
1232 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/ControlStructures/ElseIfDeclarationUnitTest.php | |
1233 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/ControlStructures/SwitchDeclarationUnitTest.inc | |
1234 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/ControlStructures/SwitchDeclarationUnitTest.php | |
1235 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.1.inc | |
1236 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.2.inc | |
1237 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.3.inc | |
1238 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.4.inc | |
1239 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.5.inc | |
1240 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Files/EndFileNewlineUnitTest.php | |
1241 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Methods/FunctionCallSignatureUnitTest.inc | |
1242 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Methods/FunctionCallSignatureUnitTest.php | |
1243 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Methods/MethodDeclarationUnitTest.inc | |
1244 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Methods/MethodDeclarationUnitTest.php | |
1245 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Namespaces/NamespaceDeclarationUnitTest.inc | |
1246 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Namespaces/NamespaceDeclarationUnitTest.php | |
1247 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Namespaces/UseDeclarationUnitTest.1.inc | |
1248 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Namespaces/UseDeclarationUnitTest.2.inc | |
1249 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Namespaces/UseDeclarationUnitTest.3.inc | |
1250 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/PSR2/Tests/Namespaces/UseDeclarationUnitTest.php | |
1251 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Arrays/ArrayBracketSpacingUnitTest.inc | |
1252 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Arrays/ArrayBracketSpacingUnitTest.php | |
1253 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.inc | |
1254 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Arrays/ArrayDeclarationUnitTest.php | |
1255 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/ClassDefinitionClosingBraceSpaceUnitTest.css | |
1256 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/ClassDefinitionClosingBraceSpaceUnitTest.php | |
1257 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/ClassDefinitionNameSpacingUnitTest.css | |
1258 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/ClassDefinitionNameSpacingUnitTest.php | |
1259 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/ClassDefinitionOpeningBraceSpaceUnitTest.css | |
1260 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/ClassDefinitionOpeningBraceSpaceUnitTest.php | |
1261 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/ColonSpacingUnitTest.css | |
1262 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/ColonSpacingUnitTest.php | |
1263 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/ColourDefinitionUnitTest.css | |
1264 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/ColourDefinitionUnitTest.php | |
1265 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/DisallowMultipleStyleDefinitionsUnitTest.css | |
1266 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/DisallowMultipleStyleDefinitionsUnitTest.php | |
1267 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/DuplicateClassDefinitionUnitTest.css | |
1268 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/DuplicateClassDefinitionUnitTest.php | |
1269 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/DuplicateStyleDefinitionUnitTest.css | |
1270 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/DuplicateStyleDefinitionUnitTest.php | |
1271 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/EmptyClassDefinitionUnitTest.css | |
1272 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/EmptyClassDefinitionUnitTest.php | |
1273 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/EmptyStyleDefinitionUnitTest.css | |
1274 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/EmptyStyleDefinitionUnitTest.php | |
1275 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/ForbiddenStylesUnitTest.css | |
1276 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/ForbiddenStylesUnitTest.php | |
1277 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/IndentationUnitTest.css | |
1278 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/IndentationUnitTest.php | |
1279 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/LowercaseStyleDefinitionUnitTest.css | |
1280 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/LowercaseStyleDefinitionUnitTest.php | |
1281 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/MissingColonUnitTest.css | |
1282 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/MissingColonUnitTest.php | |
1283 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/NamedColoursUnitTest.css | |
1284 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/NamedColoursUnitTest.php | |
1285 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/OpacityUnitTest.css | |
1286 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/OpacityUnitTest.php | |
1287 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/SemicolonSpacingUnitTest.css | |
1288 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/SemicolonSpacingUnitTest.php | |
1289 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/ShorthandSizeUnitTest.css | |
1290 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CSS/ShorthandSizeUnitTest.php | |
1291 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Classes/ClassDeclarationUnitTest.inc | |
1292 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Classes/ClassDeclarationUnitTest.php | |
1293 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Classes/ClassFileNameUnitTest.inc | |
1294 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Classes/ClassFileNameUnitTest.php | |
1295 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Classes/DuplicatePropertyUnitTest.js | |
1296 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Classes/DuplicatePropertyUnitTest.php | |
1297 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Classes/LowercaseClassKeywordsUnitTest.inc | |
1298 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Classes/LowercaseClassKeywordsUnitTest.php | |
1299 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Classes/SelfMemberReferenceUnitTest.inc | |
1300 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Classes/SelfMemberReferenceUnitTest.php | |
1301 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Classes/ValidClassNameUnitTest.inc | |
1302 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Classes/ValidClassNameUnitTest.php | |
1303 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CodeAnalysis/EmptyStatementUnitTest.inc | |
1304 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/CodeAnalysis/EmptyStatementUnitTest.php | |
1305 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/BlockCommentUnitTest.inc | |
1306 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/BlockCommentUnitTest.php | |
1307 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/ClassCommentUnitTest.inc | |
1308 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/ClassCommentUnitTest.php | |
1309 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/ClosingDeclarationCommentUnitTest.inc | |
1310 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/ClosingDeclarationCommentUnitTest.php | |
1311 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.inc | |
1312 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.php | |
1313 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/EmptyCatchCommentUnitTest.inc | |
1314 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/EmptyCatchCommentUnitTest.php | |
1315 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.inc | |
1316 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.js | |
1317 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/FileCommentUnitTest.php | |
1318 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/FunctionCommentThrowTagUnitTest.inc | |
1319 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/FunctionCommentThrowTagUnitTest.php | |
1320 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/FunctionCommentUnitTest.inc | |
1321 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/FunctionCommentUnitTest.php | |
1322 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/InlineCommentUnitTest.inc | |
1323 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/InlineCommentUnitTest.js | |
1324 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/InlineCommentUnitTest.php | |
1325 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/LongConditionClosingCommentUnitTest.inc | |
1326 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/LongConditionClosingCommentUnitTest.js | |
1327 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/LongConditionClosingCommentUnitTest.php | |
1328 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/PostStatementCommentUnitTest.inc | |
1329 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/PostStatementCommentUnitTest.js | |
1330 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/PostStatementCommentUnitTest.php | |
1331 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.inc | |
1332 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.php | |
1333 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/ControlStructures/ControlSignatureUnitTest.inc | |
1334 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/ControlStructures/ControlSignatureUnitTest.js | |
1335 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/ControlStructures/ControlSignatureUnitTest.php | |
1336 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/ControlStructures/ElseIfDeclarationUnitTest.inc | |
1337 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/ControlStructures/ElseIfDeclarationUnitTest.php | |
1338 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/ControlStructures/ForEachLoopDeclarationUnitTest.inc | |
1339 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/ControlStructures/ForEachLoopDeclarationUnitTest.php | |
1340 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.inc | |
1341 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.js | |
1342 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/ControlStructures/ForLoopDeclarationUnitTest.php | |
1343 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/ControlStructures/InlineIfDeclarationUnitTest.inc | |
1344 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/ControlStructures/InlineIfDeclarationUnitTest.php | |
1345 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/ControlStructures/LowercaseDeclarationUnitTest.inc | |
1346 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/ControlStructures/LowercaseDeclarationUnitTest.php | |
1347 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/ControlStructures/SwitchDeclarationUnitTest.inc | |
1348 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/ControlStructures/SwitchDeclarationUnitTest.js | |
1349 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/ControlStructures/SwitchDeclarationUnitTest.php | |
1350 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Debug/JSLintUnitTest.js | |
1351 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Debug/JSLintUnitTest.php | |
1352 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Debug/JavaScriptLintUnitTest.js | |
1353 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Debug/JavaScriptLintUnitTest.php | |
1354 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Files/FileExtensionUnitTest.1.inc | |
1355 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Files/FileExtensionUnitTest.2.inc | |
1356 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Files/FileExtensionUnitTest.3.inc | |
1357 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Files/FileExtensionUnitTest.4.inc | |
1358 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Files/FileExtensionUnitTest.php | |
1359 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.inc | |
1360 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.js | |
1361 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Formatting/OperatorBracketUnitTest.php | |
1362 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Functions/FunctionDeclarationArgumentSpacingUnitTest.inc | |
1363 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Functions/FunctionDeclarationArgumentSpacingUnitTest.php | |
1364 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Functions/FunctionDeclarationUnitTest.inc | |
1365 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Functions/FunctionDeclarationUnitTest.php | |
1366 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Functions/FunctionDuplicateArgumentUnitTest.inc | |
1367 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Functions/FunctionDuplicateArgumentUnitTest.php | |
1368 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Functions/GlobalFunctionUnitTest.inc | |
1369 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Functions/GlobalFunctionUnitTest.php | |
1370 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Functions/LowercaseFunctionKeywordsUnitTest.inc | |
1371 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Functions/LowercaseFunctionKeywordsUnitTest.php | |
1372 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Functions/MultiLineFunctionDeclarationUnitTest.inc | |
1373 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Functions/MultiLineFunctionDeclarationUnitTest.php | |
1374 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/NamingConventions/ConstantCaseUnitTest.inc | |
1375 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/NamingConventions/ConstantCaseUnitTest.js | |
1376 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/NamingConventions/ConstantCaseUnitTest.php | |
1377 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/NamingConventions/ValidFunctionNameUnitTest.inc | |
1378 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/NamingConventions/ValidFunctionNameUnitTest.php | |
1379 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/NamingConventions/ValidVariableNameUnitTest.inc | |
1380 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/NamingConventions/ValidVariableNameUnitTest.php | |
1381 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Objects/DisallowObjectStringIndexUnitTest.js | |
1382 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Objects/DisallowObjectStringIndexUnitTest.php | |
1383 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Objects/ObjectInstantiationUnitTest.inc | |
1384 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Objects/ObjectInstantiationUnitTest.php | |
1385 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Objects/ObjectMemberCommaUnitTest.js | |
1386 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Objects/ObjectMemberCommaUnitTest.php | |
1387 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Operators/ComparisonOperatorUsageUnitTest.inc | |
1388 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Operators/ComparisonOperatorUsageUnitTest.js | |
1389 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Operators/ComparisonOperatorUsageUnitTest.php | |
1390 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Operators/IncrementDecrementUsageUnitTest.inc | |
1391 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Operators/IncrementDecrementUsageUnitTest.php | |
1392 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Operators/ValidLogicalOperatorsUnitTest.inc | |
1393 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Operators/ValidLogicalOperatorsUnitTest.php | |
1394 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/CommentedOutCodeUnitTest.css | |
1395 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/CommentedOutCodeUnitTest.inc | |
1396 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/CommentedOutCodeUnitTest.php | |
1397 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/DisallowBooleanStatementUnitTest.inc | |
1398 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/DisallowBooleanStatementUnitTest.php | |
1399 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/DisallowComparisonAssignmentUnitTest.inc | |
1400 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/DisallowComparisonAssignmentUnitTest.php | |
1401 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/DisallowInlineIfUnitTest.inc | |
1402 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/DisallowInlineIfUnitTest.js | |
1403 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/DisallowInlineIfUnitTest.php | |
1404 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/DisallowMultipleAssignmentsUnitTest.inc | |
1405 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/DisallowMultipleAssignmentsUnitTest.php | |
1406 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/DisallowObEndFlushUnitTest.inc | |
1407 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/DisallowObEndFlushUnitTest.php | |
1408 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/DisallowSizeFunctionsInLoopsUnitTest.inc | |
1409 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/DisallowSizeFunctionsInLoopsUnitTest.js | |
1410 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/DisallowSizeFunctionsInLoopsUnitTest.php | |
1411 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/DiscouragedFunctionsUnitTest.inc | |
1412 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/DiscouragedFunctionsUnitTest.php | |
1413 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.inc | |
1414 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/EmbeddedPhpUnitTest.php | |
1415 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/EvalUnitTest.inc | |
1416 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/EvalUnitTest.php | |
1417 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/ForbiddenFunctionsUnitTest.inc | |
1418 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/ForbiddenFunctionsUnitTest.php | |
1419 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/GlobalKeywordUnitTest.inc | |
1420 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/GlobalKeywordUnitTest.php | |
1421 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/HeredocUnitTest.inc | |
1422 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/HeredocUnitTest.php | |
1423 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/InnerFunctionsUnitTest.inc | |
1424 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/InnerFunctionsUnitTest.php | |
1425 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/LowercasePHPFunctionsUnitTest.inc | |
1426 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/LowercasePHPFunctionsUnitTest.php | |
1427 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/NonExecutableCodeUnitTest.inc | |
1428 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/PHP/NonExecutableCodeUnitTest.php | |
1429 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Scope/MemberVarScopeUnitTest.inc | |
1430 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Scope/MemberVarScopeUnitTest.php | |
1431 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Scope/MethodScopeUnitTest.inc | |
1432 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Scope/MethodScopeUnitTest.php | |
1433 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Scope/StaticThisUsageUnitTest.inc | |
1434 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Scope/StaticThisUsageUnitTest.php | |
1435 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Strings/ConcatenationSpacingUnitTest.inc | |
1436 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Strings/ConcatenationSpacingUnitTest.php | |
1437 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Strings/DoubleQuoteUsageUnitTest.inc | |
1438 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Strings/DoubleQuoteUsageUnitTest.php | |
1439 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Strings/EchoedStringsUnitTest.inc | |
1440 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/Strings/EchoedStringsUnitTest.php | |
1441 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/CastSpacingUnitTest.inc | |
1442 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/CastSpacingUnitTest.php | |
1443 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/ControlStructureSpacingUnitTest.inc | |
1444 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/ControlStructureSpacingUnitTest.js | |
1445 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/ControlStructureSpacingUnitTest.php | |
1446 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/FunctionClosingBraceSpaceUnitTest.inc | |
1447 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/FunctionClosingBraceSpaceUnitTest.js | |
1448 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/FunctionClosingBraceSpaceUnitTest.php | |
1449 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/FunctionOpeningBraceSpaceUnitTest.inc | |
1450 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/FunctionOpeningBraceSpaceUnitTest.js | |
1451 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/FunctionOpeningBraceSpaceUnitTest.php | |
1452 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/FunctionSpacingUnitTest.inc | |
1453 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/FunctionSpacingUnitTest.php | |
1454 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/LanguageConstructSpacingUnitTest.inc | |
1455 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/LanguageConstructSpacingUnitTest.php | |
1456 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/LogicalOperatorSpacingUnitTest.inc | |
1457 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/LogicalOperatorSpacingUnitTest.js | |
1458 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/LogicalOperatorSpacingUnitTest.php | |
1459 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/MemberVarSpacingUnitTest.inc | |
1460 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/MemberVarSpacingUnitTest.php | |
1461 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/ObjectOperatorSpacingUnitTest.inc | |
1462 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/ObjectOperatorSpacingUnitTest.php | |
1463 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.inc | |
1464 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.js | |
1465 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/OperatorSpacingUnitTest.php | |
1466 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/PropertyLabelSpacingUnitTest.js | |
1467 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/PropertyLabelSpacingUnitTest.php | |
1468 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/ScopeClosingBraceUnitTest.inc | |
1469 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/ScopeClosingBraceUnitTest.php | |
1470 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.inc | |
1471 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.php | |
1472 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/SemicolonSpacingUnitTest.inc | |
1473 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/SemicolonSpacingUnitTest.js | |
1474 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/SemicolonSpacingUnitTest.php | |
1475 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.1.css | |
1476 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.1.js | |
1477 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.2.css | |
1478 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.2.js | |
1479 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.3.css | |
1480 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.3.js | |
1481 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.inc | |
1482 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Squiz/Tests/WhiteSpace/SuperfluousWhitespaceUnitTest.php | |
1483 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Zend/Tests/Debug/CodeAnalyzerUnitTest.inc | |
1484 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Zend/Tests/Debug/CodeAnalyzerUnitTest.php | |
1485 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Zend/Tests/Files/ClosingTagUnitTest.inc | |
1486 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Zend/Tests/Files/ClosingTagUnitTest.php | |
1487 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Zend/Tests/NamingConventions/ValidVariableNameUnitTest.inc | |
1488 | php5/usr/share/php/test/PHP_CodeSniffer/CodeSniffer/Standards/Zend/Tests/NamingConventions/ValidVariableNameUnitTest.php | |
1489 | php5/usr/share/php/test/PHP_CodeSniffer/TestSuite.php | |
1490 | t/00-report-prereqs.dd | |
1491 | t/00-report-prereqs.t | |
63 | 1492 | t/Basic.t |
64 | 1493 | t/Conf.t |
65 | 1494 | t/Zglob.t |
69 | 1498 | t/author-Plugin-JSHint.t |
70 | 1499 | t/author-Plugin-JSLint.t |
71 | 1500 | t/author-Plugin-MasonTidy.t |
1501 | t/author-Plugin-PHPCodeSniffer.t | |
72 | 1502 | t/author-Plugin-PerlCritic.t |
73 | 1503 | t/author-Plugin-PerlTidy.t |
1504 | t/author-Plugin-PerlTidySweet.t | |
74 | 1505 | t/author-Plugin-PodChecker.t |
75 | 1506 | t/author-Plugin-PodSpell.t |
76 | 1507 | t/author-Plugin-PodTidy.t |
77 | 1508 | t/author-Plugin-SortLines.t |
78 | 1509 | t/author-Util.t |
1510 | t/author-mojibake.t | |
1511 | t/author-no-tabs.t | |
1512 | t/author-pod-spell.t | |
1513 | t/author-pod-syntax.t | |
1514 | t/author-self-tidyall.t | |
1515 | t/author-test-version.t | |
79 | 1516 | t/author-tidy-and-critic.t |
80 | xt/tidyall.t | |
1517 | t/lib/Code/TidyAll/Test/Class.pm | |
1518 | t/lib/Code/TidyAll/Test/Plugin/AToZ.pm | |
1519 | t/lib/Code/TidyAll/Test/Plugin/AlwaysPhonetic.pm | |
1520 | t/lib/Code/TidyAll/Test/Plugin/CheckUpper.pm | |
1521 | t/lib/Code/TidyAll/Test/Plugin/RepeatFoo.pm | |
1522 | t/lib/Code/TidyAll/Test/Plugin/ReverseFoo.pm | |
1523 | t/lib/Code/TidyAll/Test/Plugin/UpperText.pm | |
1524 | t/lib/Test/Code/TidyAll/Basic.pm | |
1525 | t/lib/Test/Code/TidyAll/Conf.pm | |
1526 | t/lib/Test/Code/TidyAll/Git.pm | |
1527 | t/lib/Test/Code/TidyAll/Plugin.pm | |
1528 | t/lib/Test/Code/TidyAll/Plugin/CSSUnminifier.pm | |
1529 | t/lib/Test/Code/TidyAll/Plugin/JSBeautify.pm | |
1530 | t/lib/Test/Code/TidyAll/Plugin/JSHint.pm | |
1531 | t/lib/Test/Code/TidyAll/Plugin/JSLint.pm | |
1532 | t/lib/Test/Code/TidyAll/Plugin/MasonTidy.pm | |
1533 | t/lib/Test/Code/TidyAll/Plugin/PHPCodeSniffer.pm | |
1534 | t/lib/Test/Code/TidyAll/Plugin/PerlCritic.pm | |
1535 | t/lib/Test/Code/TidyAll/Plugin/PerlTidy.pm | |
1536 | t/lib/Test/Code/TidyAll/Plugin/PerlTidySweet.pm | |
1537 | t/lib/Test/Code/TidyAll/Plugin/PodChecker.pm | |
1538 | t/lib/Test/Code/TidyAll/Plugin/PodSpell.pm | |
1539 | t/lib/Test/Code/TidyAll/Plugin/PodTidy.pm | |
1540 | t/lib/Test/Code/TidyAll/Plugin/SortLines.pm | |
1541 | t/lib/Test/Code/TidyAll/SVN.pm | |
1542 | t/lib/Test/Code/TidyAll/Util.pm | |
1543 | t/lib/Test/Code/TidyAll/Zglob.pm | |
1544 | t/release-cpan-changes.t | |
1545 | tidyall.ini | |
1546 | weaver.ini |
0 | 0 | { |
1 | "abstract" : "Tidy and validate code in many ways at once", | |
1 | "abstract" : "Engine for tidyall, your all-in-one code tidier and validator", | |
2 | 2 | "author" : [ |
3 | "Jonathan Swartz <swartz@pobox.com>" | |
3 | "Jonathan Swartz <swartz@pobox.com>", | |
4 | "Dave Rolsky <autarch@urth.org>" | |
4 | 5 | ], |
5 | 6 | "dynamic_config" : 0, |
6 | "generated_by" : "Dist::Zilla version 5.012, CPAN::Meta::Converter version 2.131560", | |
7 | "generated_by" : "Dist::Zilla version 5.041, CPAN::Meta::Converter version 2.150005", | |
7 | 8 | "license" : [ |
8 | 9 | "perl_5" |
9 | 10 | ], |
10 | 11 | "meta-spec" : { |
11 | 12 | "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", |
12 | "version" : "2" | |
13 | "version" : 2 | |
13 | 14 | }, |
14 | 15 | "name" : "Code-TidyAll", |
15 | 16 | "no_index" : { |
16 | "directory" : [ | |
17 | "lib/Code/TidyAll/t", | |
18 | "lib/Code/TidyAll/Test" | |
19 | ], | |
20 | 17 | "file" : [ |
21 | 18 | "lib/Code/TidyAll/Util.pm" |
22 | 19 | ] |
24 | 21 | "prereqs" : { |
25 | 22 | "configure" : { |
26 | 23 | "requires" : { |
27 | "ExtUtils::MakeMaker" : "6.30" | |
24 | "ExtUtils::MakeMaker" : "0" | |
25 | } | |
26 | }, | |
27 | "develop" : { | |
28 | "requires" : { | |
29 | "CHI" : "0", | |
30 | "Code::TidyAll" : "0", | |
31 | "Code::TidyAll::Plugin::Perl::AlignMooseAttributes" : "0", | |
32 | "JSON::MaybeXS" : "0", | |
33 | "Mason::Tidy" : "0", | |
34 | "Mason::Tidy::App" : "0", | |
35 | "Perl::Critic" : "1.123", | |
36 | "Perl::Critic::Policy::Moose::RequireMakeImmutable" : "0", | |
37 | "Perl::Tidy" : "20150815", | |
38 | "Perl::Tidy::Sweetened" : "1.00", | |
39 | "Pod::Checker" : "0", | |
40 | "Pod::Spell" : "0", | |
41 | "Pod::Tidy" : "0", | |
42 | "SVN::Look" : "0", | |
43 | "Test::CPAN::Changes" : "0.19", | |
44 | "Test::Mojibake" : "0", | |
45 | "Test::More" : "0.88", | |
46 | "Test::NoTabs" : "0", | |
47 | "Test::Pod" : "1.41", | |
48 | "Test::Spelling" : "0.12", | |
49 | "Test::Version" : "1" | |
28 | 50 | } |
29 | 51 | }, |
30 | 52 | "runtime" : { |
31 | 53 | "requires" : { |
32 | "Capture::Tiny" : "0.12", | |
54 | "Capture::Tiny" : "0", | |
33 | 55 | "Config::INI::Reader" : "0", |
56 | "Cwd" : "0", | |
57 | "Data::Dumper" : "0", | |
34 | 58 | "Date::Format" : "0", |
35 | "Digest::SHA1" : "0", | |
59 | "Digest::SHA" : "0", | |
60 | "Exporter" : "0", | |
36 | 61 | "File::Basename" : "0", |
37 | 62 | "File::Find" : "0", |
38 | 63 | "File::Path" : "0", |
64 | "File::Slurp::Tiny" : "0", | |
65 | "File::Spec::Functions" : "0", | |
39 | 66 | "File::Temp" : "0", |
67 | "File::Which" : "0", | |
40 | 68 | "File::Zglob" : "0", |
41 | 69 | "Getopt::Long" : "0", |
42 | 70 | "Guard" : "0", |
43 | 71 | "IPC::Run3" : "0", |
44 | "IPC::System::Simple" : "0.15", | |
72 | "IPC::System::Simple" : "0", | |
45 | 73 | "List::MoreUtils" : "0", |
46 | 74 | "Log::Any" : "0", |
47 | "Moo" : "0.0091010", | |
75 | "Moo" : "0", | |
76 | "Moo::Role" : "0", | |
48 | 77 | "Scalar::Util" : "0", |
78 | "Test::Builder" : "0", | |
79 | "Text::Diff" : "0", | |
80 | "Text::Diff::Table" : "0", | |
49 | 81 | "Text::ParseWords" : "0", |
50 | 82 | "Time::Duration::Parse" : "0", |
51 | "Try::Tiny" : "0" | |
83 | "Try::Tiny" : "0", | |
84 | "base" : "0", | |
85 | "constant" : "0", | |
86 | "strict" : "0", | |
87 | "vars" : "0", | |
88 | "warnings" : "0" | |
52 | 89 | } |
53 | 90 | }, |
54 | 91 | "test" : { |
92 | "recommends" : { | |
93 | "CPAN::Meta" : "2.120900" | |
94 | }, | |
55 | 95 | "requires" : { |
56 | "Test::Class::Most" : "0" | |
96 | "Encode" : "0", | |
97 | "ExtUtils::MakeMaker" : "0", | |
98 | "File::Spec" : "0", | |
99 | "Test::Class::Most" : "0", | |
100 | "Test::Differences" : "0", | |
101 | "Test::More" : "0.96", | |
102 | "Test::Warnings" : "0", | |
103 | "autodie" : "0", | |
104 | "lib" : "0" | |
57 | 105 | } |
106 | } | |
107 | }, | |
108 | "provides" : { | |
109 | "Code::TidyAll" : { | |
110 | "file" : "lib/Code/TidyAll.pm", | |
111 | "version" : "0.32" | |
112 | }, | |
113 | "Code::TidyAll::Cache" : { | |
114 | "file" : "lib/Code/TidyAll/Cache.pm", | |
115 | "version" : "0.32" | |
116 | }, | |
117 | "Code::TidyAll::CacheModel" : { | |
118 | "file" : "lib/Code/TidyAll/CacheModel.pm", | |
119 | "version" : "0.32" | |
120 | }, | |
121 | "Code::TidyAll::CacheModel::Shared" : { | |
122 | "file" : "lib/Code/TidyAll/CacheModel/Shared.pm", | |
123 | "version" : "0.32" | |
124 | }, | |
125 | "Code::TidyAll::Config::INI::Reader" : { | |
126 | "file" : "lib/Code/TidyAll/Config/INI/Reader.pm", | |
127 | "version" : "0.32" | |
128 | }, | |
129 | "Code::TidyAll::Git::Precommit" : { | |
130 | "file" : "lib/Code/TidyAll/Git/Precommit.pm", | |
131 | "version" : "0.32" | |
132 | }, | |
133 | "Code::TidyAll::Git::Prereceive" : { | |
134 | "file" : "lib/Code/TidyAll/Git/Prereceive.pm", | |
135 | "version" : "0.32" | |
136 | }, | |
137 | "Code::TidyAll::Git::Util" : { | |
138 | "file" : "lib/Code/TidyAll/Git/Util.pm", | |
139 | "version" : "0.32" | |
140 | }, | |
141 | "Code::TidyAll::Plugin" : { | |
142 | "file" : "lib/Code/TidyAll/Plugin.pm", | |
143 | "version" : "0.32" | |
144 | }, | |
145 | "Code::TidyAll::Plugin::CSSUnminifier" : { | |
146 | "file" : "lib/Code/TidyAll/Plugin/CSSUnminifier.pm", | |
147 | "version" : "0.32" | |
148 | }, | |
149 | "Code::TidyAll::Plugin::DiffOnTidyError" : { | |
150 | "file" : "lib/Code/TidyAll/Plugin/DiffOnTidyError.pm", | |
151 | "version" : "0.32" | |
152 | }, | |
153 | "Code::TidyAll::Plugin::JSBeautify" : { | |
154 | "file" : "lib/Code/TidyAll/Plugin/JSBeautify.pm", | |
155 | "version" : "0.32" | |
156 | }, | |
157 | "Code::TidyAll::Plugin::JSHint" : { | |
158 | "file" : "lib/Code/TidyAll/Plugin/JSHint.pm", | |
159 | "version" : "0.32" | |
160 | }, | |
161 | "Code::TidyAll::Plugin::JSLint" : { | |
162 | "file" : "lib/Code/TidyAll/Plugin/JSLint.pm", | |
163 | "version" : "0.32" | |
164 | }, | |
165 | "Code::TidyAll::Plugin::JSON" : { | |
166 | "file" : "lib/Code/TidyAll/Plugin/JSON.pm", | |
167 | "version" : "0.32" | |
168 | }, | |
169 | "Code::TidyAll::Plugin::MasonTidy" : { | |
170 | "file" : "lib/Code/TidyAll/Plugin/MasonTidy.pm", | |
171 | "version" : "0.32" | |
172 | }, | |
173 | "Code::TidyAll::Plugin::PHPCodeSniffer" : { | |
174 | "file" : "lib/Code/TidyAll/Plugin/PHPCodeSniffer.pm", | |
175 | "version" : "0.32" | |
176 | }, | |
177 | "Code::TidyAll::Plugin::PerlCritic" : { | |
178 | "file" : "lib/Code/TidyAll/Plugin/PerlCritic.pm", | |
179 | "version" : "0.32" | |
180 | }, | |
181 | "Code::TidyAll::Plugin::PerlTidy" : { | |
182 | "file" : "lib/Code/TidyAll/Plugin/PerlTidy.pm", | |
183 | "version" : "0.32" | |
184 | }, | |
185 | "Code::TidyAll::Plugin::PerlTidySweet" : { | |
186 | "file" : "lib/Code/TidyAll/Plugin/PerlTidySweet.pm", | |
187 | "version" : "0.32" | |
188 | }, | |
189 | "Code::TidyAll::Plugin::PodChecker" : { | |
190 | "file" : "lib/Code/TidyAll/Plugin/PodChecker.pm", | |
191 | "version" : "0.32" | |
192 | }, | |
193 | "Code::TidyAll::Plugin::PodSpell" : { | |
194 | "file" : "lib/Code/TidyAll/Plugin/PodSpell.pm", | |
195 | "version" : "0.32" | |
196 | }, | |
197 | "Code::TidyAll::Plugin::PodTidy" : { | |
198 | "file" : "lib/Code/TidyAll/Plugin/PodTidy.pm", | |
199 | "version" : "0.32" | |
200 | }, | |
201 | "Code::TidyAll::Plugin::SortLines" : { | |
202 | "file" : "lib/Code/TidyAll/Plugin/SortLines.pm", | |
203 | "version" : "0.32" | |
204 | }, | |
205 | "Code::TidyAll::Result" : { | |
206 | "file" : "lib/Code/TidyAll/Result.pm", | |
207 | "version" : "0.32" | |
208 | }, | |
209 | "Code::TidyAll::Role::Tempdir" : { | |
210 | "file" : "lib/Code/TidyAll/Role/Tempdir.pm", | |
211 | "version" : "0.32" | |
212 | }, | |
213 | "Code::TidyAll::SVN::Precommit" : { | |
214 | "file" : "lib/Code/TidyAll/SVN/Precommit.pm", | |
215 | "version" : "0.32" | |
216 | }, | |
217 | "Code::TidyAll::SVN::Util" : { | |
218 | "file" : "lib/Code/TidyAll/SVN/Util.pm", | |
219 | "version" : "0.32" | |
220 | }, | |
221 | "Code::TidyAll::Util::Zglob" : { | |
222 | "file" : "lib/Code/TidyAll/Util/Zglob.pm", | |
223 | "version" : "0.32" | |
224 | }, | |
225 | "Test::Code::TidyAll" : { | |
226 | "file" : "lib/Test/Code/TidyAll.pm", | |
227 | "version" : "0.32" | |
58 | 228 | } |
59 | 229 | }, |
60 | 230 | "release_status" : "stable", |
61 | 231 | "resources" : { |
62 | 232 | "bugtracker" : { |
63 | 233 | "mailto" : "bug-code-tidyall@rt.cpan.org", |
64 | "web" : "http://rt.cpan.org/NoAuth/Bugs.html?Dist=Code-TidyAll" | |
65 | }, | |
234 | "web" : "http://rt.cpan.org/Public/Dist/Display.html?Name=Code-TidyAll" | |
235 | }, | |
236 | "homepage" : "http://metacpan.org/release/Code-TidyAll", | |
66 | 237 | "repository" : { |
67 | 238 | "type" : "git", |
68 | "url" : "git://github.com/jonswar/perl-code-tidyall.git", | |
69 | "web" : "https://github.com/jonswar/perl-code-tidyall" | |
239 | "url" : "git://github.com/houseabsolute/perl-code-tidyall.git", | |
240 | "web" : "https://github.com/houseabsolute/perl-code-tidyall" | |
70 | 241 | } |
71 | 242 | }, |
72 | "version" : "0.20" | |
243 | "version" : "0.32", | |
244 | "x_Dist_Zilla" : { | |
245 | "perl" : { | |
246 | "version" : "5.022000" | |
247 | }, | |
248 | "plugins" : [ | |
249 | { | |
250 | "class" : "Dist::Zilla::Plugin::Authority", | |
251 | "name" : "@DROLSKY/Authority", | |
252 | "version" : "1.009" | |
253 | }, | |
254 | { | |
255 | "class" : "Dist::Zilla::Plugin::AutoPrereqs", | |
256 | "name" : "@DROLSKY/AutoPrereqs", | |
257 | "version" : "5.041" | |
258 | }, | |
259 | { | |
260 | "class" : "Dist::Zilla::Plugin::CopyFilesFromBuild", | |
261 | "name" : "@DROLSKY/CopyFilesFromBuild", | |
262 | "version" : "0.151680" | |
263 | }, | |
264 | { | |
265 | "class" : "Dist::Zilla::Plugin::Git::GatherDir", | |
266 | "config" : { | |
267 | "Dist::Zilla::Plugin::GatherDir" : { | |
268 | "exclude_filename" : [ | |
269 | "Build.PL", | |
270 | "LICENSE", | |
271 | "Makefile.PL", | |
272 | "README.md", | |
273 | "cpanfile" | |
274 | ], | |
275 | "exclude_match" : [], | |
276 | "follow_symlinks" : 0, | |
277 | "include_dotfiles" : 0, | |
278 | "prefix" : "", | |
279 | "prune_directory" : [], | |
280 | "root" : "." | |
281 | }, | |
282 | "Dist::Zilla::Plugin::Git::GatherDir" : { | |
283 | "include_untracked" : 0 | |
284 | } | |
285 | }, | |
286 | "name" : "@DROLSKY/Git::GatherDir", | |
287 | "version" : "2.036" | |
288 | }, | |
289 | { | |
290 | "class" : "Dist::Zilla::Plugin::GitHub::Meta", | |
291 | "name" : "@DROLSKY/GitHub::Meta", | |
292 | "version" : "0.41" | |
293 | }, | |
294 | { | |
295 | "class" : "Dist::Zilla::Plugin::GitHub::Update", | |
296 | "config" : { | |
297 | "Dist::Zilla::Plugin::GitHub::Update" : { | |
298 | "metacpan" : 1 | |
299 | } | |
300 | }, | |
301 | "name" : "@DROLSKY/GitHub::Update", | |
302 | "version" : "0.41" | |
303 | }, | |
304 | { | |
305 | "class" : "Dist::Zilla::Plugin::MetaResources", | |
306 | "name" : "@DROLSKY/MetaResources", | |
307 | "version" : "5.041" | |
308 | }, | |
309 | { | |
310 | "class" : "Dist::Zilla::Plugin::MetaProvides::Package", | |
311 | "config" : { | |
312 | "Dist::Zilla::Plugin::MetaProvides::Package" : { | |
313 | "finder_objects" : [ | |
314 | { | |
315 | "class" : "Dist::Zilla::Plugin::FinderCode", | |
316 | "name" : "@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM", | |
317 | "version" : "5.041" | |
318 | } | |
319 | ] | |
320 | }, | |
321 | "Dist::Zilla::Role::MetaProvider::Provider" : { | |
322 | "inherit_missing" : "1", | |
323 | "inherit_version" : "1", | |
324 | "meta_noindex" : "1" | |
325 | } | |
326 | }, | |
327 | "name" : "@DROLSKY/MetaProvides::Package", | |
328 | "version" : "2.003001" | |
329 | }, | |
330 | { | |
331 | "class" : "Dist::Zilla::Plugin::NextRelease", | |
332 | "name" : "@DROLSKY/NextRelease", | |
333 | "version" : "5.041" | |
334 | }, | |
335 | { | |
336 | "class" : "Dist::Zilla::Plugin::Prereqs", | |
337 | "config" : { | |
338 | "Dist::Zilla::Plugin::Prereqs" : { | |
339 | "phase" : "test", | |
340 | "type" : "requires" | |
341 | } | |
342 | }, | |
343 | "name" : "@DROLSKY/Test::More with subtest()", | |
344 | "version" : "5.041" | |
345 | }, | |
346 | { | |
347 | "class" : "Dist::Zilla::Plugin::Prereqs", | |
348 | "config" : { | |
349 | "Dist::Zilla::Plugin::Prereqs" : { | |
350 | "phase" : "develop", | |
351 | "type" : "requires" | |
352 | } | |
353 | }, | |
354 | "name" : "@DROLSKY/Modules for use with tidyall", | |
355 | "version" : "5.041" | |
356 | }, | |
357 | { | |
358 | "class" : "Dist::Zilla::Plugin::PromptIfStale", | |
359 | "config" : { | |
360 | "Dist::Zilla::Plugin::PromptIfStale" : { | |
361 | "check_all_plugins" : 1, | |
362 | "check_all_prereqs" : 1, | |
363 | "modules" : [], | |
364 | "phase" : "release", | |
365 | "skip" : [ | |
366 | "Dist::Zilla::Plugin::DROLSKY::Contributors", | |
367 | "Dist::Zilla::Plugin::DROLSKY::License", | |
368 | "Dist::Zilla::Plugin::DROLSKY::TidyAll", | |
369 | "Dist::Zilla::Plugin::DROLSKY::VersionProvider" | |
370 | ] | |
371 | } | |
372 | }, | |
373 | "name" : "@DROLSKY/PromptIfStale", | |
374 | "version" : "0.047" | |
375 | }, | |
376 | { | |
377 | "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod", | |
378 | "config" : { | |
379 | "Dist::Zilla::Role::FileWatcher" : { | |
380 | "version" : "0.006" | |
381 | } | |
382 | }, | |
383 | "name" : "@DROLSKY/README.md in build", | |
384 | "version" : "0.150250" | |
385 | }, | |
386 | { | |
387 | "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod", | |
388 | "config" : { | |
389 | "Dist::Zilla::Role::FileWatcher" : { | |
390 | "version" : "0.006" | |
391 | } | |
392 | }, | |
393 | "name" : "@DROLSKY/README.md in root", | |
394 | "version" : "0.150250" | |
395 | }, | |
396 | { | |
397 | "class" : "Dist::Zilla::Plugin::Test::PodSpelling", | |
398 | "config" : { | |
399 | "Dist::Zilla::Plugin::Test::PodSpelling" : { | |
400 | "directories" : [], | |
401 | "spell_cmd" : "", | |
402 | "stopwords" : [ | |
403 | "API", | |
404 | "CPAN", | |
405 | "DROLSKY", | |
406 | "DROLSKY's", | |
407 | "JSON", | |
408 | "JavaScript", | |
409 | "Misc", | |
410 | "PHP", | |
411 | "PREREQS", | |
412 | "PayPal", | |
413 | "Raggett", | |
414 | "Rolsky", | |
415 | "Rolsky's", | |
416 | "STDERR", | |
417 | "STDIN", | |
418 | "STDOUT", | |
419 | "Simakov", | |
420 | "TIDYALL", | |
421 | "Thalhammer", | |
422 | "Vim", | |
423 | "argv", | |
424 | "ascii", | |
425 | "atomicity", | |
426 | "cmd", | |
427 | "conf", | |
428 | "config", | |
429 | "cssunminifier", | |
430 | "ctrl", | |
431 | "dir", | |
432 | "filename", | |
433 | "iff", | |
434 | "ispell", | |
435 | "js", | |
436 | "jsbeautify", | |
437 | "jshint", | |
438 | "jslint", | |
439 | "lib", | |
440 | "listref", | |
441 | "masontidy", | |
442 | "noll", | |
443 | "npm", | |
444 | "ok", | |
445 | "ops", | |
446 | "params", | |
447 | "pathname", | |
448 | "perlcritic", | |
449 | "perlcriticrc", | |
450 | "perltidy", | |
451 | "phpcs", | |
452 | "plugins", | |
453 | "podspell", | |
454 | "podtidy", | |
455 | "pre", | |
456 | "prereqs", | |
457 | "repo", | |
458 | "repos", | |
459 | "ro", | |
460 | "runtime", | |
461 | "rw", | |
462 | "shebang", | |
463 | "sourceforge", | |
464 | "svn", | |
465 | "tidiers", | |
466 | "tidyall", | |
467 | "tidyall'd", | |
468 | "timestamped", | |
469 | "ttl", | |
470 | "txn", | |
471 | "validator", | |
472 | "validators" | |
473 | ], | |
474 | "wordlist" : "Pod::Wordlist" | |
475 | } | |
476 | }, | |
477 | "name" : "@DROLSKY/Test::PodSpelling", | |
478 | "version" : "2.007000" | |
479 | }, | |
480 | { | |
481 | "class" : "Dist::Zilla::Plugin::Test::ReportPrereqs", | |
482 | "name" : "@DROLSKY/Test::ReportPrereqs", | |
483 | "version" : "0.021" | |
484 | }, | |
485 | { | |
486 | "class" : "Dist::Zilla::Plugin::Test::Version", | |
487 | "name" : "@DROLSKY/Test::Version", | |
488 | "version" : "1.05" | |
489 | }, | |
490 | { | |
491 | "class" : "Dist::Zilla::Plugin::ManifestSkip", | |
492 | "name" : "@DROLSKY/ManifestSkip", | |
493 | "version" : "5.041" | |
494 | }, | |
495 | { | |
496 | "class" : "Dist::Zilla::Plugin::MetaYAML", | |
497 | "name" : "@DROLSKY/MetaYAML", | |
498 | "version" : "5.041" | |
499 | }, | |
500 | { | |
501 | "class" : "Dist::Zilla::Plugin::License", | |
502 | "name" : "@DROLSKY/License", | |
503 | "version" : "5.041" | |
504 | }, | |
505 | { | |
506 | "class" : "Dist::Zilla::Plugin::ExtraTests", | |
507 | "name" : "@DROLSKY/ExtraTests", | |
508 | "version" : "5.041" | |
509 | }, | |
510 | { | |
511 | "class" : "Dist::Zilla::Plugin::ExecDir", | |
512 | "name" : "@DROLSKY/ExecDir", | |
513 | "version" : "5.041" | |
514 | }, | |
515 | { | |
516 | "class" : "Dist::Zilla::Plugin::ShareDir", | |
517 | "name" : "@DROLSKY/ShareDir", | |
518 | "version" : "5.041" | |
519 | }, | |
520 | { | |
521 | "class" : "Dist::Zilla::Plugin::Manifest", | |
522 | "name" : "@DROLSKY/Manifest", | |
523 | "version" : "5.041" | |
524 | }, | |
525 | { | |
526 | "class" : "Dist::Zilla::Plugin::CheckVersionIncrement", | |
527 | "name" : "@DROLSKY/CheckVersionIncrement", | |
528 | "version" : "0.121750" | |
529 | }, | |
530 | { | |
531 | "class" : "Dist::Zilla::Plugin::TestRelease", | |
532 | "name" : "@DROLSKY/TestRelease", | |
533 | "version" : "5.041" | |
534 | }, | |
535 | { | |
536 | "class" : "Dist::Zilla::Plugin::ConfirmRelease", | |
537 | "name" : "@DROLSKY/ConfirmRelease", | |
538 | "version" : "5.041" | |
539 | }, | |
540 | { | |
541 | "class" : "Dist::Zilla::Plugin::UploadToCPAN", | |
542 | "name" : "@DROLSKY/UploadToCPAN", | |
543 | "version" : "5.041" | |
544 | }, | |
545 | { | |
546 | "class" : "Dist::Zilla::Plugin::CheckPrereqsIndexed", | |
547 | "name" : "@DROLSKY/CheckPrereqsIndexed", | |
548 | "version" : "0.017" | |
549 | }, | |
550 | { | |
551 | "class" : "Dist::Zilla::Plugin::CPANFile", | |
552 | "name" : "@DROLSKY/CPANFile", | |
553 | "version" : "5.041" | |
554 | }, | |
555 | { | |
556 | "class" : "Dist::Zilla::Plugin::DROLSKY::Contributors", | |
557 | "name" : "@DROLSKY/DROLSKY::Contributors", | |
558 | "version" : "0.38" | |
559 | }, | |
560 | { | |
561 | "class" : "Dist::Zilla::Plugin::DROLSKY::License", | |
562 | "name" : "@DROLSKY/DROLSKY::License", | |
563 | "version" : "0.38" | |
564 | }, | |
565 | { | |
566 | "class" : "Dist::Zilla::Plugin::DROLSKY::VersionProvider", | |
567 | "name" : "@DROLSKY/DROLSKY::VersionProvider", | |
568 | "version" : "0.38" | |
569 | }, | |
570 | { | |
571 | "class" : "Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch", | |
572 | "config" : { | |
573 | "Dist::Zilla::Role::Git::Repo" : { | |
574 | "repo_root" : "." | |
575 | } | |
576 | }, | |
577 | "name" : "@DROLSKY/Git::CheckFor::CorrectBranch", | |
578 | "version" : "0.013" | |
579 | }, | |
580 | { | |
581 | "class" : "Dist::Zilla::Plugin::Git::Contributors", | |
582 | "config" : { | |
583 | "Dist::Zilla::Plugin::Git::Contributors" : { | |
584 | "include_authors" : 0, | |
585 | "include_releaser" : 1, | |
586 | "order_by" : "name", | |
587 | "paths" : [ | |
588 | "." | |
589 | ] | |
590 | } | |
591 | }, | |
592 | "name" : "@DROLSKY/Git::Contributors", | |
593 | "version" : "0.015" | |
594 | }, | |
595 | { | |
596 | "class" : "Dist::Zilla::Plugin::InstallGuide", | |
597 | "name" : "@DROLSKY/InstallGuide", | |
598 | "version" : "1.200006" | |
599 | }, | |
600 | { | |
601 | "class" : "Dist::Zilla::Plugin::Meta::Contributors", | |
602 | "name" : "@DROLSKY/Meta::Contributors", | |
603 | "version" : "0.002" | |
604 | }, | |
605 | { | |
606 | "class" : "Dist::Zilla::Plugin::MetaConfig", | |
607 | "name" : "@DROLSKY/MetaConfig", | |
608 | "version" : "5.041" | |
609 | }, | |
610 | { | |
611 | "class" : "Dist::Zilla::Plugin::MetaJSON", | |
612 | "name" : "@DROLSKY/MetaJSON", | |
613 | "version" : "5.041" | |
614 | }, | |
615 | { | |
616 | "class" : "Dist::Zilla::Plugin::SurgicalPodWeaver", | |
617 | "config" : { | |
618 | "Dist::Zilla::Plugin::PodWeaver" : { | |
619 | "finder" : [ | |
620 | ":InstallModules", | |
621 | ":ExecFiles" | |
622 | ], | |
623 | "plugins" : [ | |
624 | { | |
625 | "class" : "Pod::Weaver::Plugin::EnsurePod5", | |
626 | "name" : "@CorePrep/EnsurePod5", | |
627 | "version" : "4.012" | |
628 | }, | |
629 | { | |
630 | "class" : "Pod::Weaver::Plugin::H1Nester", | |
631 | "name" : "@CorePrep/H1Nester", | |
632 | "version" : "4.012" | |
633 | }, | |
634 | { | |
635 | "class" : "Pod::Weaver::Section::Name", | |
636 | "name" : "Name", | |
637 | "version" : "4.012" | |
638 | }, | |
639 | { | |
640 | "class" : "Pod::Weaver::Section::Version", | |
641 | "name" : "Version", | |
642 | "version" : "4.012" | |
643 | }, | |
644 | { | |
645 | "class" : "Pod::Weaver::Section::Generic", | |
646 | "name" : "SYNOPSIS", | |
647 | "version" : "4.012" | |
648 | }, | |
649 | { | |
650 | "class" : "Pod::Weaver::Section::Generic", | |
651 | "name" : "DESCRIPTION", | |
652 | "version" : "4.012" | |
653 | }, | |
654 | { | |
655 | "class" : "Pod::Weaver::Section::Leftovers", | |
656 | "name" : "Leftovers", | |
657 | "version" : "4.012" | |
658 | }, | |
659 | { | |
660 | "class" : "inc::Pod::Weaver::Section::SeeAlsoCodeTidyAll", | |
661 | "name" : "=inc::Pod::Weaver::Section::SeeAlsoCodeTidyAll", | |
662 | "version" : null | |
663 | }, | |
664 | { | |
665 | "class" : "Pod::Weaver::Section::Region", | |
666 | "name" : "postlude", | |
667 | "version" : "4.012" | |
668 | }, | |
669 | { | |
670 | "class" : "Pod::Weaver::Section::Authors", | |
671 | "name" : "Authors", | |
672 | "version" : "4.012" | |
673 | }, | |
674 | { | |
675 | "class" : "Pod::Weaver::Section::Contributors", | |
676 | "name" : "Contributors", | |
677 | "version" : "0.009" | |
678 | }, | |
679 | { | |
680 | "class" : "Pod::Weaver::Section::Legal", | |
681 | "name" : "Legal", | |
682 | "version" : "4.012" | |
683 | } | |
684 | ] | |
685 | } | |
686 | }, | |
687 | "name" : "@DROLSKY/SurgicalPodWeaver", | |
688 | "version" : "0.0023" | |
689 | }, | |
690 | { | |
691 | "class" : "Dist::Zilla::Plugin::MojibakeTests", | |
692 | "name" : "@DROLSKY/MojibakeTests", | |
693 | "version" : "0.8" | |
694 | }, | |
695 | { | |
696 | "class" : "Dist::Zilla::Plugin::PodSyntaxTests", | |
697 | "name" : "@DROLSKY/PodSyntaxTests", | |
698 | "version" : "5.041" | |
699 | }, | |
700 | { | |
701 | "class" : "Dist::Zilla::Plugin::Test::CPAN::Changes", | |
702 | "name" : "@DROLSKY/Test::CPAN::Changes", | |
703 | "version" : "0.009" | |
704 | }, | |
705 | { | |
706 | "class" : "Dist::Zilla::Plugin::Test::NoTabs", | |
707 | "config" : { | |
708 | "Dist::Zilla::Plugin::Test::NoTabs" : { | |
709 | "filename" : "xt/author/no-tabs.t", | |
710 | "finder" : [ | |
711 | ":InstallModules", | |
712 | ":ExecFiles", | |
713 | ":TestFiles" | |
714 | ] | |
715 | } | |
716 | }, | |
717 | "name" : "@DROLSKY/Test::NoTabs", | |
718 | "version" : "0.15" | |
719 | }, | |
720 | { | |
721 | "class" : "Dist::Zilla::Plugin::Git::Check", | |
722 | "config" : { | |
723 | "Dist::Zilla::Plugin::Git::Check" : { | |
724 | "untracked_files" : "die" | |
725 | }, | |
726 | "Dist::Zilla::Role::Git::DirtyFiles" : { | |
727 | "allow_dirty" : [ | |
728 | "Build.PL", | |
729 | "CONTRIBUTING.md", | |
730 | "Changes", | |
731 | "LICENSE", | |
732 | "Makefile.PL", | |
733 | "README.md", | |
734 | "cpanfile" | |
735 | ], | |
736 | "allow_dirty_match" : [], | |
737 | "changelog" : "Changes" | |
738 | }, | |
739 | "Dist::Zilla::Role::Git::Repo" : { | |
740 | "repo_root" : "." | |
741 | } | |
742 | }, | |
743 | "name" : "@DROLSKY/Git::Check", | |
744 | "version" : "2.036" | |
745 | }, | |
746 | { | |
747 | "class" : "Dist::Zilla::Plugin::Git::Commit", | |
748 | "config" : { | |
749 | "Dist::Zilla::Plugin::Git::Commit" : { | |
750 | "add_files_in" : [], | |
751 | "commit_msg" : "v%v%n%n%c" | |
752 | }, | |
753 | "Dist::Zilla::Role::Git::DirtyFiles" : { | |
754 | "allow_dirty" : [ | |
755 | "Build.PL", | |
756 | "CONTRIBUTING.md", | |
757 | "Changes", | |
758 | "LICENSE", | |
759 | "Makefile.PL", | |
760 | "README.md", | |
761 | "cpanfile" | |
762 | ], | |
763 | "allow_dirty_match" : [], | |
764 | "changelog" : "Changes" | |
765 | }, | |
766 | "Dist::Zilla::Role::Git::Repo" : { | |
767 | "repo_root" : "." | |
768 | }, | |
769 | "Dist::Zilla::Role::Git::StringFormatter" : { | |
770 | "time_zone" : "local" | |
771 | } | |
772 | }, | |
773 | "name" : "@DROLSKY/commit generated files", | |
774 | "version" : "2.036" | |
775 | }, | |
776 | { | |
777 | "class" : "Dist::Zilla::Plugin::Git::Tag", | |
778 | "config" : { | |
779 | "Dist::Zilla::Plugin::Git::Tag" : { | |
780 | "branch" : null, | |
781 | "changelog" : "Changes", | |
782 | "signed" : 0, | |
783 | "tag" : "v0.32", | |
784 | "tag_format" : "v%v", | |
785 | "tag_message" : "v%v" | |
786 | }, | |
787 | "Dist::Zilla::Role::Git::Repo" : { | |
788 | "repo_root" : "." | |
789 | }, | |
790 | "Dist::Zilla::Role::Git::StringFormatter" : { | |
791 | "time_zone" : "local" | |
792 | } | |
793 | }, | |
794 | "name" : "@DROLSKY/Git::Tag", | |
795 | "version" : "2.036" | |
796 | }, | |
797 | { | |
798 | "class" : "Dist::Zilla::Plugin::Git::Push", | |
799 | "config" : { | |
800 | "Dist::Zilla::Plugin::Git::Push" : { | |
801 | "push_to" : [ | |
802 | "origin" | |
803 | ], | |
804 | "remotes_must_exist" : 1 | |
805 | }, | |
806 | "Dist::Zilla::Role::Git::Repo" : { | |
807 | "repo_root" : "." | |
808 | } | |
809 | }, | |
810 | "name" : "@DROLSKY/Git::Push", | |
811 | "version" : "2.036" | |
812 | }, | |
813 | { | |
814 | "class" : "Dist::Zilla::Plugin::BumpVersionAfterRelease", | |
815 | "config" : { | |
816 | "Dist::Zilla::Plugin::BumpVersionAfterRelease" : { | |
817 | "finders" : [ | |
818 | ":ExecFiles", | |
819 | ":InstallModules" | |
820 | ], | |
821 | "global" : 0, | |
822 | "munge_makefile_pl" : 1 | |
823 | } | |
824 | }, | |
825 | "name" : "@DROLSKY/BumpVersionAfterRelease", | |
826 | "version" : "0.012" | |
827 | }, | |
828 | { | |
829 | "class" : "Dist::Zilla::Plugin::Git::Commit", | |
830 | "config" : { | |
831 | "Dist::Zilla::Plugin::Git::Commit" : { | |
832 | "add_files_in" : [], | |
833 | "commit_msg" : "Bump version after release" | |
834 | }, | |
835 | "Dist::Zilla::Role::Git::DirtyFiles" : { | |
836 | "allow_dirty" : [ | |
837 | "Changes", | |
838 | "dist.ini" | |
839 | ], | |
840 | "allow_dirty_match" : [ | |
841 | "(?^:.+)" | |
842 | ], | |
843 | "changelog" : "Changes" | |
844 | }, | |
845 | "Dist::Zilla::Role::Git::Repo" : { | |
846 | "repo_root" : "." | |
847 | }, | |
848 | "Dist::Zilla::Role::Git::StringFormatter" : { | |
849 | "time_zone" : "local" | |
850 | } | |
851 | }, | |
852 | "name" : "@DROLSKY/commit version bump", | |
853 | "version" : "2.036" | |
854 | }, | |
855 | { | |
856 | "class" : "Dist::Zilla::Plugin::Git::Push", | |
857 | "config" : { | |
858 | "Dist::Zilla::Plugin::Git::Push" : { | |
859 | "push_to" : [ | |
860 | "origin" | |
861 | ], | |
862 | "remotes_must_exist" : 1 | |
863 | }, | |
864 | "Dist::Zilla::Role::Git::Repo" : { | |
865 | "repo_root" : "." | |
866 | } | |
867 | }, | |
868 | "name" : "@DROLSKY/push version bump", | |
869 | "version" : "2.036" | |
870 | }, | |
871 | { | |
872 | "class" : "inc::MyMakeMaker", | |
873 | "config" : { | |
874 | "Dist::Zilla::Role::TestRunner" : { | |
875 | "default_jobs" : 1 | |
876 | } | |
877 | }, | |
878 | "name" : "=inc::MyMakeMaker", | |
879 | "version" : null | |
880 | }, | |
881 | { | |
882 | "class" : "Dist::Zilla::Plugin::Prereqs", | |
883 | "config" : { | |
884 | "Dist::Zilla::Plugin::Prereqs" : { | |
885 | "phase" : "develop", | |
886 | "type" : "requires" | |
887 | } | |
888 | }, | |
889 | "name" : "DevelopRequires", | |
890 | "version" : "5.041" | |
891 | }, | |
892 | { | |
893 | "class" : "Dist::Zilla::Plugin::MetaNoIndex", | |
894 | "name" : "MetaNoIndex", | |
895 | "version" : "5.041" | |
896 | }, | |
897 | { | |
898 | "class" : "Dist::Zilla::Plugin::TidyAll", | |
899 | "name" : "TidyAll", | |
900 | "version" : "0.04" | |
901 | }, | |
902 | { | |
903 | "class" : "Dist::Zilla::Plugin::FinderCode", | |
904 | "name" : ":InstallModules", | |
905 | "version" : "5.041" | |
906 | }, | |
907 | { | |
908 | "class" : "Dist::Zilla::Plugin::FinderCode", | |
909 | "name" : ":IncModules", | |
910 | "version" : "5.041" | |
911 | }, | |
912 | { | |
913 | "class" : "Dist::Zilla::Plugin::FinderCode", | |
914 | "name" : ":TestFiles", | |
915 | "version" : "5.041" | |
916 | }, | |
917 | { | |
918 | "class" : "Dist::Zilla::Plugin::FinderCode", | |
919 | "name" : ":ExtraTestFiles", | |
920 | "version" : "5.041" | |
921 | }, | |
922 | { | |
923 | "class" : "Dist::Zilla::Plugin::FinderCode", | |
924 | "name" : ":ExecFiles", | |
925 | "version" : "5.041" | |
926 | }, | |
927 | { | |
928 | "class" : "Dist::Zilla::Plugin::FinderCode", | |
929 | "name" : ":PerlExecFiles", | |
930 | "version" : "5.041" | |
931 | }, | |
932 | { | |
933 | "class" : "Dist::Zilla::Plugin::FinderCode", | |
934 | "name" : ":ShareFiles", | |
935 | "version" : "5.041" | |
936 | }, | |
937 | { | |
938 | "class" : "Dist::Zilla::Plugin::FinderCode", | |
939 | "name" : ":MainModule", | |
940 | "version" : "5.041" | |
941 | }, | |
942 | { | |
943 | "class" : "Dist::Zilla::Plugin::FinderCode", | |
944 | "name" : ":AllFiles", | |
945 | "version" : "5.041" | |
946 | }, | |
947 | { | |
948 | "class" : "Dist::Zilla::Plugin::FinderCode", | |
949 | "name" : ":NoFiles", | |
950 | "version" : "5.041" | |
951 | }, | |
952 | { | |
953 | "class" : "Dist::Zilla::Plugin::FinderCode", | |
954 | "name" : "@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM", | |
955 | "version" : "5.041" | |
956 | } | |
957 | ], | |
958 | "zilla" : { | |
959 | "class" : "Dist::Zilla::Dist::Builder", | |
960 | "config" : { | |
961 | "is_trial" : "0" | |
962 | }, | |
963 | "version" : "5.041" | |
964 | } | |
965 | }, | |
966 | "x_authority" : "cpan:DROLSKY", | |
967 | "x_contributors" : [ | |
968 | "Andy Jack <andyjack@cpan.org>", | |
969 | "George Hartzell <georgewh@gene.com>", | |
970 | "Gregory Oschwald <goschwald@maxmind.com>", | |
971 | "Joe Crotty <joe.crotty@returnpath.net>", | |
972 | "Mark Fowler <mark@twoshortplanks.com>", | |
973 | "Mark Grimes <mgrimes@cpan.org>", | |
974 | "Olaf Alders <olaf@wundersolutions.com>", | |
975 | "Pedro Melo <melo@simplicidade.org>", | |
976 | "Sergey Romanov <sromanov-dev@yandex.ru>", | |
977 | "timgimyee <tim.gim.yee@gmail.com>" | |
978 | ] | |
73 | 979 | } |
74 | 980 |
0 | 0 | --- |
1 | abstract: 'Tidy and validate code in many ways at once' | |
1 | abstract: 'Engine for tidyall, your all-in-one code tidier and validator' | |
2 | 2 | author: |
3 | 3 | - 'Jonathan Swartz <swartz@pobox.com>' |
4 | - 'Dave Rolsky <autarch@urth.org>' | |
4 | 5 | build_requires: |
5 | Test::Class::Most: 0 | |
6 | Encode: '0' | |
7 | ExtUtils::MakeMaker: '0' | |
8 | File::Spec: '0' | |
9 | Test::Class::Most: '0' | |
10 | Test::Differences: '0' | |
11 | Test::More: '0.96' | |
12 | Test::Warnings: '0' | |
13 | autodie: '0' | |
14 | lib: '0' | |
6 | 15 | configure_requires: |
7 | ExtUtils::MakeMaker: 6.30 | |
16 | ExtUtils::MakeMaker: '0' | |
8 | 17 | dynamic_config: 0 |
9 | generated_by: 'Dist::Zilla version 5.012, CPAN::Meta::Converter version 2.131560' | |
18 | generated_by: 'Dist::Zilla version 5.041, CPAN::Meta::Converter version 2.150005' | |
10 | 19 | license: perl |
11 | 20 | meta-spec: |
12 | 21 | url: http://module-build.sourceforge.net/META-spec-v1.4.html |
13 | version: 1.4 | |
22 | version: '1.4' | |
14 | 23 | name: Code-TidyAll |
15 | 24 | no_index: |
16 | directory: | |
17 | - lib/Code/TidyAll/t | |
18 | - lib/Code/TidyAll/Test | |
19 | 25 | file: |
20 | 26 | - lib/Code/TidyAll/Util.pm |
27 | provides: | |
28 | Code::TidyAll: | |
29 | file: lib/Code/TidyAll.pm | |
30 | version: '0.32' | |
31 | Code::TidyAll::Cache: | |
32 | file: lib/Code/TidyAll/Cache.pm | |
33 | version: '0.32' | |
34 | Code::TidyAll::CacheModel: | |
35 | file: lib/Code/TidyAll/CacheModel.pm | |
36 | version: '0.32' | |
37 | Code::TidyAll::CacheModel::Shared: | |
38 | file: lib/Code/TidyAll/CacheModel/Shared.pm | |
39 | version: '0.32' | |
40 | Code::TidyAll::Config::INI::Reader: | |
41 | file: lib/Code/TidyAll/Config/INI/Reader.pm | |
42 | version: '0.32' | |
43 | Code::TidyAll::Git::Precommit: | |
44 | file: lib/Code/TidyAll/Git/Precommit.pm | |
45 | version: '0.32' | |
46 | Code::TidyAll::Git::Prereceive: | |
47 | file: lib/Code/TidyAll/Git/Prereceive.pm | |
48 | version: '0.32' | |
49 | Code::TidyAll::Git::Util: | |
50 | file: lib/Code/TidyAll/Git/Util.pm | |
51 | version: '0.32' | |
52 | Code::TidyAll::Plugin: | |
53 | file: lib/Code/TidyAll/Plugin.pm | |
54 | version: '0.32' | |
55 | Code::TidyAll::Plugin::CSSUnminifier: | |
56 | file: lib/Code/TidyAll/Plugin/CSSUnminifier.pm | |
57 | version: '0.32' | |
58 | Code::TidyAll::Plugin::DiffOnTidyError: | |
59 | file: lib/Code/TidyAll/Plugin/DiffOnTidyError.pm | |
60 | version: '0.32' | |
61 | Code::TidyAll::Plugin::JSBeautify: | |
62 | file: lib/Code/TidyAll/Plugin/JSBeautify.pm | |
63 | version: '0.32' | |
64 | Code::TidyAll::Plugin::JSHint: | |
65 | file: lib/Code/TidyAll/Plugin/JSHint.pm | |
66 | version: '0.32' | |
67 | Code::TidyAll::Plugin::JSLint: | |
68 | file: lib/Code/TidyAll/Plugin/JSLint.pm | |
69 | version: '0.32' | |
70 | Code::TidyAll::Plugin::JSON: | |
71 | file: lib/Code/TidyAll/Plugin/JSON.pm | |
72 | version: '0.32' | |
73 | Code::TidyAll::Plugin::MasonTidy: | |
74 | file: lib/Code/TidyAll/Plugin/MasonTidy.pm | |
75 | version: '0.32' | |
76 | Code::TidyAll::Plugin::PHPCodeSniffer: | |
77 | file: lib/Code/TidyAll/Plugin/PHPCodeSniffer.pm | |
78 | version: '0.32' | |
79 | Code::TidyAll::Plugin::PerlCritic: | |
80 | file: lib/Code/TidyAll/Plugin/PerlCritic.pm | |
81 | version: '0.32' | |
82 | Code::TidyAll::Plugin::PerlTidy: | |
83 | file: lib/Code/TidyAll/Plugin/PerlTidy.pm | |
84 | version: '0.32' | |
85 | Code::TidyAll::Plugin::PerlTidySweet: | |
86 | file: lib/Code/TidyAll/Plugin/PerlTidySweet.pm | |
87 | version: '0.32' | |
88 | Code::TidyAll::Plugin::PodChecker: | |
89 | file: lib/Code/TidyAll/Plugin/PodChecker.pm | |
90 | version: '0.32' | |
91 | Code::TidyAll::Plugin::PodSpell: | |
92 | file: lib/Code/TidyAll/Plugin/PodSpell.pm | |
93 | version: '0.32' | |
94 | Code::TidyAll::Plugin::PodTidy: | |
95 | file: lib/Code/TidyAll/Plugin/PodTidy.pm | |
96 | version: '0.32' | |
97 | Code::TidyAll::Plugin::SortLines: | |
98 | file: lib/Code/TidyAll/Plugin/SortLines.pm | |
99 | version: '0.32' | |
100 | Code::TidyAll::Result: | |
101 | file: lib/Code/TidyAll/Result.pm | |
102 | version: '0.32' | |
103 | Code::TidyAll::Role::Tempdir: | |
104 | file: lib/Code/TidyAll/Role/Tempdir.pm | |
105 | version: '0.32' | |
106 | Code::TidyAll::SVN::Precommit: | |
107 | file: lib/Code/TidyAll/SVN/Precommit.pm | |
108 | version: '0.32' | |
109 | Code::TidyAll::SVN::Util: | |
110 | file: lib/Code/TidyAll/SVN/Util.pm | |
111 | version: '0.32' | |
112 | Code::TidyAll::Util::Zglob: | |
113 | file: lib/Code/TidyAll/Util/Zglob.pm | |
114 | version: '0.32' | |
115 | Test::Code::TidyAll: | |
116 | file: lib/Test/Code/TidyAll.pm | |
117 | version: '0.32' | |
21 | 118 | requires: |
22 | Capture::Tiny: 0.12 | |
23 | Config::INI::Reader: 0 | |
24 | Date::Format: 0 | |
25 | Digest::SHA1: 0 | |
26 | File::Basename: 0 | |
27 | File::Find: 0 | |
28 | File::Path: 0 | |
29 | File::Temp: 0 | |
30 | File::Zglob: 0 | |
31 | Getopt::Long: 0 | |
32 | Guard: 0 | |
33 | IPC::Run3: 0 | |
34 | IPC::System::Simple: 0.15 | |
35 | List::MoreUtils: 0 | |
36 | Log::Any: 0 | |
37 | Moo: 0.0091010 | |
38 | Scalar::Util: 0 | |
39 | Text::ParseWords: 0 | |
40 | Time::Duration::Parse: 0 | |
41 | Try::Tiny: 0 | |
119 | Capture::Tiny: '0' | |
120 | Config::INI::Reader: '0' | |
121 | Cwd: '0' | |
122 | Data::Dumper: '0' | |
123 | Date::Format: '0' | |
124 | Digest::SHA: '0' | |
125 | Exporter: '0' | |
126 | File::Basename: '0' | |
127 | File::Find: '0' | |
128 | File::Path: '0' | |
129 | File::Slurp::Tiny: '0' | |
130 | File::Spec::Functions: '0' | |
131 | File::Temp: '0' | |
132 | File::Which: '0' | |
133 | File::Zglob: '0' | |
134 | Getopt::Long: '0' | |
135 | Guard: '0' | |
136 | IPC::Run3: '0' | |
137 | IPC::System::Simple: '0' | |
138 | List::MoreUtils: '0' | |
139 | Log::Any: '0' | |
140 | Moo: '0' | |
141 | Moo::Role: '0' | |
142 | Scalar::Util: '0' | |
143 | Test::Builder: '0' | |
144 | Text::Diff: '0' | |
145 | Text::Diff::Table: '0' | |
146 | Text::ParseWords: '0' | |
147 | Time::Duration::Parse: '0' | |
148 | Try::Tiny: '0' | |
149 | base: '0' | |
150 | constant: '0' | |
151 | strict: '0' | |
152 | vars: '0' | |
153 | warnings: '0' | |
42 | 154 | resources: |
43 | bugtracker: http://rt.cpan.org/NoAuth/Bugs.html?Dist=Code-TidyAll | |
44 | repository: git://github.com/jonswar/perl-code-tidyall.git | |
45 | version: 0.20 | |
155 | bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=Code-TidyAll | |
156 | homepage: http://metacpan.org/release/Code-TidyAll | |
157 | repository: git://github.com/houseabsolute/perl-code-tidyall.git | |
158 | version: '0.32' | |
159 | x_Dist_Zilla: | |
160 | perl: | |
161 | version: '5.022000' | |
162 | plugins: | |
163 | - | |
164 | class: Dist::Zilla::Plugin::Authority | |
165 | name: '@DROLSKY/Authority' | |
166 | version: '1.009' | |
167 | - | |
168 | class: Dist::Zilla::Plugin::AutoPrereqs | |
169 | name: '@DROLSKY/AutoPrereqs' | |
170 | version: '5.041' | |
171 | - | |
172 | class: Dist::Zilla::Plugin::CopyFilesFromBuild | |
173 | name: '@DROLSKY/CopyFilesFromBuild' | |
174 | version: '0.151680' | |
175 | - | |
176 | class: Dist::Zilla::Plugin::Git::GatherDir | |
177 | config: | |
178 | Dist::Zilla::Plugin::GatherDir: | |
179 | exclude_filename: | |
180 | - Build.PL | |
181 | - LICENSE | |
182 | - Makefile.PL | |
183 | - README.md | |
184 | - cpanfile | |
185 | exclude_match: [] | |
186 | follow_symlinks: 0 | |
187 | include_dotfiles: 0 | |
188 | prefix: '' | |
189 | prune_directory: [] | |
190 | root: . | |
191 | Dist::Zilla::Plugin::Git::GatherDir: | |
192 | include_untracked: 0 | |
193 | name: '@DROLSKY/Git::GatherDir' | |
194 | version: '2.036' | |
195 | - | |
196 | class: Dist::Zilla::Plugin::GitHub::Meta | |
197 | name: '@DROLSKY/GitHub::Meta' | |
198 | version: '0.41' | |
199 | - | |
200 | class: Dist::Zilla::Plugin::GitHub::Update | |
201 | config: | |
202 | Dist::Zilla::Plugin::GitHub::Update: | |
203 | metacpan: 1 | |
204 | name: '@DROLSKY/GitHub::Update' | |
205 | version: '0.41' | |
206 | - | |
207 | class: Dist::Zilla::Plugin::MetaResources | |
208 | name: '@DROLSKY/MetaResources' | |
209 | version: '5.041' | |
210 | - | |
211 | class: Dist::Zilla::Plugin::MetaProvides::Package | |
212 | config: | |
213 | Dist::Zilla::Plugin::MetaProvides::Package: | |
214 | finder_objects: | |
215 | - | |
216 | class: Dist::Zilla::Plugin::FinderCode | |
217 | name: '@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM' | |
218 | version: '5.041' | |
219 | Dist::Zilla::Role::MetaProvider::Provider: | |
220 | inherit_missing: '1' | |
221 | inherit_version: '1' | |
222 | meta_noindex: '1' | |
223 | name: '@DROLSKY/MetaProvides::Package' | |
224 | version: '2.003001' | |
225 | - | |
226 | class: Dist::Zilla::Plugin::NextRelease | |
227 | name: '@DROLSKY/NextRelease' | |
228 | version: '5.041' | |
229 | - | |
230 | class: Dist::Zilla::Plugin::Prereqs | |
231 | config: | |
232 | Dist::Zilla::Plugin::Prereqs: | |
233 | phase: test | |
234 | type: requires | |
235 | name: '@DROLSKY/Test::More with subtest()' | |
236 | version: '5.041' | |
237 | - | |
238 | class: Dist::Zilla::Plugin::Prereqs | |
239 | config: | |
240 | Dist::Zilla::Plugin::Prereqs: | |
241 | phase: develop | |
242 | type: requires | |
243 | name: '@DROLSKY/Modules for use with tidyall' | |
244 | version: '5.041' | |
245 | - | |
246 | class: Dist::Zilla::Plugin::PromptIfStale | |
247 | config: | |
248 | Dist::Zilla::Plugin::PromptIfStale: | |
249 | check_all_plugins: 1 | |
250 | check_all_prereqs: 1 | |
251 | modules: [] | |
252 | phase: release | |
253 | skip: | |
254 | - Dist::Zilla::Plugin::DROLSKY::Contributors | |
255 | - Dist::Zilla::Plugin::DROLSKY::License | |
256 | - Dist::Zilla::Plugin::DROLSKY::TidyAll | |
257 | - Dist::Zilla::Plugin::DROLSKY::VersionProvider | |
258 | name: '@DROLSKY/PromptIfStale' | |
259 | version: '0.047' | |
260 | - | |
261 | class: Dist::Zilla::Plugin::ReadmeAnyFromPod | |
262 | config: | |
263 | Dist::Zilla::Role::FileWatcher: | |
264 | version: '0.006' | |
265 | name: '@DROLSKY/README.md in build' | |
266 | version: '0.150250' | |
267 | - | |
268 | class: Dist::Zilla::Plugin::ReadmeAnyFromPod | |
269 | config: | |
270 | Dist::Zilla::Role::FileWatcher: | |
271 | version: '0.006' | |
272 | name: '@DROLSKY/README.md in root' | |
273 | version: '0.150250' | |
274 | - | |
275 | class: Dist::Zilla::Plugin::Test::PodSpelling | |
276 | config: | |
277 | Dist::Zilla::Plugin::Test::PodSpelling: | |
278 | directories: [] | |
279 | spell_cmd: '' | |
280 | stopwords: | |
281 | - API | |
282 | - CPAN | |
283 | - DROLSKY | |
284 | - "DROLSKY's" | |
285 | - JSON | |
286 | - JavaScript | |
287 | - Misc | |
288 | - PHP | |
289 | - PREREQS | |
290 | - PayPal | |
291 | - Raggett | |
292 | - Rolsky | |
293 | - "Rolsky's" | |
294 | - STDERR | |
295 | - STDIN | |
296 | - STDOUT | |
297 | - Simakov | |
298 | - TIDYALL | |
299 | - Thalhammer | |
300 | - Vim | |
301 | - argv | |
302 | - ascii | |
303 | - atomicity | |
304 | - cmd | |
305 | - conf | |
306 | - config | |
307 | - cssunminifier | |
308 | - ctrl | |
309 | - dir | |
310 | - filename | |
311 | - iff | |
312 | - ispell | |
313 | - js | |
314 | - jsbeautify | |
315 | - jshint | |
316 | - jslint | |
317 | - lib | |
318 | - listref | |
319 | - masontidy | |
320 | - noll | |
321 | - npm | |
322 | - ok | |
323 | - ops | |
324 | - params | |
325 | - pathname | |
326 | - perlcritic | |
327 | - perlcriticrc | |
328 | - perltidy | |
329 | - phpcs | |
330 | - plugins | |
331 | - podspell | |
332 | - podtidy | |
333 | - pre | |
334 | - prereqs | |
335 | - repo | |
336 | - repos | |
337 | - ro | |
338 | - runtime | |
339 | - rw | |
340 | - shebang | |
341 | - sourceforge | |
342 | - svn | |
343 | - tidiers | |
344 | - tidyall | |
345 | - "tidyall'd" | |
346 | - timestamped | |
347 | - ttl | |
348 | - txn | |
349 | - validator | |
350 | - validators | |
351 | wordlist: Pod::Wordlist | |
352 | name: '@DROLSKY/Test::PodSpelling' | |
353 | version: '2.007000' | |
354 | - | |
355 | class: Dist::Zilla::Plugin::Test::ReportPrereqs | |
356 | name: '@DROLSKY/Test::ReportPrereqs' | |
357 | version: '0.021' | |
358 | - | |
359 | class: Dist::Zilla::Plugin::Test::Version | |
360 | name: '@DROLSKY/Test::Version' | |
361 | version: '1.05' | |
362 | - | |
363 | class: Dist::Zilla::Plugin::ManifestSkip | |
364 | name: '@DROLSKY/ManifestSkip' | |
365 | version: '5.041' | |
366 | - | |
367 | class: Dist::Zilla::Plugin::MetaYAML | |
368 | name: '@DROLSKY/MetaYAML' | |
369 | version: '5.041' | |
370 | - | |
371 | class: Dist::Zilla::Plugin::License | |
372 | name: '@DROLSKY/License' | |
373 | version: '5.041' | |
374 | - | |
375 | class: Dist::Zilla::Plugin::ExtraTests | |
376 | name: '@DROLSKY/ExtraTests' | |
377 | version: '5.041' | |
378 | - | |
379 | class: Dist::Zilla::Plugin::ExecDir | |
380 | name: '@DROLSKY/ExecDir' | |
381 | version: '5.041' | |
382 | - | |
383 | class: Dist::Zilla::Plugin::ShareDir | |
384 | name: '@DROLSKY/ShareDir' | |
385 | version: '5.041' | |
386 | - | |
387 | class: Dist::Zilla::Plugin::Manifest | |
388 | name: '@DROLSKY/Manifest' | |
389 | version: '5.041' | |
390 | - | |
391 | class: Dist::Zilla::Plugin::CheckVersionIncrement | |
392 | name: '@DROLSKY/CheckVersionIncrement' | |
393 | version: '0.121750' | |
394 | - | |
395 | class: Dist::Zilla::Plugin::TestRelease | |
396 | name: '@DROLSKY/TestRelease' | |
397 | version: '5.041' | |
398 | - | |
399 | class: Dist::Zilla::Plugin::ConfirmRelease | |
400 | name: '@DROLSKY/ConfirmRelease' | |
401 | version: '5.041' | |
402 | - | |
403 | class: Dist::Zilla::Plugin::UploadToCPAN | |
404 | name: '@DROLSKY/UploadToCPAN' | |
405 | version: '5.041' | |
406 | - | |
407 | class: Dist::Zilla::Plugin::CheckPrereqsIndexed | |
408 | name: '@DROLSKY/CheckPrereqsIndexed' | |
409 | version: '0.017' | |
410 | - | |
411 | class: Dist::Zilla::Plugin::CPANFile | |
412 | name: '@DROLSKY/CPANFile' | |
413 | version: '5.041' | |
414 | - | |
415 | class: Dist::Zilla::Plugin::DROLSKY::Contributors | |
416 | name: '@DROLSKY/DROLSKY::Contributors' | |
417 | version: '0.38' | |
418 | - | |
419 | class: Dist::Zilla::Plugin::DROLSKY::License | |
420 | name: '@DROLSKY/DROLSKY::License' | |
421 | version: '0.38' | |
422 | - | |
423 | class: Dist::Zilla::Plugin::DROLSKY::VersionProvider | |
424 | name: '@DROLSKY/DROLSKY::VersionProvider' | |
425 | version: '0.38' | |
426 | - | |
427 | class: Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch | |
428 | config: | |
429 | Dist::Zilla::Role::Git::Repo: | |
430 | repo_root: . | |
431 | name: '@DROLSKY/Git::CheckFor::CorrectBranch' | |
432 | version: '0.013' | |
433 | - | |
434 | class: Dist::Zilla::Plugin::Git::Contributors | |
435 | config: | |
436 | Dist::Zilla::Plugin::Git::Contributors: | |
437 | include_authors: 0 | |
438 | include_releaser: 1 | |
439 | order_by: name | |
440 | paths: | |
441 | - . | |
442 | name: '@DROLSKY/Git::Contributors' | |
443 | version: '0.015' | |
444 | - | |
445 | class: Dist::Zilla::Plugin::InstallGuide | |
446 | name: '@DROLSKY/InstallGuide' | |
447 | version: '1.200006' | |
448 | - | |
449 | class: Dist::Zilla::Plugin::Meta::Contributors | |
450 | name: '@DROLSKY/Meta::Contributors' | |
451 | version: '0.002' | |
452 | - | |
453 | class: Dist::Zilla::Plugin::MetaConfig | |
454 | name: '@DROLSKY/MetaConfig' | |
455 | version: '5.041' | |
456 | - | |
457 | class: Dist::Zilla::Plugin::MetaJSON | |
458 | name: '@DROLSKY/MetaJSON' | |
459 | version: '5.041' | |
460 | - | |
461 | class: Dist::Zilla::Plugin::SurgicalPodWeaver | |
462 | config: | |
463 | Dist::Zilla::Plugin::PodWeaver: | |
464 | finder: | |
465 | - ':InstallModules' | |
466 | - ':ExecFiles' | |
467 | plugins: | |
468 | - | |
469 | class: Pod::Weaver::Plugin::EnsurePod5 | |
470 | name: '@CorePrep/EnsurePod5' | |
471 | version: '4.012' | |
472 | - | |
473 | class: Pod::Weaver::Plugin::H1Nester | |
474 | name: '@CorePrep/H1Nester' | |
475 | version: '4.012' | |
476 | - | |
477 | class: Pod::Weaver::Section::Name | |
478 | name: Name | |
479 | version: '4.012' | |
480 | - | |
481 | class: Pod::Weaver::Section::Version | |
482 | name: Version | |
483 | version: '4.012' | |
484 | - | |
485 | class: Pod::Weaver::Section::Generic | |
486 | name: SYNOPSIS | |
487 | version: '4.012' | |
488 | - | |
489 | class: Pod::Weaver::Section::Generic | |
490 | name: DESCRIPTION | |
491 | version: '4.012' | |
492 | - | |
493 | class: Pod::Weaver::Section::Leftovers | |
494 | name: Leftovers | |
495 | version: '4.012' | |
496 | - | |
497 | class: inc::Pod::Weaver::Section::SeeAlsoCodeTidyAll | |
498 | name: =inc::Pod::Weaver::Section::SeeAlsoCodeTidyAll | |
499 | version: ~ | |
500 | - | |
501 | class: Pod::Weaver::Section::Region | |
502 | name: postlude | |
503 | version: '4.012' | |
504 | - | |
505 | class: Pod::Weaver::Section::Authors | |
506 | name: Authors | |
507 | version: '4.012' | |
508 | - | |
509 | class: Pod::Weaver::Section::Contributors | |
510 | name: Contributors | |
511 | version: '0.009' | |
512 | - | |
513 | class: Pod::Weaver::Section::Legal | |
514 | name: Legal | |
515 | version: '4.012' | |
516 | name: '@DROLSKY/SurgicalPodWeaver' | |
517 | version: '0.0023' | |
518 | - | |
519 | class: Dist::Zilla::Plugin::MojibakeTests | |
520 | name: '@DROLSKY/MojibakeTests' | |
521 | version: '0.8' | |
522 | - | |
523 | class: Dist::Zilla::Plugin::PodSyntaxTests | |
524 | name: '@DROLSKY/PodSyntaxTests' | |
525 | version: '5.041' | |
526 | - | |
527 | class: Dist::Zilla::Plugin::Test::CPAN::Changes | |
528 | name: '@DROLSKY/Test::CPAN::Changes' | |
529 | version: '0.009' | |
530 | - | |
531 | class: Dist::Zilla::Plugin::Test::NoTabs | |
532 | config: | |
533 | Dist::Zilla::Plugin::Test::NoTabs: | |
534 | filename: xt/author/no-tabs.t | |
535 | finder: | |
536 | - ':InstallModules' | |
537 | - ':ExecFiles' | |
538 | - ':TestFiles' | |
539 | name: '@DROLSKY/Test::NoTabs' | |
540 | version: '0.15' | |
541 | - | |
542 | class: Dist::Zilla::Plugin::Git::Check | |
543 | config: | |
544 | Dist::Zilla::Plugin::Git::Check: | |
545 | untracked_files: die | |
546 | Dist::Zilla::Role::Git::DirtyFiles: | |
547 | allow_dirty: | |
548 | - Build.PL | |
549 | - CONTRIBUTING.md | |
550 | - Changes | |
551 | - LICENSE | |
552 | - Makefile.PL | |
553 | - README.md | |
554 | - cpanfile | |
555 | allow_dirty_match: [] | |
556 | changelog: Changes | |
557 | Dist::Zilla::Role::Git::Repo: | |
558 | repo_root: . | |
559 | name: '@DROLSKY/Git::Check' | |
560 | version: '2.036' | |
561 | - | |
562 | class: Dist::Zilla::Plugin::Git::Commit | |
563 | config: | |
564 | Dist::Zilla::Plugin::Git::Commit: | |
565 | add_files_in: [] | |
566 | commit_msg: v%v%n%n%c | |
567 | Dist::Zilla::Role::Git::DirtyFiles: | |
568 | allow_dirty: | |
569 | - Build.PL | |
570 | - CONTRIBUTING.md | |
571 | - Changes | |
572 | - LICENSE | |
573 | - Makefile.PL | |
574 | - README.md | |
575 | - cpanfile | |
576 | allow_dirty_match: [] | |
577 | changelog: Changes | |
578 | Dist::Zilla::Role::Git::Repo: | |
579 | repo_root: . | |
580 | Dist::Zilla::Role::Git::StringFormatter: | |
581 | time_zone: local | |
582 | name: '@DROLSKY/commit generated files' | |
583 | version: '2.036' | |
584 | - | |
585 | class: Dist::Zilla::Plugin::Git::Tag | |
586 | config: | |
587 | Dist::Zilla::Plugin::Git::Tag: | |
588 | branch: ~ | |
589 | changelog: Changes | |
590 | signed: 0 | |
591 | tag: v0.32 | |
592 | tag_format: v%v | |
593 | tag_message: v%v | |
594 | Dist::Zilla::Role::Git::Repo: | |
595 | repo_root: . | |
596 | Dist::Zilla::Role::Git::StringFormatter: | |
597 | time_zone: local | |
598 | name: '@DROLSKY/Git::Tag' | |
599 | version: '2.036' | |
600 | - | |
601 | class: Dist::Zilla::Plugin::Git::Push | |
602 | config: | |
603 | Dist::Zilla::Plugin::Git::Push: | |
604 | push_to: | |
605 | - origin | |
606 | remotes_must_exist: 1 | |
607 | Dist::Zilla::Role::Git::Repo: | |
608 | repo_root: . | |
609 | name: '@DROLSKY/Git::Push' | |
610 | version: '2.036' | |
611 | - | |
612 | class: Dist::Zilla::Plugin::BumpVersionAfterRelease | |
613 | config: | |
614 | Dist::Zilla::Plugin::BumpVersionAfterRelease: | |
615 | finders: | |
616 | - ':ExecFiles' | |
617 | - ':InstallModules' | |
618 | global: 0 | |
619 | munge_makefile_pl: 1 | |
620 | name: '@DROLSKY/BumpVersionAfterRelease' | |
621 | version: '0.012' | |
622 | - | |
623 | class: Dist::Zilla::Plugin::Git::Commit | |
624 | config: | |
625 | Dist::Zilla::Plugin::Git::Commit: | |
626 | add_files_in: [] | |
627 | commit_msg: 'Bump version after release' | |
628 | Dist::Zilla::Role::Git::DirtyFiles: | |
629 | allow_dirty: | |
630 | - Changes | |
631 | - dist.ini | |
632 | allow_dirty_match: | |
633 | - (?^:.+) | |
634 | changelog: Changes | |
635 | Dist::Zilla::Role::Git::Repo: | |
636 | repo_root: . | |
637 | Dist::Zilla::Role::Git::StringFormatter: | |
638 | time_zone: local | |
639 | name: '@DROLSKY/commit version bump' | |
640 | version: '2.036' | |
641 | - | |
642 | class: Dist::Zilla::Plugin::Git::Push | |
643 | config: | |
644 | Dist::Zilla::Plugin::Git::Push: | |
645 | push_to: | |
646 | - origin | |
647 | remotes_must_exist: 1 | |
648 | Dist::Zilla::Role::Git::Repo: | |
649 | repo_root: . | |
650 | name: '@DROLSKY/push version bump' | |
651 | version: '2.036' | |
652 | - | |
653 | class: inc::MyMakeMaker | |
654 | config: | |
655 | Dist::Zilla::Role::TestRunner: | |
656 | default_jobs: 1 | |
657 | name: =inc::MyMakeMaker | |
658 | version: ~ | |
659 | - | |
660 | class: Dist::Zilla::Plugin::Prereqs | |
661 | config: | |
662 | Dist::Zilla::Plugin::Prereqs: | |
663 | phase: develop | |
664 | type: requires | |
665 | name: DevelopRequires | |
666 | version: '5.041' | |
667 | - | |
668 | class: Dist::Zilla::Plugin::MetaNoIndex | |
669 | name: MetaNoIndex | |
670 | version: '5.041' | |
671 | - | |
672 | class: Dist::Zilla::Plugin::TidyAll | |
673 | name: TidyAll | |
674 | version: '0.04' | |
675 | - | |
676 | class: Dist::Zilla::Plugin::FinderCode | |
677 | name: ':InstallModules' | |
678 | version: '5.041' | |
679 | - | |
680 | class: Dist::Zilla::Plugin::FinderCode | |
681 | name: ':IncModules' | |
682 | version: '5.041' | |
683 | - | |
684 | class: Dist::Zilla::Plugin::FinderCode | |
685 | name: ':TestFiles' | |
686 | version: '5.041' | |
687 | - | |
688 | class: Dist::Zilla::Plugin::FinderCode | |
689 | name: ':ExtraTestFiles' | |
690 | version: '5.041' | |
691 | - | |
692 | class: Dist::Zilla::Plugin::FinderCode | |
693 | name: ':ExecFiles' | |
694 | version: '5.041' | |
695 | - | |
696 | class: Dist::Zilla::Plugin::FinderCode | |
697 | name: ':PerlExecFiles' | |
698 | version: '5.041' | |
699 | - | |
700 | class: Dist::Zilla::Plugin::FinderCode | |
701 | name: ':ShareFiles' | |
702 | version: '5.041' | |
703 | - | |
704 | class: Dist::Zilla::Plugin::FinderCode | |
705 | name: ':MainModule' | |
706 | version: '5.041' | |
707 | - | |
708 | class: Dist::Zilla::Plugin::FinderCode | |
709 | name: ':AllFiles' | |
710 | version: '5.041' | |
711 | - | |
712 | class: Dist::Zilla::Plugin::FinderCode | |
713 | name: ':NoFiles' | |
714 | version: '5.041' | |
715 | - | |
716 | class: Dist::Zilla::Plugin::FinderCode | |
717 | name: '@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM' | |
718 | version: '5.041' | |
719 | zilla: | |
720 | class: Dist::Zilla::Dist::Builder | |
721 | config: | |
722 | is_trial: '0' | |
723 | version: '5.041' | |
724 | x_authority: cpan:DROLSKY | |
725 | x_contributors: | |
726 | - 'Andy Jack <andyjack@cpan.org>' | |
727 | - 'George Hartzell <georgewh@gene.com>' | |
728 | - 'Gregory Oschwald <goschwald@maxmind.com>' | |
729 | - 'Joe Crotty <joe.crotty@returnpath.net>' | |
730 | - 'Mark Fowler <mark@twoshortplanks.com>' | |
731 | - 'Mark Grimes <mgrimes@cpan.org>' | |
732 | - 'Olaf Alders <olaf@wundersolutions.com>' | |
733 | - 'Pedro Melo <melo@simplicidade.org>' | |
734 | - 'Sergey Romanov <sromanov-dev@yandex.ru>' | |
735 | - 'timgimyee <tim.gim.yee@gmail.com>' |
0 | # This Makefile.PL for Code-TidyAll was generated by | |
1 | # inc::MyMakeMaker <self> | |
2 | # and Dist::Zilla::Plugin::MakeMaker::Awesome 0.34. | |
3 | # Don't edit it but the dist.ini and plugins used to construct it. | |
0 | 4 | |
1 | # This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.012. | |
2 | 5 | use strict; |
3 | 6 | use warnings; |
4 | 7 | |
5 | ||
6 | ||
7 | use ExtUtils::MakeMaker 6.30; | |
8 | ||
9 | ||
8 | use ExtUtils::MakeMaker; | |
10 | 9 | |
11 | 10 | my %WriteMakefileArgs = ( |
12 | "ABSTRACT" => "Tidy and validate code in many ways at once", | |
13 | "AUTHOR" => "Jonathan Swartz <swartz\@pobox.com>", | |
14 | "BUILD_REQUIRES" => {}, | |
11 | "ABSTRACT" => "Engine for tidyall, your all-in-one code tidier and validator", | |
12 | "AUTHOR" => "Jonathan Swartz <swartz\@pobox.com>, Dave Rolsky <autarch\@urth.org>", | |
15 | 13 | "CONFIGURE_REQUIRES" => { |
16 | "ExtUtils::MakeMaker" => "6.30" | |
14 | "ExtUtils::MakeMaker" => 0 | |
17 | 15 | }, |
18 | 16 | "DISTNAME" => "Code-TidyAll", |
19 | 17 | "EXE_FILES" => [ |
22 | 20 | "LICENSE" => "perl", |
23 | 21 | "NAME" => "Code::TidyAll", |
24 | 22 | "PREREQ_PM" => { |
25 | "Capture::Tiny" => "0.12", | |
23 | "Capture::Tiny" => 0, | |
26 | 24 | "Config::INI::Reader" => 0, |
25 | "Cwd" => 0, | |
26 | "Data::Dumper" => 0, | |
27 | 27 | "Date::Format" => 0, |
28 | "Digest::SHA1" => 0, | |
28 | "Digest::SHA" => 0, | |
29 | "Exporter" => 0, | |
29 | 30 | "File::Basename" => 0, |
30 | 31 | "File::Find" => 0, |
31 | 32 | "File::Path" => 0, |
33 | "File::Slurp::Tiny" => 0, | |
34 | "File::Spec::Functions" => 0, | |
32 | 35 | "File::Temp" => 0, |
36 | "File::Which" => 0, | |
33 | 37 | "File::Zglob" => 0, |
34 | 38 | "Getopt::Long" => 0, |
35 | 39 | "Guard" => 0, |
36 | 40 | "IPC::Run3" => 0, |
37 | "IPC::System::Simple" => "0.15", | |
41 | "IPC::System::Simple" => 0, | |
38 | 42 | "List::MoreUtils" => 0, |
39 | 43 | "Log::Any" => 0, |
40 | "Moo" => "0.0091010", | |
44 | "Moo" => 0, | |
45 | "Moo::Role" => 0, | |
41 | 46 | "Scalar::Util" => 0, |
47 | "Test::Builder" => 0, | |
48 | "Text::Diff" => 0, | |
49 | "Text::Diff::Table" => 0, | |
42 | 50 | "Text::ParseWords" => 0, |
43 | 51 | "Time::Duration::Parse" => 0, |
44 | "Try::Tiny" => 0 | |
52 | "Try::Tiny" => 0, | |
53 | "base" => 0, | |
54 | "constant" => 0, | |
55 | "strict" => 0, | |
56 | "vars" => 0, | |
57 | "warnings" => 0 | |
45 | 58 | }, |
46 | 59 | "TEST_REQUIRES" => { |
47 | "Test::Class::Most" => 0 | |
60 | "Encode" => 0, | |
61 | "ExtUtils::MakeMaker" => 0, | |
62 | "File::Spec" => 0, | |
63 | "Test::Class::Most" => 0, | |
64 | "Test::Differences" => 0, | |
65 | "Test::More" => "0.96", | |
66 | "Test::Warnings" => 0, | |
67 | "autodie" => 0, | |
68 | "lib" => 0 | |
48 | 69 | }, |
49 | "VERSION" => "0.20", | |
70 | "VERSION" => "0.32", | |
50 | 71 | "test" => { |
51 | 72 | "TESTS" => "t/*.t" |
52 | 73 | } |
53 | 74 | ); |
54 | 75 | |
55 | ||
56 | 76 | my %FallbackPrereqs = ( |
57 | "Capture::Tiny" => "0.12", | |
77 | "Capture::Tiny" => 0, | |
58 | 78 | "Config::INI::Reader" => 0, |
79 | "Cwd" => 0, | |
80 | "Data::Dumper" => 0, | |
59 | 81 | "Date::Format" => 0, |
60 | "Digest::SHA1" => 0, | |
82 | "Digest::SHA" => 0, | |
83 | "Encode" => 0, | |
84 | "Exporter" => 0, | |
85 | "ExtUtils::MakeMaker" => 0, | |
61 | 86 | "File::Basename" => 0, |
62 | 87 | "File::Find" => 0, |
63 | 88 | "File::Path" => 0, |
89 | "File::Slurp::Tiny" => 0, | |
90 | "File::Spec" => 0, | |
91 | "File::Spec::Functions" => 0, | |
64 | 92 | "File::Temp" => 0, |
93 | "File::Which" => 0, | |
65 | 94 | "File::Zglob" => 0, |
66 | 95 | "Getopt::Long" => 0, |
67 | 96 | "Guard" => 0, |
68 | 97 | "IPC::Run3" => 0, |
69 | "IPC::System::Simple" => "0.15", | |
98 | "IPC::System::Simple" => 0, | |
70 | 99 | "List::MoreUtils" => 0, |
71 | 100 | "Log::Any" => 0, |
72 | "Moo" => "0.0091010", | |
101 | "Moo" => 0, | |
102 | "Moo::Role" => 0, | |
73 | 103 | "Scalar::Util" => 0, |
104 | "Test::Builder" => 0, | |
74 | 105 | "Test::Class::Most" => 0, |
106 | "Test::Differences" => 0, | |
107 | "Test::More" => "0.96", | |
108 | "Test::Warnings" => 0, | |
109 | "Text::Diff" => 0, | |
110 | "Text::Diff::Table" => 0, | |
75 | 111 | "Text::ParseWords" => 0, |
76 | 112 | "Time::Duration::Parse" => 0, |
77 | "Try::Tiny" => 0 | |
113 | "Try::Tiny" => 0, | |
114 | "autodie" => 0, | |
115 | "base" => 0, | |
116 | "constant" => 0, | |
117 | "lib" => 0, | |
118 | "strict" => 0, | |
119 | "vars" => 0, | |
120 | "warnings" => 0 | |
78 | 121 | ); |
79 | ||
80 | 122 | |
81 | 123 | unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { |
82 | 124 | delete $WriteMakefileArgs{TEST_REQUIRES}; |
89 | 131 | |
90 | 132 | WriteMakefile(%WriteMakefileArgs); |
91 | 133 | |
134 | use inc::Util qw(make_node_symlinks); | |
92 | 135 | |
93 | ||
136 | make_node_symlinks(); |
0 | NAME | |
1 | Code::TidyAll - Engine for tidyall, your all-in-one code tidier and | |
2 | validator | |
3 | ||
4 | VERSION | |
5 | version 0.20 | |
6 | ||
7 | SYNOPSIS | |
8 | use Code::TidyAll; | |
9 | ||
10 | my $ct = Code::TidyAll->new_from_conf_file( | |
11 | '/path/to/conf/file', | |
12 | ... | |
13 | ); | |
14 | ||
15 | # or | |
16 | ||
17 | my $ct = Code::TidyAll->new( | |
18 | root_dir => '/path/to/root', | |
19 | plugins => { | |
20 | perltidy => { | |
21 | select => 'lib/**/*.(pl|pm)', | |
22 | argv => '-noll -it=2', | |
23 | }, | |
24 | ... | |
25 | } | |
26 | ); | |
27 | ||
28 | # then... | |
29 | ||
30 | $ct->process_paths($file1, $file2); | |
31 | ||
32 | DESCRIPTION | |
33 | This is the engine used by tidyall - read that first to get an overview. | |
34 | ||
35 | You can call this API from your own program instead of executing | |
36 | `tidyall'. | |
37 | ||
38 | CONSTRUCTION | |
39 | Constructor methods | |
40 | new (%params) | |
41 | The regular constructor. Must pass at least *plugins* and | |
42 | *root_dir*. | |
43 | ||
44 | new_with_conf_file ($conf_file, %params) | |
45 | Takes a conf file path, followed optionally by a set of key/value | |
46 | parameters. Reads parameters out of the conf file and combines them | |
47 | with the passed parameters (the latter take precedence), and calls | |
48 | the regular constructor. | |
49 | ||
50 | If the conf file or params defines *tidyall_class*, then that class | |
51 | is constructed instead of `Code::TidyAll'. | |
52 | ||
53 | Constructor parameters | |
54 | plugins | |
55 | Specify a hash of plugins, each of which is itself a hash of | |
56 | options. This is equivalent to what would be parsed out of the | |
57 | sections in the configuration file. | |
58 | ||
59 | backup_ttl | |
60 | check_only | |
61 | data_dir | |
62 | iterations | |
63 | mode | |
64 | no_backups | |
65 | no_cache | |
66 | output_suffix | |
67 | quiet | |
68 | root_dir | |
69 | verbose | |
70 | These options are the same as the equivalent `tidyall' command-line | |
71 | options, replacing dashes with underscore (e.g. the `backup-ttl' | |
72 | option becomes `backup_ttl' here). | |
73 | ||
74 | METHODS | |
75 | process_paths (path, ...) | |
76 | Call process_file on each file; descend recursively into each | |
77 | directory if the `recursive' flag is on. Return a list of | |
78 | Code::TidyAll::Result objects, one for each file. | |
79 | ||
80 | process_file (file) | |
81 | Process the *file*, meaning | |
82 | ||
83 | * Check the cache and return immediately if file has not changed | |
84 | ||
85 | * Apply appropriate matching plugins | |
86 | ||
87 | * Print success or failure result to STDOUT, depending on | |
88 | quiet/verbose settings | |
89 | ||
90 | * Write the cache if enabled | |
91 | ||
92 | * Return a Code::TidyAll::Result object | |
93 | ||
94 | process_source (*source*, *path*) | |
95 | Like process_file, but process the *source* string instead of a | |
96 | file, and do not read from or write to the cache. You must still | |
97 | pass the relative *path* from the root as the second argument, so | |
98 | that we know which plugins to apply. Return a Code::TidyAll::Result | |
99 | object. | |
100 | ||
101 | plugins_for_path (*path*) | |
102 | Given a relative *path* from the root, return a list of | |
103 | Code::TidyAll::Plugin objects that apply to it, or an empty list if | |
104 | no plugins apply. | |
105 | ||
106 | find_conf_file (*conf_names*, *start_dir*) | |
107 | Class method. Start in the *start_dir* and work upwards, looking for | |
108 | one of the *conf_names*. Return the pathname if found or throw an | |
109 | error if not found. | |
110 | ||
111 | find_matched_files | |
112 | Returns a list of sorted files that match at least one plugin in | |
113 | configuration. | |
114 | ||
115 | SEE ALSO | |
116 | Code::TidyAll | |
117 | ||
118 | AUTHOR | |
119 | Jonathan Swartz <swartz@pobox.com> | |
120 | ||
121 | COPYRIGHT AND LICENSE | |
122 | This software is copyright (c) 2011 by Jonathan Swartz. | |
123 | ||
124 | This is free software; you can redistribute it and/or modify it under | |
125 | the same terms as the Perl 5 programming language system itself. | |
126 |
0 | NAME | |
1 | ||
2 | Code::TidyAll - Engine for tidyall, your all-in-one code tidier and | |
3 | validator | |
4 | ||
5 | VERSION | |
6 | ||
7 | version 0.32 | |
8 | ||
9 | SYNOPSIS | |
10 | ||
11 | use Code::TidyAll; | |
12 | ||
13 | my $ct = Code::TidyAll->new_from_conf_file( | |
14 | '/path/to/conf/file', | |
15 | ... | |
16 | ); | |
17 | ||
18 | # or | |
19 | ||
20 | my $ct = Code::TidyAll->new( | |
21 | root_dir => '/path/to/root', | |
22 | plugins => { | |
23 | perltidy => { | |
24 | select => 'lib/**/*.(pl|pm)', | |
25 | argv => '-noll -it=2', | |
26 | }, | |
27 | ... | |
28 | } | |
29 | ); | |
30 | ||
31 | # then... | |
32 | ||
33 | $ct->process_paths($file1, $file2); | |
34 | ||
35 | DESCRIPTION | |
36 | ||
37 | This is the engine used by tidyall - read that first to get an overview. | |
38 | ||
39 | You can call this API from your own program instead of executing tidyall. | |
40 | ||
41 | CONSTRUCTION | |
42 | ||
43 | Constructor methods | |
44 | ||
45 | new (%params) | |
46 | ||
47 | The regular constructor. Must pass at least plugins and root_dir. | |
48 | ||
49 | new_with_conf_file ($conf_file, %params) | |
50 | ||
51 | Takes a conf file path, followed optionally by a set of key/value | |
52 | parameters. Reads parameters out of the conf file and combines them with | |
53 | the passed parameters (the latter take precedence), and calls the regular | |
54 | constructor. | |
55 | ||
56 | If the conf file or params defines tidyall_class, then that class is | |
57 | constructed instead of Code::TidyAll. | |
58 | ||
59 | Constructor parameters | |
60 | ||
61 | plugins | |
62 | ||
63 | Specify a hash of plugins, each of which is itself a hash of options. | |
64 | This is equivalent to what would be parsed out of the sections in the | |
65 | configuration file. | |
66 | ||
67 | cache_model_class | |
68 | ||
69 | The cache model class. Defaults to Code::TidyAll::CacheModel | |
70 | ||
71 | cache | |
72 | ||
73 | The cache instance (e.g. an instance of Code::TidyAll::Cache or a CHI | |
74 | instance.) An instance of Code::TidyAll::Cache is automatically | |
75 | instantiated by default. | |
76 | ||
77 | backup_ttl | |
78 | ||
79 | check_only | |
80 | ||
81 | no_cleanup | |
82 | ||
83 | A boolean indicating if we should skip cleaning temporary files or not. | |
84 | Defaults to false. | |
85 | ||
86 | data_dir | |
87 | ||
88 | iterations | |
89 | ||
90 | mode | |
91 | ||
92 | no_backups | |
93 | ||
94 | no_cache | |
95 | ||
96 | output_suffix | |
97 | ||
98 | quiet | |
99 | ||
100 | root_dir | |
101 | ||
102 | verbose | |
103 | ||
104 | These options are the same as the equivalent tidyall command-line | |
105 | options, replacing dashes with underscore (e.g. the backup-ttl option | |
106 | becomes backup_ttl here). | |
107 | ||
108 | msg_outputter | |
109 | ||
110 | This is a subroutine reference that is called whenever a message needs to | |
111 | be printed in some way. The sub receives a sprintf() format string | |
112 | followed by one or more parameters. The default sub used simply calls | |
113 | printf "$format\n", @_ but Test::Code::TidyAll overrides this to use the | |
114 | Test::Builder->diag method. | |
115 | ||
116 | METHODS | |
117 | ||
118 | process_paths (path, ...) | |
119 | ||
120 | Call "process_file" on each file; descend recursively into each directory | |
121 | if the recursive flag is on. Return a list of Code::TidyAll::Result | |
122 | objects, one for each file. | |
123 | ||
124 | process_file (file) | |
125 | ||
126 | Process the file, meaning | |
127 | ||
128 | * Check the cache and return immediately if file has not changed | |
129 | ||
130 | * Apply appropriate matching plugins | |
131 | ||
132 | * Print success or failure result to STDOUT, depending on quiet/verbose | |
133 | settings | |
134 | ||
135 | * Write the cache if enabled | |
136 | ||
137 | * Return a Code::TidyAll::Result object | |
138 | ||
139 | process_source (source, path) | |
140 | ||
141 | Like "process_file", but process the source string instead of a file, and | |
142 | do not read from or write to the cache. You must still pass the relative | |
143 | path from the root as the second argument, so that we know which plugins | |
144 | to apply. Return a Code::TidyAll::Result object. | |
145 | ||
146 | plugins_for_path (path) | |
147 | ||
148 | Given a relative path from the root, return a list of | |
149 | Code::TidyAll::Plugin objects that apply to it, or an empty list if no | |
150 | plugins apply. | |
151 | ||
152 | find_conf_file (conf_names, start_dir) | |
153 | ||
154 | Class method. Start in the start_dir and work upwards, looking for one of | |
155 | the conf_names. Return the pathname if found or throw an error if not | |
156 | found. | |
157 | ||
158 | find_matched_files | |
159 | ||
160 | Returns a list of sorted files that match at least one plugin in | |
161 | configuration. | |
162 | ||
163 | AUTHORS | |
164 | ||
165 | * Jonathan Swartz <swartz@pobox.com> | |
166 | ||
167 | * Dave Rolsky <autarch@urth.org> | |
168 | ||
169 | CONTRIBUTORS | |
170 | ||
171 | * Andy Jack <andyjack@cpan.org> | |
172 | ||
173 | * George Hartzell <georgewh@gene.com> | |
174 | ||
175 | * Gregory Oschwald <goschwald@maxmind.com> | |
176 | ||
177 | * Joe Crotty <joe.crotty@returnpath.net> | |
178 | ||
179 | * Mark Fowler <mark@twoshortplanks.com> | |
180 | ||
181 | * Mark Grimes <mgrimes@cpan.org> | |
182 | ||
183 | * Olaf Alders <olaf@wundersolutions.com> | |
184 | ||
185 | * Pedro Melo <melo@simplicidade.org> | |
186 | ||
187 | * Sergey Romanov <sromanov-dev@yandex.ru> | |
188 | ||
189 | * timgimyee <tim.gim.yee@gmail.com> | |
190 | ||
191 | COPYRIGHT AND LICENSE | |
192 | ||
193 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
194 | ||
195 | This is free software; you can redistribute it and/or modify it under the | |
196 | same terms as the Perl 5 programming language system itself. | |
197 |
6 | 6 | use Code::TidyAll::Util qw(can_load dirname rel2abs); |
7 | 7 | use strict; |
8 | 8 | use warnings; |
9 | ||
10 | our $VERSION = '0.32'; | |
9 | 11 | |
10 | 12 | my $usage = ' |
11 | 13 | Usage: tidyall [options] [file] ... |
31 | 33 | --iterations <count> Number of times to repeat each transform - default is 1 |
32 | 34 | --no-backups Don\'t backup files before processing |
33 | 35 | --no-cache Don\'t cache last processed times |
36 | --no-cleanup Don\'t cleanup the temporary files | |
34 | 37 | --output-suffix <suffix> Suffix to add to tidied file |
35 | 38 | --refresh-cache Erase any existing cache info before processing each file |
36 | 39 | --root-dir Specify root directory explicitly |
63 | 66 | 'data-dir=s' => \$params{data_dir}, |
64 | 67 | 'no-backups' => \$params{no_backups}, |
65 | 68 | 'no-cache' => \$params{no_cache}, |
69 | 'no-cleanup' => \$params{no_cleanup}, | |
66 | 70 | 'output-suffix=s' => \$params{output_suffix}, |
67 | 71 | 'refresh-cache' => \$params{refresh_cache}, |
68 | 72 | 'root-dir=s' => \$params{root_dir}, |
78 | 82 | 's|svn' => \$svn_files, |
79 | 83 | 'q|quiet' => \$params{quiet}, |
80 | 84 | 'v|verbose' => \$params{verbose}, |
81 | 'I' => \$inc_dirs, | |
85 | 'I=s' => \$inc_dirs, | |
82 | 86 | ) or usage(); |
83 | 87 | version() if $version; |
84 | 88 | usage() if $help; |
88 | 92 | |
89 | 93 | %params = map { ( $_, $params{$_} ) } grep { defined( $params{$_} ) } keys(%params); |
90 | 94 | |
91 | ($conf_file) = ( grep { -f } map { "$params{root_dir}/$_" } @conf_names ) | |
92 | if $params{root_dir} && !$conf_file; | |
95 | ($conf_file) = ( grep {-f} map {"$params{root_dir}/$_"} @conf_names ) | |
96 | if $params{root_dir} && !$conf_file; | |
93 | 97 | |
94 | 98 | my $tidyall_class = $params{tidyall_class} || 'Code::TidyAll'; |
95 | 99 | |
101 | 105 | } |
102 | 106 | elsif ( ( $all_files || $svn_files || $git_files ) ) { |
103 | 107 | die "cannot use filename(s) with -a/--all, -s/--svn, or -g/--git" |
104 | if @ARGV; | |
108 | if @ARGV; | |
105 | 109 | $conf_file ||= $tidyall_class->find_conf_file( \@conf_names, cwd() ); |
106 | 110 | $ct = $tidyall_class->new_from_conf_file( $conf_file, %params ); |
107 | 111 | |
173 | 177 | |
174 | 178 | __END__ |
175 | 179 | |
176 | =pod | |
177 | ||
178 | 180 | =head1 NAME |
179 | 181 | |
180 | 182 | tidyall - Your all-in-one code tidier and validator |
181 | ||
182 | =head1 VERSION | |
183 | ||
184 | version 0.20 | |
185 | 183 | |
186 | 184 | =head1 SYNOPSIS |
187 | 185 | |
241 | 239 | =item * |
242 | 240 | |
243 | 241 | Perl: L<perlcritic|Code::TidyAll::Plugin::PerlCritic>, |
244 | L<perltidy|Code::TidyAll::Plugin::PerlTidy> | |
242 | L<perltidy|Code::TidyAll::Plugin::PerlTidy>, | |
243 | L<perltidy-sweet|Code::TidyAll::Plugin::PerlTidy::Sweetened> | |
245 | 244 | |
246 | 245 | =item * |
247 | 246 | |
265 | 264 | |
266 | 265 | =item * |
267 | 266 | |
268 | CSS: L<cssunminifier|Code::TidyAll::Plugin::CSUnminifier> | |
269 | ||
270 | =item * | |
271 | ||
272 | PHP: L<phpcs|Code::TidyAll::Plugin::CSUnminifier> | |
273 | ||
274 | =item * | |
275 | ||
276 | Misc: L<Code::TidyAll::Plugin::SortLines|Code::TidyAll::Plugin::SortLines> | |
267 | CSS: L<cssunminifier|Code::TidyAll::Plugin::CSSUnminifier> | |
268 | ||
269 | =item * | |
270 | ||
271 | PHP: L<phpcs|Code::TidyAll::Plugin::PHPCodeSniffer> | |
272 | ||
273 | =item * | |
274 | ||
275 | Misc: L<Code::TidyAll::Plugin::SortLines> | |
277 | 276 | |
278 | 277 | =back |
279 | 278 | |
280 | See L<Code::TidyAll::Plugin|Code::TidyAll::Plugin> for information about | |
281 | creating your own plugin. | |
279 | See L<Code::TidyAll::Plugin> for information about creating your own plugin. | |
282 | 280 | |
283 | 281 | =head1 USING TIDYALL |
284 | 282 | |
319 | 317 | |
320 | 318 | =head1 CONFIGURATION |
321 | 319 | |
322 | The config file (C<tidyall.ini> or C<.tidyallrc>) is in | |
323 | L<Config::INI|Config::INI> format. Here's a sample: | |
320 | The config file (C<tidyall.ini> or C<.tidyallrc>) is in L<Config::INI> format. | |
321 | Here's a sample: | |
324 | 322 | |
325 | 323 | [PerlTidy] |
326 | 324 | select = **/*.{pl,pm,t} |
394 | 392 | |
395 | 393 | =item select |
396 | 394 | |
397 | One or more L<File::Zglob|File::Zglob> patterns, separated by whitespace or on | |
398 | multiple lines, indicating which files to select. At least one is required. | |
399 | e.g. | |
395 | One or more L<File::Zglob> patterns, separated by whitespace or on multiple | |
396 | lines, indicating which files to select. At least one is required. e.g. | |
400 | 397 | |
401 | 398 | ; All .t and .pl somewhere under bin and t; |
402 | 399 | ; plus all .pm files directly under lib/Foo and lib/Bar |
410 | 407 | |
411 | 408 | The pattern is relative to the root directory and should have no leading slash. |
412 | 409 | All standard glob characters (C<*>, C<?>, C<[]>, C<{}>) will work; in addition, |
413 | C<**> can be used to represent zero or more directories. See | |
414 | L<File::Zglob|File::Zglob> documentation for more details. | |
410 | C<**> can be used to represent zero or more directories. See L<File::Zglob> | |
411 | documentation for more details. | |
415 | 412 | |
416 | 413 | =item ignore |
417 | 414 | |
418 | One or more L<File::Zglob|File::Zglob> patterns, separated by whitespace or on | |
419 | multiple lines, indicating which files to ignore. This is optional and | |
420 | overrides C<select>. e.g. | |
415 | One or more L<File::Zglob> patterns, separated by whitespace or on multiple | |
416 | lines, indicating which files to ignore. This is optional and overrides | |
417 | C<select>. e.g. | |
421 | 418 | |
422 | 419 | ; All .pl files anywhere under bin, except bin/awful.pl or anywhere |
423 | 420 | ; under bin/tmp |
425 | 422 | select = bin/**/*.pl |
426 | 423 | ignore = bin/awful.pl bin/tmp/**/*.pl |
427 | 424 | |
425 | =item shebang | |
426 | ||
427 | One or more words, separated by whitespace or on multiple lines, indicating | |
428 | which shebang lines to accept. This is optional and further filters C<select>. | |
429 | e.g. | |
430 | ||
431 | ; All files with no extension anywhere under bin that include a "perl" or | |
432 | ; "perl5" shebang line. | |
433 | select = bin/**/* | |
434 | ignore = bin/**/*.* | |
435 | shebang = perl perl5 | |
436 | ||
428 | 437 | =item only_modes |
429 | 438 | |
430 | 439 | A list of modes, separated by whitespace. e.g. |
431 | 440 | |
432 | only_modes = tests cli | |
441 | only_modes = test cli | |
433 | 442 | |
434 | 443 | The plugin will I<only> run if one of these modes is passed to C<tidyall> via |
435 | 444 | C<-m> or C<--mode>. |
450 | 459 | L<podtidy|Code::TidyAll::Plugin::PodTidy>) take this option, which specifies |
451 | 460 | arguments to pass to the underlying command-line utility. |
452 | 461 | |
462 | =item weight | |
463 | ||
464 | This is an integer that is used to sort plugins. By default, tidier plugins run | |
465 | first, then validator plugins, with each group sorted alphabetically. | |
466 | ||
453 | 467 | =back |
454 | 468 | |
455 | 469 | =head1 PLUGIN ORDER AND ATOMICITY |
457 | 471 | If multiple plugins match a file, tidiers are applied before validators so that |
458 | 472 | validators are checking the final result. Within those two groups, the plugins |
459 | 473 | are applied in alphabetical order by plugin name/description. |
474 | ||
475 | You can also explicitly set the weight of each plugin. By default, tidiers have | |
476 | a weight of 50 and validators have a weight of 60. You can set the weight to | |
477 | any integer to influence when the plugin runs. | |
460 | 478 | |
461 | 479 | The application of multiple plugins is all-or-nothing. If an error occurs |
462 | 480 | during the application of any plugin, the file is not modified at all. |
543 | 561 | =item --backup-ttl I<duration> |
544 | 562 | |
545 | 563 | Amount of time before backup files can be purged. Can be a number of seconds or |
546 | any string recognized by L<Time::Duration::Parse|Time::Duration::Parse>, e.g. | |
547 | "4h" or "1day". Defaults to "1h". | |
564 | any string recognized by L<Time::Duration::Parse>, e.g. "4h" or "1day". | |
565 | Defaults to "1h". | |
548 | 566 | |
549 | 567 | =item --check-only |
550 | 568 | |
551 | 569 | Instead of actually tidying files, check if each file is tidied (i.e. if its |
552 | 570 | tidied version is equal to its current version) and consider it an error if |
553 | not. This is used by L<Test::Code::TidyAll|Test::Code::TidyAll> and the | |
571 | not. This is used by L<Test::Code::TidyAll> and the | |
554 | 572 | L<svn|Code::TidyAll::SVN::Precommit> and L<git|Code::TidyAll::Git::Precommit> |
555 | 573 | pre-commit hooks, for example, to enforce that you've tidied your files. |
556 | 574 | |
659 | 677 | |
660 | 678 | =item * |
661 | 679 | |
662 | C<commit> - when using a commit hook like | |
663 | L<Code::TidyAll::SVN::Precommit|Code::TidyAll::SVN::Precommit> or | |
664 | L<Code::TidyAll::Git::Precommit|Code::TidyAll::Git::Precommit> | |
665 | ||
666 | =item * | |
667 | ||
668 | C<test> - when using L<Test::Code::TidyAll|Test::Code::TidyAll> | |
680 | C<commit> - when using a commit hook like L<Code::TidyAll::SVN::Precommit> or | |
681 | L<Code::TidyAll::Git::Precommit> | |
682 | ||
683 | =item * | |
684 | ||
685 | C<test> - when using L<Test::Code::TidyAll> | |
669 | 686 | |
670 | 687 | =back |
671 | 688 | |
675 | 692 | |
676 | 693 | [PerlCritic] |
677 | 694 | select = lib/**/*.pm |
678 | only_modes = tests cli | |
695 | only_modes = test cli | |
679 | 696 | ... |
680 | 697 | |
681 | 698 | Or you could specify that it be run in all modes I<except> the editor: |
706 | 723 | runs. The duration specified in C<--backup-ttl> indicates both the minimum |
707 | 724 | amount of time backups should be kept, and the frequency that purges should be |
708 | 725 | run. It may be specified as "30m" or "4 hours" or any string acceptable to |
709 | L<Time::Duration::Parse|Time::Duration::Parse>. It defaults to "1h" (1 hour). | |
726 | L<Time::Duration::Parse>. It defaults to "1h" (1 hour). | |
710 | 727 | |
711 | 728 | You can turn off backups with C<--no-backups>. |
712 | 729 | |
730 | =head1 "MISSING" PREREQS | |
731 | ||
732 | The C<Code::TidyAll> distribution intentionally does not depend on the prereqs | |
733 | needed for each plugin. This means that if you want to use the | |
734 | L<perltidy|Code::TidyAll::Plugin::PerlTidy>, you must install the L<Perl::Tidy> | |
735 | module manually. | |
736 | ||
713 | 737 | =head1 RELATED TOOLS |
714 | 738 | |
715 | 739 | =over |
716 | 740 | |
717 | 741 | =item * |
718 | 742 | |
719 | L<etc/editors/tidyall.el|https://raw.github.com/jonswar/perl-code-tidyall/master/etc/editors/tidyall.el> | |
743 | L<etc/editors/tidyall.el|https://raw.github.com/autarch-code/perl-code-tidyall/master/etc/editors/tidyall.el> | |
720 | 744 | and |
721 | L<etc/editors/tidyall.vim|https://raw.github.com/jonswar/perl-code-tidyall/master/etc/editors/tidyall.vim> | |
745 | L<etc/editors/tidyall.vim|https://raw.github.com/autarch-code/perl-code-tidyall/master/etc/editors/tidyall.vim> | |
722 | 746 | in this distribution contains Emacs and Vim commands for running C<tidyall> on |
723 | 747 | the current buffer. You can assign this to the keystroke of your choice (e.g. |
724 | 748 | ctrl-t or ,t). |
725 | 749 | |
726 | 750 | =item * |
727 | 751 | |
728 | L<Code::TidyAll::SVN::Precommit|Code::TidyAll::SVN::Precommit> implements a | |
729 | subversion pre-commit hook that checks if all files are tidied and valid | |
730 | according to C<tidyall>, and rejects the commit if not. | |
731 | ||
732 | =item * | |
733 | ||
734 | L<Code::TidyAll::Git::Precommit|Code::TidyAll::Git::Precommit> and | |
735 | L<Code::TidyAll::Git::Prereceive|Code::TidyAll::Git::Prereceive> implement git | |
736 | pre-commit and pre-receive hooks, respectively, that check if all files are | |
737 | tidied and valid according to C<tidyall>. | |
738 | ||
739 | =item * | |
740 | ||
741 | L<Test::Code::TidyAll|Test::Code::TidyAll> is a testing library to check that | |
742 | all the files in your project are in a tidied and valid state. | |
752 | L<Code::TidyAll::SVN::Precommit> implements a subversion pre-commit hook that | |
753 | checks if all files are tidied and valid according to C<tidyall>, and rejects | |
754 | the commit if not. | |
755 | ||
756 | =item * | |
757 | ||
758 | L<Code::TidyAll::Git::Precommit> and L<Code::TidyAll::Git::Prereceive> | |
759 | implement git pre-commit and pre-receive hooks, respectively, that check if all | |
760 | files are tidied and valid according to C<tidyall>. | |
761 | ||
762 | =item * | |
763 | ||
764 | L<Test::Code::TidyAll> is a testing library to check that all the files in your | |
765 | project are in a tidied and valid state. | |
743 | 766 | |
744 | 767 | =back |
745 | 768 | |
752 | 775 | Does not yet work on Windows |
753 | 776 | |
754 | 777 | =back |
778 | ||
779 | =head1 AUTHOR | |
780 | ||
781 | Jonathan Swartz | |
755 | 782 | |
756 | 783 | =head1 ACKNOWLEDGMENTS |
757 | 784 | |
759 | 786 | perlcritic, Steve Hancock for perltidy, and all the other authors of great open |
760 | 787 | source tidiers and validators. |
761 | 788 | |
762 | =head1 SEE ALSO | |
763 | ||
764 | L<Code::TidyAll|Code::TidyAll> | |
765 | ||
766 | =head1 AUTHOR | |
767 | ||
768 | Jonathan Swartz <swartz@pobox.com> | |
769 | ||
770 | =head1 COPYRIGHT AND LICENSE | |
771 | ||
772 | This software is copyright (c) 2011 by Jonathan Swartz. | |
773 | ||
774 | This is free software; you can redistribute it and/or modify it under | |
775 | the same terms as the Perl 5 programming language system itself. | |
776 | ||
777 | 789 | =cut |
0 | requires "Capture::Tiny" => "0"; | |
1 | requires "Config::INI::Reader" => "0"; | |
2 | requires "Cwd" => "0"; | |
3 | requires "Data::Dumper" => "0"; | |
4 | requires "Date::Format" => "0"; | |
5 | requires "Digest::SHA" => "0"; | |
6 | requires "Exporter" => "0"; | |
7 | requires "File::Basename" => "0"; | |
8 | requires "File::Find" => "0"; | |
9 | requires "File::Path" => "0"; | |
10 | requires "File::Slurp::Tiny" => "0"; | |
11 | requires "File::Spec::Functions" => "0"; | |
12 | requires "File::Temp" => "0"; | |
13 | requires "File::Which" => "0"; | |
14 | requires "File::Zglob" => "0"; | |
15 | requires "Getopt::Long" => "0"; | |
16 | requires "Guard" => "0"; | |
17 | requires "IPC::Run3" => "0"; | |
18 | requires "IPC::System::Simple" => "0"; | |
19 | requires "List::MoreUtils" => "0"; | |
20 | requires "Log::Any" => "0"; | |
21 | requires "Moo" => "0"; | |
22 | requires "Moo::Role" => "0"; | |
23 | requires "Scalar::Util" => "0"; | |
24 | requires "Test::Builder" => "0"; | |
25 | requires "Text::Diff" => "0"; | |
26 | requires "Text::Diff::Table" => "0"; | |
27 | requires "Text::ParseWords" => "0"; | |
28 | requires "Time::Duration::Parse" => "0"; | |
29 | requires "Try::Tiny" => "0"; | |
30 | requires "base" => "0"; | |
31 | requires "constant" => "0"; | |
32 | requires "strict" => "0"; | |
33 | requires "vars" => "0"; | |
34 | requires "warnings" => "0"; | |
35 | ||
36 | on 'test' => sub { | |
37 | requires "Encode" => "0"; | |
38 | requires "ExtUtils::MakeMaker" => "0"; | |
39 | requires "File::Spec" => "0"; | |
40 | requires "Test::Class::Most" => "0"; | |
41 | requires "Test::Differences" => "0"; | |
42 | requires "Test::More" => "0.96"; | |
43 | requires "Test::Warnings" => "0"; | |
44 | requires "autodie" => "0"; | |
45 | requires "lib" => "0"; | |
46 | }; | |
47 | ||
48 | on 'test' => sub { | |
49 | recommends "CPAN::Meta" => "2.120900"; | |
50 | }; | |
51 | ||
52 | on 'configure' => sub { | |
53 | requires "ExtUtils::MakeMaker" => "0"; | |
54 | }; | |
55 | ||
56 | on 'develop' => sub { | |
57 | requires "CHI" => "0"; | |
58 | requires "Code::TidyAll" => "0"; | |
59 | requires "Code::TidyAll::Plugin::Perl::AlignMooseAttributes" => "0"; | |
60 | requires "JSON::MaybeXS" => "0"; | |
61 | requires "Mason::Tidy" => "0"; | |
62 | requires "Mason::Tidy::App" => "0"; | |
63 | requires "Perl::Critic" => "1.123"; | |
64 | requires "Perl::Critic::Policy::Moose::RequireMakeImmutable" => "0"; | |
65 | requires "Perl::Tidy" => "20150815"; | |
66 | requires "Perl::Tidy::Sweetened" => "1.00"; | |
67 | requires "Pod::Checker" => "0"; | |
68 | requires "Pod::Spell" => "0"; | |
69 | requires "Pod::Tidy" => "0"; | |
70 | requires "SVN::Look" => "0"; | |
71 | requires "Test::CPAN::Changes" => "0.19"; | |
72 | requires "Test::Mojibake" => "0"; | |
73 | requires "Test::More" => "0.88"; | |
74 | requires "Test::NoTabs" => "0"; | |
75 | requires "Test::Pod" => "1.41"; | |
76 | requires "Test::Spelling" => "0.12"; | |
77 | requires "Test::Version" => "1"; | |
78 | }; |
0 | name = Code-TidyAll | |
1 | author = Jonathan Swartz <swartz@pobox.com> | |
2 | author = Dave Rolsky <autarch@urth.org> | |
3 | license = Perl_5 | |
4 | copyright_year = 2011 | |
5 | copyright_holder = Jonathan Swartz | |
6 | ||
7 | [@DROLSKY] | |
8 | dist = Code-TidyAll | |
9 | prereqs_skip = JSON::MaybeXS | |
10 | prereqs_skip = Mason::Tidy | |
11 | prereqs_skip = Mason::Tidy::App | |
12 | prereqs_skip = Perl::Tidy | |
13 | prereqs_skip = Perl::Tidy::Sweetened | |
14 | prereqs_skip = Pod::Checker | |
15 | prereqs_skip = Pod::Spell | |
16 | prereqs_skip = Pod::Tidy | |
17 | prereqs_skip = SVN::Look | |
18 | stopwords_file = .ispell_english | |
19 | -remove = DROLSKY::TidyAll | |
20 | ; This ends up matching legitimate markdown | |
21 | -remove = Git::CheckFor::MergeConflicts | |
22 | -remove = MakeMaker | |
23 | ; Many plugins won't compile without optional prereqs | |
24 | -remove = Test::Compile | |
25 | ; The Pod::Tidy tidying leaves spaces at the ends of lines | |
26 | -remove = Test::EOL | |
27 | -remove = Test::Pod::Coverage::Configurable | |
28 | ; Can't resolve L<Mason> for some reason | |
29 | -remove = Test::Pod::LinkCheck | |
30 | -remove = Test::Pod::No404s | |
31 | -remove = Test::Portability | |
32 | -remove = Test::Synopsis | |
33 | -remove = Test::TidyAll | |
34 | ||
35 | ;authordep Dist::Zilla::Plugin::MakeMaker::Awesome | |
36 | [=inc::MyMakeMaker] | |
37 | ||
38 | ;authordep Pod::Tidy | |
39 | ||
40 | [Prereqs / DevelopRequires] | |
41 | CHI = 0 | |
42 | Code::TidyAll::Plugin::Perl::AlignMooseAttributes = 0 | |
43 | JSON::MaybeXS = 0 | |
44 | Mason::Tidy = 0 | |
45 | Mason::Tidy::App = 0 | |
46 | Perl::Critic::Policy::Moose::RequireMakeImmutable = 0 | |
47 | Perl::Tidy = 20150815 | |
48 | Perl::Tidy::Sweetened = 1.00 | |
49 | Pod::Checker = 0 | |
50 | Pod::Spell = 0 | |
51 | Pod::Tidy = 0 | |
52 | SVN::Look = 0 | |
53 | ||
54 | [MetaNoIndex] | |
55 | file = lib/Code/TidyAll/Util.pm | |
56 | ||
57 | [TidyAll] |
105 | 105 | (insert-file-contents error-file)) |
106 | 106 | (when (< (length (window-list)) 2) |
107 | 107 | (split-window-vertically)) |
108 | (set-window-buffer (next-window) error-buffer))))))))) | |
108 | (set-window-buffer (next-window) error-buffer)))) | |
109 | (delete-file error-file)))))) | |
110 | ||
111 | (provide 'tidyall) |
0 | package inc::MyMakeMaker; | |
1 | ||
2 | use Moose; | |
3 | ||
4 | use namespace::autoclean; | |
5 | ||
6 | extends 'Dist::Zilla::Plugin::MakeMaker::Awesome'; | |
7 | ||
8 | override _build_MakeFile_PL_template => sub { | |
9 | return super() . do { local $/ = undef; <DATA> }; | |
10 | }; | |
11 | ||
12 | __PACKAGE__->meta->make_immutable; | |
13 | ||
14 | 1; | |
15 | ||
16 | __DATA__ | |
17 | use inc::Util qw(make_node_symlinks); | |
18 | ||
19 | make_node_symlinks(); | |
20 |
0 | package inc::Pod::Weaver::Section::SeeAlsoCodeTidyAll; | |
1 | ||
2 | use namespace::autoclean; | |
3 | ||
4 | use Moose; | |
5 | with 'Pod::Weaver::Role::Section'; | |
6 | ||
7 | use Pod::Elemental::Selectors; | |
8 | ||
9 | # Add "SEE ALSO: Code::TidyAll" | |
10 | ||
11 | sub weave_section { | |
12 | my ( $self, $document, $input ) = @_; | |
13 | ||
14 | return if $input->{filename} =~ m{\QCode/TidyAll.pm}; | |
15 | ||
16 | my $idc = $input->{pod_document}->children; | |
17 | for ( my $i = 0; $i < scalar @{$idc}; $i++ ) { | |
18 | next unless my $para = $idc->[$i]; | |
19 | return | |
20 | if $para->can('command') | |
21 | && $para->command eq 'head1' | |
22 | && $para->content eq 'SEE ALSO'; | |
23 | } | |
24 | ||
25 | push @{ $document->children }, | |
26 | Pod::Elemental::Element::Nested->new( | |
27 | { | |
28 | command => 'head1', | |
29 | content => 'SEE ALSO', | |
30 | children => [ | |
31 | Pod::Elemental::Element::Pod5::Ordinary->new( | |
32 | { content => "L<Code::TidyAll>" } | |
33 | ), | |
34 | ], | |
35 | } | |
36 | ); | |
37 | } | |
38 | ||
39 | __PACKAGE__->meta->make_immutable; | |
40 | ||
41 | 1; |
0 | package inc::Util; | |
1 | ||
2 | use strict; | |
3 | use warnings; | |
4 | ||
5 | use Exporter qw(import); | |
6 | use File::Path qw(mkpath); | |
7 | ||
8 | our @EXPORT_OK = qw(make_node_symlinks); | |
9 | ||
10 | sub make_node_symlinks { | |
11 | return unless eval { | |
12 | no warnings 'uninitialized'; | |
13 | symlink( qw{}, q{} ); | |
14 | 1; | |
15 | }; | |
16 | ||
17 | my %links = ( | |
18 | 'css-beautify' => '../js-beautify/js/bin/css-beautify.js', | |
19 | 'cssunminifier' => '../cssunminifier/bin/cssunminifier', | |
20 | 'html-beautify' => '../js-beautify/js/bin/html-beautify.js', | |
21 | 'js-beautify' => '../js-beautify/js/bin/js-beautify.js', | |
22 | 'jshint' => '../jshint/bin/jshint', | |
23 | 'jslint' => '../jslint/bin/jslint.js', | |
24 | ); | |
25 | ||
26 | my $bin = 'node_modules/.bin'; | |
27 | mkpath( $bin, 0, 0755 ); | |
28 | chdir $bin or die "Cannot chdir to $bin: $!"; | |
29 | ||
30 | for my $from ( keys %links ) { | |
31 | symlink $links{$from}, $from unless -l $from || -f _; | |
32 | } | |
33 | } | |
34 | ||
35 | 1; |
0 | 0 | package Code::TidyAll::Cache; |
1 | $Code::TidyAll::Cache::VERSION = '0.20'; | |
2 | use Digest::SHA1 qw(sha1_hex); | |
3 | use Code::TidyAll::Util qw(dirname mkpath read_file write_file); | |
1 | ||
2 | use Digest::SHA qw(sha1_hex); | |
3 | use Code::TidyAll::Util qw(dirname mkpath); | |
4 | use File::Slurp::Tiny qw(read_file write_file); | |
4 | 5 | use Moo; |
6 | ||
7 | our $VERSION = '0.32'; | |
5 | 8 | |
6 | 9 | has 'cache_dir' => ( is => 'ro', required => 1 ); |
7 | 10 |
0 | package Code::TidyAll::CacheModel::Shared; | |
1 | ||
2 | use Moo; | |
3 | extends 'Code::TidyAll::CacheModel'; | |
4 | ||
5 | our $VERSION = '0.32'; | |
6 | ||
7 | sub _build_cache_key { | |
8 | my $self = shift; | |
9 | return $self->_sig( | |
10 | [ | |
11 | $self->SUPER::_build_cache_key, | |
12 | $self->file_contents | |
13 | ] | |
14 | ); | |
15 | } | |
16 | ||
17 | sub _build_cache_value { | |
18 | return 1; | |
19 | } | |
20 | ||
21 | sub remove { | |
22 | return; | |
23 | } | |
24 | ||
25 | 1; | |
26 | ||
27 | # ABSTRACT: Shared cache model for Code::TidyAll | |
28 | ||
29 | __END__ | |
30 | ||
31 | =pod | |
32 | ||
33 | =head1 NAME | |
34 | ||
35 | Code::TidyAll::CacheModel::Shared - Shared cache model for Code::TidyAll | |
36 | ||
37 | =head1 VERSION | |
38 | ||
39 | version 0.32 | |
40 | ||
41 | =head1 SYNOPSIS | |
42 | ||
43 | my $cta = Code::TidyAll->new( | |
44 | cache_model_class => 'Code::TidyAll::CacheModel::Shared', | |
45 | ... | |
46 | ); | |
47 | ||
48 | =head1 DESCRIPTION | |
49 | ||
50 | An alternative caching model for Code::TidyAll designed to work in shared build | |
51 | systems / systems with lots of branches. | |
52 | ||
53 | This cache model uses both the file name and file contents to build the cache | |
54 | key and a meaningless cache value. It does not care about the modification time | |
55 | of the file. | |
56 | ||
57 | This allows you to share a cache when you might have several versions of a file | |
58 | that you switch backwards and forwards between (e.g. when you're working on | |
59 | several branches) and keep the cache values | |
60 | ||
61 | =head1 SEE ALSO | |
62 | ||
63 | L<Code::TidyAll> | |
64 | ||
65 | =head1 AUTHORS | |
66 | ||
67 | =over 4 | |
68 | ||
69 | =item * | |
70 | ||
71 | Jonathan Swartz <swartz@pobox.com> | |
72 | ||
73 | =item * | |
74 | ||
75 | Dave Rolsky <autarch@urth.org> | |
76 | ||
77 | =back | |
78 | ||
79 | =head1 COPYRIGHT AND LICENSE | |
80 | ||
81 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
82 | ||
83 | This is free software; you can redistribute it and/or modify it under the same | |
84 | terms as the Perl 5 programming language system itself. | |
85 | ||
86 | =cut |
0 | package Code::TidyAll::CacheModel; | |
1 | ||
2 | use Digest::SHA qw(sha1_hex); | |
3 | use File::Slurp::Tiny qw(read_file); | |
4 | use Moo; | |
5 | ||
6 | our $VERSION = '0.32'; | |
7 | ||
8 | # todo, type checking? | |
9 | ||
10 | has 'base_sig' => ( is => 'ro', default => "" ); | |
11 | has 'cache_engine' => ( is => 'ro' ); | |
12 | has 'cache_key' => ( is => 'lazy', clearer => 1 ); | |
13 | has 'cache_value' => ( is => 'lazy', clearer => 1 ); | |
14 | has 'file_contents' => ( is => 'rw', lazy => 1, builder => 1, trigger => 1, clearer => 1 ); | |
15 | has 'full_path' => ( is => 'ro', required => 1 ); | |
16 | has 'is_cached' => ( is => 'rw', lazy => 1, builder => 1, clearer => 1 ); | |
17 | has 'path' => ( is => 'ro', required => 1 ); | |
18 | ||
19 | sub _build_file_contents { | |
20 | my ($self) = @_; | |
21 | return read_file( $self->full_path ); | |
22 | } | |
23 | ||
24 | sub _trigger_file_contents { | |
25 | my $self = shift; | |
26 | $self->clear_cache_key; | |
27 | $self->clear_is_cached; | |
28 | $self->clear_cache_value; | |
29 | return; | |
30 | } | |
31 | ||
32 | sub _build_cache_key { | |
33 | my ($self) = @_; | |
34 | return 'sig/' . $self->path; | |
35 | } | |
36 | ||
37 | sub _build_cache_value { | |
38 | my ($self) = @_; | |
39 | ||
40 | # this stat isn't ideal, but it'll do | |
41 | my $last_mod = ( stat( $self->full_path ) )[9]; | |
42 | return $self->_sig( [ $self->base_sig, $last_mod, $self->file_contents ] ); | |
43 | } | |
44 | ||
45 | sub _build_is_cached { | |
46 | my ($self) = @_; | |
47 | my $cache_engine = $self->cache_engine or return; | |
48 | my $cached_value = $cache_engine->get( $self->cache_key ); | |
49 | return defined $cached_value && $cached_value eq $self->cache_value; | |
50 | } | |
51 | ||
52 | sub update { | |
53 | my ($self) = @_; | |
54 | my $cache_engine = $self->cache_engine or return; | |
55 | $cache_engine->set( $self->cache_key, $self->cache_value ); | |
56 | $self->is_cached(1); | |
57 | return; | |
58 | } | |
59 | ||
60 | sub remove { | |
61 | my ($self) = @_; | |
62 | my $cache_engine = $self->cache_engine or return; | |
63 | $cache_engine->remove( $self->cache_key ); | |
64 | return; | |
65 | } | |
66 | ||
67 | sub _sig { | |
68 | my ( $self, $data ) = @_; | |
69 | return sha1_hex( join( ",", @$data ) ); | |
70 | } | |
71 | ||
72 | 1; | |
73 | ||
74 | # ABSTRACT: Caching model for Code::TidyAll | |
75 | ||
76 | __END__ | |
77 | ||
78 | =pod | |
79 | ||
80 | =head1 NAME | |
81 | ||
82 | Code::TidyAll::CacheModel - Caching model for Code::TidyAll | |
83 | ||
84 | =head1 VERSION | |
85 | ||
86 | version 0.32 | |
87 | ||
88 | =head1 SYNOPSIS | |
89 | ||
90 | my $cache_model = Cody::TidyAll::CacheModel->new( | |
91 | cache_engine => Code::TidyAll::Cache->new(...), | |
92 | path => "/path/to/file/to/cache", | |
93 | ); | |
94 | ||
95 | # check cache | |
96 | print "Yes!" if $cache_model->is_cached; | |
97 | ||
98 | # update cache | |
99 | $cache_model->clear_file_contents; | |
100 | $cache_model->update; | |
101 | ||
102 | # update the cache when you know the file contents | |
103 | $cache_model->file_contents($new_content); | |
104 | $cache_model->update; | |
105 | ||
106 | # force removal from cache | |
107 | $cache_model->remove; | |
108 | ||
109 | =head1 DESCRIPTION | |
110 | ||
111 | A cache model for Code::TidyAll. Different subclasses can employ different | |
112 | caching techniques. | |
113 | ||
114 | The basic model implemented here is simple; It stores in the cache a hash key | |
115 | of the file contents keyed by a hash key of the file's path. | |
116 | ||
117 | =head2 Attributes | |
118 | ||
119 | =over | |
120 | ||
121 | =item full_path (required, ro) | |
122 | ||
123 | The full path to the file on disk | |
124 | ||
125 | =item path (required, ro) | |
126 | ||
127 | The local path to the file (i.e. what the cache system will consider the | |
128 | canonical name of the file) | |
129 | ||
130 | =item cache_engine (optional, default undef, ro) | |
131 | ||
132 | A C<Code::TidyAll::Cache> compatible instance, or, if no caching is required | |
133 | undef. | |
134 | ||
135 | =item base_sig (optional, default empty string, ro) | |
136 | ||
137 | A base signature. | |
138 | ||
139 | =item file_contents (optional, default loads file contents from disk, rw) | |
140 | ||
141 | =item is_cached (optional, default computed, rw) | |
142 | ||
143 | A flag indicating if this is cached. By default checks that the cache key and | |
144 | cache value match the cache. | |
145 | ||
146 | =back | |
147 | ||
148 | =head2 Methods | |
149 | ||
150 | =over | |
151 | ||
152 | =item cache_key | |
153 | ||
154 | The computed cache key for the file | |
155 | ||
156 | =item cache_value | |
157 | ||
158 | The computed cache value for the file | |
159 | ||
160 | =item update | |
161 | ||
162 | Updates the cache | |
163 | ||
164 | =item remove | |
165 | ||
166 | Attempts to remove the value from the cache | |
167 | ||
168 | =back | |
169 | ||
170 | =head1 SEE ALSO | |
171 | ||
172 | L<Code::TidyAll> | |
173 | ||
174 | =head1 AUTHORS | |
175 | ||
176 | =over 4 | |
177 | ||
178 | =item * | |
179 | ||
180 | Jonathan Swartz <swartz@pobox.com> | |
181 | ||
182 | =item * | |
183 | ||
184 | Dave Rolsky <autarch@urth.org> | |
185 | ||
186 | =back | |
187 | ||
188 | =head1 COPYRIGHT AND LICENSE | |
189 | ||
190 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
191 | ||
192 | This is free software; you can redistribute it and/or modify it under the same | |
193 | terms as the Perl 5 programming language system itself. | |
194 | ||
195 | =cut |
0 | 0 | package Code::TidyAll::Config::INI::Reader; |
1 | $Code::TidyAll::Config::INI::Reader::VERSION = '0.20'; | |
1 | ||
2 | 2 | use strict; |
3 | 3 | use warnings; |
4 | 4 | use base qw(Config::INI::Reader); |
5 | ||
6 | our $VERSION = '0.32'; | |
5 | 7 | |
6 | 8 | sub set_value { |
7 | 9 | my ( $self, $name, $value ) = @_; |
8 | 10 | |
9 | 11 | if ( exists( $self->{data}{ $self->current_section }{$name} ) ) { |
10 | 12 | die "cannot list multiple config values for '$name'" |
11 | unless $name =~ /select|ignore/; | |
13 | unless $name =~ /select|ignore/; | |
12 | 14 | $self->{data}{ $self->current_section }{$name} .= " " . $value; |
13 | 15 | } |
14 | 16 | else { |
0 | 0 | package Code::TidyAll::Git::Precommit; |
1 | $Code::TidyAll::Git::Precommit::VERSION = '0.20'; | |
1 | ||
2 | 2 | use Capture::Tiny qw(capture_stdout capture_stderr); |
3 | 3 | use Code::TidyAll; |
4 | use Code::TidyAll::Util qw(dirname mkpath realpath tempdir_simple write_file); | |
4 | use Code::TidyAll::Util qw(dirname mkpath realpath tempdir_simple); | |
5 | 5 | use Cwd qw(cwd); |
6 | use File::Slurp::Tiny qw(write_file); | |
6 | 7 | use Guard; |
7 | 8 | use Log::Any qw($log); |
8 | 9 | use IPC::System::Simple qw(capturex run); |
9 | 10 | use Moo; |
10 | 11 | use Try::Tiny; |
11 | 12 | |
13 | our $VERSION = '0.32'; | |
14 | ||
12 | 15 | # Public |
13 | 16 | has 'conf_name' => ( is => 'ro' ); |
14 | has 'git_path' => ( is => 'ro', default => sub { 'git' } ); | |
17 | has 'git_path' => ( is => 'ro', default => 'git' ); | |
15 | 18 | has 'no_stash' => ( is => 'ro' ); |
16 | 19 | has 'reject_on_error' => ( is => 'ro' ); |
17 | has 'tidyall_class' => ( is => 'ro', default => sub { "Code::TidyAll" } ); | |
20 | has 'tidyall_class' => ( is => 'ro', default => 'Code::TidyAll' ); | |
18 | 21 | has 'tidyall_options' => ( is => 'ro', default => sub { {} } ); |
19 | 22 | |
20 | 23 | sub check { |
29 | 32 | # Find conf file at git root |
30 | 33 | my $root_dir = capturex( $self->git_path, "rev-parse", "--show-toplevel" ); |
31 | 34 | chomp($root_dir); |
32 | my @conf_names = | |
33 | $self->conf_name ? ( $self->conf_name ) : Code::TidyAll->default_conf_names; | |
34 | my ($conf_file) = grep { -f } map { join( "/", $root_dir, $_ ) } @conf_names | |
35 | or die sprintf( "could not find conf file %s", join( " or ", @conf_names ) ); | |
35 | my @conf_names | |
36 | = $self->conf_name ? ( $self->conf_name ) : Code::TidyAll->default_conf_names; | |
37 | my ($conf_file) = grep {-f} map { join( "/", $root_dir, $_ ) } @conf_names | |
38 | or die sprintf( "could not find conf file %s", join( " or ", @conf_names ) ); | |
36 | 39 | |
37 | 40 | # Store the stash, and restore it upon exiting this scope |
38 | 41 | unless ( $self->no_stash ) { |
42 | 45 | |
43 | 46 | # Gather file paths to be committed |
44 | 47 | my $output = capturex( $self->git_path, "status", "--porcelain" ); |
45 | my @files = grep { -f } ( $output =~ /^[MA]\s+(.*)/gm ); | |
48 | my @files = grep {-f} ( $output =~ /^[MA]\s+(.*)/gm ); | |
46 | 49 | |
47 | 50 | my $tidyall = $tidyall_class->new_from_conf_file( |
48 | 51 | $conf_file, |
51 | 54 | mode => 'commit', |
52 | 55 | %{ $self->tidyall_options }, |
53 | 56 | ); |
54 | my @results = $tidyall->process_paths( map { "$root_dir/$_" } @files ); | |
57 | my @results = $tidyall->process_paths( map {"$root_dir/$_"} @files ); | |
55 | 58 | |
56 | 59 | if ( my @error_results = grep { $_->error } @results ) { |
57 | 60 | my $error_count = scalar(@error_results); |
58 | $fail_msg = sprintf( "%d file%s did not pass tidyall check\n", | |
59 | $error_count, $error_count > 1 ? "s" : "" ); | |
61 | $fail_msg = sprintf( | |
62 | "%d file%s did not pass tidyall check\n", | |
63 | $error_count, $error_count > 1 ? "s" : "" | |
64 | ); | |
60 | 65 | } |
61 | 66 | } |
62 | 67 | catch { |
68 | 73 | |
69 | 74 | 1; |
70 | 75 | |
76 | # ABSTRACT: Git pre-commit hook that requires files to be tidyall'd | |
77 | ||
71 | 78 | __END__ |
72 | 79 | |
73 | 80 | =pod |
79 | 86 | |
80 | 87 | =head1 VERSION |
81 | 88 | |
82 | version 0.20 | |
89 | version 0.32 | |
83 | 90 | |
84 | 91 | =head1 SYNOPSIS |
85 | 92 | |
96 | 103 | |
97 | 104 | This module implements a L<Git pre-commit |
98 | 105 | hook|http://git-scm.com/book/en/Customizing-Git-Git-Hooks> that checks if all |
99 | files are tidied and valid according to L<tidyall|tidyall>, and rejects the | |
100 | commit if not. Files/commits are never modified by this hook. | |
101 | ||
102 | See also L<Code::TidyAll::Git::Prereceive|Code::TidyAll::Git::Prereceive>, | |
103 | which validates pushes to a shared repo. | |
106 | files are tidied and valid according to L<tidyall>, and rejects the commit if | |
107 | not. Files/commits are never modified by this hook. | |
108 | ||
109 | See also L<Code::TidyAll::Git::Prereceive>, which validates pushes to a shared | |
110 | repo. | |
104 | 111 | |
105 | 112 | =head1 METHODS |
106 | 113 | |
109 | 116 | =item check (key/value params...) |
110 | 117 | |
111 | 118 | Class method. Check that all files being added or modified in this commit are |
112 | tidied and valid according to L<tidyall|tidyall>. If not, then the entire | |
113 | commit is rejected and the reason(s) are output to the client. e.g. | |
114 | ||
115 | % git commit -m "fixups" CHI.pm CHI/Driver.pm | |
119 | tidied and valid according to L<tidyall>. If not, then the entire commit is | |
120 | rejected and the reason(s) are output to the client. e.g. | |
121 | ||
122 | % git commit -m "fixups" CHI.pm CHI/Driver.pm | |
116 | 123 | 2 files did not pass tidyall check |
117 | 124 | lib/CHI.pm: *** 'PerlTidy': needs tidying |
118 | 125 | lib/CHI/Driver.pm: *** 'PerlCritic': Code before strictures are enabled |
160 | 167 | |
161 | 168 | =item tidyall_class |
162 | 169 | |
163 | Subclass to use instead of L<Code::TidyAll|Code::TidyAll> | |
170 | Subclass to use instead of L<Code::TidyAll> | |
164 | 171 | |
165 | 172 | =item tidyall_options |
166 | 173 | |
167 | Hashref of options to pass to the L<Code::TidyAll|Code::TidyAll> constructor | |
174 | Hashref of options to pass to the L<Code::TidyAll> constructor | |
168 | 175 | |
169 | 176 | =back |
170 | 177 | |
216 | 223 | More information on pre-commit hooks and the impossibility of enforcing them |
217 | 224 | L<here|http://stackoverflow.com/questions/3703159/git-remote-shared-pre-commit-hook>. |
218 | 225 | |
219 | See also L<Code::TidyAll::Git::Prereceive|Code::TidyAll::Git::Prereceive>, | |
220 | which enforces tidyall on pushes to a remote shared repository. | |
226 | See also L<Code::TidyAll::Git::Prereceive>, which enforces tidyall on pushes to | |
227 | a remote shared repository. | |
221 | 228 | |
222 | 229 | =head1 SEE ALSO |
223 | 230 | |
224 | L<Code::TidyAll|Code::TidyAll> | |
225 | ||
226 | =head1 AUTHOR | |
231 | L<Code::TidyAll> | |
232 | ||
233 | =head1 AUTHORS | |
234 | ||
235 | =over 4 | |
236 | ||
237 | =item * | |
227 | 238 | |
228 | 239 | Jonathan Swartz <swartz@pobox.com> |
229 | 240 | |
241 | =item * | |
242 | ||
243 | Dave Rolsky <autarch@urth.org> | |
244 | ||
245 | =back | |
246 | ||
230 | 247 | =head1 COPYRIGHT AND LICENSE |
231 | 248 | |
232 | This software is copyright (c) 2011 by Jonathan Swartz. | |
233 | ||
234 | This is free software; you can redistribute it and/or modify it under | |
235 | the same terms as the Perl 5 programming language system itself. | |
249 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
250 | ||
251 | This is free software; you can redistribute it and/or modify it under the same | |
252 | terms as the Perl 5 programming language system itself. | |
236 | 253 | |
237 | 254 | =cut |
0 | 0 | package Code::TidyAll::Git::Prereceive; |
1 | $Code::TidyAll::Git::Prereceive::VERSION = '0.20'; | |
1 | ||
2 | 2 | use Code::TidyAll; |
3 | use Code::TidyAll::Util qw(dirname realpath tempdir_simple read_file write_file); | |
3 | use Code::TidyAll::Util qw(dirname realpath tempdir_simple); | |
4 | 4 | use Capture::Tiny qw(capture); |
5 | use Digest::SHA1 qw(sha1_hex); | |
5 | use Digest::SHA qw(sha1_hex); | |
6 | use File::Slurp::Tiny qw(read_file write_file); | |
6 | 7 | use IPC::System::Simple qw(capturex run); |
7 | 8 | use Moo; |
8 | 9 | use Try::Tiny; |
9 | 10 | |
11 | our $VERSION = '0.32'; | |
12 | ||
10 | 13 | # Public |
11 | has 'allow_repeated_push' => ( is => 'ro', default => sub { 3 } ); | |
14 | has 'allow_repeated_push' => ( is => 'ro', default => 3 ); | |
12 | 15 | has 'conf_name' => ( is => 'ro' ); |
13 | 16 | has 'extra_conf_files' => ( is => 'ro', default => sub { [] } ); |
14 | has 'git_path' => ( is => 'ro', default => sub { 'git' } ); | |
17 | has 'git_path' => ( is => 'ro', default => 'git' ); | |
15 | 18 | has 'reject_on_error' => ( is => 'ro' ); |
16 | has 'tidyall_class' => ( is => 'ro', default => sub { "Code::TidyAll" } ); | |
19 | has 'tidyall_class' => ( is => 'ro', default => 'Code::TidyAll' ); | |
17 | 20 | has 'tidyall_options' => ( is => 'ro', default => sub { {} } ); |
18 | 21 | |
19 | 22 | sub check { |
67 | 70 | if ( my @error_results = grep { $_->error } @results ) { |
68 | 71 | unless ( $self->check_repeated_push($input) ) { |
69 | 72 | my $error_count = scalar(@error_results); |
70 | $fail_msg = sprintf( "%d file%s did not pass tidyall check", | |
71 | $error_count, $error_count > 1 ? "s" : "" ); | |
73 | $fail_msg = sprintf( | |
74 | "%d file%s did not pass tidyall check", | |
75 | $error_count, $error_count > 1 ? "s" : "" | |
76 | ); | |
72 | 77 | } |
73 | 78 | } |
74 | 79 | return $fail_msg; |
80 | 85 | my $temp_dir = tempdir_simple(); |
81 | 86 | my @conf_names = $self->conf_name ? ( $self->conf_name ) : Code::TidyAll->default_conf_names; |
82 | 87 | my ($conf_file) = grep { $self->get_file_contents( $_, $commit ) } @conf_names |
83 | or die sprintf( "could not find conf file %s", join( " or ", @conf_names ) ); | |
88 | or die sprintf( "could not find conf file %s", join( " or ", @conf_names ) ); | |
84 | 89 | foreach my $rel_file ( $conf_file, @{ $self->extra_conf_files } ) { |
85 | 90 | my $contents = $self->get_file_contents( $rel_file, $commit ) |
86 | or die sprintf( "could not find file '%s' in repo root", $rel_file ); | |
91 | or die sprintf( "could not find file '%s' in repo root", $rel_file ); | |
87 | 92 | write_file( "$temp_dir/$rel_file", $contents ); |
88 | 93 | } |
89 | 94 | my $tidyall = $self->tidyall_class->new_from_conf_file( |
101 | 106 | sub get_changed_files { |
102 | 107 | my ( $self, $base, $commit ) = @_; |
103 | 108 | my $output = capturex( $self->git_path, "diff", "--numstat", "--name-only", "$base..$commit" ); |
104 | my @files = grep { /\S/ } split( "\n", $output ); | |
109 | my @files = grep {/\S/} split( "\n", $output ); | |
105 | 110 | return @files; |
106 | 111 | } |
107 | 112 | |
140 | 145 | |
141 | 146 | 1; |
142 | 147 | |
148 | # ABSTRACT: Git pre-receive hook that requires files to be tidyall'd | |
149 | ||
143 | 150 | __END__ |
144 | 151 | |
145 | 152 | =pod |
151 | 158 | |
152 | 159 | =head1 VERSION |
153 | 160 | |
154 | version 0.20 | |
161 | version 0.32 | |
155 | 162 | |
156 | 163 | =head1 SYNOPSIS |
157 | 164 | |
161 | 168 | use Code::TidyAll::Git::Prereceive; |
162 | 169 | use strict; |
163 | 170 | use warnings; |
164 | ||
171 | ||
165 | 172 | Code::TidyAll::Git::Prereceive->check(); |
166 | 173 | |
167 | 174 | |
180 | 187 | |
181 | 188 | This module implements a L<Git pre-receive |
182 | 189 | hook|http://git-scm.com/book/en/Customizing-Git-Git-Hooks> that checks if all |
183 | pushed files are tidied and valid according to L<tidyall|tidyall>, and rejects | |
184 | the push if not. | |
190 | pushed files are tidied and valid according to L<tidyall>, and rejects the push | |
191 | if not. | |
185 | 192 | |
186 | 193 | This is typically used to validate pushes from multiple developers to a shared |
187 | 194 | repo, possibly on a remote server. |
188 | 195 | |
189 | See also L<Code::TidyAll::Git::Precommit|Code::TidyAll::Git::Precommit>, which | |
190 | operates locally. | |
196 | See also L<Code::TidyAll::Git::Precommit>, which operates locally. | |
191 | 197 | |
192 | 198 | =head1 METHODS |
193 | 199 | |
197 | 203 | |
198 | 204 | An all-in-one class method. Reads commit info from standard input, then checks |
199 | 205 | that all files being added or modified in this push are tidied and valid |
200 | according to L<tidyall|tidyall>. If not, then the entire push is rejected and | |
201 | the reason(s) are output to the client. e.g. | |
206 | according to L<tidyall>. If not, then the entire push is rejected and the | |
207 | reason(s) are output to the client. e.g. | |
202 | 208 | |
203 | 209 | % git push |
204 | 210 | Counting objects: 9, done. |
205 | 211 | ... |
206 | remote: [checked] lib/CHI/Util.pm | |
207 | remote: Code before strictures are enabled on line 13 [TestingAndDebugging::RequireUseStrict] | |
208 | remote: | |
209 | remote: 1 file did not pass tidyall check | |
212 | remote: [checked] lib/CHI/Util.pm | |
213 | remote: Code before strictures are enabled on line 13 [TestingAndDebugging::RequireUseStrict] | |
214 | remote: | |
215 | remote: 1 file did not pass tidyall check | |
210 | 216 | To ... |
211 | 217 | ! [remote rejected] master -> master (pre-receive hook declined) |
212 | 218 | |
218 | 224 | |
219 | 225 | % git push |
220 | 226 | ... |
221 | remote: 1 file did not pass tidyall check | |
227 | remote: 1 file did not pass tidyall check | |
222 | 228 | |
223 | 229 | % git push |
224 | 230 | ... |
225 | 231 | *** Identical push seen 2 times |
226 | remote: 1 file did not pass tidyall check | |
232 | remote: 1 file did not pass tidyall check | |
227 | 233 | |
228 | 234 | % git push |
229 | 235 | ... |
275 | 281 | |
276 | 282 | =item tidyall_class |
277 | 283 | |
278 | Subclass to use instead of L<Code::TidyAll|Code::TidyAll> | |
284 | Subclass to use instead of L<Code::TidyAll> | |
279 | 285 | |
280 | 286 | =item tidyall_options |
281 | 287 | |
282 | Hashref of options to pass to the L<Code::TidyAll|Code::TidyAll> constructor. | |
283 | You can use this to override the default options | |
288 | Hashref of options to pass to the L<Code::TidyAll> constructor. You can use | |
289 | this to override the default options | |
284 | 290 | |
285 | 291 | mode => 'commit', |
286 | 292 | quiet => 1, |
309 | 315 | |
310 | 316 | =head1 SEE ALSO |
311 | 317 | |
312 | L<Code::TidyAll|Code::TidyAll> | |
313 | ||
314 | =head1 AUTHOR | |
318 | L<Code::TidyAll> | |
319 | ||
320 | =head1 AUTHORS | |
321 | ||
322 | =over 4 | |
323 | ||
324 | =item * | |
315 | 325 | |
316 | 326 | Jonathan Swartz <swartz@pobox.com> |
317 | 327 | |
328 | =item * | |
329 | ||
330 | Dave Rolsky <autarch@urth.org> | |
331 | ||
332 | =back | |
333 | ||
318 | 334 | =head1 COPYRIGHT AND LICENSE |
319 | 335 | |
320 | This software is copyright (c) 2011 by Jonathan Swartz. | |
321 | ||
322 | This is free software; you can redistribute it and/or modify it under | |
323 | the same terms as the Perl 5 programming language system itself. | |
336 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
337 | ||
338 | This is free software; you can redistribute it and/or modify it under the same | |
339 | terms as the Perl 5 programming language system itself. | |
324 | 340 | |
325 | 341 | =cut |
0 | 0 | package Code::TidyAll::Git::Util; |
1 | $Code::TidyAll::Git::Util::VERSION = '0.20'; | |
1 | ||
2 | 2 | use Cwd qw(realpath); |
3 | 3 | use Code::TidyAll::Util qw(pushd uniq); |
4 | 4 | use IPC::System::Simple qw(capturex); |
5 | 5 | use strict; |
6 | 6 | use warnings; |
7 | 7 | use base qw(Exporter); |
8 | ||
9 | our $VERSION = '0.32'; | |
8 | 10 | |
9 | 11 | our @EXPORT_OK = qw(git_uncommitted_files); |
10 | 12 | |
15 | 17 | my $pushd = pushd($dir); |
16 | 18 | my $output = capturex( "git", "status" ); |
17 | 19 | my @files = ( $output =~ /(?:new file|modified):\s+(.*)/g ); |
18 | @files = uniq( map { "$dir/$_" } @files ); | |
20 | @files = uniq( map {"$dir/$_"} @files ); | |
19 | 21 | return @files; |
20 | 22 | } |
21 | 23 |
0 | 0 | package Code::TidyAll::Plugin::CSSUnminifier; |
1 | $Code::TidyAll::Plugin::CSSUnminifier::VERSION = '0.20'; | |
1 | ||
2 | 2 | use IPC::System::Simple qw(run); |
3 | 3 | use Moo; |
4 | 4 | extends 'Code::TidyAll::Plugin'; |
5 | 5 | |
6 | sub _build_cmd { 'cssunminifier' } | |
6 | our $VERSION = '0.32'; | |
7 | ||
8 | sub _build_cmd {'cssunminifier'} | |
7 | 9 | |
8 | 10 | sub transform_file { |
9 | 11 | my ( $self, $file ) = @_; |
13 | 15 | |
14 | 16 | 1; |
15 | 17 | |
18 | # ABSTACT: Use cssunminifier with tidyall | |
19 | ||
16 | 20 | __END__ |
17 | 21 | |
18 | 22 | =pod |
19 | ||
20 | =head1 NAME | |
21 | ||
22 | Code::TidyAll::Plugin::CSUnminifier - use cssunminifier with tidyall | |
23 | ||
24 | =head1 VERSION | |
25 | ||
26 | version 0.20 | |
27 | 23 | |
28 | 24 | =head1 SYNOPSIS |
29 | 25 | |
57 | 53 | Full path to C<cssunminifier> |
58 | 54 | |
59 | 55 | =back |
60 | ||
61 | =head1 SEE ALSO | |
62 | ||
63 | L<Code::TidyAll|Code::TidyAll> | |
64 | ||
65 | =head1 AUTHOR | |
66 | ||
67 | Jonathan Swartz <swartz@pobox.com> | |
68 | ||
69 | =head1 COPYRIGHT AND LICENSE | |
70 | ||
71 | This software is copyright (c) 2011 by Jonathan Swartz. | |
72 | ||
73 | This is free software; you can redistribute it and/or modify it under | |
74 | the same terms as the Perl 5 programming language system itself. | |
75 | ||
76 | =cut |
0 | package Code::TidyAll::Plugin::DiffOnTidyError; | |
1 | ||
2 | use strict; | |
3 | use warnings; | |
4 | ||
5 | use File::Basename qw( basename ); | |
6 | use File::Which qw( which ); | |
7 | use IPC::Run3 qw( run3 ); | |
8 | use Moo; | |
9 | ||
10 | our $VERSION = '0.32'; | |
11 | ||
12 | extends 'Code::TidyAll::Plugin'; | |
13 | with 'Code::TidyAll::Role::Tempdir'; | |
14 | ||
15 | sub diff { | |
16 | my $self = shift; | |
17 | my $diff = shift; | |
18 | my $orig = shift; | |
19 | my $new = shift; | |
20 | my $path = shift; | |
21 | ||
22 | my $cmd = which('diff'); | |
23 | die 'Could not find a diff command in your $PATH' | |
24 | unless $cmd; | |
25 | ||
26 | my $orig_file = $self->_write_temp_file( basename($path) . '.orig', $orig ); | |
27 | my $new_file = $self->_write_temp_file( basename($path) . '.new', $new ); | |
28 | ||
29 | my $output; | |
30 | run3( | |
31 | [ $cmd, '-u', $orig_file, $new_file ], | |
32 | \undef, | |
33 | \$output, | |
34 | \$output, | |
35 | ); | |
36 | ||
37 | return $output; | |
38 | } | |
39 | ||
40 | 1; | |
41 | ||
42 | # ABSTRACT: Include a diff in error message when code needs tidying | |
43 | ||
44 | __END__ | |
45 | ||
46 | =pod | |
47 | ||
48 | =head1 NAME | |
49 | ||
50 | Code::TidyAll::Plugin::DiffOnTidyError - Include a diff in error message when | |
51 | code needs tidying | |
52 | ||
53 | =head1 VERSION | |
54 | ||
55 | version 0.32 | |
56 | ||
57 | =head1 SYNOPSIS | |
58 | ||
59 | # In configuration: | |
60 | ||
61 | [DiffOnTidyError] | |
62 | select = **/* | |
63 | ||
64 | =head1 DESCRIPTION | |
65 | ||
66 | When running L<Code::TidyAll> in C<check_only> mode, for example via | |
67 | L<Test::Code::TidyAll>, this plugin adds a diff to the output when a file needs | |
68 | to be tidied. This plugin uses the F<diff> command, and will simply die if it | |
69 | cannot find one in your C<$PATH>. | |
70 | ||
71 | This is helpful if you're trying to figure out what a test is failing on. | |
72 | ||
73 | =head1 SEE ALSO | |
74 | ||
75 | L<Code::TidyAll> | |
76 | ||
77 | =head1 AUTHORS | |
78 | ||
79 | =over 4 | |
80 | ||
81 | =item * | |
82 | ||
83 | Jonathan Swartz <swartz@pobox.com> | |
84 | ||
85 | =item * | |
86 | ||
87 | Dave Rolsky <autarch@urth.org> | |
88 | ||
89 | =back | |
90 | ||
91 | =head1 COPYRIGHT AND LICENSE | |
92 | ||
93 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
94 | ||
95 | This is free software; you can redistribute it and/or modify it under the same | |
96 | terms as the Perl 5 programming language system itself. | |
97 | ||
98 | =cut |
0 | 0 | package Code::TidyAll::Plugin::JSBeautify; |
1 | $Code::TidyAll::Plugin::JSBeautify::VERSION = '0.20'; | |
2 | use Capture::Tiny qw(capture_merged); | |
3 | use Code::TidyAll::Util qw(write_file); | |
1 | ||
2 | use File::Slurp::Tiny qw(write_file); | |
3 | use IPC::Run3 qw(run3); | |
4 | 4 | use Moo; |
5 | 5 | use Try::Tiny; |
6 | 6 | extends 'Code::TidyAll::Plugin'; |
7 | 7 | |
8 | sub _build_cmd { 'js-beautify' } | |
8 | our $VERSION = '0.32'; | |
9 | ||
10 | sub _build_cmd {'js-beautify'} | |
9 | 11 | |
10 | 12 | sub transform_file { |
11 | 13 | my ( $self, $file ) = @_; |
12 | 14 | |
13 | 15 | try { |
14 | 16 | my $cmd = join( " ", $self->cmd, $self->argv, $file ); |
15 | my $output = capture_merged { system($cmd) }; | |
17 | ||
18 | my $output; | |
19 | run3( $cmd, \undef, \$output, \$output ); | |
16 | 20 | write_file( $file, $output ); |
17 | 21 | } |
18 | 22 | catch { |
19 | die sprintf( "%s exited with error - possibly bad arg list '%s'", $self->cmd, $self->argv ); | |
23 | die sprintf( | |
24 | "%s exited with error - possibly bad arg list '%s'\n $_", $self->cmd, | |
25 | $self->argv | |
26 | ); | |
20 | 27 | }; |
21 | 28 | } |
22 | 29 | |
23 | 30 | 1; |
31 | ||
32 | # ABSTRACT: Use js-beautify with tidyall | |
24 | 33 | |
25 | 34 | __END__ |
26 | 35 | |
28 | 37 | |
29 | 38 | =head1 NAME |
30 | 39 | |
31 | Code::TidyAll::Plugin::JSBeautify - use js-beautify with tidyall | |
40 | Code::TidyAll::Plugin::JSBeautify - Use js-beautify with tidyall | |
32 | 41 | |
33 | 42 | =head1 VERSION |
34 | 43 | |
35 | version 0.20 | |
44 | version 0.32 | |
36 | 45 | |
37 | 46 | =head1 SYNOPSIS |
38 | 47 | |
70 | 79 | |
71 | 80 | =head1 SEE ALSO |
72 | 81 | |
73 | L<Code::TidyAll|Code::TidyAll> | |
82 | L<Code::TidyAll> | |
74 | 83 | |
75 | =head1 AUTHOR | |
84 | =head1 AUTHORS | |
85 | ||
86 | =over 4 | |
87 | ||
88 | =item * | |
76 | 89 | |
77 | 90 | Jonathan Swartz <swartz@pobox.com> |
78 | 91 | |
92 | =item * | |
93 | ||
94 | Dave Rolsky <autarch@urth.org> | |
95 | ||
96 | =back | |
97 | ||
79 | 98 | =head1 COPYRIGHT AND LICENSE |
80 | 99 | |
81 | This software is copyright (c) 2011 by Jonathan Swartz. | |
100 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
82 | 101 | |
83 | This is free software; you can redistribute it and/or modify it under | |
84 | the same terms as the Perl 5 programming language system itself. | |
102 | This is free software; you can redistribute it and/or modify it under the same | |
103 | terms as the Perl 5 programming language system itself. | |
85 | 104 | |
86 | 105 | =cut |
0 | 0 | package Code::TidyAll::Plugin::JSHint; |
1 | $Code::TidyAll::Plugin::JSHint::VERSION = '0.20'; | |
2 | use Code::TidyAll::Util qw(tempdir_simple write_file); | |
3 | use Capture::Tiny qw(capture_merged); | |
1 | ||
2 | use Code::TidyAll::Util qw(tempdir_simple); | |
3 | use File::Slurp::Tiny qw(write_file); | |
4 | use IPC::Run3 qw(run3); | |
4 | 5 | use Moo; |
5 | 6 | extends 'Code::TidyAll::Plugin'; |
7 | ||
8 | our $VERSION = '0.32'; | |
6 | 9 | |
7 | 10 | sub validate_params { |
8 | 11 | my ( $self, $params ) = @_; |
11 | 14 | return $self->SUPER::validate_params($params); |
12 | 15 | } |
13 | 16 | |
14 | sub _build_cmd { 'jshint' } | |
17 | sub _build_cmd {'jshint'} | |
15 | 18 | |
16 | 19 | sub BUILDARGS { |
17 | 20 | my ( $class, %params ) = @_; |
20 | 23 | my @options = split( /\s+/, $options_string ); |
21 | 24 | my $conf_dir = tempdir_simple(); |
22 | 25 | my $conf_file = "$conf_dir/jshint.json"; |
23 | write_file( $conf_file, '{ ' . join( ",\n", map { "\"$_\": true" } @options ) . ' }' ); | |
26 | write_file( $conf_file, '{ ' . join( ",\n", map {"\"$_\": true"} @options ) . ' }' ); | |
24 | 27 | $params{argv} ||= ""; |
25 | 28 | $params{argv} .= " --config $conf_file"; |
26 | 29 | } |
31 | 34 | my ( $self, $file ) = @_; |
32 | 35 | |
33 | 36 | my $cmd = sprintf( "%s %s %s", $self->cmd, $self->argv, $file ); |
34 | my $output = capture_merged { system($cmd) }; | |
37 | my $output; | |
38 | run3( $cmd, \undef, \$output, \$output ); | |
35 | 39 | if ( $output =~ /\S/ ) { |
36 | 40 | $output =~ s/^$file:\s*//gm; |
37 | 41 | die "$output\n"; |
40 | 44 | |
41 | 45 | 1; |
42 | 46 | |
47 | # ABSTRACT: Use jshint with tidyall | |
48 | ||
43 | 49 | __END__ |
44 | 50 | |
45 | 51 | =pod |
46 | 52 | |
47 | 53 | =head1 NAME |
48 | 54 | |
49 | Code::TidyAll::Plugin::JSHint - use jshint with tidyall | |
55 | Code::TidyAll::Plugin::JSHint - Use jshint with tidyall | |
50 | 56 | |
51 | 57 | =head1 VERSION |
52 | 58 | |
53 | version 0.20 | |
59 | version 0.32 | |
54 | 60 | |
55 | 61 | =head1 SYNOPSIS |
56 | 62 | |
115 | 121 | |
116 | 122 | =head1 SEE ALSO |
117 | 123 | |
118 | L<Code::TidyAll|Code::TidyAll> | |
124 | L<Code::TidyAll> | |
119 | 125 | |
120 | =head1 AUTHOR | |
126 | =head1 AUTHORS | |
127 | ||
128 | =over 4 | |
129 | ||
130 | =item * | |
121 | 131 | |
122 | 132 | Jonathan Swartz <swartz@pobox.com> |
123 | 133 | |
134 | =item * | |
135 | ||
136 | Dave Rolsky <autarch@urth.org> | |
137 | ||
138 | =back | |
139 | ||
124 | 140 | =head1 COPYRIGHT AND LICENSE |
125 | 141 | |
126 | This software is copyright (c) 2011 by Jonathan Swartz. | |
142 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
127 | 143 | |
128 | This is free software; you can redistribute it and/or modify it under | |
129 | the same terms as the Perl 5 programming language system itself. | |
144 | This is free software; you can redistribute it and/or modify it under the same | |
145 | terms as the Perl 5 programming language system itself. | |
130 | 146 | |
131 | 147 | =cut |
0 | 0 | package Code::TidyAll::Plugin::JSLint; |
1 | $Code::TidyAll::Plugin::JSLint::VERSION = '0.20'; | |
2 | use Capture::Tiny qw(capture_merged); | |
1 | ||
2 | use IPC::Run3 qw(run3); | |
3 | 3 | use Moo; |
4 | 4 | extends 'Code::TidyAll::Plugin'; |
5 | 5 | |
6 | sub _build_cmd { 'jslint' } | |
6 | our $VERSION = '0.32'; | |
7 | ||
8 | sub _build_cmd {'jslint'} | |
7 | 9 | |
8 | 10 | sub validate_file { |
9 | 11 | my ( $self, $file ) = @_; |
10 | 12 | |
11 | 13 | my $cmd = sprintf( "%s %s %s", $self->cmd, $self->argv, $file ); |
12 | my $output = capture_merged { system($cmd) }; | |
14 | my $output; | |
15 | run3( $cmd, \undef, \$output, \$output ); | |
13 | 16 | die "$output\n" if $output !~ /is OK\./; |
14 | 17 | } |
15 | 18 | |
16 | 19 | 1; |
20 | ||
21 | # ABSTRACT: Use jslint with tidyall | |
17 | 22 | |
18 | 23 | __END__ |
19 | 24 | |
21 | 26 | |
22 | 27 | =head1 NAME |
23 | 28 | |
24 | Code::TidyAll::Plugin::JSLint - use jslint with tidyall | |
29 | Code::TidyAll::Plugin::JSLint - Use jslint with tidyall | |
25 | 30 | |
26 | 31 | =head1 VERSION |
27 | 32 | |
28 | version 0.20 | |
33 | version 0.32 | |
29 | 34 | |
30 | 35 | =head1 SYNOPSIS |
31 | 36 | |
62 | 67 | |
63 | 68 | =head1 SEE ALSO |
64 | 69 | |
65 | L<Code::TidyAll|Code::TidyAll> | |
70 | L<Code::TidyAll> | |
66 | 71 | |
67 | =head1 AUTHOR | |
72 | =head1 AUTHORS | |
73 | ||
74 | =over 4 | |
75 | ||
76 | =item * | |
68 | 77 | |
69 | 78 | Jonathan Swartz <swartz@pobox.com> |
70 | 79 | |
80 | =item * | |
81 | ||
82 | Dave Rolsky <autarch@urth.org> | |
83 | ||
84 | =back | |
85 | ||
71 | 86 | =head1 COPYRIGHT AND LICENSE |
72 | 87 | |
73 | This software is copyright (c) 2011 by Jonathan Swartz. | |
88 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
74 | 89 | |
75 | This is free software; you can redistribute it and/or modify it under | |
76 | the same terms as the Perl 5 programming language system itself. | |
90 | This is free software; you can redistribute it and/or modify it under the same | |
91 | terms as the Perl 5 programming language system itself. | |
77 | 92 | |
78 | 93 | =cut |
0 | 0 | package Code::TidyAll::Plugin::JSON; |
1 | $Code::TidyAll::Plugin::JSON::VERSION = '0.20'; | |
1 | ||
2 | 2 | use strict; |
3 | 3 | use warnings; |
4 | 4 | |
5 | use JSON (); | |
5 | use JSON::MaybeXS (); | |
6 | 6 | use Moo; |
7 | ||
8 | our $VERSION = '0.32'; | |
7 | 9 | |
8 | 10 | extends 'Code::TidyAll::Plugin'; |
9 | 11 | |
10 | has 'ascii' => ( is => 'ro', default => sub { 0 } ); | |
12 | has 'ascii' => ( is => 'ro', default => 0 ); | |
11 | 13 | |
12 | 14 | sub transform_source { |
13 | 15 | my $self = shift; |
14 | 16 | my $source = shift; |
15 | 17 | |
16 | my $json = JSON->new->relaxed->pretty->canonical; | |
18 | my $json = JSON::MaybeXS->new( | |
19 | canonical => 1, | |
20 | pretty => 1, | |
21 | relaxed => 1, | |
22 | utf8 => 1, | |
23 | ); | |
17 | 24 | |
18 | 25 | $json = $json->ascii if $self->ascii; |
19 | 26 | |
22 | 29 | |
23 | 30 | 1; |
24 | 31 | |
32 | # ABSTRACT: Use the JSON::MaybeXS module to tidy JSON documents with tidyall | |
33 | ||
25 | 34 | __END__ |
26 | 35 | |
27 | 36 | =pod |
28 | 37 | |
29 | 38 | =head1 NAME |
30 | 39 | |
31 | Code::TidyAll::Plugin::JSON - use the JSON module with tidyall | |
40 | Code::TidyAll::Plugin::JSON - Use the JSON::MaybeXS module to tidy JSON | |
41 | documents with tidyall | |
32 | 42 | |
33 | 43 | =head1 VERSION |
34 | 44 | |
35 | version 0.20 | |
45 | version 0.32 | |
36 | 46 | |
37 | 47 | =head1 SYNOPSIS |
38 | 48 | |
44 | 54 | |
45 | 55 | =head1 DESCRIPTION |
46 | 56 | |
47 | Uses L<JSON> to format JSON files. Files are put into a canonical format with | |
48 | the keys of objects sorted. | |
57 | Uses L<JSON::MaybeXS> to format JSON files. Files are put into a canonical | |
58 | format with the keys of objects sorted. | |
49 | 59 | |
50 | 60 | =head1 CONFIGURATION |
51 | 61 | |
59 | 69 | |
60 | 70 | =head1 SEE ALSO |
61 | 71 | |
62 | L<Code::TidyAll|Code::TidyAll> | |
72 | L<Code::TidyAll> | |
63 | 73 | |
64 | =head1 AUTHOR | |
74 | =head1 AUTHORS | |
75 | ||
76 | =over 4 | |
77 | ||
78 | =item * | |
65 | 79 | |
66 | 80 | Jonathan Swartz <swartz@pobox.com> |
67 | 81 | |
82 | =item * | |
83 | ||
84 | Dave Rolsky <autarch@urth.org> | |
85 | ||
86 | =back | |
87 | ||
68 | 88 | =head1 COPYRIGHT AND LICENSE |
69 | 89 | |
70 | This software is copyright (c) 2011 by Jonathan Swartz. | |
90 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
71 | 91 | |
72 | This is free software; you can redistribute it and/or modify it under | |
73 | the same terms as the Perl 5 programming language system itself. | |
92 | This is free software; you can redistribute it and/or modify it under the same | |
93 | terms as the Perl 5 programming language system itself. | |
74 | 94 | |
75 | 95 | =cut |
0 | 0 | package Code::TidyAll::Plugin::MasonTidy; |
1 | $Code::TidyAll::Plugin::MasonTidy::VERSION = '0.20'; | |
1 | ||
2 | 2 | use Mason::Tidy; |
3 | 3 | use Mason::Tidy::App; |
4 | 4 | use Moo; |
5 | 5 | use Text::ParseWords qw(shellwords); |
6 | 6 | extends 'Code::TidyAll::Plugin'; |
7 | 7 | |
8 | sub _build_cmd { 'masontidy' } | |
8 | our $VERSION = '0.32'; | |
9 | ||
10 | sub _build_cmd {'masontidy'} | |
9 | 11 | |
10 | 12 | sub transform_source { |
11 | 13 | my ( $self, $source ) = @_; |
18 | 20 | |
19 | 21 | 1; |
20 | 22 | |
23 | # ABSTRACT: Use masontidy with tidyall | |
24 | ||
21 | 25 | __END__ |
22 | 26 | |
23 | 27 | =pod |
24 | 28 | |
25 | 29 | =head1 NAME |
26 | 30 | |
27 | Code::TidyAll::Plugin::MasonTidy - use masontidy with tidyall | |
31 | Code::TidyAll::Plugin::MasonTidy - Use masontidy with tidyall | |
28 | 32 | |
29 | 33 | =head1 VERSION |
30 | 34 | |
31 | version 0.20 | |
35 | version 0.32 | |
32 | 36 | |
33 | 37 | =head1 SYNOPSIS |
34 | 38 | |
40 | 44 | |
41 | 45 | =head1 DESCRIPTION |
42 | 46 | |
43 | Runs L<masontidy|masontidy>, a tidier for L<HTML::Mason|HTML::Mason> and | |
44 | L<Mason 2|Mason> components. | |
47 | Runs L<masontidy>, a tidier for L<HTML::Mason> and L<Mason 2|Mason> components. | |
45 | 48 | |
46 | 49 | =head1 INSTALLATION |
47 | 50 | |
48 | Install L<masontidy|masontidy> from CPAN. | |
51 | Install L<masontidy> from CPAN. | |
49 | 52 | |
50 | 53 | cpanm masontidy |
51 | 54 | |
65 | 68 | |
66 | 69 | =head1 SEE ALSO |
67 | 70 | |
68 | L<Code::TidyAll|Code::TidyAll> | |
71 | L<Code::TidyAll> | |
69 | 72 | |
70 | =head1 AUTHOR | |
73 | =head1 AUTHORS | |
74 | ||
75 | =over 4 | |
76 | ||
77 | =item * | |
71 | 78 | |
72 | 79 | Jonathan Swartz <swartz@pobox.com> |
73 | 80 | |
81 | =item * | |
82 | ||
83 | Dave Rolsky <autarch@urth.org> | |
84 | ||
85 | =back | |
86 | ||
74 | 87 | =head1 COPYRIGHT AND LICENSE |
75 | 88 | |
76 | This software is copyright (c) 2011 by Jonathan Swartz. | |
89 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
77 | 90 | |
78 | This is free software; you can redistribute it and/or modify it under | |
79 | the same terms as the Perl 5 programming language system itself. | |
91 | This is free software; you can redistribute it and/or modify it under the same | |
92 | terms as the Perl 5 programming language system itself. | |
80 | 93 | |
81 | 94 | =cut |
0 | 0 | package Code::TidyAll::Plugin::PHPCodeSniffer; |
1 | $Code::TidyAll::Plugin::PHPCodeSniffer::VERSION = '0.20'; | |
2 | use IPC::System::Simple qw(runx EXIT_ANY); | |
3 | use Capture::Tiny qw(capture_merged); | |
1 | ||
2 | use IPC::Run3; | |
4 | 3 | use Moo; |
5 | 4 | extends 'Code::TidyAll::Plugin'; |
6 | 5 | |
7 | sub _build_cmd { 'phpcs' } | |
6 | our $VERSION = '0.32'; | |
7 | ||
8 | sub _build_cmd {'phpcs'} | |
8 | 9 | |
9 | 10 | sub validate_file { |
10 | 11 | my ( $self, $file ) = @_; |
11 | 12 | |
12 | my $exit; | |
13 | 13 | my @cmd = ( $self->cmd, $self->argv, $file ); |
14 | my $output = capture_merged { $exit = runx( EXIT_ANY, @cmd ) }; | |
15 | if ( $exit > 0 ) { | |
14 | my $output; | |
15 | run3( \@cmd, \undef, \$output, \$output ); | |
16 | if ( $? > 0 ) { | |
16 | 17 | $output ||= "problem running " . $self->cmd; |
17 | 18 | die "$output\n"; |
18 | 19 | } |
20 | 21 | |
21 | 22 | 1; |
22 | 23 | |
24 | # ABSTRACT: Use phpcs with tidyall | |
25 | ||
23 | 26 | __END__ |
24 | 27 | |
25 | 28 | =pod |
26 | 29 | |
27 | 30 | =head1 NAME |
28 | 31 | |
29 | Code::TidyAll::Plugin::PHPCodeSniffer - use phpcs with tidyall | |
32 | Code::TidyAll::Plugin::PHPCodeSniffer - Use phpcs with tidyall | |
30 | 33 | |
31 | 34 | =head1 VERSION |
32 | 35 | |
33 | version 0.20 | |
36 | version 0.32 | |
34 | 37 | |
35 | 38 | =head1 SYNOPSIS |
36 | 39 | |
46 | 49 | Runs L<phpcs|http://pear.php.net/package/PHP_CodeSniffer> which analyzes PHP, |
47 | 50 | JavaScript and CSS files and detects violations of a defined set of coding |
48 | 51 | standards. |
49 | ||
50 | =head1 VERSION | |
51 | ||
52 | version 0.15 | |
53 | 52 | |
54 | 53 | =head1 INSTALLATION |
55 | 54 | |
73 | 72 | |
74 | 73 | =head1 SEE ALSO |
75 | 74 | |
76 | L<Code::TidyAll|Code::TidyAll> | |
75 | L<Code::TidyAll> | |
77 | 76 | |
78 | =head1 AUTHOR | |
77 | =head1 AUTHORS | |
78 | ||
79 | =over 4 | |
80 | ||
81 | =item * | |
79 | 82 | |
80 | 83 | Jonathan Swartz <swartz@pobox.com> |
81 | 84 | |
85 | =item * | |
86 | ||
87 | Dave Rolsky <autarch@urth.org> | |
88 | ||
89 | =back | |
90 | ||
82 | 91 | =head1 COPYRIGHT AND LICENSE |
83 | 92 | |
84 | This software is copyright (c) 2011 by Jonathan Swartz. | |
93 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
85 | 94 | |
86 | This is free software; you can redistribute it and/or modify it under | |
87 | the same terms as the Perl 5 programming language system itself. | |
95 | This is free software; you can redistribute it and/or modify it under the same | |
96 | terms as the Perl 5 programming language system itself. | |
88 | 97 | |
89 | 98 | =cut |
0 | 0 | package Code::TidyAll::Plugin::PerlCritic; |
1 | $Code::TidyAll::Plugin::PerlCritic::VERSION = '0.20'; | |
2 | use Capture::Tiny qw(capture_merged); | |
1 | ||
2 | use IPC::Run3 qw(run3); | |
3 | 3 | use Moo; |
4 | 4 | extends 'Code::TidyAll::Plugin'; |
5 | 5 | |
6 | sub _build_cmd { 'perlcritic' } | |
6 | our $VERSION = '0.32'; | |
7 | ||
8 | sub _build_cmd {'perlcritic'} | |
7 | 9 | |
8 | 10 | sub validate_file { |
9 | 11 | my ( $self, $file ) = @_; |
10 | 12 | |
11 | 13 | my $cmd = sprintf( "%s %s %s", $self->cmd, $self->argv, $file ); |
12 | my $output = capture_merged { system($cmd) }; | |
13 | die "$output\n" if $output !~ /^.* source OK\n/; | |
14 | my $output; | |
15 | run3( $cmd, \undef, \$output, \$output ); | |
16 | die "$output\n" if $output !~ /^.* source OK\n/s; | |
14 | 17 | } |
15 | 18 | |
16 | 19 | 1; |
20 | ||
21 | # ABSTRACT: Use perlcritic with tidyall | |
17 | 22 | |
18 | 23 | __END__ |
19 | 24 | |
21 | 26 | |
22 | 27 | =head1 NAME |
23 | 28 | |
24 | Code::TidyAll::Plugin::PerlCritic - use perlcritic with tidyall | |
29 | Code::TidyAll::Plugin::PerlCritic - Use perlcritic with tidyall | |
25 | 30 | |
26 | 31 | =head1 VERSION |
27 | 32 | |
28 | version 0.20 | |
33 | version 0.32 | |
29 | 34 | |
30 | 35 | =head1 SYNOPSIS |
31 | 36 | |
45 | 50 | |
46 | 51 | =head1 DESCRIPTION |
47 | 52 | |
48 | Runs L<perlcritic|perlcritic>, a Perl validator, and dies if any problems were | |
49 | found. | |
53 | Runs L<perlcritic>, a Perl validator, and dies if any problems were found. | |
50 | 54 | |
51 | 55 | =head1 INSTALLATION |
52 | 56 | |
66 | 70 | |
67 | 71 | =head1 SEE ALSO |
68 | 72 | |
69 | L<Code::TidyAll|Code::TidyAll> | |
73 | L<Code::TidyAll> | |
70 | 74 | |
71 | =head1 AUTHOR | |
75 | =head1 AUTHORS | |
76 | ||
77 | =over 4 | |
78 | ||
79 | =item * | |
72 | 80 | |
73 | 81 | Jonathan Swartz <swartz@pobox.com> |
74 | 82 | |
83 | =item * | |
84 | ||
85 | Dave Rolsky <autarch@urth.org> | |
86 | ||
87 | =back | |
88 | ||
75 | 89 | =head1 COPYRIGHT AND LICENSE |
76 | 90 | |
77 | This software is copyright (c) 2011 by Jonathan Swartz. | |
91 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
78 | 92 | |
79 | This is free software; you can redistribute it and/or modify it under | |
80 | the same terms as the Perl 5 programming language system itself. | |
93 | This is free software; you can redistribute it and/or modify it under the same | |
94 | terms as the Perl 5 programming language system itself. | |
81 | 95 | |
82 | 96 | =cut |
0 | 0 | package Code::TidyAll::Plugin::PerlTidy; |
1 | $Code::TidyAll::Plugin::PerlTidy::VERSION = '0.20'; | |
1 | ||
2 | 2 | use Capture::Tiny qw(capture_merged); |
3 | 3 | use Perl::Tidy; |
4 | 4 | use Moo; |
5 | 5 | extends 'Code::TidyAll::Plugin'; |
6 | ||
7 | our $VERSION = '0.32'; | |
6 | 8 | |
7 | 9 | sub transform_source { |
8 | 10 | my ( $self, $source ) = @_; |
9 | 11 | |
10 | 12 | # perltidy reports errors in two different ways. |
11 | 13 | # Argument/profile errors are output and an error_flag is returned. |
12 | # Syntax errors are sent to errorfile. | |
13 | # | |
14 | my ( $output, $error_flag, $errorfile, $destination ); | |
14 | # Syntax errors are sent to errorfile or stderr, depending on the | |
15 | # the setting of -se/-nse (aka --standard-error-output). These flags | |
16 | # might be hidden in other bundles, e.g. -pbp. Be defensive and | |
17 | # check both. | |
18 | my ( $output, $error_flag, $errorfile, $stderr, $destination ); | |
15 | 19 | $output = capture_merged { |
16 | 20 | $error_flag = Perl::Tidy::perltidy( |
17 | 21 | argv => $self->argv, |
18 | 22 | source => \$source, |
19 | 23 | destination => \$destination, |
24 | stderr => \$stderr, | |
20 | 25 | errorfile => \$errorfile |
21 | 26 | ); |
22 | 27 | }; |
28 | die $stderr if $stderr; | |
23 | 29 | die $errorfile if $errorfile; |
24 | 30 | die $output if $error_flag; |
25 | 31 | print STDERR $output if defined($output); |
28 | 34 | |
29 | 35 | 1; |
30 | 36 | |
37 | # ABSTRACT: Use perltidy with tidyall | |
38 | ||
31 | 39 | __END__ |
32 | 40 | |
33 | 41 | =pod |
34 | 42 | |
35 | 43 | =head1 NAME |
36 | 44 | |
37 | Code::TidyAll::Plugin::PerlTidy - use perltidy with tidyall | |
45 | Code::TidyAll::Plugin::PerlTidy - Use perltidy with tidyall | |
38 | 46 | |
39 | 47 | =head1 VERSION |
40 | 48 | |
41 | version 0.20 | |
49 | version 0.32 | |
42 | 50 | |
43 | 51 | =head1 SYNOPSIS |
44 | 52 | |
58 | 66 | |
59 | 67 | =head1 DESCRIPTION |
60 | 68 | |
61 | Runs L<perltidy|perltidy>, a Perl tidier. | |
69 | Runs L<perltidy>, a Perl tidier. | |
62 | 70 | |
63 | 71 | =head1 INSTALLATION |
64 | 72 | |
78 | 86 | |
79 | 87 | =head1 SEE ALSO |
80 | 88 | |
81 | L<Code::TidyAll|Code::TidyAll> | |
89 | L<Code::TidyAll> | |
82 | 90 | |
83 | =head1 AUTHOR | |
91 | =head1 AUTHORS | |
92 | ||
93 | =over 4 | |
94 | ||
95 | =item * | |
84 | 96 | |
85 | 97 | Jonathan Swartz <swartz@pobox.com> |
86 | 98 | |
99 | =item * | |
100 | ||
101 | Dave Rolsky <autarch@urth.org> | |
102 | ||
103 | =back | |
104 | ||
87 | 105 | =head1 COPYRIGHT AND LICENSE |
88 | 106 | |
89 | This software is copyright (c) 2011 by Jonathan Swartz. | |
107 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
90 | 108 | |
91 | This is free software; you can redistribute it and/or modify it under | |
92 | the same terms as the Perl 5 programming language system itself. | |
109 | This is free software; you can redistribute it and/or modify it under the same | |
110 | terms as the Perl 5 programming language system itself. | |
93 | 111 | |
94 | 112 | =cut |
0 | package Code::TidyAll::Plugin::PerlTidySweet; | |
1 | ||
2 | use Capture::Tiny qw(capture_merged); | |
3 | use Perl::Tidy::Sweetened 1.00; | |
4 | use Moo; | |
5 | extends 'Code::TidyAll::Plugin'; | |
6 | ||
7 | our $VERSION = '0.32'; | |
8 | ||
9 | sub transform_source { | |
10 | my ( $self, $source ) = @_; | |
11 | ||
12 | # perltidy reports errors in two different ways. | |
13 | # Argument/profile errors are output and an error_flag is returned. | |
14 | # Syntax errors are sent to errorfile or stderr, depending on the | |
15 | # the setting of -se/-nse (aka --standard-error-output). These flags | |
16 | # might be hidden in other bundles, e.g. -pbp. Be defensive and | |
17 | # check both. | |
18 | my ( $output, $error_flag, $errorfile, $stderr, $destination ); | |
19 | $output = capture_merged { | |
20 | $error_flag = Perl::Tidy::Sweetened::perltidy( | |
21 | argv => $self->argv, | |
22 | source => \$source, | |
23 | destination => \$destination, | |
24 | stderr => \$stderr, | |
25 | errorfile => \$errorfile | |
26 | ); | |
27 | }; | |
28 | die $stderr if $stderr; | |
29 | die $errorfile if $errorfile; | |
30 | die $output if $error_flag; | |
31 | print STDERR $output if defined($output); | |
32 | return $destination; | |
33 | } | |
34 | ||
35 | 1; | |
36 | ||
37 | # ABSTRACT: Use perltidy-sweet with tidyall | |
38 | ||
39 | __END__ | |
40 | ||
41 | =pod | |
42 | ||
43 | =head1 NAME | |
44 | ||
45 | Code::TidyAll::Plugin::PerlTidySweet - Use perltidy-sweet with tidyall | |
46 | ||
47 | =head1 VERSION | |
48 | ||
49 | version 0.32 | |
50 | ||
51 | =head1 SYNOPSIS | |
52 | ||
53 | # In configuration: | |
54 | ||
55 | ; Configure in-line | |
56 | ; | |
57 | [PerlTidySweet] | |
58 | select = lib/**/*.pm | |
59 | argv = --noll | |
60 | ||
61 | ; or refer to a .perltidyrc in the same directory | |
62 | ; | |
63 | [PerlTidySweet] | |
64 | select = lib/**/*.pm | |
65 | argv = --profile=$ROOT/.perltidyrc | |
66 | ||
67 | =head1 DESCRIPTION | |
68 | ||
69 | Runs L<perltidy-sweet>, a Perl tidier based on Perl::Tidy that also supports | |
70 | new syntactic sugar as provided by L<Method::Signature::Simple>, | |
71 | L<MooseX::Method::Signatures> and the p5-mop. | |
72 | ||
73 | =head1 INSTALLATION | |
74 | ||
75 | Install perltidy-sweet from CPAN. | |
76 | ||
77 | cpanm Perl::Tidy::Sweet | |
78 | ||
79 | =head1 CONFIGURATION | |
80 | ||
81 | =over | |
82 | ||
83 | =item argv | |
84 | ||
85 | Arguments to pass to perltidy-sweet | |
86 | ||
87 | =back | |
88 | ||
89 | =head1 SEE ALSO | |
90 | ||
91 | L<Code::TidyAll> | |
92 | ||
93 | =head1 AUTHORS | |
94 | ||
95 | =over 4 | |
96 | ||
97 | =item * | |
98 | ||
99 | Jonathan Swartz <swartz@pobox.com> | |
100 | ||
101 | =item * | |
102 | ||
103 | Dave Rolsky <autarch@urth.org> | |
104 | ||
105 | =back | |
106 | ||
107 | =head1 COPYRIGHT AND LICENSE | |
108 | ||
109 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
110 | ||
111 | This is free software; you can redistribute it and/or modify it under the same | |
112 | terms as the Perl 5 programming language system itself. | |
113 | ||
114 | =cut |
0 | 0 | package Code::TidyAll::Plugin::PodChecker; |
1 | $Code::TidyAll::Plugin::PodChecker::VERSION = '0.20'; | |
2 | use Capture::Tiny qw(capture_merged); | |
1 | ||
3 | 2 | use Pod::Checker; |
4 | 3 | use Moo; |
5 | 4 | extends 'Code::TidyAll::Plugin'; |
5 | ||
6 | our $VERSION = '0.32'; | |
6 | 7 | |
7 | 8 | has 'warnings' => ( is => 'ro' ); |
8 | 9 | |
11 | 12 | |
12 | 13 | my $result; |
13 | 14 | my %options = ( defined( $self->warnings ) ? ( '-warnings' => $self->warnings ) : () ); |
14 | my $checker = new Pod::Checker(%options); | |
15 | my $output = capture_merged { $checker->parse_from_file( $file, \*STDERR ) }; | |
15 | my $checker = Pod::Checker->new(%options); | |
16 | my $output; | |
17 | open my $fh, '>', \$output; | |
18 | $checker->parse_from_file( $file, $fh ); | |
16 | 19 | die $output |
17 | if $checker->num_errors | |
18 | or ( $self->warnings && $checker->num_warnings ); | |
20 | if $checker->num_errors > 0 | |
21 | || ( $self->warnings && $checker->num_warnings > 0 ); | |
19 | 22 | } |
20 | 23 | |
21 | 24 | 1; |
25 | ||
26 | # ABSTRACT: Use podchecker with tidyall | |
22 | 27 | |
23 | 28 | __END__ |
24 | 29 | |
26 | 31 | |
27 | 32 | =head1 NAME |
28 | 33 | |
29 | Code::TidyAll::Plugin::PodChecker - use podchecker with tidyall | |
34 | Code::TidyAll::Plugin::PodChecker - Use podchecker with tidyall | |
30 | 35 | |
31 | 36 | =head1 VERSION |
32 | 37 | |
33 | version 0.20 | |
38 | version 0.32 | |
34 | 39 | |
35 | 40 | =head1 SYNOPSIS |
36 | 41 | |
49 | 54 | |
50 | 55 | =head1 DESCRIPTION |
51 | 56 | |
52 | Runs L<podchecker|podchecker>, a POD validator, and dies if any problems were | |
53 | found. | |
57 | Runs L<podchecker>, a POD validator, and dies if any problems were found. | |
54 | 58 | |
55 | 59 | =head1 INSTALLATION |
56 | 60 | |
71 | 75 | |
72 | 76 | =head1 SEE ALSO |
73 | 77 | |
74 | L<Code::TidyAll|Code::TidyAll> | |
78 | L<Code::TidyAll> | |
75 | 79 | |
76 | =head1 AUTHOR | |
80 | =head1 AUTHORS | |
81 | ||
82 | =over 4 | |
83 | ||
84 | =item * | |
77 | 85 | |
78 | 86 | Jonathan Swartz <swartz@pobox.com> |
79 | 87 | |
88 | =item * | |
89 | ||
90 | Dave Rolsky <autarch@urth.org> | |
91 | ||
92 | =back | |
93 | ||
80 | 94 | =head1 COPYRIGHT AND LICENSE |
81 | 95 | |
82 | This software is copyright (c) 2011 by Jonathan Swartz. | |
96 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
83 | 97 | |
84 | This is free software; you can redistribute it and/or modify it under | |
85 | the same terms as the Perl 5 programming language system itself. | |
98 | This is free software; you can redistribute it and/or modify it under the same | |
99 | terms as the Perl 5 programming language system itself. | |
86 | 100 | |
87 | 101 | =cut |
0 | 0 | package Code::TidyAll::Plugin::PodSpell; |
1 | $Code::TidyAll::Plugin::PodSpell::VERSION = '0.20'; | |
1 | ||
2 | 2 | use Code::TidyAll::Util qw(basename uniq); |
3 | 3 | use Capture::Tiny qw(); |
4 | 4 | use IPC::System::Simple qw(); |
8 | 8 | use Text::ParseWords qw(shellwords); |
9 | 9 | extends 'Code::TidyAll::Plugin'; |
10 | 10 | |
11 | has 'ispell_argv' => ( is => 'ro', default => sub { '' } ); | |
12 | has 'ispell_cmd' => ( is => 'ro', default => sub { 'ispell' } ); | |
11 | our $VERSION = '0.32'; | |
12 | ||
13 | has 'ispell_argv' => ( is => 'ro', default => q{} ); | |
14 | has 'ispell_cmd' => ( is => 'ro', default => 'ispell' ); | |
13 | 15 | has 'suggest' => ( is => 'ro' ); |
14 | 16 | |
15 | 17 | sub validate_file { |
43 | 45 | |
44 | 46 | 1; |
45 | 47 | |
48 | # ABSTRACT: Use Pod::Spell + ispell with tidyall | |
49 | ||
46 | 50 | __END__ |
47 | 51 | |
48 | 52 | =pod |
49 | 53 | |
50 | 54 | =head1 NAME |
51 | 55 | |
52 | Code::TidyAll::Plugin::PodSpell - use Pod::Spell + ispell with tidyall | |
56 | Code::TidyAll::Plugin::PodSpell - Use Pod::Spell + ispell with tidyall | |
53 | 57 | |
54 | 58 | =head1 VERSION |
55 | 59 | |
56 | version 0.20 | |
60 | version 0.32 | |
57 | 61 | |
58 | 62 | =head1 SYNOPSIS |
59 | 63 | |
114 | 118 | |
115 | 119 | =head1 SEE ALSO |
116 | 120 | |
117 | L<Code::TidyAll|Code::TidyAll> | |
121 | L<Code::TidyAll> | |
118 | 122 | |
119 | =head1 AUTHOR | |
123 | =head1 AUTHORS | |
124 | ||
125 | =over 4 | |
126 | ||
127 | =item * | |
120 | 128 | |
121 | 129 | Jonathan Swartz <swartz@pobox.com> |
122 | 130 | |
131 | =item * | |
132 | ||
133 | Dave Rolsky <autarch@urth.org> | |
134 | ||
135 | =back | |
136 | ||
123 | 137 | =head1 COPYRIGHT AND LICENSE |
124 | 138 | |
125 | This software is copyright (c) 2011 by Jonathan Swartz. | |
139 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
126 | 140 | |
127 | This is free software; you can redistribute it and/or modify it under | |
128 | the same terms as the Perl 5 programming language system itself. | |
141 | This is free software; you can redistribute it and/or modify it under the same | |
142 | terms as the Perl 5 programming language system itself. | |
129 | 143 | |
130 | 144 | =cut |
0 | 0 | package Code::TidyAll::Plugin::PodTidy; |
1 | $Code::TidyAll::Plugin::PodTidy::VERSION = '0.20'; | |
1 | ||
2 | 2 | use Capture::Tiny qw(capture_merged); |
3 | 3 | use Pod::Tidy; |
4 | 4 | use Moo; |
5 | 5 | extends 'Code::TidyAll::Plugin'; |
6 | ||
7 | our $VERSION = '0.32'; | |
6 | 8 | |
7 | 9 | has 'columns' => ( is => 'ro' ); |
8 | 10 | |
23 | 25 | |
24 | 26 | 1; |
25 | 27 | |
28 | # ABSTRACT: Use podtidy with tidyall | |
29 | ||
26 | 30 | __END__ |
27 | 31 | |
28 | 32 | =pod |
29 | 33 | |
30 | 34 | =head1 NAME |
31 | 35 | |
32 | Code::TidyAll::Plugin::PodTidy - use podtidy with tidyall | |
36 | Code::TidyAll::Plugin::PodTidy - Use podtidy with tidyall | |
33 | 37 | |
34 | 38 | =head1 VERSION |
35 | 39 | |
36 | version 0.20 | |
40 | version 0.32 | |
37 | 41 | |
38 | 42 | =head1 SYNOPSIS |
39 | 43 | |
45 | 49 | |
46 | 50 | =head1 DESCRIPTION |
47 | 51 | |
48 | Runs L<podtidy|podtidy>, which will tidy the POD in your Perl or POD-only file. | |
52 | Runs L<podtidy>, which will tidy the POD in your Perl or POD-only file. | |
49 | 53 | |
50 | 54 | =head1 INSTALLATION |
51 | 55 | |
65 | 69 | |
66 | 70 | =head1 SEE ALSO |
67 | 71 | |
68 | L<Code::TidyAll|Code::TidyAll> | |
72 | L<Code::TidyAll> | |
69 | 73 | |
70 | =head1 AUTHOR | |
74 | =head1 AUTHORS | |
75 | ||
76 | =over 4 | |
77 | ||
78 | =item * | |
71 | 79 | |
72 | 80 | Jonathan Swartz <swartz@pobox.com> |
73 | 81 | |
82 | =item * | |
83 | ||
84 | Dave Rolsky <autarch@urth.org> | |
85 | ||
86 | =back | |
87 | ||
74 | 88 | =head1 COPYRIGHT AND LICENSE |
75 | 89 | |
76 | This software is copyright (c) 2011 by Jonathan Swartz. | |
90 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
77 | 91 | |
78 | This is free software; you can redistribute it and/or modify it under | |
79 | the same terms as the Perl 5 programming language system itself. | |
92 | This is free software; you can redistribute it and/or modify it under the same | |
93 | terms as the Perl 5 programming language system itself. | |
80 | 94 | |
81 | 95 | =cut |
0 | 0 | package Code::TidyAll::Plugin::SortLines; |
1 | $Code::TidyAll::Plugin::SortLines::VERSION = '0.20'; | |
1 | ||
2 | 2 | use Moo; |
3 | 3 | extends 'Code::TidyAll::Plugin'; |
4 | ||
5 | our $VERSION = '0.32'; | |
4 | 6 | |
5 | 7 | sub transform_source { |
6 | 8 | my ( $self, $source ) = @_; |
7 | 9 | |
8 | return join( "\n", sort( grep { /\S/ } split( /\n/, $source ) ) ) . "\n"; | |
10 | return join( "\n", sort( grep {/\S/} split( /\n/, $source ) ) ) . "\n"; | |
9 | 11 | } |
10 | 12 | |
11 | 13 | 1; |
14 | ||
15 | # ABSTRACT: Sort the lines in a file | |
12 | 16 | |
13 | 17 | __END__ |
14 | 18 | |
16 | 20 | |
17 | 21 | =head1 NAME |
18 | 22 | |
19 | Code::TidyAll::Plugin::SortLines - sort lines of a file | |
23 | Code::TidyAll::Plugin::SortLines - Sort the lines in a file | |
20 | 24 | |
21 | 25 | =head1 VERSION |
22 | 26 | |
23 | version 0.20 | |
27 | version 0.32 | |
24 | 28 | |
25 | 29 | =head1 SYNOPSIS |
26 | 30 | |
37 | 41 | |
38 | 42 | =head1 SEE ALSO |
39 | 43 | |
40 | L<Code::TidyAll|Code::TidyAll> | |
44 | L<Code::TidyAll> | |
41 | 45 | |
42 | =head1 AUTHOR | |
46 | =head1 AUTHORS | |
47 | ||
48 | =over 4 | |
49 | ||
50 | =item * | |
43 | 51 | |
44 | 52 | Jonathan Swartz <swartz@pobox.com> |
45 | 53 | |
54 | =item * | |
55 | ||
56 | Dave Rolsky <autarch@urth.org> | |
57 | ||
58 | =back | |
59 | ||
46 | 60 | =head1 COPYRIGHT AND LICENSE |
47 | 61 | |
48 | This software is copyright (c) 2011 by Jonathan Swartz. | |
62 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
49 | 63 | |
50 | This is free software; you can redistribute it and/or modify it under | |
51 | the same terms as the Perl 5 programming language system itself. | |
64 | This is free software; you can redistribute it and/or modify it under the same | |
65 | terms as the Perl 5 programming language system itself. | |
52 | 66 | |
53 | 67 | =cut |
0 | 0 | package Code::TidyAll::Plugin; |
1 | $Code::TidyAll::Plugin::VERSION = '0.20'; | |
2 | use Code::TidyAll::Util qw(basename read_file write_file); | |
1 | ||
2 | use Code::TidyAll::Util qw(basename); | |
3 | 3 | use Code::TidyAll::Util::Zglob qw(zglobs_to_regex); |
4 | use File::Slurp::Tiny qw(read_file write_file); | |
4 | 5 | use Scalar::Util qw(weaken); |
5 | 6 | use Moo; |
6 | 7 | |
8 | our $VERSION = '0.32'; | |
9 | ||
7 | 10 | # External |
8 | has 'argv' => ( is => 'ro', default => sub { '' } ); | |
11 | has 'argv' => ( is => 'ro', default => q{} ); | |
9 | 12 | has 'class' => ( is => 'ro' ); |
10 | 13 | has 'cmd' => ( is => 'lazy' ); |
11 | 14 | has 'ignore' => ( is => 'ro' ); |
13 | 16 | has 'is_validator' => ( is => 'lazy' ); |
14 | 17 | has 'name' => ( is => 'ro', required => 1 ); |
15 | 18 | has 'select' => ( is => 'ro' ); |
19 | has 'shebang' => ( is => 'ro' ); | |
16 | 20 | has 'tidyall' => ( is => 'ro', required => 1, weak_ref => 1 ); |
21 | has 'weight' => ( is => 'lazy' ); | |
17 | 22 | |
18 | 23 | # Internal |
19 | 24 | has 'ignore_regex' => ( is => 'lazy' ); |
54 | 59 | sub _build_is_validator { |
55 | 60 | my ($self) = @_; |
56 | 61 | return ( $self->can('validate_source') || $self->can('validate_file') ) ? 1 : 0; |
62 | } | |
63 | ||
64 | # default weight | |
65 | sub _build_weight { | |
66 | my ($self) = @_; | |
67 | return 60 if $self->is_validator; | |
68 | return 50; | |
57 | 69 | } |
58 | 70 | |
59 | 71 | sub BUILD { |
73 | 85 | die sprintf( |
74 | 86 | "unknown option%s %s for plugin '%s'", |
75 | 87 | @bad_params > 1 ? "s" : "", |
76 | join( ", ", sort map { "'$_'" } @bad_params ), | |
88 | join( ", ", sort map {"'$_'"} @bad_params ), | |
77 | 89 | $self->name |
78 | 90 | ); |
79 | 91 | } |
83 | 95 | my ( $self, $zglob_list ) = @_; |
84 | 96 | $zglob_list = '' if !defined($zglob_list); |
85 | 97 | my @zglobs = split( /\s+/, $zglob_list ); |
86 | if ( my ($bad_zglob) = ( grep { m{^/} } @zglobs ) ) { | |
98 | if ( my ($bad_zglob) = ( grep {m{^/}} @zglobs ) ) { | |
87 | 99 | die "zglob '$bad_zglob' should not begin with slash"; |
88 | 100 | } |
89 | 101 | return \@zglobs; |
95 | 107 | } |
96 | 108 | |
97 | 109 | sub postprocess_source { |
110 | return $_[1]; | |
111 | } | |
112 | ||
113 | sub diff { | |
98 | 114 | return $_[1]; |
99 | 115 | } |
100 | 116 | |
139 | 155 | |
140 | 156 | 1; |
141 | 157 | |
158 | # ABSTRACT: Create plugins for tidying or validating code | |
159 | ||
142 | 160 | __END__ |
143 | 161 | |
144 | 162 | =pod |
149 | 167 | |
150 | 168 | =head1 VERSION |
151 | 169 | |
152 | version 0.20 | |
170 | version 0.32 | |
153 | 171 | |
154 | 172 | =head1 SYNOPSIS |
155 | 173 | |
156 | 174 | package Code::TidyAll::Plugin::SomeTidier; |
157 | 175 | use Moo; |
158 | 176 | extends 'Code::TidyAll::Plugin'; |
159 | ||
177 | ||
160 | 178 | sub transform_source { |
161 | 179 | my ( $self, $source ) = @_; |
162 | 180 | ... |
167 | 185 | package Code::TidyAll::Plugin::SomeValidator; |
168 | 186 | use Moo; |
169 | 187 | extends 'Code::TidyAll::Plugin'; |
170 | ||
188 | ||
171 | 189 | sub validate_file { |
172 | 190 | my ( $self, $file ) = @_; |
173 | 191 | die "not valid" if ...; |
180 | 198 | implement a new plugin. |
181 | 199 | |
182 | 200 | The easiest way to start is to look at existing plugins, such as |
183 | L<Code::TidyAll::Plugin::PerlTidy|Code::TidyAll::Plugin::PerlTidy> and | |
184 | L<Code::TidyAll::Plugin::PerlCritic|Code::TidyAll::Plugin::PerlCritic>. | |
201 | L<Code::TidyAll::Plugin::PerlTidy> and L<Code::TidyAll::Plugin::PerlCritic>. | |
185 | 202 | |
186 | 203 | =head1 NAMING |
187 | 204 | |
205 | 222 | ignore = lib/UtterHack.pm |
206 | 223 | argv = -severity 3 |
207 | 224 | |
208 | then L<Code::TidyAll::Plugin::PerlCritic|Code::TidyAll::Plugin::PerlCritic> | |
209 | would be constructed with parameters | |
210 | ||
211 | select => 'lib/**/*.pm', | |
225 | then L<Code::TidyAll::Plugin::PerlCritic> would be constructed with parameters | |
226 | ||
227 | select => 'lib/**/*.pm', | |
212 | 228 | ignore = 'lib/UtterHack.pm', |
213 | 229 | argv = '-severity 3' |
214 | 230 | |
226 | 242 | A standard attribute for specifying the name of the command to run, e.g. |
227 | 243 | "/usr/local/bin/perlcritic". |
228 | 244 | |
245 | =item is_validator | |
246 | ||
247 | An attribute that indicates if this is a validator or not; By default this | |
248 | returns true if either C<validate_source> or C<validate_file> methods have been | |
249 | implemented. | |
250 | ||
229 | 251 | =item name |
230 | 252 | |
231 | 253 | Name of the plugin to be used in error messages etc. |
232 | 254 | |
233 | 255 | =item tidyall |
234 | 256 | |
235 | A weak reference back to the L<Code::TidyAll|Code::TidyAll> object. | |
257 | A weak reference back to the L<Code::TidyAll> object. | |
236 | 258 | |
237 | 259 | =item select, ignore |
238 | 260 | |
239 | 261 | Select and ignore patterns - you can ignore these. |
262 | ||
263 | =item weight | |
264 | ||
265 | A number indicating the relative weight of the plugin, used to calculate the | |
266 | order the plugins will execute in. The lower the number the sooner the plugin | |
267 | will be executed. | |
268 | ||
269 | By default the weight will be C<50> for non validators (anything where | |
270 | C<is_validator> returns false) and C<60> for validators (anything where | |
271 | C<is_validator> returns true.) | |
272 | ||
273 | The order of plugin execution is determined first by the value of the C<weight> | |
274 | attribute, and then (if multiple plugins have the same weight>) by sorting by | |
275 | the name of module. | |
240 | 276 | |
241 | 277 | =back |
242 | 278 | |
285 | 321 | |
286 | 322 | =head1 SEE ALSO |
287 | 323 | |
288 | L<Code::TidyAll|Code::TidyAll> | |
289 | ||
290 | =head1 AUTHOR | |
324 | L<Code::TidyAll> | |
325 | ||
326 | =head1 AUTHORS | |
327 | ||
328 | =over 4 | |
329 | ||
330 | =item * | |
291 | 331 | |
292 | 332 | Jonathan Swartz <swartz@pobox.com> |
293 | 333 | |
334 | =item * | |
335 | ||
336 | Dave Rolsky <autarch@urth.org> | |
337 | ||
338 | =back | |
339 | ||
294 | 340 | =head1 COPYRIGHT AND LICENSE |
295 | 341 | |
296 | This software is copyright (c) 2011 by Jonathan Swartz. | |
297 | ||
298 | This is free software; you can redistribute it and/or modify it under | |
299 | the same terms as the Perl 5 programming language system itself. | |
342 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
343 | ||
344 | This is free software; you can redistribute it and/or modify it under the same | |
345 | terms as the Perl 5 programming language system itself. | |
300 | 346 | |
301 | 347 | =cut |
0 | 0 | package Code::TidyAll::Result; |
1 | $Code::TidyAll::Result::VERSION = '0.20'; | |
1 | ||
2 | 2 | use Moo; |
3 | 3 | |
4 | has 'error' => ( is => 'ro' ); | |
5 | has 'new_contents' => ( is => 'ro' ); | |
6 | has 'path' => ( is => 'ro' ); | |
7 | has 'state' => ( is => 'ro' ); | |
4 | our $VERSION = '0.32'; | |
5 | ||
6 | has 'error' => ( is => 'ro' ); | |
7 | has 'new_contents' => ( is => 'ro' ); | |
8 | has 'orig_contents' => ( is => 'ro' ); | |
9 | has 'path' => ( is => 'ro' ); | |
10 | has 'state' => ( is => 'ro' ); | |
8 | 11 | |
9 | 12 | sub ok { return $_[0]->state ne 'error' } |
10 | 13 | |
11 | 14 | 1; |
15 | ||
16 | # ABSTRACT: Result returned from processing a file/source | |
12 | 17 | |
13 | 18 | __END__ |
14 | 19 | |
20 | 25 | |
21 | 26 | =head1 VERSION |
22 | 27 | |
23 | version 0.20 | |
28 | version 0.32 | |
24 | 29 | |
25 | 30 | =head1 SYNOPSIS |
26 | 31 | |
63 | 68 | |
64 | 69 | =back |
65 | 70 | |
71 | =item orig_contents | |
72 | ||
73 | Contains the original contents if state is 'tidied' and with some errors (like | |
74 | when a file needs tidying in check-only mode) | |
75 | ||
66 | 76 | =item new_contents |
67 | 77 | |
68 | 78 | Contains the new contents if state is 'tidied' |
79 | 89 | |
80 | 90 | =head1 SEE ALSO |
81 | 91 | |
82 | L<Code::TidyAll|Code::TidyAll> | |
92 | L<Code::TidyAll> | |
83 | 93 | |
84 | =head1 AUTHOR | |
94 | =head1 AUTHORS | |
95 | ||
96 | =over 4 | |
97 | ||
98 | =item * | |
85 | 99 | |
86 | 100 | Jonathan Swartz <swartz@pobox.com> |
87 | 101 | |
102 | =item * | |
103 | ||
104 | Dave Rolsky <autarch@urth.org> | |
105 | ||
106 | =back | |
107 | ||
88 | 108 | =head1 COPYRIGHT AND LICENSE |
89 | 109 | |
90 | This software is copyright (c) 2011 by Jonathan Swartz. | |
110 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
91 | 111 | |
92 | This is free software; you can redistribute it and/or modify it under | |
93 | the same terms as the Perl 5 programming language system itself. | |
112 | This is free software; you can redistribute it and/or modify it under the same | |
113 | terms as the Perl 5 programming language system itself. | |
94 | 114 | |
95 | 115 | =cut |
0 | package Code::TidyAll::Role::Tempdir; | |
1 | ||
2 | use Moo::Role; | |
3 | ||
4 | use Cwd qw(realpath); | |
5 | use File::Temp qw(tempdir); | |
6 | ||
7 | our $VERSION = '0.32'; | |
8 | ||
9 | has '_tempdir' => ( is => 'ro', lazy => 1, builder => 1 ); | |
10 | has 'no_cleanup' => ( is => 'ro', default => 0 ); | |
11 | ||
12 | sub _build__tempdir { | |
13 | my ($self) = @_; | |
14 | return realpath( | |
15 | tempdir( | |
16 | 'Code-TidyAll-XXXX', | |
17 | TMPDIR => 1, | |
18 | CLEANUP => !$self->no_cleanup, | |
19 | ) | |
20 | ); | |
21 | } | |
22 | ||
23 | 1; | |
24 | ||
25 | # ABSTRACT: Provides a _tempdir attribute for Code::TidyAll classes | |
26 | ||
27 | __END__ | |
28 | ||
29 | =pod | |
30 | ||
31 | =head1 NAME | |
32 | ||
33 | Code::TidyAll::Role::Tempdir - Provides a _tempdir attribute for Code::TidyAll | |
34 | classes | |
35 | ||
36 | =head1 VERSION | |
37 | ||
38 | version 0.32 | |
39 | ||
40 | =head1 SYNOPSIS | |
41 | ||
42 | package Whatever; | |
43 | use Moo; | |
44 | with 'Code::TidyAll::Role::Tempdir'; | |
45 | ||
46 | =head1 DESCRIPTION | |
47 | ||
48 | A role to add tempdir attributes to classes. | |
49 | ||
50 | =encoding UTF-8 | |
51 | ||
52 | =head1 ATTRIBUTES | |
53 | ||
54 | =over | |
55 | ||
56 | =item _tempdir | |
57 | ||
58 | The temp directory. Lazily constructed if not passed | |
59 | ||
60 | =item no_cleanup | |
61 | ||
62 | A boolean indicating if the temp directory created by the C<_tempdir> builder | |
63 | should not automatically clean up after itself | |
64 | ||
65 | =back | |
66 | ||
67 | =head1 SEE ALSO | |
68 | ||
69 | L<Code::TidyAll> | |
70 | ||
71 | =head1 AUTHORS | |
72 | ||
73 | =over 4 | |
74 | ||
75 | =item * | |
76 | ||
77 | Jonathan Swartz <swartz@pobox.com> | |
78 | ||
79 | =item * | |
80 | ||
81 | Dave Rolsky <autarch@urth.org> | |
82 | ||
83 | =back | |
84 | ||
85 | =head1 COPYRIGHT AND LICENSE | |
86 | ||
87 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
88 | ||
89 | This is free software; you can redistribute it and/or modify it under the same | |
90 | terms as the Perl 5 programming language system itself. | |
91 | ||
92 | =cut |
0 | 0 | package Code::TidyAll::SVN::Precommit; |
1 | $Code::TidyAll::SVN::Precommit::VERSION = '0.20'; | |
1 | ||
2 | 2 | use Capture::Tiny qw(capture_stdout capture_stderr); |
3 | 3 | use Code::TidyAll; |
4 | 4 | use Code::TidyAll::Util qw(basename dirname mkpath realpath tempdir_simple write_file); |
7 | 7 | use SVN::Look; |
8 | 8 | use Try::Tiny; |
9 | 9 | |
10 | our $VERSION = '0.32'; | |
11 | ||
10 | 12 | # Public |
11 | 13 | has 'conf_name' => ( is => 'ro' ); |
12 | has 'emergency_comment_prefix' => ( is => 'ro', default => sub { "NO TIDYALL" } ); | |
14 | has 'emergency_comment_prefix' => ( is => 'ro', default => 'NO TIDYALL' ); | |
13 | 15 | has 'extra_conf_files' => ( is => 'ro', default => sub { [] } ); |
14 | 16 | has 'reject_on_error' => ( is => 'ro' ); |
15 | 17 | has 'repos' => ( is => 'ro', default => sub { $ARGV[0] } ); |
16 | has 'tidyall_class' => ( is => 'ro', default => sub { "Code::TidyAll" } ); | |
18 | has 'tidyall_class' => ( is => 'ro', default => 'Code::TidyAll' ); | |
17 | 19 | has 'tidyall_options' => ( is => 'ro', default => sub { {} } ); |
18 | 20 | has 'txn' => ( is => 'ro', default => sub { $ARGV[1] } ); |
19 | 21 | |
48 | 50 | $log->infof( |
49 | 51 | "%s [%s] repos = %s; txn = %s", |
50 | 52 | scalar(localtime), $$, scalar( getpwuid($<) ), |
51 | $self->repos, $self->txn | |
53 | $self->repos, $self->txn | |
52 | 54 | ); |
53 | 55 | $log->infof( "looking at files: %s", join( ", ", @files ) ); |
54 | 56 | |
89 | 91 | %{ $self->tidyall_options }, |
90 | 92 | ); |
91 | 93 | my $stdout = capture_stdout { |
92 | push( @results, $tidyall->process_paths( map { "$tempdir/$_" } @files ) ); | |
94 | push( @results, $tidyall->process_paths( map {"$tempdir/$_"} @files ) ); | |
93 | 95 | }; |
94 | 96 | if ($stdout) { |
95 | 97 | chomp($stdout); |
159 | 161 | |
160 | 162 | 1; |
161 | 163 | |
164 | # ABSTRACT: Subversion pre-commit hook that requires files to be tidyall'd | |
165 | ||
162 | 166 | __END__ |
163 | 167 | |
164 | 168 | =pod |
170 | 174 | |
171 | 175 | =head1 VERSION |
172 | 176 | |
173 | version 0.20 | |
177 | version 0.32 | |
174 | 178 | |
175 | 179 | =head1 SYNOPSIS |
176 | 180 | |
181 | 185 | use Log::Any::Adapter (File => "/path/to/hooks/logs/tidyall.log"); |
182 | 186 | use strict; |
183 | 187 | use warnings; |
184 | ||
188 | ||
185 | 189 | Code::TidyAll::SVN::Precommit->check(); |
186 | 190 | |
187 | 191 | =head1 DESCRIPTION |
188 | 192 | |
189 | 193 | This module implements a L<Subversion pre-commit |
190 | 194 | hook|http://svnbook.red-bean.com/en/1.7/svn.ref.reposhooks.pre-commit.html> |
191 | that checks if all files are tidied and valid according to L<tidyall|tidyall>, | |
192 | and rejects the commit if not. | |
195 | that checks if all files are tidied and valid according to L<tidyall>, and | |
196 | rejects the commit if not. | |
193 | 197 | |
194 | 198 | =head1 METHODS |
195 | 199 | |
198 | 202 | =item check (key/value params...) |
199 | 203 | |
200 | 204 | Class method. Check that all files being added or modified in this commit are |
201 | tidied and valid according to L<tidyall|tidyall>. If not, then the entire | |
202 | commit is rejected and the reason(s) are output to the client. e.g. | |
203 | ||
204 | % svn commit -m "fixups" CHI.pm CHI/Driver.pm | |
205 | tidied and valid according to L<tidyall>. If not, then the entire commit is | |
206 | rejected and the reason(s) are output to the client. e.g. | |
207 | ||
208 | % svn commit -m "fixups" CHI.pm CHI/Driver.pm | |
205 | 209 | Sending CHI/Driver.pm |
206 | 210 | Sending CHI.pm |
207 | 211 | Transmitting file data ..svn: Commit failed (details follow): |
215 | 219 | In an emergency the hook can be bypassed by prefixing the comment with "NO |
216 | 220 | TIDYALL", e.g. |
217 | 221 | |
218 | % svn commit -m "NO TIDYALL - this is an emergency!" CHI.pm CHI/Driver.pm | |
222 | % svn commit -m "NO TIDYALL - this is an emergency!" CHI.pm CHI/Driver.pm | |
219 | 223 | Sending CHI/Driver.pm |
220 | 224 | Sending CHI.pm |
221 | Transmitting file data . | |
222 | Committed revision 7562. | |
225 | Transmitting file data . | |
226 | Committed revision 7562. | |
223 | 227 | |
224 | 228 | The configuration file (C<tidyall.ini> or C<.tidyallrc>) must be checked into |
225 | 229 | svn. For each file, the hook will look upwards from the file's repo location |
269 | 273 | |
270 | 274 | =item tidyall_class |
271 | 275 | |
272 | Subclass to use instead of L<Code::TidyAll|Code::TidyAll> | |
276 | Subclass to use instead of L<Code::TidyAll> | |
273 | 277 | |
274 | 278 | =item tidyall_options |
275 | 279 | |
276 | Hashref of options to pass to the L<Code::TidyAll|Code::TidyAll> constructor | |
280 | Hashref of options to pass to the L<Code::TidyAll> constructor | |
277 | 281 | |
278 | 282 | =item txn |
279 | 283 | |
285 | 289 | |
286 | 290 | =head1 LOGGING |
287 | 291 | |
288 | This module uses L<Log::Any|Log::Any> to log its activity, including all files | |
289 | that were checked, an inability to find the configuration file, and any runtime | |
290 | errors that occur. You can create a simple date-stamped log file with | |
292 | This module uses L<Log::Any> to log its activity, including all files that were | |
293 | checked, an inability to find the configuration file, and any runtime errors | |
294 | that occur. You can create a simple date-stamped log file with | |
291 | 295 | |
292 | 296 | use Log::Any::Adapter (File => "/path/to/hooks/logs/tidyall.log"); |
293 | 297 | |
305 | 309 | |
306 | 310 | =head1 SEE ALSO |
307 | 311 | |
308 | L<Code::TidyAll|Code::TidyAll> | |
309 | ||
310 | =head1 AUTHOR | |
312 | L<Code::TidyAll> | |
313 | ||
314 | =head1 AUTHORS | |
315 | ||
316 | =over 4 | |
317 | ||
318 | =item * | |
311 | 319 | |
312 | 320 | Jonathan Swartz <swartz@pobox.com> |
313 | 321 | |
322 | =item * | |
323 | ||
324 | Dave Rolsky <autarch@urth.org> | |
325 | ||
326 | =back | |
327 | ||
314 | 328 | =head1 COPYRIGHT AND LICENSE |
315 | 329 | |
316 | This software is copyright (c) 2011 by Jonathan Swartz. | |
317 | ||
318 | This is free software; you can redistribute it and/or modify it under | |
319 | the same terms as the Perl 5 programming language system itself. | |
330 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
331 | ||
332 | This is free software; you can redistribute it and/or modify it under the same | |
333 | terms as the Perl 5 programming language system itself. | |
320 | 334 | |
321 | 335 | =cut |
0 | 0 | package Code::TidyAll::SVN::Util; |
1 | $Code::TidyAll::SVN::Util::VERSION = '0.20'; | |
1 | ||
2 | 2 | use Cwd qw(realpath); |
3 | 3 | use IPC::System::Simple qw(capturex); |
4 | 4 | use strict; |
5 | 5 | use warnings; |
6 | 6 | use base qw(Exporter); |
7 | ||
8 | our $VERSION = '0.32'; | |
7 | 9 | |
8 | 10 | our @EXPORT_OK = qw(svn_uncommitted_files); |
9 | 11 | |
12 | 14 | |
13 | 15 | $dir = realpath($dir); |
14 | 16 | my $output = capturex( "svn", "status", $dir ); |
15 | my @lines = grep { /^[AM]/ } split( "\n", $output ); | |
16 | my (@files) = grep { -f } ( $output =~ m{^[AM]\s+(.*)$}gm ); | |
17 | my @lines = grep {/^[AM]/} split( "\n", $output ); | |
18 | my (@files) = grep {-f} ( $output =~ m{^[AM]\s+(.*)$}gm ); | |
17 | 19 | return @files; |
18 | 20 | } |
19 | 21 |
0 | package Code::TidyAll::Test::Class; | |
1 | $Code::TidyAll::Test::Class::VERSION = '0.20'; | |
2 | use Test::Class::Most; | |
3 | use strict; | |
4 | use warnings; | |
5 | ||
6 | __PACKAGE__->SKIP_CLASS("abstract base class"); | |
7 | ||
8 | 1; |
0 | package Code::TidyAll::Test::Plugin::AToZ; | |
1 | $Code::TidyAll::Test::Plugin::AToZ::VERSION = '0.20'; | |
2 | use Moo; | |
3 | extends 'Code::TidyAll::Plugin'; | |
4 | ||
5 | sub preprocess_source { | |
6 | my ( $self, $source ) = @_; | |
7 | $source =~ tr/Aa/Zz/; | |
8 | return $source; | |
9 | } | |
10 | ||
11 | sub postprocess_source { | |
12 | my ( $self, $source ) = @_; | |
13 | $source =~ tr/Zz/Aa/; | |
14 | return $source; | |
15 | } | |
16 | ||
17 | 1; |
0 | package Code::TidyAll::Test::Plugin::CheckUpper; | |
1 | $Code::TidyAll::Test::Plugin::CheckUpper::VERSION = '0.20'; | |
2 | use Moo; | |
3 | extends 'Code::TidyAll::Plugin'; | |
4 | ||
5 | sub validate_source { | |
6 | my ( $self, $source ) = @_; | |
7 | die "lowercase found" if $source =~ /[a-z]/; | |
8 | } | |
9 | ||
10 | 1; |
0 | package Code::TidyAll::Test::Plugin::RepeatFoo; | |
1 | $Code::TidyAll::Test::Plugin::RepeatFoo::VERSION = '0.20'; | |
2 | use Code::TidyAll::Util qw(read_file write_file); | |
3 | use Moo; | |
4 | extends 'Code::TidyAll::Plugin'; | |
5 | ||
6 | has 'times' => ( is => 'ro' ); | |
7 | ||
8 | sub transform_source { | |
9 | my ( $self, $source ) = @_; | |
10 | my $times = $self->times || die "no times specified"; | |
11 | return $source x $times; | |
12 | } | |
13 | ||
14 | 1; |
0 | package Code::TidyAll::Test::Plugin::ReverseFoo; | |
1 | $Code::TidyAll::Test::Plugin::ReverseFoo::VERSION = '0.20'; | |
2 | use Code::TidyAll::Util qw(read_file write_file); | |
3 | use Moo; | |
4 | extends 'Code::TidyAll::Plugin'; | |
5 | ||
6 | sub transform_file { | |
7 | my ( $self, $file ) = @_; | |
8 | write_file( $file, scalar( reverse( read_file($file) ) ) ); | |
9 | } | |
10 | ||
11 | 1; |
0 | package Code::TidyAll::Test::Plugin::UpperText; | |
1 | $Code::TidyAll::Test::Plugin::UpperText::VERSION = '0.20'; | |
2 | use Moo; | |
3 | extends 'Code::TidyAll::Plugin'; | |
4 | ||
5 | sub transform_source { | |
6 | my ( $self, $source ) = @_; | |
7 | if ( $source =~ /^[A-Z]*$/i ) { | |
8 | return uc($source); | |
9 | } | |
10 | else { | |
11 | die "non-alpha content found"; | |
12 | } | |
13 | } | |
14 | ||
15 | 1; |
0 | 0 | # This is a copy of Text::Glob, modified to support "**/" |
1 | 1 | # |
2 | 2 | package Code::TidyAll::Util::Zglob; |
3 | $Code::TidyAll::Util::Zglob::VERSION = '0.20'; | |
3 | ||
4 | 4 | use strict; |
5 | 5 | use Exporter; |
6 | 6 | use vars qw/@ISA @EXPORT_OK |
7 | $strict_leading_dot $strict_wildcard_slash/; | |
7 | $strict_leading_dot $strict_wildcard_slash/; | |
8 | 8 | @ISA = 'Exporter'; |
9 | 9 | @EXPORT_OK = qw( zglobs_to_regex zglob_to_regex ); |
10 | ||
11 | our $VERSION = '0.32'; | |
10 | 12 | |
11 | 13 | $strict_leading_dot = 1; |
12 | 14 | $strict_wildcard_slash = 1; |
48 | 50 | || $_ eq '^' |
49 | 51 | || $_ eq '$' |
50 | 52 | || $_ eq '@' |
51 | || $_ eq '%' ) | |
52 | { | |
53 | || $_ eq '%' ) { | |
53 | 54 | $regex .= "\\$_"; |
54 | 55 | } |
55 | 56 | elsif ( $_ eq "\cZ" ) { # handle **/ - if escaping, only escape first * |
56 | 57 | $regex .= |
57 | $escaping | |
58 | ? ( "\\*" . ( $strict_wildcard_slash ? "[^/]*" : ".*" ) . "/" ) | |
59 | : ".*"; | |
58 | $escaping | |
59 | ? ( "\\*" . ( $strict_wildcard_slash ? "[^/]*" : ".*" ) . "/" ) | |
60 | : ".*"; | |
60 | 61 | } |
61 | 62 | elsif ( $_ eq '*' ) { |
62 | 63 | $regex .= |
63 | $escaping ? "\\*" | |
64 | : $strict_wildcard_slash ? "[^/]*" | |
65 | : ".*"; | |
64 | $escaping ? "\\*" | |
65 | : $strict_wildcard_slash ? "[^/]*" | |
66 | : ".*"; | |
66 | 67 | } |
67 | 68 | elsif ( $_ eq '?' ) { |
68 | 69 | $regex .= |
69 | $escaping ? "\\?" | |
70 | : $strict_wildcard_slash ? "[^/]" | |
71 | : "."; | |
70 | $escaping ? "\\?" | |
71 | : $strict_wildcard_slash ? "[^/]" | |
72 | : "."; | |
72 | 73 | } |
73 | 74 | elsif ( $_ eq '{' ) { |
74 | 75 | $regex .= $escaping ? "\\{" : "("; |
0 | 0 | package Code::TidyAll::Util; |
1 | $Code::TidyAll::Util::VERSION = '0.20'; | |
1 | ||
2 | 2 | use Cwd qw(realpath); |
3 | 3 | use Data::Dumper; |
4 | 4 | use File::Basename; |
12 | 12 | use warnings; |
13 | 13 | use base qw(Exporter); |
14 | 14 | |
15 | our @EXPORT_OK = | |
16 | qw(abs2rel basename can_load dirname dump_one_line mkpath pushd read_dir read_file realpath rel2abs tempdir_simple trim uniq write_file); | |
15 | our $VERSION = '0.32'; | |
16 | ||
17 | our @EXPORT_OK | |
18 | = qw(abs2rel basename can_load dirname dump_one_line mkpath pushd read_dir realpath rel2abs tempdir_simple trim uniq); | |
17 | 19 | |
18 | 20 | sub can_load { |
19 | 21 | |
71 | 73 | return @dir_entries; |
72 | 74 | } |
73 | 75 | |
74 | sub read_file { | |
75 | my ($file) = @_; | |
76 | open( my $fh, "<", $file ) or die "could not open $file: $!"; | |
77 | my $contents = do { local $/; <$fh> }; | |
78 | return $contents; | |
79 | } | |
80 | ||
81 | sub write_file { | |
82 | my ( $file, $contents ) = @_; | |
83 | open( my $fh, ">", $file ) or die "could not open $file: $!"; | |
84 | print $fh $contents; | |
85 | } | |
86 | ||
87 | 76 | 1; |
0 | package Code::TidyAll::t::Basic; | |
1 | $Code::TidyAll::t::Basic::VERSION = '0.20'; | |
2 | use Cwd qw(realpath); | |
3 | use Code::TidyAll::Util qw(dirname mkpath pushd read_file tempdir_simple write_file); | |
4 | use Code::TidyAll; | |
5 | use Capture::Tiny qw(capture capture_stdout capture_merged); | |
6 | use File::Find qw(find); | |
7 | use Test::Class::Most parent => 'Code::TidyAll::Test::Class'; | |
8 | ||
9 | sub test_plugin { "+Code::TidyAll::Test::Plugin::$_[0]" } | |
10 | my %UpperText = ( test_plugin('UpperText') => { select => '**/*.txt' } ); | |
11 | my %ReverseFoo = ( test_plugin('ReverseFoo') => { select => '**/foo*' } ); | |
12 | my %RepeatFoo = ( test_plugin('RepeatFoo') => { select => '**/foo*' } ); | |
13 | my %CheckUpper = ( test_plugin('CheckUpper') => { select => '**/*.txt' } ); | |
14 | my %AToZ = ( test_plugin('AToZ') => { select => '**/*.txt' } ); | |
15 | ||
16 | my $cli_conf; | |
17 | ||
18 | sub create_dir { | |
19 | my ( $self, $files ) = @_; | |
20 | ||
21 | my $root_dir = tempdir_simple(); | |
22 | while ( my ( $path, $content ) = each(%$files) ) { | |
23 | my $full_path = "$root_dir/$path"; | |
24 | mkpath( dirname($full_path), 0, 0775 ); | |
25 | write_file( $full_path, $content ); | |
26 | } | |
27 | return realpath($root_dir); | |
28 | } | |
29 | ||
30 | sub tidy { | |
31 | my ( $self, %params ) = @_; | |
32 | my $desc = $params{desc}; | |
33 | if ( !defined($desc) ) { | |
34 | ($desc) = ( ( caller(1) )[3] =~ /([^:]+$)/ ); | |
35 | } | |
36 | ||
37 | my $root_dir = $self->create_dir( $params{source} ); | |
38 | ||
39 | my $options = $params{options} || {}; | |
40 | my $ct = Code::TidyAll->new( | |
41 | plugins => $params{plugins}, | |
42 | root_dir => $root_dir, | |
43 | %$options | |
44 | ); | |
45 | ||
46 | my @results; | |
47 | my $output = capture_stdout { @results = $ct->process_all() }; | |
48 | my $error_count = grep { $_->error } @results; | |
49 | if ( $params{errors} ) { | |
50 | like( $output, $params{errors}, "$desc - errors" ); | |
51 | ok( $error_count > 0, "$desc - error_count > 0" ); | |
52 | } | |
53 | else { | |
54 | is( $error_count, 0, "$desc - error_count == 0" ); | |
55 | } | |
56 | while ( my ( $path, $content ) = each( %{ $params{dest} } ) ) { | |
57 | is( read_file("$root_dir/$path"), $content, "$desc - $path content" ); | |
58 | } | |
59 | if ( my $like_output = $params{like_output} ) { | |
60 | like( $output, $like_output, "$desc - output" ); | |
61 | } | |
62 | } | |
63 | ||
64 | sub test_basic : Tests { | |
65 | my $self = shift; | |
66 | ||
67 | $self->tidy( | |
68 | plugins => {}, | |
69 | source => { "foo.txt" => "abc" }, | |
70 | dest => { "foo.txt" => "abc" }, | |
71 | desc => 'one file no plugins', | |
72 | ); | |
73 | $self->tidy( | |
74 | plugins => {%UpperText}, | |
75 | source => { "foo.txt" => "abc" }, | |
76 | dest => { "foo.txt" => "ABC" }, | |
77 | desc => 'one file UpperText', | |
78 | ); | |
79 | $self->tidy( | |
80 | plugins => { | |
81 | test_plugin('UpperText') => { select => '**/*.txt', only_modes => 'upper' }, | |
82 | test_plugin('ReverseFoo') => { select => '**/foo*', only_modes => 'reversals' } | |
83 | }, | |
84 | source => { "foo.txt" => "abc" }, | |
85 | dest => { "foo.txt" => "cba" }, | |
86 | desc => 'one file reversals mode', | |
87 | options => { mode => 'reversals' }, | |
88 | ); | |
89 | $self->tidy( | |
90 | plugins => { %UpperText, %ReverseFoo }, | |
91 | source => { | |
92 | "foo.txt" => "abc", | |
93 | "bar.txt" => "def", | |
94 | "foo.tx" => "ghi", | |
95 | "bar.tx" => "jkl" | |
96 | }, | |
97 | dest => { | |
98 | "foo.txt" => "CBA", | |
99 | "bar.txt" => "DEF", | |
100 | "foo.tx" => "ihg", | |
101 | "bar.tx" => "jkl" | |
102 | }, | |
103 | desc => 'four files UpperText ReverseFoo', | |
104 | ); | |
105 | $self->tidy( | |
106 | plugins => {%UpperText}, | |
107 | source => { "foo.txt" => "abc1" }, | |
108 | dest => { "foo.txt" => "abc1" }, | |
109 | desc => 'one file UpperText errors', | |
110 | errors => qr/non-alpha content/ | |
111 | ); | |
112 | } | |
113 | ||
114 | sub test_multiple_plugin_instances : Tests { | |
115 | my $self = shift; | |
116 | $self->tidy( | |
117 | plugins => { | |
118 | test_plugin('RepeatFoo for txt') => { select => '**/*.txt', times => 2 }, | |
119 | test_plugin('RepeatFoo for foo') => { select => '**/foo.*', times => 3 }, | |
120 | %UpperText | |
121 | }, | |
122 | source => { "foo.txt" => "abc", "foo.dat" => "def", "bar.txt" => "ghi" }, | |
123 | dest => { | |
124 | "foo.txt" => scalar( "ABC" x 6 ), | |
125 | "foo.dat" => scalar( "def" x 3 ), | |
126 | "bar.txt" => scalar( "GHI" x 2 ) | |
127 | } | |
128 | ); | |
129 | } | |
130 | ||
131 | sub test_plugin_order_and_atomicity : Tests { | |
132 | my $self = shift; | |
133 | my @plugins = map { | |
134 | ( | |
135 | %ReverseFoo, | |
136 | test_plugin("UpperText $_") => { select => '**/*.txt' }, | |
137 | test_plugin("CheckUpper $_") => { select => '**/*.txt' } | |
138 | ) | |
139 | } ( 1 .. 3 ); | |
140 | my $output = capture_stdout { | |
141 | $self->tidy( | |
142 | plugins => {@plugins}, | |
143 | options => { verbose => 1 }, | |
144 | source => { "foo.txt" => "abc" }, | |
145 | dest => { "foo.txt" => "CBA" }, | |
146 | like_output => | |
147 | qr/.*ReverseFoo, .*UpperText 1, .*UpperText 2, .*UpperText 3, .*CheckUpper 1, .*CheckUpper 2, .*CheckUpper 3/ | |
148 | ); | |
149 | }; | |
150 | ||
151 | $self->tidy( | |
152 | plugins => { %AToZ, %ReverseFoo, %CheckUpper }, | |
153 | options => { verbose => 1 }, | |
154 | source => { "foo.txt" => "abc" }, | |
155 | dest => { "foo.txt" => "abc" }, | |
156 | errors => qr/lowercase found/, | |
157 | like_output => qr/foo.txt (.*ReverseFoo, .*CheckUpper)/ | |
158 | ); | |
159 | ||
160 | } | |
161 | ||
162 | sub test_quiet_and_verbose : Tests { | |
163 | my $self = shift; | |
164 | ||
165 | foreach my $state ( 'normal', 'quiet', 'verbose' ) { | |
166 | foreach my $error ( 0, 1 ) { | |
167 | my $root_dir = $self->create_dir( { "foo.txt" => ( $error ? "123" : "abc" ) } ); | |
168 | my $output = capture_stdout { | |
169 | my $ct = Code::TidyAll->new( | |
170 | plugins => {%UpperText}, | |
171 | root_dir => $root_dir, | |
172 | ( $state eq 'normal' ? () : ( $state => 1 ) ) | |
173 | ); | |
174 | $ct->process_paths("$root_dir/foo.txt"); | |
175 | }; | |
176 | if ($error) { | |
177 | like( $output, qr/non-alpha content found/, "non-alpha content found ($state)" ); | |
178 | } | |
179 | else { | |
180 | is( $output, "[tidied] foo.txt\n" ) if $state eq 'normal'; | |
181 | is( $output, "" ) if $state eq 'quiet'; | |
182 | like( $output, qr/purging old backups/, "purging old backups ($state)" ) | |
183 | if $state eq 'verbose'; | |
184 | like( | |
185 | $output, | |
186 | qr/\[tidied\] foo\.txt \(\+Code::TidyAll::Test::Plugin::UpperText\)/s, | |
187 | "foo.txt ($state)" | |
188 | ) if $state eq 'verbose'; | |
189 | } | |
190 | } | |
191 | } | |
192 | } | |
193 | ||
194 | sub test_iterations : Tests { | |
195 | my $self = shift; | |
196 | my $root_dir = $self->create_dir( { "foo.txt" => "abc" } ); | |
197 | my $ct = Code::TidyAll->new( | |
198 | plugins => { test_plugin('RepeatFoo') => { select => '**/foo*', times => 3 } }, | |
199 | root_dir => $root_dir, | |
200 | iterations => 2 | |
201 | ); | |
202 | my $file = "$root_dir/foo.txt"; | |
203 | $ct->process_paths($file); | |
204 | is( read_file($file), scalar( "abc" x 9 ), "3^2 = 9" ); | |
205 | } | |
206 | ||
207 | sub test_caching_and_backups : Tests { | |
208 | my $self = shift; | |
209 | ||
210 | foreach my $no_cache ( 0 .. 1 ) { | |
211 | foreach my $no_backups ( 0 .. 1 ) { | |
212 | my $desc = "(no_cache=$no_cache, no_backups=$no_backups)"; | |
213 | my $root_dir = $self->create_dir( { "foo.txt" => "abc" } ); | |
214 | my $ct = Code::TidyAll->new( | |
215 | plugins => {%UpperText}, | |
216 | root_dir => $root_dir, | |
217 | ( $no_cache ? ( no_cache => 1 ) : () ), | |
218 | ( $no_backups ? ( no_backups => 1 ) : () ) | |
219 | ); | |
220 | my $output; | |
221 | my $file = "$root_dir/foo.txt"; | |
222 | my $go = sub { | |
223 | $output = capture_stdout { $ct->process_paths($file) }; | |
224 | }; | |
225 | ||
226 | $go->(); | |
227 | is( read_file($file), "ABC", "first file change $desc" ); | |
228 | is( $output, "[tidied] foo.txt\n", "first output $desc" ); | |
229 | ||
230 | $go->(); | |
231 | if ($no_cache) { | |
232 | is( $output, "[checked] foo.txt\n", "second output $desc" ); | |
233 | } | |
234 | else { | |
235 | is( $output, '', "second output $desc" ); | |
236 | } | |
237 | ||
238 | write_file( $file, "ABCD" ); | |
239 | $go->(); | |
240 | is( $output, "[checked] foo.txt\n", "third output $desc" ); | |
241 | ||
242 | write_file( $file, "def" ); | |
243 | $go->(); | |
244 | is( read_file($file), "DEF", "fourth file change $desc" ); | |
245 | is( $output, "[tidied] foo.txt\n", "fourth output $desc" ); | |
246 | ||
247 | my $backup_dir = $ct->data_dir . "/backups"; | |
248 | mkpath( $backup_dir, 0, 0775 ); | |
249 | my @files; | |
250 | find( | |
251 | { | |
252 | follow => 0, | |
253 | wanted => sub { push @files, $_ if -f }, | |
254 | no_chdir => 1 | |
255 | }, | |
256 | $backup_dir | |
257 | ); | |
258 | ||
259 | if ($no_backups) { | |
260 | ok( @files == 0, "no backup files $desc" ); | |
261 | } | |
262 | else { | |
263 | ok( scalar(@files) == 1 || scalar(@files) == 2, "1 or 2 backup files $desc" ); | |
264 | foreach my $file (@files) { | |
265 | like( | |
266 | $file, | |
267 | qr|\.tidyall\.d/backups/foo\.txt-\d+-\d+\.bak|, | |
268 | "backup filename $desc" | |
269 | ); | |
270 | } | |
271 | } | |
272 | } | |
273 | } | |
274 | } | |
275 | ||
276 | sub test_selects_and_ignores : Tests { | |
277 | my $self = shift; | |
278 | ||
279 | my @files = ( "a/foo.pl", "b/foo.pl", "a/foo.pm", "a/bar.pm", "b/bar.pm" ); | |
280 | my $root_dir = $self->create_dir( { map { $_ => 'hi' } @files } ); | |
281 | my $ct = Code::TidyAll->new( | |
282 | root_dir => $root_dir, | |
283 | plugins => { | |
284 | test_plugin('UpperText') => { | |
285 | select => '**/*.pl **/*.pm b/bar.pm c/bar.pl', | |
286 | ignore => 'a/foo.pl **/bar.pm c/baz.pl' | |
287 | } | |
288 | } | |
289 | ); | |
290 | cmp_set( [ $ct->find_matched_files() ], [ "$root_dir/a/foo.pm", "$root_dir/b/foo.pl" ] ); | |
291 | cmp_deeply( [ map { $_->name } $ct->plugins_for_path("a/foo.pm") ], | |
292 | [ test_plugin('UpperText') ] ); | |
293 | } | |
294 | ||
295 | sub test_dirs : Tests { | |
296 | my $self = shift; | |
297 | ||
298 | my @files = ( "a/foo.txt", "a/bar.txt", "a/bar.pl", "b/foo.txt" ); | |
299 | my $root_dir = $self->create_dir( { map { $_ => 'hi' } @files } ); | |
300 | ||
301 | foreach my $recursive ( 0 .. 1 ) { | |
302 | my @results; | |
303 | my $output = capture_merged { | |
304 | my $ct = Code::TidyAll->new( | |
305 | plugins => { %UpperText, %ReverseFoo }, | |
306 | root_dir => $root_dir, | |
307 | ( $recursive ? ( recursive => 1 ) : () ) | |
308 | ); | |
309 | @results = $ct->process_paths("$root_dir/a"); | |
310 | }; | |
311 | if ($recursive) { | |
312 | is( @results, 3, "3 results" ); | |
313 | is( scalar( grep { $_->state eq 'tidied' } @results ), 2, "2 tidied" ); | |
314 | like( $output, qr/\[tidied\] a\/foo.txt/ ); | |
315 | like( $output, qr/\[tidied\] a\/bar.txt/ ); | |
316 | is( read_file("$root_dir/a/foo.txt"), "IH" ); | |
317 | is( read_file("$root_dir/a/bar.txt"), "HI" ); | |
318 | is( read_file("$root_dir/a/bar.pl"), "hi" ); | |
319 | is( read_file("$root_dir/b/foo.txt"), "hi" ); | |
320 | } | |
321 | else { | |
322 | is( @results, 1, "1 result" ); | |
323 | is( $results[0]->state, "error", "error" ); | |
324 | like( $output, qr/is a directory/ ); | |
325 | } | |
326 | } | |
327 | } | |
328 | ||
329 | sub test_errors : Tests { | |
330 | my $self = shift; | |
331 | ||
332 | my $root_dir = $self->create_dir( { "foo/bar.txt" => "abc" } ); | |
333 | throws_ok { Code::TidyAll->new( root_dir => $root_dir ) } qr/Missing required/; | |
334 | throws_ok { Code::TidyAll->new( plugins => {} ) } qr/Missing required/; | |
335 | ||
336 | throws_ok { | |
337 | Code::TidyAll->new( | |
338 | root_dir => $root_dir, | |
339 | plugins => {}, | |
340 | bad_param => 1, | |
341 | worse_param => 2 | |
342 | ); | |
343 | } | |
344 | qr/unknown constructor params 'bad_param', 'worse_param'/; | |
345 | ||
346 | throws_ok { | |
347 | Code::TidyAll->new( | |
348 | root_dir => $root_dir, | |
349 | plugins => { 'DoesNotExist' => { select => '**/*' } } | |
350 | )->plugin_objects; | |
351 | } | |
352 | qr/could not load plugin class/; | |
353 | ||
354 | throws_ok { | |
355 | Code::TidyAll->new( | |
356 | root_dir => $root_dir, | |
357 | plugins => { | |
358 | test_plugin('UpperText') => { select => '**/*', bad_option => 1, worse_option => 2 } | |
359 | } | |
360 | )->plugin_objects; | |
361 | } | |
362 | qr/unknown options/; | |
363 | ||
364 | my $ct = Code::TidyAll->new( plugins => {%UpperText}, root_dir => $root_dir ); | |
365 | my $output = capture_stdout { $ct->process_paths("$root_dir/baz/blargh.txt") }; | |
366 | like( $output, qr/baz\/blargh.txt: not a file or directory/, "file not found" ); | |
367 | ||
368 | $output = capture_stdout { $ct->process_paths("$root_dir/foo/bar.txt") }; | |
369 | is( $output, "[tidied] foo/bar.txt\n", "filename output" ); | |
370 | is( read_file("$root_dir/foo/bar.txt"), "ABC", "tidied" ); | |
371 | my $other_dir = realpath( tempdir_simple() ); | |
372 | write_file( "$other_dir/foo.txt", "ABC" ); | |
373 | throws_ok { $ct->process_paths("$other_dir/foo.txt") } qr/not underneath root dir/; | |
374 | } | |
375 | ||
376 | sub test_cli : Tests { | |
377 | my $self = shift; | |
378 | my $output; | |
379 | ||
380 | my @cmd = ( "$^X", "-Ilib", "bin/tidyall" ); | |
381 | my $run = sub { system( @cmd, @_ ) }; | |
382 | ||
383 | $output = capture_stdout { | |
384 | $run->("--version"); | |
385 | }; | |
386 | like( $output, qr/tidyall .* on perl/ ); | |
387 | $output = capture_stdout { | |
388 | $run->("--help"); | |
389 | }; | |
390 | like( $output, qr/Usage.*Options:/s ); | |
391 | ||
392 | foreach my $conf_name ( "tidyall.ini", ".tidyallrc" ) { | |
393 | my $root_dir = $self->create_dir(); | |
394 | my $conf_file = "$root_dir/$conf_name"; | |
395 | write_file( $conf_file, $cli_conf ); | |
396 | ||
397 | write_file( "$root_dir/foo.txt", "hello" ); | |
398 | my $output = capture_stdout { | |
399 | $run->( "$root_dir/foo.txt", "-v" ); | |
400 | }; | |
401 | ||
402 | my ($params_msg) = ( $output =~ /constructing Code::TidyAll with these params:(.*)/ ); | |
403 | ok( defined($params_msg), "params msg" ); | |
404 | like( $params_msg, qr/backup_ttl => '15m'/, 'backup_ttl' ); | |
405 | like( $params_msg, qr/verbose => '?1'?/, 'verbose' ); | |
406 | like( $params_msg, qr/\Qroot_dir => '$root_dir'\E/, 'root_dir' ); | |
407 | like( $output, qr/\[tidied\] foo.txt \(.*RepeatFoo, .*UpperText\)/, 'foo.txt' ); | |
408 | is( read_file("$root_dir/foo.txt"), "HELLOHELLOHELLO", "tidied" ); | |
409 | ||
410 | mkpath( "$root_dir/subdir", 0, 0775 ); | |
411 | write_file( "$root_dir/subdir/foo.txt", "bye" ); | |
412 | write_file( "$root_dir/subdir/foo2.txt", "bye" ); | |
413 | my $cwd = realpath(); | |
414 | capture_stdout { | |
415 | system("cd $root_dir/subdir; $^X -I$cwd/lib $cwd/bin/tidyall foo.txt"); | |
416 | }; | |
417 | is( read_file("$root_dir/subdir/foo.txt"), "BYEBYEBYE", "foo.txt tidied" ); | |
418 | is( read_file("$root_dir/subdir/foo2.txt"), "bye", "foo2.txt not tidied" ); | |
419 | ||
420 | # -p / --pipe success | |
421 | # | |
422 | my ( $stdout, $stderr ) = capture { | |
423 | open( my $fh, "|-", @cmd, "-p", "$root_dir/does_not_exist/foo.txt" ); | |
424 | print $fh "echo"; | |
425 | }; | |
426 | is( $stdout, "ECHOECHOECHO", "pipe: stdin tidied" ); | |
427 | unlike( $stderr, qr/\S/, "pipe: no stderr" ); | |
428 | ||
429 | # -p / --pipe error | |
430 | # | |
431 | ( $stdout, $stderr ) = capture { | |
432 | open( my $fh, "|-", @cmd, "--pipe", "$root_dir/foo.txt" ); | |
433 | print $fh "abc1"; | |
434 | }; | |
435 | is( $stdout, "abc1", "pipe: stdin mirrored to stdout" ); | |
436 | like( $stderr, qr/non-alpha content found/ ); | |
437 | } | |
438 | } | |
439 | ||
440 | $cli_conf = ' | |
441 | backup_ttl = 15m | |
442 | verbose = 1 | |
443 | ||
444 | [+Code::TidyAll::Test::Plugin::UpperText] | |
445 | select = **/*.txt | |
446 | ||
447 | [+Code::TidyAll::Test::Plugin::RepeatFoo] | |
448 | select = **/foo* | |
449 | times = 3 | |
450 | '; | |
451 | ||
452 | 1; |
0 | package Code::TidyAll::t::Conf; | |
1 | $Code::TidyAll::t::Conf::VERSION = '0.20'; | |
2 | use Code::TidyAll; | |
3 | use Code::TidyAll::Util qw(dirname tempdir_simple write_file); | |
4 | use Test::Class::Most parent => 'Code::TidyAll::Test::Class'; | |
5 | ||
6 | my $conf1; | |
7 | ||
8 | sub test_conf_file : Tests { | |
9 | my $self = shift; | |
10 | my $root_dir = tempdir_simple(); | |
11 | my $conf_file = "$root_dir/tidyall.ini"; | |
12 | write_file( $conf_file, $conf1 ); | |
13 | ||
14 | my $ct = Code::TidyAll->new_from_conf_file($conf_file); | |
15 | my %expected = ( | |
16 | backup_ttl => '5m', | |
17 | backup_ttl_secs => '300', | |
18 | no_backups => undef, | |
19 | no_cache => 1, | |
20 | root_dir => dirname($conf_file), | |
21 | data_dir => "$root_dir/.tidyall.d", | |
22 | plugins => { | |
23 | '+Code::TidyAll::Test::Plugin::UpperText' => { select => '**/*.txt' }, | |
24 | '+Code::TidyAll::Test::Plugin::RepeatFoo' => { select => '**/foo* **/bar*', times => 3 } | |
25 | } | |
26 | ); | |
27 | while ( my ( $method, $value ) = each(%expected) ) { | |
28 | cmp_deeply( $ct->$method, $value, "$method" ); | |
29 | } | |
30 | ||
31 | my $conf2 = $conf1; | |
32 | $conf2 =~ s/times/timez/; | |
33 | write_file( $conf_file, $conf2 ); | |
34 | throws_ok { my $ct = Code::TidyAll->new_from_conf_file($conf_file)->plugin_objects } | |
35 | qr/unknown option 'timez'/; | |
36 | ||
37 | } | |
38 | ||
39 | $conf1 = ' | |
40 | backup_ttl = 5m | |
41 | no_cache = 1 | |
42 | ||
43 | [+Code::TidyAll::Test::Plugin::UpperText] | |
44 | select = **/*.txt | |
45 | ||
46 | [+Code::TidyAll::Test::Plugin::RepeatFoo] | |
47 | select = **/foo* | |
48 | select = **/bar* | |
49 | times = 3 | |
50 | '; |
0 | package Code::TidyAll::t::Git; | |
1 | $Code::TidyAll::t::Git::VERSION = '0.20'; | |
2 | use Capture::Tiny qw(capture_stdout capture_stderr capture); | |
3 | use Code::TidyAll::Git::Util qw(git_uncommitted_files); | |
4 | use Code::TidyAll::Util qw(dirname mkpath pushd read_file realpath tempdir_simple write_file); | |
5 | use Code::TidyAll; | |
6 | use IPC::System::Simple qw(capturex run); | |
7 | use Test::Class::Most parent => 'Code::TidyAll::Test::Class'; | |
8 | ||
9 | my ( $precommit_hook_template, $prereceive_hook_template, $tidyall_ini_template ); | |
10 | ||
11 | sub test_git : Tests { | |
12 | my ($self) = @_; | |
13 | ||
14 | my $temp_dir = tempdir_simple; | |
15 | my $work_dir = "$temp_dir/work"; | |
16 | my $hooks_dir = "$work_dir/.git/hooks"; | |
17 | my $output; | |
18 | ||
19 | my $committed = sub { | |
20 | like( capturex( 'git', 'status' ), qr/nothing to commit/, "committed" ); | |
21 | }; | |
22 | my $uncommitted = sub { | |
23 | unlike( capturex( 'git', 'status' ), qr/nothing to commit/, "committed" ); | |
24 | }; | |
25 | ||
26 | my $pushed = sub { | |
27 | unlike( capturex( 'git', 'status' ), qr/Your branch is ahead/, "pushed" ); | |
28 | }; | |
29 | my $unpushed = sub { | |
30 | like( capturex( 'git', 'status' ), qr/Your branch is ahead/, "unpushed" ); | |
31 | }; | |
32 | ||
33 | # Create the repo | |
34 | # | |
35 | run( "git", "init", $work_dir ); | |
36 | ok( -d $_, "$_ exists" ) for ( $work_dir, $hooks_dir ); | |
37 | my $pushd = pushd($work_dir); | |
38 | ||
39 | # Add tidyall.ini and .gitignore | |
40 | # | |
41 | write_file( "$work_dir/tidyall.ini", sprintf($tidyall_ini_template) ); | |
42 | write_file( "$work_dir/.gitignore", ".tidyall.d" ); | |
43 | run( "git", "add", "tidyall.ini", ".gitignore" ); | |
44 | run( "git", "commit", "-m", "added", "tidyall.ini", ".gitignore" ); | |
45 | ||
46 | # Add foo.txt, which needs tidying | |
47 | # | |
48 | write_file( "$work_dir/foo.txt", "abc\n" ); | |
49 | cmp_deeply( [ git_uncommitted_files($work_dir) ], [], "no uncommitted files" ); | |
50 | ||
51 | # git add foo.txt and make sure it is now in uncommitted list | |
52 | # | |
53 | run( "git", "add", "foo.txt" ); | |
54 | cmp_deeply( [ git_uncommitted_files($work_dir) ], | |
55 | ["$work_dir/foo.txt"], "one uncommitted file" ); | |
56 | ||
57 | # Add pre-commit hook | |
58 | # | |
59 | my $precommit_hook_file = "$hooks_dir/pre-commit"; | |
60 | my $precommit_hook = sprintf( $precommit_hook_template, realpath("lib") ); | |
61 | write_file( $precommit_hook_file, $precommit_hook ); | |
62 | chmod( 0775, $precommit_hook_file ); | |
63 | ||
64 | # Try to commit, make sure we get error | |
65 | # | |
66 | $output = capture_stderr { system( "git", "commit", "-m", "changed", "-a" ) }; | |
67 | like( $output, qr/1 file did not pass tidyall check/, "1 file did not pass tidyall check" ); | |
68 | like( $output, qr/needs tidying/, "needs tidying" ); | |
69 | $uncommitted->(); | |
70 | ||
71 | # Fix file and commit successfully | |
72 | # | |
73 | write_file( "$work_dir/foo.txt", "ABC\n" ); | |
74 | $output = capture_stderr { run( "git", "commit", "-m", "changed", "-a" ) }; | |
75 | like( $output, qr/\[checked\] foo\.txt/, "checked foo.txt" ); | |
76 | $committed->(); | |
77 | ||
78 | # Create a bare shared repo, then a clone of that | |
79 | # | |
80 | my $shared_dir = "$temp_dir/shared"; | |
81 | my $clone_dir = "$temp_dir/clone"; | |
82 | run( "git", "clone", "--bare", $work_dir, $shared_dir ); | |
83 | run( "git", "clone", $shared_dir, $clone_dir ); | |
84 | chdir($clone_dir); | |
85 | $committed->(); | |
86 | ||
87 | # Add prereceive hook to shared repo | |
88 | # | |
89 | my $prereceive_hook_file = "$shared_dir/hooks/pre-receive"; | |
90 | my $prereceive_hook = sprintf( $prereceive_hook_template, realpath("lib") ); | |
91 | write_file( $prereceive_hook_file, $prereceive_hook ); | |
92 | chmod( 0775, $prereceive_hook_file ); | |
93 | ||
94 | # Unfix file and commit | |
95 | # | |
96 | write_file( "$clone_dir/foo.txt", "def\n" ); | |
97 | run( "git", "commit", "-m", "changed", "-a" ); | |
98 | $committed->(); | |
99 | ||
100 | # Try to push, make sure we get error back | |
101 | # | |
102 | $unpushed->(); | |
103 | $output = capture_stderr { system( "git", "push" ) }; | |
104 | like( $output, qr/master -> master/, "master -> master" ); | |
105 | like( $output, qr/1 file did not pass tidyall check/, "1 file did not pass tidyall check" ); | |
106 | like( $output, qr/needs tidying/, "needs tidying" ); | |
107 | $unpushed->(); | |
108 | ||
109 | # Fix file and push successfully | |
110 | # | |
111 | write_file( "$clone_dir/foo.txt", "DEF\n" ); | |
112 | $output = capture_stderr { run( "git", "commit", "-m", "changed", "-a" ) }; | |
113 | $committed->(); | |
114 | $output = capture_stderr { system( "git", "push" ) }; | |
115 | like( $output, qr/master -> master/, "master -> master" ); | |
116 | $pushed->(); | |
117 | ||
118 | # Unfix file and commit | |
119 | # | |
120 | write_file( "$clone_dir/foo.txt", "def\n" ); | |
121 | run( "git", "commit", "-m", "changed", "-a" ); | |
122 | $committed->(); | |
123 | ||
124 | # Try #1: make sure we get error back | |
125 | # | |
126 | $unpushed->(); | |
127 | $output = capture_stderr { system( "git", "push" ) }; | |
128 | like( $output, qr/needs tidying/, "needs tidying" ); | |
129 | $unpushed->(); | |
130 | ||
131 | # Try #2: make sure we get error and repeat notification back | |
132 | # | |
133 | $unpushed->(); | |
134 | $output = capture_stderr { system( "git", "push" ) }; | |
135 | like( $output, qr/needs tidying/, "needs tidying" ); | |
136 | like( $output, qr/Identical push seen 2 times/, "Identical push seen 2 times" ); | |
137 | $unpushed->(); | |
138 | ||
139 | } | |
140 | ||
141 | $precommit_hook_template = '#!/usr/bin/perl | |
142 | use lib qw(%s); | |
143 | use Code::TidyAll::Git::Precommit; | |
144 | use strict; | |
145 | use warnings; | |
146 | ||
147 | Code::TidyAll::Git::Precommit->check( | |
148 | tidyall_options => { verbose => 1 } | |
149 | ); | |
150 | '; | |
151 | ||
152 | $prereceive_hook_template = '#!/usr/bin/perl | |
153 | use lib qw(%s); | |
154 | use Code::TidyAll::Git::Prereceive; | |
155 | use strict; | |
156 | use warnings; | |
157 | ||
158 | Code::TidyAll::Git::Prereceive->check(); | |
159 | '; | |
160 | ||
161 | $tidyall_ini_template = ' | |
162 | [+Code::TidyAll::Test::Plugin::UpperText] | |
163 | select = **/*.txt | |
164 | '; | |
165 | ||
166 | 1; |
0 | package Code::TidyAll::t::Plugin::CSSUnminifier; | |
1 | $Code::TidyAll::t::Plugin::CSSUnminifier::VERSION = '0.20'; | |
2 | use Test::Class::Most parent => 'Code::TidyAll::t::Plugin'; | |
3 | ||
4 | sub test_main : Tests { | |
5 | my $self = shift; | |
6 | ||
7 | my $source = 'body {\nfont-family:helvetica;\nfont-size:15pt;\n}'; | |
8 | $self->tidyall( | |
9 | source => $source, | |
10 | expect_tidy => 'body {\n font-family: helvetica;\n font-size: 15pt;\n}\n' | |
11 | ); | |
12 | $self->tidyall( | |
13 | source => $source, | |
14 | conf => { argv => '-w=2' }, | |
15 | expect_tidy => 'body {\n font-family: helvetica;\n font-size: 15pt;\n}\n' | |
16 | ); | |
17 | } | |
18 | ||
19 | 1; |
0 | package Code::TidyAll::t::Plugin::JSBeautify; | |
1 | $Code::TidyAll::t::Plugin::JSBeautify::VERSION = '0.20'; | |
2 | use Test::Class::Most parent => 'Code::TidyAll::t::Plugin'; | |
3 | ||
4 | sub test_main : Tests { | |
5 | my $self = shift; | |
6 | ||
7 | my $source = 'sp.toggleResult=function(id){foo(id)}'; | |
8 | $self->tidyall( | |
9 | source => $source, | |
10 | expect_tidy => 'sp.toggleResult = function(id) {\n foo(id)\n}\n', | |
11 | ); | |
12 | $self->tidyall( | |
13 | source => $source, | |
14 | conf => { argv => '--indent-size 3 --brace-style expand' }, | |
15 | expect_tidy => 'sp.toggleResult = function(id)\n{\n foo(id)\n}\n', | |
16 | ); | |
17 | } | |
18 | ||
19 | 1; |
0 | package Code::TidyAll::t::Plugin::JSHint; | |
1 | $Code::TidyAll::t::Plugin::JSHint::VERSION = '0.20'; | |
2 | use Code::TidyAll::Util qw(write_file); | |
3 | use Test::Class::Most parent => 'Code::TidyAll::t::Plugin'; | |
4 | ||
5 | sub test_filename { 'foo.js' } | |
6 | ||
7 | sub test_main : Tests { | |
8 | my $self = shift; | |
9 | ||
10 | my $rc_file = $self->{root_dir} . "/jshint.json"; | |
11 | ||
12 | $self->tidyall( | |
13 | source => 'var my_object = {};', | |
14 | expect_ok => 1, | |
15 | desc => 'ok - camelcase', | |
16 | ); | |
17 | $self->tidyall( | |
18 | source => 'while (day)\n shuffle();', | |
19 | expect_ok => 1, | |
20 | desc => 'ok no brace', | |
21 | ); | |
22 | $self->tidyall( | |
23 | source => 'var my_object = new Object();', | |
24 | expect_error => qr/object literal notation/, | |
25 | desc => 'error - object literal', | |
26 | ); | |
27 | $self->tidyall( | |
28 | source => 'var my_object = {};', | |
29 | conf => { options => 'camelcase' }, | |
30 | expect_error => qr/not in camel case/, | |
31 | desc => 'error - camel case - options=camelcase', | |
32 | ); | |
33 | $self->tidyall( | |
34 | source => 'var my_object = {};', | |
35 | conf => { options => 'camelcase curly' }, | |
36 | expect_error => qr/not in camel case/, | |
37 | desc => 'error - camel case - options=camelcase,curly', | |
38 | ); | |
39 | $self->tidyall( | |
40 | source => 'while (day)\n shuffle();', | |
41 | conf => { options => 'camelcase curly' }, | |
42 | expect_error => qr/Expected \'{/, | |
43 | desc => 'error - curly - options=camelcase,curly', | |
44 | ); | |
45 | write_file( $rc_file, '{"camelcase": true}' ); | |
46 | $self->tidyall( | |
47 | source => 'var my_object = {};', | |
48 | conf => { argv => "--config $rc_file" }, | |
49 | expect_error => qr/not in camel case/, | |
50 | desc => 'error - camelcase - conf file', | |
51 | ); | |
52 | $self->tidyall( | |
53 | source => 'var my_object = {};', | |
54 | conf => { argv => "--badoption" }, | |
55 | expect_error => qr/Unknown option/, | |
56 | desc => 'error - bad option' | |
57 | ); | |
58 | } | |
59 | ||
60 | 1; |
0 | package Code::TidyAll::t::Plugin::JSLint; | |
1 | $Code::TidyAll::t::Plugin::JSLint::VERSION = '0.20'; | |
2 | use Code::TidyAll::Util qw(write_file); | |
3 | use Test::Class::Most parent => 'Code::TidyAll::t::Plugin'; | |
4 | ||
5 | sub test_filename { 'foo.js' } | |
6 | ||
7 | sub test_main : Tests { | |
8 | my $self = shift; | |
9 | ||
10 | $self->tidyall( | |
11 | source => 'var my_object = {};', | |
12 | expect_ok => 1, | |
13 | desc => 'ok', | |
14 | ); | |
15 | $self->tidyall( | |
16 | source => 'while (true) {\nvar i = 5;\n}', | |
17 | expect_error => qr/Expected 'var' at column 5/, | |
18 | desc => 'error - bad indentation' | |
19 | ); | |
20 | $self->tidyall( | |
21 | source => 'while (true) {\nvar i = 5;\n}', | |
22 | conf => { argv => '--white' }, | |
23 | expect_ok => 1, | |
24 | desc => 'ok - bad indentation, --white' | |
25 | ); | |
26 | $self->tidyall( | |
27 | source => 'var my_object = {};', | |
28 | conf => { argv => '--badoption' }, | |
29 | expect_error => qr/Usage/, | |
30 | desc => 'error - bad option' | |
31 | ); | |
32 | } | |
33 | ||
34 | 1; |
0 | package Code::TidyAll::t::Plugin::MasonTidy; | |
1 | $Code::TidyAll::t::Plugin::MasonTidy::VERSION = '0.20'; | |
2 | use Test::Class::Most parent => 'Code::TidyAll::t::Plugin'; | |
3 | ||
4 | sub test_main : Tests { | |
5 | my $self = shift; | |
6 | ||
7 | my $source; | |
8 | ||
9 | $source = '%if($foo) {\n%bar(1,2);\n%}'; | |
10 | $self->tidyall( | |
11 | source => $source, | |
12 | conf => { argv => '-m 1' }, | |
13 | expect_tidy => '% if ($foo) {\n% bar( 1, 2 );\n% }' | |
14 | ); | |
15 | $self->tidyall( | |
16 | source => $source, | |
17 | conf => { argv => '-m 1 --perltidy-argv="-pt=2 -i=3"' }, | |
18 | expect_tidy => '% if ($foo) {\n% bar(1, 2);\n% }' | |
19 | ); | |
20 | $self->tidyall( | |
21 | source => $source, | |
22 | conf => { argv => '-m 2 --perltidy-line-argv=" "' }, | |
23 | expect_tidy => '% if ($foo) {\n% bar( 1, 2 );\n% }' | |
24 | ); | |
25 | $self->tidyall( | |
26 | source => $source, | |
27 | conf => { argv => '-m 1 --badoption' }, | |
28 | expect_error => qr/Usage/ | |
29 | ); | |
30 | } | |
31 | ||
32 | 1; |
0 | package Code::TidyAll::t::Plugin::PHPCodeSniffer; | |
1 | $Code::TidyAll::t::Plugin::PHPCodeSniffer::VERSION = '0.20'; | |
2 | use Test::Class::Most parent => 'Code::TidyAll::t::Plugin'; | |
3 | ||
4 | sub test_filename { 'foo.php' } | |
5 | ||
6 | sub test_main : Tests { | |
7 | my $self = shift; | |
8 | my $cmd = '/usr/local/pear/bin/phpcs'; | |
9 | my $source = '<?php function foo() { $bar = 5 } ?>'; | |
10 | ||
11 | $self->tidyall( | |
12 | source => $source, | |
13 | conf => { cmd => $cmd, argv => "--severity=6" }, | |
14 | expect_ok => 1, | |
15 | ); | |
16 | $self->tidyall( | |
17 | source => $source, | |
18 | conf => { cmd => $cmd, argv => "--severity=3" }, | |
19 | expect_error => qr/Missing .* doc/, | |
20 | ); | |
21 | $self->tidyall( | |
22 | source => $source, | |
23 | conf => { cmd => $cmd, argv => "--blahblah" }, | |
24 | expect_error => qr/not known/, | |
25 | ); | |
26 | } | |
27 | ||
28 | 1; |
0 | package Code::TidyAll::t::Plugin::PerlCritic; | |
1 | $Code::TidyAll::t::Plugin::PerlCritic::VERSION = '0.20'; | |
2 | use Code::TidyAll::Util qw(write_file); | |
3 | use Test::Class::Most parent => 'Code::TidyAll::t::Plugin'; | |
4 | ||
5 | sub test_main : Tests { | |
6 | my $self = shift; | |
7 | ||
8 | my $rc_file = $self->{root_dir} . "/perlcriticrc"; | |
9 | ||
10 | write_file( $rc_file, "only = 1\nseverity = 1\n[TestingAndDebugging::RequireUseStrict]\n" ); | |
11 | $self->tidyall( | |
12 | source => 'my $foo = 5\n', | |
13 | conf => { argv => "--profile $rc_file" }, | |
14 | expect_error => qr/Code before strictures/, | |
15 | ); | |
16 | $self->tidyall( | |
17 | source => 'use strict;\nuse warnings;\nmy $foo = 5\n', | |
18 | conf => { argv => "--profile $rc_file" }, | |
19 | expect_ok => 1, | |
20 | ); | |
21 | write_file( $rc_file, "only = 1\nseverity = 1\n[CodeLayout::ProhibitHardTabs]\n" ); | |
22 | $self->tidyall( | |
23 | source => 'my $foo = 5\n', | |
24 | conf => { argv => "--profile $rc_file" }, | |
25 | expect_ok => 1, | |
26 | ); | |
27 | $self->tidyall( | |
28 | source => 'my $foo = 5\n', | |
29 | conf => { argv => "--profile $rc_file --badoption" }, | |
30 | expect_error => qr/Unknown option: badoption/ | |
31 | ); | |
32 | write_file( $rc_file, "badconfig = 1\n" ); | |
33 | $self->tidyall( | |
34 | source => 'my $foo = 5\n', | |
35 | conf => { argv => "--profile $rc_file" }, | |
36 | expect_error => qr/"badconfig" is not a supported option/ | |
37 | ); | |
38 | } | |
39 | ||
40 | 1; |
0 | package Code::TidyAll::t::Plugin::PerlTidy; | |
1 | $Code::TidyAll::t::Plugin::PerlTidy::VERSION = '0.20'; | |
2 | use Test::Class::Most parent => 'Code::TidyAll::t::Plugin'; | |
3 | ||
4 | sub test_main : Tests { | |
5 | my $self = shift; | |
6 | ||
7 | my $source = 'if ( $foo) {\nmy $bar = $baz;\n}\n'; | |
8 | $self->tidyall( | |
9 | source => $source, | |
10 | expect_tidy => 'if ($foo) {\n my $bar = $baz;\n}\n' | |
11 | ); | |
12 | $self->tidyall( | |
13 | conf => { argv => '-bl' }, | |
14 | source => $source, | |
15 | expect_tidy => 'if ($foo)\n{\n my $bar = $baz;\n}\n' | |
16 | ); | |
17 | $self->tidyall( | |
18 | source => 'if ($foo) {\n my $bar = $baz;\n}\n', | |
19 | expect_ok => 1 | |
20 | ); | |
21 | $self->tidyall( | |
22 | source => 'if ($foo) {\n my $bar = $baz;\n', | |
23 | expect_error => qr/Final nesting depth/ | |
24 | ); | |
25 | $self->tidyall( | |
26 | conf => { argv => '--badoption' }, | |
27 | source => $source, | |
28 | expect_error => qr/Unknown option: badoption/ | |
29 | ); | |
30 | } | |
31 | ||
32 | 1; |
0 | package Code::TidyAll::t::Plugin::PodChecker; | |
1 | $Code::TidyAll::t::Plugin::PodChecker::VERSION = '0.20'; | |
2 | use Test::Class::Most parent => 'Code::TidyAll::t::Plugin'; | |
3 | ||
4 | sub test_main : Tests { | |
5 | my $self = shift; | |
6 | ||
7 | $self->tidyall( | |
8 | source => '=head1 DESCRIPTION\n\nHello', | |
9 | expect_ok => 1, | |
10 | desc => 'ok', | |
11 | ); | |
12 | $self->tidyall( | |
13 | source => '=head1 METHODS\n\n=over', | |
14 | expect_error => qr/without closing =back/, | |
15 | desc => 'error', | |
16 | ); | |
17 | $self->tidyall( | |
18 | source => '=head1 DESCRIPTION\n\n=head1 METHODS\n\n', | |
19 | expect_ok => 1, | |
20 | desc => 'ok - empty section, no warnings', | |
21 | ); | |
22 | $self->tidyall( | |
23 | source => '=head1 DESCRIPTION\n\n=head1 METHODS\n\n', | |
24 | conf => { warnings => 1 }, | |
25 | expect_error => qr/empty section in previous paragraph/, | |
26 | desc => 'error - empty section, warnings=1', | |
27 | ); | |
28 | $self->tidyall( | |
29 | source => '=head1 DESCRIPTION\n\nblah blah\n\n=head1 DESCRIPTION\n\nblah blah', | |
30 | conf => { warnings => 1 }, | |
31 | expect_ok => 1, | |
32 | desc => 'ok - duplicate section, warnings=1', | |
33 | ); | |
34 | $self->tidyall( | |
35 | source => '=head1 DESCRIPTION\n\nblah blah\n\n=head1 DESCRIPTION\n\nblah blah', | |
36 | conf => { warnings => 2 }, | |
37 | expect_error => qr/multiple occurrence/, | |
38 | desc => 'error - duplicate section, warnings=2', | |
39 | ); | |
40 | } | |
41 | ||
42 | 1; | |
43 | ||
44 | __END__ | |
45 | ||
46 | =pod | |
47 | ||
48 | =head1 VERSION | |
49 | ||
50 | version 0.20 | |
51 | ||
52 | =head1 SEE ALSO | |
53 | ||
54 | L<Code::TidyAll|Code::TidyAll> | |
55 | ||
56 | =head1 AUTHOR | |
57 | ||
58 | Jonathan Swartz <swartz@pobox.com> | |
59 | ||
60 | =head1 COPYRIGHT AND LICENSE | |
61 | ||
62 | This software is copyright (c) 2011 by Jonathan Swartz. | |
63 | ||
64 | This is free software; you can redistribute it and/or modify it under | |
65 | the same terms as the Perl 5 programming language system itself. | |
66 | ||
67 | =cut |
0 | package Code::TidyAll::t::Plugin::PodSpell; | |
1 | $Code::TidyAll::t::Plugin::PodSpell::VERSION = '0.20'; | |
2 | use Code::TidyAll::Util qw(write_file); | |
3 | use Test::Class::Most parent => 'Code::TidyAll::t::Plugin'; | |
4 | ||
5 | sub test_filename { 'Foo.pod' } | |
6 | ||
7 | sub test_main : Tests { | |
8 | my $self = shift; | |
9 | ||
10 | my $dict_file = $self->{root_dir} . "/.ispell_english"; | |
11 | ||
12 | $self->tidyall( | |
13 | source => '=head SUMMARY\n\nthe quick brown fox jumped over the lazy dogs', | |
14 | expect_ok => 1, | |
15 | desc => 'ok', | |
16 | ); | |
17 | $self->tidyall( | |
18 | source => '=head SUMMARY\n\nthe quick browwn fox jumped over the lazeey dogs', | |
19 | expect_error => qr/unrecognized words:\nbrowwn\nlazeey/, | |
20 | desc => 'spelling mistakes', | |
21 | ); | |
22 | write_file( $dict_file, "browwn\n" ); | |
23 | $self->tidyall( | |
24 | source => '=head SUMMARY\n\nthe quick browwn fox jumped over the lazeey dogs', | |
25 | conf => { ispell_argv => "-p $dict_file" }, | |
26 | expect_error => qr/unrecognized words:\nlazeey/, | |
27 | desc => 'spelling mistakes, one in dictionary', | |
28 | ); | |
29 | write_file( $dict_file, "browwn\nlazeey\n" ); | |
30 | $self->tidyall( | |
31 | source => '=head SUMMARY\n\nthe quick browwn fox jumped over the lazeey dogs', | |
32 | conf => { ispell_argv => "-p $dict_file" }, | |
33 | expect_ok => 1, | |
34 | desc => 'spelling mistakes, all in dictionary', | |
35 | ); | |
36 | } | |
37 | ||
38 | 1; |
0 | package Code::TidyAll::t::Plugin::PodTidy; | |
1 | $Code::TidyAll::t::Plugin::PodTidy::VERSION = '0.20'; | |
2 | use Test::Class::Most parent => 'Code::TidyAll::t::Plugin'; | |
3 | ||
4 | sub test_main : Tests { | |
5 | my $self = shift; | |
6 | ||
7 | my $source = '=head1 DESCRIPTION | |
8 | ||
9 | There are a lot of great code tidiers and validators out there. C<tidyall> makes them available from a single unified interface. | |
10 | ||
11 | You can run C<tidyall> on a single file or on an entire project hierarchy, and configure which tidiers/validators are applied to which files. C<tidyall> will back up files beforehand, and for efficiency will only consider files that have changed since they were last processed. | |
12 | ||
13 | '; | |
14 | $self->tidyall( | |
15 | source => $source, | |
16 | expect_tidy => '=head1 DESCRIPTION | |
17 | ||
18 | There are a lot of great code tidiers and validators out there. C<tidyall> | |
19 | makes them available from a single unified interface. | |
20 | ||
21 | You can run C<tidyall> on a single file or on an entire project hierarchy, and | |
22 | configure which tidiers/validators are applied to which files. C<tidyall> will | |
23 | back up files beforehand, and for efficiency will only consider files that have | |
24 | changed since they were last processed. | |
25 | ||
26 | ', | |
27 | desc => 'tidy - defaults', | |
28 | ); | |
29 | ||
30 | $self->tidyall( | |
31 | source => '=head1 DESCRIPTION | |
32 | ||
33 | There are a lot of great code tidiers and validators out there. C<tidyall> | |
34 | makes them available from a single unified interface. | |
35 | ||
36 | You can run C<tidyall> on a single file or on an entire project hierarchy, and | |
37 | configure which tidiers/validators are applied to which files. C<tidyall> will | |
38 | back up files beforehand, and for efficiency will only consider files that have | |
39 | changed since they were last processed. | |
40 | ||
41 | ', | |
42 | expect_ok => 1, | |
43 | desc => 'ok - defaults', | |
44 | ); | |
45 | ||
46 | $self->tidyall( | |
47 | source => $source, | |
48 | conf => { columns => 30 }, | |
49 | expect_tidy => '=head1 DESCRIPTION | |
50 | ||
51 | There are a lot of great code | |
52 | tidiers and validators out | |
53 | there. C<tidyall> makes them | |
54 | available from a single | |
55 | unified interface. | |
56 | ||
57 | You can run C<tidyall> on a | |
58 | single file or on an entire | |
59 | project hierarchy, and | |
60 | configure which | |
61 | tidiers/validators are | |
62 | applied to which files. | |
63 | C<tidyall> will back up files | |
64 | beforehand, and for | |
65 | efficiency will only consider | |
66 | files that have changed since | |
67 | they were last processed. | |
68 | ||
69 | ', | |
70 | desc => 'tidy - columns = 30', | |
71 | ); | |
72 | } | |
73 | ||
74 | 1; | |
75 | ||
76 | __END__ | |
77 | ||
78 | =pod | |
79 | ||
80 | =head1 VERSION | |
81 | ||
82 | version 0.20 | |
83 | ||
84 | =head1 SEE ALSO | |
85 | ||
86 | L<Code::TidyAll|Code::TidyAll> | |
87 | ||
88 | =head1 AUTHOR | |
89 | ||
90 | Jonathan Swartz <swartz@pobox.com> | |
91 | ||
92 | =head1 COPYRIGHT AND LICENSE | |
93 | ||
94 | This software is copyright (c) 2011 by Jonathan Swartz. | |
95 | ||
96 | This is free software; you can redistribute it and/or modify it under | |
97 | the same terms as the Perl 5 programming language system itself. | |
98 | ||
99 | =cut |
0 | package Code::TidyAll::t::Plugin::SortLines; | |
1 | $Code::TidyAll::t::Plugin::SortLines::VERSION = '0.20'; | |
2 | use Test::Class::Most parent => 'Code::TidyAll::t::Plugin'; | |
3 | ||
4 | sub test_main : Tests { | |
5 | my $self = shift; | |
6 | ||
7 | $self->tidyall( source => "c\nb\na\n", expect_tidy => "a\nb\nc\n" ); | |
8 | $self->tidyall( source => "\n\na\n\n\n", expect_tidy => "a\n" ); | |
9 | } | |
10 | ||
11 | 1; |
0 | package Code::TidyAll::t::Plugin; | |
1 | $Code::TidyAll::t::Plugin::VERSION = '0.20'; | |
2 | use Capture::Tiny qw(capture); | |
3 | use Code::TidyAll::Util qw(tempdir_simple); | |
4 | use Code::TidyAll; | |
5 | use Test::Class::Most parent => 'Code::TidyAll::Test::Class'; | |
6 | ||
7 | __PACKAGE__->SKIP_CLASS("Virtual base class"); | |
8 | ||
9 | my $Test = Test::Builder->new; | |
10 | ||
11 | sub startup : Tests(startup => no_plan) { | |
12 | my $self = shift; | |
13 | $self->{root_dir} = tempdir_simple(); | |
14 | } | |
15 | ||
16 | sub plugin_class { | |
17 | my ($self) = @_; | |
18 | ||
19 | return ( split( '::', ref($self) ) )[-1]; | |
20 | } | |
21 | ||
22 | sub test_filename { 'foo.txt' } | |
23 | ||
24 | sub tidyall { | |
25 | my ( $self, %p ) = @_; | |
26 | ||
27 | my $source = $p{source} || die "source required"; | |
28 | my $desc = $p{desc} || $source; | |
29 | $desc =~ s/\n/\\n/g; | |
30 | my $plugin_class = $self->plugin_class; | |
31 | my %plugin_conf = ( $plugin_class => { select => '*', %{ $p{conf} || {} } } ); | |
32 | my $ct = | |
33 | Code::TidyAll->new( quiet => 1, root_dir => $self->{root_dir}, plugins => \%plugin_conf ); | |
34 | ||
35 | $source =~ s/\\n/\n/g; | |
36 | my $result; | |
37 | my ( $output, $error ) = | |
38 | capture { $result = $ct->process_source( $source, $self->test_filename ) }; | |
39 | $Test->diag($output) if $output && $ENV{TEST_VERBOSE}; | |
40 | $Test->diag($error) if $error && $ENV{TEST_VERBOSE}; | |
41 | ||
42 | if ( my $expect_tidy = $p{expect_tidy} ) { | |
43 | $expect_tidy =~ s/\\n/\n/g; | |
44 | is( $result->state, 'tidied', "state=tidied [$desc]" ); | |
45 | is( $result->new_contents, $expect_tidy, "new contents [$desc]" ); | |
46 | is( $result->error, undef, "no error [$desc]" ); | |
47 | } | |
48 | elsif ( my $expect_ok = $p{expect_ok} ) { | |
49 | is( $result->state, 'checked', "state=checked [$desc]" ); | |
50 | is( $result->error, undef, "no error [$desc]" ); | |
51 | if ( $result->new_contents ) { | |
52 | is( $result->new_contents, $source, "same contents [$desc]" ); | |
53 | } | |
54 | } | |
55 | elsif ( my $expect_error = $p{expect_error} ) { | |
56 | is( $result->state, 'error', "state=error [$desc]" ); | |
57 | like( $result->error || '', $expect_error, "error message [$desc]" ); | |
58 | } | |
59 | } | |
60 | ||
61 | 1; |
0 | package Code::TidyAll::t::SVN; | |
1 | $Code::TidyAll::t::SVN::VERSION = '0.20'; | |
2 | use Capture::Tiny qw(capture_stdout capture_stderr capture); | |
3 | use Code::TidyAll::SVN::Precommit; | |
4 | use Code::TidyAll::SVN::Util qw(svn_uncommitted_files); | |
5 | use Code::TidyAll::Util qw(dirname mkpath read_file realpath tempdir_simple write_file); | |
6 | use Code::TidyAll; | |
7 | use IPC::System::Simple qw(run); | |
8 | use Test::Class::Most parent => 'Code::TidyAll::Test::Class'; | |
9 | ||
10 | my ( $precommit_hook_template, $tidyall_ini_template ); | |
11 | ||
12 | sub test_svn : Tests { | |
13 | my ($self) = @_; | |
14 | ||
15 | my $temp_dir = tempdir_simple; | |
16 | my $repo_dir = "$temp_dir/repo"; | |
17 | my $src_dir = "$temp_dir/src"; | |
18 | my $work_dir = "$temp_dir/work"; | |
19 | my $hook_log = "$temp_dir/hook.log"; | |
20 | my ( $stdout, $stderr ); | |
21 | ||
22 | my $log_contains = sub { | |
23 | my $regex = shift; | |
24 | like( read_file($hook_log), $regex ); | |
25 | }; | |
26 | ||
27 | my $clear_log = sub { | |
28 | run("cat /dev/null > $hook_log"); | |
29 | }; | |
30 | ||
31 | my $committed = sub { | |
32 | $stdout = capture_stdout { system( sprintf( 'svn status %s', $work_dir ) ) }; | |
33 | unlike( $stdout, qr/\S/, "committed" ); | |
34 | }; | |
35 | ||
36 | my $uncommitted = sub { | |
37 | $stdout = capture_stdout { system( sprintf( 'svn status %s', $work_dir ) ) }; | |
38 | like( $stdout, qr/^M/, "uncommitted" ); | |
39 | }; | |
40 | ||
41 | run("svnadmin create $repo_dir"); | |
42 | my $hooks_dir = "$repo_dir/hooks"; | |
43 | ok( -d $hooks_dir, "$hooks_dir exists" ); | |
44 | ||
45 | mkpath( $src_dir, 0, 0775 ); | |
46 | write_file( "$src_dir/foo.txt", "abc" ); | |
47 | ||
48 | run( sprintf( 'svn -q import %s file://%s/myapp/trunk -m "import"', $src_dir, $repo_dir ) ); | |
49 | run( sprintf( 'svn -q checkout file://%s/myapp/trunk %s', $repo_dir, $work_dir ) ); | |
50 | ||
51 | is( read_file("$work_dir/foo.txt"), "abc", "checkout and import ok" ); | |
52 | cmp_deeply( [ svn_uncommitted_files($work_dir) ], [], "no uncommitted files" ); | |
53 | ||
54 | my $precommit_hook_file = "$hooks_dir/pre-commit"; | |
55 | my $precommit_hook = sprintf( $precommit_hook_template, realpath("lib"), $hook_log ); | |
56 | write_file( $precommit_hook_file, $precommit_hook ); | |
57 | chmod( 0775, $precommit_hook_file ); | |
58 | ||
59 | write_file( "$work_dir/foo.txt", "abc " ); | |
60 | mkpath( "$work_dir/bar", 0, 0775 ); | |
61 | run( sprintf( 'svn add %s/bar', $work_dir ) ); | |
62 | cmp_deeply( [ svn_uncommitted_files($work_dir) ], [ re("foo.txt") ], "one uncommitted file" ); | |
63 | ||
64 | $stderr = capture_stderr { | |
65 | run( sprintf( 'svn -q commit -m "changed" %s/foo.txt %s/bar', $work_dir, $work_dir ) ); | |
66 | }; | |
67 | unlike( $stderr, qr/\S/ ); | |
68 | $log_contains->(qr|could not find.*upwards from 'myapp/trunk/foo.txt'|); | |
69 | $clear_log->(); | |
70 | $committed->(); | |
71 | cmp_deeply( [ svn_uncommitted_files($work_dir) ], [], "no uncommitted files" ); | |
72 | ||
73 | write_file( "$work_dir/tidyall.ini", sprintf($tidyall_ini_template) ); | |
74 | run( sprintf( 'svn -q add %s/tidyall.ini', $work_dir ) ); | |
75 | cmp_deeply( | |
76 | [ svn_uncommitted_files($work_dir) ], | |
77 | [ re("tidyall.ini") ], | |
78 | "one uncommitted file" | |
79 | ); | |
80 | run( sprintf( 'svn -q commit -m "added" %s/tidyall.ini', $work_dir ) ); | |
81 | ||
82 | write_file( "$work_dir/foo.txt", "abc" ); | |
83 | $stderr = | |
84 | capture_stderr { system( sprintf( 'svn -q commit -m "changed" %s/foo.txt', $work_dir ) ) }; | |
85 | like( $stderr, qr/1 file did not pass tidyall check/ ); | |
86 | like( $stderr, qr/needs tidying/ ); | |
87 | $uncommitted->(); | |
88 | ||
89 | write_file( "$work_dir/foo.txt", "ABC" ); | |
90 | write_file( "$work_dir/bar.dat", "123" ); | |
91 | run( sprintf( 'svn -q add %s/bar.dat', $work_dir ) ); | |
92 | $stderr = capture_stderr { | |
93 | system( | |
94 | sprintf( 'svn -q commit -m "changed" %s/foo.txt %s/bar.dat', $work_dir, $work_dir ) ); | |
95 | }; | |
96 | unlike( $stderr, qr/\S/ ); | |
97 | $committed->(); | |
98 | ||
99 | write_file( "$work_dir/foo.txt", "def" ); | |
100 | $stderr = capture_stderr { | |
101 | system( sprintf( 'svn -q commit -m "NO TIDYALL - emergency fix!" %s/foo.txt', $work_dir ) ); | |
102 | }; | |
103 | unlike( $stderr, qr/\S/ ); | |
104 | $committed->(); | |
105 | } | |
106 | ||
107 | $precommit_hook_template = '#!/usr/bin/perl | |
108 | use lib qw(%s); | |
109 | use Code::TidyAll::SVN::Precommit; | |
110 | use Log::Any::Adapter (File => "%s"); | |
111 | use strict; | |
112 | use warnings; | |
113 | ||
114 | Code::TidyAll::SVN::Precommit->check( | |
115 | extra_conf_files => ["perlcriticrc"], | |
116 | tidyall_options => { verbose => 1 } | |
117 | ); | |
118 | '; | |
119 | ||
120 | $tidyall_ini_template = ' | |
121 | [+Code::TidyAll::Test::Plugin::UpperText] | |
122 | select = **/*.txt | |
123 | '; |
0 | package Code::TidyAll::t::Util; | |
1 | $Code::TidyAll::t::Util::VERSION = '0.20'; | |
2 | use Code::TidyAll::Util qw(dirname tempdir_simple); | |
3 | use IPC::System::Simple qw(capturex); | |
4 | use Test::Class::Most parent => 'Code::TidyAll::Test::Class'; | |
5 | ||
6 | sub test_tempdir_simple : Tests { | |
7 | my $dir = capturex( | |
8 | "$^X", "-I", | |
9 | "lib", "-MCode::TidyAll::Util", | |
10 | "-e", "print Code::TidyAll::Util::tempdir_simple " | |
11 | ); | |
12 | ok( -d dirname($dir), "parent exists" ); | |
13 | ok( !-d $dir, "dir does not exist" ); | |
14 | } | |
15 | ||
16 | 1; |
0 | package Code::TidyAll::t::Zglob; | |
1 | $Code::TidyAll::t::Zglob::VERSION = '0.20'; | |
2 | use File::Zglob; | |
3 | use Test::Class::Most parent => 'Code::TidyAll::Test::Class'; | |
4 | use Code::TidyAll::Util::Zglob qw(zglob_to_regex); | |
5 | ||
6 | sub test_match : Tests { | |
7 | my ( $zglob, $regex ); | |
8 | ||
9 | $zglob = "**/*.txt"; | |
10 | $regex = zglob_to_regex($zglob); | |
11 | foreach my $path (qw(foo.txt foo/baz.txt foo/bar/baz.txt)) { | |
12 | like( $path, $regex, "$path matches $zglob" ); | |
13 | } | |
14 | foreach my $path (qw(foo/bar/baz.tx)) { | |
15 | unlike( $path, $regex, "$path does not match $zglob" ); | |
16 | } | |
17 | ||
18 | $zglob = "**/*"; | |
19 | $regex = zglob_to_regex($zglob); | |
20 | foreach my $path (qw(foo foo.txt foo/bar foo/baz.txt)) { | |
21 | like( $path, $regex, "$path matches $zglob" ); | |
22 | } | |
23 | ||
24 | $zglob = "foo/**/*.txt"; | |
25 | $regex = zglob_to_regex($zglob); | |
26 | foreach my $path (qw(foo/baz.txt foo/bar/baz.txt foo/bar/baz/blargh.txt)) { | |
27 | like( $path, $regex, "$path matches $zglob" ); | |
28 | } | |
29 | foreach my $path (qw(foo.txt foo/bar/baz.tx)) { | |
30 | unlike( $path, $regex, "$path does not match $zglob" ); | |
31 | } | |
32 | } | |
33 | ||
34 | 1; |
0 | 0 | package Code::TidyAll; |
1 | $Code::TidyAll::VERSION = '0.20'; | |
1 | ||
2 | 2 | use Cwd qw(realpath); |
3 | 3 | use Code::TidyAll::Config::INI::Reader; |
4 | 4 | use Code::TidyAll::Cache; |
5 | use Code::TidyAll::CacheModel; | |
5 | 6 | use Code::TidyAll::Util |
6 | qw(abs2rel basename can_load dirname dump_one_line mkpath read_dir read_file rel2abs tempdir_simple uniq write_file); | |
7 | qw(abs2rel basename can_load dirname dump_one_line mkpath read_dir rel2abs tempdir_simple uniq); | |
7 | 8 | use Code::TidyAll::Result; |
8 | 9 | use Date::Format; |
9 | use Digest::SHA1 qw(sha1_hex); | |
10 | use Digest::SHA qw(sha1_hex); | |
10 | 11 | use File::Find qw(find); |
12 | use File::Slurp::Tiny qw(read_file write_file); | |
11 | 13 | use File::Zglob; |
12 | 14 | use List::MoreUtils qw(uniq); |
13 | 15 | use Moo; |
16 | 18 | use strict; |
17 | 19 | use warnings; |
18 | 20 | |
21 | our $VERSION = '0.32'; | |
22 | ||
19 | 23 | sub default_conf_names { ( 'tidyall.ini', '.tidyallrc' ) } |
20 | 24 | |
21 | 25 | # External |
22 | has 'backup_ttl' => ( is => 'ro', default => sub { '1 hour' } ); | |
23 | has 'check_only' => ( is => 'ro' ); | |
24 | has 'data_dir' => ( is => 'lazy' ); | |
25 | has 'iterations' => ( is => 'ro', default => sub { 1 } ); | |
26 | has 'list_only' => ( is => 'ro' ); | |
27 | has 'mode' => ( is => 'ro', default => sub { 'cli' } ); | |
28 | has 'no_backups' => ( is => 'ro' ); | |
29 | has 'no_cache' => ( is => 'ro' ); | |
30 | has 'output_suffix' => ( is => 'ro', default => sub { '' } ); | |
31 | has 'plugins' => ( is => 'ro', required => 1 ); | |
32 | has 'quiet' => ( is => 'ro' ); | |
33 | has 'recursive' => ( is => 'ro' ); | |
34 | has 'refresh_cache' => ( is => 'ro' ); | |
35 | has 'root_dir' => ( is => 'ro', required => 1 ); | |
36 | has 'verbose' => ( is => 'ro' ); | |
26 | has 'backup_ttl' => ( is => 'ro', default => '1 hour' ); | |
27 | has 'cache' => ( is => 'lazy' ); | |
28 | has 'cache_model_class' => ( is => 'ro', default => 'Code::TidyAll::CacheModel' ); | |
29 | has 'check_only' => ( is => 'ro' ); | |
30 | has 'data_dir' => ( is => 'lazy' ); | |
31 | has 'iterations' => ( is => 'ro', default => 1 ); | |
32 | has 'list_only' => ( is => 'ro' ); | |
33 | has 'mode' => ( is => 'ro', default => 'cli' ); | |
34 | has 'msg_outputter' => ( is => 'ro', builder => '_build_msg_outputter' ); | |
35 | has 'no_backups' => ( is => 'ro' ); | |
36 | has 'no_cache' => ( is => 'ro' ); | |
37 | has 'output_suffix' => ( is => 'ro', default => q{} ); | |
38 | has 'plugins' => ( is => 'ro', required => 1 ); | |
39 | has 'quiet' => ( is => 'ro' ); | |
40 | has 'recursive' => ( is => 'ro' ); | |
41 | has 'refresh_cache' => ( is => 'ro' ); | |
42 | has 'root_dir' => ( is => 'ro', required => 1 ); | |
43 | has 'verbose' => ( is => 'ro' ); | |
37 | 44 | |
38 | 45 | # Internal |
39 | 46 | has 'backup_dir' => ( is => 'lazy', init_arg => undef, trigger => 1 ); |
40 | 47 | has 'backup_ttl_secs' => ( is => 'lazy', init_arg => undef ); |
41 | 48 | has 'base_sig' => ( is => 'lazy', init_arg => undef ); |
42 | has 'cache' => ( is => 'lazy', init_arg => undef ); | |
43 | 49 | has 'plugin_objects' => ( is => 'lazy', init_arg => undef ); |
44 | 50 | has 'plugins_for_mode' => ( is => 'lazy', init_arg => undef ); |
51 | ||
52 | with 'Code::TidyAll::Role::Tempdir'; | |
45 | 53 | |
46 | 54 | sub _build_backup_dir { |
47 | 55 | my $self = shift; |
83 | 91 | |
84 | 92 | sub _build_plugin_objects { |
85 | 93 | my $self = shift; |
86 | my @plugin_objects = | |
87 | map { $self->_load_plugin( $_, $self->plugins->{$_} ) } keys( %{ $self->plugins_for_mode } ); | |
88 | ||
89 | # Sort tidiers before validators, then alphabetical | |
90 | # | |
91 | return [ sort { ( $a->is_validator <=> $b->is_validator ) || ( $a->name cmp $b->name ) } | |
92 | @plugin_objects ]; | |
94 | my @plugin_objects = map { $self->_load_plugin( $_, $self->plugins->{$_} ) } | |
95 | keys( %{ $self->plugins_for_mode } ); | |
96 | ||
97 | # Sort tidiers by weight (by default validators have a weight of 60 and non- | |
98 | # validators a weight of 50 meaning non-validators normally go first), then | |
99 | # alphabetical | |
100 | # TODO: These should probably sort in a consistent way independent of locale | |
101 | return [ sort { ( $a->weight <=> $b->weight ) || ( $a->name cmp $b->name ) } @plugin_objects ]; | |
93 | 102 | } |
94 | 103 | |
95 | 104 | sub BUILD { |
101 | 110 | die sprintf( |
102 | 111 | "unknown constructor param%s %s for %s", |
103 | 112 | @bad_params > 1 ? "s" : "", |
104 | join( ", ", sort map { "'$_'" } @bad_params ), | |
113 | join( ", ", sort map {"'$_'"} @bad_params ), | |
105 | 114 | ref($self) |
106 | 115 | ); |
107 | 116 | } |
134 | 143 | $class = $tidyall_class; |
135 | 144 | } |
136 | 145 | |
137 | $class->msg( "constructing %s with these params: %s", $class, dump_one_line( \%params ) ) | |
138 | if ( $params{verbose} ); | |
146 | if ( $params{verbose} ) { | |
147 | my $msg_outputter = $params{msg_outputter} || $class->_build_msg_outputter(); | |
148 | $msg_outputter->( | |
149 | "constructing %s with these params: %s", $class, | |
150 | dump_one_line( \%params ) | |
151 | ); | |
152 | } | |
139 | 153 | |
140 | 154 | return $class->new(%params); |
141 | 155 | } |
196 | 210 | |
197 | 211 | if ( -d $path ) { |
198 | 212 | if ( $self->recursive ) { |
199 | return $self->process_paths( map { "$path/$_" } read_dir($path) ); | |
213 | return $self->process_paths( map {"$path/$_"} read_dir($path) ); | |
200 | 214 | } |
201 | 215 | else { |
202 | 216 | return ( $self->_error_result( "$path: is a directory (try -r/--recursive)", $path ) ); |
211 | 225 | } |
212 | 226 | |
213 | 227 | sub process_file { |
214 | my ( $self, $file ) = @_; | |
215 | die "$file is not a file" unless -f $file; | |
216 | ||
217 | my $path = $self->_small_path($file); | |
228 | my ( $self, $full_path ) = @_; | |
229 | die "$full_path is not a file" unless -f $full_path; | |
230 | ||
231 | my $path = $self->_small_path($full_path); | |
218 | 232 | |
219 | 233 | if ( $self->list_only ) { |
220 | 234 | if ( my @plugins = $self->plugins_for_path($path) ) { |
223 | 237 | return Code::TidyAll::Result->new( path => $path, state => 'checked' ); |
224 | 238 | } |
225 | 239 | |
226 | my $cache = $self->no_cache ? undef : $self->cache; | |
227 | my $cache_key = "sig/$path"; | |
228 | my $contents = my $orig_contents = read_file($file); | |
229 | if ( $cache && ( my $sig = $cache->get($cache_key) ) ) { | |
230 | if ( $self->refresh_cache ) { | |
231 | $cache->remove($cache_key); | |
232 | } | |
233 | elsif ( $sig eq $self->_file_sig( $file, $orig_contents ) ) { | |
234 | $self->msg( "[cached] %s", $path ) if $self->verbose; | |
235 | return Code::TidyAll::Result->new( path => $path, state => 'cached' ); | |
236 | } | |
237 | } | |
238 | ||
239 | my $result = $self->process_source( $orig_contents, $path ); | |
240 | my $cache_model = $self->_cache_model_for( $path, $full_path ); | |
241 | if ( $self->refresh_cache ) { | |
242 | $cache_model->remove; | |
243 | } | |
244 | elsif ( $cache_model->is_cached ) { | |
245 | $self->msg( "[cached] %s", $path ) if $self->verbose; | |
246 | return Code::TidyAll::Result->new( path => $path, state => 'cached' ); | |
247 | } | |
248 | ||
249 | my $contents = $cache_model->file_contents || read_file($full_path); | |
250 | my $result = $self->process_source( $contents, $path ); | |
240 | 251 | |
241 | 252 | if ( $result->state eq 'tidied' ) { |
253 | ||
254 | # backup original contents | |
242 | 255 | $self->_backup_file( $path, $contents ); |
256 | ||
257 | # write new contents out to disk | |
243 | 258 | $contents = $result->new_contents; |
244 | write_file( join( '', $file, $self->output_suffix ), $contents ); | |
245 | } | |
246 | $cache->set( $cache_key, $self->_file_sig( $file, $contents ) ) if $cache && $result->ok; | |
247 | ||
259 | write_file( join( '', $full_path, $self->output_suffix ), $contents ); | |
260 | ||
261 | # change the in memory contents of the cache (but don't update yet) | |
262 | $cache_model->file_contents($contents) unless $self->output_suffix; | |
263 | } | |
264 | ||
265 | $cache_model->update if $result->ok; | |
248 | 266 | return $result; |
267 | } | |
268 | ||
269 | sub _cache_model_for { | |
270 | my ( $self, $path, $full_path ) = @_; | |
271 | return $self->cache_model_class->new( | |
272 | path => $path, | |
273 | full_path => $full_path, | |
274 | cache_engine => $self->no_cache ? undef : $self->cache, | |
275 | base_sig => $self->base_sig, | |
276 | ); | |
249 | 277 | } |
250 | 278 | |
251 | 279 | sub process_source { |
254 | 282 | die "contents and path required" unless defined($contents) && defined($path); |
255 | 283 | my @plugins = $self->plugins_for_path($path); |
256 | 284 | if ( !@plugins ) { |
257 | $self->msg( "[no plugins apply%s] %s", | |
258 | $self->mode ? " for mode '" . $self->mode . "'" : "", $path ) | |
259 | if $self->verbose; | |
285 | $self->msg( | |
286 | "[no plugins apply%s] %s", | |
287 | $self->mode ? " for mode '" . $self->mode . "'" : "", $path | |
288 | ) if $self->verbose; | |
260 | 289 | return Code::TidyAll::Result->new( path => $path, state => 'no_match' ); |
261 | 290 | } |
262 | 291 | |
265 | 294 | |
266 | 295 | my $new_contents = my $orig_contents = $contents; |
267 | 296 | my $plugin; |
297 | ||
298 | if ( $self->verbose ) { | |
299 | $self->msg("[applying the following plugins: @plugins]"); | |
300 | } | |
268 | 301 | |
269 | 302 | try { |
270 | 303 | foreach my $method (qw(preprocess_source process_source_or_file postprocess_source)) { |
282 | 315 | my $was_tidied = !$error && ( $new_contents ne $orig_contents ); |
283 | 316 | if ( $was_tidied && $self->check_only ) { |
284 | 317 | $error = "*** needs tidying"; |
318 | my $diff = q{}; | |
319 | foreach $plugin (@plugins) { | |
320 | $diff = $plugin->diff( $diff, $orig_contents, $new_contents, $path ); | |
321 | } | |
322 | $error .= "\n\n" . $diff if length $diff; | |
285 | 323 | undef $was_tidied; |
286 | 324 | } |
287 | 325 | |
288 | 326 | if ( !$self->quiet || $error ) { |
289 | 327 | my $status = $was_tidied ? "[tidied] " : "[checked] "; |
290 | my $plugin_names = | |
291 | $self->verbose ? sprintf( " (%s)", join( ", ", map { $_->name } @plugins ) ) : ""; | |
328 | my $plugin_names | |
329 | = $self->verbose ? sprintf( " (%s)", join( ", ", map { $_->name } @plugins ) ) : ""; | |
292 | 330 | $self->msg( "%s%s%s", $status, $path, $plugin_names ); |
293 | 331 | } |
294 | 332 | |
295 | 333 | if ($error) { |
296 | return $self->_error_result( $error, $path ); | |
334 | return $self->_error_result( $error, $path, $orig_contents, $new_contents ); | |
297 | 335 | } |
298 | 336 | elsif ($was_tidied) { |
299 | 337 | return Code::TidyAll::Result->new( |
300 | path => $path, | |
301 | state => 'tidied', | |
302 | new_contents => $new_contents | |
338 | path => $path, | |
339 | state => 'tidied', | |
340 | orig_contents => $orig_contents, | |
341 | new_contents => $new_contents | |
303 | 342 | ); |
304 | 343 | } |
305 | 344 | else { |
314 | 353 | $conf_string =~ s/\$ROOT/$root_dir/g; |
315 | 354 | my $conf_hash = Code::TidyAll::Config::INI::Reader->read_string($conf_string); |
316 | 355 | die "'$conf_file' did not evaluate to a hash" |
317 | unless ( ref($conf_hash) eq 'HASH' ); | |
356 | unless ( ref($conf_hash) eq 'HASH' ); | |
318 | 357 | return $conf_hash; |
319 | 358 | } |
320 | 359 | |
364 | 403 | my $path1 = rel2abs($start_dir); |
365 | 404 | my $path2 = realpath($start_dir); |
366 | 405 | my $conf_file = $class->_find_conf_file_upward( $conf_names, $path1 ) |
367 | || $class->_find_conf_file_upward( $conf_names, $path2 ); | |
406 | || $class->_find_conf_file_upward( $conf_names, $path2 ); | |
368 | 407 | unless ( defined $conf_file ) { |
369 | 408 | die sprintf( |
370 | 409 | "could not find %s upwards from %s", |
408 | 447 | my %is_ignored = map { ( $_, 1 ) } $self->_zglob( $plugin->ignores ); |
409 | 448 | @selected = grep { !$is_ignored{$_} } @selected; |
410 | 449 | } |
450 | if ( my $shebang = $plugin->shebang ) { | |
451 | my $re = join '|', map {quotemeta} split ' ', $shebang; | |
452 | $re = qr/^#!.*\b(?:$re)\b/; | |
453 | @selected = grep { | |
454 | my $fh; | |
455 | open $fh, '<', $_ and <$fh> =~ /$re/; | |
456 | } @selected; | |
457 | } | |
411 | 458 | push( @matched_files, @selected ); |
412 | 459 | foreach my $file (@selected) { |
413 | 460 | my $path = substr( $file, $root_length + 1 ); |
421 | 468 | sub plugins_for_path { |
422 | 469 | my ( $self, $path ) = @_; |
423 | 470 | |
424 | $self->{plugins_for_path}->{$path} ||= | |
425 | [ grep { $_->matches_path($path) } @{ $self->plugin_objects } ]; | |
471 | $self->{plugins_for_path}->{$path} | |
472 | ||= [ grep { $_->matches_path($path) } @{ $self->plugin_objects } ]; | |
426 | 473 | return @{ $self->{plugins_for_path}->{$path} }; |
427 | 474 | } |
428 | 475 | |
445 | 492 | sub _small_path { |
446 | 493 | my ( $self, $path ) = @_; |
447 | 494 | die sprintf( "'%s' is not underneath root dir '%s'!", $path, $self->root_dir ) |
448 | unless index( $path, $self->root_dir ) == 0; | |
495 | unless index( $path, $self->root_dir ) == 0; | |
449 | 496 | return substr( $path, length( $self->root_dir ) + 1 ); |
450 | } | |
451 | ||
452 | sub _file_sig { | |
453 | my ( $self, $file, $contents ) = @_; | |
454 | my $last_mod = ( stat($file) )[9]; | |
455 | return $self->_sig( [ $self->base_sig, $last_mod, $contents ] ); | |
456 | 497 | } |
457 | 498 | |
458 | 499 | sub _sig { |
460 | 501 | return sha1_hex( join( ",", @$data ) ); |
461 | 502 | } |
462 | 503 | |
463 | sub _tempdir { | |
464 | my ($self) = @_; | |
465 | $self->{tempdir} ||= tempdir_simple(); | |
466 | return $self->{tempdir}; | |
467 | } | |
468 | ||
469 | 504 | sub msg { |
470 | 505 | my ( $self, $format, @params ) = @_; |
471 | printf "$format\n", @params; | |
506 | $self->msg_outputter()->( $format, @params ); | |
507 | } | |
508 | ||
509 | sub _build_msg_outputter { | |
510 | return sub { | |
511 | my $format = shift; | |
512 | printf "$format\n", @_; | |
513 | }; | |
472 | 514 | } |
473 | 515 | |
474 | 516 | sub _error_result { |
475 | my ( $self, $msg, $path ) = @_; | |
517 | my ( $self, $msg, $path, $orig_contents, $new_contents ) = @_; | |
476 | 518 | $self->msg( "%s", $msg ); |
477 | return Code::TidyAll::Result->new( path => $path, state => 'error', error => $msg ); | |
519 | return Code::TidyAll::Result->new( | |
520 | path => $path, | |
521 | state => 'error', | |
522 | error => $msg, | |
523 | orig_contents => $orig_contents, | |
524 | new_contents => $new_contents, | |
525 | ); | |
478 | 526 | } |
479 | 527 | |
480 | 528 | 1; |
481 | 529 | |
530 | # ABSTRACT: Engine for tidyall, your all-in-one code tidier and validator | |
531 | ||
482 | 532 | __END__ |
483 | 533 | |
484 | 534 | =pod |
489 | 539 | |
490 | 540 | =head1 VERSION |
491 | 541 | |
492 | version 0.20 | |
542 | version 0.32 | |
493 | 543 | |
494 | 544 | =head1 SYNOPSIS |
495 | 545 | |
519 | 569 | |
520 | 570 | =head1 DESCRIPTION |
521 | 571 | |
522 | This is the engine used by L<tidyall|tidyall> - read that first to get an | |
523 | overview. | |
572 | This is the engine used by L<tidyall> - read that first to get an overview. | |
524 | 573 | |
525 | 574 | You can call this API from your own program instead of executing C<tidyall>. |
526 | 575 | |
576 | =encoding UTF-8 | |
577 | ||
527 | 578 | =head1 CONSTRUCTION |
528 | 579 | |
529 | 580 | =head2 Constructor methods |
536 | 587 | |
537 | 588 | =item new_with_conf_file ($conf_file, %params) |
538 | 589 | |
539 | Takes a conf file path, followed optionally by a set of key/value parameters. | |
590 | Takes a conf file path, followed optionally by a set of key/value parameters. | |
540 | 591 | Reads parameters out of the conf file and combines them with the passed |
541 | 592 | parameters (the latter take precedence), and calls the regular constructor. |
542 | 593 | |
555 | 606 | equivalent to what would be parsed out of the sections in the configuration |
556 | 607 | file. |
557 | 608 | |
609 | =item cache_model_class | |
610 | ||
611 | The cache model class. Defaults to C<Code::TidyAll::CacheModel> | |
612 | ||
613 | =item cache | |
614 | ||
615 | The cache instance (e.g. an instance of C<Code::TidyAll::Cache> or a C<CHI> | |
616 | instance.) An instance of C<Code::TidyAll::Cache> is automatically instantiated | |
617 | by default. | |
618 | ||
558 | 619 | =item backup_ttl |
559 | 620 | |
560 | 621 | =item check_only |
622 | ||
623 | =item no_cleanup | |
624 | ||
625 | A boolean indicating if we should skip cleaning temporary files or not. | |
626 | Defaults to false. | |
561 | 627 | |
562 | 628 | =item data_dir |
563 | 629 | |
581 | 647 | replacing dashes with underscore (e.g. the C<backup-ttl> option becomes |
582 | 648 | C<backup_ttl> here). |
583 | 649 | |
650 | =item msg_outputter | |
651 | ||
652 | This is a subroutine reference that is called whenever a message needs to be | |
653 | printed in some way. The sub receives a C<sprintf()> format string followed by | |
654 | one or more parameters. The default sub used simply calls C<printf "$format\n", | |
655 | @_> but L<Test::Code::TidyAll> overrides this to use the C<< | |
656 | Test::Builder->diag >> method. | |
657 | ||
584 | 658 | =back |
585 | 659 | |
586 | 660 | =head1 METHODS |
590 | 664 | =item process_paths (path, ...) |
591 | 665 | |
592 | 666 | Call L</process_file> on each file; descend recursively into each directory if |
593 | the C<recursive> flag is on. Return a list of | |
594 | L<Code::TidyAll::Result|Code::TidyAll::Result> objects, one for each file. | |
667 | the C<recursive> flag is on. Return a list of L<Code::TidyAll::Result> objects, | |
668 | one for each file. | |
595 | 669 | |
596 | 670 | =item process_file (file) |
597 | 671 | |
617 | 691 | |
618 | 692 | =item * |
619 | 693 | |
620 | Return a L<Code::TidyAll::Result|Code::TidyAll::Result> object | |
694 | Return a L<Code::TidyAll::Result> object | |
621 | 695 | |
622 | 696 | =back |
623 | 697 | |
626 | 700 | Like L</process_file>, but process the I<source> string instead of a file, and |
627 | 701 | do not read from or write to the cache. You must still pass the relative |
628 | 702 | I<path> from the root as the second argument, so that we know which plugins to |
629 | apply. Return a L<Code::TidyAll::Result|Code::TidyAll::Result> object. | |
703 | apply. Return a L<Code::TidyAll::Result> object. | |
630 | 704 | |
631 | 705 | =item plugins_for_path (I<path>) |
632 | 706 | |
633 | 707 | Given a relative I<path> from the root, return a list of |
634 | L<Code::TidyAll::Plugin|Code::TidyAll::Plugin> objects that apply to it, or an | |
635 | empty list if no plugins apply. | |
708 | L<Code::TidyAll::Plugin> objects that apply to it, or an empty list if no | |
709 | plugins apply. | |
636 | 710 | |
637 | 711 | =item find_conf_file (I<conf_names>, I<start_dir>) |
638 | 712 | |
639 | 713 | Class method. Start in the I<start_dir> and work upwards, looking for one of |
640 | the I<conf_names>. Return the pathname if found or throw an error if not | |
641 | found. | |
714 | the I<conf_names>. Return the pathname if found or throw an error if not found. | |
642 | 715 | |
643 | 716 | =item find_matched_files |
644 | 717 | |
646 | 719 | |
647 | 720 | =back |
648 | 721 | |
649 | =head1 SEE ALSO | |
650 | ||
651 | L<Code::TidyAll|Code::TidyAll> | |
652 | ||
653 | =head1 AUTHOR | |
722 | =head1 AUTHORS | |
723 | ||
724 | =over 4 | |
725 | ||
726 | =item * | |
654 | 727 | |
655 | 728 | Jonathan Swartz <swartz@pobox.com> |
656 | 729 | |
730 | =item * | |
731 | ||
732 | Dave Rolsky <autarch@urth.org> | |
733 | ||
734 | =back | |
735 | ||
736 | =head1 CONTRIBUTORS | |
737 | ||
738 | =for stopwords Andy Jack George Hartzell Gregory Oschwald Joe Crotty Mark Fowler Grimes Olaf Alders Pedro Melo Sergey Romanov timgimyee | |
739 | ||
740 | =over 4 | |
741 | ||
742 | =item * | |
743 | ||
744 | Andy Jack <andyjack@cpan.org> | |
745 | ||
746 | =item * | |
747 | ||
748 | George Hartzell <georgewh@gene.com> | |
749 | ||
750 | =item * | |
751 | ||
752 | Gregory Oschwald <goschwald@maxmind.com> | |
753 | ||
754 | =item * | |
755 | ||
756 | Joe Crotty <joe.crotty@returnpath.net> | |
757 | ||
758 | =item * | |
759 | ||
760 | Mark Fowler <mark@twoshortplanks.com> | |
761 | ||
762 | =item * | |
763 | ||
764 | Mark Grimes <mgrimes@cpan.org> | |
765 | ||
766 | =item * | |
767 | ||
768 | Olaf Alders <olaf@wundersolutions.com> | |
769 | ||
770 | =item * | |
771 | ||
772 | Pedro Melo <melo@simplicidade.org> | |
773 | ||
774 | =item * | |
775 | ||
776 | Sergey Romanov <sromanov-dev@yandex.ru> | |
777 | ||
778 | =item * | |
779 | ||
780 | timgimyee <tim.gim.yee@gmail.com> | |
781 | ||
782 | =back | |
783 | ||
657 | 784 | =head1 COPYRIGHT AND LICENSE |
658 | 785 | |
659 | This software is copyright (c) 2011 by Jonathan Swartz. | |
660 | ||
661 | This is free software; you can redistribute it and/or modify it under | |
662 | the same terms as the Perl 5 programming language system itself. | |
786 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
787 | ||
788 | This is free software; you can redistribute it and/or modify it under the same | |
789 | terms as the Perl 5 programming language system itself. | |
663 | 790 | |
664 | 791 | =cut |
0 | package Pod::Weaver::Section::SeeAlsoCodeTidyAll; | |
1 | $Pod::Weaver::Section::SeeAlsoCodeTidyAll::VERSION = '0.20'; | |
2 | use Moose; | |
3 | with 'Pod::Weaver::Role::Section'; | |
4 | ||
5 | use Moose::Autobox; | |
6 | ||
7 | # Add "SEE ALSO: CodeTidyAll" | |
8 | ||
9 | sub weave_section { | |
10 | my ( $self, $document, $input ) = @_; | |
11 | ||
12 | my $idc = $input->{pod_document}->children; | |
13 | for ( my $i = 0 ; $i < $idc->length ; $i++ ) { | |
14 | next unless my $para = $idc->[$i]; | |
15 | return | |
16 | if $para->can('command') | |
17 | && $para->command eq 'head1' | |
18 | && $para->content eq 'SEE ALSO'; | |
19 | } | |
20 | $document->children->push( | |
21 | Pod::Elemental::Element::Nested->new( | |
22 | { | |
23 | command => 'head1', | |
24 | content => 'SEE ALSO', | |
25 | children => [ | |
26 | Pod::Elemental::Element::Pod5::Ordinary->new( | |
27 | { content => "L<Code::TidyAll|Code::TidyAll>" } | |
28 | ), | |
29 | ], | |
30 | } | |
31 | ), | |
32 | ); | |
33 | } | |
34 | ||
35 | __PACKAGE__->meta->make_immutable; | |
36 | ||
37 | no Moose; | |
38 | 1; |
0 | 0 | package Test::Code::TidyAll; |
1 | $Test::Code::TidyAll::VERSION = '0.20'; | |
2 | use IPC::System::Simple qw(run); | |
1 | ||
3 | 2 | use Code::TidyAll; |
4 | 3 | use Test::Builder; |
4 | use Text::Diff; | |
5 | use Text::Diff::Table; | |
5 | 6 | use strict; |
6 | 7 | use warnings; |
7 | 8 | use base qw(Exporter); |
9 | ||
10 | our $VERSION = '0.32'; | |
8 | 11 | |
9 | 12 | my $test = Test::Builder->new; |
10 | 13 | |
18 | 21 | my @conf_names = Code::TidyAll->default_conf_names; |
19 | 22 | $conf_file = Code::TidyAll->find_conf_file( \@conf_names, "." ); |
20 | 23 | } |
21 | my $ct = | |
22 | Code::TidyAll->new_from_conf_file( $conf_file, check_only => 1, mode => 'test', %options ); | |
24 | $options{quiet} = 1 unless $options{verbose}; | |
25 | $test->diag("Using $conf_file for config") | |
26 | if $options{verbose}; | |
27 | my $ct = Code::TidyAll->new_from_conf_file( | |
28 | $conf_file, | |
29 | check_only => 1, | |
30 | mode => 'test', | |
31 | msg_outputter => \&_msg_outputter, | |
32 | %options, | |
33 | ); | |
23 | 34 | my @files = $ct->find_matched_files; |
24 | 35 | $test->plan( tests => scalar(@files) ); |
25 | 36 | foreach my $file (@files) { |
29 | 40 | $test->ok( 1, $desc ); |
30 | 41 | } |
31 | 42 | else { |
43 | $test->ok( 0, $desc ); | |
32 | 44 | $test->diag( $result->error ); |
33 | $test->ok( 0, $desc ); | |
45 | ||
46 | if ( $options{verbose} ) { | |
47 | my $orig = $result->orig_contents; | |
48 | my $new = $result->new_contents; | |
49 | if ( defined $orig && defined $new ) { | |
50 | $test->diag( diff( \$orig, \$new, { STYLE => 'Table' } ) ); | |
51 | } | |
52 | } | |
34 | 53 | } |
35 | 54 | } |
36 | 55 | } |
37 | 56 | |
57 | sub _msg_outputter { | |
58 | my $format = shift; | |
59 | $test->diag( sprintf $format, @_ ); | |
60 | } | |
61 | ||
38 | 62 | 1; |
63 | ||
64 | # ABSTRACT: Check that all your files are tidy and valid according to tidyall | |
39 | 65 | |
40 | 66 | __END__ |
41 | 67 | |
43 | 69 | |
44 | 70 | =head1 NAME |
45 | 71 | |
46 | Test::Code::TidyAll - check that all your files are tidy and valid according to | |
72 | Test::Code::TidyAll - Check that all your files are tidy and valid according to | |
47 | 73 | tidyall |
48 | 74 | |
49 | 75 | =head1 VERSION |
50 | 76 | |
51 | version 0.20 | |
77 | version 0.32 | |
52 | 78 | |
53 | 79 | =head1 SYNOPSIS |
54 | 80 | |
66 | 92 | |
67 | 93 | By default, looks for config file C<tidyall.ini> or C<.tidyallrc> in the |
68 | 94 | current directory and parent directories, which is generally the right place if |
69 | you are running L<prove|prove>. | |
95 | you are running L<prove>. | |
70 | 96 | |
71 | 97 | Passes mode = "test" by default; see L<modes|tidyall/MODES>. |
72 | 98 | |
73 | 99 | C<tidyall_ok> is exported by default. Any options will be passed along to the |
74 | L<Code::TidyAll|Code::TidyAll> constructor. For example, if you don't want to | |
75 | use the tidyall cache and instead check all files every time: | |
100 | L<Code::TidyAll> constructor. For example, if you don't want to use the tidyall | |
101 | cache and instead check all files every time: | |
76 | 102 | |
77 | 103 | tidyall_ok(no_cache => 1); |
78 | 104 | |
82 | 108 | |
83 | 109 | =head1 SEE ALSO |
84 | 110 | |
85 | L<tidyall|tidyall> | |
111 | L<tidyall> | |
86 | 112 | |
87 | =head1 AUTHOR | |
113 | =head1 AUTHORS | |
114 | ||
115 | =over 4 | |
116 | ||
117 | =item * | |
88 | 118 | |
89 | 119 | Jonathan Swartz <swartz@pobox.com> |
90 | 120 | |
121 | =item * | |
122 | ||
123 | Dave Rolsky <autarch@urth.org> | |
124 | ||
125 | =back | |
126 | ||
91 | 127 | =head1 COPYRIGHT AND LICENSE |
92 | 128 | |
93 | This software is copyright (c) 2011 by Jonathan Swartz. | |
129 | This software is copyright (c) 2011 - 2015 by Jonathan Swartz. | |
94 | 130 | |
95 | This is free software; you can redistribute it and/or modify it under | |
96 | the same terms as the Perl 5 programming language system itself. | |
131 | This is free software; you can redistribute it and/or modify it under the same | |
132 | terms as the Perl 5 programming language system itself. | |
97 | 133 | |
98 | 134 | =cut |
0 | only = 1 | |
1 | severity = 1 | |
2 | verbose = %m at %f line %l [%p]\n | |
3 | ||
4 | [Moose::RequireMakeImmutable] | |
5 | [TestingAndDebugging::RequireUseStrict] | |
6 | equivalent_modules = Moo Test::Class::Most | |
7 | [Variables::ProhibitConditionalDeclarations] |
0 | -l=100 | |
1 | -i=4 | |
2 | -ci=4 | |
3 | -se | |
4 | -b | |
5 | -bar | |
6 | -boc | |
7 | -vt=0 | |
8 | -vtc=0 | |
9 | -cti=0 | |
10 | -pt=1 | |
11 | -bt=1 | |
12 | -sbt=1 | |
13 | -bbt=1 | |
14 | -nolq | |
15 | -npro | |
16 | -nsfs | |
17 | --opening-hash-brace-right | |
18 | --no-outdent-long-comments | |
19 | -wbb="% + - * / x != == >= <= =~ !~ < > | & >= < = **= += *= &= <<= &&= -= /= |= >>= ||= .= %= ^= x=" | |
20 | --iterations=2 |
0 | do { my $x = { | |
1 | 'configure' => { | |
2 | 'requires' => { | |
3 | 'ExtUtils::MakeMaker' => '0' | |
4 | } | |
5 | }, | |
6 | 'develop' => { | |
7 | 'requires' => { | |
8 | 'CHI' => '0', | |
9 | 'Code::TidyAll' => '0', | |
10 | 'Code::TidyAll::Plugin::Perl::AlignMooseAttributes' => '0', | |
11 | 'JSON::MaybeXS' => '0', | |
12 | 'Mason::Tidy' => '0', | |
13 | 'Mason::Tidy::App' => '0', | |
14 | 'Perl::Critic' => '1.123', | |
15 | 'Perl::Critic::Policy::Moose::RequireMakeImmutable' => '0', | |
16 | 'Perl::Tidy' => '20150815', | |
17 | 'Perl::Tidy::Sweetened' => '1.00', | |
18 | 'Pod::Checker' => '0', | |
19 | 'Pod::Spell' => '0', | |
20 | 'Pod::Tidy' => '0', | |
21 | 'SVN::Look' => '0', | |
22 | 'Test::CPAN::Changes' => '0.19', | |
23 | 'Test::Mojibake' => '0', | |
24 | 'Test::More' => '0.88', | |
25 | 'Test::NoTabs' => '0', | |
26 | 'Test::Pod' => '1.41', | |
27 | 'Test::Spelling' => '0.12', | |
28 | 'Test::Version' => '1' | |
29 | } | |
30 | }, | |
31 | 'runtime' => { | |
32 | 'requires' => { | |
33 | 'Capture::Tiny' => '0', | |
34 | 'Config::INI::Reader' => '0', | |
35 | 'Cwd' => '0', | |
36 | 'Data::Dumper' => '0', | |
37 | 'Date::Format' => '0', | |
38 | 'Digest::SHA' => '0', | |
39 | 'Exporter' => '0', | |
40 | 'File::Basename' => '0', | |
41 | 'File::Find' => '0', | |
42 | 'File::Path' => '0', | |
43 | 'File::Slurp::Tiny' => '0', | |
44 | 'File::Spec::Functions' => '0', | |
45 | 'File::Temp' => '0', | |
46 | 'File::Which' => '0', | |
47 | 'File::Zglob' => '0', | |
48 | 'Getopt::Long' => '0', | |
49 | 'Guard' => '0', | |
50 | 'IPC::Run3' => '0', | |
51 | 'IPC::System::Simple' => '0', | |
52 | 'List::MoreUtils' => '0', | |
53 | 'Log::Any' => '0', | |
54 | 'Moo' => '0', | |
55 | 'Moo::Role' => '0', | |
56 | 'Scalar::Util' => '0', | |
57 | 'Test::Builder' => '0', | |
58 | 'Text::Diff' => '0', | |
59 | 'Text::Diff::Table' => '0', | |
60 | 'Text::ParseWords' => '0', | |
61 | 'Time::Duration::Parse' => '0', | |
62 | 'Try::Tiny' => '0', | |
63 | 'base' => '0', | |
64 | 'constant' => '0', | |
65 | 'strict' => '0', | |
66 | 'vars' => '0', | |
67 | 'warnings' => '0' | |
68 | } | |
69 | }, | |
70 | 'test' => { | |
71 | 'recommends' => { | |
72 | 'CPAN::Meta' => '2.120900' | |
73 | }, | |
74 | 'requires' => { | |
75 | 'Encode' => '0', | |
76 | 'ExtUtils::MakeMaker' => '0', | |
77 | 'File::Spec' => '0', | |
78 | 'Test::Class::Most' => '0', | |
79 | 'Test::Differences' => '0', | |
80 | 'Test::More' => '0.96', | |
81 | 'Test::Warnings' => '0', | |
82 | 'autodie' => '0', | |
83 | 'lib' => '0' | |
84 | } | |
85 | } | |
86 | }; | |
87 | $x; | |
88 | }⏎ |
0 | #!perl | |
1 | ||
2 | use strict; | |
3 | use warnings; | |
4 | ||
5 | # This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.021 | |
6 | ||
7 | use Test::More tests => 1; | |
8 | ||
9 | use ExtUtils::MakeMaker; | |
10 | use File::Spec; | |
11 | ||
12 | # from $version::LAX | |
13 | my $lax_version_re = | |
14 | qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? | |
15 | | | |
16 | (?:\.[0-9]+) (?:_[0-9]+)? | |
17 | ) | (?: | |
18 | v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? | |
19 | | | |
20 | (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? | |
21 | ) | |
22 | )/x; | |
23 | ||
24 | # hide optional CPAN::Meta modules from prereq scanner | |
25 | # and check if they are available | |
26 | my $cpan_meta = "CPAN::Meta"; | |
27 | my $cpan_meta_pre = "CPAN::Meta::Prereqs"; | |
28 | my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic | |
29 | ||
30 | # Verify requirements? | |
31 | my $DO_VERIFY_PREREQS = 1; | |
32 | ||
33 | sub _max { | |
34 | my $max = shift; | |
35 | $max = ( $_ > $max ) ? $_ : $max for @_; | |
36 | return $max; | |
37 | } | |
38 | ||
39 | sub _merge_prereqs { | |
40 | my ($collector, $prereqs) = @_; | |
41 | ||
42 | # CPAN::Meta::Prereqs object | |
43 | if (ref $collector eq $cpan_meta_pre) { | |
44 | return $collector->with_merged_prereqs( | |
45 | CPAN::Meta::Prereqs->new( $prereqs ) | |
46 | ); | |
47 | } | |
48 | ||
49 | # Raw hashrefs | |
50 | for my $phase ( keys %$prereqs ) { | |
51 | for my $type ( keys %{ $prereqs->{$phase} } ) { | |
52 | for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { | |
53 | $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; | |
54 | } | |
55 | } | |
56 | } | |
57 | ||
58 | return $collector; | |
59 | } | |
60 | ||
61 | my @include = qw( | |
62 | ||
63 | ); | |
64 | ||
65 | my @exclude = qw( | |
66 | ||
67 | ); | |
68 | ||
69 | # Add static prereqs to the included modules list | |
70 | my $static_prereqs = do 't/00-report-prereqs.dd'; | |
71 | ||
72 | # Merge all prereqs (either with ::Prereqs or a hashref) | |
73 | my $full_prereqs = _merge_prereqs( | |
74 | ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), | |
75 | $static_prereqs | |
76 | ); | |
77 | ||
78 | # Add dynamic prereqs to the included modules list (if we can) | |
79 | my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; | |
80 | if ( $source && $HAS_CPAN_META ) { | |
81 | if ( my $meta = eval { CPAN::Meta->load_file($source) } ) { | |
82 | $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); | |
83 | } | |
84 | } | |
85 | else { | |
86 | $source = 'static metadata'; | |
87 | } | |
88 | ||
89 | my @full_reports; | |
90 | my @dep_errors; | |
91 | my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; | |
92 | ||
93 | # Add static includes into a fake section | |
94 | for my $mod (@include) { | |
95 | $req_hash->{other}{modules}{$mod} = 0; | |
96 | } | |
97 | ||
98 | for my $phase ( qw(configure build test runtime develop other) ) { | |
99 | next unless $req_hash->{$phase}; | |
100 | next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); | |
101 | ||
102 | for my $type ( qw(requires recommends suggests conflicts modules) ) { | |
103 | next unless $req_hash->{$phase}{$type}; | |
104 | ||
105 | my $title = ucfirst($phase).' '.ucfirst($type); | |
106 | my @reports = [qw/Module Want Have/]; | |
107 | ||
108 | for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { | |
109 | next if $mod eq 'perl'; | |
110 | next if grep { $_ eq $mod } @exclude; | |
111 | ||
112 | my $file = $mod; | |
113 | $file =~ s{::}{/}g; | |
114 | $file .= ".pm"; | |
115 | my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; | |
116 | ||
117 | my $want = $req_hash->{$phase}{$type}{$mod}; | |
118 | $want = "undef" unless defined $want; | |
119 | $want = "any" if !$want && $want == 0; | |
120 | ||
121 | my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; | |
122 | ||
123 | if ($prefix) { | |
124 | my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); | |
125 | $have = "undef" unless defined $have; | |
126 | push @reports, [$mod, $want, $have]; | |
127 | ||
128 | if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { | |
129 | if ( $have !~ /\A$lax_version_re\z/ ) { | |
130 | push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; | |
131 | } | |
132 | elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { | |
133 | push @dep_errors, "$mod version '$have' is not in required range '$want'"; | |
134 | } | |
135 | } | |
136 | } | |
137 | else { | |
138 | push @reports, [$mod, $want, "missing"]; | |
139 | ||
140 | if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { | |
141 | push @dep_errors, "$mod is not installed ($req_string)"; | |
142 | } | |
143 | } | |
144 | } | |
145 | ||
146 | if ( @reports ) { | |
147 | push @full_reports, "=== $title ===\n\n"; | |
148 | ||
149 | my $ml = _max( map { length $_->[0] } @reports ); | |
150 | my $wl = _max( map { length $_->[1] } @reports ); | |
151 | my $hl = _max( map { length $_->[2] } @reports ); | |
152 | ||
153 | if ($type eq 'modules') { | |
154 | splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; | |
155 | push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; | |
156 | } | |
157 | else { | |
158 | splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; | |
159 | push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; | |
160 | } | |
161 | ||
162 | push @full_reports, "\n"; | |
163 | } | |
164 | } | |
165 | } | |
166 | ||
167 | if ( @full_reports ) { | |
168 | diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; | |
169 | } | |
170 | ||
171 | if ( @dep_errors ) { | |
172 | diag join("\n", | |
173 | "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n", | |
174 | "The following REQUIRED prerequisites were not satisfied:\n", | |
175 | @dep_errors, | |
176 | "\n" | |
177 | ); | |
178 | } | |
179 | ||
180 | pass; | |
181 | ||
182 | # vim: ts=4 sts=4 sw=4 et: |
0 | 0 | #!/usr/bin/perl |
1 | use Code::TidyAll::t::Basic; | |
2 | Code::TidyAll::t::Basic->runtests; | |
1 | use lib 't/lib'; | |
2 | use Test::Code::TidyAll::Basic; | |
3 | Test::Code::TidyAll::Basic->runtests; |
0 | 0 | #!/usr/bin/perl |
1 | use Code::TidyAll::t::Conf; | |
2 | Code::TidyAll::t::Conf->runtests; | |
1 | use lib 't/lib'; | |
2 | use Test::Code::TidyAll::Conf; | |
3 | Test::Code::TidyAll::Conf->runtests; |
0 | 0 | #!/usr/bin/perl |
1 | use Code::TidyAll::t::Zglob; | |
2 | Code::TidyAll::t::Zglob->runtests; | |
1 | use lib 't/lib'; | |
2 | use Test::Code::TidyAll::Zglob; | |
3 | Test::Code::TidyAll::Zglob->runtests; |
6 | 6 | } |
7 | 7 | } |
8 | 8 | |
9 | use Code::TidyAll::t::Git; | |
10 | Code::TidyAll::t::Git->runtests; | |
9 | use lib 't/lib'; | |
10 | use Test::Code::TidyAll::Git; | |
11 | Test::Code::TidyAll::Git->runtests; |
6 | 6 | } |
7 | 7 | } |
8 | 8 | |
9 | use Code::TidyAll::t::Plugin::CSSUnminifier; | |
10 | Code::TidyAll::t::Plugin::CSSUnminifier->runtests; | |
9 | use lib 't/lib'; | |
10 | use Test::Code::TidyAll::Plugin::CSSUnminifier; | |
11 | Test::Code::TidyAll::Plugin::CSSUnminifier->runtests; |
6 | 6 | } |
7 | 7 | } |
8 | 8 | |
9 | use Code::TidyAll::t::Plugin::JSBeautify; | |
10 | Code::TidyAll::t::Plugin::JSBeautify->runtests; | |
9 | use lib 't/lib'; | |
10 | use lib 't/lib'; | |
11 | use Test::Code::TidyAll::Plugin::JSBeautify; | |
12 | Test::Code::TidyAll::Plugin::JSBeautify->runtests; |
6 | 6 | } |
7 | 7 | } |
8 | 8 | |
9 | use Code::TidyAll::t::Plugin::JSHint; | |
10 | Code::TidyAll::t::Plugin::JSHint->runtests; | |
9 | use lib 't/lib'; | |
10 | use Test::Code::TidyAll::Plugin::JSHint; | |
11 | Test::Code::TidyAll::Plugin::JSHint->runtests; |
6 | 6 | } |
7 | 7 | } |
8 | 8 | |
9 | use Code::TidyAll::t::Plugin::JSLint; | |
10 | Code::TidyAll::t::Plugin::JSLint->runtests; | |
9 | use lib 't/lib'; | |
10 | use Test::Code::TidyAll::Plugin::JSLint; | |
11 | Test::Code::TidyAll::Plugin::JSLint->runtests; |
6 | 6 | } |
7 | 7 | } |
8 | 8 | |
9 | use Code::TidyAll::t::Plugin::MasonTidy; | |
10 | Code::TidyAll::t::Plugin::MasonTidy->runtests; | |
9 | use lib 't/lib'; | |
10 | use Test::Code::TidyAll::Plugin::MasonTidy; | |
11 | Test::Code::TidyAll::Plugin::MasonTidy->runtests; |
0 | #!/usr/bin/perl | |
1 | ||
2 | BEGIN { | |
3 | unless ($ENV{AUTHOR_TESTING}) { | |
4 | require Test::More; | |
5 | Test::More::plan(skip_all => 'these tests are for testing by the author'); | |
6 | } | |
7 | } | |
8 | ||
9 | use lib 't/lib'; | |
10 | use Test::Code::TidyAll::Plugin::PHPCodeSniffer; | |
11 | Test::Code::TidyAll::Plugin::PHPCodeSniffer->runtests; |
6 | 6 | } |
7 | 7 | } |
8 | 8 | |
9 | use Code::TidyAll::t::Plugin::PerlCritic; | |
10 | Code::TidyAll::t::Plugin::PerlCritic->runtests; | |
9 | use lib 't/lib'; | |
10 | use Test::Code::TidyAll::Plugin::PerlCritic; | |
11 | Test::Code::TidyAll::Plugin::PerlCritic->runtests; |
6 | 6 | } |
7 | 7 | } |
8 | 8 | |
9 | use Code::TidyAll::t::Plugin::PerlTidy; | |
10 | Code::TidyAll::t::Plugin::PerlTidy->runtests; | |
9 | use lib 't/lib'; | |
10 | use Test::Code::TidyAll::Plugin::PerlTidy; | |
11 | Test::Code::TidyAll::Plugin::PerlTidy->runtests; |
0 | #!/usr/bin/perl | |
1 | ||
2 | BEGIN { | |
3 | unless ($ENV{AUTHOR_TESTING}) { | |
4 | require Test::More; | |
5 | Test::More::plan(skip_all => 'these tests are for testing by the author'); | |
6 | } | |
7 | } | |
8 | ||
9 | ||
10 | use Test::More; | |
11 | ||
12 | plan skip_all => 'This plugin requires Perl 5.10+' | |
13 | unless $] >= 5.010; | |
14 | ||
15 | use lib 't/lib'; | |
16 | use Test::Code::TidyAll::Plugin::PerlTidySweet; | |
17 | Test::Code::TidyAll::Plugin::PerlTidySweet->runtests; |
6 | 6 | } |
7 | 7 | } |
8 | 8 | |
9 | use Code::TidyAll::t::Plugin::PodChecker; | |
10 | Code::TidyAll::t::Plugin::PodChecker->runtests; | |
9 | use lib 't/lib'; | |
10 | use Test::Code::TidyAll::Plugin::PodChecker; | |
11 | Test::Code::TidyAll::Plugin::PodChecker->runtests; |
6 | 6 | } |
7 | 7 | } |
8 | 8 | |
9 | use Code::TidyAll::t::Plugin::PodSpell; | |
10 | Code::TidyAll::t::Plugin::PodSpell->runtests; | |
9 | use lib 't/lib'; | |
10 | use Test::Code::TidyAll::Plugin::PodSpell; | |
11 | Test::Code::TidyAll::Plugin::PodSpell->runtests; |
6 | 6 | } |
7 | 7 | } |
8 | 8 | |
9 | use Code::TidyAll::t::Plugin::PodTidy; | |
10 | Code::TidyAll::t::Plugin::PodTidy->runtests; | |
9 | use lib 't/lib'; | |
10 | use Test::Code::TidyAll::Plugin::PodTidy; | |
11 | Test::Code::TidyAll::Plugin::PodTidy->runtests; |
6 | 6 | } |
7 | 7 | } |
8 | 8 | |
9 | use Code::TidyAll::t::Plugin::SortLines; | |
10 | Code::TidyAll::t::Plugin::SortLines->runtests; | |
9 | use lib 't/lib'; | |
10 | use Test::Code::TidyAll::Plugin::SortLines; | |
11 | Test::Code::TidyAll::Plugin::SortLines->runtests; |
6 | 6 | } |
7 | 7 | } |
8 | 8 | |
9 | use Code::TidyAll::t::Util; | |
10 | Code::TidyAll::t::Util->runtests; | |
9 | use lib 't/lib'; | |
10 | use Test::Code::TidyAll::Util; | |
11 | Test::Code::TidyAll::Util->runtests; |
0 | #!perl | |
1 | ||
2 | BEGIN { | |
3 | unless ($ENV{AUTHOR_TESTING}) { | |
4 | require Test::More; | |
5 | Test::More::plan(skip_all => 'these tests are for testing by the author'); | |
6 | } | |
7 | } | |
8 | ||
9 | ||
10 | use strict; | |
11 | use warnings qw(all); | |
12 | ||
13 | use Test::More; | |
14 | use Test::Mojibake; | |
15 | ||
16 | all_files_encoding_ok(); |
0 | ||
1 | BEGIN { | |
2 | unless ($ENV{AUTHOR_TESTING}) { | |
3 | require Test::More; | |
4 | Test::More::plan(skip_all => 'these tests are for testing by the author'); | |
5 | } | |
6 | } | |
7 | ||
8 | use strict; | |
9 | use warnings; | |
10 | ||
11 | # this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.15 | |
12 | ||
13 | use Test::More 0.88; | |
14 | use Test::NoTabs; | |
15 | ||
16 | my @files = ( | |
17 | 'bin/tidyall', | |
18 | 'lib/Code/TidyAll.pm', | |
19 | 'lib/Code/TidyAll/Cache.pm', | |
20 | 'lib/Code/TidyAll/CacheModel.pm', | |
21 | 'lib/Code/TidyAll/CacheModel/Shared.pm', | |
22 | 'lib/Code/TidyAll/Config/INI/Reader.pm', | |
23 | 'lib/Code/TidyAll/Git/Precommit.pm', | |
24 | 'lib/Code/TidyAll/Git/Prereceive.pm', | |
25 | 'lib/Code/TidyAll/Git/Util.pm', | |
26 | 'lib/Code/TidyAll/Plugin.pm', | |
27 | 'lib/Code/TidyAll/Plugin/CSSUnminifier.pm', | |
28 | 'lib/Code/TidyAll/Plugin/DiffOnTidyError.pm', | |
29 | 'lib/Code/TidyAll/Plugin/JSBeautify.pm', | |
30 | 'lib/Code/TidyAll/Plugin/JSHint.pm', | |
31 | 'lib/Code/TidyAll/Plugin/JSLint.pm', | |
32 | 'lib/Code/TidyAll/Plugin/JSON.pm', | |
33 | 'lib/Code/TidyAll/Plugin/MasonTidy.pm', | |
34 | 'lib/Code/TidyAll/Plugin/PHPCodeSniffer.pm', | |
35 | 'lib/Code/TidyAll/Plugin/PerlCritic.pm', | |
36 | 'lib/Code/TidyAll/Plugin/PerlTidy.pm', | |
37 | 'lib/Code/TidyAll/Plugin/PerlTidySweet.pm', | |
38 | 'lib/Code/TidyAll/Plugin/PodChecker.pm', | |
39 | 'lib/Code/TidyAll/Plugin/PodSpell.pm', | |
40 | 'lib/Code/TidyAll/Plugin/PodTidy.pm', | |
41 | 'lib/Code/TidyAll/Plugin/SortLines.pm', | |
42 | 'lib/Code/TidyAll/Result.pm', | |
43 | 'lib/Code/TidyAll/Role/Tempdir.pm', | |
44 | 'lib/Code/TidyAll/SVN/Precommit.pm', | |
45 | 'lib/Code/TidyAll/SVN/Util.pm', | |
46 | 'lib/Code/TidyAll/Util.pm', | |
47 | 'lib/Code/TidyAll/Util/Zglob.pm', | |
48 | 'lib/Test/Code/TidyAll.pm', | |
49 | 't/00-report-prereqs.dd', | |
50 | 't/00-report-prereqs.t', | |
51 | 't/Basic.t', | |
52 | 't/Conf.t', | |
53 | 't/Zglob.t', | |
54 | 't/author-Git.t', | |
55 | 't/author-Plugin-CSSUnminifier.t', | |
56 | 't/author-Plugin-JSBeautify.t', | |
57 | 't/author-Plugin-JSHint.t', | |
58 | 't/author-Plugin-JSLint.t', | |
59 | 't/author-Plugin-MasonTidy.t', | |
60 | 't/author-Plugin-PHPCodeSniffer.t', | |
61 | 't/author-Plugin-PerlCritic.t', | |
62 | 't/author-Plugin-PerlTidy.t', | |
63 | 't/author-Plugin-PerlTidySweet.t', | |
64 | 't/author-Plugin-PodChecker.t', | |
65 | 't/author-Plugin-PodSpell.t', | |
66 | 't/author-Plugin-PodTidy.t', | |
67 | 't/author-Plugin-SortLines.t', | |
68 | 't/author-Util.t', | |
69 | 't/author-mojibake.t', | |
70 | 't/author-no-tabs.t', | |
71 | 't/author-pod-spell.t', | |
72 | 't/author-pod-syntax.t', | |
73 | 't/author-self-tidyall.t', | |
74 | 't/author-test-version.t', | |
75 | 't/author-tidy-and-critic.t', | |
76 | 't/lib/Code/TidyAll/Test/Class.pm', | |
77 | 't/lib/Code/TidyAll/Test/Plugin/AToZ.pm', | |
78 | 't/lib/Code/TidyAll/Test/Plugin/AlwaysPhonetic.pm', | |
79 | 't/lib/Code/TidyAll/Test/Plugin/CheckUpper.pm', | |
80 | 't/lib/Code/TidyAll/Test/Plugin/RepeatFoo.pm', | |
81 | 't/lib/Code/TidyAll/Test/Plugin/ReverseFoo.pm', | |
82 | 't/lib/Code/TidyAll/Test/Plugin/UpperText.pm', | |
83 | 't/lib/Test/Code/TidyAll/Basic.pm', | |
84 | 't/lib/Test/Code/TidyAll/Conf.pm', | |
85 | 't/lib/Test/Code/TidyAll/Git.pm', | |
86 | 't/lib/Test/Code/TidyAll/Plugin.pm', | |
87 | 't/lib/Test/Code/TidyAll/Plugin/CSSUnminifier.pm', | |
88 | 't/lib/Test/Code/TidyAll/Plugin/JSBeautify.pm', | |
89 | 't/lib/Test/Code/TidyAll/Plugin/JSHint.pm', | |
90 | 't/lib/Test/Code/TidyAll/Plugin/JSLint.pm', | |
91 | 't/lib/Test/Code/TidyAll/Plugin/MasonTidy.pm', | |
92 | 't/lib/Test/Code/TidyAll/Plugin/PHPCodeSniffer.pm', | |
93 | 't/lib/Test/Code/TidyAll/Plugin/PerlCritic.pm', | |
94 | 't/lib/Test/Code/TidyAll/Plugin/PerlTidy.pm', | |
95 | 't/lib/Test/Code/TidyAll/Plugin/PerlTidySweet.pm', | |
96 | 't/lib/Test/Code/TidyAll/Plugin/PodChecker.pm', | |
97 | 't/lib/Test/Code/TidyAll/Plugin/PodSpell.pm', | |
98 | 't/lib/Test/Code/TidyAll/Plugin/PodTidy.pm', | |
99 | 't/lib/Test/Code/TidyAll/Plugin/SortLines.pm', | |
100 | 't/lib/Test/Code/TidyAll/SVN.pm', | |
101 | 't/lib/Test/Code/TidyAll/Util.pm', | |
102 | 't/lib/Test/Code/TidyAll/Zglob.pm', | |
103 | 't/release-cpan-changes.t' | |
104 | ); | |
105 | ||
106 | notabs_ok($_) foreach @files; | |
107 | done_testing; |
0 | ||
1 | BEGIN { | |
2 | unless ($ENV{AUTHOR_TESTING}) { | |
3 | require Test::More; | |
4 | Test::More::plan(skip_all => 'these tests are for testing by the author'); | |
5 | } | |
6 | } | |
7 | ||
8 | use strict; | |
9 | use warnings; | |
10 | use Test::More; | |
11 | ||
12 | # generated by Dist::Zilla::Plugin::Test::PodSpelling 2.007000 | |
13 | use Test::Spelling 0.12; | |
14 | use Pod::Wordlist; | |
15 | ||
16 | ||
17 | add_stopwords(<DATA>); | |
18 | all_pod_files_spelling_ok( qw( bin lib ) ); | |
19 | __DATA__ | |
20 | DROLSKY | |
21 | DROLSKY's | |
22 | PayPal | |
23 | Rolsky | |
24 | Rolsky's | |
25 | API | |
26 | CPAN | |
27 | JSON | |
28 | JavaScript | |
29 | Misc | |
30 | PHP | |
31 | PREREQS | |
32 | Raggett | |
33 | STDERR | |
34 | STDIN | |
35 | STDOUT | |
36 | Simakov | |
37 | TIDYALL | |
38 | Thalhammer | |
39 | Vim | |
40 | argv | |
41 | ascii | |
42 | atomicity | |
43 | cmd | |
44 | conf | |
45 | config | |
46 | cssunminifier | |
47 | ctrl | |
48 | dir | |
49 | filename | |
50 | iff | |
51 | ispell | |
52 | js | |
53 | jsbeautify | |
54 | jshint | |
55 | jslint | |
56 | lib | |
57 | listref | |
58 | masontidy | |
59 | noll | |
60 | npm | |
61 | ok | |
62 | ops | |
63 | params | |
64 | pathname | |
65 | perlcritic | |
66 | perlcriticrc | |
67 | perltidy | |
68 | phpcs | |
69 | plugins | |
70 | podspell | |
71 | podtidy | |
72 | pre | |
73 | prereqs | |
74 | repo | |
75 | repos | |
76 | ro | |
77 | runtime | |
78 | rw | |
79 | shebang | |
80 | sourceforge | |
81 | svn | |
82 | tidiers | |
83 | tidyall | |
84 | tidyall'd | |
85 | timestamped | |
86 | ttl | |
87 | txn | |
88 | validator | |
89 | validators | |
90 | Jonathan | |
91 | Swartz | |
92 | swartz | |
93 | Dave | |
94 | autarch | |
95 | Andy | |
96 | Jack | |
97 | andyjack | |
98 | George | |
99 | Hartzell | |
100 | georgewh | |
101 | Gregory | |
102 | Oschwald | |
103 | goschwald | |
104 | Joe | |
105 | Crotty | |
106 | joe | |
107 | Mark | |
108 | Fowler | |
109 | mark | |
110 | Grimes | |
111 | mgrimes | |
112 | Olaf | |
113 | Alders | |
114 | olaf | |
115 | Pedro | |
116 | Melo | |
117 | melo | |
118 | Sergey | |
119 | Romanov | |
120 | sromanov | |
121 | timgimyee | |
122 | tim | |
123 | Code | |
124 | TidyAll | |
125 | Cache | |
126 | CacheModel | |
127 | Shared | |
128 | Config | |
129 | INI | |
130 | Reader | |
131 | Git | |
132 | Precommit | |
133 | Prereceive | |
134 | Util | |
135 | Plugin | |
136 | CSSUnminifier | |
137 | DiffOnTidyError | |
138 | JSBeautify | |
139 | JSHint | |
140 | JSLint | |
141 | MasonTidy | |
142 | PHPCodeSniffer | |
143 | PerlCritic | |
144 | PerlTidy | |
145 | PerlTidySweet | |
146 | PodChecker | |
147 | PodSpell | |
148 | PodTidy | |
149 | SortLines | |
150 | Result | |
151 | Role | |
152 | Tempdir | |
153 | SVN | |
154 | Zglob | |
155 | Test |
0 | #!perl | |
1 | ||
2 | BEGIN { | |
3 | unless ($ENV{AUTHOR_TESTING}) { | |
4 | require Test::More; | |
5 | Test::More::plan(skip_all => 'these tests are for testing by the author'); | |
6 | } | |
7 | } | |
8 | ||
9 | # This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. | |
10 | use strict; use warnings; | |
11 | use Test::More; | |
12 | use Test::Pod 1.41; | |
13 | ||
14 | all_pod_files_ok(); |
0 | ||
1 | BEGIN { | |
2 | unless ($ENV{AUTHOR_TESTING}) { | |
3 | require Test::More; | |
4 | Test::More::plan(skip_all => 'these tests are for testing by the author'); | |
5 | } | |
6 | } | |
7 | ||
8 | use strict; | |
9 | use warnings; | |
10 | ||
11 | use Test::Code::TidyAll; | |
12 | use Test::More; | |
13 | ||
14 | plan skip_all => 'This plugin requires Perl 5.10+' | |
15 | unless $] >= 5.010; | |
16 | ||
17 | tidyall_ok( verbose => 1 ); | |
18 | ||
19 | done_testing(); |
0 | ||
1 | BEGIN { | |
2 | unless ($ENV{AUTHOR_TESTING}) { | |
3 | require Test::More; | |
4 | Test::More::plan(skip_all => 'these tests are for testing by the author'); | |
5 | } | |
6 | } | |
7 | ||
8 | use strict; | |
9 | use warnings; | |
10 | use Test::More; | |
11 | ||
12 | # generated by Dist::Zilla::Plugin::Test::Version 1.05 | |
13 | use Test::Version; | |
14 | ||
15 | my @imports = qw( version_all_ok ); | |
16 | ||
17 | my $params = { | |
18 | is_strict => 1, | |
19 | has_version => 1, | |
20 | multiple => 0, | |
21 | ||
22 | }; | |
23 | ||
24 | push @imports, $params | |
25 | if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); | |
26 | ||
27 | ||
28 | Test::Version->import(@imports); | |
29 | ||
30 | version_all_ok; | |
31 | done_testing; |
6 | 6 | } |
7 | 7 | } |
8 | 8 | |
9 | use Code::TidyAll::Util qw(read_file tempdir_simple write_file); | |
9 | use lib 't/lib'; | |
10 | use Code::TidyAll::Util qw(tempdir_simple); | |
10 | 11 | use Code::TidyAll; |
11 | 12 | use File::Basename; |
12 | 13 | use File::Path; |
14 | use File::Slurp::Tiny qw(read_file write_file); | |
13 | 15 | use Test::More; |
14 | 16 | use Capture::Tiny qw(capture_merged); |
15 | 17 |
0 | package Code::TidyAll::Test::Class; | |
1 | ||
2 | use File::Which qw( which ); | |
3 | use Test::Class::Most; | |
4 | use strict; | |
5 | use warnings; | |
6 | ||
7 | __PACKAGE__->SKIP_CLASS("abstract base class"); | |
8 | ||
9 | sub require_executable { | |
10 | my $self = shift; | |
11 | my $exe = shift; | |
12 | ||
13 | which($exe) | |
14 | or $self->FAIL_ALL("These tests require that $exe be in your \$PATH"); | |
15 | ||
16 | return; | |
17 | } | |
18 | ||
19 | 1; |
0 | package Code::TidyAll::Test::Plugin::AToZ; | |
1 | ||
2 | use Moo; | |
3 | extends 'Code::TidyAll::Plugin'; | |
4 | ||
5 | sub preprocess_source { | |
6 | my ( $self, $source ) = @_; | |
7 | $source =~ tr/Aa/Zz/; | |
8 | return $source; | |
9 | } | |
10 | ||
11 | sub postprocess_source { | |
12 | my ( $self, $source ) = @_; | |
13 | $source =~ tr/Zz/Aa/; | |
14 | return $source; | |
15 | } | |
16 | ||
17 | 1; |
0 | package Code::TidyAll::Test::Plugin::AlwaysPhonetic; | |
1 | ||
2 | use Moo; | |
3 | extends 'Code::TidyAll::Plugin'; | |
4 | ||
5 | my %phonetic = ( | |
6 | A => 'ALFA', | |
7 | B => 'BRAVO', | |
8 | C => 'CHARLIE', | |
9 | D => 'DELTA', | |
10 | E => 'ECHO', | |
11 | F => 'FOXTROT', | |
12 | G => 'GOLF', | |
13 | H => 'HOTEL', | |
14 | I => 'INDIA', | |
15 | J => 'JULIETT', | |
16 | K => 'KILO', | |
17 | L => 'LIMA', | |
18 | M => 'MIKE', | |
19 | N => 'NOVEMBER', | |
20 | O => 'OSCAR', | |
21 | P => 'PAPA', | |
22 | Q => 'QUEBEC', | |
23 | R => 'ROMEO', | |
24 | S => 'SIERRA', | |
25 | T => 'TANGO', | |
26 | U => 'UNIFORM', | |
27 | V => 'VICTOR', | |
28 | W => 'WHISKEY', | |
29 | X => 'X-RAY', | |
30 | Y => 'YANKEE', | |
31 | Z => 'ZULU', | |
32 | ); | |
33 | ||
34 | sub transform_source { | |
35 | my ( $self, $source ) = @_; | |
36 | return join '-', map { $phonetic{$_} } split //, $source; | |
37 | } |
0 | package Code::TidyAll::Test::Plugin::CheckUpper; | |
1 | ||
2 | use Moo; | |
3 | extends 'Code::TidyAll::Plugin'; | |
4 | ||
5 | sub validate_source { | |
6 | my ( $self, $source ) = @_; | |
7 | die "lowercase found" if $source =~ /[a-z]/; | |
8 | } | |
9 | ||
10 | 1; |
0 | package Code::TidyAll::Test::Plugin::RepeatFoo; | |
1 | ||
2 | use File::Slurp::Tiny qw(read_file write_file); | |
3 | use Moo; | |
4 | extends 'Code::TidyAll::Plugin'; | |
5 | ||
6 | has 'times' => ( is => 'ro' ); | |
7 | ||
8 | sub transform_source { | |
9 | my ( $self, $source ) = @_; | |
10 | my $times = $self->times || die "no times specified"; | |
11 | return $source x $times; | |
12 | } | |
13 | ||
14 | 1; |
0 | package Code::TidyAll::Test::Plugin::ReverseFoo; | |
1 | ||
2 | use File::Slurp::Tiny qw(read_file write_file); | |
3 | use Moo; | |
4 | extends 'Code::TidyAll::Plugin'; | |
5 | ||
6 | sub transform_file { | |
7 | my ( $self, $file ) = @_; | |
8 | write_file( $file, scalar( reverse( read_file($file) ) ) ); | |
9 | } | |
10 | ||
11 | 1; |
0 | package Code::TidyAll::Test::Plugin::UpperText; | |
1 | ||
2 | use Moo; | |
3 | extends 'Code::TidyAll::Plugin'; | |
4 | ||
5 | sub transform_source { | |
6 | my ( $self, $source ) = @_; | |
7 | if ( $source =~ /^[A-Z]*$/i ) { | |
8 | return uc($source); | |
9 | } | |
10 | else { | |
11 | die "non-alpha content found"; | |
12 | } | |
13 | } | |
14 | ||
15 | 1; |
0 | package Test::Code::TidyAll::Basic; | |
1 | ||
2 | use Cwd qw(realpath); | |
3 | use Code::TidyAll::Util qw(dirname mkpath pushd tempdir_simple); | |
4 | use Code::TidyAll; | |
5 | use Capture::Tiny qw(capture capture_stdout capture_merged); | |
6 | use File::Find qw(find); | |
7 | use File::Slurp::Tiny qw(read_file write_file); | |
8 | use Test::Class::Most parent => 'Code::TidyAll::Test::Class'; | |
9 | use Code::TidyAll::CacheModel::Shared; | |
10 | ||
11 | sub test_plugin {"+Code::TidyAll::Test::Plugin::$_[0]"} | |
12 | my %UpperText = ( test_plugin('UpperText') => { select => '**/*.txt' } ); | |
13 | my %ReverseFoo = ( test_plugin('ReverseFoo') => { select => '**/foo*' } ); | |
14 | my %RepeatFoo = ( test_plugin('RepeatFoo') => { select => '**/foo*' } ); | |
15 | my %CheckUpper = ( test_plugin('CheckUpper') => { select => '**/*.txt' } ); | |
16 | my %AToZ = ( test_plugin('AToZ') => { select => '**/*.txt' } ); | |
17 | ||
18 | my $cli_conf; | |
19 | ||
20 | sub create_dir { | |
21 | my ( $self, $files ) = @_; | |
22 | ||
23 | my $root_dir = tempdir_simple(); | |
24 | while ( my ( $path, $content ) = each(%$files) ) { | |
25 | my $full_path = "$root_dir/$path"; | |
26 | mkpath( dirname($full_path), 0, 0775 ); | |
27 | write_file( $full_path, $content ); | |
28 | } | |
29 | return realpath($root_dir); | |
30 | } | |
31 | ||
32 | sub tidy { | |
33 | my ( $self, %params ) = @_; | |
34 | my $desc = $params{desc}; | |
35 | if ( !defined($desc) ) { | |
36 | ($desc) = ( ( caller(1) )[3] =~ /([^:]+$)/ ); | |
37 | } | |
38 | ||
39 | my $root_dir = $self->create_dir( $params{source} ); | |
40 | ||
41 | my $options = $params{options} || {}; | |
42 | my $ct = Code::TidyAll->new( | |
43 | plugins => $params{plugins}, | |
44 | root_dir => $root_dir, | |
45 | %$options | |
46 | ); | |
47 | ||
48 | my @results; | |
49 | my $output = capture_stdout { @results = $ct->process_all() }; | |
50 | my $error_count = grep { $_->error } @results; | |
51 | if ( $params{errors} ) { | |
52 | like( $output, $params{errors}, "$desc - errors" ); | |
53 | ok( $error_count > 0, "$desc - error_count > 0" ); | |
54 | } | |
55 | else { | |
56 | is( $error_count, 0, "$desc - error_count == 0" ); | |
57 | } | |
58 | while ( my ( $path, $content ) = each( %{ $params{dest} } ) ) { | |
59 | is( read_file("$root_dir/$path"), $content, "$desc - $path content" ); | |
60 | } | |
61 | if ( my $like_output = $params{like_output} ) { | |
62 | like( $output, $like_output, "$desc - output" ); | |
63 | } | |
64 | } | |
65 | ||
66 | sub test_basic : Tests { | |
67 | my $self = shift; | |
68 | ||
69 | $self->tidy( | |
70 | plugins => {}, | |
71 | source => { "foo.txt" => "abc" }, | |
72 | dest => { "foo.txt" => "abc" }, | |
73 | desc => 'one file no plugins', | |
74 | ); | |
75 | $self->tidy( | |
76 | plugins => {%UpperText}, | |
77 | source => { "foo.txt" => "abc" }, | |
78 | dest => { "foo.txt" => "ABC" }, | |
79 | desc => 'one file UpperText', | |
80 | ); | |
81 | $self->tidy( | |
82 | plugins => { | |
83 | test_plugin('UpperText') => { select => '**/*.txt', only_modes => 'upper' }, | |
84 | test_plugin('ReverseFoo') => { select => '**/foo*', only_modes => 'reversals' } | |
85 | }, | |
86 | source => { "foo.txt" => "abc" }, | |
87 | dest => { "foo.txt" => "cba" }, | |
88 | desc => 'one file reversals mode', | |
89 | options => { mode => 'reversals' }, | |
90 | ); | |
91 | $self->tidy( | |
92 | plugins => { %UpperText, %ReverseFoo }, | |
93 | source => { | |
94 | "foo.txt" => "abc", | |
95 | "bar.txt" => "def", | |
96 | "foo.tx" => "ghi", | |
97 | "bar.tx" => "jkl" | |
98 | }, | |
99 | dest => { | |
100 | "foo.txt" => "CBA", | |
101 | "bar.txt" => "DEF", | |
102 | "foo.tx" => "ihg", | |
103 | "bar.tx" => "jkl" | |
104 | }, | |
105 | desc => 'four files UpperText ReverseFoo', | |
106 | ); | |
107 | $self->tidy( | |
108 | plugins => {%UpperText}, | |
109 | source => { "foo.txt" => "abc1" }, | |
110 | dest => { "foo.txt" => "abc1" }, | |
111 | desc => 'one file UpperText errors', | |
112 | errors => qr/non-alpha content/ | |
113 | ); | |
114 | } | |
115 | ||
116 | sub test_multiple_plugin_instances : Tests { | |
117 | my $self = shift; | |
118 | $self->tidy( | |
119 | plugins => { | |
120 | test_plugin('RepeatFoo for txt') => { select => '**/*.txt', times => 2 }, | |
121 | test_plugin('RepeatFoo for foo') => { select => '**/foo.*', times => 3 }, | |
122 | %UpperText | |
123 | }, | |
124 | source => { "foo.txt" => "abc", "foo.dat" => "def", "bar.txt" => "ghi" }, | |
125 | dest => { | |
126 | "foo.txt" => scalar( "ABC" x 6 ), | |
127 | "foo.dat" => scalar( "def" x 3 ), | |
128 | "bar.txt" => scalar( "GHI" x 2 ) | |
129 | } | |
130 | ); | |
131 | } | |
132 | ||
133 | sub test_plugin_order_and_atomicity : Tests { | |
134 | my $self = shift; | |
135 | my @plugins = map { | |
136 | ( | |
137 | %ReverseFoo, | |
138 | test_plugin("UpperText $_") => { select => '**/*.txt' }, | |
139 | test_plugin("CheckUpper $_") => { select => '**/*.txt' }, | |
140 | ||
141 | # note without the weight here this would run first, and the | |
142 | # letters in the photetic words themselves would be reversed | |
143 | test_plugin("AlwaysPhonetic") => { select => '**/*.txt', weight => 51 } | |
144 | ) | |
145 | } ( 1 .. 3 ); | |
146 | my $output = capture_stdout { | |
147 | $self->tidy( | |
148 | plugins => {@plugins}, | |
149 | options => { verbose => 1 }, | |
150 | source => { "foo.txt" => "abc" }, | |
151 | dest => { "foo.txt" => "CHARLIE-BRAVO-ALFA" }, | |
152 | like_output => | |
153 | qr/.*ReverseFoo, .*UpperText 1, .*UpperText 2, .*UpperText 3, .*CheckUpper 1, .*CheckUpper 2, .*CheckUpper 3/ | |
154 | ); | |
155 | }; | |
156 | ||
157 | $self->tidy( | |
158 | plugins => { %AToZ, %ReverseFoo, %CheckUpper }, | |
159 | options => { verbose => 1 }, | |
160 | source => { "foo.txt" => "abc" }, | |
161 | dest => { "foo.txt" => "abc" }, | |
162 | errors => qr/lowercase found/, | |
163 | like_output => qr/foo.txt (.*ReverseFoo, .*CheckUpper)/ | |
164 | ); | |
165 | ||
166 | } | |
167 | ||
168 | sub test_quiet_and_verbose : Tests { | |
169 | my $self = shift; | |
170 | ||
171 | foreach my $state ( 'normal', 'quiet', 'verbose' ) { | |
172 | foreach my $error ( 0, 1 ) { | |
173 | my $root_dir = $self->create_dir( { "foo.txt" => ( $error ? "123" : "abc" ) } ); | |
174 | my $output = capture_stdout { | |
175 | my $ct = Code::TidyAll->new( | |
176 | plugins => {%UpperText}, | |
177 | root_dir => $root_dir, | |
178 | ( $state eq 'normal' ? () : ( $state => 1 ) ) | |
179 | ); | |
180 | $ct->process_paths("$root_dir/foo.txt"); | |
181 | }; | |
182 | if ($error) { | |
183 | like( $output, qr/non-alpha content found/, "non-alpha content found ($state)" ); | |
184 | } | |
185 | else { | |
186 | is( $output, "[tidied] foo.txt\n" ) if $state eq 'normal'; | |
187 | is( $output, "" ) if $state eq 'quiet'; | |
188 | like( $output, qr/purging old backups/, "purging old backups ($state)" ) | |
189 | if $state eq 'verbose'; | |
190 | like( | |
191 | $output, | |
192 | qr/\[tidied\] foo\.txt \(\+Code::TidyAll::Test::Plugin::UpperText\)/s, | |
193 | "foo.txt ($state)" | |
194 | ) if $state eq 'verbose'; | |
195 | } | |
196 | } | |
197 | } | |
198 | } | |
199 | ||
200 | sub test_iterations : Tests { | |
201 | my $self = shift; | |
202 | my $root_dir = $self->create_dir( { "foo.txt" => "abc" } ); | |
203 | my $ct = Code::TidyAll->new( | |
204 | plugins => { test_plugin('RepeatFoo') => { select => '**/foo*', times => 3 } }, | |
205 | root_dir => $root_dir, | |
206 | iterations => 2 | |
207 | ); | |
208 | my $file = "$root_dir/foo.txt"; | |
209 | $ct->process_paths($file); | |
210 | is( read_file($file), scalar( "abc" x 9 ), "3^2 = 9" ); | |
211 | } | |
212 | ||
213 | sub test_caching_and_backups : Tests { | |
214 | my $self = shift; | |
215 | ||
216 | my @chi_or_no_chi = (''); | |
217 | if ( eval "use CHI; 1" ) { | |
218 | push @chi_or_no_chi, "chi"; | |
219 | } | |
220 | ||
221 | foreach my $chi (@chi_or_no_chi) { | |
222 | foreach my $cache_model_class ( | |
223 | qw( | |
224 | Code::TidyAll::CacheModel | |
225 | Code::TidyAll::CacheModel::Shared | |
226 | ) | |
227 | ) { | |
228 | foreach my $no_cache ( 0 .. 1 ) { | |
229 | foreach my $no_backups ( 0 .. 1 ) { | |
230 | my $desc | |
231 | = "(no_cache=$no_cache, no_backups=$no_backups, model=$cache_model_class, cache_class=$chi)"; | |
232 | my $root_dir = $self->create_dir( { "foo.txt" => "abc" } ); | |
233 | my $ct = Code::TidyAll->new( | |
234 | plugins => {%UpperText}, | |
235 | root_dir => $root_dir, | |
236 | cache_model_class => $cache_model_class, | |
237 | ( $no_cache ? ( no_cache => 1 ) : () ), | |
238 | ( $no_backups ? ( no_backups => 1 ) : () ), | |
239 | ( $chi ? ( cache => _chi() ) : () ), | |
240 | ); | |
241 | my $output; | |
242 | my $file = "$root_dir/foo.txt"; | |
243 | my $go = sub { | |
244 | $output = capture_stdout { $ct->process_paths($file) }; | |
245 | }; | |
246 | ||
247 | $go->(); | |
248 | is( read_file($file), "ABC", "first file change $desc" ); | |
249 | is( $output, "[tidied] foo.txt\n", "first output $desc" ); | |
250 | ||
251 | $go->(); | |
252 | if ($no_cache) { | |
253 | is( $output, "[checked] foo.txt\n", "second output $desc" ); | |
254 | } | |
255 | else { | |
256 | is( $output, '', "second output $desc" ); | |
257 | } | |
258 | ||
259 | write_file( $file, "ABCD" ); | |
260 | $go->(); | |
261 | is( $output, "[checked] foo.txt\n", "third output $desc" ); | |
262 | ||
263 | write_file( $file, "def" ); | |
264 | $go->(); | |
265 | is( read_file($file), "DEF", "fourth file change $desc" ); | |
266 | is( $output, "[tidied] foo.txt\n", "fourth output $desc" ); | |
267 | ||
268 | my $backup_dir = $ct->data_dir . "/backups"; | |
269 | mkpath( $backup_dir, 0, 0775 ); | |
270 | my @files; | |
271 | find( | |
272 | { | |
273 | follow => 0, | |
274 | wanted => sub { push @files, $_ if -f }, | |
275 | no_chdir => 1 | |
276 | }, | |
277 | $backup_dir | |
278 | ); | |
279 | ||
280 | if ($no_backups) { | |
281 | ok( @files == 0, "no backup files $desc" ); | |
282 | } | |
283 | else { | |
284 | ok( | |
285 | scalar(@files) == 1 || scalar(@files) == 2, | |
286 | "1 or 2 backup files $desc" | |
287 | ); | |
288 | foreach my $file (@files) { | |
289 | like( | |
290 | $file, | |
291 | qr|\.tidyall\.d/backups/foo\.txt-\d+-\d+\.bak|, | |
292 | "backup filename $desc" | |
293 | ); | |
294 | } | |
295 | } | |
296 | } | |
297 | } | |
298 | } | |
299 | } | |
300 | } | |
301 | ||
302 | sub _chi { | |
303 | my $datastore = {}; | |
304 | return CHI->new( driver => 'Memory', datastore => $datastore ); | |
305 | } | |
306 | ||
307 | sub test_selects_and_ignores : Tests { | |
308 | my $self = shift; | |
309 | ||
310 | my @files = ( "a/foo.pl", "b/foo.pl", "a/foo.pm", "a/bar.pm", "b/bar.pm" ); | |
311 | my $root_dir = $self->create_dir( { map { $_ => 'hi' } @files } ); | |
312 | my $ct = Code::TidyAll->new( | |
313 | root_dir => $root_dir, | |
314 | plugins => { | |
315 | test_plugin('UpperText') => { | |
316 | select => '**/*.pl **/*.pm b/bar.pm c/bar.pl', | |
317 | ignore => 'a/foo.pl **/bar.pm c/baz.pl' | |
318 | } | |
319 | } | |
320 | ); | |
321 | cmp_set( [ $ct->find_matched_files() ], [ "$root_dir/a/foo.pm", "$root_dir/b/foo.pl" ] ); | |
322 | cmp_deeply( | |
323 | [ map { $_->name } $ct->plugins_for_path("a/foo.pm") ], | |
324 | [ test_plugin('UpperText') ] | |
325 | ); | |
326 | } | |
327 | ||
328 | sub test_shebang : Tests { | |
329 | my $self = shift; | |
330 | ||
331 | my %files = ( | |
332 | "a/foo.pl" => "#!/usr/bin/perl", | |
333 | "a/foo" => "#!/usr/bin/perl", | |
334 | "a/bar" => "#!/usr/bin/ruby", | |
335 | "a/baz" => "just another perl hacker", | |
336 | "b/foo" => "#!/usr/bin/perl6", | |
337 | "b/bar" => "#!/usr/bin/perl5", | |
338 | "b/baz" => "#!perl -w", | |
339 | "b/bar.pm" => "package b::bar;", | |
340 | ); | |
341 | my $root_dir = $self->create_dir( \%files ); | |
342 | my $ct = Code::TidyAll->new( | |
343 | root_dir => $root_dir, | |
344 | plugins => { | |
345 | test_plugin('UpperText') => { | |
346 | select => '**/*', | |
347 | ignore => '**/*.*', | |
348 | shebang => 'perl perl5', | |
349 | } | |
350 | } | |
351 | ); | |
352 | cmp_set( | |
353 | [ $ct->find_matched_files() ], | |
354 | [ map "$root_dir/$_", qw< a/foo b/bar b/baz > ], | |
355 | ); | |
356 | } | |
357 | ||
358 | sub test_dirs : Tests { | |
359 | my $self = shift; | |
360 | ||
361 | my @files = ( "a/foo.txt", "a/bar.txt", "a/bar.pl", "b/foo.txt" ); | |
362 | my $root_dir = $self->create_dir( { map { $_ => 'hi' } @files } ); | |
363 | ||
364 | foreach my $recursive ( 0 .. 1 ) { | |
365 | my @results; | |
366 | my $output = capture_merged { | |
367 | my $ct = Code::TidyAll->new( | |
368 | plugins => { %UpperText, %ReverseFoo }, | |
369 | root_dir => $root_dir, | |
370 | ( $recursive ? ( recursive => 1 ) : () ) | |
371 | ); | |
372 | @results = $ct->process_paths("$root_dir/a"); | |
373 | }; | |
374 | if ($recursive) { | |
375 | is( @results, 3, "3 results" ); | |
376 | is( scalar( grep { $_->state eq 'tidied' } @results ), 2, "2 tidied" ); | |
377 | like( $output, qr/\[tidied\] a\/foo.txt/ ); | |
378 | like( $output, qr/\[tidied\] a\/bar.txt/ ); | |
379 | is( read_file("$root_dir/a/foo.txt"), "IH" ); | |
380 | is( read_file("$root_dir/a/bar.txt"), "HI" ); | |
381 | is( read_file("$root_dir/a/bar.pl"), "hi" ); | |
382 | is( read_file("$root_dir/b/foo.txt"), "hi" ); | |
383 | } | |
384 | else { | |
385 | is( @results, 1, "1 result" ); | |
386 | is( $results[0]->state, "error", "error" ); | |
387 | like( $output, qr/is a directory/ ); | |
388 | } | |
389 | } | |
390 | } | |
391 | ||
392 | sub test_errors : Tests { | |
393 | my $self = shift; | |
394 | ||
395 | my $root_dir = $self->create_dir( { "foo/bar.txt" => "abc" } ); | |
396 | throws_ok { Code::TidyAll->new( root_dir => $root_dir ) } qr/Missing required/; | |
397 | throws_ok { Code::TidyAll->new( plugins => {} ) } qr/Missing required/; | |
398 | ||
399 | throws_ok { | |
400 | Code::TidyAll->new( | |
401 | root_dir => $root_dir, | |
402 | plugins => {}, | |
403 | bad_param => 1, | |
404 | worse_param => 2 | |
405 | ); | |
406 | } | |
407 | qr/unknown constructor params 'bad_param', 'worse_param'/; | |
408 | ||
409 | throws_ok { | |
410 | Code::TidyAll->new( | |
411 | root_dir => $root_dir, | |
412 | plugins => { 'DoesNotExist' => { select => '**/*' } } | |
413 | )->plugin_objects; | |
414 | } | |
415 | qr/could not load plugin class/; | |
416 | ||
417 | throws_ok { | |
418 | Code::TidyAll->new( | |
419 | root_dir => $root_dir, | |
420 | plugins => { | |
421 | test_plugin('UpperText') => { select => '**/*', bad_option => 1, worse_option => 2 } | |
422 | } | |
423 | )->plugin_objects; | |
424 | } | |
425 | qr/unknown options/; | |
426 | ||
427 | my $ct = Code::TidyAll->new( plugins => {%UpperText}, root_dir => $root_dir ); | |
428 | my $output = capture_stdout { $ct->process_paths("$root_dir/baz/blargh.txt") }; | |
429 | like( $output, qr/baz\/blargh.txt: not a file or directory/, "file not found" ); | |
430 | ||
431 | $output = capture_stdout { $ct->process_paths("$root_dir/foo/bar.txt") }; | |
432 | is( $output, "[tidied] foo/bar.txt\n", "filename output" ); | |
433 | is( read_file("$root_dir/foo/bar.txt"), "ABC", "tidied" ); | |
434 | my $other_dir = realpath( tempdir_simple() ); | |
435 | write_file( "$other_dir/foo.txt", "ABC" ); | |
436 | throws_ok { $ct->process_paths("$other_dir/foo.txt") } qr/not underneath root dir/; | |
437 | } | |
438 | ||
439 | sub test_cli : Tests { | |
440 | my $self = shift; | |
441 | my $output; | |
442 | ||
443 | my @cmd = ( $^X, qw( -Ilib -It/lib bin/tidyall ) ); | |
444 | my $run = sub { system( @cmd, @_ ) }; | |
445 | ||
446 | $output = capture_stdout { | |
447 | $run->("--version"); | |
448 | }; | |
449 | like( $output, qr/tidyall .* on perl/, '--version output' ); | |
450 | $output = capture_stdout { | |
451 | $run->("--help"); | |
452 | }; | |
453 | like( $output, qr/Usage.*Options:/s, '--help output' ); | |
454 | ||
455 | foreach my $conf_name ( "tidyall.ini", ".tidyallrc" ) { | |
456 | subtest( | |
457 | "conf at $conf_name", | |
458 | sub { | |
459 | my $root_dir = $self->create_dir(); | |
460 | my $conf_file = "$root_dir/$conf_name"; | |
461 | write_file( $conf_file, $cli_conf ); | |
462 | ||
463 | write_file( "$root_dir/foo.txt", "hello" ); | |
464 | my $output = capture_stdout { | |
465 | $run->( "$root_dir/foo.txt", "-v" ); | |
466 | }; | |
467 | ||
468 | my ($params_msg) | |
469 | = ( $output =~ /constructing Code::TidyAll with these params:(.*)/ ); | |
470 | ok( defined($params_msg), "params msg" ); | |
471 | like( $params_msg, qr/backup_ttl => '15m'/, 'backup_ttl' ); | |
472 | like( $params_msg, qr/verbose => '?1'?/, 'verbose' ); | |
473 | like( | |
474 | $params_msg, qr/\Qroot_dir => '$root_dir'\E/, | |
475 | 'root_dir' | |
476 | ); | |
477 | like( | |
478 | $output, | |
479 | qr/\[tidied\] foo.txt \(.*RepeatFoo, .*UpperText\)/, | |
480 | 'foo.txt' | |
481 | ); | |
482 | is( | |
483 | read_file("$root_dir/foo.txt"), "HELLOHELLOHELLO", | |
484 | "tidied" | |
485 | ); | |
486 | ||
487 | mkpath( "$root_dir/subdir", 0, 0775 ); | |
488 | write_file( "$root_dir/subdir/foo.txt", "bye" ); | |
489 | write_file( "$root_dir/subdir/foo2.txt", "bye" ); | |
490 | my $cwd = realpath(); | |
491 | capture_stdout { | |
492 | my $dir = pushd "$root_dir/subdir"; | |
493 | system( $^X, "-I$cwd/lib", "-I$cwd/t/lib", "$cwd/bin/tidyall", 'foo.txt' ); | |
494 | }; | |
495 | is( | |
496 | read_file("$root_dir/subdir/foo.txt"), "BYEBYEBYE", | |
497 | "foo.txt tidied" | |
498 | ); | |
499 | is( | |
500 | read_file("$root_dir/subdir/foo2.txt"), "bye", | |
501 | "foo2.txt not tidied" | |
502 | ); | |
503 | ||
504 | # -p / --pipe success | |
505 | # | |
506 | my ( $stdout, $stderr ) = capture { | |
507 | open( | |
508 | my $fh, "|-", @cmd, "-p", | |
509 | "$root_dir/does_not_exist/foo.txt" | |
510 | ); | |
511 | print $fh "echo"; | |
512 | }; | |
513 | is( $stdout, "ECHOECHOECHO", "pipe: stdin tidied" ); | |
514 | unlike( $stderr, qr/\S/, "pipe: no stderr" ); | |
515 | ||
516 | # -p / --pipe error | |
517 | # | |
518 | ( $stdout, $stderr ) = capture { | |
519 | open( my $fh, "|-", @cmd, "--pipe", "$root_dir/foo.txt" ); | |
520 | print $fh "abc1"; | |
521 | }; | |
522 | is( $stdout, "abc1", "pipe: stdin mirrored to stdout" ); | |
523 | like( $stderr, qr/non-alpha content found/ ); | |
524 | } | |
525 | ); | |
526 | } | |
527 | } | |
528 | ||
529 | $cli_conf = ' | |
530 | backup_ttl = 15m | |
531 | verbose = 1 | |
532 | ||
533 | [+Code::TidyAll::Test::Plugin::UpperText] | |
534 | select = **/*.txt | |
535 | ||
536 | [+Code::TidyAll::Test::Plugin::RepeatFoo] | |
537 | select = **/foo* | |
538 | times = 3 | |
539 | '; | |
540 | ||
541 | 1; |
0 | package Test::Code::TidyAll::Conf; | |
1 | ||
2 | use Code::TidyAll; | |
3 | use Code::TidyAll::Util qw(dirname tempdir_simple); | |
4 | use File::Slurp::Tiny qw(read_file write_file); | |
5 | use Test::Class::Most parent => 'Code::TidyAll::Test::Class'; | |
6 | ||
7 | my $conf1; | |
8 | ||
9 | sub test_conf_file : Tests { | |
10 | my $self = shift; | |
11 | my $root_dir = tempdir_simple(); | |
12 | my $conf_file = "$root_dir/tidyall.ini"; | |
13 | write_file( $conf_file, $conf1 ); | |
14 | ||
15 | my $ct = Code::TidyAll->new_from_conf_file($conf_file); | |
16 | my %expected = ( | |
17 | backup_ttl => '5m', | |
18 | backup_ttl_secs => '300', | |
19 | no_backups => undef, | |
20 | no_cache => 1, | |
21 | root_dir => dirname($conf_file), | |
22 | data_dir => "$root_dir/.tidyall.d", | |
23 | plugins => { | |
24 | '+Code::TidyAll::Test::Plugin::UpperText' => { select => '**/*.txt' }, | |
25 | '+Code::TidyAll::Test::Plugin::RepeatFoo' => { select => '**/foo* **/bar*', times => 3 } | |
26 | } | |
27 | ); | |
28 | while ( my ( $method, $value ) = each(%expected) ) { | |
29 | cmp_deeply( $ct->$method, $value, "$method" ); | |
30 | } | |
31 | ||
32 | my $conf2 = $conf1; | |
33 | $conf2 =~ s/times/timez/; | |
34 | write_file( $conf_file, $conf2 ); | |
35 | throws_ok { my $ct = Code::TidyAll->new_from_conf_file($conf_file)->plugin_objects } | |
36 | qr/unknown option 'timez'/; | |
37 | ||
38 | } | |
39 | ||
40 | $conf1 = ' | |
41 | backup_ttl = 5m | |
42 | no_cache = 1 | |
43 | ||
44 | [+Code::TidyAll::Test::Plugin::UpperText] | |
45 | select = **/*.txt | |
46 | ||
47 | [+Code::TidyAll::Test::Plugin::RepeatFoo] | |
48 | select = **/foo* | |
49 | select = **/bar* | |
50 | times = 3 | |
51 | '; |
0 | package Test::Code::TidyAll::Git; | |
1 | ||
2 | use Capture::Tiny qw(capture_stdout capture_stderr capture); | |
3 | use Code::TidyAll::Git::Util qw(git_uncommitted_files); | |
4 | use Code::TidyAll::Util qw(dirname mkpath pushd realpath tempdir_simple); | |
5 | use Code::TidyAll; | |
6 | use File::Slurp::Tiny qw(read_file write_file); | |
7 | use IPC::System::Simple qw(capturex run); | |
8 | use Test::Class::Most parent => 'Code::TidyAll::Test::Class'; | |
9 | ||
10 | my ( $precommit_hook_template, $prereceive_hook_template, $tidyall_ini_template ); | |
11 | ||
12 | sub test_git : Tests { | |
13 | my ($self) = @_; | |
14 | ||
15 | $self->require_executable('git'); | |
16 | ||
17 | my $temp_dir = tempdir_simple; | |
18 | my $work_dir = "$temp_dir/work"; | |
19 | my $hooks_dir = "$work_dir/.git/hooks"; | |
20 | my $output; | |
21 | ||
22 | my $committed = sub { | |
23 | like( capturex( 'git', 'status' ), qr/nothing to commit/, "committed" ); | |
24 | }; | |
25 | my $uncommitted = sub { | |
26 | unlike( capturex( 'git', 'status' ), qr/nothing to commit/, "committed" ); | |
27 | }; | |
28 | ||
29 | my $pushed = sub { | |
30 | unlike( capturex( 'git', 'status' ), qr/Your branch is ahead/, "pushed" ); | |
31 | }; | |
32 | my $unpushed = sub { | |
33 | like( capturex( 'git', 'status' ), qr/Your branch is ahead/, "unpushed" ); | |
34 | }; | |
35 | ||
36 | my $lib_dirs = join q{ }, map { realpath($_) } qw( lib t/lib ); | |
37 | ||
38 | # Create the repo | |
39 | # | |
40 | run( "git", "init", $work_dir ); | |
41 | ok( -d $_, "$_ exists" ) for ( $work_dir, $hooks_dir ); | |
42 | my $pushd = pushd($work_dir); | |
43 | ||
44 | # Add tidyall.ini and .gitignore | |
45 | # | |
46 | write_file( "$work_dir/tidyall.ini", sprintf($tidyall_ini_template) ); | |
47 | write_file( "$work_dir/.gitignore", ".tidyall.d" ); | |
48 | run( "git", "add", "tidyall.ini", ".gitignore" ); | |
49 | run( "git", "commit", "-m", "added", "tidyall.ini", ".gitignore" ); | |
50 | ||
51 | # Add foo.txt, which needs tidying | |
52 | # | |
53 | write_file( "$work_dir/foo.txt", "abc\n" ); | |
54 | cmp_deeply( [ git_uncommitted_files($work_dir) ], [], "no uncommitted files" ); | |
55 | ||
56 | # git add foo.txt and make sure it is now in uncommitted list | |
57 | # | |
58 | run( "git", "add", "foo.txt" ); | |
59 | cmp_deeply( | |
60 | [ git_uncommitted_files($work_dir) ], | |
61 | ["$work_dir/foo.txt"], "one uncommitted file" | |
62 | ); | |
63 | ||
64 | # Add pre-commit hook | |
65 | # | |
66 | my $precommit_hook_file = "$hooks_dir/pre-commit"; | |
67 | my $precommit_hook = sprintf( $precommit_hook_template, $lib_dirs ); | |
68 | write_file( $precommit_hook_file, $precommit_hook ); | |
69 | chmod( 0775, $precommit_hook_file ); | |
70 | ||
71 | # Try to commit, make sure we get error | |
72 | # | |
73 | $output = capture_stderr { system( "git", "commit", "-m", "changed", "-a" ) }; | |
74 | like( $output, qr/1 file did not pass tidyall check/, "1 file did not pass tidyall check" ); | |
75 | like( $output, qr/needs tidying/, "needs tidying" ); | |
76 | $uncommitted->(); | |
77 | ||
78 | # Fix file and commit successfully | |
79 | # | |
80 | write_file( "$work_dir/foo.txt", "ABC\n" ); | |
81 | $output = capture_stderr { run( "git", "commit", "-m", "changed", "-a" ) }; | |
82 | like( $output, qr/\[checked\] foo\.txt/, "checked foo.txt" ); | |
83 | $committed->(); | |
84 | ||
85 | # Create a bare shared repo, then a clone of that | |
86 | # | |
87 | my $shared_dir = "$temp_dir/shared"; | |
88 | my $clone_dir = "$temp_dir/clone"; | |
89 | run( "git", "clone", "-q", "--bare", $work_dir, $shared_dir ); | |
90 | run( "git", "clone", "-q", $shared_dir, $clone_dir ); | |
91 | chdir($clone_dir); | |
92 | $committed->(); | |
93 | ||
94 | # Add prereceive hook to shared repo | |
95 | # | |
96 | my $prereceive_hook_file = "$shared_dir/hooks/pre-receive"; | |
97 | my $prereceive_hook = sprintf( $prereceive_hook_template, $lib_dirs ); | |
98 | write_file( $prereceive_hook_file, $prereceive_hook ); | |
99 | chmod( 0775, $prereceive_hook_file ); | |
100 | ||
101 | # Unfix file and commit | |
102 | # | |
103 | write_file( "$clone_dir/foo.txt", "def\n" ); | |
104 | run( "git", "commit", "-m", "changed", "-a" ); | |
105 | $committed->(); | |
106 | ||
107 | # Try to push, make sure we get error back | |
108 | # | |
109 | $unpushed->(); | |
110 | $output = capture_stderr { system( "git", "push" ) }; | |
111 | like( $output, qr/master -> master/, "master -> master" ); | |
112 | like( $output, qr/1 file did not pass tidyall check/, "1 file did not pass tidyall check" ); | |
113 | like( $output, qr/needs tidying/, "needs tidying" ); | |
114 | $unpushed->(); | |
115 | ||
116 | # Fix file and push successfully | |
117 | # | |
118 | write_file( "$clone_dir/foo.txt", "DEF\n" ); | |
119 | $output = capture_stderr { run( "git", "commit", "-m", "changed", "-a" ) }; | |
120 | $committed->(); | |
121 | $output = capture_stderr { system( "git", "push" ) }; | |
122 | like( $output, qr/master -> master/, "master -> master" ); | |
123 | $pushed->(); | |
124 | ||
125 | # Unfix file and commit | |
126 | # | |
127 | write_file( "$clone_dir/foo.txt", "def\n" ); | |
128 | run( "git", "commit", "-m", "changed", "-a" ); | |
129 | $committed->(); | |
130 | ||
131 | # Try #1: make sure we get error back | |
132 | # | |
133 | $unpushed->(); | |
134 | $output = capture_stderr { system( "git", "push" ) }; | |
135 | like( $output, qr/needs tidying/, "needs tidying" ); | |
136 | $unpushed->(); | |
137 | ||
138 | # Try #2: make sure we get error and repeat notification back | |
139 | # | |
140 | $unpushed->(); | |
141 | $output = capture_stderr { system( "git", "push" ) }; | |
142 | like( $output, qr/needs tidying/, "needs tidying" ); | |
143 | like( $output, qr/Identical push seen 2 times/, "Identical push seen 2 times" ); | |
144 | $unpushed->(); | |
145 | ||
146 | } | |
147 | ||
148 | $precommit_hook_template = '#!' . $^X . "\n" . <<'EOF'; | |
149 | use lib qw(%s); | |
150 | use Code::TidyAll::Git::Precommit; | |
151 | use strict; | |
152 | use warnings; | |
153 | ||
154 | Code::TidyAll::Git::Precommit->check( | |
155 | tidyall_options => { verbose => 1 } | |
156 | ); | |
157 | EOF | |
158 | ||
159 | $prereceive_hook_template = '#!' . $^X . "\n" . <<'EOF'; | |
160 | use lib qw(%s); | |
161 | use Code::TidyAll::Git::Prereceive; | |
162 | use strict; | |
163 | use warnings; | |
164 | ||
165 | Code::TidyAll::Git::Prereceive->check(); | |
166 | EOF | |
167 | ||
168 | $tidyall_ini_template = <<'EOF'; | |
169 | [+Code::TidyAll::Test::Plugin::UpperText] | |
170 | select = **/*.txt | |
171 | EOF | |
172 | ||
173 | 1; |
0 | package Test::Code::TidyAll::Plugin::CSSUnminifier; | |
1 | ||
2 | use Test::Class::Most parent => 'Test::Code::TidyAll::Plugin'; | |
3 | ||
4 | sub _extra_path { | |
5 | 'node_modules/.bin'; | |
6 | } | |
7 | ||
8 | sub test_main : Tests { | |
9 | my $self = shift; | |
10 | ||
11 | $self->require_executable('node'); | |
12 | ||
13 | my $source = 'body {\nfont-family:helvetica;\nfont-size:15pt;\n}'; | |
14 | $self->tidyall( | |
15 | source => $source, | |
16 | expect_tidy => 'body {\n font-family: helvetica;\n font-size: 15pt;\n}\n' | |
17 | ); | |
18 | $self->tidyall( | |
19 | source => $source, | |
20 | conf => { argv => '-w=2' }, | |
21 | expect_tidy => 'body {\n font-family: helvetica;\n font-size: 15pt;\n}\n' | |
22 | ); | |
23 | } | |
24 | ||
25 | 1; |
0 | package Test::Code::TidyAll::Plugin::JSBeautify; | |
1 | ||
2 | use Encode qw(encode); | |
3 | use File::Slurp::Tiny qw(write_file); | |
4 | use Test::Class::Most parent => 'Test::Code::TidyAll::Plugin'; | |
5 | use Test::Warnings qw(warnings); | |
6 | ||
7 | sub _extra_path { | |
8 | 'node_modules/.bin'; | |
9 | } | |
10 | ||
11 | sub test_main : Tests { | |
12 | my $self = shift; | |
13 | ||
14 | $self->require_executable('node'); | |
15 | ||
16 | my $source = 'sp.toggleResult=function(id){foo(id)}'; | |
17 | $self->tidyall( | |
18 | source => $source, | |
19 | expect_tidy => 'sp.toggleResult = function(id) {\n foo(id)\n}', | |
20 | ); | |
21 | $self->tidyall( | |
22 | source => $source, | |
23 | conf => { argv => '--indent-size 3 --brace-style expand' }, | |
24 | expect_tidy => 'sp.toggleResult = function(id)\n{\n foo(id)\n}', | |
25 | ); | |
26 | } | |
27 | ||
28 | sub test_utf8 : Tests { | |
29 | my $self = shift; | |
30 | ||
31 | my $contents = encode( 'UTF-8', qq{var unicode = "Unicode - \x{263a}";} ); | |
32 | my $expect = encode( 'UTF-8', qq{var unicode = "Unicode - \x{263a}";} ); | |
33 | ||
34 | local $SIG{__WARN__} = sub { Carp::cluck(@_) }; | |
35 | is_deeply( | |
36 | [ | |
37 | warnings { | |
38 | $self->tidyall( | |
39 | source => $contents, | |
40 | expect_tidy => $expect, | |
41 | desc => 'tidy UTF-8 from string', | |
42 | ); | |
43 | } | |
44 | ], | |
45 | [], | |
46 | 'no warnings tidying UTF-8 source' | |
47 | ); | |
48 | ||
49 | my $file = $self->{root_dir} . '/test.js'; | |
50 | write_file( $file, $contents ); | |
51 | ||
52 | is_deeply( | |
53 | [ | |
54 | warnings { | |
55 | $self->tidyall( | |
56 | source_file => $file, | |
57 | expect_tidy => $expect, | |
58 | desc => 'tidy UTF-8 from file', | |
59 | ); | |
60 | } | |
61 | ], | |
62 | [], | |
63 | 'no warnings tidying UTF-8 source' | |
64 | ); | |
65 | } | |
66 | ||
67 | 1; |
0 | package Test::Code::TidyAll::Plugin::JSHint; | |
1 | ||
2 | use File::Slurp::Tiny qw(write_file); | |
3 | use Test::Class::Most parent => 'Test::Code::TidyAll::Plugin'; | |
4 | ||
5 | sub test_filename {'foo.js'} | |
6 | ||
7 | sub _extra_path { | |
8 | 'node_modules/.bin'; | |
9 | } | |
10 | ||
11 | sub test_main : Tests { | |
12 | my $self = shift; | |
13 | ||
14 | $self->require_executable('node'); | |
15 | ||
16 | $self->tidyall( | |
17 | source => 'var my_object = {};', | |
18 | expect_ok => 1, | |
19 | desc => 'ok - camelcase', | |
20 | ); | |
21 | $self->tidyall( | |
22 | source => 'while (day)\n shuffle();', | |
23 | expect_ok => 1, | |
24 | desc => 'ok no brace', | |
25 | ); | |
26 | $self->tidyall( | |
27 | source => 'var my_object = new Object();', | |
28 | expect_error => qr/object literal notation/, | |
29 | desc => 'error - object literal', | |
30 | ); | |
31 | $self->tidyall( | |
32 | source => 'var my_object = {};', | |
33 | conf => { options => 'camelcase' }, | |
34 | expect_error => qr/not in camel case/, | |
35 | desc => 'error - camel case - options=camelcase', | |
36 | ); | |
37 | $self->tidyall( | |
38 | source => 'var my_object = {};', | |
39 | conf => { options => 'camelcase curly' }, | |
40 | expect_error => qr/not in camel case/, | |
41 | desc => 'error - camel case - options=camelcase,curly', | |
42 | ); | |
43 | $self->tidyall( | |
44 | source => 'while (day)\n shuffle();', | |
45 | conf => { options => 'camelcase curly' }, | |
46 | expect_error => qr/Expected \'\{/, | |
47 | desc => 'error - curly - options=camelcase,curly', | |
48 | ); | |
49 | ||
50 | my $rc_file = $self->{root_dir} . "/jshint.json"; | |
51 | write_file( $rc_file, '{"camelcase": true}' ); | |
52 | ||
53 | $self->tidyall( | |
54 | source => 'var my_object = {};', | |
55 | conf => { argv => "--config $rc_file" }, | |
56 | expect_error => qr/not in camel case/, | |
57 | desc => 'error - camelcase - conf file', | |
58 | ); | |
59 | $self->tidyall( | |
60 | source => 'var my_object = {};', | |
61 | conf => { argv => "--badoption" }, | |
62 | expect_error => qr/Unknown option/, | |
63 | desc => 'error - bad option' | |
64 | ); | |
65 | } | |
66 | ||
67 | 1; |
0 | package Test::Code::TidyAll::Plugin::JSLint; | |
1 | ||
2 | use Test::Class::Most parent => 'Test::Code::TidyAll::Plugin'; | |
3 | ||
4 | sub test_filename {'foo.js'} | |
5 | ||
6 | sub _extra_path { | |
7 | 'node_modules/.bin'; | |
8 | } | |
9 | ||
10 | sub test_main : Tests { | |
11 | my $self = shift; | |
12 | ||
13 | $self->require_executable('node'); | |
14 | ||
15 | $self->tidyall( | |
16 | source => 'var my_object = {};', | |
17 | expect_ok => 1, | |
18 | desc => 'ok', | |
19 | ); | |
20 | $self->tidyall( | |
21 | source => 'while (true) {\nvar i = 5;\n}', | |
22 | expect_error => qr/Expected 'var' at column 5/, | |
23 | desc => 'error - bad indentation' | |
24 | ); | |
25 | $self->tidyall( | |
26 | source => 'var i; while (true) {\ni = 5;\n}', | |
27 | conf => { argv => '--white' }, | |
28 | expect_ok => 1, | |
29 | desc => 'ok - bad indentation, --white' | |
30 | ); | |
31 | $self->tidyall( | |
32 | source => 'var my_object = {};', | |
33 | conf => { argv => '--badoption' }, | |
34 | expect_error => qr/Usage/, | |
35 | desc => 'error - bad option' | |
36 | ); | |
37 | } | |
38 | ||
39 | 1; |
0 | package Test::Code::TidyAll::Plugin::MasonTidy; | |
1 | ||
2 | use Test::Class::Most parent => 'Test::Code::TidyAll::Plugin'; | |
3 | ||
4 | sub test_main : Tests { | |
5 | my $self = shift; | |
6 | ||
7 | my $source; | |
8 | ||
9 | $source = '%if($foo) {\n%bar(1,2);\n%}'; | |
10 | $self->tidyall( | |
11 | source => $source, | |
12 | conf => { argv => '-m 1' }, | |
13 | expect_tidy => '% if ($foo) {\n% bar( 1, 2 );\n% }' | |
14 | ); | |
15 | $self->tidyall( | |
16 | source => $source, | |
17 | conf => { argv => '-m 1 --perltidy-argv="-pt=2 -i=3"' }, | |
18 | expect_tidy => '% if ($foo) {\n% bar(1, 2);\n% }' | |
19 | ); | |
20 | $self->tidyall( | |
21 | source => $source, | |
22 | conf => { argv => '-m 2 --perltidy-line-argv=" "' }, | |
23 | expect_tidy => '% if ($foo) {\n% bar( 1, 2 );\n% }' | |
24 | ); | |
25 | $self->tidyall( | |
26 | source => $source, | |
27 | conf => { argv => '-m 1 --badoption' }, | |
28 | expect_error => qr/Usage/ | |
29 | ); | |
30 | } | |
31 | ||
32 | 1; |
0 | package Test::Code::TidyAll::Plugin::PHPCodeSniffer; | |
1 | ||
2 | use Test::Class::Most parent => 'Test::Code::TidyAll::Plugin'; | |
3 | ||
4 | sub test_filename {'foo.php'} | |
5 | ||
6 | sub _extra_path { | |
7 | 'php5/usr/bin'; | |
8 | } | |
9 | ||
10 | sub test_main : Tests { | |
11 | my $self = shift; | |
12 | ||
13 | $self->require_executable('php'); | |
14 | ||
15 | my $source = '<?php function foo() { $bar = 5 } ?>'; | |
16 | ||
17 | $self->tidyall( | |
18 | source => $source, | |
19 | conf => { argv => "--severity=6" }, | |
20 | expect_ok => 1, | |
21 | ); | |
22 | $self->tidyall( | |
23 | source => $source, | |
24 | conf => { argv => "--severity=3" }, | |
25 | expect_error => qr/Missing .* doc/, | |
26 | ); | |
27 | $self->tidyall( | |
28 | source => $source, | |
29 | conf => { argv => "--blahblah" }, | |
30 | expect_error => qr/not known/, | |
31 | ); | |
32 | } | |
33 | ||
34 | 1; |
0 | package Test::Code::TidyAll::Plugin::PerlCritic; | |
1 | ||
2 | use File::Slurp::Tiny qw(write_file); | |
3 | use Test::Class::Most parent => 'Test::Code::TidyAll::Plugin'; | |
4 | ||
5 | sub test_main : Tests { | |
6 | my $self = shift; | |
7 | ||
8 | my $rc_file = $self->{root_dir} . "/perlcriticrc"; | |
9 | ||
10 | write_file( $rc_file, "only = 1\nseverity = 1\n[TestingAndDebugging::RequireUseStrict]\n" ); | |
11 | $self->tidyall( | |
12 | source => 'my $foo = 5\n', | |
13 | conf => { argv => "--profile $rc_file" }, | |
14 | expect_error => qr/Code before strictures/, | |
15 | ); | |
16 | $self->tidyall( | |
17 | source => 'use strict;\nuse warnings;\nmy $foo = 5\n', | |
18 | conf => { argv => "--profile $rc_file" }, | |
19 | expect_ok => 1, | |
20 | ); | |
21 | write_file( $rc_file, "only = 1\nseverity = 1\n[CodeLayout::ProhibitHardTabs]\n" ); | |
22 | $self->tidyall( | |
23 | source => 'my $foo = 5\n', | |
24 | conf => { argv => "--profile $rc_file" }, | |
25 | expect_ok => 1, | |
26 | ); | |
27 | $self->tidyall( | |
28 | source => 'my $foo = 5\n', | |
29 | conf => { argv => "--profile $rc_file --badoption" }, | |
30 | expect_error => qr/Unknown option: badoption/ | |
31 | ); | |
32 | write_file( $rc_file, "badconfig = 1\n" ); | |
33 | $self->tidyall( | |
34 | source => 'my $foo = 5\n', | |
35 | conf => { argv => "--profile $rc_file" }, | |
36 | expect_error => qr/"badconfig" is not a supported option/ | |
37 | ); | |
38 | } | |
39 | ||
40 | 1; |
0 | package Test::Code::TidyAll::Plugin::PerlTidy; | |
1 | ||
2 | use Test::Class::Most parent => 'Test::Code::TidyAll::Plugin'; | |
3 | ||
4 | sub test_main : Tests { | |
5 | my $self = shift; | |
6 | ||
7 | my $source = 'if ( $foo) {\nmy $bar = $baz;\n}\n'; | |
8 | $self->tidyall( | |
9 | conf => { argv => '-npro' }, | |
10 | source => $source, | |
11 | expect_tidy => 'if ($foo) {\n my $bar = $baz;\n}\n' | |
12 | ); | |
13 | $self->tidyall( | |
14 | conf => { argv => '-npro -bl' }, | |
15 | source => $source, | |
16 | expect_tidy => 'if ($foo)\n{\n my $bar = $baz;\n}\n' | |
17 | ); | |
18 | $self->tidyall( | |
19 | conf => { argv => '-npro' }, | |
20 | source => 'if ($foo) {\n my $bar = $baz;\n}\n', | |
21 | expect_ok => 1 | |
22 | ); | |
23 | $self->tidyall( | |
24 | conf => { argv => '-npro' }, | |
25 | source => 'if ($foo) {\n my $bar = $baz;\n', | |
26 | expect_error => qr/Final nesting depth/ | |
27 | ); | |
28 | $self->tidyall( | |
29 | conf => { argv => '-npro --badoption' }, | |
30 | source => $source, | |
31 | expect_error => qr/Unknown option: badoption/ | |
32 | ); | |
33 | } | |
34 | ||
35 | 1; |
0 | package Test::Code::TidyAll::Plugin::PerlTidySweet; | |
1 | ||
2 | use Test::Class::Most parent => 'Test::Code::TidyAll::Plugin'; | |
3 | ||
4 | sub test_main : Tests { | |
5 | my $self = shift; | |
6 | ||
7 | my $source = 'if ( $foo) {\nmy $bar = $baz;\n}\n'; | |
8 | $self->tidyall( | |
9 | conf => { argv => '-npro' }, | |
10 | source => $source, | |
11 | expect_tidy => 'if ($foo) {\n my $bar = $baz;\n}\n' | |
12 | ); | |
13 | $self->tidyall( | |
14 | conf => { argv => '-npro -bl' }, | |
15 | source => $source, | |
16 | expect_tidy => 'if ($foo)\n{\n my $bar = $baz;\n}\n' | |
17 | ); | |
18 | $self->tidyall( | |
19 | conf => { argv => '-npro' }, | |
20 | source => 'if ($foo) {\n my $bar = $baz;\n}\n', | |
21 | expect_ok => 1 | |
22 | ); | |
23 | $self->tidyall( | |
24 | source => 'method foo ($x,$y){\nmy $x=$self->x;}\n', | |
25 | expect_tidy => 'method foo ($x,$y) {\n my $x = $self->x;\n}\n', | |
26 | ); | |
27 | $self->tidyall( | |
28 | source => 'if ($foo) {\n my $bar = $baz;\n', | |
29 | expect_error => qr/Final nesting depth/ | |
30 | ); | |
31 | $self->tidyall( | |
32 | conf => { argv => '--badoption' }, | |
33 | source => $source, | |
34 | expect_error => qr/Unknown option: badoption/ | |
35 | ); | |
36 | } | |
37 | ||
38 | 1; |
0 | package Test::Code::TidyAll::Plugin::PodChecker; | |
1 | ||
2 | use Test::Class::Most parent => 'Test::Code::TidyAll::Plugin'; | |
3 | ||
4 | sub test_main : Tests { | |
5 | my $self = shift; | |
6 | ||
7 | $self->tidyall( | |
8 | source => '=head1 DESCRIPTION\n\nHello', | |
9 | expect_ok => 1, | |
10 | desc => 'ok', | |
11 | ); | |
12 | $self->tidyall( | |
13 | source => '=head1 METHODS\n\n=over\n\n=item * foo\n\n', | |
14 | expect_error => qr/without closing =back/, | |
15 | desc => 'error', | |
16 | ); | |
17 | $self->tidyall( | |
18 | source => '=head1 DESCRIPTION\n\n=head1 METHODS\n\n', | |
19 | expect_ok => 1, | |
20 | desc => 'ok - empty section, no warnings', | |
21 | ); | |
22 | $self->tidyall( | |
23 | source => '=head1 DESCRIPTION\n\n=head1 METHODS\n\n', | |
24 | conf => { warnings => 1 }, | |
25 | expect_error => qr/empty section in previous paragraph/, | |
26 | desc => 'error - empty section, warnings=1', | |
27 | ); | |
28 | $self->tidyall( | |
29 | source => '=head1 DESCRIPTION\n\nblah blah\n\n=head1 DESCRIPTION\n\nblah blah', | |
30 | conf => { warnings => 1 }, | |
31 | expect_ok => 1, | |
32 | desc => 'ok - duplicate section, warnings=1', | |
33 | ); | |
34 | $self->tidyall( | |
35 | source => '=head1 DESCRIPTION\n\nblah blah\n\n=head1 DESCRIPTION\n\nblah blah', | |
36 | conf => { warnings => 2 }, | |
37 | expect_error => qr/multiple occurrence/, | |
38 | desc => 'error - duplicate section, warnings=2', | |
39 | ); | |
40 | } | |
41 | ||
42 | 1; |
0 | package Test::Code::TidyAll::Plugin::PodSpell; | |
1 | ||
2 | use File::Slurp::Tiny qw(write_file); | |
3 | use Test::Class::Most parent => 'Test::Code::TidyAll::Plugin'; | |
4 | ||
5 | sub test_filename {'Foo.pod'} | |
6 | ||
7 | sub test_main : Tests { | |
8 | my $self = shift; | |
9 | ||
10 | my $dict_file = $self->{root_dir} . "/.ispell_english"; | |
11 | ||
12 | $self->tidyall( | |
13 | source => '=head SUMMARY\n\nthe quick brown fox jumped over the lazy dogs', | |
14 | expect_ok => 1, | |
15 | desc => 'ok', | |
16 | ); | |
17 | $self->tidyall( | |
18 | source => '=head SUMMARY\n\nthe quick browwn fox jumped over the lazeey dogs', | |
19 | expect_error => qr/unrecognized words:\nbrowwn\nlazeey/, | |
20 | desc => 'spelling mistakes', | |
21 | ); | |
22 | write_file( $dict_file, "browwn\n" ); | |
23 | $self->tidyall( | |
24 | source => '=head SUMMARY\n\nthe quick browwn fox jumped over the lazeey dogs', | |
25 | conf => { ispell_argv => "-p $dict_file" }, | |
26 | expect_error => qr/unrecognized words:\nlazeey/, | |
27 | desc => 'spelling mistakes, one in dictionary', | |
28 | ); | |
29 | write_file( $dict_file, "browwn\nlazeey\n" ); | |
30 | $self->tidyall( | |
31 | source => '=head SUMMARY\n\nthe quick browwn fox jumped over the lazeey dogs', | |
32 | conf => { ispell_argv => "-p $dict_file" }, | |
33 | expect_ok => 1, | |
34 | desc => 'spelling mistakes, all in dictionary', | |
35 | ); | |
36 | } | |
37 | ||
38 | 1; |
0 | package Test::Code::TidyAll::Plugin::PodTidy; | |
1 | ||
2 | use Test::Class::Most parent => 'Test::Code::TidyAll::Plugin'; | |
3 | ||
4 | sub test_main : Tests { | |
5 | my $self = shift; | |
6 | ||
7 | my $source = '=head1 DESCRIPTION | |
8 | ||
9 | There are a lot of great code tidiers and validators out there. C<tidyall> makes them available from a single unified interface. | |
10 | ||
11 | You can run C<tidyall> on a single file or on an entire project hierarchy, and configure which tidiers/validators are applied to which files. C<tidyall> will back up files beforehand, and for efficiency will only consider files that have changed since they were last processed. | |
12 | ||
13 | '; | |
14 | $self->tidyall( | |
15 | source => $source, | |
16 | expect_tidy => '=head1 DESCRIPTION | |
17 | ||
18 | There are a lot of great code tidiers and validators out there. C<tidyall> | |
19 | makes them available from a single unified interface. | |
20 | ||
21 | You can run C<tidyall> on a single file or on an entire project hierarchy, and | |
22 | configure which tidiers/validators are applied to which files. C<tidyall> will | |
23 | back up files beforehand, and for efficiency will only consider files that have | |
24 | changed since they were last processed. | |
25 | ||
26 | ', | |
27 | desc => 'tidy - defaults', | |
28 | ); | |
29 | ||
30 | $self->tidyall( | |
31 | source => '=head1 DESCRIPTION | |
32 | ||
33 | There are a lot of great code tidiers and validators out there. C<tidyall> | |
34 | makes them available from a single unified interface. | |
35 | ||
36 | You can run C<tidyall> on a single file or on an entire project hierarchy, and | |
37 | configure which tidiers/validators are applied to which files. C<tidyall> will | |
38 | back up files beforehand, and for efficiency will only consider files that have | |
39 | changed since they were last processed. | |
40 | ||
41 | ', | |
42 | expect_ok => 1, | |
43 | desc => 'ok - defaults', | |
44 | ); | |
45 | ||
46 | $self->tidyall( | |
47 | source => $source, | |
48 | conf => { columns => 30 }, | |
49 | expect_tidy => '=head1 DESCRIPTION | |
50 | ||
51 | There are a lot of great code | |
52 | tidiers and validators out | |
53 | there. C<tidyall> makes them | |
54 | available from a single | |
55 | unified interface. | |
56 | ||
57 | You can run C<tidyall> on a | |
58 | single file or on an entire | |
59 | project hierarchy, and | |
60 | configure which | |
61 | tidiers/validators are | |
62 | applied to which files. | |
63 | C<tidyall> will back up files | |
64 | beforehand, and for | |
65 | efficiency will only consider | |
66 | files that have changed since | |
67 | they were last processed. | |
68 | ||
69 | ', | |
70 | desc => 'tidy - columns = 30', | |
71 | ); | |
72 | } | |
73 | ||
74 | 1; |
0 | package Test::Code::TidyAll::Plugin::SortLines; | |
1 | ||
2 | use Test::Class::Most parent => 'Test::Code::TidyAll::Plugin'; | |
3 | ||
4 | sub test_main : Tests { | |
5 | my $self = shift; | |
6 | ||
7 | $self->tidyall( source => "c\nb\na\n", expect_tidy => "a\nb\nc\n" ); | |
8 | $self->tidyall( source => "\n\na\n\n\n", expect_tidy => "a\n" ); | |
9 | } | |
10 | ||
11 | 1; |
0 | package Test::Code::TidyAll::Plugin; | |
1 | ||
2 | use Capture::Tiny qw(capture); | |
3 | use Code::TidyAll::Util qw(pushd tempdir_simple); | |
4 | use Code::TidyAll; | |
5 | use File::Slurp::Tiny qw(read_file); | |
6 | use Test::Class::Most parent => 'Code::TidyAll::Test::Class'; | |
7 | use Test::Differences qw( eq_or_diff ); | |
8 | use autodie; | |
9 | ||
10 | __PACKAGE__->SKIP_CLASS("Virtual base class"); | |
11 | ||
12 | my $Test = Test::Builder->new; | |
13 | ||
14 | sub startup : Tests(startup => no_plan) { | |
15 | my $self = shift; | |
16 | ||
17 | $self->{root_dir} = tempdir_simple(); | |
18 | } | |
19 | ||
20 | sub plugin_class { | |
21 | my ($self) = @_; | |
22 | ||
23 | return ( split( '::', ref($self) ) )[-1]; | |
24 | } | |
25 | ||
26 | sub test_filename {'foo.txt'} | |
27 | ||
28 | sub tidyall { | |
29 | my ( $self, %p ) = @_; | |
30 | ||
31 | my $extra = $self->_extra_path(); | |
32 | local $ENV{PATH} = $ENV{PATH}; | |
33 | $ENV{PATH} .= q{:} . $extra if $extra; | |
34 | ||
35 | my $plugin_class = $self->plugin_class; | |
36 | my %plugin_conf = ( $plugin_class => { select => '*', %{ $p{conf} || {} } } ); | |
37 | my $ct = Code::TidyAll->new( | |
38 | quiet => 1, | |
39 | root_dir => $self->{root_dir}, | |
40 | plugins => \%plugin_conf, | |
41 | ); | |
42 | ||
43 | my ( $source, $result, $output, $error ); | |
44 | if ( $p{source} ) { | |
45 | $source = $p{source}; | |
46 | $source =~ s/\\n/\n/g; | |
47 | ( $output, $error ) = capture { | |
48 | $result = $ct->process_source( $source, $self->test_filename ) | |
49 | }; | |
50 | } | |
51 | elsif ( $p{source_file} ) { | |
52 | ( $output, $error ) | |
53 | = capture { $result = $ct->process_file( $p{source_file} ) }; | |
54 | } | |
55 | else { | |
56 | die 'The tidyall() method requires a source or source_file parameter'; | |
57 | } | |
58 | ||
59 | my $desc = $p{desc} || $p{source} || $p{source_file}; | |
60 | ||
61 | $Test->diag($output) if $output && $ENV{TEST_VERBOSE}; | |
62 | $Test->diag($error) if $error && $ENV{TEST_VERBOSE}; | |
63 | ||
64 | if ( my $expect_tidy = $p{expect_tidy} ) { | |
65 | $expect_tidy =~ s/\\n/\n/g; | |
66 | is( $result->state, 'tidied', "state=tidied [$desc]" ); | |
67 | eq_or_diff( | |
68 | $result->new_contents, $expect_tidy, | |
69 | "new contents [$desc]" | |
70 | ); | |
71 | is( $result->error, undef, "no error [$desc]" ); | |
72 | } | |
73 | elsif ( my $expect_ok = $p{expect_ok} ) { | |
74 | is( $result->state, 'checked', "state=checked [$desc]" ); | |
75 | is( $result->error, undef, "no error [$desc]" ); | |
76 | if ( $result->new_contents ) { | |
77 | $source ||= read_file( $p{source_file} ); | |
78 | is( $result->new_contents, $source, "same contents [$desc]" ); | |
79 | } | |
80 | } | |
81 | elsif ( my $expect_error = $p{expect_error} ) { | |
82 | is( $result->state, 'error', "state=error [$desc]" ); | |
83 | like( $result->error || '', $expect_error, "error message [$desc]" ); | |
84 | } | |
85 | } | |
86 | ||
87 | sub _extra_path { | |
88 | return; | |
89 | } | |
90 | ||
91 | 1; |
0 | package Test::Code::TidyAll::SVN; | |
1 | ||
2 | use Capture::Tiny qw(capture_stdout capture_stderr capture); | |
3 | use Code::TidyAll::SVN::Precommit; | |
4 | use Code::TidyAll::SVN::Util qw(svn_uncommitted_files); | |
5 | use Code::TidyAll::Util qw(dirname mkpath realpath tempdir_simple); | |
6 | use Code::TidyAll; | |
7 | use File::Slurp::Tiny qw(read_file write_file); | |
8 | use IPC::System::Simple qw(run); | |
9 | use Test::Class::Most parent => 'Code::TidyAll::Test::Class'; | |
10 | ||
11 | my ( $precommit_hook_template, $tidyall_ini_template ); | |
12 | ||
13 | sub test_svn : Tests { | |
14 | my ($self) = @_; | |
15 | ||
16 | $self->require_executable('svn'); | |
17 | ||
18 | my $temp_dir = tempdir_simple; | |
19 | my $repo_dir = "$temp_dir/repo"; | |
20 | my $src_dir = "$temp_dir/src"; | |
21 | my $work_dir = "$temp_dir/work"; | |
22 | my $hook_log = "$temp_dir/hook.log"; | |
23 | my ( $stdout, $stderr ); | |
24 | ||
25 | my $log_contains = sub { | |
26 | my $regex = shift; | |
27 | like( read_file($hook_log), $regex ); | |
28 | }; | |
29 | ||
30 | my $clear_log = sub { | |
31 | run("cat /dev/null > $hook_log"); | |
32 | }; | |
33 | ||
34 | my $committed = sub { | |
35 | $stdout = capture_stdout { system( sprintf( 'svn status %s', $work_dir ) ) }; | |
36 | unlike( $stdout, qr/\S/, "committed" ); | |
37 | }; | |
38 | ||
39 | my $uncommitted = sub { | |
40 | $stdout = capture_stdout { system( sprintf( 'svn status %s', $work_dir ) ) }; | |
41 | like( $stdout, qr/^M/, "uncommitted" ); | |
42 | }; | |
43 | ||
44 | run("svnadmin create $repo_dir"); | |
45 | my $hooks_dir = "$repo_dir/hooks"; | |
46 | ok( -d $hooks_dir, "$hooks_dir exists" ); | |
47 | ||
48 | mkpath( $src_dir, 0, 0775 ); | |
49 | write_file( "$src_dir/foo.txt", "abc" ); | |
50 | ||
51 | run( sprintf( 'svn -q import %s file://%s/myapp/trunk -m "import"', $src_dir, $repo_dir ) ); | |
52 | run( sprintf( 'svn -q checkout file://%s/myapp/trunk %s', $repo_dir, $work_dir ) ); | |
53 | ||
54 | is( read_file("$work_dir/foo.txt"), "abc", "checkout and import ok" ); | |
55 | cmp_deeply( [ svn_uncommitted_files($work_dir) ], [], "no uncommitted files" ); | |
56 | ||
57 | my $precommit_hook_file = "$hooks_dir/pre-commit"; | |
58 | my $precommit_hook = sprintf( $precommit_hook_template, realpath("lib"), $hook_log ); | |
59 | write_file( $precommit_hook_file, $precommit_hook ); | |
60 | chmod( 0775, $precommit_hook_file ); | |
61 | ||
62 | write_file( "$work_dir/foo.txt", "abc " ); | |
63 | mkpath( "$work_dir/bar", 0, 0775 ); | |
64 | run( sprintf( 'svn add %s/bar', $work_dir ) ); | |
65 | cmp_deeply( [ svn_uncommitted_files($work_dir) ], [ re("foo.txt") ], "one uncommitted file" ); | |
66 | ||
67 | $stderr = capture_stderr { | |
68 | run( sprintf( 'svn -q commit -m "changed" %s/foo.txt %s/bar', $work_dir, $work_dir ) ); | |
69 | }; | |
70 | unlike( $stderr, qr/\S/ ); | |
71 | $log_contains->(qr|could not find.*upwards from 'myapp/trunk/foo.txt'|); | |
72 | $clear_log->(); | |
73 | $committed->(); | |
74 | cmp_deeply( [ svn_uncommitted_files($work_dir) ], [], "no uncommitted files" ); | |
75 | ||
76 | write_file( "$work_dir/tidyall.ini", sprintf($tidyall_ini_template) ); | |
77 | run( sprintf( 'svn -q add %s/tidyall.ini', $work_dir ) ); | |
78 | cmp_deeply( | |
79 | [ svn_uncommitted_files($work_dir) ], | |
80 | [ re("tidyall.ini") ], | |
81 | "one uncommitted file" | |
82 | ); | |
83 | run( sprintf( 'svn -q commit -m "added" %s/tidyall.ini', $work_dir ) ); | |
84 | ||
85 | write_file( "$work_dir/foo.txt", "abc" ); | |
86 | $stderr | |
87 | = capture_stderr { system( sprintf( 'svn -q commit -m "changed" %s/foo.txt', $work_dir ) ) }; | |
88 | like( $stderr, qr/1 file did not pass tidyall check/ ); | |
89 | like( $stderr, qr/needs tidying/ ); | |
90 | $uncommitted->(); | |
91 | ||
92 | write_file( "$work_dir/foo.txt", "ABC" ); | |
93 | write_file( "$work_dir/bar.dat", "123" ); | |
94 | run( sprintf( 'svn -q add %s/bar.dat', $work_dir ) ); | |
95 | $stderr = capture_stderr { | |
96 | system( | |
97 | sprintf( 'svn -q commit -m "changed" %s/foo.txt %s/bar.dat', $work_dir, $work_dir ) ); | |
98 | }; | |
99 | unlike( $stderr, qr/\S/ ); | |
100 | $committed->(); | |
101 | ||
102 | write_file( "$work_dir/foo.txt", "def" ); | |
103 | $stderr = capture_stderr { | |
104 | system( sprintf( 'svn -q commit -m "NO TIDYALL - emergency fix!" %s/foo.txt', $work_dir ) ); | |
105 | }; | |
106 | unlike( $stderr, qr/\S/ ); | |
107 | $committed->(); | |
108 | } | |
109 | ||
110 | $precommit_hook_template = '#!' . $^X . "\n" . <<'EOF'; | |
111 | use lib qw(%s); | |
112 | use Code::TidyAll::SVN::Precommit; | |
113 | use Log::Any::Adapter (File => "%s"); | |
114 | use strict; | |
115 | use warnings; | |
116 | ||
117 | Code::TidyAll::SVN::Precommit->check( | |
118 | extra_conf_files => ["perlcriticrc"], | |
119 | tidyall_options => { verbose => 1 } | |
120 | ); | |
121 | EOF | |
122 | ||
123 | $tidyall_ini_template = <<'EOF'; | |
124 | [+Code::TidyAll::Test::Plugin::UpperText] | |
125 | select = **/*.txt | |
126 | EOF |
0 | package Test::Code::TidyAll::Util; | |
1 | ||
2 | use Code::TidyAll::Util qw(dirname tempdir_simple); | |
3 | use IPC::System::Simple qw(capturex); | |
4 | use Test::Class::Most parent => 'Code::TidyAll::Test::Class'; | |
5 | ||
6 | sub test_tempdir_simple : Tests { | |
7 | my $dir = capturex( | |
8 | "$^X", "-I", | |
9 | "lib", "-MCode::TidyAll::Util", | |
10 | "-e", "print Code::TidyAll::Util::tempdir_simple " | |
11 | ); | |
12 | ok( -d dirname($dir), "parent exists" ); | |
13 | ok( !-d $dir, "dir does not exist" ); | |
14 | } | |
15 | ||
16 | 1; |
0 | package Test::Code::TidyAll::Zglob; | |
1 | ||
2 | use File::Zglob; | |
3 | use Test::Class::Most parent => 'Code::TidyAll::Test::Class'; | |
4 | use Code::TidyAll::Util::Zglob qw(zglob_to_regex); | |
5 | ||
6 | sub test_match : Tests { | |
7 | my ( $zglob, $regex ); | |
8 | ||
9 | $zglob = "**/*.txt"; | |
10 | $regex = zglob_to_regex($zglob); | |
11 | foreach my $path (qw(foo.txt foo/baz.txt foo/bar/baz.txt)) { | |
12 | like( $path, $regex, "$path matches $zglob" ); | |
13 | } | |
14 | foreach my $path (qw(foo/bar/baz.tx)) { | |
15 | unlike( $path, $regex, "$path does not match $zglob" ); | |
16 | } | |
17 | ||
18 | $zglob = "**/*"; | |
19 | $regex = zglob_to_regex($zglob); | |
20 | foreach my $path (qw(foo foo.txt foo/bar foo/baz.txt)) { | |
21 | like( $path, $regex, "$path matches $zglob" ); | |
22 | } | |
23 | ||
24 | $zglob = "foo/**/*.txt"; | |
25 | $regex = zglob_to_regex($zglob); | |
26 | foreach my $path (qw(foo/baz.txt foo/bar/baz.txt foo/bar/baz/blargh.txt)) { | |
27 | like( $path, $regex, "$path matches $zglob" ); | |
28 | } | |
29 | foreach my $path (qw(foo.txt foo/bar/baz.tx)) { | |
30 | unlike( $path, $regex, "$path does not match $zglob" ); | |
31 | } | |
32 | } | |
33 | ||
34 | 1; |
0 | #!perl | |
1 | ||
2 | BEGIN { | |
3 | unless ($ENV{RELEASE_TESTING}) { | |
4 | require Test::More; | |
5 | Test::More::plan(skip_all => 'these tests are for release candidate testing'); | |
6 | } | |
7 | } | |
8 | ||
9 | ||
10 | use strict; | |
11 | use warnings; | |
12 | ||
13 | use Test::More 0.96 tests => 2; | |
14 | use_ok('Test::CPAN::Changes'); | |
15 | subtest 'changes_ok' => sub { | |
16 | changes_file_ok('Changes'); | |
17 | }; | |
18 | done_testing(); |
0 | [PerlTidy] | |
1 | argv = --pro=$ROOT/perltidyrc | |
2 | except_modes = dzil | |
3 | select = {bin,lib,t}/**/{tidyall,*.{pl,pm,t}} | |
4 | ignore = t/00-report-prereqs.t | |
5 | ignore = t/author-* | |
6 | ignore = t/release-* | |
7 | ||
8 | [PerlTidySweet] | |
9 | argv = --pro=$ROOT/perltidyrc | |
10 | except_modes = dzil | |
11 | select = {bin,lib,t}/**/{tidyall,*.{pl,pm,t}} | |
12 | ignore = t/00-report-prereqs.t | |
13 | ignore = t/author-* | |
14 | ignore = t/release-* | |
15 | ||
16 | [PodTidy] | |
17 | select = {bin,lib}/**/{tidyall,*.{pl,pm,pod}} | |
18 | ignore = t/00-report-prereqs.t | |
19 | ignore = t/author-* | |
20 | ignore = t/release-* | |
21 | ||
22 | [PerlCritic] | |
23 | select = lib/**/*.pm | |
24 | argv = --profile $ROOT/perlcriticrc | |
25 | except_modes = editor dzil | |
26 | ignore = t/00-report-prereqs.t | |
27 | ignore = t/author-* | |
28 | ignore = t/release-* | |
29 | ||
30 | [SortLines] | |
31 | select = .gitignore .ispell* **/.gitignore | |
32 | ||
33 | [Perl::AlignMooseAttributes] | |
34 | select = {bin,lib,t}/**/*.{pl,pm,t} | |
35 | except_modes = dzil | |
36 | ignore = t/00-report-prereqs.t | |
37 | ignore = t/author-* | |
38 | ignore = t/release-* |