Module: Quiver::Application::ClassMethods

Defined in:
lib/quiver/application.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#app_rootObject

Returns the value of attribute app_root.



27
28
29
# File 'lib/quiver/application.rb', line 27

def app_root
  @app_root
end

#default_adapter_typeObject

Returns the value of attribute default_adapter_type.



30
31
32
# File 'lib/quiver/application.rb', line 30

def default_adapter_type
  @default_adapter_type
end

#default_duty_queue_backendObject

Returns the value of attribute default_duty_queue_backend.



30
31
32
# File 'lib/quiver/application.rb', line 30

def default_duty_queue_backend
  @default_duty_queue_backend
end

#lib_dirObject

Returns the value of attribute lib_dir.



27
28
29
# File 'lib/quiver/application.rb', line 27

def lib_dir
  @lib_dir
end

#memory_adapter_storeObject

Returns the value of attribute memory_adapter_store.



30
31
32
# File 'lib/quiver/application.rb', line 30

def memory_adapter_store
  @memory_adapter_store
end

#middleware_stackObject

Returns the value of attribute middleware_stack.



30
31
32
# File 'lib/quiver/application.rb', line 30

def middleware_stack
  @middleware_stack
end

#root_moduleObject

Returns the value of attribute root_module.



27
28
29
# File 'lib/quiver/application.rb', line 27

def root_module
  @root_module
end

#using_active_recordObject

Returns the value of attribute using_active_record.



27
28
29
# File 'lib/quiver/application.rb', line 27

def using_active_record
  @using_active_record
end

#using_delayed_jobObject

Returns the value of attribute using_delayed_job.



27
28
29
# File 'lib/quiver/application.rb', line 27

def using_delayed_job
  @using_delayed_job
end

Instance Method Details

#load_everything!(extra_folders = []) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# 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

#loggerObject



45
46
47
48
49
50
51
52
53
# 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

#use_active_record!(config_path = File.join(app_root, 'config', 'database.yml')) ⇒ Object



78
79
80
81
82
83
84
# 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!Object



86
87
88
89
# File 'lib/quiver/application.rb', line 86

def use_delayed_job!
  self.using_delayed_job = true
  require 'delayed_job_active_record'
end