Sha256: f0f29a360158b9018f3240a632309778c70ef3d66399eedceba4bc63755d7325

Contents?: true

Size: 703 Bytes

Versions: 3

Compression:

Stored size: 703 Bytes

Contents

require 'rack'

module Helios
  class Application
    def initialize(app = nil, options = {}, &block)
      @app = Rack::Builder.new do
        map '/admin' do
          use Rack::Auth::Basic, "Restricted Area" do |username, password|
            username == (ENV['HELIOS_ADMIN_USERNAME'] || "") and password == (ENV['HELIOS_ADMIN_PASSWORD'] || "")
          end if ENV['HELIOS_ADMIN_USERNAME'] or ENV['HELIOS_ADMIN_PASSWORD']

          run Helios::Frontend.new
        end

        run Rack::Cascade.new([app, Helios::Backend.new(&block)].compact)
      end
    end

    def call(env)
      @app.call(env)
    end
  end
end

require 'helios/backend'
require 'helios/frontend'
require 'helios/version'

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
helios-0.4.1 ./lib/helios.rb
helios-0.4.0 ./lib/helios.rb
helios-0.3.0 ./lib/helios.rb