Module: Traits::Model::Naming
- Included in:
- Traits::Model
- Defined in:
- lib/traits/concerns/model/naming.rb
Instance Method Summary collapse
-
#class_name ⇒ Object
class User class_name => User.
-
#lookup_name(namecase = :class) ⇒ Object
class User lookup_name => User lookup_name(:underscore) => user.
-
#name ⇒ Object
class User name => user.
-
#plural_name ⇒ Object
class User plural_name => users.
-
#resource_name ⇒ Object
class User resource_name => users.
- #to_hash ⇒ Object
Instance Method Details
#class_name ⇒ Object
class User
class_name => User
class Assets::Photo
class_name => Assets::Photo
56 57 58 |
# File 'lib/traits/concerns/model/naming.rb', line 56 def class_name @class_name ||= model_class.name end |
#lookup_name(namecase = :class) ⇒ Object
class User
lookup_name => User
lookup_name(:underscore) => user
class Assets::Photo
lookup_name => AssetsPhoto
lookup_name(:underscore) => assets_photo
68 69 70 |
# File 'lib/traits/concerns/model/naming.rb', line 68 def lookup_name(namecase = :class) namecase == :underscore ? name.gsub('/', '_') : class_name.gsub('::', '') end |
#name ⇒ Object
class User
name => user
class Assets::Photo
name => assets/photo
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/traits/concerns/model/naming.rb', line 10 def name # Rails 4.1 doesn't support nested acronyms # # Rails 4.1 behaviour: # 'Helpers::ViewHelper'.underscore => 'helpers/view_helper' - good # 'CIHelper'.underscore => 'ci_helper' - good # 'Helpers::CIHelper' => 'helpers/ci_helper' - good # # 'Helpers::ViewHelper' => 'helpers/view_helper' - good # 'CIHelper' => 'cihelper' - good # 'Helpers::CIHelper' => 'helpers/ci_helper' - bad! # # Newer Rails behaviour: # 'Helpers::ViewHelper' => 'helpers/view_helper' - good # 'CIHelper' => 'cihelper' - good # 'Helpers::CIHelper' => 'helpers/cihelper' - good # @name ||= model_class.name.split('::').map(&:underscore).join('/') end |
#plural_name ⇒ Object
class User
plural_name => users
class Assets::Photo
plural_name => assets/photos
36 37 38 |
# File 'lib/traits/concerns/model/naming.rb', line 36 def plural_name @plural_name ||= name.pluralize end |
#resource_name ⇒ Object
class User
resource_name => users
class Assets::Photo
resource_name => assets/photos
46 47 48 |
# File 'lib/traits/concerns/model/naming.rb', line 46 def resource_name @resource_name ||= plural_name end |
#to_hash ⇒ Object
72 73 74 75 76 77 78 79 80 |
# File 'lib/traits/concerns/model/naming.rb', line 72 def to_hash super.merge!( name: name, plural_name: plural_name, class_name: class_name, lookup_name: lookup_name, resource_name: resource_name ) end |