Skip to content

Commit

Permalink
Merge pull request #516 from koic/fix_error_rails_bulk_change_table
Browse files Browse the repository at this point in the history
[Fix #515] Fix an error for `Rails/BulkChangeTable`
  • Loading branch information
koic committed Jul 1, 2021
2 parents 7485ea7 + 97b6943 commit 37de74e
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 7 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

## master (unreleased)

### Bug fixes

* [#515](https://github.com/rubocop/rubocop-rails/issues/515): Fix an error for `Rails/BulkChangeTable` when using Psych 4.0. ([@koic][])

## 2.11.1 (2021-06-25)

### Bug fixes
Expand Down
6 changes: 5 additions & 1 deletion lib/rubocop/cop/rails/bulk_change_table.rb
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,11 @@ def database_from_yaml
def database_yaml
return nil unless File.exist?('config/database.yml')

yaml = YAML.load_file('config/database.yml')
yaml = if YAML.respond_to?(:unsafe_load_file)
YAML.unsafe_load_file('config/database.yml')
else
YAML.load_file('config/database.yml')
end
return nil unless yaml.is_a? Hash

config = yaml['development']
Expand Down
12 changes: 6 additions & 6 deletions spec/rubocop/cop/rails/bulk_change_table_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -414,12 +414,12 @@ def change
let(:yaml) { nil }

before do
allow(File).to receive(:exist?)
.with('config/database.yml')
.and_return(true)
allow(YAML).to receive(:load_file)
.with('config/database.yml')
.and_return(yaml)
allow(File).to receive(:exist?).with('config/database.yml').and_return(true)
if YAML.respond_to?(:unsafe_load_file)
allow(YAML).to receive(:unsafe_load_file).with('config/database.yml').and_return(yaml)
else
allow(YAML).to receive(:load_file).with('config/database.yml').and_return(yaml)
end
end

context 'mysql2' do
Expand Down

0 comments on commit 37de74e

Please sign in to comment.