Mini Shell
--- !ruby/object:RI::ClassDescription
attributes: []
class_methods:
- !ruby/object:RI::MethodSummary
name: new
comment:
- !ruby/struct:SM::Flow::P
body: The Rack::Static middleware intercepts requests for static files (javascript files, images, stylesheets, etc) based on the url prefixes or route mappings passed in the options, and serves them using a Rack::File object. This allows a Rack stack to serve both static and dynamic content.
- !ruby/struct:SM::Flow::P
body: "Examples:"
- !ruby/struct:SM::Flow::P
body: "Serve all requests beginning with /media from the "media" folder located in the current directory (ie media/*):"
- !ruby/struct:SM::Flow::VERB
body: " use Rack::Static, :urls => ["/media"]\n"
- !ruby/struct:SM::Flow::P
body: "Serve all requests beginning with /css or /images from the folder "public" in the current directory (ie public/css/* and public/images/*):"
- !ruby/struct:SM::Flow::VERB
body: " use Rack::Static, :urls => ["/css", "/images"], :root => "public"\n"
- !ruby/struct:SM::Flow::P
body: "Serve all requests to / with "index.html" from the folder "public" in the current directory (ie public/index.html):"
- !ruby/struct:SM::Flow::VERB
body: " use Rack::Static, :urls => {"/" => 'index.html'}, :root => 'public'\n"
- !ruby/struct:SM::Flow::P
body: Serve all requests normally from the folder "public" in the current directory but uses index.html as default route for "/"
- !ruby/struct:SM::Flow::VERB
body: " use Rack::Static, :urls => [""], :root => 'public', :index =>\n 'index.html'\n"
- !ruby/struct:SM::Flow::P
body: "Set custom HTTP Headers for based on rules:"
- !ruby/struct:SM::Flow::VERB
body: " use Rack::Static, :root => 'public',\n :header_rules => [\n [rule, {header_field => content, header_field => content}],\n [rule, {header_field => content}]\n ]\n\n Rules for selecting files:\n\n 1) All files\n Provide the :all symbol\n :all => Matches every file\n\n 2) Folders\n Provide the folder path as a string\n '/folder' or '/folder/subfolder' => Matches files in a certain folder\n\n 3) File Extensions\n Provide the file extensions as an array\n ['css', 'js'] or %w(css js) => Matches files ending in .css or .js\n\n 4) Regular Expressions / Regexp\n Provide a regular expression\n %r{\\.(?:css|js)\\z} => Matches files ending in .css or .js\n /\\.(?:eot|ttf|otf|woff|svg)\\z/ => Matches files ending in\n the most common web font formats (.eot, .ttf, .otf, .woff, .svg)\n Note: This Regexp is available as a shortcut, using the :fonts rule\n\n 5) Font Shortcut\n Provide the :fonts symbol\n :fonts => Uses the Regexp rule stated right above to match all common web font endings\n\n Rule Ordering:\n Rules are applied in the order that they are provided.\n List rather general rules above special ones.\n\n Complete example use case including HTTP header rules:\n\n use Rack::Static, :root => 'public',\n :header_rules => [\n # Cache all static files in public caches (e.g. Rack::Cache)\n # as well as in the browser\n [:all, {'Cache-Control' => 'public, max-age=31536000'}],\n\n # Provide web fonts with cross-origin access-control-headers\n # Firefox requires this when serving assets using a Content Delivery Network\n [:fonts, {'Access-Control-Allow-Origin' => '*'}]\n ]\n"
constants: []
full_name: Rack::Static
includes: []
instance_methods:
- !ruby/object:RI::MethodSummary
name: applicable_rules
- !ruby/object:RI::MethodSummary
name: call
- !ruby/object:RI::MethodSummary
name: can_serve
- !ruby/object:RI::MethodSummary
name: overwrite_file_path
- !ruby/object:RI::MethodSummary
name: route_file
name: Static
superclass: Object
Zerion Mini Shell 1.0