Sha256: 7d1d43e5fca1c77bb23e9b64c979a748b441a3300d6f30234885f790c2b439b9

Contents?: true

Size: 770 Bytes

Versions: 9

Compression:

Stored size: 770 Bytes

Contents

require 'json'

module Oxidized
  module API
    class Web
      require 'rack/handler'
      attr_reader :thread
      Rack::Handler::WEBrick = Rack::Handler.get(:puma)
      def initialize nodes, listen
        require 'oxidized/web/webapp'
        listen, uri = listen.split '/'
        addr, _, port = listen.rpartition ':'
        port, addr = addr, nil if not port
        uri = '/' + uri.to_s
        @opts = {
          Host: addr,
          Port: port,
        }
        WebApp.set :nodes, nodes
        @app = Rack::Builder.new do
          map uri do
            run WebApp
          end
        end
      end

      def run
        @thread = Thread.new do
          Rack::Handler::Puma.run @app, @opts
          exit!
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
oxidized-web-0.13.1 lib/oxidized/web.rb
oxidized-web-0.13.0 lib/oxidized/web.rb
oxidized-web-0.12.1 lib/oxidized/web.rb
oxidized-web-0.12.0 lib/oxidized/web.rb
oxidized-web-0.11.1 lib/oxidized/web.rb
oxidized-web-0.11.0 lib/oxidized/web.rb
oxidized-web-0.10.2 lib/oxidized/web.rb
oxidized-web-0.10.1 lib/oxidized/web.rb
oxidized-web-0.10.0 lib/oxidized/web.rb