Use Module#prepend instead of alias_method_chain

This commit is contained in:
Andre Guedes 2016-09-21 09:46:13 -03:00
parent f80e768323
commit 5dbf1f4871
4 changed files with 35 additions and 30 deletions

View file

@ -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

View file

@ -1,20 +1,21 @@
module AttrEncrypted
module Adapters
module ActiveRecord
def attribute_instance_methods_as_symbols_with_no_db_connection
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
attribute_instance_methods_as_symbols_without_no_db_connection
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
alias_method_chain :attribute_instance_methods_as_symbols, :no_db_connection
end
prepend DBConnectionQuerier
end
end
end

View file

@ -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

View file

@ -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