module Pavlov

fork from active_support 3.2.14 : ActiveSuport::Concern Removed deprecation warning, and don’t include InstanceMethods

Including InstanceMethods conflicts with Virtus (which also uses InstanceMethods)

Constants

VERSION

We’re doing this because we might write tests that deal with other versions of bundler and we are unsure how to handle this better.

Public Class Methods

command(command_name, *args, &block) click to toggle source
# File lib/pavlov.rb, line 4
def self.command command_name, *args, &block
  command = get_instance(Commands, command_name, *args)

  call_or_yield_instance command, &block
end
interactor(interactor_name, *args, &block) click to toggle source
# File lib/pavlov.rb, line 10
def self.interactor interactor_name, *args, &block
  interactor = get_instance(Interactors, interactor_name, *args)

  call_or_yield_instance interactor, &block
end
query(query_name, *args, &block) click to toggle source
# File lib/pavlov.rb, line 16
def self.query query_name, *args, &block
  query = get_instance(Queries, query_name, *args)

  call_or_yield_instance query, &block
end

Private Class Methods

call_or_yield_instance(operation, &block) click to toggle source
# File lib/pavlov.rb, line 28
def self.call_or_yield_instance operation, &block
  if block.nil?
    operation.call
  else
    block.call operation
  end
end
get_instance(klass, name, *args) click to toggle source
# File lib/pavlov.rb, line 24
def self.get_instance(klass, name, *args)
  OperationFinder.find(klass, name).new(*args)
end