module I18n::Backend::Metadata

Public Class Methods

# File lib/i18n/backend/metadata.rb, line 23
def included(base)
  Object.class_eval do
    def translation_metadata
      unless self.frozen?
        @translation_metadata ||= {}
      else
        {}
      end
    end

    def translation_metadata=(translation_metadata)
      @translation_metadata = translation_metadata unless self.frozen?
    end
  end unless Object.method_defined?(:translation_metadata)
end
# File lib/i18n/backend/metadata.rb, line 25
def translation_metadata
  unless self.frozen?
    @translation_metadata ||= {}
  else
    {}
  end
end
# File lib/i18n/backend/metadata.rb, line 33
def translation_metadata=(translation_metadata)
  @translation_metadata = translation_metadata unless self.frozen?
end

Public Instance Methods

Calls superclass method
# File lib/i18n/backend/metadata.rb, line 52
def interpolate(locale, entry, values = EMPTY_HASH)
  metadata = entry.translation_metadata.merge(:original => entry)
  with_metadata(metadata) { super }
end
Calls superclass method
# File lib/i18n/backend/metadata.rb, line 57
def pluralize(locale, entry, count)
  with_metadata(:count => count) { super }
end
Calls superclass method
# File lib/i18n/backend/metadata.rb, line 40
def translate(locale, key, options = EMPTY_HASH)
  metadata = {
    :locale    => locale,
    :key       => key,
    :scope     => options[:scope],
    :default   => options[:default],
    :separator => options[:separator],
    :values    => options.reject { |name, _value| RESERVED_KEYS.include?(name) }
  }
  with_metadata(metadata) { super }
end

Protected Instance Methods

# File lib/i18n/backend/metadata.rb, line 63
def with_metadata(metadata, &block)
  result = yield
  result.translation_metadata = result.translation_metadata.merge(metadata) if result
  result
end