ca56de3648
This changes the minimum supported version of PostgreSQL to 9.3.
38 lines
1.1 KiB
Ruby
38 lines
1.1 KiB
Ruby
# Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
|
|
|
|
module Mixin
|
|
module RequiredSubPaths
|
|
|
|
def self.included(_base)
|
|
path = caller_locations(1..1).first.path
|
|
sub_path = File.join(File.dirname(path), File.basename(path, '.rb'))
|
|
eager_load_recursive(sub_path)
|
|
end
|
|
|
|
# Loads a directory recursively. This can be needed when accessing
|
|
# modules not directly via .constantize on a known string, but dynamically
|
|
# via the inheritance tree, e.g. via .descendants (which assumes they have
|
|
# previously been loaded).
|
|
def self.eager_load_recursive(path)
|
|
|
|
excluded = ['.', '..']
|
|
sub_paths = []
|
|
Dir.entries(path).each do |entry|
|
|
next if excluded.include?(entry)
|
|
|
|
sub_path = File.join(path, entry)
|
|
|
|
if File.directory?(sub_path)
|
|
sub_paths.push(sub_path)
|
|
elsif sub_path =~ %r{\A(.*)\.rb\z}
|
|
require_path = $1
|
|
require_dependency(require_path)
|
|
end
|
|
end
|
|
|
|
sub_paths.each do |sub_path|
|
|
eager_load_recursive(sub_path)
|
|
end
|
|
end
|
|
end
|
|
end
|