From 6780764fdf2b439a5715eaf5406207609d624931 Mon Sep 17 00:00:00 2001 From: Peter Maneykowski Date: Tue, 5 Jul 2022 21:45:44 -0500 Subject: [PATCH 1/2] support Ruby 3.1 --- .../connection_adapters/postgresql/schema_statements.rb | 2 +- .../connection_adapters/abstract_adapter/schema_methods.rb | 5 +++-- .../postgresql_adapter/foreign_key_methods.rb | 4 ++-- .../connection_adapters/postgresql_adapter/schema_methods.rb | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/core_ext/active_record/connection_adapters/postgresql/schema_statements.rb b/lib/core_ext/active_record/connection_adapters/postgresql/schema_statements.rb index e2ff191..7675f83 100644 --- a/lib/core_ext/active_record/connection_adapters/postgresql/schema_statements.rb +++ b/lib/core_ext/active_record/connection_adapters/postgresql/schema_statements.rb @@ -225,7 +225,7 @@ def index_name(table_name, options) #:nodoc: end # Override super method to provide support for expression column names. - def quoted_columns_for_index(column_names, **options) + def quoted_columns_for_index(column_names, options = {}) return [column_names] if column_names.is_a?(String) quoted_columns = Hash[ diff --git a/lib/pg_saurus/connection_adapters/abstract_adapter/schema_methods.rb b/lib/pg_saurus/connection_adapters/abstract_adapter/schema_methods.rb index bf2734e..6b262c2 100644 --- a/lib/pg_saurus/connection_adapters/abstract_adapter/schema_methods.rb +++ b/lib/pg_saurus/connection_adapters/abstract_adapter/schema_methods.rb @@ -5,12 +5,13 @@ module PgSaurus::ConnectionAdapters::AbstractAdapter::SchemaMethods # Provide :schema option to +create_table+ method. def create_table(table_name, options = {}, &block) table_name, options = extract_table_options(table_name, options) - super(table_name, options, &block) + super(table_name, **options, &block) end # Provide :schema option to +drop_table+ method. def drop_table(table_name, options = {}) - super(*extract_table_options(table_name, options)) + options = extract_table_options(table_name, options) + super(options[0], **options[1]) end def extract_table_options(table_name, options) diff --git a/lib/pg_saurus/connection_adapters/postgresql_adapter/foreign_key_methods.rb b/lib/pg_saurus/connection_adapters/postgresql_adapter/foreign_key_methods.rb index 0227832..ae91622 100644 --- a/lib/pg_saurus/connection_adapters/postgresql_adapter/foreign_key_methods.rb +++ b/lib/pg_saurus/connection_adapters/postgresql_adapter/foreign_key_methods.rb @@ -34,7 +34,7 @@ def add_foreign_key(from_table, to_table, options = {}) " Use :exclude_index => true when adding the foreign key." end - super from_table, to_table, options + super from_table, to_table, **options unless exclude_index add_index from_table, column @@ -51,7 +51,7 @@ def remove_foreign_key(from_table, options_or_to_table = {}) options_or_to_table.delete(:remove_index) end - super(from_table, options_or_to_table) + super(from_table, **options_or_to_table) end # See: activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb diff --git a/lib/pg_saurus/connection_adapters/postgresql_adapter/schema_methods.rb b/lib/pg_saurus/connection_adapters/postgresql_adapter/schema_methods.rb index d5b29db..bef26ab 100644 --- a/lib/pg_saurus/connection_adapters/postgresql_adapter/schema_methods.rb +++ b/lib/pg_saurus/connection_adapters/postgresql_adapter/schema_methods.rb @@ -27,7 +27,7 @@ def drop_table(table_name, options = {}) options = options.dup schema_name = options.delete(:schema) table_name = "#{schema_name}.#{table_name}" if schema_name - super(table_name, options) + super(table_name, **options) end # Make method +tables+ return tables not only from public schema. From 95ca090898b105b0004a89e5212d6b00121a119f Mon Sep 17 00:00:00 2001 From: Peter Maneykowski Date: Thu, 4 Aug 2022 22:28:18 -0500 Subject: [PATCH 2/2] modify `remove_foreign_key` --- .../abstract_adapter/schema_methods.rb | 4 ++-- .../postgresql_adapter/foreign_key_methods.rb | 10 +++++----- spec/dummy/db/schema.rb | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/pg_saurus/connection_adapters/abstract_adapter/schema_methods.rb b/lib/pg_saurus/connection_adapters/abstract_adapter/schema_methods.rb index 6b262c2..c512b70 100644 --- a/lib/pg_saurus/connection_adapters/abstract_adapter/schema_methods.rb +++ b/lib/pg_saurus/connection_adapters/abstract_adapter/schema_methods.rb @@ -10,8 +10,8 @@ def create_table(table_name, options = {}, &block) # Provide :schema option to +drop_table+ method. def drop_table(table_name, options = {}) - options = extract_table_options(table_name, options) - super(options[0], **options[1]) + table_name, options = extract_table_options(table_name, options) + super(table_name, **options) end def extract_table_options(table_name, options) diff --git a/lib/pg_saurus/connection_adapters/postgresql_adapter/foreign_key_methods.rb b/lib/pg_saurus/connection_adapters/postgresql_adapter/foreign_key_methods.rb index ae91622..13d2bc8 100644 --- a/lib/pg_saurus/connection_adapters/postgresql_adapter/foreign_key_methods.rb +++ b/lib/pg_saurus/connection_adapters/postgresql_adapter/foreign_key_methods.rb @@ -44,14 +44,14 @@ def add_foreign_key(from_table, to_table, options = {}) # See activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb # # Pass in the option remove_index: true to remove index as well. - def remove_foreign_key(from_table, options_or_to_table = {}) - if options_or_to_table.is_a?(Hash) && options_or_to_table[:remove_index] - column = options_or_to_table[:column] + def remove_foreign_key(from_table, to_table = nil, **options) + if options[:remove_index] + column = options[:column] remove_index from_table, column - options_or_to_table.delete(:remove_index) + options.delete(:remove_index) end - super(from_table, **options_or_to_table) + super(from_table, to_table, **options) end # See: activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb diff --git a/spec/dummy/db/schema.rb b/spec/dummy/db/schema.rb index aee8fca..0b31aa3 100644 --- a/spec/dummy/db/schema.rb +++ b/spec/dummy/db/schema.rb @@ -17,7 +17,7 @@ create_schema_if_not_exists "latest" create_extension "fuzzystrmatch", version: "1.1" - create_extension "btree_gist", schema_name: "demography", version: "1.2" + create_extension "btree_gist", schema_name: "demography", version: "1.5" # These are extensions that must be enabled in order to support this database enable_extension "btree_gist"