module Wallaby::ModelUtils
Model related utils
Public Class Methods
to_model_class(resources_name)
click to toggle source
Convert resources name (e.g. `namespace::products`) into model class (e.g. `Namespace::Product`) @param resources_name [String] resources name @return [Class] model class @return [nil] when not found
# File lib/utils/wallaby/model_utils.rb, line 31 def to_model_class(resources_name) return if resources_name.blank? class_name = to_model_name resources_name # NOTE: DO NOT try to use const_defined? and const_get EVER. # This is Rails, use constantize class_name.constantize rescue NameError Logger.warn Locale.t('errors.not_found.model', model: class_name), sourcing: 2..10 end
to_model_label(model_class)
click to toggle source
Produce model label (e.g. `Namespace / Product`) for model class (e.g. `Namespace::Product`) @param model_class [Class, String] model class @return [String] model label
# File lib/utils/wallaby/model_utils.rb, line 19 def to_model_label(model_class) # TODO: change to use i18n translation return EMPTY_STRING if model_class.blank? model_class_name = to_model_name model_class model_class_name.titleize.gsub(SLASH, SPACE + SLASH + SPACE) end
to_model_name(resources_name)
click to toggle source
Convert resources name (e.g. `namespace::products`) into model name (e.g. `Namespace::Product`) @param resources_name [String] resources name @return [String] model name
# File lib/utils/wallaby/model_utils.rb, line 45 def to_model_name(resources_name) return EMPTY_STRING if resources_name.blank? resources_name.to_s.singularize.gsub(COLONS, SLASH).camelize end
to_resources_name(model_class)
click to toggle source
Convert model class (e.g. `Namespace::Product`) into resources name (e.g. `namespace::products`) @param model_class [Class, String] model class @return [String] resources name
# File lib/utils/wallaby/model_utils.rb, line 10 def to_resources_name(model_class) return EMPTY_STRING if model_class.blank? model_class.to_s.underscore.gsub(SLASH, COLONS).pluralize end