module Pavlov::Operation
Public Instance Methods
call(*args, &block)
click to toggle source
# File lib/pavlov/operation.rb, line 37 def call(*args, &block) fail Pavlov::ValidationError, 'Some validations fail, cannot execute' unless valid? check_authorization execute(*args, &block) end
errors()
click to toggle source
# File lib/pavlov/operation.rb, line 26 def errors @errors ||= ActiveModel::Errors.new(self) end
valid?()
click to toggle source
# File lib/pavlov/operation.rb, line 30 def valid? check_validation errors.empty? rescue Pavlov::ValidationError false end
Private Instance Methods
check_validation()
click to toggle source
# File lib/pavlov/operation.rb, line 53 def check_validation fail Pavlov::ValidationError, "Missing arguments: #{missing_arguments.inspect}" if missing_arguments.any? validate end
missing_arguments()
click to toggle source
# File lib/pavlov/operation.rb, line 58 def missing_arguments attribute_set.select do |attribute| !attribute.options.key?(:default) && send(attribute.name).nil? end end
validate()
click to toggle source
# File lib/pavlov/operation.rb, line 64 def validate # no-op, users should override this end