Sha256: b979b90baf092ca4710540ef995f36e8757282641c379b33a9f96737d870df1f

Contents?: true

Size: 1.48 KB

Versions: 4

Compression:

Stored size: 1.48 KB

Contents

module DockTest
  module DSL

    attr_reader :url
    # sets the test url
    # also creates a new webrick server process
    def url=(value)
      @url = value

      if localhost? && @server_thread.nil?
        require "rack"
        require 'webrick'

        ARGV.clear # clear ARGV as it is used by Rack to configure server

        server = WEBrick::HTTPServer.new(:Port => port, AccessLog: []).tap do |server|
          server.mount mount_path, Rack::Handler::WEBrick, Rack::Server.new.app
        end
        @server_thread = Thread.new { server.start }
        trap('INT') do
          server.shutdown
          exit
        end
      end
    end

    # oauth settings
    attr_accessor :oauth_consumer_key, :oauth_consumer_secret

    # if the current dock_test environment requires oauth
    def oauth?
      oauth_consumer_key && oauth_consumer_secret
    end

    def mount_path
      p = URI.parse(@url).path
      p.empty? ? '/' : p
    end

    def port
      URI.parse(@url).port
    end

    def localhost?
      @url && ['127.0.0.1', 'localhost'].include?(URI.parse(@url).host)
    end

    def skippy=(skippy)
      @skippy = skippy
    end

    def skippy?
      @skippy || false
    end

    def verify_ssl=(verify_ssl)
      @verify_ssl = verify_ssl
    end

    def verify_mode
      if @verify_ssl.nil? || @verify_ssl
        OpenSSL::SSL::VERIFY_PEER
      else
        OpenSSL::SSL::VERIFY_NONE
      end
    end

    def configure(&block)
      block.call(DockTest)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dock_test-0.4.8 lib/dock_test/dsl.rb
dock_test-0.4.6 lib/dock_test/dsl.rb
dock_test-0.4.5 lib/dock_test/dsl.rb
dock_test-0.4.0 lib/dock_test/dsl.rb