Sha256: c4877953e4be2d1bd355d0880b9fd49168d37987f8d35ee534f830fc35033a52

Contents?: true

Size: 825 Bytes

Versions: 1

Compression:

Stored size: 825 Bytes

Contents

require 'facet/time/stamp'

require 'glue/aspects'

module Glue

# Adds timestamping functionality.

module Timestamped
  include Aspects

  property :create_time, Time, :control => :none
  property :update_time, Time, :control => :none
  property :access_time, Time, :control => :none

  before "@create_time = @update_time = Time.now", :on => :og_insert
  before "@update_time = Time.now", :on => :og_update

  def touch!
    @access_time = Time.now
  end
end

# Adds simple timestamping functionality on create.
# Only the create_time field is added, to add 
# create/update/access fields use the normal timestamped
# module.

module TimestampedOnCreate
  include Aspects
  property :create_time, Time, :control => :none
  before "@create_time = Time.now", :on => :og_insert
end

end

# * George Moschovitis <gm@navel.gr>

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
og-0.28.0 lib/glue/timestamped.rb