Sha256: 4090a8d8418055c45338fa0e58dcac631ce70dfdb70340acbf1c6690e2b41664

Contents?: true

Size: 1.39 KB

Versions: 3

Compression:

Stored size: 1.39 KB

Contents

require 'gon-sinatra'
require 'haml'
require 'sinatra/base'
require 'sinatra/partial'

module PulseMeter
  module Visualize
    class App < Sinatra::Base
      include PulseMeter::Mixins::Utils
      register Gon::Sinatra
      register Sinatra::Partial

      set :partial_template_engine, :haml

      def initialize(layout)
        @layout = layout
        super()
      end

      configure :production, :development do
        enable :logging
      end

      get '/' do
        @title = @layout.title
        gon.pageInfos = camelize_keys(@layout.page_infos)
				gon.options = camelize_keys(@layout.options)
        haml :main
      end

			get '/pages/:id/widgets' do
				id = params[:id].to_i 

				content_type :json
        camelize_keys(@layout.widgets(id - 1)).to_json
			end

			get '/pages/:page_id/widgets/:id' do
				page_id = params[:page_id].to_i 
				id = params[:id].to_i
        timespan = params[:timespan].to_i

				content_type :json
        camelize_keys(@layout.widget(page_id - 1, id - 1, timespan: timespan)).to_json
			end

      get '/sensors' do
        content_type :json
        camelize_keys(@layout.sensor_list).to_json
      end

      get '/dynamic_widget' do
        content_type :json
        camelize_keys(@layout.dynamic_widget(
          timespan:  params[:timespan],
          sensors: params[:sensor],
          type: params[:type])
        ).to_json
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pulse-meter-0.2.11 lib/pulse-meter/visualize/app.rb
pulse-meter-0.2.10 lib/pulse-meter/visualize/app.rb
pulse-meter-0.2.9 lib/pulse-meter/visualize/app.rb