module Fishplate

Constants

VERSION

Attributes

logger[W]

Public Class Methods

database_configuration() click to toggle source
# File lib/fishplate.rb, line 24
def database_configuration
  @database_configuration ||= YAML.load(ERB.new(A9n.root.join('config/database.yml').read).result) # rubocop:disable Security/YAMLLoad
end
load_seed() click to toggle source
# File lib/fishplate.rb, line 13
def load_seed
  return unless A9n.root.join('db/seeds.rb').exist?
  Kernel.load A9n.root.join('db/seeds.rb')
end
load_tasks() click to toggle source
# File lib/fishplate.rb, line 18
def load_tasks
  Kernel.load 'active_record/railties/databases.rake'
  Kernel.load File.expand_path('fishplate/tasks.rake', __dir__)
  A9n.root.join('lib/tasks').glob('**/*.rake').sort.each { |f| Kernel.load f }
end
logger() click to toggle source
# File lib/fishplate.rb, line 38
def logger
  @logger ||= ::Logger.new($stdout)
end
setup!() click to toggle source
# File lib/fishplate.rb, line 42
def setup!
  configure_active_record

  setup_database_tasks

  setup_db_connection

  load_initializers

  add_sidekiq_middleware if defined?(Sidekiq)
end
time_zone=(value) click to toggle source
# File lib/fishplate.rb, line 28
def time_zone=(value)
  TZInfo::DataSource.get
  Time.find_zone!(value).tap do |zone|
    Time.zone = zone
    Time.zone_default = zone
  end
end

Private Class Methods

add_sidekiq_middleware() click to toggle source
# File lib/fishplate.rb, line 85
def add_sidekiq_middleware
  Sidekiq.configure_server do |config|
    config.server_middleware do |chain|
      chain.add Fishplate::SidekiqMiddleware
    end
  end
end
configure_active_record() click to toggle source
# File lib/fishplate.rb, line 56
def configure_active_record
  ActiveRecord::Base.logger = logger
  ActiveRecord::Base.time_zone_aware_attributes = true
  ActiveRecord::Base.default_timezone = :utc
  ActiveRecord::Base.connection_handlers = { ActiveRecord::Base.writing_role => ActiveRecord::Base.default_connection_handler }
  ActiveRecord::Base.configurations = database_configuration
end
load_initializers() click to toggle source
# File lib/fishplate.rb, line 81
def load_initializers
  A9n.root.join('config/initializers').glob('*.rb').sort.each { |f| require f }
end
setup_database_tasks() click to toggle source
# File lib/fishplate.rb, line 64
def setup_database_tasks
  # Check active_record/tasks/database_tasks.rb for possible config values
  ActiveRecord::Tasks::DatabaseTasks.env = A9n.env
  ActiveRecord::Tasks::DatabaseTasks.database_configuration = database_configuration
  ActiveRecord::Tasks::DatabaseTasks.db_dir = A9n.root.join('db')
  ActiveRecord::Tasks::DatabaseTasks.fixtures_path = A9n.root.join('db/fixtures')
  ActiveRecord::Tasks::DatabaseTasks.migrations_paths = A9n.root.join('db/migrate')
  ActiveRecord::Tasks::DatabaseTasks.seed_loader = self
  ActiveRecord::Tasks::DatabaseTasks.root = A9n.root
end
setup_db_connection() click to toggle source
# File lib/fishplate.rb, line 75
def setup_db_connection
  ActiveRecord::Base.clear_active_connections!
  ActiveRecord::Base.flush_idle_connections!
  ActiveRecord::Base.establish_connection
end