hh 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/hh.rb +13 -2
- data/lib/hh/API/vacancy.rb +11 -0
- data/lib/hh/API/vacancy_employer.rb +11 -0
- data/lib/hh/api.rb +3 -1
- data/lib/hh/version.rb +1 -1
- data/spec/fixtures/vacancy.json +1 -0
- data/spec/fixtures/vacancy_employer.json +1 -0
- data/spec/hh/api/employer_spec.rb +1 -1
- data/spec/hh/api/vacancy_spec.rb +26 -0
- data/spec/hh/api/vavancy_employer_spec.rb +27 -0
- metadata +11 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c80329a14c252850f9075913ed2488d8078ec63
|
4
|
+
data.tar.gz: 14e1a1f6cd8ddc6f1a44fea3df526fe3aba95312
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06683c208b8a67326283c03f6df6cfc5448948a631b061c581b42a2d4e7185d8a3eb715a759a9f3ecd6036cb5ff853287a7967eea4e63cae7ab1c391c3f5cce4
|
7
|
+
data.tar.gz: c773c68ea30504073737f8a693afc4f89e98bc3f8e09946640a2f57d4ff41016d5069b5f77f362c65eb07e92ac15f5808436b45f4e388a07da98c859c2995d09
|
data/lib/hh.rb
CHANGED
@@ -10,19 +10,30 @@ module HH
|
|
10
10
|
# Alias for Hh::Client.new
|
11
11
|
#
|
12
12
|
# @return [Hh::Client]
|
13
|
-
|
14
13
|
def client
|
15
14
|
HH::Client.new
|
16
15
|
end
|
16
|
+
|
17
|
+
# Delegate to HH::Client
|
18
|
+
def method_missing(method, *args, &block)
|
19
|
+
return super unless new.respond_to?(method)
|
20
|
+
new.send(method, *args, &block)
|
21
|
+
end
|
22
|
+
|
23
|
+
def respond_to?(method, include_private = false)
|
24
|
+
new.respond_to?(method, include_private) || super(method, include_private)
|
25
|
+
end
|
17
26
|
end
|
18
|
-
end
|
27
|
+
end #HH
|
19
28
|
|
29
|
+
require 'hh/API/vacancy_employer'
|
20
30
|
require 'hh/API/specialization'
|
21
31
|
require 'hh/API/employment'
|
22
32
|
require 'hh/API/statistic'
|
23
33
|
require 'hh/API/schedule'
|
24
34
|
require 'hh/API/currency'
|
25
35
|
require 'hh/API/employer'
|
36
|
+
require 'hh/API/vacancy'
|
26
37
|
require 'hh/API/region'
|
27
38
|
require 'hh/API/field'
|
28
39
|
require 'hh/API/metro'
|
data/lib/hh/api.rb
CHANGED
@@ -5,14 +5,16 @@ module HH
|
|
5
5
|
|
6
6
|
API_URL = "https://api.hh.ru/1/json/"
|
7
7
|
|
8
|
+
include VacancyEmployer
|
8
9
|
include Specialization
|
9
10
|
include Employment
|
10
11
|
include Statistic
|
11
12
|
include Currency
|
12
13
|
include Employer
|
13
14
|
include Schedule
|
15
|
+
include Vacancy
|
14
16
|
include Region
|
15
17
|
include Field
|
16
18
|
include Metro
|
17
19
|
end #API
|
18
|
-
end
|
20
|
+
end #HH
|
data/lib/hh/version.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
{"id":"2618300","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/vacancy/2618300/"},"alternate":{"type":"text/html","href":"http://hh.ru/vacancy/2618300"}},"name":"Верстальщик","employer":{"id":"1455","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/employer/1455/"},"alternate":{"type":"text/html","href":"http://hh.ru/employer/1455"}},"name":"HeadHunter","logos":{"links":{"small":{"href":"http://hh.ru/employer-logo/289027.png"},"medium":{"href":"http://hh.ru/employer-logo/289169.png"}}}},"update":{"timestamp":"1268919915"},"salary":{"from":1100,"to":1600,"currency":{"code":"USD","name":"USD"}},"region":{"id":"1002","name":"Минск"},"site":"http://hh.ru","schedule":{"id":"full","name":"полный день"},"employment":{"id":"0","name":"Полная занятость"},"experience":{"id":"between3And6","name":"3–6 лет"},"description":"<p>В компанию HeadHunter нужен верстальщик.</p> <div> <div> <div><strong><br /> </strong></div> <div><strong>Требования:</strong></div> <div> <ul> <li>Отличное знание HTML и CSS.</li> <li>Знание JavaScript, не библиотек, а именно JS.</li> <li>Опыт работы с XSLT</li> <li>Опыт работы с Python или другими серверсайд языками.</li> </ul> <div> </div> <div>Вы будете работать над проектом "hh.by". Оформление согласно ТК.</div> <div> </div> </div> </div> </div>","specializations":{"field":{"id":"1","specialization":[{"id":"10","name":"Web мастер"},{"id":"9","name":"Web инженер"}],"name":"Информационные технологии, интернет, телеком"}}}
|
@@ -0,0 +1 @@
|
|
1
|
+
[{"id":"7135086","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/vacancy/7135086/"},"alternate":{"type":"text/html","href":"http://hh.ru/vacancy/7135086"}},"name":"Java разработчик (Минск)","employer":{"id":"1455","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/employer/1455/"},"alternate":{"type":"text/html","href":"http://hh.ru/employer/1455"}},"name":"HeadHunter::Технический департамент","department":{"code":"hh-1455-TECH","link":[{"type":"text/html","href":"http://hh.ru/employer/1455?dpt=hh-1455-TECH"}],"name":"HeadHunter::Технический департамент"},"logos":{"links":{"small":{"href":"http://hh.ru/employer-logo/289027.png"},"medium":{"href":"http://hh.ru/employer-logo/289169.png"}}}},"update":{"timestamp":"1364703420"},"salary":{"from":2300,"to":3300,"currency":{"code":"USD","name":"USD"}},"region":{"id":"1002","name":"Минск"},"site":"http://hh.ru","address":{"lng":"27.579492","lat":"53.916286","city":"Минск","street":"улица Веры Хоружей","building":"1а"}},{"id":"7377610","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/vacancy/7377610/"},"alternate":{"type":"text/html","href":"http://hh.ru/vacancy/7377610"}},"name":"Менеджер по маркетингу и PR","employer":{"id":"1455","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/employer/1455/"},"alternate":{"type":"text/html","href":"http://hh.ru/employer/1455"}},"name":"HeadHunter::Департамент маркетинга","department":{"code":"hh-1455-MARK","link":[{"type":"text/html","href":"http://hh.ru/employer/1455?dpt=hh-1455-MARK"}],"name":"HeadHunter::Департамент маркетинга"},"logos":{"links":{"small":{"href":"http://hh.ru/employer-logo/289027.png"},"medium":{"href":"http://hh.ru/employer-logo/289169.png"}}}},"update":{"timestamp":"1363778372"},"salary":{"from":40000,"currency":{"code":"RUR","name":"руб."}},"region":{"id":"53","name":"Краснодар"},"site":"http://hh.ru"},{"id":"7459478","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/vacancy/7459478/"},"alternate":{"type":"text/html","href":"http://hh.ru/vacancy/7459478"}},"name":"Менеджер по продажам","employer":{"id":"1455","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/employer/1455/"},"alternate":{"type":"text/html","href":"http://hh.ru/employer/1455"}},"name":"HeadHunter::Департамент продаж","department":{"code":"hh-1455-SALE","link":[{"type":"text/html","href":"http://hh.ru/employer/1455?dpt=hh-1455-SALE"}],"name":"HeadHunter::Департамент продаж"},"logos":{"links":{"small":{"href":"http://hh.ru/employer-logo/289027.png"},"medium":{"href":"http://hh.ru/employer-logo/289169.png"}}}},"update":{"timestamp":"1364547112"},"salary":{"from":28000,"currency":{"code":"RUR","name":"руб."}},"region":{"id":"76","name":"Ростов-на-Дону"},"site":"http://hh.ru"},{"id":"7659318","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/vacancy/7659318/"},"alternate":{"type":"text/html","href":"http://hh.ru/vacancy/7659318"}},"name":"Менеджер по продажам","employer":{"id":"1455","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/employer/1455/"},"alternate":{"type":"text/html","href":"http://hh.ru/employer/1455"}},"name":"HeadHunter::Департамент продаж","department":{"code":"hh-1455-SALE","link":[{"type":"text/html","href":"http://hh.ru/employer/1455?dpt=hh-1455-SALE"}],"name":"HeadHunter::Департамент продаж"},"logos":{"links":{"small":{"href":"http://hh.ru/employer-logo/289027.png"},"medium":{"href":"http://hh.ru/employer-logo/289169.png"}}}},"update":{"timestamp":"1364817780"},"salary":{"from":600,"currency":{"code":"USD","name":"USD"}},"region":{"id":"1002","name":"Минск"},"site":"http://hh.ru"},{"id":"7559472","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/vacancy/7559472/"},"alternate":{"type":"text/html","href":"http://career.ru/vacancy/7559472"}},"name":"Стажер в отдел маркетинга (Event-направление)","employer":{"id":"1455","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/employer/1455/"},"alternate":{"type":"text/html","href":"http://hh.ru/employer/1455"}},"name":"HeadHunter::Департамент маркетинга","department":{"code":"hh-1455-MARK","link":[{"type":"text/html","href":"http://hh.ru/employer/1455?dpt=hh-1455-MARK"}],"name":"HeadHunter::Департамент маркетинга"},"logos":{"links":{"small":{"href":"http://hh.ru/employer-logo/289027.png"},"medium":{"href":"http://hh.ru/employer-logo/289169.png"}}}},"update":{"timestamp":"1363591253"},"salary":null,"region":{"id":"2","name":"Санкт-Петербург"},"site":"http://career.ru","address":{"lng":"30.314098","lat":"59.912269","city":"Санкт-Петербург","street":"6-я Красноармейская улица","building":{}}},{"id":"7165853","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/vacancy/7165853/"},"alternate":{"type":"text/html","href":"http://hh.ru/vacancy/7165853"}},"name":"Менеджер по продажам","employer":{"id":"1455","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/employer/1455/"},"alternate":{"type":"text/html","href":"http://hh.ru/employer/1455"}},"name":"HeadHunter::Департамент продаж","department":{"code":"hh-1455-SALE","link":[{"type":"text/html","href":"http://hh.ru/employer/1455?dpt=hh-1455-SALE"}],"name":"HeadHunter::Департамент продаж"},"logos":{"links":{"small":{"href":"http://hh.ru/employer-logo/289027.png"},"medium":{"href":"http://hh.ru/employer-logo/289169.png"}}}},"update":{"timestamp":"1364790051"},"salary":null,"region":{"id":"3","name":"Екатеринбург"},"site":"http://hh.ru"},{"id":"7568879","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/vacancy/7568879/"},"alternate":{"type":"text/html","href":"http://career.ru/vacancy/7568879"}},"name":"Специалист технической поддержки соискателей","employer":{"id":"1455","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/employer/1455/"},"alternate":{"type":"text/html","href":"http://hh.ru/employer/1455"}},"name":"HeadHunter::Технический департамент","department":{"code":"hh-1455-TECH","link":[{"type":"text/html","href":"http://hh.ru/employer/1455?dpt=hh-1455-TECH"}],"name":"HeadHunter::Технический департамент"},"logos":{"links":{"small":{"href":"http://hh.ru/employer-logo/289027.png"},"medium":{"href":"http://hh.ru/employer-logo/289169.png"}}}},"update":{"timestamp":"1364817317"},"salary":{"from":15000,"currency":{"code":"RUR","name":"руб."}},"region":{"id":"112","name":"Ярославль"},"site":"http://career.ru"},{"id":"7659055","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/vacancy/7659055/"},"alternate":{"type":"text/html","href":"http://hh.ru/vacancy/7659055"}},"name":"Системный администратор","employer":{"id":"1455","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/employer/1455/"},"alternate":{"type":"text/html","href":"http://hh.ru/employer/1455"}},"name":"HeadHunter::Отдел информационных технологий","department":{"code":"hh-1455-IT","link":[{"type":"text/html","href":"http://hh.ru/employer/1455?dpt=hh-1455-IT"}],"name":"HeadHunter::Отдел информационных технологий"},"logos":{"links":{"small":{"href":"http://hh.ru/employer-logo/289027.png"},"medium":{"href":"http://hh.ru/employer-logo/289169.png"}}}},"update":{"timestamp":"1364816908"},"salary":{"from":300,"currency":{"code":"USD","name":"USD"}},"region":{"id":"1002","name":"Минск"},"site":"http://hh.ru"},{"id":"7604563","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/vacancy/7604563/"},"alternate":{"type":"text/html","href":"http://hh.ru/vacancy/7604563"}},"name":"HR менеджер / спикер","employer":{"id":"1455","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/employer/1455/"},"alternate":{"type":"text/html","href":"http://hh.ru/employer/1455"}},"name":"HeadHunter::Департамент персонала","department":{"code":"hh-1455-HR","link":[{"type":"text/html","href":"http://hh.ru/employer/1455?dpt=hh-1455-HR"}],"name":"HeadHunter::Департамент персонала"},"logos":{"links":{"small":{"href":"http://hh.ru/employer-logo/289027.png"},"medium":{"href":"http://hh.ru/employer-logo/289169.png"}}}},"update":{"timestamp":"1364616835"},"salary":null,"region":{"id":"115","name":"Киев"},"site":"http://hh.ru","address":{"metro":{"line":{"id":"56","color":"","name":"Куреневско-Красноармейская","station":{"id":"339","path":"56/339","color":"","name":"Контрактовая площадь"}}}}},{"id":"7087563","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/vacancy/7087563/"},"alternate":{"type":"text/html","href":"http://hh.ru/vacancy/7087563"}},"name":"Специалист по автоматизации тестирования","employer":{"id":"1455","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/employer/1455/"},"alternate":{"type":"text/html","href":"http://hh.ru/employer/1455"}},"name":"HeadHunter::Технический департамент","department":{"code":"hh-1455-TECH","link":[{"type":"text/html","href":"http://hh.ru/employer/1455?dpt=hh-1455-TECH"}],"name":"HeadHunter::Технический департамент"},"logos":{"links":{"small":{"href":"http://hh.ru/employer-logo/289027.png"},"medium":{"href":"http://hh.ru/employer-logo/289169.png"}}}},"update":{"timestamp":"1364368199"},"salary":{"from":1600,"to":2600,"currency":{"code":"USD","name":"USD"}},"region":{"id":"1002","name":"Минск"},"site":"http://hh.ru","address":{"lng":"27.579492","lat":"53.916286","city":"Минск","street":"улица Веры Хоружей","building":"1а"}},{"id":"7332120","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/vacancy/7332120/"},"alternate":{"type":"text/html","href":"http://hh.ru/vacancy/7332120"}},"name":"Менеджер проекта \"Консалтинговый центр\"","employer":{"id":"1455","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/employer/1455/"},"alternate":{"type":"text/html","href":"http://hh.ru/employer/1455"}},"name":"HeadHunter::Департамент маркетинга","department":{"code":"hh-1455-MARK","link":[{"type":"text/html","href":"http://hh.ru/employer/1455?dpt=hh-1455-MARK"}],"name":"HeadHunter::Департамент маркетинга"},"logos":{"links":{"small":{"href":"http://hh.ru/employer-logo/289027.png"},"medium":{"href":"http://hh.ru/employer-logo/289169.png"}}}},"update":{"timestamp":"1364616763"},"salary":null,"region":{"id":"1002","name":"Минск"},"site":"http://hh.ru"},{"id":"7634458","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/vacancy/7634458/"},"alternate":{"type":"text/html","href":"http://career.ru/vacancy/7634458"}},"name":"Стажер","employer":{"id":"1455","links":{"self":{"type":"application/json","href":"http://api.hh.ru/1/json/employer/1455/"},"alternate":{"type":"text/html","href":"http://hh.ru/employer/1455"}},"name":"HeadHunter::Департамент маркетинга","department":{"code":"hh-1455-MARK","link":[{"type":"text/html","href":"http://hh.ru/employer/1455?dpt=hh-1455-MARK"}],"name":"HeadHunter::Департамент маркетинга"},"logos":{"links":{"small":{"href":"http://hh.ru/employer-logo/289027.png"},"medium":{"href":"http://hh.ru/employer-logo/289169.png"}}}},"update":{"timestamp":"1364547096"},"salary":{"from":10000,"to":15000,"currency":{"code":"RUR","name":"руб."}},"region":{"id":"3","name":"Екатеринбург"},"site":"http://career.ru"}]
|
@@ -0,0 +1,26 @@
|
|
1
|
+
#enoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe HH::API::Vacancy do
|
6
|
+
let(:client) { HH::Client.new }
|
7
|
+
let(:vacancy_id) { 2618300 }
|
8
|
+
let(:request_path) { "vacancy/#{vacancy_id}" }
|
9
|
+
|
10
|
+
describe "#vacancy" do
|
11
|
+
before do
|
12
|
+
stub_get(request_path).to_return(body: fixture("vacancy.json"), headers: {content_type: "application/json; charset=utf-8"})
|
13
|
+
end
|
14
|
+
|
15
|
+
it "requests the correct resource" do
|
16
|
+
client.vacancy(vacancy_id)
|
17
|
+
expect(a_get(request_path)).to have_been_made
|
18
|
+
end
|
19
|
+
|
20
|
+
it "returns the requested metro list" do
|
21
|
+
vacancy = client.vacancy(vacancy_id)
|
22
|
+
expect(vacancy).to be_an Hash
|
23
|
+
expect(vacancy[:name]).to eq "Верстальщик"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe HH::API::VacancyEmployer do
|
6
|
+
let(:client) { HH::Client.new }
|
7
|
+
let(:vacancy_id) { 7135086 }
|
8
|
+
let(:request_path) { "vacancy/employer/#{vacancy_id}" }
|
9
|
+
|
10
|
+
describe "#vavancy_employer" do
|
11
|
+
before do
|
12
|
+
stub_get(request_path).to_return(body: fixture("vacancy_employer.json"), headers: {content_type: "application/json; charset=utf-8"})
|
13
|
+
end
|
14
|
+
|
15
|
+
it "requests the correct resource" do
|
16
|
+
client.vavancy_employer(vacancy_id)
|
17
|
+
expect(a_get(request_path)).to have_been_made
|
18
|
+
end
|
19
|
+
|
20
|
+
it "returns the requested metro list" do
|
21
|
+
vavancy_employer = client.vavancy_employer(vacancy_id)
|
22
|
+
expect(vavancy_employer).to be_an Array
|
23
|
+
expect(vavancy_employer.first).to be_an Hash
|
24
|
+
expect(vavancy_employer.first[:name]).to eq "Java разработчик (Минск)"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Igor Varavko
|
@@ -132,6 +132,8 @@ files:
|
|
132
132
|
- lib/hh/API/schedule.rb
|
133
133
|
- lib/hh/API/specialization.rb
|
134
134
|
- lib/hh/API/statistic.rb
|
135
|
+
- lib/hh/API/vacancy.rb
|
136
|
+
- lib/hh/API/vacancy_employer.rb
|
135
137
|
- lib/hh/api.rb
|
136
138
|
- lib/hh/client.rb
|
137
139
|
- lib/hh/request.rb
|
@@ -150,6 +152,8 @@ files:
|
|
150
152
|
- spec/fixtures/specialization.json
|
151
153
|
- spec/fixtures/specialization_all.json
|
152
154
|
- spec/fixtures/statistic.json
|
155
|
+
- spec/fixtures/vacancy.json
|
156
|
+
- spec/fixtures/vacancy_employer.json
|
153
157
|
- spec/hh/api/currency_spec.rb
|
154
158
|
- spec/hh/api/employer_spec.rb
|
155
159
|
- spec/hh/api/employment_spec.rb
|
@@ -159,6 +163,8 @@ files:
|
|
159
163
|
- spec/hh/api/schedule_spec.rb
|
160
164
|
- spec/hh/api/specialization_spec.rb
|
161
165
|
- spec/hh/api/statistic_spec.rb
|
166
|
+
- spec/hh/api/vacancy_spec.rb
|
167
|
+
- spec/hh/api/vavancy_employer_spec.rb
|
162
168
|
- spec/hh/client_spec.rb
|
163
169
|
- spec/hh_spec.rb
|
164
170
|
- spec/spec_helper.rb
|
@@ -201,6 +207,8 @@ test_files:
|
|
201
207
|
- spec/fixtures/specialization.json
|
202
208
|
- spec/fixtures/specialization_all.json
|
203
209
|
- spec/fixtures/statistic.json
|
210
|
+
- spec/fixtures/vacancy.json
|
211
|
+
- spec/fixtures/vacancy_employer.json
|
204
212
|
- spec/hh/api/currency_spec.rb
|
205
213
|
- spec/hh/api/employer_spec.rb
|
206
214
|
- spec/hh/api/employment_spec.rb
|
@@ -210,6 +218,8 @@ test_files:
|
|
210
218
|
- spec/hh/api/schedule_spec.rb
|
211
219
|
- spec/hh/api/specialization_spec.rb
|
212
220
|
- spec/hh/api/statistic_spec.rb
|
221
|
+
- spec/hh/api/vacancy_spec.rb
|
222
|
+
- spec/hh/api/vavancy_employer_spec.rb
|
213
223
|
- spec/hh/client_spec.rb
|
214
224
|
- spec/hh_spec.rb
|
215
225
|
- spec/spec_helper.rb
|