Class: RServiceBus2::ConfigureAppResource

Inherits:
Object
  • Object
show all
Defined in:
lib/rservicebus2/appresource_configure.rb

Overview

Configure AppResources for an rservicebus host

Instance Method Summary collapse

Instance Method Details

#get_resources(env, host, state_manager, saga_storage) ⇒ Object

rubocop:disable Metrics/AbcSize,Metrics/MethodLength,CyclomaticComplexity



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/rservicebus2/appresource_configure.rb', line 7

def get_resources(env, host, state_manager, saga_storage)
  # rm = resource_manager
  rm = ResourceManager.new(state_manager, saga_storage)
  env.each do |k, v|
    if v.is_a?(String) && k.start_with?('RSBFDB2_')
      uri = URI.parse(v)
      require 'rservicebus2/appresource/fluiddb2'

      k = k.sub('RSBFDB2_', '')
      rm.add k, AppResourceFluidDb2.new(host, uri)
    elsif v.is_a?(String) &&
          (k.start_with?('RSBFDB_') || v.index('fluiddb') == 0)
      v = v['fluiddb'.length..-1] if v.index('fluiddb') == 0
      uri = URI.parse(v)
      require 'rservicebus2/appresource/fluiddb'

      k = k.sub('RSBFDB_', '') if k.start_with?('RSBFDB_')
      rm.add k, AppResourceFluidDb.new(host, uri)
    elsif v.is_a?(String) && k.start_with?('RSB_')
      uri = URI.parse(v)
      case uri.scheme
      when 'dir'
        require 'rservicebus2/appresource/dir'
        rm.add k.sub('RSB_', ''), AppResourceDir.new(host, uri)
      when 'file'
        require 'rservicebus2/appresource/file'
        rm.add k.sub('RSB_', ''), AppResourceFile.new(host, uri)
      else
        abort("Scheme, #{uri.scheme}, not recognised when configuring
              app resource, #{k}=#{v}")
      end
    end
  end

  rm
end