module Legion::Extensions::Core

Public Instance Methods

auto_generate_data() click to toggle source
# File lib/legion/extensions/core.rb, line 121
def auto_generate_data
  require 'legion/extensions/data'
  log.debug 'running meta magic to generate a data base class'
  Kernel.const_get(lex_class.to_s).const_set('Data', Module.new { extend Legion::Extensions::Data })
rescue StandardError => e
  log.error e.message
  log.error e.backtrace
end
auto_generate_transport() click to toggle source
# File lib/legion/extensions/core.rb, line 113
def auto_generate_transport
  require 'legion/extensions/transport'
  log.debug 'running meta magic to generate a transport base class'
  return if Kernel.const_defined? "#{lex_class}::Transport"

  Kernel.const_get(lex_class.to_s).const_set('Transport', Module.new { extend Legion::Extensions::Transport })
end
autobuild() click to toggle source
# File lib/legion/extensions/core.rb, line 31
def autobuild
  @actors = {}
  @meta_actors = {}
  @runners = {}
  @helpers = []

  @queues = {}
  @exchanges = {}
  @messages = {}
  build_settings
  build_transport
  build_data if Legion::Settings[:data][:connected] && data_required?
  build_helpers
  build_runners
  build_actors
end
build_data() click to toggle source
# File lib/legion/extensions/core.rb, line 68
def build_data
  auto_generate_data
  lex_class::Data.build
end
build_settings() click to toggle source
# File lib/legion/extensions/core.rb, line 87
def build_settings
  if Legion::Settings[:extensions].key?(lex_name.to_sym)
    Legion::Settings[:default_extension_settings].each do |key, value|
      Legion::Settings[:extensions][lex_name.to_sym][key.to_sym] = if Legion::Settings[:extensions][lex_name.to_sym].key?(key.to_sym)
                                                                     value.merge(Legion::Settings[:extensions][lex_name.to_sym][key.to_sym])
                                                                   else
                                                                     value
                                                                   end
    end
  else
    Legion::Settings[:extensions][lex_name.to_sym] = Legion::Settings[:default_extension_settings]
  end

  default_settings.each do |key, value|
    Legion::Settings[:extensions][lex_name.to_sym][key.to_sym] = if Legion::Settings[:extensions][lex_name.to_sym].key?(key.to_sym)
                                                                   value.merge(Legion::Settings[:extensions][lex_name.to_sym][key.to_sym])
                                                                 else
                                                                   value
                                                                 end
  end
end
build_transport() click to toggle source
# File lib/legion/extensions/core.rb, line 73
def build_transport
  if File.exist? "#{extension_path}/transport/autobuild.rb"
    require "#{extension_path}/transport/autobuild"
    extension_class::Transport::AutoBuild.build
    log.warn 'still using transport::autobuild, please upgrade'
  elsif File.exist? "#{extension_path}/transport.rb"
    require "#{extension_path}/transport"
    extension_class::Transport.build
  else
    auto_generate_transport
    extension_class::Transport.build
  end
end
cache_required?() click to toggle source
# File lib/legion/extensions/core.rb, line 56
def cache_required?
  false
end
crypt_required?() click to toggle source
# File lib/legion/extensions/core.rb, line 60
def crypt_required?
  false
end
data_required?() click to toggle source
# File lib/legion/extensions/core.rb, line 48
def data_required?
  false
end
default_settings() click to toggle source
# File lib/legion/extensions/core.rb, line 109
def default_settings
  {}
end
transport_required?() click to toggle source
# File lib/legion/extensions/core.rb, line 52
def transport_required?
  true
end
vault_required?() click to toggle source
# File lib/legion/extensions/core.rb, line 64
def vault_required?
  false
end