lib/active_admin/resource/naming.rb in andrewroth_activeadmin-0.3.4 vs lib/active_admin/resource/naming.rb in andrewroth_activeadmin-0.3.4.1
- old
+ new
@@ -1,50 +1,62 @@
module ActiveAdmin
class Resource
module Naming
+ # Returns the name to call this resource such as "Bank Account"
+ def resource_name
+ @resource_name ||= @options[:as]
+ @resource_name ||= singular_human_name
+ @resource_name ||= resource_class.name.gsub('::',' ')
+ end
- # An underscored safe representation internally for this resource
- def underscored_resource_name
- @underscored_resource_name ||= if @options[:as]
- @options[:as].gsub(' ', '').underscore.singularize
- else
- resource.name.gsub('::','').underscore
- end
+ # Returns the plural version of this resource such as "Bank Accounts"
+ def plural_resource_name
+ @plural_resource_name ||= @options[:as].pluralize if @options[:as]
+ @plural_resource_name ||= plural_human_name
+ @plural_resource_name ||= resource_name.pluralize
end
+ # A name used internally to uniquely identify this resource
+ def resource_key
+ camelized_resource_name
+ end
+
# A camelized safe representation for this resource
def camelized_resource_name
- underscored_resource_name.camelize
+ resource_name.titleize.gsub(' ', '')
end
- # Returns the name to call this resource.
- # By default will use resource.model_name.human
- def resource_name
- @resource_name ||= if @options[:as] || !resource.respond_to?(:model_name)
- underscored_resource_name.titleize
- else
- resource.model_name.human.titleize
- end
+ def plural_camelized_resource_name
+ plural_resource_name.titleize.gsub(' ', '')
end
- # Returns the plural version of this resource
- def plural_resource_name
- @plural_resource_name ||= if @options[:as] || !resource.respond_to?(:model_name)
- resource_name.pluralize
- else
- # Check if we have a translation available otherwise pluralize
- begin
- I18n.translate!("activerecord.models.#{resource.model_name.underscore}")
- resource.model_name.human(:count => 3)
- rescue I18n::MissingTranslationData
- resource_name.pluralize
- end
- end
+ # An underscored safe representation internally for this resource
+ def underscored_resource_name
+ camelized_resource_name.underscore
end
-
+
# Returns the plural and underscored version of this resource. Useful for element id's.
def plural_underscored_resource_name
- plural_resource_name.underscore.gsub(/\s/, '_')
+ plural_camelized_resource_name.underscore
+ end
+
+ private
+
+ # @return [String] Titleized human name via ActiveRecord I18n or nil
+ def singular_human_name
+ return nil unless resource_class.respond_to?(:model_name)
+ resource_class.model_name.human.titleize
+ end
+
+ # @return [String] Titleized plural human name via ActiveRecord I18n or nil
+ def plural_human_name
+ return nil unless resource_class.respond_to?(:model_name)
+
+ begin
+ I18n.translate!("activerecord.models.#{resource_class.model_name.underscore}.other").titleize
+ rescue I18n::MissingTranslationData
+ nil
+ end
end
end
end
end