rubocop-traitify 0.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: ee5d28cd9101958b565f26ad578d9a7b26ce7f191d88d25d9be3d5c654934ab5
4
+ data.tar.gz: f48d12434fb23251651b48551c12a2507fe164b21632440dce5b3cf1e9edd8a2
5
+ SHA512:
6
+ metadata.gz: 8795dcd9894ce3e88cca451eae41bbb841dd7376980c712e4c88a0f58cd8be202f422ed632a4a3a7e50b7b652bdbbe8d7f003ec450fe15eaa75a5b8a125b54e1
7
+ data.tar.gz: f06641d401eab8f6c289b8c0d1e11398ef695c8b2ded898508d2e23ce0275a7d9c6de9355a377bf47a0f8dff3ea2171fd6b191a4b4e532a37ea2e011b5a47854
data/README.md ADDED
@@ -0,0 +1,27 @@
1
+ # RuboCop Traitify
2
+
3
+ Traitify's default configuration for [RuboCop](https://github.com/rubocop-hq/rubocop).
4
+
5
+ ## Installation
6
+
7
+ Until `rubocop-airbnb` is updated to support ruby 2.6 a fork is required
8
+
9
+ ```
10
+ gem "rubocop-airbnb",
11
+ git: "https://github.com/mcamara/ruby.git",
12
+ glob: "rubocop-airbnb/*.gemspec" # Until airbnb supports ruby 2.6
13
+ gem "rubocop-traitify"
14
+ ```
15
+
16
+ ## Usage
17
+
18
+ Add the following to `.rubocop.yml`
19
+
20
+ ```
21
+ inherit_gem:
22
+ rubocop-traitify: .rubocop_traitify.yml
23
+ ```
24
+
25
+ ## Credit
26
+
27
+ Heavily influenced by (as well as dependent on) Airbnb's [configuration/plugin](https://github.com/airbnb/ruby)
@@ -0,0 +1,16 @@
1
+ AllCops:
2
+ Exclude:
3
+ - bin/yarn
4
+ - db/schema.rb
5
+
6
+ inherit_from:
7
+ - ./rubocop-airbnb.yml
8
+ - ./rubocop-layout.yml
9
+ - ./rubocop-lint.yml
10
+ - ./rubocop-style.yml
11
+ - ./rubocop-todo.yml
12
+
13
+ # TODO: Remove. Move to specific rules that need it
14
+ inherit_mode:
15
+ merge:
16
+ - Exclude
@@ -0,0 +1,11 @@
1
+ require:
2
+ - rubocop-airbnb
3
+
4
+ Airbnb/DefaultScope:
5
+ Enabled: false
6
+
7
+ Airbnb/SimpleModifierConditional:
8
+ Enabled: false
9
+
10
+ Airbnb/SimpleUnless:
11
+ Enabled: false
@@ -0,0 +1,23 @@
1
+ Layout/AlignParameters:
2
+ Enabled: true
3
+ EnforcedStyle: with_fixed_indentation
4
+
5
+ Layout/CaseIndentation:
6
+ Enabled: true
7
+ EnforcedStyle: end
8
+
9
+ Layout/DotPosition:
10
+ Enabled: true
11
+ EnforcedStyle: leading
12
+
13
+ Layout/EndAlignment:
14
+ Enabled: true
15
+ EnforcedStyleAlignWith: start_of_line
16
+
17
+ Layout/SpaceBeforeBlockBraces:
18
+ Enabled: true
19
+ EnforcedStyle: no_space
20
+
21
+ Layout/SpaceInsideHashLiteralBraces:
22
+ Enabled: true
23
+ EnforcedStyle: no_space
@@ -0,0 +1,2 @@
1
+ Lint/AssignmentInCondition:
2
+ Enabled: false
@@ -0,0 +1,52 @@
1
+ Style/BlockDelimiters:
2
+ Enabled: false
3
+
4
+ Style/MixinUsage:
5
+ Enabled: true
6
+ Exclude:
7
+ - bin/*
8
+
9
+ Style/MultilineIfModifier:
10
+ Enabled: false
11
+
12
+ Style/MultilineTernaryOperator:
13
+ Enabled: false
14
+
15
+ Style/PercentLiteralDelimiters:
16
+ Enabled: false
17
+
18
+ Style/RaiseArgs:
19
+ Enabled: true
20
+ EnforcedStyle: compact
21
+
22
+ Style/RescueModifier:
23
+ Enabled: false
24
+
25
+ Style/Semicolon:
26
+ AllowAsExpressionSeparator: true
27
+ Enabled: true
28
+
29
+ Style/StringLiterals:
30
+ Enabled: true
31
+ EnforcedStyle: double_quotes
32
+
33
+ Style/StringLiteralsInInterpolation:
34
+ Enabled: true
35
+ EnforcedStyle: double_quotes
36
+
37
+ Style/SymbolArray:
38
+ Enabled: true
39
+ EnforcedStyle: brackets
40
+ MinSize: 1
41
+
42
+ Style/TrailingCommaInArrayLiteral:
43
+ Enabled: true
44
+ EnforcedStyleForMultiline: no_comma
45
+
46
+ Style/TrailingCommaInHashLiteral:
47
+ Enabled: true
48
+ EnforcedStyleForMultiline: no_comma
49
+
50
+ Style/WordArray:
51
+ Enabled: true
52
+ EnforcedStyle: brackets
@@ -0,0 +1,11 @@
1
+ # TODO: Disabled until rule fixed for symbols
2
+ Airbnb/ClassName:
3
+ Enabled: false
4
+
5
+ # TODO: Disabled until rule fixed for symbols
6
+ Airbnb/FactoryClassUseString:
7
+ Enabled: false
8
+
9
+ # TODO: Disabled until rule fixed
10
+ Layout/RescueEnsureAlignment:
11
+ Enabled: false
@@ -0,0 +1,21 @@
1
+ # Straight up ripped from Airbnb ripped from Rspec
2
+ # https://github.com/airbnb/ruby/blob/master/rubocop-airbnb/lib/rubocop/airbnb/inject.rb
3
+ # https://github.com/nevir/rubocop-rspec/blob/master/lib/rubocop/rspec/inject.rb
4
+ require "yaml"
5
+
6
+ module RuboCop
7
+ module Traitify
8
+ # Because RuboCop doesn't yet support plugins, we have to monkey patch in a
9
+ # bit of our configuration.
10
+ module Inject
11
+ def self.defaults!
12
+ path = CONFIG_DEFAULT.to_s
13
+ hash = ConfigLoader.load_file(path).to_hash
14
+ config = Config.new(hash, path)
15
+ puts "configuration from #{path}" if ConfigLoader.debug?
16
+ config = ConfigLoader.merge_with_default(config, path)
17
+ ConfigLoader.instance_variable_set(:@default_configuration, config)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,5 @@
1
+ module RuboCop
2
+ module Traitify
3
+ VERSION = "0.0.0"
4
+ end
5
+ end
@@ -0,0 +1,13 @@
1
+ require "pathname"
2
+ require "psych"
3
+
4
+ module RuboCop
5
+ module Traitify
6
+ PROJECT_ROOT =
7
+ Pathname.new(__FILE__).parent.parent.parent.expand_path.freeze
8
+ CONFIG_DEFAULT = PROJECT_ROOT.join("config", "default.yml").freeze
9
+ CONFIG = Psych.safe_load(CONFIG_DEFAULT.read).freeze
10
+
11
+ private_constant(*constants(false))
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ require "pathname"
2
+ require "yaml"
3
+
4
+ require "rubocop"
5
+ require "rubocop/traitify"
6
+ require "rubocop/traitify/inject"
7
+ require "rubocop/traitify/version"
8
+
9
+ RuboCop::Traitify::Inject.defaults!
@@ -0,0 +1,28 @@
1
+ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
2
+ require "rubocop/traitify/version"
3
+
4
+ Gem::Specification.new do |spec|
5
+ spec.name = "rubocop-traitify"
6
+ spec.summary = "Default Rubocop config for Traitify Apps"
7
+ spec.description = <<-EOF
8
+ Traitify's Ruby configuration for Rubocop. Heavily influenced by (as well as dependent on)
9
+ Airbnb's https://github.com/airbnb/ruby
10
+ EOF
11
+ spec.authors = ["Tom Prats"]
12
+ spec.email = ["tom@traitify.com"]
13
+ spec.homepage = "https://github.com/traitify/rubocop-traitify"
14
+ spec.license = "MIT"
15
+ spec.version = RuboCop::Traitify::VERSION
16
+ spec.platform = Gem::Platform::RUBY
17
+ spec.required_ruby_version = ">= 2.1"
18
+ spec.require_paths = ["lib"]
19
+ spec.files = Dir[
20
+ "{config,lib}/**/*",
21
+ "*.md",
22
+ "*.gemspec",
23
+ "Gemfile"
24
+ ]
25
+
26
+ spec.add_dependency("rubocop", "~> 0.62.0")
27
+ spec.add_dependency("rubocop-airbnb", "~> 2.0.0")
28
+ end
metadata ADDED
@@ -0,0 +1,85 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rubocop-traitify
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Tom Prats
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-07-29 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.62.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.62.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubocop-airbnb
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 2.0.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 2.0.0
41
+ description: |2
42
+ Traitify's Ruby configuration for Rubocop. Heavily influenced by (as well as dependent on)
43
+ Airbnb's https://github.com/airbnb/ruby
44
+ email:
45
+ - tom@traitify.com
46
+ executables: []
47
+ extensions: []
48
+ extra_rdoc_files: []
49
+ files:
50
+ - README.md
51
+ - config/default.yml
52
+ - config/rubocop-airbnb.yml
53
+ - config/rubocop-layout.yml
54
+ - config/rubocop-lint.yml
55
+ - config/rubocop-style.yml
56
+ - config/rubocop-todo.yml
57
+ - lib/rubocop-traitify.rb
58
+ - lib/rubocop/traitify.rb
59
+ - lib/rubocop/traitify/inject.rb
60
+ - lib/rubocop/traitify/version.rb
61
+ - rubocop-traitify.gemspec
62
+ homepage: https://github.com/traitify/rubocop-traitify
63
+ licenses:
64
+ - MIT
65
+ metadata: {}
66
+ post_install_message:
67
+ rdoc_options: []
68
+ require_paths:
69
+ - lib
70
+ required_ruby_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '2.1'
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ requirements: []
81
+ rubygems_version: 3.0.2
82
+ signing_key:
83
+ specification_version: 4
84
+ summary: Default Rubocop config for Traitify Apps
85
+ test_files: []