Sha256: 8fc9bcec5592accedcfbd6e480eee38768686855c872aef5ecaf986ec9feb09e

Contents?: true

Size: 910 Bytes

Versions: 8

Compression:

Stored size: 910 Bytes

Contents

# encoding: UTF-8

# Copyright 2012 Twitter, Inc
# http://www.apache.org/licenses/LICENSE-2.0

module TwitterCldr
  module Localized

    class LocalizedObject

      attr_reader :locale, :base_obj, :formatter

      def initialize(obj, locale, options = {})
        @base_obj = obj
        @locale = TwitterCldr.convert_locale(locale)
        @locale = TwitterCldr::DEFAULT_LOCALE unless TwitterCldr.supported_locale?(@locale)

        options = options.dup
        options[:locale] = @locale

        @formatter = formatter_const.new(options) if formatter_const
      end

      def formatter_const
        raise NotImplementedError
      end

      def self.localize(klass)
        klass.class_eval <<-LOCALIZE, __FILE__, __LINE__ + 1
          def localize(locale = TwitterCldr.locale, options = {})
            #{self}.new(self, locale, options)
          end
        LOCALIZE
      end
    end

  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
twitter_cldr-2.4.3 lib/twitter_cldr/localized/localized_object.rb
twitter_cldr-3.0.0.beta1 lib/twitter_cldr/localized/localized_object.rb
twitter_cldr-2.4.2 lib/twitter_cldr/localized/localized_object.rb
twitter_cldr-2.4.1 lib/twitter_cldr/localized/localized_object.rb
twitter_cldr-2.4.0 lib/twitter_cldr/localized/localized_object.rb
twitter_cldr-2.2.0 lib/twitter_cldr/localized/localized_object.rb
twitter_cldr-2.1.1 lib/twitter_cldr/localized/localized_object.rb
twitter_cldr-2.1.0 lib/twitter_cldr/localized/localized_object.rb