Proposal to expose a class or object of ActiveModel::Errors caller

ActiveInteraction and a big amount of other frameworks are using ActiveModel::Errors to implement errors.

When combined with other gems or frameworks that are using ActiveModel it is difficult to find out what class have called ActiveModel::Errors.new(self). For example the following case:

module MyAwesomeFramework
class Errors < ActiveModel::Errors
def merge!(other_instance_of_active_model_errors)
if other_instance_of_active_model_errors.called_by? User # User is an ActiveRecord::Base
# Use ActiveModel’s error translations
else
# Do magic to decide what translations to use
end
end
end
end

``

That is why I propose to expose something like

class ActiveModel::Errors

#…

def called_by?(klass)
caller.class == klass
end

def caller
@base
end

#…

end

``

Not sure about the name of method however.

Thanks in advance,

Ivan