lib/toy/persistence.rb in toystore-0.13.1 vs lib/toy/persistence.rb in toystore-0.13.2
- old
+ new
@@ -73,21 +73,38 @@
def persisted?
!new_record? && !destroyed?
end
- def save(*)
- new_record? ? create : update
+ def save(options={})
+ default_payload = {
+ :id => persisted_id,
+ :model => self.class,
+ }
+
+ new_record = new_record?
+ action = new_record ? 'create' : 'update'
+
+ Toy.instrumenter.instrument("#{action}.toystore", default_payload) { |payload|
+ new_record ? create : update
+ }
end
def update_attributes(attrs)
self.attributes = attrs
save
end
def destroy
- delete
+ default_payload = {
+ :id => persisted_id,
+ :model => self.class,
+ }
+
+ Toy.instrumenter.instrument('destroy.toystore', default_payload) { |payload|
+ delete
+ }
end
def delete
@_destroyed = true
adapter.delete(persisted_id)
@@ -110,10 +127,11 @@
end
end
attributes
end
- # Public: Choke point for overriding how data gets written.
+ # Public: Choke point for overriding how data gets written. Don't call this
+ # directory, but you can safely override it.
def persist
adapter.write(persisted_id, persisted_attributes)
end
private