Sha256: 8b2f955ce6f3a39cd27f3a45ac70adcbc856bce64bce88da4ed5d86fae14e2c0
Contents?: true
Size: 1.43 KB
Versions: 2
Compression:
Stored size: 1.43 KB
Contents
module Ramaze ## # Class that makes it possible to easily use multiple public directories in # your Ramaze application. # # @author Michael Fellinger # @since 14-03-2009 # class Files ## # Creates a new instance of the class, stores the given root directories and # syncs the changes with Rack::Cascade. # # @author Michael Fellinger # @since 14-03-2009 # @param [Array] *roots A set of root directories that contain a number of # public directories. # def initialize(*roots) @roots = roots.flatten.map{|root| File.expand_path(root.to_s) } sync end ## # Allows this class to be called as a Rack middleware. # # @author Michael Fellinger # @since 14-03-2009 # @param [Hash] env Hash containing all the environment details. # def call(env) @cascade.call(env) end ## # Adds a new path to the list of root directories. # # @author Michael Fellinger # @since 14-03-2009 # @param [String] path The path to add to the existing root directories. # def <<(path) @roots << File.expand_path(path.to_s) @roots.uniq! sync end ## # Syncs the class with Rack::Cascade. # # @author Michael Fellinger # @since 14-03-2009 # def sync file_apps = @roots.map{|root| Rack::File.new(root) } @cascade = Rack::Cascade.new(file_apps) end end # Files end # Ramaze
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ramaze-2011.10.23 | lib/ramaze/files.rb |
ramaze-2011.07.25 | lib/ramaze/files.rb |