mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-09-18 22:34:56 +09:00
Use public_send instead of send
This commit is contained in:
@@ -6,7 +6,7 @@ module ActiveRecord
|
||||
end
|
||||
|
||||
def assign_data_with_type_casting(new_data)
|
||||
new_data.each { |k, v| send "#{k}=", v }
|
||||
new_data.each { |k, v| public_send "#{k}=", v }
|
||||
end
|
||||
|
||||
private
|
||||
@@ -58,12 +58,12 @@ module ActiveRecord
|
||||
def has_json(delegate: false, **schemas)
|
||||
schemas.each do |name, schema|
|
||||
define_method(name) { ActiveRecord::SchematizedJson.new(schema, data: self[name]) }
|
||||
define_method("#{name}=") { |data| send(name).assign_data_with_type_casting(data) }
|
||||
define_method("#{name}=") { |data| public_send(name).assign_data_with_type_casting(data) }
|
||||
|
||||
schema.keys.each do |schema_key|
|
||||
define_method(schema_key) { send(name).send(schema_key) }
|
||||
define_method("#{schema_key}?") { send(name).send("#{schema_key}?") }
|
||||
define_method("#{schema_key}=") { |value| send(name).send("#{schema_key}=", value) }
|
||||
define_method(schema_key) { public_send(name).public_send(schema_key) }
|
||||
define_method("#{schema_key}?") { public_send(name).public_send("#{schema_key}?") }
|
||||
define_method("#{schema_key}=") { |value| send(name).public_send("#{schema_key}=", value) }
|
||||
end if delegate
|
||||
|
||||
# Ensures default values are set before saving
|
||||
|
||||
Reference in New Issue
Block a user