# 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