Class: Prepro::Processor
- Inherits:
-
Object
- Object
- Prepro::Processor
- Defined in:
- lib/prepro/processor.rb
Class Method Summary collapse
-
.create(model_attrs, actor, options = {}) ⇒ Object
(also: create_original)
Creates a new model_instance based on model_attrs.
-
.destroy(model_id, actor, options = {}) ⇒ Object
Destroys an existing model_instance based on model_id @param[Integer, String<Number>] model_id The id of the model_instance to be destroyed @param[User, AnonymousUser, Nil] actor The actor who updates the model_instance @return[Array<ModelInstance, Boolean>] A tuple with the destroyed model_instance and a success flag.
-
.update(model_attrs, actor, options = {}) ⇒ Object
(also: update_original)
Updates an existing model_instance based on model_attrs.
Class Method Details
.create(model_attrs, actor, options = {}) ⇒ Object Also known as: create_original
Creates a new model_instance based on model_attrs. @param model_attrs The attributes for the new model_instance. Includes DB columns,
associated objects, nested attributes, etc.
@param[User, AnonymousUser, Nil] actor The actor who creates the model_instance @param[Hash, optional] options:
* :enforce_permissions - default true
@return[Array<ModelInstance, Boolean>] A tuple with the newly created model_instance and a
success flag.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/prepro/processor.rb', line 15 def self.create(model_attrs, actor, = {}) = { :enforce_permissions => true }.merge() processor_attrs = OpenStruct.new( :attributes => model_attrs, :actor => actor, :options => ) model_instance = model_class.new if [:enforce_permissions] (model_instance.creatable_by?(actor)) end before_assign_attributes_on_create(model_instance, processor_attrs) model_instance.assign_attributes(model_attrs, :as => [:as]) before_save_on_create(model_instance, processor_attrs) success = model_instance.save [model_instance, success] end |
.destroy(model_id, actor, options = {}) ⇒ Object
Destroys an existing model_instance based on model_id @param[Integer, String<Number>] model_id The id of the model_instance to be destroyed @param[User, AnonymousUser, Nil] actor The actor who updates the model_instance @return[Array<ModelInstance, Boolean>] A tuple with the destroyed model_instance and a success flag.
55 56 57 58 59 60 61 62 |
# File 'lib/prepro/processor.rb', line 55 def self.destroy(model_id, actor, = {}) model_instance = model_class.find(model_id) if [:enforce_permissions] (model_instance.destroyable_by?(actor)) end model_instance.destroy [model_instance, true] end |
.update(model_attrs, actor, options = {}) ⇒ Object Also known as: update_original
Updates an existing model_instance based on model_attrs. @param model_attrs The attributes for the updated model_instance. Includes DB columns,
the model's id, associated objects, nested attributes, etc.
@param[User, AnonymousUser, Nil] actor The actor who updates the model_instance @return[Array<ModelInstance, Boolean>] A tuple with the updated model_instance and a success flag.
38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/prepro/processor.rb', line 38 def self.update(model_attrs, actor, = {}) processor_attrs = OpenStruct.new(:attributes => model_attrs, :actor => actor, :options => ) model_instance = model_class.find(model_attrs[:id]) if [:enforce_permissions] (model_instance.updatable_by?(actor)) end before_assign_attributes_on_update(model_instance, processor_attrs) model_instance.assign_attributes(model_attrs, :as => [:as]) before_save_on_update(model_instance, processor_attrs) success = model_instance.save [model_instance, success] end |