Sha256: 26a808e2ec2ce64a6b7863f10393d02382bb6ecce40965460f97ef981055ee23
Contents?: true
Size: 1002 Bytes
Versions: 3
Compression:
Stored size: 1002 Bytes
Contents
module Effective module Resources module Naming SPLIT = /\/|::/ # / or :: def name # 'post' @name ||= @input_name.split(SPLIT).last.singularize end def plural_name # 'posts' name.pluralize end def class_name # 'Effective::Post' @class_name ||= (@input_name.split(SPLIT) - namespaces).map { |name| name.classify } * '::' end def class_path # 'effective' class_name.split('::')[0...-1].map { |name| name.underscore } * '/' end def namespaced_class_name # 'Admin::Effective::Post' (namespaces.map { |name| name.classify } + [class_name]) * '::' end def namespace # 'admin/things' @namespace ||= (namespaces.join('/') if namespaces.present?) end def namespaces # ['admin', 'things'] @namespaces ||= @input_name.split('/')[0...-1] end def human_name class_name.gsub('::', ' ').underscore.gsub('_', ' ') end end end end
Version data entries
3 entries across 3 versions & 1 rubygems