Skip to content

Commit f227994

Browse files
committed
Merge pull request #1106 from bf4/style_checking
Add Style enforcer (via Rubocop)
2 parents 6784866 + c39c20d commit f227994

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+833
-466
lines changed

.rubocop.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
inherit_from: .rubocop_todo.yml
2+
3+
AllCops:
4+
Exclude:
5+
- config/initializers/forbidden_yaml.rb
6+
- !ruby/regexp /(vendor|bundle|bin|db|tmp)\/.*/
7+
RunRailsCops: true
8+
DisplayCopNames: true
9+
DisplayStyleGuide: true
10+
11+
Lint/NestedMethodDefinition:
12+
Enabled: false
13+
Exclude:
14+
- test/action_controller/serialization_test.rb
15+
16+
Style/StringLiterals:
17+
EnforcedStyle: single_quotes
18+
19+
Metrics/AbcSize:
20+
Max: 35 # TODO: Lower to 15
21+
22+
Metrics/ClassLength:
23+
Max: 261 # TODO: Lower to 100
24+
Exclude:
25+
- test/**/*.rb
26+
27+
Metrics/CyclomaticComplexity:
28+
Max: 7 # TODO: Lower to 6
29+
30+
Metrics/LineLength:
31+
Max: 251 # TODO: Lower to 80
32+
33+
Metrics/MethodLength:
34+
Max: 106 # TODO: Lower to 10
35+
36+
Metrics/PerceivedComplexity:
37+
Max: 9 # TODO: Lower to 7
38+
39+
Style/AlignParameters:
40+
EnforcedStyle: with_fixed_indentation
41+
42+
Style/ClassAndModuleChildren:
43+
EnforcedStyle: compact
44+
45+
Style/Documentation:
46+
Enabled: false
47+
48+
Style/MultilineOperationIndentation:
49+
EnforcedStyle: indented

.rubocop_todo.yml

Lines changed: 315 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,315 @@
1+
# This configuration was generated by
2+
# `rubocop --auto-gen-config`
3+
# on 2015-08-31 04:23:33 -0500 using RuboCop version 0.33.0.
4+
# The point is for the user to remove these configuration records
5+
# one by one as the offenses are removed from the code base.
6+
# Note that changes in the inspected code, or installation of new
7+
# versions of RuboCop, may require this file to be generated again.
8+
9+
# Offense count: 1
10+
# Configuration parameters: AllowSafeAssignment.
11+
Lint/AssignmentInCondition:
12+
Exclude:
13+
- 'lib/active_model/serializer/adapter/json_api.rb'
14+
15+
# Offense count: 1
16+
Lint/EmptyEnsure:
17+
Exclude:
18+
- 'test/serializers/adapter_for_test.rb'
19+
20+
# Offense count: 1
21+
Lint/HandleExceptions:
22+
Exclude:
23+
- 'Rakefile'
24+
25+
# Offense count: 2
26+
# Cop supports --auto-correct.
27+
Lint/UnusedBlockArgument:
28+
Exclude:
29+
- 'lib/active_model/serializer/adapter/json_api/fragment_cache.rb'
30+
31+
# Offense count: 9
32+
# Cop supports --auto-correct.
33+
Lint/UnusedMethodArgument:
34+
Exclude:
35+
- 'lib/active_model/serializer/adapter.rb'
36+
- 'lib/active_model/serializer/adapter/null.rb'
37+
- 'lib/active_model/serializer/pass_through_serializer.rb'
38+
- 'test/fixtures/poro.rb'
39+
- 'test/lint_test.rb'
40+
41+
# Offense count: 1
42+
Lint/UselessAccessModifier:
43+
Exclude:
44+
- 'lib/active_model/serializable_resource.rb'
45+
46+
# Offense count: 3
47+
Lint/UselessAssignment:
48+
Exclude:
49+
- 'bench/perf.rb'
50+
- 'lib/active_model/serializer/adapter/json_api/fragment_cache.rb'
51+
- 'test/test_helper.rb'
52+
53+
# Offense count: 1
54+
# Configuration parameters: EnforcedStyle, SupportedStyles.
55+
Rails/Date:
56+
Exclude:
57+
- 'test/fixtures/poro.rb'
58+
59+
# Offense count: 8
60+
# Configuration parameters: EnforcedStyle, SupportedStyles.
61+
Rails/TimeZone:
62+
Exclude:
63+
- 'test/action_controller/serialization_test.rb'
64+
- 'test/fixtures/poro.rb'
65+
- 'test/serializers/cache_test.rb'
66+
67+
# Offense count: 16
68+
# Cop supports --auto-correct.
69+
# Configuration parameters: EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle, SupportedLastArgumentHashStyles.
70+
Style/AlignHash:
71+
Exclude:
72+
- 'test/action_controller/json_api/pagination_test.rb'
73+
74+
# Offense count: 1
75+
# Cop supports --auto-correct.
76+
# Configuration parameters: EnforcedStyle, SupportedStyles.
77+
Style/AndOr:
78+
Exclude:
79+
- 'lib/active_model/serializer/lint.rb'
80+
81+
# Offense count: 6
82+
# Cop supports --auto-correct.
83+
# Configuration parameters: EnforcedStyle, SupportedStyles, ProceduralMethods, FunctionalMethods, IgnoredMethods.
84+
Style/BlockDelimiters:
85+
Enabled: false
86+
87+
# Offense count: 46
88+
# Cop supports --auto-correct.
89+
# Configuration parameters: EnforcedStyle, SupportedStyles.
90+
Style/BracesAroundHashParameters:
91+
Exclude:
92+
- 'test/action_controller/adapter_selector_test.rb'
93+
- 'test/action_controller/json_api/pagination_test.rb'
94+
- 'test/action_controller/serialization_test.rb'
95+
- 'test/adapter/json_api/linked_test.rb'
96+
- 'test/adapter/json_api/pagination_links_test.rb'
97+
- 'test/adapter/null_test.rb'
98+
- 'test/adapter_test.rb'
99+
- 'test/array_serializer_test.rb'
100+
- 'test/serializable_resource_test.rb'
101+
- 'test/serializers/associations_test.rb'
102+
- 'test/serializers/attribute_test.rb'
103+
- 'test/serializers/attributes_test.rb'
104+
- 'test/serializers/fieldset_test.rb'
105+
- 'test/serializers/root_test.rb'
106+
- 'test/serializers/urls_test.rb'
107+
108+
# Offense count: 167
109+
# Configuration parameters: EnforcedStyle, SupportedStyles.
110+
Style/ClassAndModuleChildren:
111+
Enabled: false
112+
113+
# Offense count: 5
114+
# Cop supports --auto-correct.
115+
Style/CommentIndentation:
116+
Exclude:
117+
- 'active_model_serializers.gemspec'
118+
119+
# Offense count: 1
120+
Style/DoubleNegation:
121+
Exclude:
122+
- 'lib/active_model/serializable_resource.rb'
123+
124+
# Offense count: 1
125+
Style/EachWithObject:
126+
Exclude:
127+
- 'lib/active_model/serializer/fieldset.rb'
128+
129+
# Offense count: 3
130+
# Configuration parameters: MinBodyLength.
131+
Style/GuardClause:
132+
Exclude:
133+
- 'lib/active_model/serializer.rb'
134+
- 'lib/active_model/serializer/adapter/json_api.rb'
135+
- 'test/capture_warnings.rb'
136+
137+
# Offense count: 12
138+
# Cop supports --auto-correct.
139+
# Configuration parameters: EnforcedStyle, SupportedStyles, UseHashRocketsWithSymbolValues.
140+
Style/HashSyntax:
141+
Enabled: false
142+
143+
# Offense count: 9
144+
# Cop supports --auto-correct.
145+
Style/IndentArray:
146+
Exclude:
147+
- 'test/adapter/json/has_many_test.rb'
148+
- 'test/adapter/json_api/json_api_test.rb'
149+
- 'test/adapter/json_api/pagination_links_test.rb'
150+
- 'test/adapter/json_test.rb'
151+
152+
# Offense count: 8
153+
# Cop supports --auto-correct.
154+
# Configuration parameters: EnforcedStyle, SupportedStyles.
155+
Style/IndentHash:
156+
Enabled: false
157+
158+
# Offense count: 1
159+
# Cop supports --auto-correct.
160+
# Configuration parameters: EnforcedStyle, SupportedStyles.
161+
Style/IndentationConsistency:
162+
Exclude:
163+
- 'test/action_controller/serialization_scope_name_test.rb'
164+
165+
# Offense count: 2
166+
# Cop supports --auto-correct.
167+
# Configuration parameters: Width.
168+
Style/IndentationWidth:
169+
Exclude:
170+
- 'lib/active_model/serializable_resource.rb'
171+
- 'lib/active_model/serializer/fieldset.rb'
172+
173+
# Offense count: 1
174+
# Cop supports --auto-correct.
175+
Style/Lambda:
176+
Exclude:
177+
- 'lib/active_model/serializer.rb'
178+
179+
# Offense count: 2
180+
# Cop supports --auto-correct.
181+
Style/MethodCallParentheses:
182+
Exclude:
183+
- 'lib/active_model/serializer/adapter/json.rb'
184+
- 'lib/active_model/serializer/adapter/json_api.rb'
185+
186+
# Offense count: 1
187+
# Cop supports --auto-correct.
188+
# Configuration parameters: EnforcedStyle, SupportedStyles.
189+
Style/MethodDefParentheses:
190+
Enabled: false
191+
192+
# Offense count: 3
193+
# Cop supports --auto-correct.
194+
# Configuration parameters: EnforcedStyle, SupportedStyles.
195+
Style/MultilineOperationIndentation:
196+
Enabled: false
197+
198+
# Offense count: 1
199+
# Cop supports --auto-correct.
200+
Style/NegatedIf:
201+
Exclude:
202+
- 'lib/action_controller/serialization.rb'
203+
204+
# Offense count: 1
205+
# Configuration parameters: EnforcedStyle, MinBodyLength, SupportedStyles.
206+
Style/Next:
207+
Exclude:
208+
- 'lib/active_model/serializer/adapter/json_api.rb'
209+
210+
# Offense count: 1
211+
# Cop supports --auto-correct.
212+
Style/NumericLiterals:
213+
MinDigits: 7
214+
215+
# Offense count: 2
216+
# Cop supports --auto-correct.
217+
# Configuration parameters: PreferredDelimiters.
218+
Style/PercentLiteralDelimiters:
219+
Exclude:
220+
- 'active_model_serializers.gemspec'
221+
222+
# Offense count: 2
223+
# Cop supports --auto-correct.
224+
Style/PerlBackrefs:
225+
Exclude:
226+
- 'test/fixtures/poro.rb'
227+
- 'test/serializers/associations_test.rb'
228+
229+
# Offense count: 6
230+
# Configuration parameters: NamePrefix, NamePrefixBlacklist.
231+
Style/PredicateName:
232+
Exclude:
233+
- 'lib/active_model/serializer/adapter.rb'
234+
- 'lib/active_model/serializer/adapter/json_api.rb'
235+
- 'lib/active_model/serializer/associations.rb'
236+
- 'test/action_controller/json_api/linked_test.rb'
237+
238+
# Offense count: 7
239+
# Cop supports --auto-correct.
240+
Style/RedundantSelf:
241+
Exclude:
242+
- 'lib/active_model/serializer.rb'
243+
- 'lib/active_model/serializer/associations.rb'
244+
- 'test/fixtures/poro.rb'
245+
246+
# Offense count: 1
247+
# Cop supports --auto-correct.
248+
# Configuration parameters: AllowAsExpressionSeparator.
249+
Style/Semicolon:
250+
Exclude:
251+
- 'lib/active_model/serializer/fieldset.rb'
252+
253+
# Offense count: 6
254+
# Cop supports --auto-correct.
255+
# Configuration parameters: EnforcedStyle, SupportedStyles.
256+
Style/SignalException:
257+
Exclude:
258+
- 'lib/active_model/serializer.rb'
259+
- 'lib/active_model/serializer/adapter.rb'
260+
- 'lib/active_model/serializer/fieldset.rb'
261+
- 'lib/active_model/serializer/pass_through_serializer.rb'
262+
263+
# Offense count: 1
264+
# Cop supports --auto-correct.
265+
# Configuration parameters: AllowIfMethodIsEmpty.
266+
Style/SingleLineMethods:
267+
Exclude:
268+
- 'test/serializers/serializer_for_test.rb'
269+
270+
# Offense count: 2
271+
# Cop supports --auto-correct.
272+
# Configuration parameters: EnforcedStyle, SupportedStyles.
273+
Style/StringLiteralsInInterpolation:
274+
Enabled: false
275+
276+
# Offense count: 1
277+
Style/StructInheritance:
278+
Exclude:
279+
- 'bench/perf.rb'
280+
281+
# Offense count: 1
282+
# Cop supports --auto-correct.
283+
# Configuration parameters: IgnoredMethods.
284+
Style/SymbolProc:
285+
Exclude:
286+
- 'lib/generators/serializer/serializer_generator.rb'
287+
288+
# Offense count: 8
289+
# Cop supports --auto-correct.
290+
# Configuration parameters: EnforcedStyle, SupportedStyles.
291+
Style/TrailingBlankLines:
292+
Exclude:
293+
- 'lib/active_model/serializer/pass_through_serializer.rb'
294+
- 'lib/generators/serializer/serializer_generator.rb'
295+
- 'test/adapter/fragment_cache_test.rb'
296+
- 'test/adapter/json_api/json_api_test.rb'
297+
- 'test/adapter/null_test.rb'
298+
- 'test/serializers/cache_test.rb'
299+
- 'test/serializers/fieldset_test.rb'
300+
- 'test/support/stream_capture.rb'
301+
302+
# Offense count: 6
303+
# Cop supports --auto-correct.
304+
# Configuration parameters: EnforcedStyleForMultiline, SupportedStyles.
305+
Style/TrailingComma:
306+
Exclude:
307+
- 'test/action_controller/adapter_selector_test.rb'
308+
- 'test/action_controller/serialization_test.rb'
309+
- 'test/adapter/json_api/belongs_to_test.rb'
310+
- 'test/adapter/json_api/linked_test.rb'
311+
312+
# Offense count: 1
313+
Style/UnlessElse:
314+
Exclude:
315+
- 'lib/active_model/serializer.rb'

.travis.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ language: ruby
22

33
sudo: false
44

5+
cache:
6+
bundler: true
7+
58
rvm:
69
- 1.9.3
710
- 2.0.0
@@ -14,6 +17,10 @@ rvm:
1417
install:
1518
- bundle install --retry=3
1619

20+
script:
21+
- bundle exec rake
22+
- bundle exec rake rubocop
23+
1724
env:
1825
- "RAILS_VERSION=4.0"
1926
- "RAILS_VERSION=4.1"
@@ -24,3 +31,4 @@ matrix:
2431
allow_failures:
2532
- rvm: ruby-head
2633
- env: "RAILS_VERSION=master"
34+
fast_finish: true

Gemfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,7 @@ end
3333

3434
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
3535
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
36+
37+
group :development, :test do
38+
gem 'rubocop', '~> 0.33.0', require: false
39+
end

0 commit comments

Comments
 (0)