Sha256: 1713430ceebbab46af05ad9fca38ce6d5d8849dfd1e5682d4e7a6c27ef53d695

Contents?: true

Size: 1.81 KB

Versions: 8

Compression:

Stored size: 1.81 KB

Contents

module RiCal
  module CoreExtensions #:nodoc:
    module Time #:nodoc:
      #- ©2009 Rick DeNatale
      #- All rights reserved. Refer to the file README.txt for the license
      #
      module Conversions
        # Return an RiCal::PropertyValue::DateTime representing the receiver
        def to_ri_cal_date_time_value(timezone_finder = nil) #:nodoc:
          RiCal::PropertyValue::DateTime.new(
               timezone_finder, 
               :value => strftime("%Y%m%dT%H%M%S"), 
               :params => {"TZID" => self.tzid || :default})
        end

        alias_method :to_ri_cal_date_or_date_time_value, :to_ri_cal_date_time_value #:nodoc:
        alias_method :to_ri_cal_occurrence_list_value, :to_ri_cal_date_time_value #:nodoc:

        # Return the natural ri_cal_property for this object
        def to_ri_cal_property_value(timezone_finder = nil) #:nodoc:
          to_ri_cal_date_time_value(timezone_finder)
        end
        
        # Return a copy of this object which will be interpreted as a floating time.
        def with_floating_timezone
          dup.set_tzid(:floating)
        end
        
        unless defined? ActiveSupport
          # Converts a Time instance to a Ruby DateTime instance, preserving UTC offset.
          #
          #   my_time = Time.now    # => Mon Nov 12 23:04:21 -0500 2007
          #   my_time.to_datetime   # => Mon, 12 Nov 2007 23:04:21 -0500
          #
          #   your_time = Time.parse("1/13/2009 1:13:03 P.M.")  # => Tue Jan 13 13:13:03 -0500 2009
          #   your_time.to_datetime                             # => Tue, 13 Jan 2009 13:13:03 -0500
          def to_datetime
            # 86400 is the number of seconds in a day
            ::DateTime.civil(year, month, day, hour, min, sec, RiCal.RationalOffset[utc_offset])
          end
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
rubyredrick-ri_cal-0.6.0 lib/ri_cal/core_extensions/time/conversions.rb
rubyredrick-ri_cal-0.6.1 lib/ri_cal/core_extensions/time/conversions.rb
rubyredrick-ri_cal-0.6.2 lib/ri_cal/core_extensions/time/conversions.rb
rubyredrick-ri_cal-0.6.3 lib/ri_cal/core_extensions/time/conversions.rb
ri_cal-0.6.0 lib/ri_cal/core_extensions/time/conversions.rb
ri_cal-0.6.1 lib/ri_cal/core_extensions/time/conversions.rb
ri_cal-0.6.3 lib/ri_cal/core_extensions/time/conversions.rb
ri_cal-0.6.2 lib/ri_cal/core_extensions/time/conversions.rb