Class: Adapter

Inherits:
Object
  • Object
show all
Defined in:
lib/shared/adapters/adapter.rb

Constant Summary collapse

FILES =
Dir[File.dirname(__FILE__) + "/*_adapter.rb"]

Class Method Summary collapse

Class Method Details

.allObject



6
7
8
# File 'lib/shared/adapters/adapter.rb', line 6

def self.all
  FILES.map { |file| load_adapter(file) }
end

.find(type) ⇒ Object



10
11
12
13
14
15
16
# File 'lib/shared/adapters/adapter.rb', line 10

def self.find(type)
  if adapter = all.find { |adapter| adapter.type == type.to_s }
    adapter
  else
    raise "Unknown adapter: #{type}"
  end
end

.load_adapter(file) ⇒ Object



20
21
22
23
24
# File 'lib/shared/adapters/adapter.rb', line 20

def self.load_adapter(file)
  eval("::" + File.basename(file).
       gsub(/\.rb/, '').
       gsub(/(?:^|_)(.)/) { $1.upcase })
end