traitify 1.1.0 → 1.1.1

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.
@@ -1,36 +0,0 @@
1
- module Traitify
2
- class Assessment
3
- attr_accessor :id, :deck_id, :user_id, :created_at, :completed_at
4
-
5
- def initialize(options = {})
6
- self.id = options[:id]
7
- self.deck_id = options[:deck_id]
8
- self.user_id = options[:user_id]
9
- self.created_at = options[:created_at]
10
- self.completed_at = options[:completed_at]
11
- end
12
-
13
- def self.parse_json(assessment)
14
- created_at = assessment["created_at"] ? Time.at(assessment["created_at"]) : nil
15
- completed_at = assessment["completed_at"] ? Time.at(assessment["completed_at"]) : nil
16
-
17
- Assessment.new(
18
- id: assessment["id"],
19
- deck_id: assessment["deck_id"],
20
- user_id: assessment["user_id"],
21
- created_at: created_at,
22
- completed_at: completed_at
23
- )
24
- end
25
-
26
- def to_hash
27
- {
28
- id: id,
29
- deck_id: deck_id,
30
- user_id: user_id,
31
- created_at: created_at,
32
- completed_at: completed_at
33
- }
34
- end
35
- end
36
- end
@@ -1,43 +0,0 @@
1
- module Traitify
2
- class Badge
3
- attr_accessor :image_small, :image_medium, :image_large, :font_color, :color_1, :color_2, :color_3
4
-
5
- def initialize(options = {})
6
- self.image_small = options[:image_small]
7
- self.image_medium = options[:image_medium]
8
- self.image_large = options[:image_large]
9
- self.font_color = options[:font_color]
10
- self.color_1 = options[:color1]
11
- self.color_2 = options[:color2]
12
- self.color_3 = options[:color3]
13
- end
14
-
15
- def self.parse_json(badge)
16
- if badge
17
- Badge.new(
18
- image_small: badge["image_small"],
19
- image_medium: badge["image_medium"],
20
- image_large: badge["image_large"],
21
- font_color: badge["font_color"],
22
- color_1: badge["color_1"],
23
- color_2: badge["color_2"],
24
- color_3: badge["color_3"]
25
- )
26
- else
27
- nil
28
- end
29
- end
30
-
31
- def to_hash
32
- {
33
- image_small: image_small,
34
- image_medium: image_medium,
35
- image_large: image_large,
36
- font_color: font_color,
37
- color_1: color1,
38
- color_2: color2,
39
- color_3: color3
40
- }
41
- end
42
- end
43
- end
@@ -1,17 +0,0 @@
1
- module Traitify
2
- class Client
3
- module User
4
- def create_user(user_params)
5
- response = post("/users", user: user_params)
6
-
7
- Traitify::User.parse_json(response)
8
- end
9
-
10
- def find_user(user_id)
11
- response = get("/users/#{user_id}")
12
-
13
- Traitify::User.parse_json(response)
14
- end
15
- end
16
- end
17
- end
@@ -1,55 +0,0 @@
1
- module Traitify
2
- class PersonalityBlend
3
- attr_accessor :personality_type_1, :personality_type_2, :name, :description, :compliments, :conflicts, :compatible_work_environment_1, :compatible_work_environment_2, :compatible_work_environment_3, :compatible_work_environment_4
4
-
5
- def initialize(options = {})
6
- self.personality_type_1 = options[:personality_type_1]
7
- self.personality_type_2 = options[:personality_type_2]
8
- self.name = options[:name]
9
- self.description = options[:description]
10
- self.compliments = options[:compliments]
11
- self.conflicts = options[:conflicts]
12
- self.compatible_work_environment_1 = options[:compatible_work_environment_1]
13
- self.compatible_work_environment_2 = options[:compatible_work_environment_2]
14
- self.compatible_work_environment_3 = options[:compatible_work_environment_3]
15
- self.compatible_work_environment_4 = options[:compatible_work_environment_4]
16
- end
17
-
18
- def self.parse_json(personality_blend)
19
- if personality_blend
20
- personality_type_1 = PersonalityType.parse_json(personality_blend["personality_type_1"])
21
- personality_type_2 = PersonalityType.parse_json(personality_blend["personality_type_2"])
22
-
23
- PersonalityBlend.new(
24
- personality_type_1: personality_type_1,
25
- personality_type_2: personality_type_2,
26
- name: personality_blend["name"],
27
- description: personality_blend["description"],
28
- compliments: personality_blend["compliments"],
29
- conflicts: personality_blend["conflicts"],
30
- compatible_work_environment_1: personality_blend["compatible_work_environment_1"],
31
- compatible_work_environment_2: personality_blend["compatible_work_environment_2"],
32
- compatible_work_environment_3: personality_blend["compatible_work_environment_3"],
33
- compatible_work_environment_4: personality_blend["compatible_work_environment_4"]
34
- )
35
- else
36
- nil
37
- end
38
- end
39
-
40
- def to_hash
41
- {
42
- personality_type_1: personality_type_1.to_hash,
43
- personality_type_2: personality_type_2.to_hash,
44
- name: name,
45
- description: description,
46
- compliments: compliments,
47
- conflicts: conflicts,
48
- compatible_work_environment_1: compatible_work_environment_1,
49
- compatible_work_environment_2: compatible_work_environment_2,
50
- compatible_work_environment_3: compatible_work_environment_3,
51
- compatible_work_environment_4: compatible_work_environment_4
52
- }
53
- end
54
- end
55
- end
@@ -1,39 +0,0 @@
1
- module Traitify
2
- class PersonalityType
3
- attr_accessor :id, :name, :description, :badge, :score
4
-
5
- def initialize(options = {})
6
- self.id = options[:id]
7
- self.name = options[:name]
8
- self.description = options[:description]
9
- self.badge = options[:badge]
10
- self.score = options[:score]
11
- end
12
-
13
- def self.parse_json(personality_type)
14
- if personality_type
15
- badge = Badge.parse_json(personality_type["badge"])
16
-
17
- PersonalityType.new(
18
- id: personality_type["id"],
19
- name: personality_type["name"],
20
- description: personality_type["description"],
21
- badge: badge,
22
- score: personality_type["score"]
23
- )
24
- else
25
- nil
26
- end
27
- end
28
-
29
- def to_hash
30
- {
31
- id: id,
32
- name: name,
33
- description: description,
34
- badge: badge.to_hash,
35
- score: score
36
- }
37
- end
38
- end
39
- end
@@ -1,31 +0,0 @@
1
- module Traitify
2
- class Result
3
- attr_accessor :personality_blend, :personality_types
4
-
5
- def initialize(options = {})
6
- self.personality_blend = options[:personality_blend]
7
- self.personality_types = options[:personality_types]
8
- end
9
-
10
- def self.parse_json(result)
11
- if result
12
- personality_blend = PersonalityBlend.parse_json(result["personality_blend"])
13
- personality_types = result["personality_types"].collect { |p| p && p["personality_type"] ? PersonalityType.parse_json(p["personality_type"].merge!("score" => p["score"])) : nil }
14
-
15
- Result.new(
16
- personality_blend: personality_blend,
17
- personality_types: personality_types
18
- )
19
- else
20
- nil
21
- end
22
- end
23
-
24
- def to_hash
25
- {
26
- personality_blend: personality_blend.to_hash,
27
- personality_types: personality_types.collect { |p| p.to_hash }
28
- }
29
- end
30
- end
31
- end
@@ -1,95 +0,0 @@
1
- module Traitify
2
- class Slide
3
- attr_accessor :id, :position, :caption, :image_desktop, :image_desktop_retina, :image_phone_landscape, :image_phone_portrait, :response, :time_taken, :completed_at, :created_at
4
-
5
- def initialize(options = {})
6
- self.id = options[:id]
7
- self.position = options[:position]
8
- self.caption = options[:caption]
9
- self.image_desktop = options[:image_desktop]
10
- self.image_desktop_retina = options[:image_desktop_retina]
11
- self.image_phone_landscape = options[:image_phone_landscape]
12
- self.image_phone_portrait = options[:image_phone_portrait]
13
- self.response = options[:response]
14
- self.time_taken = options[:time_taken]
15
- self.completed_at = options[:completed_at]
16
- self.created_at = options[:created_at]
17
- end
18
-
19
- def self.parse_json(slide)
20
- created_at = slide["created_at"] ? Time.at(slide["created_at"]) : nil
21
- completed_at = slide["completed_at"] ? Time.at(slide["completed_at"]) : nil
22
-
23
- Slide.new(
24
- id: slide["id"],
25
- position: slide["position"],
26
- caption: slide["caption"],
27
- image_desktop: slide["image_desktop"],
28
- image_desktop_retina: slide["image_desktop_retina"],
29
- image_phone_landscape: slide["image_phone_landscape"],
30
- image_phone_portrait: slide["image_phone_portrait"],
31
- response: slide["response"],
32
- time_taken: slide["time_taken"],
33
- completed_at: completed_at,
34
- created_at: created_at
35
- )
36
- end
37
-
38
- def to_hash
39
- {
40
- id: id,
41
- position: position,
42
- caption: caption,
43
- image_desktop: image_desktop,
44
- image_desktop_retina: image_desktop_retina,
45
- image_phone_landscape: image_phone_landscape,
46
- image_phone_portrait: image_phone_portrait,
47
- response: response,
48
- time_taken: time_taken,
49
- completed_at: completed_at,
50
- created_at: created_at
51
- }
52
- end
53
-
54
- def to_update_params
55
- {
56
- id: id,
57
- response: response,
58
- time_taken: time_taken
59
- }
60
- end
61
- end
62
-
63
- class Slides
64
- attr_accessor :assessment_id, :all
65
-
66
- def initialize(options = {})
67
- self.assessment_id = options[:assessment_id]
68
- self.all = options[:all]
69
- end
70
-
71
- def self.parse_json(assessment_id, slides)
72
- Slides.new(
73
- assessment_id: assessment_id,
74
- all: slides.collect { |slide| Traitify::Slide.parse_json(slide) }
75
- )
76
- end
77
-
78
- def to_hash
79
- {
80
- assessment_id: assessment_id,
81
- all: all.collect { |slide| slide.to_hash }
82
- }
83
- end
84
-
85
- def to_update_params
86
- all.collect { |slide| slide.to_update_params }
87
- end
88
-
89
- # Allows slides to forward Array methods to all
90
- def method_missing(method, *args)
91
- return all.send(method, *args) if all.respond_to?(method)
92
- super
93
- end
94
- end
95
- end
@@ -1,39 +0,0 @@
1
- module Traitify
2
- class User
3
- attr_accessor :id, :first_name, :last_name, :email, :created_at, :updated_at
4
-
5
- def initialize(options = {})
6
- self.id = options[:id]
7
- self.first_name = options[:first_name]
8
- self.last_name = options[:last_name]
9
- self.email = options[:email]
10
- self.created_at = options[:created_at]
11
- self.updated_at = options[:updated_at]
12
- end
13
-
14
- def self.parse_json(user)
15
- created_at = user["created_at"] ? Time.at(user["created_at"]) : nil
16
- updated_at = user["updated_at"] ? Time.at(user["updated_at"]) : nil
17
-
18
- User.new(
19
- id: user["id"],
20
- first_name: user["first_name"],
21
- last_name: user["last_name"],
22
- email: user["email"],
23
- created_at: created_at,
24
- updated_at: updated_at
25
- )
26
- end
27
-
28
- def to_hash
29
- {
30
- id: id,
31
- first_name: first_name,
32
- last_name: last_name,
33
- email: email,
34
- created_at: created_at,
35
- updated_at: updated_at,
36
- }
37
- end
38
- end
39
- end
@@ -1,8 +0,0 @@
1
- {
2
- "id": "toms-uuid",
3
- "first_name": "Tom",
4
- "last_name": "Prats",
5
- "email": "tom@tomprats.com",
6
- "created_at": 1392153790744,
7
- "updated_at": 1392153790744
8
- }
@@ -1,41 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Traitify::Client do
4
- before do
5
- Traitify.configure do |tom|
6
- tom.secret = "secret"
7
- tom.api_host = "https://example.com"
8
- tom.api_version = "v1"
9
- end
10
- end
11
-
12
- let(:tom) { Traitify.new }
13
-
14
- describe ".create_user" do
15
- let(:user) { tom.create_user(
16
- first_name: "Tom",
17
- last_name: "Prats",
18
- email: "tom@tomprats.com"
19
- )}
20
-
21
- before(:each) do
22
- stub_it(:post, "/users", "user")
23
- end
24
-
25
- it "returns a user" do
26
- expect(user.first_name).to eq("Tom")
27
- end
28
- end
29
-
30
- describe ".find_user" do
31
- let(:user) { tom.find_user("toms-uuid") }
32
-
33
- before(:each) do
34
- stub_it(:get, "/users/toms-uuid", "user")
35
- end
36
-
37
- it "returns a user" do
38
- expect(user.id).to eq("toms-uuid")
39
- end
40
- end
41
- end