Sha256: 6c09bbc350ded9ce0e799fc5b0cb55961f9546057f71b6ecbcc1d2ecd264df0f

Contents?: true

Size: 1.25 KB

Versions: 2

Compression:

Stored size: 1.25 KB

Contents

require 'sequel'
require 'sqlite3'
require 'sprockets'
require 'ballonizer'

path_rake_to_app = 'examples/ballonizer_app/'
db_name = 'test.db'
db_path = "#{path_rake_to_app}#{db_name}"
db_uri = "sqlite://#{db_path}"

DB = nil
if File.exists?(db_path)
  DB = Sequel.connect(db_uri)
else
  DB = Sequel.connect(db_uri)
  Ballonizer.create_tables(DB)
end

html_name = 'index.html'
html = File.read("#{path_rake_to_app}#{html_name}")

ballonizer = Ballonizer.new(DB, {
  form_handler_url: '/request_handler',
  add_required_css: true,
  css_asset_path_for_link: '/assets',
  add_required_js_libs_for_edition: true,
  js_asset_path_for_link: '/assets'
})

app = Rack::Builder.new do

  map '/' do 
    run(lambda do | env |
      # the url is needed to make relative paths to images absolute
      request = Rack::Request.new(env)
      ballonized_page = ballonizer.ballonize_page(html, request.url)

      [200, {}, [ballonized_page]]
    end)
  end

  map '/assets' do
    run Ballonizer.assets_app
  end

  map '/request_handler' do
    run(lambda do | env |
      begin
        ballonizer.process_submit(env)
        [200, {}, ['your changes are made with success']]
      rescue Ballonizer::SubmitError => e
        [200, {}, [e.message]]
      end
    end)
  end
end

run app

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ballonizer-0.2.1 examples/ballonizer_app/config.ru
ballonizer-0.2.0 examples/ballonizer_app/config.ru