module Horza
  module CoreExtensions
    module String
      def singular?
        singularize(:en) == self
      end

      def plural?
        pluralize(:en) == self
      end

      def symbolize
        underscore.to_sym
      end

      def underscore
        gsub(/::/, '/')
        .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
        .gsub(/([a-z\d])([A-Z])/, '\1_\2')
        .tr('-', '_')
        .downcase
      end
    end
  end
end

module Horza
  module CoreExtensions
    module String
      def singular?
        singularize(:en) == self
      end

      def plural?
        pluralize(:en) == self
      end

      def symbolize
        underscore.to_sym
      end
    end
  end
end

Remove :underscore method as it is not needed or being called.
Remove :underscore method as it is not needed or being called.

Because of the dependency load order, the actual method being
called is the one defined in /active_support/core_ext/string/inflections.rb
