Sha256: 4a27a3c163215fa5e76e59934dc849a25a5d3680f2ab81e3a814b6b96d0d8b79

Contents?: true

Size: 1.28 KB

Versions: 1

Compression:

Stored size: 1.28 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}"

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

ballonizer = Ballonizer.new(db_uri, {
  img_to_ballonize_css_selector: '#comic img',
  create_tables_if_none: true,
  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)
      mime_type = 'application/xhtml+xml'
      ballonized_page = ballonizer.ballonize_page(html, request.url, mime_type)

      [200, { 'content-type' => mime_type }, [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

1 entries across 1 versions & 1 rubygems

Version Path
ballonizer-0.4.0 examples/ballonizer_app/config.ru