Sha256: 9650a96213107aadf066a8317c368b5a38d07ec11bb266f1bd9ff24cc1901dcd

Contents?: true

Size: 1.76 KB

Versions: 9

Compression:

Stored size: 1.76 KB

Contents

module Spontaneous::Rack::Back
  module TemplateHelpers
    include Spontaneous::Rack::Constants

    def application_assets
      @application_assets_compiler ||= Spontaneous::Asset::AppCompiler.new(Spontaneous.gem_dir, Spontaneous.root)
    end

    def style_url(style)
      asset_url(style, "css")
    end

    def script_url(script)
      asset_url(script, "js")
    end

    def asset_url(file, type)
      file = "#{file}.#{type}" unless file =~ /\.#{type}$/


      if (compiled_asset = application_assets.manifest.assets[file])
        return "#{NAMESPACE}/assets/#{compiled_asset}"
      end
      # TODO: use the sprockets environment to append a modification time to the non-compiled URL
      "#{NAMESPACE}/#{type}/#{file}"
    end

    def script_list(scripts)
      scripts.map do |script|
        script = "#{script}.js" unless script =~ /\.js$/
        src = script_url(script)
        size = 0
        if (asset = application_assets.manifest.files[::File.basename(src)])
          size = asset["size"]
        else
          src = "#{NAMESPACE}/js/#{script}"
          path = Spontaneous.application_dir("/js/#{script}")
          size = ::File.size(path)
        end
        [src, size]
      end.to_json
    end
  end

  module Helpers
    include Spontaneous::Rack::Constants

    def json(response)
      content_type 'application/json', :charset => 'utf-8'
      response.serialise_http(user)
    end


    def forbidden!
      halt 403#, "You do not have the necessary permissions to update the '#{name}' field"
    end


    def api_key
      request.cookies[AUTH_COOKIE]
    end

    def user
      env[ACTIVE_USER]
    end

    def show_login_page(locals = {})
      halt(401, erb(:login, :views => Spontaneous.application_dir('/views'), :locals => locals))
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
spontaneous-0.2.0.beta10 lib/spontaneous/rack/back/helpers.rb
spontaneous-0.2.0.beta9 lib/spontaneous/rack/back/helpers.rb
spontaneous-0.2.0.beta8 lib/spontaneous/rack/back/helpers.rb
spontaneous-0.2.0.beta7 lib/spontaneous/rack/back/helpers.rb
spontaneous-0.2.0.beta6 lib/spontaneous/rack/back/helpers.rb
spontaneous-0.2.0.beta5 lib/spontaneous/rack/back/helpers.rb
spontaneous-0.2.0.beta4 lib/spontaneous/rack/back/helpers.rb
spontaneous-0.2.0.beta3 lib/spontaneous/rack/back/helpers.rb
spontaneous-0.2.0.beta2 lib/spontaneous/rack/back/helpers.rb