Sha256: 979a5e3dd93d062115e788b37e817334927c4b37e6eb02c593007b1b56ca6317
Contents?: true
Size: 1.38 KB
Versions: 5
Compression:
Stored size: 1.38 KB
Contents
class Usher # Various interfaces for Usher. module Interface autoload(:Rails20, File.join(File.dirname(__FILE__), 'interface', 'rails20')) autoload(:Rails22, File.join(File.dirname(__FILE__), 'interface', 'rails22')) autoload(:Rails23, File.join(File.dirname(__FILE__), 'interface', 'rails23')) autoload(:Rack, File.join(File.dirname(__FILE__), 'interface', 'rack')) autoload(:Rails3, File.join(File.dirname(__FILE__), 'interface', 'rails3')) autoload(:Sinatra, File.join(File.dirname(__FILE__), 'interface', 'sinatra')) # Returns the appropriate interface class for a given name. # @param name [Symbol, String] The interface you wish to load. This can be `:rails20`, `:rails22`, `:rails23`, `:rack`, `:rails3` or `:sinatra` def self.class_for(name) Usher::Interface.const_get(name.to_s.split(/_/).map{|e| e.capitalize}.join) or raise ArgumentError, "Interface #{name.inspect} doesn't exist." end # Returns the appropriate interface class for a given name. # @param name [Symbol, String] The interface you wish to load. This can be `:rails20`, `:rails22`, `:rails23`, `:rack`, `:rails3` or `:sinatra` # @param args [Object] Any additional parameters the interface wishes to recieve # @return [Object] An intatiated interface def self.for(name, *args, &block) class_for(name).new(*args, &block) end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
usher-0.8.3 | lib/usher/interface.rb |
usher-0.8.2 | lib/usher/interface.rb |
usher-0.8.1 | lib/usher/interface.rb |
usher-0.8.0 | lib/usher/interface.rb |
usher-0.7.5 | lib/usher/interface.rb |