module Quiver::Application::ClassMethods

Attributes

app_root[R]
default_adapter_type[RW]
default_duty_queue_backend[RW]
lib_dir[R]
memory_adapter_store[RW]
middleware_stack[RW]
root_module[R]
using_active_record[RW]
using_delayed_job[RW]

Public Instance Methods

app_root=(path) click to toggle source
# File lib/quiver/application.rb, line 33
def app_root=(path)
  @app_root ||= path
end
lib_dir=(path) click to toggle source
# File lib/quiver/application.rb, line 37
def lib_dir=(path)
  @lib_dir ||= path
end
load_everything!(extra_folders = []) click to toggle source
# File lib/quiver/application.rb, line 59
def load_everything!(extra_folders = [])
  load_env_vars!

  Dir[File.join(lib_dir, 'config', 'initializers', '**', '*.rb')].each { |f| require f}

  if !ENV["#{self.parents.first.to_s.underscore.upcase}_DOUBLE_MODE"]
    Dir[File.join(app_root, 'config', 'initializers', '**', '*.rb')].each { |f| require f}
  end

  require File.join(lib_dir, 'config', 'router')

  folders = ['models', 'mappers', 'adapters', 'serializers', 'endpoints', 'duties'] + extra_folders

  folders.each do |folder|
    Dir[File.join(lib_dir, folder, '*.rb')].each { |f| require f }
    Dir[File.join(lib_dir, folder, '**', '*.rb')].each { |f| require f }
  end
end
logger() click to toggle source
# File lib/quiver/application.rb, line 45
def logger
  @logger ||= begin
    logger = root_module::Logger.new("log/logstash_#{ENV['RACK_ENV']}.log")
    logger.formatter = -> (severity, datetime, progname, msg) {
      "#{msg.to_json}\n"
    }
    logger
  end
end
root_module=(mod) click to toggle source
# File lib/quiver/application.rb, line 41
def root_module=(mod)
  @root_module ||= mod
end
use_active_record!(config_path = File.join(app_root, 'config', 'database.yml')) click to toggle source
# File lib/quiver/application.rb, line 78
def use_active_record!(config_path = File.join(app_root, 'config', 'database.yml'))
  self.using_active_record = true
  require 'active_record'

  ActiveRecord::Base.configurations = YAML.load(ERB.new(File.read(config_path)).result)
  ActiveRecord::Base.establish_connection
end
use_delayed_job!() click to toggle source
# File lib/quiver/application.rb, line 86
def use_delayed_job!
  self.using_delayed_job = true
  require 'delayed_job_active_record'
end

Private Instance Methods

load_env_vars!() click to toggle source
# File lib/quiver/application.rb, line 95
def load_env_vars!
  file_path = File.join(lib_dir, 'config', 'environment.yml')

  if File.exist?(file_path)
    require 'yaml'

    var_data = YAML.load(File.read(file_path))

    var_data.fetch(ENV['RACK_ENV'], {}).each do |k, v|
      ENV[k.upcase] ||= v.to_s unless v.is_a?(Hash)
    end

    var_data.each do |k, v|
      ENV[k.upcase] ||= v.to_s unless v.is_a?(Hash)
    end
  end
end