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 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