10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/well_formed/translations.rb', line 10
def resource_alias(resource)
resolved = case resource
when Class
raise ArgumentError, "#{resource} does not respond to model_name" unless resource.respond_to?(:model_name)
resource.model_name
when Symbol, String
name_str = ActiveSupport::Inflector.camelize(resource.to_s)
ActiveModel::Name.new(Class.new, nil, name_str)
else
raise ArgumentError, "resource_alias expects a Class, Symbol, or String, got #{resource.class}"
end
define_singleton_method(:model_name) { resolved }
alias_name = resolved.element.to_sym
alias_method alias_name, :resource
end
|