Sha256: 8448285a6ddbb80a658b24aee6976bd766c6314e23ebe4ab4abe5ba6d8580247

Contents?: true

Size: 1.35 KB

Versions: 164

Compression:

Stored size: 1.35 KB

Contents

# encoding: utf-8
module Mongoid #:nodoc:
  module Fields #:nodoc:
    module Internal #:nodoc:

      # Defines the behaviour for date fields.
      class Date
        include Serializable
        include Timekeeping

        # Deserialize this field from the type stored in MongoDB to the type
        # defined on the model.
        #
        # @example Deserialize the field.
        #   field.deserialize(object)
        #
        # @param [ Object ] object The object to cast.
        #
        # @return [ Date ] The converted date.
        #
        # @since 2.1.0
        def deserialize(object)
         return nil if object.blank?
          if Mongoid::Config.use_utc?
            object.to_date
          else
            ::Date.new(object.year, object.month, object.day)
          end
        end

        protected

        # Converts the date to a time to persist.
        #
        # @example Convert the date to a time.
        #   Date.convert_to_time(date)
        #
        # @param [ Date ] value The date to convert.
        #
        # @return [ Time ] The date converted.
        #
        # @since 2.1.0
        def convert_to_time(value)
          value = ::Date.parse(value) if value.is_a?(::String)
          value = ::Date.civil(*value) if value.is_a?(::Array)
          ::Time.utc(value.year, value.month, value.day)
        end
      end
    end
  end
end

Version data entries

164 entries across 72 versions & 3 rubygems

Version Path
classiccms-0.7.5 vendor/bundle/gems/mongoid-2.4.7/lib/mongoid/fields/internal/date.rb
classiccms-0.7.5 vendor/bundle/gems/mongoid-2.4.9/lib/mongoid/fields/internal/date.rb
classiccms-0.7.5 vendor/bundle/gems/mongoid-2.4.10/lib/mongoid/fields/internal/date.rb
classiccms-0.7.4 vendor/bundle/gems/mongoid-2.4.9/lib/mongoid/fields/internal/date.rb
classiccms-0.7.4 vendor/bundle/gems/mongoid-2.4.10/lib/mongoid/fields/internal/date.rb
classiccms-0.7.4 vendor/bundle/gems/mongoid-2.4.7/lib/mongoid/fields/internal/date.rb
classiccms-0.7.3 vendor/bundle/gems/mongoid-2.4.10/lib/mongoid/fields/internal/date.rb
classiccms-0.7.3 vendor/bundle/gems/mongoid-2.4.7/lib/mongoid/fields/internal/date.rb
classiccms-0.7.3 vendor/bundle/gems/mongoid-2.4.9/lib/mongoid/fields/internal/date.rb
mongoid-2.8.1 lib/mongoid/fields/internal/date.rb
mongoid-2.8.0 lib/mongoid/fields/internal/date.rb
classiccms-0.7.2 vendor/bundle/gems/mongoid-2.4.10/lib/mongoid/fields/internal/date.rb
classiccms-0.7.2 vendor/bundle/gems/mongoid-2.4.9/lib/mongoid/fields/internal/date.rb
classiccms-0.7.2 vendor/bundle/gems/mongoid-2.4.7/lib/mongoid/fields/internal/date.rb
classiccms-0.7.1 vendor/bundle/gems/mongoid-2.4.7/lib/mongoid/fields/internal/date.rb
classiccms-0.7.1 vendor/bundle/gems/mongoid-2.4.10/lib/mongoid/fields/internal/date.rb
classiccms-0.7.1 vendor/bundle/gems/mongoid-2.4.9/lib/mongoid/fields/internal/date.rb
classiccms-0.7.0 vendor/bundle/gems/mongoid-2.4.9/lib/mongoid/fields/internal/date.rb
classiccms-0.7.0 vendor/bundle/gems/mongoid-2.4.7/lib/mongoid/fields/internal/date.rb
classiccms-0.7.0 vendor/bundle/gems/mongoid-2.4.10/lib/mongoid/fields/internal/date.rb