Sha256: 290ef97b20b4d3db255d00d2a137b82918d419b7b9be52953787f2954a685047

Contents?: true

Size: 1.71 KB

Versions: 6

Compression:

Stored size: 1.71 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
        port = request.env['SERVER_PORT'].to_i
        port = port == 80 ? "" : ":#{port}"
        "#{protocol}://#{server_name}#{port}"
      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.enable(:sessions)
    end
  end

  register DarkHelpers
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
darkhelmet-darkext-0.9.2 lib/darkext/sinatra.rb
darkhelmet-darkext-0.9.3 lib/darkext/sinatra.rb
darkhelmet-darkext-0.9.4 lib/darkext/sinatra.rb
darkhelmet-darkext-0.9.5 lib/darkext/sinatra.rb
darkhelmet-darkext-0.9.6 lib/darkext/sinatra.rb
darkhelmet-darkext-0.9.7 lib/darkext/sinatra.rb