Sha256: 891ac71513d90c64ffd35eba9b85abe5e9891144105abfd6131a6d13f5867424

Contents?: true

Size: 889 Bytes

Versions: 1

Compression:

Stored size: 889 Bytes

Contents

module Humpyard 
  module ActiveModel #:nodoc:
    module Name #:nodoc:
      def self.included(base)
        base.alias_method_chain :human, :namespaces
      end
      
      def human_with_namespaces(options={})
        # Rails orig
        return @human unless @klass.respond_to?(:lookup_ancestors) &&
                             @klass.respond_to?(:i18n_scope)

        # Namespace patch
        defaults = @klass.lookup_ancestors.map do |klass|
          klass.model_name.underscore.gsub('/','.').to_sym
        end
        
        # Rails orig
        defaults << options.delete(:default) if options[:default]
        defaults << @human

        options.reverse_merge! :scope => [@klass.i18n_scope, :models], :count => 1, :default => defaults
        I18n.translate(defaults.shift, options)
      end
    end
  end
end

ActiveModel::Name.send :include, Humpyard::ActiveModel::Name

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
humpyard-0.0.1 lib/humpyard/active_model/naming.rb