datarockets-style 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 324883d55397473999caa61fc8ede9378a4fad7e
4
- data.tar.gz: 7baac97267430faabd884999ade8340189e0e32f
3
+ metadata.gz: 1a419ac14c8ca4180f3f2e84d995a722129c04d3
4
+ data.tar.gz: a86d9ed8fc71274bcbb72a8b2834575191aa7876
5
5
  SHA512:
6
- metadata.gz: e3e7980949ee6b086ff587485378546b935b69b105874e1a043eb648fa5db66f212ef12d5ba5b6a9d0f3c7d13a7677d0abf77d0c983c0bcda261e25a1372a010
7
- data.tar.gz: df7210852291e82002373257e0dce1c5baf1c87b4051003835bac2e0a7903193101625ee7d4b1a9f83cbef9c2189c7b4c96b6487346d626da47a03f7a055e621
6
+ metadata.gz: d14ee00d5a5936c01202602e715837df46a2ce514319fc16e59236fbd4332ef8988ac70bf1acfc2953669263d879e25983e1640322ba8ae42fda426c479fde83
7
+ data.tar.gz: 9c9997bb55e5524e61929feb73933eaf99bfe9d525694cd0a2059f761f697e8922949ae312abb3aac891b26e4b91ec67e4ed638c3bdcbea919d89612e0b89023
data/CHANGELOG.md CHANGED
@@ -4,6 +4,14 @@ The format is described in [Contributing notes](CONTRIBUTING.md#changelog-entry-
4
4
 
5
5
  ## master (unreleased)
6
6
 
7
+ ## 0.2.0 (2019-07-17)
8
+
9
+ ### Changed
10
+
11
+ * Update rubocop to `0.73.0`. ([@r.dubrovsky][])
12
+ * Use prefered variable name in rescued exceptions (cop: `Naming/RescuedExceptionsVariableName`) ([@ula][])
13
+ * Disable `RSpec/ImplicitSubject` cop for rspec files. ([@r.dubrovsky][])
14
+
7
15
  ## 0.1.0 (2019-06-27)
8
16
 
9
17
  ### Added
@@ -29,3 +37,4 @@ The format is described in [Contributing notes](CONTRIBUTING.md#changelog-entry-
29
37
 
30
38
  [@r.dubrovsky]: https://github.com/roman-dubrovsky
31
39
  [@aleks]: https://github.com/AleksSenkou
40
+ [@ula]: https://github.com/lazycoder9
data/CONTRIBUTING.md CHANGED
@@ -19,7 +19,7 @@ do so.
19
19
  ## Pull requests
20
20
 
21
21
  * Read [how to properly contribute to open source projects on GitHub][2].
22
- * Fork the project.
22
+ * Fork the project (if it's necessary and you don't have writing access).
23
23
  * Use a topic/feature branch to easily amend a pull request later, if necessary.
24
24
  * Write [good commit messages][3].
25
25
  * Use the same coding conventions as the rest of the project.
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- datarockets-style (0.1.0)
5
- rubocop (~> 0.72.0)
6
- rubocop-rspec
4
+ datarockets-style (0.2.0)
5
+ rubocop (~> 0.73.0)
6
+ rubocop-rspec (~> 1.33)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
@@ -15,7 +15,7 @@ GEM
15
15
  ast (~> 2.4.0)
16
16
  rainbow (3.0.0)
17
17
  rake (10.5.0)
18
- rubocop (0.72.0)
18
+ rubocop (0.73.0)
19
19
  jaro_winkler (~> 1.5.1)
20
20
  parallel (~> 1.10)
21
21
  parser (>= 2.6)
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Datarockets::Style
1
+ # Datarockets::Style [![Gem Version](https://badge.fury.io/rb/datarockets-style.svg)](https://badge.fury.io/rb/datarockets-style)
2
2
 
3
3
  Datarockets shared style configs and notes of code-style convensions. Based on the [Rubocop](https://github.com/rubocop-hq/rubocop) util.
4
4
 
@@ -22,7 +22,9 @@ spec.add_development_dependency 'datarockets-style'
22
22
 
23
23
  And then execute:
24
24
 
25
+ ```bash
25
26
  $ bundle install
27
+ ```
26
28
 
27
29
  ## Usage
28
30
 
data/STYLE_GUIDE.md CHANGED
@@ -4,19 +4,35 @@ In datarockets we enforce a community [Ruby Style Guide](https://github.com/rubo
4
4
 
5
5
  This is a small list of differences which we have when compared with community style guide:
6
6
 
7
+ ## Table of contents
8
+
9
+ * [Bundler](#Bundler)
10
+ * [Style](#Style)
11
+ * [Rspec](#Rspec)
12
+
7
13
  ## Bundler
8
14
 
9
- * A Gem's requirements should be listed only once in a Gemfile
15
+ * <a name="bundler-add-once"></a>
16
+ A Gem's requirements should be listed only once in a Gemfile
17
+ <sup>[[link](#bundler-add-once)]</sup>
10
18
 
11
- * Gems should be alphabetically sorted within groups. Also you can use a line comment as a group separator.
19
+ * <a name="bundler-ordering"></a>
20
+ Gems should be alphabetically sorted within groups. Also you can use a line comment as a group separator.
21
+ <sup>[[link](#bundler-ordering)]</sup>
12
22
 
13
23
  ## Style
14
24
 
15
- * Limit lines to 80 characters.
25
+ * <a name="style-line-length"></a>
26
+ Limit lines to 120 characters.
27
+ <sup>[[link](#style-line-length)]</sup>
16
28
 
17
- * Prefer double-quotes unless your string literal contains " or escape characters you want to suppress.
29
+ * <a name="style-double-quotes"></a>
30
+ Prefer double-quotes unless your string literal contains " or escape characters you want to suppress.
31
+ <sup>[[link](#style-double-quotes)]</sup>
18
32
 
19
- * If elements of a hash literal span more than one line we're aligning them by keys
33
+ * <a name="style-hash-aligning"></a>
34
+ If elements of a hash literal span more than one line we're aligning them by keys.
35
+ <sup>[[link](#style-hash-aligning)]</sup>
20
36
 
21
37
 
22
38
  ```ruby
@@ -37,8 +53,10 @@ This is a small list of differences which we have when compared with community s
37
53
  }
38
54
  ```
39
55
 
40
- * There is one exception in the rule above when the hash literal is passed as method argument.
41
- In this case we just use an indentation level.
56
+ * <a name="style-keyword-arguments-aligning"></a>
57
+ There is one exception in the rule above when the hash literal is passed as method argument.
58
+ In this case we just use an indentation level.
59
+ <sup>[[link](#style-keyword-arguments-aligning)]</sup>
42
60
 
43
61
  ```ruby
44
62
  # bad
@@ -50,7 +68,9 @@ do_something(foo: 1,
50
68
  bar: 2)
51
69
  ```
52
70
 
53
- * The parameters on a multi-line method call or definition are aligning by an indentation level.
71
+ * <a name="style-parameters-aligning"></a>
72
+ The parameters on a multi-line method call or definition are aligning by an indentation level.
73
+ <sup>[[link](#style-parameters-aligning)]</sup>
54
74
 
55
75
  ```ruby
56
76
  # good
@@ -83,7 +103,9 @@ def foo(
83
103
  end
84
104
  ```
85
105
 
86
- * The `end` shall be aligned with the left-hand-side of the variable assignment. But we prefer not to use code blocks with `end` for variable assignment and prefer move it into the separate methods.
106
+ * <a name="style-end-aligning"></a>
107
+ The `end` shall be aligned with the left-hand-side of the variable assignment. But we prefer not to use code blocks with `end` for variable assignment and prefer move it into the separate methods.
108
+ <sup>[[link](#style-end-aligning)]</sup>
87
109
 
88
110
  ```ruby
89
111
  # bad
@@ -127,7 +149,9 @@ end
127
149
 
128
150
  ```
129
151
 
130
- * We're prefering a ruby style for methods indentations, not rails. You can check it [here](https://github.com/rubocop-hq/ruby-style-guide#indent-public-private-protected)
152
+ * <a name="style-method-indentations"></a>
153
+ We're prefering a ruby style for methods indentations, not rails. You can check it [here](https://github.com/rubocop-hq/ruby-style-guide#indent-public-private-protected).
154
+ <sup>[[link](#style-method-indentations)]</sup>
131
155
 
132
156
  ```ruby
133
157
  # bad
@@ -183,7 +207,9 @@ class A
183
207
  end
184
208
  ```
185
209
 
186
- * For hash literals not to add scapes after `{` or before `}`. We want to have the advantage of adding visual difference between block and hash literals.
210
+ * <a name="style-hash-spaces"></a>
211
+ For hash literals not to add scapes after `{` or before `}`. We want to have the advantage of adding visual difference between block and hash literals.
212
+ <sup>[[link](#style-hash-spaces)]</sup>
187
213
 
188
214
  ```ruby
189
215
  # bad
@@ -195,8 +221,59 @@ h = {a: 1, b: 2}
195
221
  Array.new(3) { |i| i + 1 }
196
222
  ```
197
223
 
224
+ * <a name="style-rescued-variable-name"></a>
225
+ Use `error` as a variable name on processing exceptions.
226
+ <sup>[[link](#style-rescued-variable-name)]</sup>
227
+
228
+ ```ruby
229
+ # bad
230
+ begin
231
+ # do something
232
+ rescue MyException => e
233
+ # do something
234
+ end
235
+
236
+ # good
237
+ begin
238
+ # do something
239
+ rescue MyException => error
240
+ # do something
241
+ end
242
+ ```
198
243
  ## Rspec
199
244
 
200
- * We're happy to use [better spec rules](http://www.betterspecs.org/) for improving our tests.
245
+ * <a name="rspec-betterrspec"></a>
246
+ We're happy to use [better spec rules](http://www.betterspecs.org/) for improving our tests.
247
+ <sup>[[link](#rspec-betterrspec)]</sup>
248
+
249
+ * <a name="rspec-file-length"></a>
250
+ We're not limiting a length of rspec files.
251
+ <sup>[[link](#rspec-file-length)]</sup>
252
+
253
+ * <a name="rspec-subject"></a>
254
+ Each subject should be named and we should not use `subject` in our test cases.
255
+ Prefer to use `is_expected` that `expect(subject_name)` for small tests.
256
+ <sup>[[link](#rspec-subject)]</sup>
201
257
 
202
- * We're not limiting a length of rspec files
258
+ ```ruby
259
+ # bad
260
+ subject { service.call }
261
+
262
+ it 'test' do
263
+ expect(subject).to eq value
264
+ end
265
+
266
+ # ok
267
+ subject(:service_call) { service.call }
268
+
269
+ it 'test' do
270
+ expect(service_call).to eq value
271
+ end
272
+
273
+ # better
274
+ subject { service.call }
275
+
276
+ it 'test' do
277
+ is_expected.to eq value
278
+ end
279
+ ```
@@ -12,6 +12,8 @@ Gem::Specification.new do |spec|
12
12
  spec.homepage = "https://github.com/datarockets/datarockets-style"
13
13
  spec.license = "MIT"
14
14
 
15
+ spec.required_ruby_version = '>= 2.3.0'
16
+
15
17
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
16
18
  # to allow pushing to a single host or delete this section to allow pushing to any host.
17
19
  if spec.respond_to?(:metadata)
@@ -28,8 +30,8 @@ Gem::Specification.new do |spec|
28
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
31
  spec.require_paths = ["lib"]
30
32
 
31
- spec.add_dependency "rubocop", "~> 0.72.0"
32
- spec.add_dependency "rubocop-rspec"
33
+ spec.add_dependency "rubocop", "~> 0.73.0"
34
+ spec.add_dependency "rubocop-rspec", "~> 1.33"
33
35
 
34
36
  spec.add_development_dependency "bundler", "~> 1.16"
35
37
  spec.add_development_dependency "rake", "~> 10.0"
data/default.yml CHANGED
@@ -41,5 +41,11 @@ Metrics/BlockLength:
41
41
  Metrics/LineLength:
42
42
  Max: 120
43
43
 
44
+ Naming/RescuedExceptionsVariableName:
45
+ PreferredName: error
46
+
47
+ RSpec/ImplicitSubject:
48
+ Enabled: false
49
+
44
50
  Style/StringLiterals:
45
51
  EnforcedStyle: double_quotes
@@ -1,5 +1,5 @@
1
1
  module Datarockets
2
2
  module Style
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datarockets-style
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roman Dubrovsky
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-27 00:00:00.000000000 Z
11
+ date: 2019-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.72.0
19
+ version: 0.73.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.72.0
26
+ version: 0.73.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rubocop-rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '1.33'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '1.33'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -103,7 +103,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
103
  requirements:
104
104
  - - ">="
105
105
  - !ruby/object:Gem::Version
106
- version: '0'
106
+ version: 2.3.0
107
107
  required_rubygems_version: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - ">="