capybara-webkit/lib/capybara/webkit/configuration.rb

105 lines
2.2 KiB
Ruby

module Capybara
module Webkit
class Configuration
class << self
private
def instance
@instance ||= new
end
end
def self.to_hash
instance.freeze.to_hash
end
def self.modify
if instance.frozen?
raise "All configuration must take place before the driver starts"
else
yield instance
end
end
attr_accessor :allowed_urls
attr_writer :block_unknown_urls
attr_accessor :blocked_urls
attr_accessor :debug
attr_writer :ignore_ssl_errors
attr_accessor :proxy
attr_accessor :stderr
attr_accessor :timeout
attr_writer :skip_image_loading
attr_accessor :raise_javascript_errors
def initialize
@allowed_urls = []
@blocked_urls = []
@block_unknown_urls = false
@debug = false
@ignore_ssl_errors = false
@proxy = nil
@skip_image_loading = false
@stderr = $stderr
@timeout = -1
@raise_javascript_errors = false
end
def allow_url(url)
@allowed_urls << url
end
def block_url(url)
@blocked_urls << url
end
def block_unknown_urls
@block_unknown_urls = true
end
def block_unknown_urls?
@block_unknown_urls
end
def allow_unknown_urls
allow_url("*")
end
def ignore_ssl_errors
@ignore_ssl_errors = true
end
def ignore_ssl_errors?
@ignore_ssl_errors
end
def skip_image_loading
@skip_image_loading = true
end
def skip_image_loading?
@skip_image_loading
end
def use_proxy(proxy)
@proxy = proxy
end
def to_hash
{
allowed_urls: allowed_urls,
block_unknown_urls: block_unknown_urls?,
blocked_urls: blocked_urls,
debug: debug,
ignore_ssl_errors: ignore_ssl_errors?,
proxy: proxy,
skip_image_loading: skip_image_loading?,
stderr: stderr,
timeout: timeout,
raise_javascript_errors: raise_javascript_errors,
}
end
end
end
end