lib/sn_foil/contexts/update_context.rb in snfoil-0.6 vs lib/sn_foil/contexts/update_context.rb in snfoil-0.7.0
- old
+ new
@@ -54,22 +54,23 @@
def setup_update_object(params: {}, id: nil, object: nil, **options)
raise ArgumentError, 'one of the following keywords is required: id, object' unless id || object
object = wrap_object(object || scope.resolve.find(id))
- authorize(object, :update?, **options)
+ authorize(object, options.fetch(:authorize) { :update? }, **options)
+
object.attributes = params
options.merge! object: object
end
def update(**options)
options[:action] = :update
options = before_setup_update_object(**options)
options = setup_update_object(**options)
- authorize(options[:object], :update?, **options)
+ authorize(options[:object], options.fetch(:authorize) { :update? }, **options)
options = update_hooks(**options)
- unwrap_object(options[:object])
+ options[:object]
end
def setup_update(**options)
options
end
@@ -111,16 +112,16 @@
end
private
def before_setup_update_object(**options)
- options = setup_update(**options)
- options = setup_update_hooks.reduce(options) { |opts, hook| run_hook(hook, opts) }
+ options = setup(**options)
+ options = setup_hooks.reduce(options) { |opts, hook| run_hook(hook, opts) }
options = setup_change(**options)
options = setup_change_hooks.reduce(options) { |opts, hook| run_hook(hook, opts) }
- options = setup(**options)
- setup_hooks.reduce(options) { |opts, hook| run_hook(hook, opts) }
+ options = setup_update(**options)
+ setup_update_hooks.reduce(options) { |opts, hook| run_hook(hook, opts) }
end
# This method is private to help protect the order of execution of hooks
def update_hooks(options)
options = before_update_save(options)
@@ -133,34 +134,34 @@
end
after_update_save(options)
end
def before_update_save(options)
- options = before_update(**options)
- options = before_update_hooks.reduce(options) { |opts, hook| run_hook(hook, **opts) }
options = before_change(**options)
- before_change_hooks.reduce(options) { |opts, hook| run_hook(hook, **opts) }
+ options = before_change_hooks.reduce(options) { |opts, hook| run_hook(hook, **opts) }
+ options = before_update(**options)
+ before_update_hooks.reduce(options) { |opts, hook| run_hook(hook, **opts) }
end
def after_update_save(options)
- options = after_update(**options)
- options = after_update_hooks.reduce(options) { |opts, hook| run_hook(hook, **opts) }
options = after_change(**options)
- after_change_hooks.reduce(options) { |opts, hook| run_hook(hook, **opts) }
+ options = after_change_hooks.reduce(options) { |opts, hook| run_hook(hook, **opts) }
+ options = after_update(**options)
+ after_update_hooks.reduce(options) { |opts, hook| run_hook(hook, **opts) }
end
def after_update_save_success(options)
- options = after_update_success(**options)
- options = after_update_success_hooks.reduce(options) { |opts, hook| run_hook(hook, **opts) }
options = after_change_success(**options)
- after_change_success_hooks.reduce(options) { |opts, hook| run_hook(hook, **opts) }
+ options = after_change_success_hooks.reduce(options) { |opts, hook| run_hook(hook, **opts) }
+ options = after_update_success(**options)
+ after_update_success_hooks.reduce(options) { |opts, hook| run_hook(hook, **opts) }
end
def after_update_save_failure(options)
- options = after_update_failure(**options)
- options = after_update_failure_hooks.reduce(options) { |opts, hook| run_hook(hook, **opts) }
options = after_change_failure(**options)
- after_change_failure_hooks.reduce(options) { |opts, hook| run_hook(hook, **opts) }
+ options = after_change_failure_hooks.reduce(options) { |opts, hook| run_hook(hook, **opts) }
+ options = after_update_failure(**options)
+ after_update_failure_hooks.reduce(options) { |opts, hook| run_hook(hook, **opts) }
end
end
end
end