Class: HH::Client

Inherits:
Object
  • Object
show all
Includes:
API, Request
Defined in:
lib/hh/client.rb

Constant Summary

Constants included from API

API::API_URL

Instance Method Summary collapse

Methods included from Request

#get

Methods included from API::Metro

#metro, #metro_line, #metro_station

Methods included from API::Region

#region, #regions

Methods included from API::Vacancy

#vacancies, #vacancy

Methods included from API::Schedule

#schedule

Methods included from API::Employer

#employer, #employer_addresses, #employers

Methods included from API::Currency

#currency

Methods included from API::Statistic

#statistic

Methods included from API::Employment

#employment

Methods included from API::Specialization

#specialization, #specializations

Methods included from API::Dictionaries

#dictionaries

Methods included from API::Industries

#industries

Methods included from API::EmployerVacancies

#employer_vacancies

Instance Method Details

#connection(options = {}) ⇒ Faraday::Connection

Parameters:

  • options (Hash) (defaults to: {})

Returns:

  • (Faraday::Connection)


35
36
37
38
39
40
# File 'lib/hh/client.rb', line 35

def connection(options={})
  conn_options = default_options(options)
  puts "OPTIONS:#{conn_options.inspect}" if ENV['DEBUG']

  @connection ||= Faraday.new(conn_options.merge(builder: stack(options)))
end

#default_middleware(options = {}) ⇒ Object

Parameters:

  • options (Hash) (defaults to: {})


9
10
11
12
13
14
15
16
# File 'lib/hh/client.rb', line 9

def default_middleware(options={})
  Proc.new do |conn|
    conn.request  :multipart
    conn.adapter  :net_http

    conn.response :logger if ENV['DEBUG']
  end
end

#stack(options = {}, &block) ⇒ Faraday::RackBuilder

Exposes middleware builder to facilitate custom stacks

Parameters:

  • options (Hash) (defaults to: {})

Returns:

  • (Faraday::RackBuilder)


23
24
25
26
27
28
29
30
31
# File 'lib/hh/client.rb', line 23

def stack(options={}, &block)
  @stack ||= begin
    if block_given?
      Faraday::RackBuilder.new(&block)
    else
      Faraday::RackBuilder.new(&default_middleware(options))
    end
  end
end