index_shotgun 0.2.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ if Gem::Version.create(RUBY_VERSION) < Gem::Version.create("2.4.0")
2
+ # byebug v11.1.0+ requires Ruby 2.4.0+
3
+ gem "byebug", "< 11.1.0"
4
+
5
+ # simplecov-html v0.12.3+ requires Ruby 2.4.0+
6
+ gem "simplecov-html", "< 0.12.3"
7
+
8
+ # parallel v1.20.0 requires Ruby 2.5.0+ and parallel v1.20.1+ requires Ruby 2.4.0+
9
+ gem "parallel", "< 1.20.0"
10
+ end
11
+
12
+ if Gem::Version.create(RUBY_VERSION) < Gem::Version.create("2.4.4")
13
+ # zeitwerk requires Ruby 2.4.4+
14
+ gem "activesupport", "< 6.0.0"
15
+ end
@@ -1,5 +1,4 @@
1
- # coding: utf-8
2
- lib = File.expand_path("../lib", __FILE__)
1
+ lib = File.expand_path("lib", __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require "index_shotgun/version"
5
4
 
@@ -14,32 +13,30 @@ Gem::Specification.new do |spec|
14
13
  spec.homepage = "https://github.com/sue445/index_shotgun"
15
14
  spec.license = "MIT"
16
15
 
17
- # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
18
- # delete this section to allow pushing this gem to any host.
19
- if spec.respond_to?(:metadata)
20
- spec.metadata["allowed_push_host"] = "https://rubygems.org"
21
- else
22
- raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
23
- end
16
+ spec.metadata["homepage_uri"] = spec.homepage
17
+ spec.metadata["source_code_uri"] = spec.homepage
18
+ spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/master/CHANGELOG.md"
19
+ spec.metadata["rubygems_mfa_required"] = "true"
24
20
 
25
- spec.required_ruby_version = ">= 2.1.0"
21
+ spec.required_ruby_version = ">= 2.4.0"
26
22
 
27
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
23
+ spec.files = `git ls-files -z`.split("\x0").reject {|f| f.match(%r{^(test|spec|features)/}) }
28
24
  spec.bindir = "exe"
29
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
+ spec.executables = spec.files.grep(%r{^exe/}) {|f| File.basename(f) }
30
26
  spec.require_paths = ["lib"]
31
27
 
32
- spec.add_dependency "activerecord"
28
+ spec.add_dependency "activerecord", ">= 5.0.0"
33
29
  spec.add_dependency "thor"
34
30
 
35
- spec.add_development_dependency "bundler", "~> 1.10"
36
- spec.add_development_dependency "codeclimate-test-reporter"
31
+ spec.add_development_dependency "bundler"
37
32
  spec.add_development_dependency "coveralls"
38
- spec.add_development_dependency "pry-byebug"
39
- spec.add_development_dependency "rake", "~> 10.0"
40
- spec.add_development_dependency "rake_shared_context"
33
+ spec.add_development_dependency "onkcop", "0.53.0.2"
34
+ spec.add_development_dependency "rake"
35
+ spec.add_development_dependency "rake_shared_context", "0.2.2"
41
36
  spec.add_development_dependency "rspec"
42
37
  spec.add_development_dependency "rspec-its"
43
38
  spec.add_development_dependency "rspec-power_assert"
44
- spec.add_development_dependency "rubocop", "0.31.0"
39
+ spec.add_development_dependency "rubocop", "0.62.0"
40
+ spec.add_development_dependency "rubocop_auto_corrector"
41
+ spec.add_development_dependency "simplecov", "< 0.18.0"
45
42
  end
@@ -1,14 +1,30 @@
1
1
  module IndexShotgun
2
- module Analyzer
2
+ module Analyzer # rubocop:disable Metrics/ModuleLength
3
3
  require "index_shotgun/array_start_with"
4
4
 
5
+ class Response
6
+ attr_accessor :message, :duplicate_index_count, :total_index_count, :total_table_count
7
+
8
+ def successful?
9
+ duplicate_index_count == 0
10
+ end
11
+
12
+ def exit_if_failure!
13
+ exit(1) unless successful?
14
+ end
15
+ end
16
+
5
17
  class << self
6
18
  using IndexShotgun::ArrayStartWith
7
19
 
8
20
  # Search duplicate index
9
- # @return [String] result message
21
+ # @return [IndexShotgun::Analyzer::Response]
10
22
  def perform
11
- tables = ActiveRecord::Base.connection.tables
23
+ tables =
24
+ ActiveSupport::Deprecation.silence do
25
+ ActiveRecord::Base.connection.tables
26
+ end
27
+ tables.reject! {|table| exclude_tables.include?(table.downcase) }
12
28
 
13
29
  duplicate_indexes =
14
30
  tables.each_with_object([]) do |table, array|
@@ -17,8 +33,8 @@ module IndexShotgun
17
33
  end
18
34
 
19
35
  message =
20
- duplicate_indexes.each_with_object("") do |info, message|
21
- message << <<-EOS.strip_heredoc
36
+ duplicate_indexes.each_with_object("") do |info, str|
37
+ str << <<~MSG
22
38
  # =============================
23
39
  # #{info[:index].table}
24
40
  # =============================
@@ -27,11 +43,11 @@ module IndexShotgun
27
43
  # To remove this duplicate index, execute:
28
44
  ALTER TABLE `#{info[:index].table}` DROP INDEX `#{info[:index].name}`;
29
45
 
30
- EOS
46
+ MSG
31
47
  end
32
48
 
33
- total_index_count = tables.map { |table| table_indexes(table).count }.sum
34
- message << <<-EOS.strip_heredoc
49
+ total_index_count = tables.map {|table| table_indexes(table).count }.sum
50
+ message << <<~MSG
35
51
  # ########################################################################
36
52
  # Summary of indexes
37
53
  # ########################################################################
@@ -40,9 +56,15 @@ module IndexShotgun
40
56
  # Total Indexes #{total_index_count}
41
57
  # Total Tables #{tables.count}
42
58
 
43
- EOS
59
+ MSG
44
60
 
45
- message
61
+ response = Response.new
62
+ response.duplicate_index_count = duplicate_indexes.count
63
+ response.message = message
64
+ response.total_index_count = total_index_count
65
+ response.total_table_count = tables.count
66
+
67
+ response
46
68
  end
47
69
 
48
70
  # check duplicate indexes of table
@@ -76,6 +98,196 @@ module IndexShotgun
76
98
  def table_indexes(table)
77
99
  ActiveRecord::Base.connection.indexes(table)
78
100
  end
101
+
102
+ ORACLE_SYSTEM_TABLES = %w[
103
+ AQ$DEF$_AQCALL
104
+ AQ$DEF$_AQERROR
105
+ AQ$_DEF$_AQCALL_F
106
+ AQ$_DEF$_AQERROR_F
107
+ AQ$_INTERNET_AGENTS
108
+ AQ$_INTERNET_AGENT_PRIVS
109
+ AQ$_QUEUES
110
+ AQ$_QUEUE_TABLES
111
+ AQ$_SCHEDULES
112
+ CATALOG
113
+ COL
114
+ DEF$_AQCALL
115
+ DEF$_AQERROR
116
+ DEF$_CALLDEST
117
+ DEF$_DEFAULTDEST
118
+ DEF$_DESTINATION
119
+ DEF$_ERROR
120
+ DEF$_LOB
121
+ DEF$_ORIGIN
122
+ DEF$_PROPAGATOR
123
+ DEF$_PUSHED_TRANSACTIONS
124
+ HELP
125
+ LOGMNRC_DBNAME_UID_MAP
126
+ LOGMNRC_GSBA
127
+ LOGMNRC_GSII
128
+ LOGMNRC_GTCS
129
+ LOGMNRC_GTLO
130
+ LOGMNRP_CTAS_PART_MAP
131
+ LOGMNRT_MDDL$
132
+ LOGMNR_AGE_SPILL$
133
+ LOGMNR_ATTRCOL$
134
+ LOGMNR_ATTRIBUTE$
135
+ LOGMNR_CCOL$
136
+ LOGMNR_CDEF$
137
+ LOGMNR_COL$
138
+ LOGMNR_COLTYPE$
139
+ LOGMNR_DICTIONARY$
140
+ LOGMNR_DICTSTATE$
141
+ LOGMNR_ENC$
142
+ LOGMNR_ERROR$
143
+ LOGMNR_FILTER$
144
+ LOGMNR_GLOBAL$
145
+ LOGMNR_GT_TAB_INCLUDE$
146
+ LOGMNR_GT_USER_INCLUDE$
147
+ LOGMNR_GT_XID_INCLUDE$
148
+ LOGMNR_ICOL$
149
+ LOGMNR_IND$
150
+ LOGMNR_INDCOMPART$
151
+ LOGMNR_INDPART$
152
+ LOGMNR_INDSUBPART$
153
+ LOGMNR_INTEGRATED_SPILL$
154
+ LOGMNR_KOPM$
155
+ LOGMNR_LOB$
156
+ LOGMNR_LOBFRAG$
157
+ LOGMNR_LOG$
158
+ LOGMNR_LOGMNR_BUILDLOG
159
+ LOGMNR_NTAB$
160
+ LOGMNR_OBJ$
161
+ LOGMNR_OPQTYPE$
162
+ LOGMNR_PARAMETER$
163
+ LOGMNR_PARTOBJ$
164
+ LOGMNR_PROCESSED_LOG$
165
+ LOGMNR_PROPS$
166
+ LOGMNR_REFCON$
167
+ LOGMNR_RESTART_CKPT$
168
+ LOGMNR_RESTART_CKPT_TXINFO$
169
+ LOGMNR_SEED$
170
+ LOGMNR_SESSION$
171
+ LOGMNR_SESSION_ACTIONS$
172
+ LOGMNR_SESSION_EVOLVE$
173
+ LOGMNR_SPILL$
174
+ LOGMNR_SUBCOLTYPE$
175
+ LOGMNR_TAB$
176
+ LOGMNR_TABCOMPART$
177
+ LOGMNR_TABPART$
178
+ LOGMNR_TABSUBPART$
179
+ LOGMNR_TS$
180
+ LOGMNR_TYPE$
181
+ LOGMNR_UID$
182
+ LOGMNR_USER$
183
+ LOGSTDBY$APPLY_MILESTONE
184
+ LOGSTDBY$APPLY_PROGRESS
185
+ LOGSTDBY$EDS_TABLES
186
+ LOGSTDBY$EVENTS
187
+ LOGSTDBY$FLASHBACK_SCN
188
+ LOGSTDBY$HISTORY
189
+ LOGSTDBY$PARAMETERS
190
+ LOGSTDBY$PLSQL
191
+ LOGSTDBY$SCN
192
+ LOGSTDBY$SKIP
193
+ LOGSTDBY$SKIP_SUPPORT
194
+ LOGSTDBY$SKIP_TRANSACTION
195
+ MVIEW$_ADV_AJG
196
+ MVIEW$_ADV_BASETABLE
197
+ MVIEW$_ADV_CLIQUE
198
+ MVIEW$_ADV_ELIGIBLE
199
+ MVIEW$_ADV_EXCEPTIONS
200
+ MVIEW$_ADV_FILTER
201
+ MVIEW$_ADV_FILTERINSTANCE
202
+ MVIEW$_ADV_FJG
203
+ MVIEW$_ADV_GC
204
+ MVIEW$_ADV_INFO
205
+ MVIEW$_ADV_JOURNAL
206
+ MVIEW$_ADV_LEVEL
207
+ MVIEW$_ADV_LOG
208
+ MVIEW$_ADV_OUTPUT
209
+ MVIEW$_ADV_PARAMETERS
210
+ MVIEW$_ADV_PLAN
211
+ MVIEW$_ADV_PRETTY
212
+ MVIEW$_ADV_ROLLUP
213
+ MVIEW$_ADV_SQLDEPEND
214
+ MVIEW$_ADV_TEMP
215
+ MVIEW$_ADV_WORKLOAD
216
+ MVIEW_EVALUATIONS
217
+ MVIEW_EXCEPTIONS
218
+ MVIEW_FILTER
219
+ MVIEW_FILTERINSTANCE
220
+ MVIEW_LOG
221
+ MVIEW_RECOMMENDATIONS
222
+ MVIEW_WORKLOAD
223
+ OL$
224
+ OL$HINTS
225
+ OL$NODES
226
+ PRODUCT_PRIVS
227
+ PRODUCT_USER_PROFILE
228
+ PUBLICSYN
229
+ REPCAT$_AUDIT_ATTRIBUTE
230
+ REPCAT$_AUDIT_COLUMN
231
+ REPCAT$_COLUMN_GROUP
232
+ REPCAT$_CONFLICT
233
+ REPCAT$_DDL
234
+ REPCAT$_EXCEPTIONS
235
+ REPCAT$_EXTENSION
236
+ REPCAT$_FLAVORS
237
+ REPCAT$_FLAVOR_OBJECTS
238
+ REPCAT$_GENERATED
239
+ REPCAT$_GROUPED_COLUMN
240
+ REPCAT$_INSTANTIATION_DDL
241
+ REPCAT$_KEY_COLUMNS
242
+ REPCAT$_OBJECT_PARMS
243
+ REPCAT$_OBJECT_TYPES
244
+ REPCAT$_PARAMETER_COLUMN
245
+ REPCAT$_PRIORITY
246
+ REPCAT$_PRIORITY_GROUP
247
+ REPCAT$_REFRESH_TEMPLATES
248
+ REPCAT$_REPCAT
249
+ REPCAT$_REPCATLOG
250
+ REPCAT$_REPCOLUMN
251
+ REPCAT$_REPGROUP_PRIVS
252
+ REPCAT$_REPOBJECT
253
+ REPCAT$_REPPROP
254
+ REPCAT$_REPSCHEMA
255
+ REPCAT$_RESOLUTION
256
+ REPCAT$_RESOLUTION_METHOD
257
+ REPCAT$_RESOLUTION_STATISTICS
258
+ REPCAT$_RESOL_STATS_CONTROL
259
+ REPCAT$_RUNTIME_PARMS
260
+ REPCAT$_SITES_NEW
261
+ REPCAT$_SITE_OBJECTS
262
+ REPCAT$_SNAPGROUP
263
+ REPCAT$_TEMPLATE_OBJECTS
264
+ REPCAT$_TEMPLATE_PARMS
265
+ REPCAT$_TEMPLATE_REFGROUPS
266
+ REPCAT$_TEMPLATE_SITES
267
+ REPCAT$_TEMPLATE_STATUS
268
+ REPCAT$_TEMPLATE_TARGETS
269
+ REPCAT$_TEMPLATE_TYPES
270
+ REPCAT$_USER_AUTHORIZATIONS
271
+ REPCAT$_USER_PARM_VALUES
272
+ SQLPLUS_PRODUCT_PROFILE
273
+ SYSCATALOG
274
+ SYSFILES
275
+ TAB
276
+ TABQUOTAS
277
+ ].freeze
278
+
279
+ def exclude_tables
280
+ return @exclude_tables if @exclude_tables
281
+
282
+ # Rails default tables
283
+ tables = %w[ar_internal_metadata schema_migrations]
284
+
285
+ # Oracle system tables
286
+ tables += ORACLE_SYSTEM_TABLES
287
+
288
+ @exclude_tables = tables.map(&:downcase)
289
+ @exclude_tables
290
+ end
79
291
  end
80
292
  end
81
293
  end
@@ -56,22 +56,24 @@ module IndexShotgun
56
56
 
57
57
  private
58
58
 
59
- def analyze(adapter_name, gem_name = nil)
60
- gem_name ||= adapter_name
61
- begin
62
- require gem_name
63
- rescue LoadError
64
- puts "[ERROR] #{adapter_name} is not installed. Please run `gem install #{gem_name}` and install gem"
65
- exit!
66
- end
59
+ def analyze(adapter_name, gem_name = nil)
60
+ gem_name ||= adapter_name
61
+ begin
62
+ require gem_name
63
+ rescue LoadError
64
+ puts "[ERROR] #{adapter_name} is not installed. Please run `gem install #{gem_name}` and install gem"
65
+ exit!
66
+ end
67
67
 
68
- config = options.reverse_merge(adapter: adapter_name)
68
+ config = options.reverse_merge(adapter: adapter_name)
69
69
 
70
- ask_password = config.delete("ask_password")
71
- config[:password] = ask("Input password (hidden):", echo: false) if ask_password
70
+ ask_password = config.delete("ask_password")
71
+ config[:password] = ask("Input password (hidden):", echo: false) if ask_password
72
72
 
73
- ActiveRecord::Base.establish_connection(config)
74
- puts IndexShotgun::Analyzer.perform
75
- end
73
+ ActiveRecord::Base.establish_connection(config)
74
+ response = IndexShotgun::Analyzer.perform
75
+ puts response.message
76
+ response.exit_if_failure!
77
+ end
76
78
  end
77
79
  end
@@ -1,6 +1,8 @@
1
1
  namespace :index_shotgun do
2
2
  desc "Search duplicate indexes"
3
3
  task :fire => :environment do
4
- puts IndexShotgun::Analyzer.perform
4
+ response = IndexShotgun::Analyzer.perform
5
+ puts response.message
6
+ response.exit_if_failure!
5
7
  end
6
8
  end
@@ -1,3 +1,3 @@
1
1
  module IndexShotgun
2
- VERSION = "0.2.0"
2
+ VERSION = "1.0.1".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: index_shotgun
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - sue445
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-11-09 00:00:00.000000000 Z
11
+ date: 2021-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 5.0.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'
26
+ version: 5.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: thor
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -42,18 +42,18 @@ dependencies:
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1.10'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '1.10'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: codeclimate-test-reporter
56
+ name: coveralls
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,21 +67,21 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: coveralls
70
+ name: onkcop
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: 0.53.0.2
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: 0.53.0.2
83
83
  - !ruby/object:Gem::Dependency
84
- name: pry-byebug
84
+ name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,21 +95,21 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: rake
98
+ name: rake_shared_context
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - '='
102
102
  - !ruby/object:Gem::Version
103
- version: '10.0'
103
+ version: 0.2.2
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: '10.0'
110
+ version: 0.2.2
111
111
  - !ruby/object:Gem::Dependency
112
- name: rake_shared_context
112
+ name: rspec
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -123,7 +123,7 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: rspec
126
+ name: rspec-its
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -137,7 +137,7 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: rspec-its
140
+ name: rspec-power_assert
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - ">="
@@ -151,7 +151,21 @@ dependencies:
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
- name: rspec-power_assert
154
+ name: rubocop
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '='
158
+ - !ruby/object:Gem::Version
159
+ version: 0.62.0
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '='
165
+ - !ruby/object:Gem::Version
166
+ version: 0.62.0
167
+ - !ruby/object:Gem::Dependency
168
+ name: rubocop_auto_corrector
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
171
  - - ">="
@@ -165,19 +179,19 @@ dependencies:
165
179
  - !ruby/object:Gem::Version
166
180
  version: '0'
167
181
  - !ruby/object:Gem::Dependency
168
- name: rubocop
182
+ name: simplecov
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
- - - '='
185
+ - - "<"
172
186
  - !ruby/object:Gem::Version
173
- version: 0.31.0
187
+ version: 0.18.0
174
188
  type: :development
175
189
  prerelease: false
176
190
  version_requirements: !ruby/object:Gem::Requirement
177
191
  requirements:
178
- - - '='
192
+ - - "<"
179
193
  - !ruby/object:Gem::Version
180
- version: 0.31.0
194
+ version: 0.18.0
181
195
  description: duplicate index checker
182
196
  email:
183
197
  - sue445@sue445.net
@@ -187,12 +201,11 @@ extensions: []
187
201
  extra_rdoc_files: []
188
202
  files:
189
203
  - ".coveralls.yml"
204
+ - ".github/workflows/test.yml"
205
+ - ".github_changelog_generator"
190
206
  - ".gitignore"
191
- - ".hound.yml"
192
207
  - ".rspec"
193
208
  - ".rubocop.yml"
194
- - ".rubocop_standard.yml"
195
- - ".travis.yml"
196
209
  - CHANGELOG.md
197
210
  - Gemfile
198
211
  - LICENSE.txt
@@ -200,7 +213,20 @@ files:
200
213
  - Rakefile
201
214
  - bin/console
202
215
  - bin/setup
216
+ - ci/build.sh
217
+ - ci/database.yml.mysql
218
+ - ci/database.yml.oracle
219
+ - ci/database.yml.postgresql
220
+ - ci/database.yml.sqlite3
221
+ - ci/install.sh
203
222
  - exe/index_shotgun
223
+ - gemfiles/activerecord_5_0.gemfile
224
+ - gemfiles/activerecord_5_1.gemfile
225
+ - gemfiles/activerecord_5_2.gemfile
226
+ - gemfiles/activerecord_6_0.gemfile
227
+ - gemfiles/activerecord_6_1.gemfile
228
+ - gemfiles/activerecord_7_0.gemfile
229
+ - gemfiles/common.gemfile
204
230
  - index_shotgun.gemspec
205
231
  - lib/index_shotgun.rb
206
232
  - lib/index_shotgun/analyzer.rb
@@ -210,16 +236,15 @@ files:
210
236
  - lib/index_shotgun/tasks.rb
211
237
  - lib/index_shotgun/tasks/index_shotgun.rake
212
238
  - lib/index_shotgun/version.rb
213
- - travis_ci/build.sh
214
- - travis_ci/database.yml.mysql
215
- - travis_ci/database.yml.postgresql
216
- - travis_ci/database.yml.sqlite3
217
239
  homepage: https://github.com/sue445/index_shotgun
218
240
  licenses:
219
241
  - MIT
220
242
  metadata:
221
- allowed_push_host: https://rubygems.org
222
- post_install_message:
243
+ homepage_uri: https://github.com/sue445/index_shotgun
244
+ source_code_uri: https://github.com/sue445/index_shotgun
245
+ changelog_uri: https://github.com/sue445/index_shotgun/blob/master/CHANGELOG.md
246
+ rubygems_mfa_required: 'true'
247
+ post_install_message:
223
248
  rdoc_options: []
224
249
  require_paths:
225
250
  - lib
@@ -227,16 +252,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
227
252
  requirements:
228
253
  - - ">="
229
254
  - !ruby/object:Gem::Version
230
- version: 2.1.0
255
+ version: 2.4.0
231
256
  required_rubygems_version: !ruby/object:Gem::Requirement
232
257
  requirements:
233
258
  - - ">="
234
259
  - !ruby/object:Gem::Version
235
260
  version: '0'
236
261
  requirements: []
237
- rubyforge_project:
238
- rubygems_version: 2.4.5.1
239
- signing_key:
262
+ rubygems_version: 3.2.22
263
+ signing_key:
240
264
  specification_version: 4
241
265
  summary: duplicate index checker
242
266
  test_files: []
data/.hound.yml DELETED
@@ -1,2 +0,0 @@
1
- ruby:
2
- config_file: .rubocop.yml