Sha256: 1d2dea536c2fc70ee81c2d7399df2fc3fb17e2253ed8b8dd2f5368ecb36888de

Contents?: true

Size: 696 Bytes

Versions: 3

Compression:

Stored size: 696 Bytes

Contents

module Acfs::Resource::Attributes

  # @api public
  #
  # DateTime attribute type. Use it in your model as
  # an attribute type:
  #
  # @example
  #   class User < Acfs::Resource
  #     attribute :name, :date_time
  #   end
  #
  class DateTime < Base

    # @api public
    #
    # Cast given object to DateTime.
    #
    # @param [Object] obj Object to cast.
    # @return [DateTime] Casted object as DateTime.
    #
    def cast_type(obj)
      if nil_allowed? && obj.blank?
        nil
      elsif obj.is_a? ::DateTime
        obj
      elsif obj.is_a?(Time) || obj.is_a?(Date)
        ::DateTime.iso8601 obj.iso8601
      else
        ::DateTime.iso8601 obj
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
acfs-1.0.0.dev.1.b305 lib/acfs/resource/attributes/date_time.rb
acfs-1.0.0.dev.1.b298 lib/acfs/resource/attributes/date_time.rb
acfs-1.0.0.dev.1.b297 lib/acfs/resource/attributes/date_time.rb