Class: Zenrows::Configuration

Inherits:
Object
  • Object
show all
Includes:
MonitorMixin
Defined in:
lib/zenrows/configuration.rb

Overview

Global configuration for Zenrows client

Examples:

Configure with block

Zenrows.configure do |config|
  config.api_key = 'YOUR_API_KEY'
  config.host = 'superproxy.zenrows.com'
  config.port = 1337
end

Configure directly

Zenrows.configuration.api_key = 'YOUR_API_KEY'

Since:

  • 0.1.0

Constant Summary collapse

DEFAULTS =

Default configuration values

Since:

  • 0.1.0

{
  host: "superproxy.zenrows.com",
  port: 1337,
  api_endpoint: "https://api.zenrows.com/v1/",
  connect_timeout: 5,
  read_timeout: 180,
  backend: :http_rb
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.

Since:

  • 0.1.0



58
59
60
61
# File 'lib/zenrows/configuration.rb', line 58

def initialize
  super # Initialize MonitorMixin
  reset!
end

Instance Attribute Details

#api_endpointString

Returns ZenRows API endpoint for ApiClient.

Returns:

  • (String)

    ZenRows API endpoint for ApiClient

Since:

  • 0.1.0



46
47
48
# File 'lib/zenrows/configuration.rb', line 46

def api_endpoint
  @api_endpoint
end

#api_keyString?

Returns ZenRows API key (required).

Returns:

  • (String, nil)

    ZenRows API key (required)

Since:

  • 0.1.0



25
26
27
# File 'lib/zenrows/configuration.rb', line 25

def api_key
  @api_key
end

#backendSymbol

Returns HTTP backend to use (:http_rb, :faraday, :net_http).

Returns:

  • (Symbol)

    HTTP backend to use (:http_rb, :faraday, :net_http)

Since:

  • 0.1.0



40
41
42
# File 'lib/zenrows/configuration.rb', line 40

def backend
  @backend
end

#connect_timeoutInteger

Returns Default connection timeout in seconds.

Returns:

  • (Integer)

    Default connection timeout in seconds

Since:

  • 0.1.0



34
35
36
# File 'lib/zenrows/configuration.rb', line 34

def connect_timeout
  @connect_timeout
end

#hostString

Returns ZenRows proxy host.

Returns:

  • (String)

    ZenRows proxy host

Since:

  • 0.1.0



28
29
30
# File 'lib/zenrows/configuration.rb', line 28

def host
  @host
end

#loggerLogger?

Returns Logger instance for debug output.

Returns:

  • (Logger, nil)

    Logger instance for debug output

Since:

  • 0.1.0



43
44
45
# File 'lib/zenrows/configuration.rb', line 43

def logger
  @logger
end

#portInteger

Returns ZenRows proxy port.

Returns:

  • (Integer)

    ZenRows proxy port

Since:

  • 0.1.0



31
32
33
# File 'lib/zenrows/configuration.rb', line 31

def port
  @port
end

#read_timeoutInteger

Returns Default read timeout in seconds.

Returns:

  • (Integer)

    Default read timeout in seconds

Since:

  • 0.1.0



37
38
39
# File 'lib/zenrows/configuration.rb', line 37

def read_timeout
  @read_timeout
end

Instance Method Details

#reset!void

This method returns an undefined value.

Reset configuration to defaults

Since:

  • 0.1.0



66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/zenrows/configuration.rb', line 66

def reset!
  synchronize do
    @api_key = nil
    @host = DEFAULTS[:host]
    @port = DEFAULTS[:port]
    @api_endpoint = DEFAULTS[:api_endpoint]
    @connect_timeout = DEFAULTS[:connect_timeout]
    @read_timeout = DEFAULTS[:read_timeout]
    @backend = DEFAULTS[:backend]
    @logger = nil
  end
end

#to_hHash

Convert configuration to hash

Returns:

  • (Hash)

    configuration as hash

Since:

  • 0.1.0



102
103
104
105
106
107
108
109
110
111
112
# File 'lib/zenrows/configuration.rb', line 102

def to_h
  {
    api_key: api_key,
    host: host,
    port: port,
    api_endpoint: api_endpoint,
    connect_timeout: connect_timeout,
    read_timeout: read_timeout,
    backend: backend
  }
end

#valid?Boolean

Check if configuration is valid

Returns:

  • (Boolean)

    true if configuration is valid

Since:

  • 0.1.0



92
93
94
95
96
97
# File 'lib/zenrows/configuration.rb', line 92

def valid?
  validate!
  true
rescue ConfigurationError
  false
end

#validate!true

Validate that required configuration is present

Returns:

  • (true)

    if configuration is valid

Raises:

Since:

  • 0.1.0



83
84
85
86
87
# File 'lib/zenrows/configuration.rb', line 83

def validate!
  raise ConfigurationError, "api_key is required" if api_key.nil? || api_key.empty?

  true
end