Sha256: b315f0c2d6ed6529dcbeb6d8035de5f25b718c0e52d9d518b2eb07ffc6631e60

Contents?: true

Size: 1.18 KB

Versions: 3

Compression:

Stored size: 1.18 KB

Contents

require_dependency 'response_cache'

class SiteController < ApplicationController
  session :off
  
  no_login_required
  
  attr_accessor :config, :cache
  
  def initialize
    @config = Radiant::Config
    @cache = ResponseCache.instance
  end
  
  def show_page
    @response.headers.delete('Cache-Control')
    url = params[:url].to_s
    if live? and (@cache.response_cached?(url))
      @cache.update_response(url, response)
      @performed_render = true
    else
      show_uncached_page(url)
    end
  end
  
  private
    
    def find_page(url)
      found = Page.find_by_url(url, live?)
      found if found and (found.published? or dev?)
    end

    def show_uncached_page(url)
      @page = find_page(url)
      unless @page.nil?
        @page.process(request, response)
        @cache.cache_response(url, response) if live? and @page.cache?
        @performed_render = true
      else
        render :template => 'site/not_found', :status => 404
      end
    rescue Page::MissingRootPageError
      redirect_to(:controller => 'admin/welcome')
    end

    def dev?
      (@request.host == @config['dev.host']) or (@request.host =~ /^dev/)
    end
    
    def live?
      not dev?
    end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
radiant-0.5.0 app/controllers/site_controller.rb
radiant-0.5.1 app/controllers/site_controller.rb
radiant-0.5.2 app/controllers/site_controller.rb