lib/duracloud/abstract_entity.rb in duracloud-client-0.9.1 vs lib/duracloud/abstract_entity.rb in duracloud-client-0.10.0
- old
+ new
@@ -1,32 +1,23 @@
-require "active_model"
+require 'hashie'
module Duracloud
- class AbstractEntity
- include ActiveModel::Model
- extend ActiveModel::Callbacks
+ class AbstractEntity < Hashie::Dash
- define_model_callbacks :save, :delete, :load_properties
- after_save :persisted!
- after_save :reset_properties
- after_load_properties :persisted!
- before_delete :reset_properties
- after_delete :deleted!
- after_delete :freeze
-
def save
raise Error, "Cannot save deleted #{self.class}." if deleted?
- run_callbacks :save do
- do_save
- end
+ do_save
+ persisted!
+ reset_properties
end
def delete
raise Error, "Cannot delete, already deleted." if deleted?
- run_callbacks :delete do
- do_delete
- end
+ reset_properties
+ do_delete
+ deleted!
+ freeze
end
def persisted?
!!@persisted
end
@@ -43,14 +34,12 @@
def properties
load_properties if persisted? && @properties.nil?
@properties ||= Properties.new
end
-
def load_properties
- run_callbacks :load_properties do
- do_load_properties
- end
+ do_load_properties
+ persisted!
end
private
def do_load_properties