module Peafowl
Public Class Methods
call(context = {})
click to toggle source
# File lib/peafowl.rb, line 22 def self.call(context = {}) instance = new(context) instance.context = Interactor::Context.build(context) instance.tap(&:run).context end
included(base)
click to toggle source
# File lib/peafowl.rb, line 6 def self.included(base) base.class_eval do include ::Interactor include ::Virtus.model include ::ActiveModel::Validations attr_writer :context before do context.fail!(errors: errors.full_messages) unless valid? end after do context.fail!(errors: error_messages) if error_messages.present? end def self.call(context = {}) instance = new(context) instance.context = Interactor::Context.build(context) instance.tap(&:run).context end end end
Public Instance Methods
add_error(messages)
click to toggle source
# File lib/peafowl.rb, line 35 def add_error(messages) return error_messages.concat(messages) if messages.is_a?(Array) error_messages << messages end
add_error!(messages)
click to toggle source
# File lib/peafowl.rb, line 30 def add_error!(messages) add_error(messages) context.fail!(errors: error_messages) end
error_messages()
click to toggle source
# File lib/peafowl.rb, line 41 def error_messages @error_messages ||= [] end