traitify 1.1.1 → 1.2.0
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/CHANGELOG.md +5 -0
- data/Gemfile.lock +9 -9
- data/lib/traitify/client/assessments.rb +10 -8
- data/lib/traitify/client/decks.rb +6 -2
- data/lib/traitify/client/results.rb +11 -10
- data/lib/traitify/client/slides.rb +17 -12
- data/lib/traitify/connection.rb +4 -5
- data/lib/traitify/error.rb +1 -4
- data/lib/traitify/request.rb +9 -37
- data/lib/traitify/version.rb +1 -1
- data/spec/support/mocks/careers.json +15 -0
- data/spec/traitify-ruby/client/result_spec.rb +14 -1
- data/traitify.gemspec +2 -2
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a9b25173520896cbdd7d47c2b7a18c19022b199
|
4
|
+
data.tar.gz: 41173e061c58c3417c68cc19293ae5c6ccf0e06d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d04436ef921a63fc4e1f712ee2bd90bd9118e23e02539ef02c81ae870f148e4563ce5d8f3602d29fe1031fe1dbf5fd4e7b9e15bfed1578c523cb9e33b74f38fb
|
7
|
+
data.tar.gz: 06d27eab98ea81dfa76af8c7a686eeb462f86ebc3ee3dbbc6cb3d096ea0149ec5bd58e00202a9a2e56ca3d8b698ac62f5677c189422739d8301bc777da46e61d
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
traitify (1.
|
5
|
-
faraday (~> 0.
|
4
|
+
traitify (1.2.0)
|
5
|
+
faraday (~> 0.9.0)
|
6
6
|
faraday_middleware (~> 0.9.0)
|
7
7
|
hashie
|
8
8
|
|
@@ -17,16 +17,16 @@ GEM
|
|
17
17
|
safe_yaml (~> 1.0.0)
|
18
18
|
debug_inspector (0.0.2)
|
19
19
|
diff-lcs (1.2.5)
|
20
|
-
faraday (0.
|
21
|
-
multipart-post (
|
20
|
+
faraday (0.9.0)
|
21
|
+
multipart-post (>= 1.2, < 3)
|
22
22
|
faraday_middleware (0.9.1)
|
23
23
|
faraday (>= 0.7.4, < 0.10)
|
24
|
-
hashie (
|
24
|
+
hashie (3.3.1)
|
25
25
|
method_source (0.8.2)
|
26
|
-
multipart-post (
|
27
|
-
pry (0.
|
28
|
-
coderay (~> 1.0)
|
29
|
-
method_source (~> 0.8)
|
26
|
+
multipart-post (2.0.0)
|
27
|
+
pry (0.10.0)
|
28
|
+
coderay (~> 1.1.0)
|
29
|
+
method_source (~> 0.8.1)
|
30
30
|
slop (~> 3.4)
|
31
31
|
rake (10.1.1)
|
32
32
|
rspec (2.14.1)
|
@@ -1,20 +1,22 @@
|
|
1
1
|
module Traitify
|
2
|
+
|
2
3
|
class Client
|
3
4
|
module Assessment
|
4
5
|
def create_assessment(options = {})
|
5
|
-
|
6
|
-
assessment_params = { deck_id: deck_id }
|
7
|
-
response = post("/assessments", assessment_params)
|
8
|
-
|
9
|
-
Hashie::Mash.new(response)
|
6
|
+
Hashie::Mash.new post("/assessments", { deck_id: deck_id_from(options) })
|
10
7
|
end
|
11
8
|
|
12
9
|
def assessment(assessment_id)
|
13
|
-
|
10
|
+
Hashie::Mash.new get("/assessments/#{assessment_id}")
|
11
|
+
end
|
12
|
+
alias :find_assessment :assessment
|
14
13
|
|
15
|
-
|
14
|
+
private
|
15
|
+
|
16
|
+
def deck_id_from(options)
|
17
|
+
options[:deck_id] || deck_id
|
16
18
|
end
|
17
|
-
|
19
|
+
|
18
20
|
end
|
19
21
|
end
|
20
22
|
end
|
@@ -1,8 +1,12 @@
|
|
1
1
|
module Traitify
|
2
2
|
class Client
|
3
3
|
module Deck
|
4
|
-
def decks
|
5
|
-
|
4
|
+
def decks(image_pack = nil)
|
5
|
+
image_pack ||= self.image_pack
|
6
|
+
|
7
|
+
response = image_pack ?
|
8
|
+
get("/decks?image_pack=#{image_pack}") :
|
9
|
+
get("/decks")
|
6
10
|
|
7
11
|
response.collect { |deck| Hashie::Mash.new(deck) }
|
8
12
|
end
|
@@ -4,26 +4,27 @@ module Traitify
|
|
4
4
|
def results(assessment_id, image_pack = nil)
|
5
5
|
image_pack ||= self.image_pack
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
response = get("/assessments/#{assessment_id}/personality_types")
|
11
|
-
end
|
7
|
+
response = image_pack ?
|
8
|
+
get("/assessments/#{assessment_id}/personality_types?image_pack=#{image_pack}") :
|
9
|
+
get("/assessments/#{assessment_id}/personality_types")
|
12
10
|
|
13
11
|
Hashie::Mash.new(response)
|
14
12
|
end
|
15
13
|
alias_method :find_results, :results
|
16
14
|
|
17
15
|
def assessment_personality_traits(assessment_id, personality_type_id = nil)
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
response = get("/assessments/#{assessment_id}/personality_traits")
|
22
|
-
end
|
16
|
+
response = personality_type_id ?
|
17
|
+
get("/assessments/#{assessment_id}/personality_types/#{personality_type_id}/personality_traits") :
|
18
|
+
get("/assessments/#{assessment_id}/personality_traits")
|
23
19
|
|
24
20
|
response.collect { |personality_trait| Hashie::Mash.new(personality_trait) }
|
25
21
|
end
|
26
22
|
alias_method :find_assessment_personality_traits, :assessment_personality_traits
|
23
|
+
|
24
|
+
def career_matches(assessment_id, number_of_matches=10)
|
25
|
+
response = get("/assessments/#{assessment_id}/matches/careers?number_of_matches=#{number_of_matches}")
|
26
|
+
response.collect { |career| Hashie::Mash.new(career) }
|
27
|
+
end
|
27
28
|
end
|
28
29
|
end
|
29
30
|
end
|
@@ -1,28 +1,33 @@
|
|
1
1
|
module Traitify
|
2
2
|
class Client
|
3
3
|
module Slide
|
4
|
-
def
|
5
|
-
|
4
|
+
def url_for_slides_by(assessment_id)
|
5
|
+
"/assessments/#{assessment_id}/slides"
|
6
|
+
end
|
6
7
|
|
7
|
-
|
8
|
+
def find_slides(assessment_id)
|
9
|
+
url = url_for_slides_by(assessment_id)
|
10
|
+
get(url).collect do |slide|
|
11
|
+
Hashie::Mash.new(slide)
|
12
|
+
end
|
8
13
|
end
|
9
14
|
|
10
15
|
def update_slides(assessment_id, slides)
|
11
|
-
|
12
|
-
|
13
|
-
|
16
|
+
url = url_for_slides_by(assessment_id)
|
17
|
+
put(url, slides).collect do |slide|
|
18
|
+
Hashie::Mash.new(slide)
|
19
|
+
end
|
14
20
|
end
|
15
21
|
|
16
22
|
def update_slide(assessment_id, slide)
|
17
|
-
slide_id = slide[
|
23
|
+
slide_id = slide[:id] || slide.id
|
18
24
|
params = {
|
19
|
-
response: slide[
|
20
|
-
time_taken: slide[
|
25
|
+
response: slide[:response] || slide.response,
|
26
|
+
time_taken: slide[:time_taken] || slide.time_taken,
|
21
27
|
}
|
22
28
|
|
23
|
-
|
24
|
-
|
25
|
-
Hashie::Mash.new(response)
|
29
|
+
url = [url_for_slides_by(assessment_id), "/", slide_id].join
|
30
|
+
Hashie::Mash.new put(url, params)
|
26
31
|
end
|
27
32
|
end
|
28
33
|
end
|
data/lib/traitify/connection.rb
CHANGED
@@ -3,8 +3,8 @@ require "traitify/error"
|
|
3
3
|
|
4
4
|
module Traitify
|
5
5
|
module Connection
|
6
|
-
def
|
7
|
-
|
6
|
+
def conn(options = {})
|
7
|
+
Faraday.new(options) do |faraday|
|
8
8
|
faraday.request :url_encoded
|
9
9
|
faraday.request :basic_auth, self.secret, "x"
|
10
10
|
faraday.use ContentTypeMiddleware
|
@@ -12,11 +12,10 @@ module Traitify
|
|
12
12
|
faraday.response :json, :content_type => /\bjson$/
|
13
13
|
faraday.adapter Faraday.default_adapter
|
14
14
|
end
|
15
|
-
|
16
|
-
connection
|
17
15
|
end
|
18
16
|
|
19
17
|
private
|
18
|
+
|
20
19
|
class ContentTypeMiddleware < Faraday::Middleware
|
21
20
|
def initialize(app)
|
22
21
|
@app = app
|
@@ -36,7 +35,7 @@ module Traitify
|
|
36
35
|
|
37
36
|
def call(env)
|
38
37
|
@app.call(env).on_complete do |e|
|
39
|
-
if error = Traitify::Error.from(e
|
38
|
+
if error = Traitify::Error.from(e.status)
|
40
39
|
raise error
|
41
40
|
end
|
42
41
|
end
|
data/lib/traitify/error.rb
CHANGED
@@ -2,16 +2,13 @@ module Traitify
|
|
2
2
|
class Error < StandardError
|
3
3
|
attr_accessor :response
|
4
4
|
|
5
|
-
def self.from(
|
6
|
-
status = response.status
|
7
|
-
|
5
|
+
def self.from(status)
|
8
6
|
if klass = case status
|
9
7
|
when 400 then Traitify::BadRequest
|
10
8
|
when 401 then Traitify::Unauthorized
|
11
9
|
when 404 then Traitify::NotFound
|
12
10
|
when 422 then Traitify::UnprocessableEntity
|
13
11
|
end
|
14
|
-
|
15
12
|
klass.new(response)
|
16
13
|
end
|
17
14
|
end
|
data/lib/traitify/request.rb
CHANGED
@@ -1,46 +1,18 @@
|
|
1
1
|
module Traitify
|
2
2
|
module Request
|
3
|
-
def
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
end
|
10
|
-
|
11
|
-
def put(path, options = {})
|
12
|
-
request(:put, path, options)
|
13
|
-
end
|
14
|
-
|
15
|
-
def delete(path, options = {})
|
16
|
-
request(:delete, path, options)
|
17
|
-
end
|
18
|
-
|
19
|
-
def last_response
|
20
|
-
@last_response
|
3
|
+
def method_missing(meth, *args, &block)
|
4
|
+
if [:get, :post, :put, :delete].include? meth
|
5
|
+
request(meth, *args)
|
6
|
+
else
|
7
|
+
super
|
8
|
+
end
|
21
9
|
end
|
22
10
|
|
23
|
-
private
|
24
11
|
def request(method, path, options = {})
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
response = connection(connection_options).send(method) do |request|
|
12
|
+
conn(url: api_host).send(method) do |request|
|
13
|
+
request.url [api_version, path].join
|
29
14
|
request.body = options.to_json if options
|
30
|
-
|
31
|
-
when :get
|
32
|
-
request.url(path)
|
33
|
-
when :post
|
34
|
-
request.url(path)
|
35
|
-
when :put
|
36
|
-
request.url(path)
|
37
|
-
when :delete
|
38
|
-
request.url(path)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
@last_response = response
|
43
|
-
response.body
|
15
|
+
end.body
|
44
16
|
end
|
45
17
|
end
|
46
18
|
end
|
data/lib/traitify/version.rb
CHANGED
@@ -77,4 +77,17 @@ describe Traitify::Client do
|
|
77
77
|
end
|
78
78
|
end
|
79
79
|
end
|
80
|
-
|
80
|
+
|
81
|
+
describe ".career_matches" do
|
82
|
+
let(:careers) { tom.career_matches("assessment-uuid") }
|
83
|
+
|
84
|
+
before(:each) do
|
85
|
+
stub_it(:get, "/assessments/assessment-uuid/matches/careers?number_of_matches=10", "careers")
|
86
|
+
end
|
87
|
+
|
88
|
+
it "returns a result" do
|
89
|
+
expect(careers.first.title).to eq("Career Title")
|
90
|
+
expect(careers.first.majors.first.title).to eq("Major Title")
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
data/traitify.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.email = "tom@tomprats.com"
|
10
10
|
spec.description = %q{Traitify Developer Gem}
|
11
11
|
spec.summary = spec.description
|
12
|
-
spec.homepage = ""
|
12
|
+
spec.homepage = "https://www.traitify.com"
|
13
13
|
spec.license = "MIT"
|
14
14
|
|
15
15
|
spec.files = `git ls-files`.split($/)
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
20
|
spec.add_dependency "hashie"
|
21
|
-
spec.add_dependency "faraday", "~> 0.
|
21
|
+
spec.add_dependency "faraday", "~> 0.9.0"
|
22
22
|
spec.add_dependency "faraday_middleware", "~> 0.9.0"
|
23
23
|
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.3"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: traitify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Prats
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hashie
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.9.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.9.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: faraday_middleware
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -161,6 +161,7 @@ files:
|
|
161
161
|
- lib/traitify/version.rb
|
162
162
|
- spec/spec_helper.rb
|
163
163
|
- spec/support/mocks/assessment.json
|
164
|
+
- spec/support/mocks/careers.json
|
164
165
|
- spec/support/mocks/decks.json
|
165
166
|
- spec/support/mocks/personality_traits.json
|
166
167
|
- spec/support/mocks/result.json
|
@@ -172,7 +173,7 @@ files:
|
|
172
173
|
- spec/traitify-ruby/client/result_spec.rb
|
173
174
|
- spec/traitify-ruby/client/slide_spec.rb
|
174
175
|
- traitify.gemspec
|
175
|
-
homepage:
|
176
|
+
homepage: https://www.traitify.com
|
176
177
|
licenses:
|
177
178
|
- MIT
|
178
179
|
metadata: {}
|
@@ -199,6 +200,7 @@ summary: Traitify Developer Gem
|
|
199
200
|
test_files:
|
200
201
|
- spec/spec_helper.rb
|
201
202
|
- spec/support/mocks/assessment.json
|
203
|
+
- spec/support/mocks/careers.json
|
202
204
|
- spec/support/mocks/decks.json
|
203
205
|
- spec/support/mocks/personality_traits.json
|
204
206
|
- spec/support/mocks/result.json
|
@@ -209,4 +211,3 @@ test_files:
|
|
209
211
|
- spec/traitify-ruby/client/deck_spec.rb
|
210
212
|
- spec/traitify-ruby/client/result_spec.rb
|
211
213
|
- spec/traitify-ruby/client/slide_spec.rb
|
212
|
-
has_rdoc:
|