Guest User

Untitled

a guest
Feb 21st, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. require 'rubygems'
  2. require 'dm-core'
  3. require 'dm-more'
  4. require 'dm-timestamps'
  5. require 'dm-is-versioned'
  6.  
  7. DataMapper.setup(:sqlite3, 'sqlite3::memory:')
  8. DataMapper::Repository.adapters[:default] = DataMapper::Repository.adapters[:sqlite3]
  9. DataMapper::Logger.new(STDOUT, :debug)
  10. DataObjects::Sqlite3.logger = DataObjects::Logger.new(STDOUT, :debug)
  11.  
  12. class Story
  13. include DataMapper::Resource
  14.  
  15. property :id, Integer, :serial => true
  16. property :title, String
  17. property :updated_at, DateTime
  18.  
  19. before :save do
  20. # For the sake of testing, make sure the updated_at is always unique
  21. time = self.updated_at ? self.updated_at + 1 : Time.now
  22. self.updated_at = time if self.dirty?
  23. end
  24.  
  25. is_versioned :on => :updated_at
  26.  
  27. end
  28.  
  29. Story.auto_migrate!
  30.  
  31. story = Story.new
  32. story.title = "New Title"
  33. story.save # => Saves this story and creates a new version with the
  34. # original values.
  35. story.versions.size # => 1
  36.  
  37. story.title = "A Different New Title"
  38. story.save
  39. story.versions.size # => 2
Add Comment
Please, Sign In to add comment