Sha256: 71b48fa7550fbb884d270c6a6314ab39e2ae7425de178199dbf273b495dd33ee

Contents?: true

Size: 694 Bytes

Versions: 5

Compression:

Stored size: 694 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

5 entries across 5 versions & 1 rubygems

Version Path
acfs-0.45.0 lib/acfs/resource/attributes/date_time.rb
acfs-0.44.0 lib/acfs/resource/attributes/date_time.rb
acfs-0.43.2 lib/acfs/resource/attributes/date_time.rb
acfs-0.43.1 lib/acfs/resource/attributes/date_time.rb
acfs-0.43.0 lib/acfs/resource/attributes/date_time.rb