Sha256: f65a44bd62bbd07cfc4c9a2015a4983f9b3b348c19012891d7b434d620e5004b

Contents?: true

Size: 1.2 KB

Versions: 3

Compression:

Stored size: 1.2 KB

Contents

require 'sinatra/base'
require 'erb'
require 'prisma'
require 'active_support/core_ext'

module Prisma
  # Sinatra application for viewing request stats
  class Server < Sinatra::Base
    dir = File.join(File.dirname(File.expand_path(__FILE__)), 'server')

    set :views, File.join(dir, 'views')
    set :public_folder, File.join(dir, 'public')

    get '/' do
      redirect to('/daily')
    end

    get '/daily' do
      @date_format = '%m-%d'
      @groups = groups.map do |group|
        values = group.daily (Date.today-1.month)..Date.today
        [group, values]
      end
      erb :index
    end

    get '/weekly' do
      @date_format = '%W'
      @groups = groups.map do |group|
        values = group.weekly (Date.today-3.months)..Date.today
        [group, values]
      end
      erb :index
    end

    get '/monthly' do
      @date_format = '%Y-%m'
      @groups = groups.map do |group|
        values = group.monthly (Date.today-1.year)..Date.today
        [group, values]
      end
      erb :index
    end

    private

    def groups
      Prisma.redis.hgetall('configuration').map do |name, description|
        Prisma::Group.new(:name => name, :description => description)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
prisma-0.1.2 lib/prisma/server.rb
prisma-0.1.1 lib/prisma/server.rb
prisma-0.1.0 lib/prisma/server.rb