Sha256: 15259b70cc549a661fe8e8a1ab7c586cbfb2462b81bf627a734d874aaa21e3b3

Contents?: true

Size: 1.2 KB

Versions: 2

Compression:

Stored size: 1.2 KB

Contents

$:.unshift(File.join(File.dirname(__FILE__), 'lib'))

require 'uri'
require 'yaml'

require 'rack/cache'
require 'rack/rewrite'
require 'rack/throttle'

require 'murlsh'

config = YAML.load_file('config.yaml')

# use Rack::ShowExceptions
# no more than 1024 requests per day per ip
use Rack::Throttle::Daily, :max => 1024
if config.key?('cache_metastore') and config.key?('cache_entitystore')
  use Rack::Cache,
    :verbose => true,
    :metastore => config['cache_metastore'],
    :entitystore => config['cache_entitystore']
end
use Rack::ConditionalGet
use Murlsh::EtagAddEncoding
use Rack::Deflater
use Murlsh::FarFutureExpires, :patterns => [
  %r{[\da-z]{32}\.(?:gif|jpe?g|png)$}i,
  %r{\.gen\.(css|js)$}
]

feed_url = URI.join(config.fetch('root_url'), config.fetch('feed_file'))
use Murlsh::MustRevalidate, :patterns => %r{^#{Regexp.escape(feed_url.path)}$}

use Rack::Static, :urls => %w{/css/ /img/ /js/}, :root => 'public'
use Rack::Static, :urls => %w{/atom.atom /podcast.rss /rss.rss}

use Rack::Rewrite do
  r301 '/atom.xml', feed_url.to_s
  r301 '/rss.xml', URI.join(config.fetch('root_url'), 'rss.rss').to_s
end

# use Rack::Lint

Dir['plugins/*.rb'].each { |p| require "./#{p}" }

run Murlsh::Dispatch.new(config)

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
murlsh-1.3.1 config.ru
murlsh-1.3.0 config.ru