13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/houston/adapters.rb', line 13
def define_adapter_namespace(name)
namespace = ::Module.new
const_set name, namespace
pathname = name_to_path(name)
adapters_paths = File.join(File.dirname(caller[0]), "#{pathname}/*_adapter.rb")
Dir[adapters_paths].each(&method(:require))
def namespace.adapters
constants
.select { |sym| sym =~ /Adapter$/ }
.map { |sym| sym[/^.*(?=Adapter)/] }
.sort_by { |name| name == "None" ? "" : name }
end
def namespace.adapter(name)
const_get "#{name}Adapter"
end
def namespace.adapter?(name)
adapters.map(&:downcase).member?(name.to_s.downcase)
end
end
|