DEV: Prefer public_send over send.

This commit is contained in:
Guo Xiang Tan
2019-05-07 09:27:05 +08:00
parent 9be70a22cd
commit 152238b4cf
74 changed files with 216 additions and 129 deletions

View File

@ -95,11 +95,11 @@ class Plugin::Instance
if define_include_method
# Don't include serialized methods if the plugin is disabled
klass.send(:define_method, "include_#{attr}?") { plugin.enabled? }
klass.public_send(:define_method, "include_#{attr}?") { plugin.enabled? }
end
end
klass.send(:define_method, attr, &block)
klass.public_send(:define_method, attr, &block)
end
end
@ -170,10 +170,10 @@ class Plugin::Instance
reloadable_patch do |plugin|
klass = class_name.to_s.classify.constantize rescue class_name.to_s.constantize
hidden_method_name = :"#{attr}_without_enable_check"
klass.send(:define_method, hidden_method_name, &block)
klass.public_send(:define_method, hidden_method_name, &block)
klass.send(:define_method, attr) do |*args|
send(hidden_method_name, *args) if plugin.enabled?
klass.public_send(:define_method, attr) do |*args|
public_send(hidden_method_name, *args) if plugin.enabled?
end
end
end
@ -184,10 +184,10 @@ class Plugin::Instance
klass = klass_name.to_s.classify.constantize rescue klass_name.to_s.constantize
hidden_method_name = :"#{attr}_without_enable_check"
klass.send(:define_singleton_method, hidden_method_name, &block)
klass.public_send(:define_singleton_method, hidden_method_name, &block)
klass.send(:define_singleton_method, attr) do |*args|
send(hidden_method_name, *args) if plugin.enabled?
klass.public_send(:define_singleton_method, attr) do |*args|
public_send(hidden_method_name, *args) if plugin.enabled?
end
end
end
@ -200,10 +200,10 @@ class Plugin::Instance
method_name = "#{plugin.name}_#{klass.name}_#{callback}#{@idx}".underscore
@idx += 1
hidden_method_name = :"#{method_name}_without_enable_check"
klass.send(:define_method, hidden_method_name, &block)
klass.public_send(:define_method, hidden_method_name, &block)
klass.send(callback, options) do |*args|
send(hidden_method_name, *args) if plugin.enabled?
klass.public_send(callback, options) do |*args|
public_send(hidden_method_name, *args) if plugin.enabled?
end
hidden_method_name
@ -243,7 +243,7 @@ class Plugin::Instance
# Add validation method but check that the plugin is enabled
def validate(klass, name, &block)
klass = klass.to_s.classify.constantize
klass.send(:define_method, name, &block)
klass.public_send(:define_method, name, &block)
plugin = self
klass.validate(name, if: -> { plugin.enabled? })
@ -609,11 +609,11 @@ class Plugin::Instance
end
def extend_list_method(klass, method, new_attributes)
current_list = klass.send(method)
current_list = klass.public_send(method)
current_list.concat(new_attributes)
reloadable_patch do
klass.send(:define_singleton_method, method) { current_list }
klass.public_send(:define_singleton_method, method) { current_list }
end
end

View File

@ -95,7 +95,7 @@ class Plugin::Metadata
attribute = attribute.strip.gsub(/ /, '_').to_sym
if FIELDS.include?(attribute)
self.send("#{attribute}=", description.strip)
self.public_send("#{attribute}=", description.strip)
end
end