Sha256: b4836762b589807d6890e98dbc545e5340fab066f5d58d6f3857bf0a61ca39c5

Contents?: true

Size: 1.86 KB

Versions: 1

Compression:

Stored size: 1.86 KB

Contents

require 'rubygems'
require 'sinatra/base'
require 'sinatra/contrib'
require 'sinatra/session'

module LedgerWeb
  class Application < Sinatra::Base
    register Sinatra::Session
    set :session_secret, LedgerWeb::Config.instance.get(:session_secret)
    set :session_expire, LedgerWeb::Config.instance.get(:session_expire)
    set :views, LedgerWeb::Config.instance.get(:report_directories) + [File.join(File.dirname(__FILE__), 'views')]
    set :reload_templates, true

    LedgerWeb::Database.connect

    helpers Sinatra::Capture
    helpers LedgerWeb::Helpers

    def find_template(views, name, engine, &block)
      Array(views).each { |v| super(v, name, engine, &block) }
    end

    before do
      if not session?
        session_start!
        today = Date.today
        session[:from] = Date.new(today.year - 1, today.month, today.day).strftime("%Y/%m/%d")
        session[:to] = today.strftime("%Y/%m/%d")
      end
      Report.session = session
      Report.params = params

      @reports = find_all_reports
    end

    post '/update-date-range' do

      if params[:reset]
        today = Date.today
        session[:from] = Date.new(today.year - 1, today.month, today.day).strftime('%Y/%m/%d')
        session[:to] = today.strftime('%Y/%m/%d')
      else
        session[:from] = Date.strptime(params[:from], '%Y/%m/%d').strftime('%Y/%m/%d')
        session[:to] = Date.strptime(params[:to], '%Y/%m/%d').strftime('%Y/%m/%d')
      end

      redirect back
    end

    get '/reports/:name' do
      begin
        erb params[:name].to_sym
      rescue Exception => e
        @error = e
        erb :error
      end
    end

    get '/' do
      index_report = LedgerWeb::Config.instance.get :index_report
      if index_report
        redirect "/reports/#{index_report.to_s}"
      else
        redirect '/help'
      end
    end

    get '/help' do
      erb :help
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ledger_web-1.4.3 lib/ledger_web/app.rb