Sha256: c51f366a00c5b2905ee22a60ff3bd4ee814ae6365fecdfeb4d8a7dc268c025f4

Contents?: true

Size: 905 Bytes

Versions: 13

Compression:

Stored size: 905 Bytes

Contents

# frozen_string_literal: true
module SoapyCake
  class TimeConverter
    def initialize(time_zone, time_offset = nil)
      if time_offset
        self.class.print_deprecation_warning

        # Etc/GMT time zones have their sign reversed
        time_zone = format('Etc/GMT%+d', -time_offset.to_i)
      end

      raise Error, 'Cake time zone missing' if time_zone.blank?
      @zone = ActiveSupport::TimeZone[time_zone]
    end

    def to_cake(date)
      date = date.to_datetime if date.is_a?(Date)
      date.in_time_zone(zone).strftime('%Y-%m-%dT%H:%M:%S')
    end

    def from_cake(value)
      zone.parse(value).utc
    end

    def self.print_deprecation_warning
      return if @deprecation_warning_printed
      @deprecation_warning_printed = true

      STDERR.puts 'SoapyCake - DEPRECATED: Please use time_zone instead of time_offset.'
    end

    private

    attr_reader :zone
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
soapy_cake-2.1.3 lib/soapy_cake/time_converter.rb
soapy_cake-2.1.2 lib/soapy_cake/time_converter.rb
soapy_cake-2.1.1 lib/soapy_cake/time_converter.rb
soapy_cake-2.1.0 lib/soapy_cake/time_converter.rb
soapy_cake-2.0.0 lib/soapy_cake/time_converter.rb
soapy_cake-1.26.0 lib/soapy_cake/time_converter.rb
soapy_cake-1.25.2 lib/soapy_cake/time_converter.rb
soapy_cake-1.25.1 lib/soapy_cake/time_converter.rb
soapy_cake-1.24.1 lib/soapy_cake/time_converter.rb
soapy_cake-1.23.1 lib/soapy_cake/time_converter.rb
soapy_cake-1.23.0 lib/soapy_cake/time_converter.rb
soapy_cake-1.22.1 lib/soapy_cake/time_converter.rb
soapy_cake-1.22.0 lib/soapy_cake/time_converter.rb