Class: ResourceManager::Base
- Inherits:
-
Object
- Object
- ResourceManager::Base
- Includes:
- Transactionable
- Defined in:
- lib/resource_manager.rb
Class Method Summary collapse
Instance Method Summary collapse
- #create(params) ⇒ Object
- #destroy(item_or_id) ⇒ Object
- #model ⇒ Object
- #update(item_or_id, params) ⇒ Object
Methods included from Transactionable
Class Method Details
.model(class_or_proc, &block) ⇒ Object
13 14 15 |
# File 'lib/resource_manager.rb', line 13 def model(class_or_proc, &block) self.model = class_or_proc end |
Instance Method Details
#create(params) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/resource_manager.rb', line 38 def create(params) transaction do run_callback(:before_create, params) result = if self.create_action.present? instance_exec(params, &self.create_action) else item = model.new(params) saved = item.save yield(item, saved) if block_given? end run_callback(:after_create, item) if saved result end end |
#destroy(item_or_id) ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/resource_manager.rb', line 74 def destroy(item_or_id) transaction do item = item(item_or_id) run_callback(:before_destroy, item) if self.destroy_action.present? instance_exec(item, &self.destroy_action) else item.destroy end run_callback(:after_destroy, item) nil end end |
#model ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/resource_manager.rb', line 30 def model if self.class.model.kind_of?(Proc) instance_exec(&self.class.model) else self.class.model end end |
#update(item_or_id, params) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/resource_manager.rb', line 55 def update(item_or_id, params) transaction do item = item(item_or_id) run_callback(:before_update, item, params) result = if self.update_action.present? instance_exec(item, params, &self.update_action) else item.assign_attributes(params) changed = item.changed saved = item.save yield(item, saved) if block_given? end run_callback(:after_update, item, params, changed) if saved result end end |