mindmatch 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mind_match/client.rb +6 -46
- data/lib/mind_match/query_builder.rb +43 -0
- data/lib/mind_match/version.rb +1 -1
- data/lib/mind_match.rb +1 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a5e6cb0f4091f4fa32cb40f19b4d06d3abef15f
|
4
|
+
data.tar.gz: e2fd55af13ef1ab1692105c31c15d1e852d9ee50
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd0605267030b41b7f531b07193ee22f1f79deec0f2801e6f4781e7cc75efb5d92977a7eb80af169f50558668057c219d6c69eb20d149ecc7de2178fab316d10
|
7
|
+
data.tar.gz: '085d0bf5b3d5bceb9d6802879b1303064ae6dc7d5b0d2f72a929904da2f3c18421f012d6673c2cd057383d7e3dc4930054cc60bc5e13c8abaa9d49dbdad032fb'
|
data/lib/mind_match/client.rb
CHANGED
@@ -5,48 +5,7 @@ module MindMatch
|
|
5
5
|
class ArgumentError < StandardError; end
|
6
6
|
class Unauthorized < StandardError; end
|
7
7
|
class UnexpectedError < StandardError; end
|
8
|
-
|
9
|
-
class QueryBuilder
|
10
|
-
def initialize
|
11
|
-
@fields = {}
|
12
|
-
end
|
13
|
-
|
14
|
-
def build
|
15
|
-
@fields = @fields.freeze
|
16
|
-
self
|
17
|
-
end
|
18
|
-
|
19
|
-
def to_h
|
20
|
-
Hash[
|
21
|
-
fields.map { |k, _v| [k, []] }
|
22
|
-
]
|
23
|
-
end
|
24
|
-
|
25
|
-
def to_s
|
26
|
-
''.tap do |s|
|
27
|
-
fields.each do |k, v|
|
28
|
-
s << "#{k} {\n"
|
29
|
-
s << v.join("\n")
|
30
|
-
s << "}\n"
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
private
|
36
|
-
|
37
|
-
attr_reader :fields
|
38
|
-
|
39
|
-
def method_missing(m, *args, &block)
|
40
|
-
method = m.to_s
|
41
|
-
if method.start_with?('with_')
|
42
|
-
key = method.split('with_')[1]
|
43
|
-
@fields[key] = args[0]
|
44
|
-
self
|
45
|
-
else
|
46
|
-
super(m, *args, &block)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
8
|
+
class RequestEntityTooLarge < StandardError; end
|
50
9
|
|
51
10
|
class Client
|
52
11
|
DEFAULT_ENDPOINT = 'https://api.mindmatch.ai'.freeze
|
@@ -136,7 +95,7 @@ module MindMatch
|
|
136
95
|
end
|
137
96
|
|
138
97
|
def positionql(position)
|
139
|
-
position =
|
98
|
+
position = stringify(position)
|
140
99
|
<<-EOS.split.join(" ")
|
141
100
|
{
|
142
101
|
refId: "#{value(position['id'])}",
|
@@ -147,7 +106,7 @@ module MindMatch
|
|
147
106
|
end
|
148
107
|
|
149
108
|
def companiesql(company)
|
150
|
-
company =
|
109
|
+
company = stringify(company)
|
151
110
|
if company.has_key?("positions")
|
152
111
|
<<-EOS.split.join(" ")
|
153
112
|
{
|
@@ -173,7 +132,7 @@ module MindMatch
|
|
173
132
|
end
|
174
133
|
|
175
134
|
def talentql(tal)
|
176
|
-
tal =
|
135
|
+
tal = stringify(tal)
|
177
136
|
<<-EOS.split.join(" ")
|
178
137
|
{
|
179
138
|
refId: "#{value(tal['id'])}",
|
@@ -200,11 +159,12 @@ module MindMatch
|
|
200
159
|
case raw_response.status
|
201
160
|
when 400 then raise(ArgumentError, raw_response.body)
|
202
161
|
when 401 then raise(Unauthorized, raw_response.body)
|
162
|
+
when 413 then raise(RequestEntityTooLarge, raw_response.body)
|
203
163
|
else raise(UnexpectedError, raw_response.status, raw_response.body)
|
204
164
|
end
|
205
165
|
end
|
206
166
|
|
207
|
-
def
|
167
|
+
def stringify(hash)
|
208
168
|
JSON.parse(JSON.generate(hash))
|
209
169
|
end
|
210
170
|
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module MindMatch
|
2
|
+
class QueryBuilder
|
3
|
+
def initialize
|
4
|
+
@fields = {}
|
5
|
+
end
|
6
|
+
|
7
|
+
def build
|
8
|
+
@fields = @fields.freeze
|
9
|
+
self
|
10
|
+
end
|
11
|
+
|
12
|
+
def to_h
|
13
|
+
Hash[
|
14
|
+
fields.map { |k, _v| [k, []] }
|
15
|
+
]
|
16
|
+
end
|
17
|
+
|
18
|
+
def to_s
|
19
|
+
''.tap do |s|
|
20
|
+
fields.each do |k, v|
|
21
|
+
s << "#{k} {\n"
|
22
|
+
s << v.join("\n")
|
23
|
+
s << "}\n"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
attr_reader :fields
|
31
|
+
|
32
|
+
def method_missing(m, *args, &block)
|
33
|
+
method = m.to_s
|
34
|
+
if method.start_with?('with_')
|
35
|
+
key = method.split('with_')[1]
|
36
|
+
@fields[key] = args[0]
|
37
|
+
self
|
38
|
+
else
|
39
|
+
super(m, *args, &block)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/lib/mind_match/version.rb
CHANGED
data/lib/mind_match.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mindmatch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MindMatch
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2017-10-
|
13
|
+
date: 2017-10-06 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: faraday
|
@@ -116,6 +116,7 @@ files:
|
|
116
116
|
- bin/setup
|
117
117
|
- lib/mind_match.rb
|
118
118
|
- lib/mind_match/client.rb
|
119
|
+
- lib/mind_match/query_builder.rb
|
119
120
|
- lib/mind_match/version.rb
|
120
121
|
- lib/mindmatch.rb
|
121
122
|
- mindmatch.gemspec
|
@@ -139,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
140
|
version: '0'
|
140
141
|
requirements: []
|
141
142
|
rubyforge_project:
|
142
|
-
rubygems_version: 2.
|
143
|
+
rubygems_version: 2.5.2
|
143
144
|
signing_key:
|
144
145
|
specification_version: 4
|
145
146
|
summary: MindMatch api client library for Ruby
|