Method: Object.lev_routine

Defined in:
lib/lev/object.rb

.lev_routine(options = {}) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/lev/object.rb', line 3

def self.lev_routine(options={})
  class_eval do
    include Lev::Routine unless options[:skip_routine_include]

    # Routine configuration
    options[:transaction] ||= Lev::TransactionIsolation.mysql_default.symbol
    @transaction_isolation = Lev::TransactionIsolation.new(options[:transaction])

    @active_job_queue = options[:active_job_queue]

    @raise_fatal_errors = options[:raise_fatal_errors]

    @delegates_to = options[:delegates_to]
    if @delegates_to
      uses_routine @delegates_to,
                   translations: {
                     outputs: { type: :verbatim },
                     inputs: { type: :verbatim }
                   }

      @express_output ||= @delegates_to.express_output
    end

    # Set this after dealing with "delegates_to" in case it set a value
    @express_output ||= options[:express_output] || self.name.demodulize.underscore
  end
end