Sha256: 2cc0c09bcef07b94742e7f42c3e594460f4cb4476fae74a13a515e899898dd5a

Contents?: true

Size: 1.48 KB

Versions: 6

Compression:

Stored size: 1.48 KB

Contents

# encoding: UTF-8

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

module TwitterCldr
  module Localized

    class LocalizedDate < LocalizedDateTime
      def to_datetime(time = Time.now)
        dt = DateTime.parse("#{@base_obj.strftime("%Y-%m-%d")}T#{unwrap_time_obj(time).strftime("%H:%M:%S%z")}")
        LocalizedDateTime.new(dt, @locale, chain_params)
      end

      def to_time(base = Time.now)
        case @base_obj
          when Time
            LocalizedTime.new(@base_obj, @locale, chain_params)
          when DateTime
            utc_dt = @base_obj.new_offset(0)

            time = Time.gm(
              utc_dt.year,
              utc_dt.month,
              utc_dt.day,
              utc_dt.hour,
              utc_dt.min,
              utc_dt.sec,
              utc_dt.sec_fraction * 1_000_000
            )

            LocalizedTime.new(time, @locale, chain_params)
          else
            nil
        end
      end

      protected

      def unwrap_time_obj(time)
        time.is_a?(LocalizedTime) ? time.base_obj : time
      end

      def base_in_timezone
        time = unwrap_time_obj(to_time)
        timezone_info.utc_to_local(time.is_a?(DateTime) ? time.new_offset(0) : time.utc)
      end

      def data_reader_for(type, options = {})
        TwitterCldr::DataReaders::DateDataReader.new(
          locale, options.merge({
            :calendar_type => calendar_type,
            :type => type
          })
        )
      end

    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
solidus_backend-1.0.0.pre3 vendor/bundle/gems/twitter_cldr-3.2.1/lib/twitter_cldr/localized/localized_date.rb
solidus_backend-1.0.0.pre2 vendor/bundle/gems/twitter_cldr-3.2.1/lib/twitter_cldr/localized/localized_date.rb
solidus_backend-1.0.0.pre vendor/bundle/gems/twitter_cldr-3.1.2/lib/twitter_cldr/localized/localized_date.rb
twitter_cldr-3.2.1 lib/twitter_cldr/localized/localized_date.rb
twitter_cldr-3.2.0 lib/twitter_cldr/localized/localized_date.rb
twitter_cldr-3.1.2 lib/twitter_cldr/localized/localized_date.rb