Dutchie-Style 1.0.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: d6b2a358d911c4029b29bca907108565f063310fdbafb8943d2e26280ae6f244
4
+ data.tar.gz: 4b4773a79dc3816ec0b91ea449843ac8318718e727aabcff1d6c4727e9bc40c0
5
+ SHA512:
6
+ metadata.gz: 1af2412d988306af579894d663732726d86e5569702e06321266fbea13b59bf1c3970d6700e7c82c44e564f01800ac251ee18db45c4514cef6bfc1e3d4ce1194
7
+ data.tar.gz: da5b2893cfb5b3b555313606eedabb48f932b861435d8425f778355e121fe0540616bc57a90db7ec843a9073c07b4cafc13eb17e93e66761d30f5529afe91c9c
@@ -0,0 +1,12 @@
1
+ root = true
2
+
3
+ [*]
4
+ indent_style = space
5
+ indent_size = 2
6
+ end_of_line = lf
7
+ charset = utf-8
8
+ trim_trailing_whitespace = true
9
+ insert_final_newline = true
10
+
11
+ [*.md]
12
+ trim_trailing_whitespace = false
@@ -0,0 +1,32 @@
1
+ # See https://help.github.com/articles/ignoring-files for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile '~/.gitignore_global'
6
+
7
+ # Package Managers
8
+ /.bundle
9
+ node_modules/
10
+ yarn-error.log
11
+
12
+ # Ignore all logfiles and tempfiles.
13
+ /log/*
14
+ /tmp/*
15
+ !/log/.keep
16
+ !/tmp/.keep
17
+
18
+ .byebug_history
19
+
20
+ # Ignore master key for decrypting credentials and more.
21
+ /config/master.key
22
+
23
+ .env
24
+
25
+ # Emacs droppings
26
+ *~
27
+
28
+ # Mac OS noise
29
+ .DS_Store
30
+
31
+ # SimpleCov output dir
32
+ coverage
@@ -0,0 +1,28 @@
1
+ require_relative 'lib/Dutchie/Style/version'
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "Dutchie-Style"
5
+ spec.version = Dutchie::Style::VERSION
6
+ spec.authors = ["Christopher Ostrowski"]
7
+ spec.email = ["chris@dutchie.com"]
8
+
9
+ spec.summary = %q{Rubocop Settings for all dutchie Ruby Apps}
10
+ spec.description = %q{Rubocop Settings for all dutchie Ruby Apps}
11
+ spec.homepage = "https://github.com/GetDutchie/Dutchie-Style"
12
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
13
+
14
+ spec.metadata["homepage_uri"] = spec.homepage
15
+ spec.metadata["source_code_uri"] = "https://github.com/GetDutchie/Dutchie-Style"
16
+ spec.metadata["changelog_uri"] = "https://github.com/GetDutchie/Dutchie-Style/releases"
17
+
18
+ # Specify which files should be added to the gem when it is released.
19
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
20
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
21
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
22
+ end
23
+ spec.bindir = "exe"
24
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
+ spec.require_paths = ["lib"]
26
+
27
+ spec.add_dependency "rubocop", "~> 0.80.0"
28
+ end
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in Dutchie-Style.gemspec
4
+ gemspec
5
+
6
+ gem "rake", "~> 12.0"
7
+ gem "rspec", "~> 3.0"
8
+ gem "rubocop", "~> 0.80"
@@ -0,0 +1,17 @@
1
+ ![Dutchie](https://cl.ly/360R2A3q1D31/icon.png)
2
+
3
+ # Dutchie-Style
4
+
5
+ ## About This Repo
6
+
7
+ This repo contains all shared linter configs and style guides used by dutchie engineering.
8
+
9
+ It is available as a rubygem as well as an NPM package.
10
+
11
+ [Join Us! We're Hiring!](https://dutchie.com/careers)
12
+
13
+ Includes:
14
+
15
+ * RuboCop Config
16
+ * Eslint Config
17
+ * Prettier Config
@@ -0,0 +1,217 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.6
3
+ EnabledByDefault: true
4
+ DisplayCopNames: true
5
+ Exclude:
6
+ - 'bin/**/*'
7
+ - 'db/**/*'
8
+ - 'vendor/**/*'
9
+ - 'config/**/*'
10
+ - 'docs/**/*'
11
+ - 'spec/**/*'
12
+ - 'app/channels/**/*'
13
+ - 'script/**/*'
14
+ - 'lib/assets/**/*'
15
+ - 'Rakefile'
16
+ - 'Gemfile'
17
+ - 'Guardfile'
18
+ - '*.yml'
19
+ - '.pryrc'
20
+
21
+ # Commonly used screens these days easily fit more than 80 characters.
22
+ Layout/LineLength:
23
+ Max: 120
24
+
25
+ # No space makes the method definition shorter and differentiates
26
+ # from a regular assignment.
27
+ Layout/SpaceAroundEqualsInParameterDefault:
28
+ EnforcedStyle: no_space
29
+
30
+ # Most readable form.
31
+ Layout/HashAlignment:
32
+ EnforcedHashRocketStyle: table
33
+ EnforcedColonStyle: table
34
+
35
+ # Indenting the chained dots beneath each other is not supported by this cop,
36
+ # see https://github.com/bbatsov/rubocop/issues/1633
37
+ Layout/MultilineOperationIndentation:
38
+ Enabled: false
39
+
40
+ # Suppressing exceptions can be perfectly fine, and be it to avoid to
41
+ # explicitly type nil into the rescue since that's what you want to return,
42
+ # or suppressing LoadError for optional dependencies
43
+ Lint/SuppressedException:
44
+ Enabled: false
45
+
46
+ Layout/SpaceInsideBlockBraces:
47
+ # The space here provides no real gain in readability while consuming
48
+ # horizontal space that could be used for a better parameter name.
49
+ # Also {| differentiates better from a hash than { | does.
50
+ SpaceBeforeBlockParameters: false
51
+
52
+ # No trailing space differentiates better from the block:
53
+ # foo} means hash, foo } means block.
54
+ Layout/SpaceInsideHashLiteralBraces:
55
+ EnforcedStyle: no_space
56
+
57
+ # Too short methods lead to extraction of single-use methods, which can make
58
+ # the code easier to read (by naming things), but can also clutter the class
59
+ Metrics/MethodLength:
60
+ Max: 20
61
+
62
+ # The guiding principle of classes is SRP, SRP can't be accurately measured by LoC
63
+ Metrics/ClassLength:
64
+ Max: 1500
65
+
66
+ # Check with yard instead.
67
+ Style/DocumentationMethod:
68
+ Enabled: false
69
+
70
+ Style/Copyright:
71
+ Enabled: false
72
+
73
+ Style/Documentation:
74
+ Enabled: false
75
+
76
+ # We are using DateTime extensively.
77
+ Style/DateTime:
78
+ Enabled: false
79
+
80
+ # We do not need to support Ruby 1.9, so this is good to use.
81
+ Style/SymbolArray:
82
+ Enabled: true
83
+
84
+ # https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Style/MissingElse
85
+ Style/MissingElse:
86
+ Enabled: false
87
+
88
+ # https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Style/StringHashKeys
89
+ Style/StringHashKeys:
90
+ Enabled: false
91
+
92
+ # Single quotes being faster is hardly measurable and only affects parse time.
93
+ # Enforcing double quotes reduces the times where you need to change them
94
+ # when introducing an interpolation. Use single quotes only if their semantics
95
+ # are needed.
96
+ Style/StringLiterals:
97
+ EnforcedStyle: double_quotes
98
+
99
+ # Mixing the styles looks just silly.
100
+ Style/HashSyntax:
101
+ EnforcedStyle: ruby19_no_mixed_keys
102
+
103
+ Style/HashEachMethods:
104
+ Enabled: false
105
+
106
+ Style/HashTransformKeys:
107
+ Enabled: false
108
+
109
+ Style/HashTransformValues:
110
+ Enabled: false
111
+
112
+ # has_key? and has_value? are far more readable than key? and value?
113
+ Style/PreferredHashMethods:
114
+ Enabled: false
115
+
116
+ # https://docs.rubocop.org/rubocop/cops_style.html#styledisablecopswithinsourcecodedirective
117
+ Style/DisableCopsWithinSourceCodeDirective:
118
+ Enabled: false
119
+
120
+ # String#% is by far the least verbose and only object oriented variant.
121
+ Style/FormatString:
122
+ EnforcedStyle: percent
123
+
124
+ Style/CollectionMethods:
125
+ Enabled: true
126
+ PreferredMethods:
127
+ # inject seems more common in the community.
128
+ reduce: "inject"
129
+
130
+ # Either allow this style or don't. Marking it as safe with parenthesis
131
+ # is silly. Let's try to live without them for now.
132
+ Style/ParenthesesAroundCondition:
133
+ AllowSafeAssignment: false
134
+
135
+ # https://github.com/rubocop-hq/rubocop/blob/master/config/default.yml#L3095
136
+ # https://getdutchie.slack.com/archives/CJQCWSWQ4/p1592860363429600
137
+ # Optional inline and required multi
138
+ Style/MethodCallWithArgsParentheses:
139
+ Description: 'Use parentheses for method calls with arguments.'
140
+ StyleGuide: '#method-invocation-parens'
141
+ Enabled: false
142
+ VersionAdded: '0.47'
143
+ VersionChanged: '0.61'
144
+ IgnoreMacros: true
145
+ IgnoredMethods: []
146
+ IgnoredPatterns: []
147
+ IncludedMacros: []
148
+ AllowParenthesesInMultilineCall: false
149
+ AllowParenthesesInChaining: false
150
+ AllowParenthesesInCamelCaseMethod: false
151
+ EnforcedStyle: require_parentheses
152
+ SupportedStyles:
153
+ - require_parentheses
154
+ - omit_parentheses
155
+
156
+ Style/MethodCallWithoutArgsParentheses:
157
+ Description: 'Do not use parentheses for method calls with no arguments.'
158
+ StyleGuide: '#method-invocation-parens'
159
+ Enabled: true
160
+ IgnoredMethods: []
161
+ VersionAdded: '0.47'
162
+ VersionChanged: '0.55'
163
+
164
+ # A specialized exception class will take one or more arguments and construct the message from it.
165
+ # So both variants make sense.
166
+ Style/RaiseArgs:
167
+ Enabled: false
168
+
169
+ # Fail is an alias of raise. Avoid aliases, it's more cognitive load for no gain.
170
+ # The argument that fail should be used to abort the program is wrong too,
171
+ # there's Kernel#abort for that.
172
+ Style/SignalException:
173
+ EnforcedStyle: only_raise
174
+
175
+ # { ... } for multi-line blocks is okay, follow Weirichs rule instead:
176
+ # https://web.archive.org/web/20140221124509/http://onestepback.org/index.cgi/Tech/Ruby/BraceVsDoEnd.rdoc
177
+ Style/BlockDelimiters:
178
+ Enabled: false
179
+
180
+ # do / end blocks should be used for side effects,
181
+ # methods that run a block for side effects and have
182
+ # a useful return value are rare, assign the return
183
+ # value to a local variable for those cases.
184
+ Style/MethodCalledOnDoEndBlock:
185
+ Enabled: true
186
+
187
+ # Enforcing the names of variables? To single letter ones? Just no.
188
+ Style/SingleLineBlockParams:
189
+ Enabled: false
190
+
191
+ # Style preference
192
+ Style/MethodDefParentheses:
193
+ Enabled: false
194
+
195
+ # Shadowing outer local variables with block parameters is often useful
196
+ # to not reinvent a new name for the same thing, it highlights the relation
197
+ # between the outer variable and the parameter. The cases where it's actually
198
+ # confusing are rare, and usually bad for other reasons already, for example
199
+ # because the method is too long.
200
+ Lint/ShadowingOuterLocalVariable:
201
+ Enabled: false
202
+
203
+ # There are valid cases, for example debugging Cucumber steps,
204
+ # also they'll fail CI anyway
205
+ Lint/Debugger:
206
+ Enabled: false
207
+
208
+ Lint/AssignmentInCondition:
209
+ AllowSafeAssignment: false
210
+
211
+ # https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Lint/NumberConversion
212
+ Lint/NumberConversion:
213
+ Enabled: false
214
+
215
+ # This is just silly. Calling the argument `other` in all cases makes no sense.
216
+ Naming/BinaryOperatorParameterName:
217
+ Enabled: false
@@ -0,0 +1,8 @@
1
+ require "Dutchie/Style/version"
2
+
3
+ module Dutchie
4
+ module Style
5
+ class Error < StandardError; end
6
+ # Your code goes here...
7
+ end
8
+ end
@@ -0,0 +1,5 @@
1
+ module Dutchie
2
+ module Style
3
+ VERSION = "1.0.0"
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,67 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: Dutchie-Style
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Christopher Ostrowski
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2020-06-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rubocop
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.80.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.80.0
27
+ description: Rubocop Settings for all dutchie Ruby Apps
28
+ email:
29
+ - chris@dutchie.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".editorconfig"
35
+ - ".gitignore"
36
+ - Dutchie-Style.gemspec
37
+ - Gemfile
38
+ - README.md
39
+ - default.yml
40
+ - lib/Dutchie/Style.rb
41
+ - lib/Dutchie/Style/version.rb
42
+ homepage: https://github.com/GetDutchie/Dutchie-Style
43
+ licenses: []
44
+ metadata:
45
+ homepage_uri: https://github.com/GetDutchie/Dutchie-Style
46
+ source_code_uri: https://github.com/GetDutchie/Dutchie-Style
47
+ changelog_uri: https://github.com/GetDutchie/Dutchie-Style/releases
48
+ post_install_message:
49
+ rdoc_options: []
50
+ require_paths:
51
+ - lib
52
+ required_ruby_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 2.3.0
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ requirements: []
63
+ rubygems_version: 3.0.3
64
+ signing_key:
65
+ specification_version: 4
66
+ summary: Rubocop Settings for all dutchie Ruby Apps
67
+ test_files: []