Sha256: ebcc5c3c5d46c05f24a3e26ba0335f224087709e7a156b98872d953a83b82e61

Contents?: true

Size: 1.08 KB

Versions: 44

Compression:

Stored size: 1.08 KB

Contents

require "rack/mime"
require "mini_mime"

class Jets::PublicController < Jets::Controller::Base
  layout false
  internal true

  def show
    catchall = params[:catchall].blank? ? 'index.html' : params[:catchall]
    public_path = Jets.root + "public"
    catchall_path = "#{public_path}/#{catchall}"

    if File.exist?(catchall_path)
      content_type = Rack::Mime.mime_type(File.extname(catchall_path))
      binary = !MiniMime.lookup_by_filename(catchall_path).content_type.include?("text")

      # For binary support to work, the client also has to send the right Accept header.
      # And the media type has been to added to api gateway.
      # Cavaet: adding * to as the media type breaks regular form submission.
      # All form submission gets treated as binary.
      if binary
        encoded_content = Base64.encode64(IO.read(catchall_path))
        render plain: encoded_content, content_type: content_type, base64: true
      else
        render file: catchall_path, content_type: content_type
      end
    else
      render file: "#{public_path}/404", status: 404
    end
  end
end

Version data entries

44 entries across 44 versions & 2 rubygems

Version Path
jets-4.0.12 lib/jets/internal/app/controllers/jets/public_controller.rb
jets-4.0.11 lib/jets/internal/app/controllers/jets/public_controller.rb
jets-4.0.10 lib/jets/internal/app/controllers/jets/public_controller.rb
jets-4.0.9 lib/jets/internal/app/controllers/jets/public_controller.rb
jets-4.0.8 lib/jets/internal/app/controllers/jets/public_controller.rb
jets-4.0.7 lib/jets/internal/app/controllers/jets/public_controller.rb
jets-4.0.6 lib/jets/internal/app/controllers/jets/public_controller.rb
jets-4.0.5 lib/jets/internal/app/controllers/jets/public_controller.rb
jets-4.0.4 lib/jets/internal/app/controllers/jets/public_controller.rb
jets-4.0.3 lib/jets/internal/app/controllers/jets/public_controller.rb
jets-4.0.2 lib/jets/internal/app/controllers/jets/public_controller.rb
jets-4.0.1 lib/jets/internal/app/controllers/jets/public_controller.rb
jets-4.0.0 lib/jets/internal/app/controllers/jets/public_controller.rb
jets-3.2.2 lib/jets/internal/app/controllers/jets/public_controller.rb
jets-3.2.1 lib/jets/internal/app/controllers/jets/public_controller.rb
jets.benforeva-3.0.17.pre.mount.pre.fix lib/jets/internal/app/controllers/jets/public_controller.rb
jets-3.2.0 lib/jets/internal/app/controllers/jets/public_controller.rb
jets-3.1.5 lib/jets/internal/app/controllers/jets/public_controller.rb
jets-3.1.4 lib/jets/internal/app/controllers/jets/public_controller.rb
jets-3.1.3 lib/jets/internal/app/controllers/jets/public_controller.rb