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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 94ab080d96c28d20727ca55a2f9d3162abfcf3f2
4
- data.tar.gz: eec31b6509ecd098d280402e04c17aa76752b4c7
3
+ metadata.gz: 7a5e6cb0f4091f4fa32cb40f19b4d06d3abef15f
4
+ data.tar.gz: e2fd55af13ef1ab1692105c31c15d1e852d9ee50
5
5
  SHA512:
6
- metadata.gz: 597d1a16bcb73924df86ee86f099ca48882d2d5784bcf76096b457e42093b051381804d043e08f242f4d1e795f528ed7d222edc2a04e01ccf260591a2f6fe723
7
- data.tar.gz: c022ec969c2e50d599e8c46375dc0b53ed150ecda6bb11d7602c175e111aeeea8879ca8d11f6193481910b3528bfd31935ff76921a40f34dfac6e1349a731b30
6
+ metadata.gz: fd0605267030b41b7f531b07193ee22f1f79deec0f2801e6f4781e7cc75efb5d92977a7eb80af169f50558668057c219d6c69eb20d149ecc7de2178fab316d10
7
+ data.tar.gz: '085d0bf5b3d5bceb9d6802879b1303064ae6dc7d5b0d2f72a929904da2f3c18421f012d6673c2cd057383d7e3dc4930054cc60bc5e13c8abaa9d49dbdad032fb'
@@ -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 = stringify_keys(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 = stringify_keys(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 = stringify_keys(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 stringify_keys(hash)
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
@@ -1,3 +1,3 @@
1
1
  module MindMatch
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/mind_match.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'mind_match/version'
2
+ require 'mind_match/query_builder'
2
3
  require 'mind_match/client'
3
4
  require 'forwardable'
4
5
 
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.2
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-04 00:00:00.000000000 Z
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.6.13
143
+ rubygems_version: 2.5.2
143
144
  signing_key:
144
145
  specification_version: 4
145
146
  summary: MindMatch api client library for Ruby