Module: Sink

Defined in:
lib/sink.rb,
lib/sink/tag.rb,
lib/sink/keys.rb,
lib/sink/link.rb,
lib/sink/page.rb,
lib/sink/error.rb,
lib/sink/client.rb,
lib/sink/version.rb

Defined Under Namespace

Modules: Keys Classes: Client, Configuration, Conflict, ConnectionError, Error, Forbidden, Link, NotFound, Page, RateLimited, ServerError, StorageNotReady, Tag, TimeoutError, Unauthorized, ValidationError

Constant Summary collapse

CLIENT_MUTEX =
Mutex.new
VERSION =
"0.2.1"

Class Method Summary collapse

Class Method Details

.clientObject



37
38
39
40
41
# File 'lib/sink.rb', line 37

def client
  return @client if @client

  CLIENT_MUTEX.synchronize { @client ||= Client.new(**configuration.to_h) }
end

.configurationObject



29
30
31
32
33
34
35
# File 'lib/sink.rb', line 29

def configuration
  return @configuration if @configuration

  CLIENT_MUTEX.synchronize do
    @configuration ||= Configuration.new(open_timeout: 5, read_timeout: 30)
  end
end

.configure {|configured| ... } ⇒ Object

Yields:

  • (configured)


17
18
19
20
21
22
23
24
25
26
27
# File 'lib/sink.rb', line 17

def configure
  configured = configuration.dup
  yield configured

  CLIENT_MUTEX.synchronize do
    @configuration = configured
    @client = nil
  end

  configured
end