Sha256: ab7748c94fa00a733edf1e42ad24726ae4e49368834f986b2787d87a4a9a4f20

Contents?: true

Size: 827 Bytes

Versions: 8

Compression:

Stored size: 827 Bytes

Contents

require 'rackup/server'
class Rack::App::CLI::Fetcher::Server < ::Rackup::Server

  def get_rack_app
    app_class = self.app
    last_app = nil
    until app_class.is_a?(Class) && app_class <= Rack::App
      raise if app_class.__id__ == last_app.__id__

      app_class.instance_variables.each do |ivar|
        value = app_class.instance_variable_get(ivar)
        if value.respond_to?(:call) and not [Method, Proc, UnboundMethod].include?(value.class)
          app_class = value
        end
      end

      last_app = app_class
    end
    app_class
  rescue
  end

  Abort = Class.new(StandardError)

  def app
    super
  rescue Abort
    Class.new(Rack::App)
  end

  def abort(*messages)
    raise(Abort)
  end

  class Options
    def parse!(argv)
      {}
    end
  end

  def opt_parser
    Options.new
  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rack-app-11.0.2 lib/rack/app/cli/fetcher/server.rb
rack-app-11.0.1 lib/rack/app/cli/fetcher/server.rb
rack-app-11.0.0 lib/rack/app/cli/fetcher/server.rb
rack-app-10.0.0 lib/rack/app/cli/fetcher/server.rb
rack-app-9.0.0 lib/rack/app/cli/fetcher/server.rb
rack-app-8.1.0 lib/rack/app/cli/fetcher/server.rb
rack-app-8.0.1 lib/rack/app/cli/fetcher/server.rb
rack-app-8.0.0 lib/rack/app/cli/fetcher/server.rb