Sha256: f55f58bf03b188e8da4caca20055c176b4c83d4bb3fc0d63fd22f51b8a50e3c9

Contents?: true

Size: 1.01 KB

Versions: 8

Compression:

Stored size: 1.01 KB

Contents

require 'rqrcode'

module RhetButler
  module Web
    class QrDisplayApp
      def initialize(files, path)
        @config = files.aspect_config(:presenter)
        @templates = files.aspect_templates(:presenter)
        @path = path
      end

      attr_reader :template_handler

      QRItem = Struct.new(:qr, :view_url, :presenter_url)

      def call(env)
        url = [env["rack.url_scheme"], "://"]
        if env["HTTP_HOST"].nil? or env["HTTP_HOST"].empty?
          url << env["SERVER_NAME"]
          url << ":"
          url << env["SERVER_PORT"]
        else
          url << env["HTTP_HOST"]
        end
        view_url = url.join("") + "/"

        url << @path
        url = url.join("")
        qr = RQRCode::QRCode.new(url, :size => 5)

        mime_type = "text/html"
        qr_item = QRItem.new(qr, view_url, url)
        generator = HTMLGenerator.new(@config, @templates)
        [200, {'Content-Type' => mime_type}, [
          generator.render("presenter-qr.html", qr_item)
        ]]
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rhet-butler-0.14.1 lib/rhet-butler/web/qr-display-app.rb
rhet-butler-0.14.0 lib/rhet-butler/web/qr-display-app.rb
rhet-butler-0.13.0 lib/rhet-butler/web/qr-display-app.rb
rhet-butler-0.12.1 lib/rhet-butler/web/qr-display-app.rb
rhet-butler-0.11.1 lib/rhet-butler/web/qr-display-app.rb
rhet-butler-0.11.0 lib/rhet-butler/web/qr-display-app.rb
rhet-butler-0.10.0 lib/rhet-butler/web/qr-display-app.rb
rhet-butler-0.9.0 lib/rhet-butler/web/qr-display-app.rb