leftovers 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/.leftovers.yml +19 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +216 -0
  6. data/.ruby-version +1 -0
  7. data/.spellr.yml +13 -0
  8. data/.spellr_wordlists/english.txt +21 -0
  9. data/.spellr_wordlists/lorem.txt +1 -0
  10. data/.spellr_wordlists/ruby.txt +67 -0
  11. data/.spellr_wordlists/shell.txt +3 -0
  12. data/.travis.yml +10 -0
  13. data/Configuration.md +427 -0
  14. data/Gemfile +6 -0
  15. data/LICENSE.txt +21 -0
  16. data/README.md +172 -0
  17. data/Rakefile +16 -0
  18. data/bin/console +15 -0
  19. data/bin/setup +8 -0
  20. data/exe/leftovers +6 -0
  21. data/leftovers.gemspec +42 -0
  22. data/lib/config/attr_encrypted.yml +16 -0
  23. data/lib/config/builder.yml +3 -0
  24. data/lib/config/capistrano.yml +3 -0
  25. data/lib/config/datagrid.yml +9 -0
  26. data/lib/config/flipper.yml +3 -0
  27. data/lib/config/graphql.yml +20 -0
  28. data/lib/config/guard.yml +3 -0
  29. data/lib/config/haml.yml +2 -0
  30. data/lib/config/jbuilder.yml +2 -0
  31. data/lib/config/okcomputer.yml +3 -0
  32. data/lib/config/parser.yml +91 -0
  33. data/lib/config/pry.yml +3 -0
  34. data/lib/config/rack.yml +2 -0
  35. data/lib/config/rails.yml +387 -0
  36. data/lib/config/rake.yml +5 -0
  37. data/lib/config/redcarpet.yml +38 -0
  38. data/lib/config/rollbar.yml +3 -0
  39. data/lib/config/rspec.yml +56 -0
  40. data/lib/config/ruby.yml +77 -0
  41. data/lib/config/selenium.yml +21 -0
  42. data/lib/config/simplecov.yml +2 -0
  43. data/lib/config/will_paginate.yml +14 -0
  44. data/lib/leftovers/argument_rule.rb +216 -0
  45. data/lib/leftovers/backports.rb +56 -0
  46. data/lib/leftovers/cli.rb +50 -0
  47. data/lib/leftovers/collector.rb +67 -0
  48. data/lib/leftovers/config.rb +53 -0
  49. data/lib/leftovers/core_ext.rb +32 -0
  50. data/lib/leftovers/definition.rb +70 -0
  51. data/lib/leftovers/definition_set.rb +44 -0
  52. data/lib/leftovers/erb.rb +20 -0
  53. data/lib/leftovers/file.rb +30 -0
  54. data/lib/leftovers/file_collector.rb +219 -0
  55. data/lib/leftovers/file_list.rb +24 -0
  56. data/lib/leftovers/haml.rb +24 -0
  57. data/lib/leftovers/hash_rule.rb +40 -0
  58. data/lib/leftovers/merged_config.rb +71 -0
  59. data/lib/leftovers/name_rule.rb +53 -0
  60. data/lib/leftovers/node.rb +182 -0
  61. data/lib/leftovers/rake_task.rb +62 -0
  62. data/lib/leftovers/reporter.rb +11 -0
  63. data/lib/leftovers/rule.rb +74 -0
  64. data/lib/leftovers/transform_rule.rb +171 -0
  65. data/lib/leftovers/value_rule.rb +56 -0
  66. data/lib/leftovers/version.rb +5 -0
  67. data/lib/leftovers.rb +127 -0
  68. metadata +281 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 392cec9799ddf44fd1b532c714e70bdeb5bcd56d68843015fd45ab12aa747813
4
+ data.tar.gz: 2b34e3689fa2a376e83372234b936f0f9d0a4f0db1bd01f3cd4f48191f8d4f49
5
+ SHA512:
6
+ metadata.gz: a8a681a625180b33210f36f74f2d5a2da5ade1955adbf357f9feefdd03fb32ea7088a57392056d4c31d6e937f4dbde79e54547ee80323ae8dd5d16997accea49
7
+ data.tar.gz: 1679d83c75a635bf12b2978bb415ae2d5f7280b5a162df16529058af2d3b0b814762e8710704cca3f84aa75e7d4809d396ee1baaa094a618544365fe47e21f77
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ .rspec_status
2
+ Gemfile.lock
3
+ /pkg/
4
+
data/.leftovers.yml ADDED
@@ -0,0 +1,19 @@
1
+ exclude_paths:
2
+ - /vendor
3
+
4
+ rules:
5
+ - skip: true
6
+ name:
7
+ - add_insert_cmd # called by ::ERB::Compiler
8
+ - add_put_cmd # called by ::ERB::Compiler
9
+ - Node
10
+ - name:
11
+ - RUBY_STRING_METHODS
12
+ - ACTIVESUPPORT_STRING_METHODS
13
+ - CUSTOM_TRANSFORMS
14
+ calls:
15
+ argument: 1
16
+ - name: HASH_VALUE_TRANSFORMS
17
+ calls:
18
+ argument: 1
19
+ add_suffix: _dynamic
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,216 @@
1
+ require: rubocop-rspec
2
+
3
+ # Reference:
4
+ # https://rubocop.readthedocs.io/en/latest/
5
+
6
+ # Keep this in alphabetical order.
7
+ # Each override should have a comment (even if it's just "default is bad")
8
+
9
+ AllCops:
10
+ NewCops: enable
11
+ Exclude:
12
+ - db/schema*
13
+ - .bundle/**/*
14
+ - tmp/**/*
15
+ - vendor/**/*
16
+ DisplayCopNames: true
17
+ DisplayStyleGuide: true
18
+ TargetRubyVersion: 2.4
19
+
20
+ # all of our layout customisations are because we prefer indentation to be
21
+ # always consistently 2 spaces, for blocks, scopes, multiline expressions, etc
22
+ # e.g.
23
+ # class Klass
24
+ # def method(arg1,
25
+ # arg2)
26
+ # value = if arg1 == 'value' && arg2 == 'value'
27
+ # method2
28
+ # .method(arg_a, arg_b,
29
+ # arg_c, arg_d, keyword1: true,
30
+ # keyword2: true) do
31
+ # @last = [
32
+ # arg_a, arg_b,
33
+ # arg_c, arg_d
34
+ # ]
35
+ # end
36
+ # end
37
+ # value
38
+ # end
39
+ # end
40
+
41
+ # to match our preference for consistent indentation
42
+ Layout/HashAlignment:
43
+ EnforcedLastArgumentHashStyle: always_ignore
44
+
45
+ # to match our preference for consistent indentation
46
+ Layout/ParameterAlignment:
47
+ EnforcedStyle: with_fixed_indentation
48
+
49
+ # to match our preference for consistent indentation
50
+ Layout/BlockAlignment:
51
+ EnforcedStyleAlignWith: start_of_block
52
+
53
+ # to match our preference for consistent indentation
54
+ Layout/CaseIndentation:
55
+ EnforcedStyle: end
56
+
57
+ # to match our preference for consistent indentation
58
+ Layout/EndAlignment:
59
+ EnforcedStyleAlignWith: start_of_line
60
+
61
+ # Aligning Assignments, etc makes diffs noisy
62
+ Layout/ExtraSpacing:
63
+ AllowForAlignment: false
64
+
65
+ # to match our preference for consistent indentation
66
+ Layout/FirstArrayElementLineBreak:
67
+ Enabled: true
68
+
69
+ # to match our preference for consistent indentation
70
+ Layout/FirstHashElementLineBreak:
71
+ Enabled: true
72
+
73
+ # to match our preference for consistent indentation
74
+ Layout/FirstArgumentIndentation:
75
+ EnforcedStyle: consistent
76
+
77
+ # to match our preference for consistent indentation
78
+ Layout/FirstArrayElementIndentation:
79
+ EnforcedStyle: consistent
80
+
81
+ # to match our preference for consistent indentation
82
+ Layout/FirstHashElementIndentation:
83
+ EnforcedStyle: consistent
84
+
85
+ # to match our preference for consistent indentation
86
+ # and hanging assignment looks lost
87
+ Layout/MultilineAssignmentLayout:
88
+ EnforcedStyle: same_line
89
+
90
+ # this changes our preferred:
91
+ # value = if thing1 &&
92
+ # thing2
93
+ # to:
94
+ # value = if thing1 &&
95
+ # thing2
96
+ # even though the IndentationWidth is 2
97
+ # but it's right most of the time so I put up with it
98
+ Layout/MultilineOperationIndentation:
99
+ EnforcedStyle: indented
100
+
101
+ Layout/MultilineMethodCallIndentation:
102
+ EnforcedStyle: indented
103
+
104
+ # Temporarily disable this spec as a recent change has broken it for us:
105
+ # https://github.com/rubocop-hq/rubocop/issues/6254
106
+ Layout/RescueEnsureAlignment:
107
+ Enabled: false
108
+
109
+ Metrics:
110
+ CountComments: false
111
+
112
+ Metrics/BlockLength:
113
+ ExcludedMethods:
114
+ - configure
115
+ - describe
116
+ - context
117
+ - it
118
+
119
+ Layout/LineLength:
120
+ Max: 100
121
+ IgnoreCopDirectives: true
122
+
123
+ Metrics/MethodLength:
124
+ Max: 5
125
+
126
+ Naming/MethodParameterName:
127
+ AllowedNames: [_, io, id, to, by, 'on', in, at, ip, db]
128
+
129
+ RSpec:
130
+ Enabled: true
131
+ Include:
132
+ - spec/**/*.rb
133
+
134
+ RSpec/DescribeClass:
135
+ Enabled: false
136
+
137
+ RSpec/ExampleLength:
138
+ Enabled: false
139
+
140
+ # I misuse matchers often
141
+ RSpec/ExpectActual:
142
+ Enabled: false
143
+
144
+ RSpec/FilePath:
145
+ Enabled: false
146
+
147
+ # Multiple expectations are useful
148
+ # checking you've partially achieved something on the way to completely achieving it is useful for debugging failures
149
+ RSpec/MultipleExpectations:
150
+ Enabled: false
151
+
152
+ # It should be obvious from context. Chill out rubocop
153
+ RSpec/NamedSubject:
154
+ Enabled: false
155
+
156
+
157
+ # This matches the style we've been using all along (ever so slightly more frequently)
158
+ Style/Alias:
159
+ EnforcedStyle: prefer_alias_method
160
+
161
+ Style/CollectionMethods:
162
+ Enabled: true
163
+
164
+ # we don't rdoc
165
+ Style/Documentation:
166
+ Enabled: false
167
+
168
+ # [a, b].include?(x) is more unclear than a == x || b == x
169
+ Style/MultipleComparison:
170
+ Enabled: false
171
+
172
+ Style/NumericPredicate:
173
+ Enabled: false
174
+
175
+ # we use %w{} pretty frequently
176
+ Style/PercentLiteralDelimiters:
177
+ PreferredDelimiters:
178
+ default: '{}'
179
+ '%w': '{}'
180
+ '%W': '{}'
181
+ '%i': '{}'
182
+ '%I': '{}'
183
+ '%r': '{}'
184
+
185
+ # We want this to warn to force consistency within the codebase.
186
+ Style/SafeNavigation:
187
+ Enabled: true
188
+
189
+ # different methods calls that do exactly the same thing are a smell, regardless of semantics
190
+ Style/SignalException:
191
+ EnforcedStyle: only_raise
192
+
193
+ # this wants less descriptive names
194
+ Style/SingleLineBlockParams:
195
+ Enabled: false
196
+
197
+ Style/HashEachMethods:
198
+ Enabled: true
199
+ Style/HashTransformKeys:
200
+ Enabled: true
201
+ Style/HashTransformValues:
202
+ Enabled: true
203
+ Lint/RaiseException:
204
+ Enabled: true
205
+ Lint/StructNewOverride:
206
+ Enabled: true
207
+
208
+ # hey rubocop you even use parser which uses :true and :false types. no
209
+ Lint/BooleanSymbol:
210
+ Enabled: false
211
+
212
+ Style/DoubleNegation:
213
+ Enabled: false
214
+
215
+ RSpec/InstanceVariable:
216
+ Enabled: false # I'll figure it out soon
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.5.1
data/.spellr.yml ADDED
@@ -0,0 +1,13 @@
1
+ excludes:
2
+ - vendor
3
+ languages:
4
+ english:
5
+ locale: [US, AU]
6
+ lorem:
7
+ includes:
8
+ - /spec/
9
+ ruby:
10
+ includes:
11
+ - README.md
12
+ - Configuration.md
13
+ - '*.yml'
@@ -0,0 +1,21 @@
1
+ affixxed
2
+ backports
3
+ classnames
4
+ codebase
5
+ esque
6
+ gemfile
7
+ hashbang
8
+ lorem
9
+ nocov
10
+ noninfringement
11
+ precompiled
12
+ readme
13
+ requirables
14
+ rspec
15
+ rubo
16
+ rvm
17
+ sherson
18
+ todo
19
+ unmemoize
20
+ wtf
21
+ yml
@@ -0,0 +1 @@
1
+ baz
@@ -0,0 +1,67 @@
1
+ activesupport
2
+ asgn
3
+ ast
4
+ autolink
5
+ bigint
6
+ camelcase
7
+ camelize
8
+ capfile
9
+ casgn
10
+ cattr
11
+ changelog
12
+ codespan
13
+ configs
14
+ coverband
15
+ csend
16
+ cvasgn
17
+ cyclomatic
18
+ deconstantize
19
+ demodulize
20
+ diffable
21
+ dstr
22
+ dsym
23
+ eflipflop
24
+ encryptor
25
+ gitignore
26
+ guardfile
27
+ gvasgn
28
+ haml
29
+ hrule
30
+ iflipflop
31
+ irange
32
+ ivasgn
33
+ jbuilder
34
+ kwbegin
35
+ kwoptarg
36
+ kwrestarg
37
+ linebreak
38
+ lvars
39
+ lvasgn
40
+ masgn
41
+ mattr
42
+ memoizations
43
+ optarg
44
+ postexe
45
+ postprocess
46
+ precompile
47
+ preexe
48
+ preload
49
+ procarg
50
+ pryrc
51
+ regexps
52
+ resbody
53
+ restarg
54
+ rhtml
55
+ rjs
56
+ rspec
57
+ rubocop
58
+ shadowarg
59
+ simplecov
60
+ strikethrough
61
+ subnodes
62
+ syms
63
+ titlecase
64
+ titleize
65
+ usr
66
+ vasgn
67
+ xstr
@@ -0,0 +1,3 @@
1
+ env
2
+ euo
3
+ usr
data/.travis.yml ADDED
@@ -0,0 +1,10 @@
1
+ ---
2
+ language: ruby
3
+ cache: bundler
4
+ rvm:
5
+ - 2.4
6
+ - 2.5
7
+ - 2.6
8
+ - 2.7
9
+ before_install: gem install bundler
10
+