class DashOverlord::UseCases::Base

Constants

AbortError

Attributes

context[R]

Public Class Methods

context_reader(*methods) click to toggle source
# File lib/dash_overlord/use_cases/base.rb, line 24
def self.context_reader(*methods)
  methods.each { |method| define_method(method) { context.send(method) } }
end
new(context = nil, attributes = nil) click to toggle source
# File lib/dash_overlord/use_cases/base.rb, line 41
def initialize(context = nil, attributes = nil)
  @context = context if context.is_a?(Context)

  @context ||= Context.new(context || {})

  @context.assign_attributes(attributes || {})
end
perform(context = nil, attributes = nil) click to toggle source
# File lib/dash_overlord/use_cases/base.rb, line 10
def self.perform(context = nil, attributes = nil)
  instance = self.new(context, attributes)

  begin
    instance.perform
  rescue AbortError
    nil
  end

  instance.final

  instance.context
end
target(name, options = {}) click to toggle source
# File lib/dash_overlord/use_cases/base.rb, line 28
def self.target(name, options = {})
  # Gem that allows you to run ActiveRecord validations against a model
  self.include ObjectAttorney

  defend(name, options)

  if defendant_options[:in].present?
    context_reader defendant_options[:in]
  else
    context_reader name
  end
end

Public Instance Methods

final() click to toggle source
# File lib/dash_overlord/use_cases/base.rb, line 53
def final; end
perform() click to toggle source
# File lib/dash_overlord/use_cases/base.rb, line 51
def perform; end
target_valid?() click to toggle source
# File lib/dash_overlord/use_cases/base.rb, line 55
def target_valid?
  respond_to?(:valid?) ? valid? : false
end