Sha256: 35afdd412b2dea9fbe4758e54cbb1c34f6abfda2d922f487c78ed1ea183a74e8

Contents?: true

Size: 441 Bytes

Versions: 2

Compression:

Stored size: 441 Bytes

Contents

module Structural
  module Timestamps
    def self.included(base)
      base.field :created_at
      base.field :updated_at
    end

    def initialize(data = {})
      super data.merge(:created_at => data.fetch(:created_at, Time.now))
    end

    def set(values)
      self.class.new(super.data.merge(:updated_at => Time.now))
    end

    def unset(*keys)
      self.class.new(super.data.merge(:updated_at => Time.now))
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
structural-0.2.0 lib/structural/timestamps.rb
structural-0.1.0 lib/structural/timestamps.rb