netsoft-rubocop 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 42f5eb03efee42ae00c20783523ffc3bacceea1b70e6fa4ebb242cf2a104e5e8
4
- data.tar.gz: a20b0c422a7d58e54a0bbbb60152904a1b69d2fe271565e6a146629bf7cee5b7
3
+ metadata.gz: a27d4fbbc329f03b7ba1545338a36e2bed33af93c22a17a3be81e634c817f1a5
4
+ data.tar.gz: 1bea462450d76226ca69170644648dcd4f336ba3dc0b33933a3b5df9d8a9a12b
5
5
  SHA512:
6
- metadata.gz: 590e1f8a6b8b1e46ac1f155a74c5b7f155a28f9cbdb66c62381bb69722e2982f347dbadf49508ac1361fbf87b03136b34c7afaa75e744a98300b7ab279f2d81c
7
- data.tar.gz: 1e1cff02bbe014b3884dd0c60a70a1a4601d901c3ddade0836dcceb7c8c83c18cc4b493a8434708a5c61bec72649a3dbbb7e9c72cad2faf56dec5bd6eb4a498a
6
+ metadata.gz: e640a48f004db898ad5a520361bb24ed5750f2af791e070bb1eb420e01eb001e28a289638ce46269ca73d4f26bdbeef3d99f6caac17f5c9c078ac93774025f73
7
+ data.tar.gz: f5e54bb635b7c4d71b1b5c53fcaa60e6316a1c2ff8be91c7a379af7478a6630a9f8addbe44c109694947fcbe24fe87e9b92a6711ffcf9e97e8815a94bdc2f69f
@@ -6,7 +6,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  ## [Unreleased]
9
+ ### Added
10
+ ### Changed
11
+ ### Fixed
9
12
 
13
+ ## [1.1.0] - 2021-01-20
14
+ ### Changed
15
+ - Switch to newest versions of rubocop, and rubocop-[everything]
16
+ - Update the default config with the recent set of rules corresponding to the new version
17
+ - reworked gem so that it can simply be required like other rubocop gems
10
18
 
11
19
  ## [1.0.2] - 2020-09-09
12
20
  ### Changed
data/TODO.md ADDED
@@ -0,0 +1,4 @@
1
+ ## Custom cops to develop:
2
+
3
+ * `DeepFreeze`: Instead of `Style/MutableConstant`, we need our custom `.deep_freeze` method and cop checking it is
4
+ attached to arrays, hashes, and values from configs.
@@ -0,0 +1,297 @@
1
+ require:
2
+ - ./lib/netsoft/rubocop/cops/auth_http_positional_arguments
3
+ - rubocop-rails
4
+ - rubocop-performance
5
+ - rubocop-rspec
6
+ - rubocop-rake
7
+
8
+ AllCops:
9
+ TargetRubyVersion: 2.5
10
+ TargetRailsVersion: 5.2
11
+ DisplayStyleGuide: true
12
+ StyleGuideBaseURL: https://rubystyle.guide
13
+ NewCops: enable
14
+ Exclude:
15
+ - 'db/**/*'
16
+ - 'coverage/**/*'
17
+ - 'log/**/*'
18
+ - 'public/**/*'
19
+ - 'tmp/**/*'
20
+ - 'spec/dummy/**/*'
21
+ - 'vendor/**/*'
22
+ - 'gemfiles/**/*'
23
+ - 'node_modules/**/*'
24
+
25
+ # region Layout
26
+ Layout/AssignmentIndentation:
27
+ IndentationWidth: 4
28
+
29
+ Layout/ExtraSpacing:
30
+ AllowForAlignment: true
31
+
32
+ Layout/HashAlignment:
33
+ EnforcedHashRocketStyle: table
34
+ EnforcedColonStyle: table
35
+
36
+ Layout/FirstArrayElementIndentation:
37
+ EnforcedStyle: consistent
38
+ IndentationWidth: 4
39
+
40
+ Layout/FirstHashElementIndentation:
41
+ EnforcedStyle: consistent
42
+ IndentationWidth: 4
43
+
44
+ Layout/MultilineMethodCallIndentation:
45
+ EnforcedStyle: indented_relative_to_receiver
46
+ IndentationWidth: 4
47
+
48
+ Layout/SpaceInsideBlockBraces:
49
+ EnforcedStyle: space
50
+ SpaceBeforeBlockParameters: true
51
+
52
+ Layout/SpaceInsideHashLiteralBraces:
53
+ EnforcedStyle: no_space
54
+ # endregion
55
+
56
+ # region Lint
57
+ Lint/AmbiguousBlockAssociation:
58
+ Exclude:
59
+ - spec/**/*
60
+
61
+ Lint/NonDeterministicRequireOrder:
62
+ Enabled: false
63
+
64
+ Lint/StructNewOverride:
65
+ Enabled: false
66
+ #endregion
67
+
68
+ # region Naming
69
+ Naming/RescuedExceptionsVariableName:
70
+ PreferredName: ex
71
+
72
+ Naming/MemoizedInstanceVariableName:
73
+ EnforcedStyleForLeadingUnderscores: optional
74
+
75
+ Naming/MethodParameterName:
76
+ AllowedNames:
77
+ - at
78
+ - by
79
+ - db
80
+ - id
81
+ - in
82
+ - io
83
+ - ip
84
+ - of
85
+ - 'on'
86
+ - os
87
+ - pp
88
+ - to
89
+ - tz
90
+ - my
91
+ - me
92
+ - ex
93
+ - uo
94
+ - up
95
+
96
+ Naming/PredicateName:
97
+ # By default, it also forbids has_, but that's rarely a good suggestion:
98
+ # is #has_screenshots? => #screenshots? better?..
99
+ ForbiddenPrefixes:
100
+ - is_
101
+
102
+ Naming/VariableNumber:
103
+ Enabled: false
104
+ # endregion
105
+
106
+ # region Performance
107
+ Performance/CollectionLiteralInLoop:
108
+ Enabled: false
109
+
110
+ Performance/MethodObjectAsBlock:
111
+ Enabled: false
112
+
113
+ # superseded by Performance/RgexpMatch
114
+ Performance/RedundantMatch:
115
+ Enabled: false
116
+
117
+ Performance/BlockGivenWithExplicitBlock:
118
+ Enabled: false
119
+
120
+ Performance/TimesMap:
121
+ Enabled: false
122
+
123
+ # endregion
124
+
125
+ # region Rails
126
+ Rails:
127
+ Enabled: true
128
+
129
+ Rails/FilePath:
130
+ EnforcedStyle: arguments
131
+
132
+ # We do it on a DB level
133
+ Rails/HasManyOrHasOneDependent:
134
+ Enabled: false
135
+
136
+ Rails/HttpPositionalArguments:
137
+ Enabled: false
138
+
139
+ Rails/HttpStatus:
140
+ EnforcedStyle: numeric
141
+
142
+ Rails/SkipsModelValidations:
143
+ AllowedMethods:
144
+ - touch
145
+ - update_attribute
146
+ - update_counters
147
+ - increment_counter
148
+ - decrement_counter
149
+
150
+ Netsoft/AuthHttpPositionalArguments:
151
+ Enabled: true
152
+ Include:
153
+ - 'spec/controllers/**/*'
154
+
155
+ # endregion
156
+
157
+ # region RSpec
158
+ # Prohibits before/after(:all) for ever uses. But when we use it, we know what we do
159
+ RSpec/BeforeAfterAll:
160
+ Enabled: false
161
+
162
+ RSpec/ExpectChange:
163
+ EnforcedStyle: block
164
+
165
+ RSpec/ImplicitSubject:
166
+ Enabled: false
167
+
168
+ # Just prohibits `let!` for any usages
169
+ # Nice try, Rubocop.
170
+ RSpec/LetSetup:
171
+ Enabled: false
172
+
173
+ RSpec/MessageSpies:
174
+ Enabled: false
175
+
176
+ # TODO: It would be good to set a realistic Max: once, but we have all kind of specs with multiple
177
+ # expectations now.
178
+ RSpec/MultipleExpectations:
179
+ Enabled: false
180
+
181
+ # Allows to limit number of `let`s. What for?..
182
+ # NB: With current setting (5 max) we have... "Offense count: 22706"
183
+ RSpec/MultipleMemoizedHelpers:
184
+ Enabled: false
185
+
186
+ RSpec/NamedSubject:
187
+ Enabled: false
188
+
189
+ RSpec/NestedGroups:
190
+ Enabled: false
191
+
192
+ RSpec/NotToNot:
193
+ EnforcedStyle: to_not
194
+
195
+ # endregion
196
+
197
+ # region Style
198
+
199
+ # Allows to enforce either this:
200
+ #
201
+ # attr_reader :a
202
+ # attr_reader :b
203
+ #
204
+ # (all accessors separate), or this:
205
+ #
206
+ # attr_reader :a, :b
207
+ #
208
+ # (all accessors in one statement).
209
+ #
210
+ # We use both, and it is hard to tell why it should be limited...
211
+ Style/AccessorGrouping:
212
+ Enabled: false
213
+
214
+ Style/AndOr:
215
+ EnforcedStyle: conditionals
216
+
217
+ Style/BlockDelimiters:
218
+ EnforcedStyle: semantic
219
+ AllowBracesOnProceduralOneLiners: true
220
+
221
+ Style/CommentAnnotation:
222
+ Enabled: false
223
+
224
+ # Asks to write comment besides dynamically evaluated method, showing how the code would look,
225
+ # see cop docs: https://docs.rubocop.org/rubocop/cops_style.html#styledocumentdynamicevaldefinition
226
+ #
227
+ # Ideally, would be cool, but lot of work.
228
+ Style/DocumentDynamicEvalDefinition:
229
+ Enabled: false
230
+
231
+ Style/DoubleNegation:
232
+ Enabled: false
233
+
234
+ # Asks to write empty methods this way:
235
+ #
236
+ # def foo; end
237
+ #
238
+ Style/EmptyMethod:
239
+ Enabled: false
240
+
241
+ Style/FormatString:
242
+ EnforcedStyle: percent
243
+
244
+ Style/FormatStringToken:
245
+ Enabled: false
246
+
247
+ Style/HashAsLastArrayItem:
248
+ EnforcedStyle: no_braces
249
+
250
+ Style/Lambda:
251
+ EnforcedStyle: literal
252
+
253
+ Style/MultilineBlockChain:
254
+ Enabled: false
255
+
256
+ # FIXME: This cop requires to attach .freeze to each and every constant.
257
+ # It is both ugly AND doesn't protect from bugs (the freeze is shallow, so some frozen CONFIG hash
258
+ # can still be changed).
259
+ # We need to develop our own .deep_freeze for configs, and cops to check that it is attached to
260
+ # hashes, arrays and values fetched from ENV/configs.
261
+ Style/MutableConstant:
262
+ Enabled: false
263
+
264
+ Style/ParallelAssignment:
265
+ Enabled: false
266
+
267
+ Style/RescueModifier:
268
+ Enabled: false
269
+
270
+ # Asks to avoid `rescue => exception` without particular class.
271
+ # Why?..
272
+ Style/RescueStandardError:
273
+ Enabled: false
274
+
275
+ Style/SingleArgumentDig:
276
+ Enabled: false
277
+
278
+ Style/StringConcatenation:
279
+ Enabled: false
280
+
281
+ Style/StringLiterals:
282
+ # up for debate
283
+ Enabled: false
284
+
285
+ Style/StructInheritance:
286
+ Enabled: false
287
+
288
+ Style/TrailingCommaInArrayLiteral:
289
+ EnforcedStyleForMultiline: comma
290
+
291
+ Style/TrailingCommaInHashLiteral:
292
+ EnforcedStyleForMultiline: comma
293
+
294
+ #endregion
295
+
296
+ Metrics:
297
+ Enabled: false
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rubocop'
4
+
5
+ require_relative 'netsoft/rubocop'
6
+ require_relative 'netsoft/rubocop/version'
7
+ require_relative 'netsoft/rubocop/inject'
8
+
9
+ Netsoft::Rubocop::Inject.defaults!
10
+
11
+ require_relative 'netsoft/rubocop/cops/netsoft_cops'
@@ -1,9 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'netsoft/rubocop/version'
3
+ require 'yaml'
4
4
 
5
5
  module Netsoft
6
6
  # Hubstaff shared rubocop style configs
7
7
  module Rubocop
8
+ PROJECT_ROOT = Pathname.new(__dir__).parent.parent.expand_path.freeze
9
+ CONFIG_DEFAULT = PROJECT_ROOT.join('config', 'default.yml').freeze
10
+ CONFIG = YAML.safe_load(CONFIG_DEFAULT.read).freeze
11
+
12
+ private_constant(:CONFIG_DEFAULT, :PROJECT_ROOT)
8
13
  end
9
14
  end
@@ -37,7 +37,7 @@ module RuboCop
37
37
  PATTERN
38
38
 
39
39
  def on_send(node)
40
- message = format(MSG, verb: node.method_name)
40
+ message = MSG % {verb: node.method_name}
41
41
 
42
42
  http_request?(node) do |data|
43
43
  return unless needs_conversion?(data)
@@ -77,9 +77,9 @@ module RuboCop
77
77
  code_to_replace = node.loc.expression
78
78
  # what to replace with
79
79
  format = parentheses_format(node)
80
- new_code = format(format, name: node.method_name,
80
+ new_code = format % {name: node.method_name,
81
81
  action: has_auth ? [user.source, controller_action].join(',') : controller_action,
82
- params: params, session: session)
82
+ params: params, session: session}
83
83
  ->(corrector) { corrector.replace(code_to_replace, new_code) }
84
84
  end
85
85
 
@@ -115,15 +115,14 @@ module RuboCop
115
115
  return '' if data.hash_type? && data.empty?
116
116
 
117
117
  hash_data = if data.hash_type?
118
- format('{ %<data>s }',
119
- data: data.pairs.map(&:source).join(', '))
118
+ '{ %<data>s }' % {data: data.pairs.map(&:source).join(', ')}
120
119
  else
121
120
  # user supplies an object,
122
121
  # no need to surround with braces
123
122
  data.source
124
123
  end
125
124
 
126
- format(', %<type>s: %<hash_data>s', type: type, hash_data: hash_data)
125
+ ', %<type>s: %<hash_data>s' % {type: type, hash_data: hash_data}
127
126
  end
128
127
 
129
128
  def parentheses_format(node)
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'netsoft/auth_http_positional_arguments'
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Netsoft
4
+ module Rubocop
5
+ # Because RuboCop doesn't yet support plugins, we have to monkey patch in a
6
+ # bit of our configuration.
7
+ module Inject
8
+ def self.defaults!
9
+ path = CONFIG_DEFAULT.to_s
10
+ hash = ::RuboCop::ConfigLoader.send(:load_yaml_configuration, path)
11
+ config = ::RuboCop::Config.new(hash, path)
12
+ puts "configuration from #{path}" if ::RuboCop::ConfigLoader.debug?
13
+ config = ::RuboCop::ConfigLoader.merge_with_default(config, path)
14
+ ::RuboCop::ConfigLoader.instance_variable_set(:@default_configuration, config)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Netsoft
4
4
  module Rubocop
5
- VERSION = '1.0.2'
5
+ VERSION = '1.1.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: netsoft-rubocop
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Yarotsky
8
+ - Edward Rudd
8
9
  autorequire:
9
- bindir: exe
10
+ bindir: bin
10
11
  cert_chain: []
11
- date: 2020-09-09 00:00:00.000000000 Z
12
+ date: 2021-01-20 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
@@ -28,94 +29,105 @@ dependencies:
28
29
  name: rake
29
30
  requirement: !ruby/object:Gem::Requirement
30
31
  requirements:
31
- - - "~>"
32
+ - - ">="
32
33
  - !ruby/object:Gem::Version
33
34
  version: '12.0'
34
35
  type: :development
35
36
  prerelease: false
36
37
  version_requirements: !ruby/object:Gem::Requirement
37
38
  requirements:
38
- - - "~>"
39
+ - - ">="
39
40
  - !ruby/object:Gem::Version
40
41
  version: '12.0'
41
42
  - !ruby/object:Gem::Dependency
42
43
  name: rubocop
43
44
  requirement: !ruby/object:Gem::Requirement
44
45
  requirements:
45
- - - "~>"
46
+ - - '='
46
47
  - !ruby/object:Gem::Version
47
- version: 0.74.0
48
+ version: 1.8.1
48
49
  type: :runtime
49
50
  prerelease: false
50
51
  version_requirements: !ruby/object:Gem::Requirement
51
52
  requirements:
52
- - - "~>"
53
+ - - '='
53
54
  - !ruby/object:Gem::Version
54
- version: 0.74.0
55
+ version: 1.8.1
55
56
  - !ruby/object:Gem::Dependency
56
57
  name: rubocop-performance
57
58
  requirement: !ruby/object:Gem::Requirement
58
59
  requirements:
59
- - - "~>"
60
+ - - '='
60
61
  - !ruby/object:Gem::Version
61
- version: '1.4'
62
+ version: 1.9.2
62
63
  type: :runtime
63
64
  prerelease: false
64
65
  version_requirements: !ruby/object:Gem::Requirement
65
66
  requirements:
66
- - - "~>"
67
+ - - '='
67
68
  - !ruby/object:Gem::Version
68
- version: '1.4'
69
+ version: 1.9.2
69
70
  - !ruby/object:Gem::Dependency
70
71
  name: rubocop-rails
71
72
  requirement: !ruby/object:Gem::Requirement
72
73
  requirements:
73
- - - "~>"
74
+ - - '='
74
75
  - !ruby/object:Gem::Version
75
- version: '2.2'
76
+ version: 2.9.1
76
77
  type: :runtime
77
78
  prerelease: false
78
79
  version_requirements: !ruby/object:Gem::Requirement
79
80
  requirements:
80
- - - "~>"
81
+ - - '='
81
82
  - !ruby/object:Gem::Version
82
- version: '2.2'
83
+ version: 2.9.1
84
+ - !ruby/object:Gem::Dependency
85
+ name: rubocop-rake
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - '='
89
+ - !ruby/object:Gem::Version
90
+ version: 0.5.1
91
+ type: :runtime
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - '='
96
+ - !ruby/object:Gem::Version
97
+ version: 0.5.1
83
98
  - !ruby/object:Gem::Dependency
84
99
  name: rubocop-rspec
85
100
  requirement: !ruby/object:Gem::Requirement
86
101
  requirements:
87
- - - "~>"
102
+ - - '='
88
103
  - !ruby/object:Gem::Version
89
- version: '1.35'
104
+ version: 2.1.0
90
105
  type: :runtime
91
106
  prerelease: false
92
107
  version_requirements: !ruby/object:Gem::Requirement
93
108
  requirements:
94
- - - "~>"
109
+ - - '='
95
110
  - !ruby/object:Gem::Version
96
- version: '1.35'
111
+ version: 2.1.0
97
112
  description:
98
113
  email:
99
114
  - alex.yarotsky@hubstaff.com
115
+ - edward@hubstaff.com
100
116
  executables: []
101
117
  extensions: []
102
- extra_rdoc_files: []
118
+ extra_rdoc_files:
119
+ - README.md
103
120
  files:
104
- - ".circleci/config.yml"
105
- - ".gitignore"
106
- - ".rubocop.yml"
107
121
  - CHANGELOG.md
108
- - Dangerfile
109
- - Gemfile
110
122
  - README.md
111
- - Rakefile
112
- - bin/setup-rubygems.sh
113
- - bin/tag_check.sh
114
- - default.yml
123
+ - TODO.md
124
+ - config/default.yml
125
+ - lib/netsoft-rubocop.rb
115
126
  - lib/netsoft/rubocop.rb
116
- - lib/netsoft/rubocop/cops/auth_http_positional_arguments.rb
127
+ - lib/netsoft/rubocop/cops/netsoft/auth_http_positional_arguments.rb
128
+ - lib/netsoft/rubocop/cops/netsoft_cops.rb
129
+ - lib/netsoft/rubocop/inject.rb
117
130
  - lib/netsoft/rubocop/version.rb
118
- - netsoft-rubocop.gemspec
119
131
  homepage: https://github.com/netsoftHoldings/netsoft-rubocop
120
132
  licenses: []
121
133
  metadata: {}
@@ -127,15 +139,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
139
  requirements:
128
140
  - - ">="
129
141
  - !ruby/object:Gem::Version
130
- version: '0'
142
+ version: '2.4'
131
143
  required_rubygems_version: !ruby/object:Gem::Requirement
132
144
  requirements:
133
145
  - - ">="
134
146
  - !ruby/object:Gem::Version
135
147
  version: '0'
136
148
  requirements: []
137
- rubyforge_project:
138
- rubygems_version: 2.7.7
149
+ rubygems_version: 3.0.3
139
150
  signing_key:
140
151
  specification_version: 4
141
152
  summary: Hubstaff style guides and shared style configs.
@@ -1,141 +0,0 @@
1
- version: 2
2
-
3
- defaults: &defaults
4
- docker: &ruby_image
5
- - &ruby_image
6
- image: circleci/ruby:2.4.4-stretch
7
- environment:
8
- CIRCLE_ARTIFACTS: /tmp/circelci-artifacts
9
- RUBYOPT: '-KU -E utf-8:utf-8'
10
- BUNDLE_PATH: vendor/bundle
11
- BUNDLE_VERSION: 1.15.2
12
- BUNDLE_JOBS: 4
13
- BUNDLE_RETRY: 3
14
-
15
- filters:
16
- test: &filter_test
17
- filters:
18
- tags:
19
- ignore: /^v.*/
20
- beta: &filter_beta
21
- filters:
22
- branches:
23
- ignore: /.*/
24
- tags:
25
- only: /^v[0-9]+(\.[0-9]+)+(\.[a-z].+).*/
26
- release: &filter_release
27
- filters:
28
- branches:
29
- ignore: /.*/
30
- tags:
31
- only: /^v[0-9]+(\.[0-9]+)+/
32
-
33
- workflows:
34
- version: 2
35
- build_test:
36
- jobs:
37
- - "Checkout":
38
- <<: *filter_test
39
- context: org-global
40
- - "Build":
41
- <<: *filter_test
42
- context: org-global
43
- requires:
44
- - "Checkout"
45
- build_test_beta:
46
- jobs:
47
- - "Checkout":
48
- <<: *filter_beta
49
- context: org-global
50
- - "Build":
51
- <<: *filter_beta
52
- context: org-global
53
- requires:
54
- - "Checkout"
55
- - "Publish":
56
- <<: *filter_beta
57
- context: org-global
58
- requires:
59
- - "Build"
60
- build_test_release:
61
- jobs:
62
- - "Checkout":
63
- <<: *filter_release
64
- context: org-global
65
- - "Build":
66
- <<: *filter_release
67
- context: org-global
68
- requires:
69
- - "Checkout"
70
- - "Publish":
71
- <<: *filter_release
72
- context: org-global
73
- requires:
74
- - "Build"
75
-
76
- jobs:
77
- "Checkout":
78
- <<: *defaults
79
- steps:
80
- - attach_workspace:
81
- at: .
82
- - checkout
83
-
84
- - restore_cache:
85
- keys:
86
- - netsoft-rubocop-bundle-v2-{{ checksum "Gemfile" }}-{{ checksum "netsoft-rubocop.gemspec" }}
87
- - run:
88
- name: Install bundler
89
- command: gem install bundler --version=$BUNDLE_VERSION
90
- - run:
91
- name: Bundle Install
92
- command: |-
93
- bundle _${BUNDLE_VERSION}_ check || bundle _${BUNDLE_VERSION}_ install --retry=$BUNDLE_RETRY
94
- - save_cache:
95
- key: netsoft-rubocop--bundle-v2-{{ checksum "Gemfile" }}-{{ checksum "netsoft-rubocop.gemspec" }}
96
- paths:
97
- - vendor/bundle
98
- - Gemfile.lock
99
-
100
- - persist_to_workspace:
101
- root: .
102
- paths: .
103
- "Build":
104
- <<: *defaults
105
- steps:
106
- - attach_workspace:
107
- at: .
108
- - run:
109
- name: Install bundler
110
- command: gem install bundler --version=$BUNDLE_VERSION
111
- - run:
112
- name: Build gem
113
- command: |-
114
- gem build *.gemspec
115
- - run:
116
- name: "Install netsoft-danger"
117
- command: |-
118
- gem install netsoft-danger
119
- - run:
120
- name: Run rubocop
121
- command: |-
122
- netsoft-circle rubocop
123
- - run:
124
- name: Run Danger
125
- command: |-
126
- danger
127
- - store_artifacts:
128
- path: /tmp/circelci-artifacts
129
- "Publish":
130
- <<: *defaults
131
- steps:
132
- - attach_workspace:
133
- at: .
134
- - run:
135
- name: Deploy to gem server
136
- command: |-
137
- ./bin/tag_check.sh
138
- ./bin/setup-rubygems.sh
139
- rm -rf pkg
140
- rake build
141
- gem push pkg/*.gem
data/.gitignore DELETED
@@ -1,56 +0,0 @@
1
- *.gem
2
- *.rbc
3
- /.config
4
- /coverage/
5
- /InstalledFiles
6
- /pkg/
7
- /spec/reports/
8
- /spec/examples.txt
9
- /test/tmp/
10
- /test/version_tmp/
11
- /tmp/
12
-
13
- # Used by dotenv library to load environment variables.
14
- # .env
15
-
16
- # Ignore Byebug command history file.
17
- .byebug_history
18
-
19
- ## Specific to RubyMotion:
20
- .dat*
21
- .repl_history
22
- build/
23
- *.bridgesupport
24
- build-iPhoneOS/
25
- build-iPhoneSimulator/
26
-
27
- ## Specific to RubyMotion (use of CocoaPods):
28
- #
29
- # We recommend against adding the Pods directory to your .gitignore. However
30
- # you should judge for yourself, the pros and cons are mentioned at:
31
- # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
32
- #
33
- # vendor/Pods/
34
-
35
- ## Documentation cache and generated files:
36
- /.yardoc/
37
- /_yardoc/
38
- /doc/
39
- /rdoc/
40
-
41
- ## Environment normalization:
42
- /.bundle/
43
- /vendor/bundle
44
- /lib/bundler/man/
45
-
46
- # for a library or gem, you might want to ignore these files since the code is
47
- # intended to run in multiple environments; otherwise, check them in:
48
- # Gemfile.lock
49
- # .ruby-version
50
- # .ruby-gemset
51
-
52
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
53
- .rvmrc
54
-
55
- Gemfile.lock
56
- .ruby-*
@@ -1 +0,0 @@
1
- inherit_from: default.yml
data/Dangerfile DELETED
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- danger.import_dangerfile(gem: 'netsoft-danger')
data/Gemfile DELETED
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
-
7
- # Specify your gem's dependencies in netsoft-rubocop.gemspec
8
- gemspec
data/Rakefile DELETED
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'bundler/gem_tasks'
4
- task default: :spec
@@ -1,3 +0,0 @@
1
- mkdir ~/.gem
2
- echo -e "---\n:rubygems_api_key: $RUBYGEMS_API_KEY" > ~/.gem/credentials
3
- chmod 0600 ~/.gem/credentials
@@ -1,17 +0,0 @@
1
- #!/bin/sh
2
-
3
- tag=`git describe --tags --exact-match HEAD 2> /dev/null`
4
-
5
- if [ $? -eq 0 ]; then
6
- version=`grep VERSION lib/netsoft/rubocop/version.rb | sed -e "s/.*'\([^']*\)'.*/\1/"`
7
-
8
- if [ "v$version" = "$tag" ]; then
9
- echo "Revision $tag Matches $version"
10
- else
11
- echo "Revision $tag does not match $version"
12
- exit 2
13
- fi
14
- else
15
- echo "No tag found"
16
- exit 1
17
- fi
@@ -1,124 +0,0 @@
1
- require:
2
- - ./lib/netsoft/rubocop/cops/auth_http_positional_arguments
3
- - rubocop-rails
4
- - rubocop-performance
5
- - rubocop-rspec
6
-
7
- AllCops:
8
- TargetRubyVersion: 2.5
9
- TargetRailsVersion: 5.2
10
- DisplayStyleGuide: true
11
- StyleGuideBaseURL: https://rubystyle.guide
12
- Exclude:
13
- - 'db/**/*'
14
- - 'coverage/**/*'
15
- - 'log/**/*'
16
- - 'public/**/*'
17
- - 'tmp/**/*'
18
- - 'spec/dummy/**/*'
19
- - 'vendor/**/*'
20
- - 'gemfiles/**/*'
21
- - 'node_modules/**/*'
22
-
23
- Naming/RescuedExceptionsVariableName:
24
- PreferredName: ex
25
-
26
- Naming/UncommunicativeMethodParamName:
27
- AllowedNames:
28
- - me
29
- - ex
30
-
31
- Layout/AlignHash:
32
- EnforcedHashRocketStyle: table
33
- EnforcedColonStyle: table
34
-
35
- Layout/ExtraSpacing:
36
- AllowForAlignment: true
37
-
38
- Layout/IndentAssignment:
39
- IndentationWidth: 4
40
-
41
- Layout/IndentFirstArrayElement:
42
- EnforcedStyle: consistent
43
- IndentationWidth: 4
44
-
45
- Layout/IndentFirstHashElement:
46
- EnforcedStyle: consistent
47
- IndentationWidth: 4
48
-
49
- Layout/MultilineMethodCallIndentation:
50
- EnforcedStyle: indented_relative_to_receiver
51
- IndentationWidth: 4
52
-
53
- Layout/SpaceInsideBlockBraces:
54
- EnforcedStyle: space
55
- SpaceBeforeBlockParameters: true
56
-
57
- Layout/SpaceInsideHashLiteralBraces:
58
- EnforcedStyle: no_space
59
-
60
- Lint/AmbiguousBlockAssociation:
61
- Exclude:
62
- - spec/**/*
63
-
64
- Rails:
65
- Enabled: true
66
-
67
- Rails/HttpPositionalArguments:
68
- Enabled: false
69
-
70
- Rails/SkipsModelValidations:
71
- Whitelist:
72
- - touch
73
- - update_attribute
74
- - update_counters
75
- - increment_counter
76
- - decrement_counter
77
-
78
- Netsoft/AuthHttpPositionalArguments:
79
- Enabled: true
80
- Include:
81
- - 'spec/controllers/**/*'
82
-
83
- RSpec/ExpectChange:
84
- EnforcedStyle: block
85
-
86
- RSpec/ImplicitSubject:
87
- Enabled: false
88
-
89
- RSpec/MessageSpies:
90
- Enabled: false
91
-
92
- RSpec/NamedSubject:
93
- Enabled: false
94
-
95
- RSpec/NestedGroups:
96
- Enabled: false
97
-
98
- RSpec/NotToNot:
99
- EnforcedStyle: to_not
100
-
101
- Style/AndOr:
102
- EnforcedStyle: conditionals
103
-
104
- Style/BlockDelimiters:
105
- EnforcedStyle: semantic
106
- AllowBracesOnProceduralOneLiners: true
107
-
108
- Style/MultilineBlockChain:
109
- Enabled: false
110
-
111
- Style/RescueModifier:
112
- Enabled: false
113
-
114
- Style/TrailingCommaInArrayLiteral:
115
- EnforcedStyleForMultiline: comma
116
-
117
- Style/TrailingCommaInHashLiteral:
118
- EnforcedStyleForMultiline: comma
119
-
120
- Metrics:
121
- Enabled: false
122
-
123
- Style/DoubleNegation:
124
- Enabled: false
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- lib = File.expand_path('lib', __dir__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'netsoft/rubocop/version'
6
-
7
- Gem::Specification.new do |spec|
8
- spec.name = 'netsoft-rubocop'
9
- spec.version = Netsoft::Rubocop::VERSION
10
- spec.authors = ['Alex Yarotsky']
11
- spec.email = ['alex.yarotsky@hubstaff.com']
12
-
13
- spec.summary = 'Hubstaff style guides and shared style configs.'
14
- spec.homepage = 'https://github.com/netsoftHoldings/netsoft-rubocop'
15
-
16
- # Specify which files should be added to the gem when it is released.
17
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
18
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
19
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
20
- end
21
- spec.bindir = 'exe'
22
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
- spec.require_paths = %w[lib]
24
-
25
- spec.add_development_dependency 'bundler', '~> 1.15'
26
- spec.add_development_dependency 'rake', '~> 12.0'
27
-
28
- spec.add_runtime_dependency 'rubocop', '~> 0.74.0'
29
- spec.add_runtime_dependency 'rubocop-performance', '~> 1.4'
30
- spec.add_runtime_dependency 'rubocop-rails', '~> 2.2'
31
- spec.add_runtime_dependency 'rubocop-rspec', '~> 1.35'
32
- end