mindmatch 0.0.2 → 0.0.3
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/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
|