Skip to content

Instantly share code, notes, and snippets.

@hoffrocket
Created March 3, 2010 01:30
Show Gist options
  • Save hoffrocket/320200 to your computer and use it in GitHub Desktop.
Save hoffrocket/320200 to your computer and use it in GitHub Desktop.
import _root_.net.liftweb.mapper._
trait HasCreatedMetaMapper[T <: HasCreated[T]] {
self: T with LongKeyedMetaMapper[T] =>
import java.util.Date
def findByCreated(startDate:Date, endDate:Date) = findAll(By_>(created_at, startDate), By_<(created_at, endDate))
def findByCreatedSince(startDate: Date) = findAll(By_>(created_at, startDate))
}
trait HasCreated [T <: HasCreated[T]] extends KeyedMapper[Long, T] {
self: T =>
object created_at extends MappedTimestamp(this)
class MappedTimestamp[T<:Mapper[T]](override val fieldOwner: T) extends MappedDateTime[T](fieldOwner) {
override def dbDisplay_? = false
override def writePermission_? = false
override def defaultValue = new java.util.Date();
def _secureUpdate() = {
i_set_!(new java.util.Date())
}
}
}
trait TimeStamped [T <: TimeStamped[T]] extends HasCreated[T]{
self: T =>
object updated_at extends MappedTimestamp(this)
override def save():Boolean = {
if (dirty_?)
updated_at._secureUpdate
super.save()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment