Method: Monkey::Backend.new

Defined in:
lib/monkey/backend.rb

.new(backend_name, backend_path = nil, &block) ⇒ Object



77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/monkey/backend.rb', line 77

def self.new(backend_name, backend_path = nil, &block)
  mod = eval "module #{backend_name}; self; end"
  mod.extend AbstractBackend
  backend_path ||= backend_name.to_s.downcase
  mod.backend_name, mod.backend_path = backend_name.to_s, backend_path.to_s
  available_backends << mod
  if block
    eigenclass = class << mod; self; end
    eigenclass.class_eval(&block)
  end
  mod
end