Use Module#prepend
instead of alias_method_chain
This commit is contained in:
parent
f80e768323
commit
5dbf1f4871
4 changed files with 35 additions and 30 deletions
|
@ -97,6 +97,7 @@ v 8.12.0
|
|||
- Fix issue with search filter labels not displaying
|
||||
- Reduce contributions calendar data payload (ClemMakesApps)
|
||||
- Show all pipelines for merge requests even from discarded commits !6414
|
||||
- Replace `alias_method_chain` with `Module#prepend`
|
||||
- Replace contributions calendar timezone payload with dates (ClemMakesApps)
|
||||
- Add `web_url` field to issue, merge request, and snippet API objects (Ben Boeckel)
|
||||
- Enable pipeline events by default !6278
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
module AttrEncrypted
|
||||
module Adapters
|
||||
module ActiveRecord
|
||||
def attribute_instance_methods_as_symbols_with_no_db_connection
|
||||
# Use with_connection so the connection doesn't stay pinned to the thread.
|
||||
connected = ::ActiveRecord::Base.connection_pool.with_connection(&:active?) rescue false
|
||||
|
||||
if connected
|
||||
# Call version from AttrEncrypted::Adapters::ActiveRecord
|
||||
attribute_instance_methods_as_symbols_without_no_db_connection
|
||||
else
|
||||
# Call version from AttrEncrypted, i.e., `super` with regards to AttrEncrypted::Adapters::ActiveRecord
|
||||
AttrEncrypted.instance_method(:attribute_instance_methods_as_symbols).bind(self).call
|
||||
module DBConnectionQuerier
|
||||
def attribute_instance_methods_as_symbols
|
||||
# Use with_connection so the connection doesn't stay pinned to the thread.
|
||||
connected = ::ActiveRecord::Base.connection_pool.with_connection(&:active?) rescue false
|
||||
|
||||
if connected
|
||||
# Call version from AttrEncrypted::Adapters::ActiveRecord
|
||||
super
|
||||
else
|
||||
# Call version from AttrEncrypted, i.e., `super` with regards to AttrEncrypted::Adapters::ActiveRecord
|
||||
AttrEncrypted.instance_method(:attribute_instance_methods_as_symbols).bind(self).call
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
alias_method_chain :attribute_instance_methods_as_symbols, :no_db_connection
|
||||
prepend DBConnectionQuerier
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,5 +1,19 @@
|
|||
if defined?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
|
||||
class ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
|
||||
module LimitFilter
|
||||
def add_column(table_name, column_name, type, options = {})
|
||||
options.delete(:limit) if type == :text
|
||||
super(table_name, column_name, type, options)
|
||||
end
|
||||
|
||||
def change_column(table_name, column_name, type, options = {})
|
||||
options.delete(:limit) if type == :text
|
||||
super(table_name, column_name, type, options)
|
||||
end
|
||||
end
|
||||
|
||||
prepend ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::LimitFilter
|
||||
|
||||
class TableDefinition
|
||||
def text(*args)
|
||||
options = args.extract_options!
|
||||
|
@ -9,18 +23,5 @@ if defined?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
|
|||
column_names.each { |name| column(name, type, options) }
|
||||
end
|
||||
end
|
||||
|
||||
def add_column_with_limit_filter(table_name, column_name, type, options = {})
|
||||
options.delete(:limit) if type == :text
|
||||
add_column_without_limit_filter(table_name, column_name, type, options)
|
||||
end
|
||||
|
||||
def change_column_with_limit_filter(table_name, column_name, type, options = {})
|
||||
options.delete(:limit) if type == :text
|
||||
change_column_without_limit_filter(table_name, column_name, type, options)
|
||||
end
|
||||
|
||||
alias_method_chain :add_column, :limit_filter
|
||||
alias_method_chain :change_column, :limit_filter
|
||||
end
|
||||
end
|
||||
|
|
|
@ -10,19 +10,21 @@ module Banzai
|
|||
# task_list gem.
|
||||
#
|
||||
# See https://github.com/github/task_list/pull/60
|
||||
class TaskListFilter < TaskList::Filter
|
||||
def add_css_class_with_fix(node, *new_class_names)
|
||||
module ClassNamesFilter
|
||||
def add_css_class(node, *new_class_names)
|
||||
if new_class_names.include?('task-list')
|
||||
# Don't add class to all lists
|
||||
return
|
||||
elsif new_class_names.include?('task-list-item')
|
||||
add_css_class_without_fix(node.parent, 'task-list')
|
||||
super(node.parent, 'task-list')
|
||||
end
|
||||
|
||||
add_css_class_without_fix(node, *new_class_names)
|
||||
super(node, *new_class_names)
|
||||
end
|
||||
end
|
||||
|
||||
alias_method_chain :add_css_class, :fix
|
||||
class TaskListFilter < TaskList::Filter
|
||||
prepend ClassNamesFilter
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue