Module: Tea

Defined in:
lib/tea_core.rb

Overview

The Tea module

Defined Under Namespace

Classes: Error, Model, RetryError, UnableRetryError

Constant Summary collapse

VERSION =
'0.0.1'

Class Method Summary collapse

Class Method Details

.allow_retry(_retry_policy, retry_times, _now) ⇒ Object



11
12
13
14
15
16
# File 'lib/tea_core.rb', line 11

def allow_retry(_retry_policy, retry_times, _now)
  # TODO
  return false if retry_times > 2

  true
end

.do_request(request) ⇒ Object



99
100
101
102
103
104
105
106
107
# File 'lib/tea_core.rb', line 99

def do_request(request)
  uri = to_uri(request)
  case request['method'].downcase || 'get'
  when 'get'
    return Net::HTTP.get_response(uri)
  else
    puts 'default'
  end
end

.get_backoff_time(_policy, _times) ⇒ Object



71
72
73
# File 'lib/tea_core.rb', line 71

def get_backoff_time(_policy, _times)
  0
end

.retryable?(err) ⇒ Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/tea_core.rb', line 63

def retryable?(err)
  err.instance_of?(RetryError)
end

.to_uri(req) ⇒ Object



87
88
89
90
91
92
93
94
95
96
97
# File 'lib/tea_core.rb', line 87

def to_uri(req)
  type = req['protocol'] == 'https' ? URI::HTTPS : URI::HTTP
  uri = type.build(
    host: req['headers']['host'],
    path: req['pathname'],
    query: URI.encode_www_form(req['query']),
    fragment: ''
  )
  uri.port = req['port'] if req['port']
  uri
end

.unable_retry_error(request) ⇒ Object



67
68
69
# File 'lib/tea_core.rb', line 67

def unable_retry_error(request)
  # TODO
end