Skip to content

Instantly share code, notes, and snippets.

@solnic
Created October 13, 2011 11:25
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save solnic/1284006 to your computer and use it in GitHub Desktop.
Save solnic/1284006 to your computer and use it in GitHub Desktop.
improved_dirty_tracking_in_dm_1.2.0.rb
require 'rubygems'
require 'data_mapper'
DataMapper.setup :default, 'sqlite::memory:'
class Book
include DataMapper::Resource
property :id, Serial
property :meta, Json
end
DataMapper.finalize.auto_migrate!
Book.create(:meta => { :title => 'Some Title' })
book = Book.first
book.meta['title'] # 'Some Title'
book.meta['title'] = 'Other Title'
puts book.dirty?
puts book.dirty_attributes
# --------------------------------------------------------------------------------------
# Output:
#
# true
# {#<DataMapper::Property::Json @model=Book @name=:meta>=>"{\"title\":\"Other Title\"}"}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment