Sha256: da3a9cd20d1ea046e5bd36ce34edb9935cdce0f85e73f700cfce8e6fdf8cbe49

Contents?: true

Size: 727 Bytes

Versions: 5

Compression:

Stored size: 727 Bytes

Contents

# encoding: utf-8
module Sinatra
  module ReportHandler
    extend Hexacta

    def enable_reports
      p "Enabling reports..."
      before '/reports/*' do
        error(403) if authenticated(User).permissions.empty?
      end

      get '/reports' do
        slim :reports
      end

      get '/reports/:report_name' do |report_name|
        date = Date.parse(params["date"]) unless params["date"].nil?
        date ||= Date.today
        headers "Content-Disposition" => "attachment;filename=#{report_name}.#{date}.xls",
          "Content-Type" => "application/octet-stream"
          slim "reports/#{report_name}".to_sym, locals: { :date => date }, :layout => false
      end
    end

  end

  register ReportHandler
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
sinatra-hexacta-0.3.2 lib/sinatra/handlers/reports.rb
sinatra-hexacta-0.3.1 lib/sinatra/handlers/reports.rb
sinatra-hexacta-0.3.0 lib/sinatra/handlers/reports.rb
sinatra-hexacta-0.1.1 lib/sinatra/handlers/reports.rb
sinatra-hexacta-0.1.0 lib/sinatra/handlers/reports.rb