rubocop-traitify 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: []