Sha256: fd7911544d726a5a0368f2fc4462c8fef91628346d4fa9a101749b927546d73e

Contents?: true

Size: 1.65 KB

Versions: 2

Compression:

Stored size: 1.65 KB

Contents

module Sinatra
  module DarkHelpers
    module HelperMethods
      def view(view, options = {})
        html = haml(view,options)
        flash.clear
        html
      end

      def partial(view, options = {})
        haml(view,options.merge(:layout => false))
      end

      def css_link_tag(sheet, media = 'screen,projection')
        partial("%link{ :type => 'text/css', :href => '#{options.slash ? '/' : ''}stylesheets/#{sheet}.css', :rel => 'stylesheet', :media => '#{media}' }")
      end

      def js_script_tag(script)
        partial("%script{ :type => 'text/javascript', :src => '#{options.slash ? '/' : ''}javascripts/#{script}.js' }")
      end

      def js_tag(script)
        @dsh_script = script
        temp = ["%script{ :type => 'text/javascript' }",
                "  //<![CDATA[",
                "  = @dsh_script",
                "  //]]>"].join("\n")
        partial(temp)
      end

      def flash
        session[:flash] = {} if session[:flash] && session[:flash].class != Hash
        session[:flash] ||= {}
      end

      def host
        "#{protocol}://#{request.env['HTTP_HOST']}"
      end

      def protocol
        request.env['rack.url_scheme']
      end

      def server_name
        request.env['SERVER_NAME']
      end

      def set_title(extra)
        @title = "#{options.site_name} - #{extra}"
      end

      def base
        host + options.site_base
      end

      def redirect_back
        redirect(request.env['HTTP_REFERER'])
      end
    end

    def self.registered(app)
      app.helpers(HelperMethods)
      app.disable(:slash)
      app.set(:site_base, '/')
      app.enable(:sessions)
    end
  end

  register DarkHelpers
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
darkhelmet-darkext-0.12.0 lib/darkext/sinatra.rb
darkext-0.12.0 lib/darkext/sinatra.rb