Sha256: 34ed9de918986d91dc97aa9e2f20e78754a274746fa02874651c9cf14f9139d8

Contents?: true

Size: 1 KB

Versions: 7

Compression:

Stored size: 1 KB

Contents

# encoding: utf-8
module TestServer
  module App
    class StreamingController < ApplicationController
      helpers Sinatra::Streaming

      before do
        param :base64, Boolean, default: false
      end

      helpers do
        def stream_data(&block)
          content_type :stream
          cache_control :no_cache, :must_revalidate

          stream(&block)
        end
      end

      configure do
        mime_type :stream, 'text/plain'
      end

      get '/' do
        redirect to('/default/')
      end

      get '/default/?:count?' do
        param :count, Integer, default: 10

        count = params[:count]

        stream_data do |out|
          out << encode { "Data #{count} times repeated" }

          count.times do |n|
            out << encode { "#{n + 1}: data" }
            sleep 1
          end
        end
      end

      get '/eicar/' do
        stream_data do |out|
          generate_eicar.each do |c|
            out << encode { c }
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
test_server-0.2.2 app/controllers/streaming_controller.rb
test_server-0.2.1 app/controllers/streaming_controller.rb
test_server-0.2.0 app/controllers/streaming_controller.rb
test_server-0.1.2 app/controllers/streaming_controller.rb
test_server-0.1.1 app/controllers/streaming_controller.rb
test_server-0.1.0 app/controllers/streaming_controller.rb
test_server-0.0.11 app/controllers/streaming_controller.rb