Froze rails gems
[depot.git] / vendor / rails / activesupport / lib / active_support / core_ext / module / model_naming.rb
diff --git a/vendor/rails/activesupport/lib/active_support/core_ext/module/model_naming.rb b/vendor/rails/activesupport/lib/active_support/core_ext/module/model_naming.rb
new file mode 100644 (file)
index 0000000..3ec4f3b
--- /dev/null
@@ -0,0 +1,23 @@
+module ActiveSupport
+  class ModelName < String
+    attr_reader :singular, :plural, :cache_key, :partial_path
+
+    def initialize(name)
+      super
+      @singular = underscore.tr('/', '_').freeze
+      @plural = @singular.pluralize.freeze
+      @cache_key = tableize.freeze
+      @partial_path = "#{@cache_key}/#{demodulize.underscore}".freeze
+    end
+  end
+
+  module CoreExtensions
+    module Module
+      # Returns an ActiveSupport::ModelName object for module. It can be
+      # used to retrieve all kinds of naming-related information.
+      def model_name
+        @model_name ||= ModelName.new(name)
+      end
+    end
+  end
+end