rubocop-sequel 0.1.0 → 0.3.3
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 +5 -5
- data/.github/dependabot.yml +6 -0
- data/.github/workflows/actions.yml +2 -2
- data/.rubocop.yml +2 -1
- data/lib/rubocop-sequel.rb +1 -0
- data/lib/rubocop/cop/sequel/column_default.rb +3 -2
- data/lib/rubocop/cop/sequel/concurrent_index.rb +3 -2
- data/lib/rubocop/cop/sequel/json_column.rb +4 -3
- data/lib/rubocop/cop/sequel/migration_name.rb +3 -3
- data/lib/rubocop/cop/sequel/partial_constraint.rb +23 -0
- data/lib/rubocop/cop/sequel/save_changes.rb +9 -6
- data/rubocop-sequel.gemspec +5 -4
- data/spec/rubocop/cop/sequel/column_default_spec.rb +4 -4
- data/spec/rubocop/cop/sequel/concurrent_index_spec.rb +8 -8
- data/spec/rubocop/cop/sequel/json_column_spec.rb +16 -16
- data/spec/rubocop/cop/sequel/migration_name_spec.rb +8 -8
- data/spec/rubocop/cop/sequel/partial_constraint_spec.rb +15 -0
- data/spec/rubocop/cop/sequel/save_changes_spec.rb +4 -4
- metadata +27 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: dc0c293a2da37b5ef89b4b0e7d6a6639c4edcc99b5f5a476adeaba27924baf84
|
4
|
+
data.tar.gz: 37d04d0e24b6aabc08a97ec6d713bfa00db61e755eb1d6a6254cf09d305149c8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 26fdd03e129d3636db9f348a7825c608eeefd7d5d1d715cdce4413120446ee93fda09afe5cb192e6074c02f33e03a5f8a7f87891e4ddb961e07ecc104fe44817
|
7
|
+
data.tar.gz: b55b4773c476338c93699771bf9066aedb261a2c8bb259177ec0b6b9b436475ac3243d476697d3edebd93474fe821f609e6a34548b1e5b4720cb4f84c3ac36c8
|
data/.rubocop.yml
CHANGED
data/lib/rubocop-sequel.rb
CHANGED
@@ -4,8 +4,9 @@ module RuboCop
|
|
4
4
|
module Cop
|
5
5
|
module Sequel
|
6
6
|
# ColumnDefault looks for column creation with a default value.
|
7
|
-
class ColumnDefault <
|
7
|
+
class ColumnDefault < Base
|
8
8
|
MSG = "Don't create new column with default values"
|
9
|
+
RESTRICT_ON_SEND = %i[add_column].freeze
|
9
10
|
|
10
11
|
def_node_matcher :add_column_default?, <<-MATCHER
|
11
12
|
(send _ :add_column ... (hash (pair (sym :default) _)))
|
@@ -14,7 +15,7 @@ module RuboCop
|
|
14
15
|
def on_send(node)
|
15
16
|
return unless add_column_default?(node)
|
16
17
|
|
17
|
-
add_offense(node
|
18
|
+
add_offense(node.loc.selector, message: MSG)
|
18
19
|
end
|
19
20
|
end
|
20
21
|
end
|
@@ -4,8 +4,9 @@ module RuboCop
|
|
4
4
|
module Cop
|
5
5
|
module Sequel
|
6
6
|
# ConcurrentIndex looks for non-concurrent index creation.
|
7
|
-
class ConcurrentIndex <
|
7
|
+
class ConcurrentIndex < Base
|
8
8
|
MSG = 'Prefer creating or dropping new index concurrently'
|
9
|
+
RESTRICT_ON_SEND = %i[add_index drop_index].freeze
|
9
10
|
|
10
11
|
def_node_matcher :indexes?, <<-MATCHER
|
11
12
|
(send _ {:add_index :drop_index} $...)
|
@@ -13,7 +14,7 @@ module RuboCop
|
|
13
14
|
|
14
15
|
def on_send(node)
|
15
16
|
indexes?(node) do |args|
|
16
|
-
add_offense(node
|
17
|
+
add_offense(node.loc.selector, message: MSG) if offensive?(args)
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
@@ -4,8 +4,9 @@ module RuboCop
|
|
4
4
|
module Cop
|
5
5
|
module Sequel
|
6
6
|
# JSONColumn looks for non-JSONB columns.
|
7
|
-
class JSONColumn <
|
7
|
+
class JSONColumn < Base
|
8
8
|
MSG = 'Use JSONB rather than JSON or hstore'
|
9
|
+
RESTRICT_ON_SEND = %i[add_column].freeze
|
9
10
|
|
10
11
|
def_node_matcher :json_or_hstore?, <<-MATCHER
|
11
12
|
(send _ :add_column ... (sym {:json :hstore}))
|
@@ -22,7 +23,7 @@ module RuboCop
|
|
22
23
|
def on_send(node)
|
23
24
|
return unless json_or_hstore?(node)
|
24
25
|
|
25
|
-
add_offense(node
|
26
|
+
add_offense(node.loc.selector, message: MSG)
|
26
27
|
end
|
27
28
|
|
28
29
|
def on_block(node)
|
@@ -31,7 +32,7 @@ module RuboCop
|
|
31
32
|
node.each_node(:send) do |method|
|
32
33
|
next unless column_method?(method) || column_type?(method)
|
33
34
|
|
34
|
-
add_offense(method
|
35
|
+
add_offense(method.loc.selector, message: MSG)
|
35
36
|
end
|
36
37
|
end
|
37
38
|
end
|
@@ -4,19 +4,19 @@ module RuboCop
|
|
4
4
|
module Cop
|
5
5
|
module Sequel
|
6
6
|
# MigrationName looks for migration files named with a default name.
|
7
|
-
class MigrationName <
|
7
|
+
class MigrationName < Base
|
8
8
|
include RangeHelp
|
9
9
|
|
10
10
|
MSG = 'Migration files should not use default name.'
|
11
11
|
|
12
|
-
def
|
12
|
+
def on_new_investigation
|
13
13
|
file_path = processed_source.buffer.name
|
14
14
|
return if config.file_to_include?(file_path)
|
15
15
|
|
16
16
|
return unless filename_bad?(file_path)
|
17
17
|
|
18
18
|
location = source_range(processed_source.buffer, 1, 0)
|
19
|
-
add_offense(
|
19
|
+
add_offense(location)
|
20
20
|
end
|
21
21
|
|
22
22
|
private
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Sequel
|
6
|
+
# PartialConstraint looks for missed usage of partial indexes.
|
7
|
+
class PartialConstraint < Base
|
8
|
+
MSG = "Constraint can't be partial, use where argument with index"
|
9
|
+
RESTRICT_ON_SEND = %i[add_unique_constraint].freeze
|
10
|
+
|
11
|
+
def_node_matcher :add_partial_constraint?, <<-MATCHER
|
12
|
+
(send _ :add_unique_constraint ... (hash (pair (sym :where) _)))
|
13
|
+
MATCHER
|
14
|
+
|
15
|
+
def on_send(node)
|
16
|
+
return unless add_partial_constraint?(node)
|
17
|
+
|
18
|
+
add_offense(node.loc.selector, message: MSG)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -4,9 +4,12 @@ module RuboCop
|
|
4
4
|
module Cop
|
5
5
|
module Sequel
|
6
6
|
# SaveChanges promotes the use of save_changes.
|
7
|
-
class SaveChanges <
|
7
|
+
class SaveChanges < Base
|
8
|
+
extend AutoCorrector
|
9
|
+
|
8
10
|
MSG = 'Use `Sequel::Model#save_changes` instead of '\
|
9
|
-
|
11
|
+
'`Sequel::Model#save`.'
|
12
|
+
RESTRICT_ON_SEND = %i[save].freeze
|
10
13
|
|
11
14
|
def_node_matcher :model_save?, <<-MATCHER
|
12
15
|
(send _ :save)
|
@@ -15,11 +18,11 @@ module RuboCop
|
|
15
18
|
def on_send(node)
|
16
19
|
return unless model_save?(node)
|
17
20
|
|
18
|
-
|
19
|
-
end
|
21
|
+
range = node.loc.selector
|
20
22
|
|
21
|
-
|
22
|
-
|
23
|
+
add_offense(range, message: MSG) do |corrector|
|
24
|
+
corrector.replace(range, 'save_changes')
|
25
|
+
end
|
23
26
|
end
|
24
27
|
end
|
25
28
|
end
|
data/rubocop-sequel.gemspec
CHANGED
@@ -13,16 +13,17 @@ Gem::Specification.new do |gem|
|
|
13
13
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
14
14
|
gem.name = 'rubocop-sequel'
|
15
15
|
gem.require_paths = ['lib']
|
16
|
-
gem.version = '0.
|
16
|
+
gem.version = '0.3.3'
|
17
17
|
|
18
|
-
gem.required_ruby_version = '
|
18
|
+
gem.required_ruby_version = '>= 2.5'
|
19
19
|
|
20
20
|
gem.add_runtime_dependency 'rubocop', '~> 1.0'
|
21
21
|
|
22
|
-
gem.add_development_dependency 'rake', '~>
|
22
|
+
gem.add_development_dependency 'rake', '~> 13.0.6'
|
23
23
|
gem.add_development_dependency 'rspec', '~> 3.7'
|
24
|
+
gem.add_development_dependency 'rubocop-rake', '~> 0.6.0'
|
24
25
|
gem.add_development_dependency 'rubocop-rspec', '~> 2.0'
|
25
|
-
gem.add_development_dependency 'sequel', '~>
|
26
|
+
gem.add_development_dependency 'sequel', '~> 5.47'
|
26
27
|
gem.add_development_dependency 'simplecov', '~> 0.16'
|
27
28
|
gem.add_development_dependency 'sqlite3', '~> 1.3', '>= 1.3.12'
|
28
29
|
end
|
@@ -6,12 +6,12 @@ describe RuboCop::Cop::Sequel::ColumnDefault do
|
|
6
6
|
subject(:cop) { described_class.new }
|
7
7
|
|
8
8
|
it 'registers an offense when setting a default' do
|
9
|
-
inspect_source('add_column(:products, :type, :text, default: "cop")')
|
10
|
-
expect(
|
9
|
+
offenses = inspect_source('add_column(:products, :type, :text, default: "cop")')
|
10
|
+
expect(offenses.size).to eq(1)
|
11
11
|
end
|
12
12
|
|
13
13
|
it 'does not register an offense when not setting a default' do
|
14
|
-
inspect_source('add_column(:products, :type, :text)')
|
15
|
-
expect(
|
14
|
+
offenses = inspect_source('add_column(:products, :type, :text)')
|
15
|
+
expect(offenses).to be_empty
|
16
16
|
end
|
17
17
|
end
|
@@ -7,35 +7,35 @@ describe RuboCop::Cop::Sequel::ConcurrentIndex do
|
|
7
7
|
|
8
8
|
context 'without the concurrent option' do
|
9
9
|
it 'registers an offense without options' do
|
10
|
-
inspect_source(<<~SOURCE)
|
10
|
+
offenses = inspect_source(<<~SOURCE)
|
11
11
|
add_index(:products, :name)
|
12
12
|
drop_index(:products, :name)
|
13
13
|
SOURCE
|
14
|
-
expect(
|
14
|
+
expect(offenses.size).to eq(2)
|
15
15
|
end
|
16
16
|
|
17
17
|
it 'registers an offense with other options' do
|
18
|
-
inspect_source(<<~SOURCE)
|
18
|
+
offenses = inspect_source(<<~SOURCE)
|
19
19
|
add_index(:products, :name, unique: true)
|
20
20
|
drop_index(:products, :name, unique: true)
|
21
21
|
SOURCE
|
22
|
-
expect(
|
22
|
+
expect(offenses.size).to eq(2)
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'registers an offense with composite index' do
|
26
|
-
inspect_source(<<~SOURCE)
|
26
|
+
offenses = inspect_source(<<~SOURCE)
|
27
27
|
add_index(:products, [:name, :price], unique: true)
|
28
28
|
drop_index(:products, [:name, :price])
|
29
29
|
SOURCE
|
30
|
-
expect(
|
30
|
+
expect(offenses.size).to eq(2)
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
34
|
it 'does not register an offense when using concurrent option' do
|
35
|
-
inspect_source(<<~SOURCE)
|
35
|
+
offenses = inspect_source(<<~SOURCE)
|
36
36
|
add_index(:products, :name, unique: true, concurrently: true)
|
37
37
|
drop_index(:products, :name, concurrently: true)
|
38
38
|
SOURCE
|
39
|
-
expect(
|
39
|
+
expect(offenses).to be_empty
|
40
40
|
end
|
41
41
|
end
|
@@ -7,45 +7,45 @@ describe RuboCop::Cop::Sequel::JSONColumn do
|
|
7
7
|
|
8
8
|
context 'with add_column' do
|
9
9
|
it 'registers an offense when using json type' do
|
10
|
-
inspect_source('add_column(:products, :type, :json)')
|
11
|
-
expect(
|
10
|
+
offenses = inspect_source('add_column(:products, :type, :json)')
|
11
|
+
expect(offenses.size).to eq(1)
|
12
12
|
end
|
13
13
|
|
14
14
|
it 'registers an offense when using hstore type' do
|
15
|
-
inspect_source('add_column(:products, :type, :hstore)')
|
16
|
-
expect(
|
15
|
+
offenses = inspect_source('add_column(:products, :type, :hstore)')
|
16
|
+
expect(offenses.size).to eq(1)
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'does not register an offense when using jsonb' do
|
20
|
-
inspect_source('add_column(:products, :type, :jsonb)')
|
21
|
-
expect(
|
20
|
+
offenses = inspect_source('add_column(:products, :type, :jsonb)')
|
21
|
+
expect(offenses).to be_empty
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
25
|
context 'with create_table' do
|
26
26
|
it 'registers an offense when using json as a method' do
|
27
|
-
inspect_source('create_table(:products) { json :type, default: {} }')
|
28
|
-
expect(
|
27
|
+
offenses = inspect_source('create_table(:products) { json :type, default: {} }')
|
28
|
+
expect(offenses.size).to eq(1)
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'registers an offense when using the column method with hstore' do
|
32
|
-
inspect_source('create_table(:products) { column :type, :hstore }')
|
33
|
-
expect(
|
32
|
+
offenses = inspect_source('create_table(:products) { column :type, :hstore }')
|
33
|
+
expect(offenses.size).to eq(1)
|
34
34
|
end
|
35
35
|
|
36
36
|
it 'does not register an offense when using jsonb as column type`' do
|
37
|
-
inspect_source('create_table(:products) { column :type, :jsonb }')
|
38
|
-
expect(
|
37
|
+
offenses = inspect_source('create_table(:products) { column :type, :jsonb }')
|
38
|
+
expect(offenses).to be_empty
|
39
39
|
end
|
40
40
|
|
41
41
|
it 'does not register an offense when using jsonb' do
|
42
|
-
inspect_source('create_table(:products) { jsonb :type }')
|
43
|
-
expect(
|
42
|
+
offenses = inspect_source('create_table(:products) { jsonb :type }')
|
43
|
+
expect(offenses).to be_empty
|
44
44
|
end
|
45
45
|
|
46
46
|
it 'does not register an offense when using a simple type' do
|
47
|
-
inspect_source('create_table(:products) { integer :type, default: 0 }')
|
48
|
-
expect(
|
47
|
+
offenses = inspect_source('create_table(:products) { integer :type, default: 0 }')
|
48
|
+
expect(offenses).to be_empty
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
@@ -17,13 +17,13 @@ describe RuboCop::Cop::Sequel::MigrationName, :config do
|
|
17
17
|
let(:cop_config) { {} }
|
18
18
|
|
19
19
|
it 'registers an offense when using the default name' do
|
20
|
-
inspect_source('', 'new_migration.rb')
|
21
|
-
expect(
|
20
|
+
offenses = inspect_source('', 'new_migration.rb')
|
21
|
+
expect(offenses.size).to eq(1)
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'does not register an offense when using a specific name' do
|
25
|
-
inspect_source('', 'add_index.rb')
|
26
|
-
expect(
|
25
|
+
offenses = inspect_source('', 'add_index.rb')
|
26
|
+
expect(offenses).to be_empty
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -31,13 +31,13 @@ describe RuboCop::Cop::Sequel::MigrationName, :config do
|
|
31
31
|
let(:cop_config) { { 'DefaultName' => 'add_migration' } }
|
32
32
|
|
33
33
|
it 'registers an offense when using the default name' do
|
34
|
-
inspect_source('', 'add_migration.rb')
|
35
|
-
expect(
|
34
|
+
offenses = inspect_source('', 'add_migration.rb')
|
35
|
+
expect(offenses.size).to eq(1)
|
36
36
|
end
|
37
37
|
|
38
38
|
it 'does not register an offense when using a specific name' do
|
39
|
-
inspect_source('', 'add_index.rb')
|
40
|
-
expect(
|
39
|
+
offenses = inspect_source('', 'add_index.rb')
|
40
|
+
expect(offenses).to be_empty
|
41
41
|
end
|
42
42
|
end
|
43
43
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe RuboCop::Cop::Sequel::PartialConstraint do
|
6
|
+
subject(:cop) { described_class.new }
|
7
|
+
|
8
|
+
it 'registers an offense when using where for constraint' do
|
9
|
+
offenses = inspect_source(<<~RUBY)
|
10
|
+
add_unique_constraint %i[col_1 col_2], where: "state != 'deleted'"
|
11
|
+
RUBY
|
12
|
+
|
13
|
+
expect(offenses.size).to eq(1)
|
14
|
+
end
|
15
|
+
end
|
@@ -6,13 +6,13 @@ describe RuboCop::Cop::Sequel::SaveChanges do
|
|
6
6
|
subject(:cop) { described_class.new }
|
7
7
|
|
8
8
|
it 'registers an offense when using save' do
|
9
|
-
inspect_source('favorite.save')
|
10
|
-
expect(
|
9
|
+
offenses = inspect_source('favorite.save')
|
10
|
+
expect(offenses.size).to eq(1)
|
11
11
|
end
|
12
12
|
|
13
13
|
it 'does not register an offense when using save_changes' do
|
14
|
-
inspect_source('favorite.save_changes')
|
15
|
-
expect(
|
14
|
+
offenses = inspect_source('favorite.save_changes')
|
15
|
+
expect(offenses).to be_empty
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'auto-corrects by using save_changes' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop-sequel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Timothée Peignier
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-08-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 13.0.6
|
34
34
|
type: :development
|
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:
|
40
|
+
version: 13.0.6
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.7'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rubocop-rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.6.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.6.0
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rubocop-rspec
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,14 +86,14 @@ dependencies:
|
|
72
86
|
requirements:
|
73
87
|
- - "~>"
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
89
|
+
version: '5.47'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
94
|
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
96
|
+
version: '5.47'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: simplecov
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -121,6 +135,7 @@ executables: []
|
|
121
135
|
extensions: []
|
122
136
|
extra_rdoc_files: []
|
123
137
|
files:
|
138
|
+
- ".github/dependabot.yml"
|
124
139
|
- ".github/workflows/actions.yml"
|
125
140
|
- ".gitignore"
|
126
141
|
- ".rspec"
|
@@ -133,6 +148,7 @@ files:
|
|
133
148
|
- lib/rubocop/cop/sequel/concurrent_index.rb
|
134
149
|
- lib/rubocop/cop/sequel/json_column.rb
|
135
150
|
- lib/rubocop/cop/sequel/migration_name.rb
|
151
|
+
- lib/rubocop/cop/sequel/partial_constraint.rb
|
136
152
|
- lib/rubocop/cop/sequel/save_changes.rb
|
137
153
|
- lib/rubocop/sequel.rb
|
138
154
|
- rubocop-sequel.gemspec
|
@@ -140,6 +156,7 @@ files:
|
|
140
156
|
- spec/rubocop/cop/sequel/concurrent_index_spec.rb
|
141
157
|
- spec/rubocop/cop/sequel/json_column_spec.rb
|
142
158
|
- spec/rubocop/cop/sequel/migration_name_spec.rb
|
159
|
+
- spec/rubocop/cop/sequel/partial_constraint_spec.rb
|
143
160
|
- spec/rubocop/cop/sequel/save_changes_spec.rb
|
144
161
|
- spec/spec_helper.rb
|
145
162
|
homepage: https://github.com/rubocop-hq/rubocop-sequel
|
@@ -152,17 +169,16 @@ require_paths:
|
|
152
169
|
- lib
|
153
170
|
required_ruby_version: !ruby/object:Gem::Requirement
|
154
171
|
requirements:
|
155
|
-
- - "
|
172
|
+
- - ">="
|
156
173
|
- !ruby/object:Gem::Version
|
157
|
-
version: '2.
|
174
|
+
version: '2.5'
|
158
175
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
176
|
requirements:
|
160
177
|
- - ">="
|
161
178
|
- !ruby/object:Gem::Version
|
162
179
|
version: '0'
|
163
180
|
requirements: []
|
164
|
-
|
165
|
-
rubygems_version: 2.6.11
|
181
|
+
rubygems_version: 3.2.3
|
166
182
|
signing_key:
|
167
183
|
specification_version: 4
|
168
184
|
summary: A Sequel plugin for RuboCop
|
@@ -171,5 +187,6 @@ test_files:
|
|
171
187
|
- spec/rubocop/cop/sequel/concurrent_index_spec.rb
|
172
188
|
- spec/rubocop/cop/sequel/json_column_spec.rb
|
173
189
|
- spec/rubocop/cop/sequel/migration_name_spec.rb
|
190
|
+
- spec/rubocop/cop/sequel/partial_constraint_spec.rb
|
174
191
|
- spec/rubocop/cop/sequel/save_changes_spec.rb
|
175
192
|
- spec/spec_helper.rb
|