Sha256: 53c625abddbe1b70a4e1497030a9dc1e0f9a5020aea94eafeba37739dc9a399f

Contents?: true

Size: 1.29 KB

Versions: 22

Compression:

Stored size: 1.29 KB

Contents

require 'padrino-core'
require 'redcarpet'

Tilt.prefer Tilt::RedcarpetTemplate

module PactBroker
  module Doc
    module Controllers
      class App < Padrino::Application

        set :root, File.join(File.dirname(__FILE__), '..')
        set :show_exceptions, true

        MAPPINGS = {
          'webhooks-create' => 'webhooks',
          'webhooks-webhooks' => 'webhooks'
        }.freeze

        helpers do
          def view_name_for rel_name, context = nil
            view_name = MAPPINGS[rel_name] || rel_name
            context ? "#{context}/#{view_name}" : view_name
          end

          def resource_exists? rel_name, context = nil
            File.exist? File.join(self.class.root, 'views', "#{view_name_for(rel_name, context)}.markdown")
          end
        end

        get ":rel_name" do
          rel_name = params[:rel_name]
          context = params[:context]
          view_params = {:layout_engine => :haml, layout: :'layouts/main'}
          if resource_exists? rel_name, context
            markdown view_name_for(rel_name, context).to_sym, view_params, {}
          elsif resource_exists? rel_name
            markdown view_name_for(rel_name).to_sym, view_params, {}
          else
            markdown :not_found, view_params, {}
          end
        end
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
pact_broker-2.38.1 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.38.0 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.37.0 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.36.1 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.36.0 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.35.0 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.34.0 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.33.0 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.32.0 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.31.0 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.30.0 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.29.0 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.27.6 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.27.5 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.27.4 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.27.3 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.27.2 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.27.0 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.26.1 lib/pact_broker/doc/controllers/app.rb
pact_broker-2.26.0 lib/pact_broker/doc/controllers/app.rb