class Readymade::Operation
Attributes
form[R]
record[R]
record_params[R]
Private Instance Methods
assign_attributes()
click to toggle source
# File lib/readymade/operation.rb, line 22 def assign_attributes record.assign_attributes(record_params) end
build_form()
click to toggle source
# File lib/readymade/operation.rb, line 12 def build_form @form = form_class.new(record_params, record: record) end
fail(status = :fail, args = {})
click to toggle source
# File lib/readymade/operation.rb, line 53 def fail(status = :fail, args = {}) sync_errors_to_form response(status, args.merge!(record: record, record_params: record_params, form: form, errors: form&.errors&.messages.presence || record&.errors&.messages)) end
form_class()
click to toggle source
# File lib/readymade/operation.rb, line 62 def form_class raise 'Define your own form object class in your operation' end
form_valid?()
click to toggle source
# File lib/readymade/operation.rb, line 16 def form_valid? build_form if @form.nil? && defined?(:build_form) form.validate end
record_valid?()
click to toggle source
# File lib/readymade/operation.rb, line 26 def record_valid? return true if record.errors.none? && record.valid? false end
response(status, *args)
click to toggle source
# File lib/readymade/operation.rb, line 36 def response(status, *args) Response.new(status, *args) end
save_record()
click to toggle source
# File lib/readymade/operation.rb, line 32 def save_record record.save end
success(*args)
click to toggle source
# File lib/readymade/operation.rb, line 40 def success(*args) response(:success, *args) end
sync_errors_to_form()
click to toggle source
# File lib/readymade/operation.rb, line 66 def sync_errors_to_form form.sync_errors(from: record, to: form) end
sync_errors_to_record()
click to toggle source
# File lib/readymade/operation.rb, line 70 def sync_errors_to_record form.sync_errors end
validation_fail(status = :validation_fail, args = {})
click to toggle source
# File lib/readymade/operation.rb, line 44 def validation_fail(status = :validation_fail, args = {}) sync_errors_to_form response(status, args.merge!(record: record, record_params: record_params, form: form, errors: form.errors.messages)) end