// description of your code here




def changes_for_user(user)
change_to 0
chain = versions.select { |v| v.user == user && !v.initial? }
chain.inject({}) do |changes, version|
changes.append_changes!(version.changes)
end.each do |attribute, change|
write_attribute(attribute, change.last)
end
end

def change_to(value)
to_number = versions.number_at(value)

changes_between(version, to_number).each do |attribute, change|
write_attribute(attribute, change.last)
end
end

# :updated_by => current_user
def after_initialize
change_to 0
end

Read more: http://feeds.dzone.com/~r/dzone/snippets/~3/YlYck4t3GGM/12361