Sha256: 1173a293d850af1da75bf25592c13ef04f8f246cd3da6fde9bd580e0dfd80284

Contents?: true

Size: 1.24 KB

Versions: 13

Compression:

Stored size: 1.24 KB

Contents

require "rack/contrib"
require "sinatra"
require "sinatra/reloader"
require "sass"
require "almanack"

module Almanack
  class Server < Sinatra::Base
    require "almanack/server/helpers"
    require "almanack/server/environment"

    include Almanack::ServerContext::Environment

    set :root, -> { Almanack.config.theme_root }
    set :protection, except: :frame_options
    set :feed_path, "feed"

    use Rack::JSONP

    configure :development do
      register Sinatra::Reloader
    end

    helpers do
      include Almanack::ServerContext::Helpers
    end

    before do
      register_sass_loadpaths!
    end

    not_found do
      status 404
      erb :error
    end

    error do
      status 500
      erb :error
    end

    get "/" do
      erb :events
    end

    get "/#{settings.feed_path}.ics" do
      content_type "text/calendar"
      Almanack.calendar.ical_feed
    end

    get "/#{settings.feed_path}.json" do
      content_type :json
      Almanack.calendar.json_feed
    end

    get "/stylesheets/:name" do
      content_type :css
      auto_render_asset params[:name], within: "stylesheets"
    end

    get "/javascripts/:name" do
      content_type :js
      auto_render_asset params[:name], within: "javascripts"
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
almanack-1.2.0 lib/almanack/server.rb
almanack-1.1.5 lib/almanack/server.rb
almanack-1.1.3 lib/almanack/server.rb
almanack-1.1.3.rc1 lib/almanack/server.rb
almanack-1.1.2 lib/almanack/server.rb
almanack-1.1.1 lib/almanack/server.rb
almanack-1.1.0 lib/almanack/server.rb
almanack-1.1.0.beta6 lib/almanack/server.rb
almanack-1.1.0.beta5 lib/almanack/server.rb
almanack-1.1.0.beta4 lib/almanack/server.rb
almanack-1.1.0.beta3 lib/almanack/server.rb
almanack-1.1.0.beta2 lib/almanack/server.rb
almanack-1.1.0.beta1 lib/almanack/server.rb