Sha256: 7cd1d284672a0e57f918ba5a5eecde9674f8335aeaae47a83a2636a686240da9

Contents?: true

Size: 1.13 KB

Versions: 80

Compression:

Stored size: 1.13 KB

Contents

module Effective
  module Resources
    module Naming
      SPLIT = /\/|::/  # / or ::

      def name # 'post'
        @name ||= ((klass.present? ? klass.name : initialized_name).to_s.split(SPLIT).last || '').singularize.underscore
      end

      def plural_name # 'posts'
        name.pluralize
      end

      def initialized_name
        @initialized_name
      end

      def class_name # 'Effective::Post'
        @model_klass ? @model_klass.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'
        (Array(namespaces).map { |name| name.to_s.classify } + [class_name]) * '::'
      end

      def namespace # 'admin/things'
        (namespaces.join('/') if namespaces.present?)
      end

      def namespaces # ['admin', 'things']
        @namespaces || []
      end

      def human_name
        class_name.gsub('::', ' ').underscore.gsub('_', ' ')
      end

      def human_plural_name
        class_name.pluralize.gsub('::', ' ').underscore.gsub('_', ' ')
      end

    end
  end
end

Version data entries

80 entries across 80 versions & 1 rubygems

Version Path
effective_resources-1.5.5 app/models/effective/resources/naming.rb
effective_resources-1.5.4 app/models/effective/resources/naming.rb
effective_resources-1.5.3 app/models/effective/resources/naming.rb
effective_resources-1.5.2 app/models/effective/resources/naming.rb
effective_resources-1.5.1 app/models/effective/resources/naming.rb
effective_resources-1.5.0 app/models/effective/resources/naming.rb
effective_resources-1.4.13 app/models/effective/resources/naming.rb
effective_resources-1.4.12 app/models/effective/resources/naming.rb
effective_resources-1.4.11 app/models/effective/resources/naming.rb
effective_resources-1.4.10 app/models/effective/resources/naming.rb
effective_resources-1.4.9 app/models/effective/resources/naming.rb
effective_resources-1.4.8 app/models/effective/resources/naming.rb
effective_resources-1.4.7 app/models/effective/resources/naming.rb
effective_resources-1.4.6 app/models/effective/resources/naming.rb
effective_resources-1.4.5 app/models/effective/resources/naming.rb
effective_resources-1.4.4 app/models/effective/resources/naming.rb
effective_resources-1.4.3 app/models/effective/resources/naming.rb
effective_resources-1.4.2 app/models/effective/resources/naming.rb
effective_resources-1.4.1 app/models/effective/resources/naming.rb
effective_resources-1.4.0 app/models/effective/resources/naming.rb