tamber 0.1.11 → 0.1.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +16 -16
- data/VERSION +1 -1
- data/lib/tamber/api_resource.rb +5 -1
- data/lib/tamber/discover.rb +41 -13
- data/lib/tamber/version.rb +1 -1
- data/test/discover_test.rb +2 -2
- data/test/test_helper.rb +0 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ff938263efc3c5aa656aab523beb101c9de80e86
|
4
|
+
data.tar.gz: d0c573e996b8f58c27d0e9ec47f189d2691d22ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: babeb332768806e4d7a7d55f6dd79ab74557d75325ca7203298533727fa38680871e5d7a9519e294d433757c467cd01f5998e40b5793cca3032eb24d2ded23a4
|
7
|
+
data.tar.gz: 69712d840fef4413e9626e65453f9113bf5a6ac166b65aee443da4efdd9dc382dad965b60b19fd0c0844f1c6ae2630541360430f06d52366c2c0132bec1d0244
|
data/README.md
CHANGED
@@ -60,19 +60,18 @@ end
|
|
60
60
|
|
61
61
|
Once you have tracked enough events and created your engine, it's time to put personalized recommendations in your app.
|
62
62
|
|
63
|
-
The primary
|
63
|
+
The primary methods of discovery in Tamber are the `Discover.next` and `Discover.recommended` methods, which returns the optimal set of items that the user should be shown next on a given item page, and in a personalized recommendations section, respectively.
|
64
64
|
|
65
|
-
####
|
65
|
+
#### Up Next
|
66
66
|
|
67
|
-
|
67
|
+
Don't make an item page a deadend. Keep users engaged by creating paths of discovery as they navigate from item to item, always showing the right mix of items they should check out next. Just add the id of the item that the user is navigating to / looking at.
|
68
68
|
|
69
69
|
```rb
|
70
|
-
Tamber.project_key = 'your_project_key'
|
71
|
-
|
72
70
|
begin
|
73
71
|
d = Tamber::Discover.next(
|
74
72
|
user: 'user_rlox8k927z7p',
|
75
|
-
|
73
|
+
item: 'item_wmt4fn6o4zlk',
|
74
|
+
number: 14
|
76
75
|
)
|
77
76
|
d.each { |rec| puts "item: #{rec.item}, score: #{rec.score}"}
|
78
77
|
rescue TamberError => error
|
@@ -80,16 +79,17 @@ rescue TamberError => error
|
|
80
79
|
end
|
81
80
|
```
|
82
81
|
|
83
|
-
####
|
82
|
+
#### For You
|
84
83
|
|
85
|
-
|
84
|
+
To put personalized recommendations on your homepage, or in any recommended section, just call `Discover.recommended` with the given user's id and the number of recommendations you want to display.
|
86
85
|
|
87
86
|
```rb
|
87
|
+
Tamber.project_key = 'your_project_key'
|
88
|
+
|
88
89
|
begin
|
89
|
-
d = Tamber::Discover.
|
90
|
+
d = Tamber::Discover.recommended(
|
90
91
|
user: 'user_rlox8k927z7p',
|
91
|
-
|
92
|
-
number: 14
|
92
|
+
number: 10
|
93
93
|
)
|
94
94
|
d.each { |rec| puts "item: #{rec.item}, score: #{rec.score}"}
|
95
95
|
rescue TamberError => error
|
@@ -100,9 +100,9 @@ end
|
|
100
100
|
|
101
101
|
##### `continuation`
|
102
102
|
|
103
|
-
|
103
|
+
Recommendations are optimized for the exact moment and context of the user at the time of request, but sometimes a user wants to see more recommended items than are shown by default. In order to 'Show More', Tamber supports automatic continuation.
|
104
104
|
|
105
|
-
When you want to add more recommendations to those currently displayed to the user, just set the `continuation` field to `true`. Tamber will automatically generate the set of items that should be appended to the current user-session's list. The
|
105
|
+
When you want to add more recommendations to those currently displayed to the user, just set the `continuation` field to `true`. Tamber will automatically generate the set of items that should be appended to the current user-session's list. The user-session is reset when `Discover.recommended` or `Discover.next` is called without `continuation`.
|
106
106
|
|
107
107
|
```rb
|
108
108
|
Tamber.project_key = 'your_project_key'
|
@@ -150,19 +150,19 @@ Tamber allows you to use lower-level methods to get lists of recommended items,
|
|
150
150
|
|
151
151
|
```rb
|
152
152
|
begin
|
153
|
-
Tamber::Discover.
|
153
|
+
Tamber::Discover.basicRecommended(user: 'user_rlox8k927z7p').each { |rec| puts "item: #{rec.item}, score: #{rec.score}"}
|
154
154
|
rescue TamberError => error
|
155
155
|
puts error.message
|
156
156
|
end
|
157
157
|
|
158
158
|
begin
|
159
|
-
Tamber::Discover.
|
159
|
+
Tamber::Discover.basicSimilar(item: 'item_wmt4fn6o4zlk').each { |rec| puts "item: #{rec.item}, score: #{rec.score}"}
|
160
160
|
rescue TamberError => error
|
161
161
|
puts error.message
|
162
162
|
end
|
163
163
|
|
164
164
|
begin
|
165
|
-
Tamber::Discover.
|
165
|
+
Tamber::Discover.basicRecommendedSimilar(
|
166
166
|
user: 'user_rlox8k927z7p',
|
167
167
|
item: 'item_wmt4fn6o4zlk'
|
168
168
|
).each { |rec| puts "item: #{rec.item}, score: #{rec.score}"}
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.12
|
data/lib/tamber/api_resource.rb
CHANGED
@@ -10,7 +10,11 @@ module Tamber
|
|
10
10
|
if self == APIResource
|
11
11
|
raise TamberError.new('APIResource is an abstract class. You should perform actions on its subclasses (Event, Discover, etc.)')
|
12
12
|
end
|
13
|
-
|
13
|
+
if class_name.downcase == "basic"
|
14
|
+
"/discover/#{CGI.escape(class_name.downcase)}"
|
15
|
+
else
|
16
|
+
"/#{CGI.escape(class_name.downcase)}"
|
17
|
+
end
|
14
18
|
end
|
15
19
|
|
16
20
|
def url
|
data/lib/tamber/discover.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
module Tamber
|
2
2
|
class Discover < APIResource
|
3
|
-
|
4
3
|
def self.next(params={})
|
5
4
|
response = request(:get, self.next_url, params)
|
6
5
|
Util.convert_to_tamber_object(response)
|
@@ -11,15 +10,15 @@ module Tamber
|
|
11
10
|
Util.convert_to_tamber_object(response)
|
12
11
|
end
|
13
12
|
|
14
|
-
def self.
|
15
|
-
response = request(:get, self.
|
13
|
+
def self.weekly(params={})
|
14
|
+
response = request(:get, self.weekly_url, params)
|
16
15
|
Util.convert_to_tamber_object(response)
|
17
|
-
end
|
16
|
+
end
|
18
17
|
|
19
|
-
def self.
|
20
|
-
response = request(:get, self.
|
18
|
+
def self.daily(params={})
|
19
|
+
response = request(:get, self.daily_url, params)
|
21
20
|
Util.convert_to_tamber_object(response)
|
22
|
-
end
|
21
|
+
end
|
23
22
|
|
24
23
|
def self.meta(params={})
|
25
24
|
response = request(:get, self.meta_url, params)
|
@@ -46,20 +45,22 @@ module Tamber
|
|
46
45
|
Util.convert_to_tamber_object(response)
|
47
46
|
end
|
48
47
|
|
48
|
+
|
49
|
+
|
49
50
|
def self.recommended_url
|
50
51
|
url + '/recommended'
|
51
52
|
end
|
52
53
|
|
53
|
-
def self.
|
54
|
-
url + '/
|
54
|
+
def self.next_url
|
55
|
+
url + '/next'
|
55
56
|
end
|
56
57
|
|
57
|
-
def self.
|
58
|
-
url + '/
|
58
|
+
def self.weekly_url
|
59
|
+
url + '/weekly'
|
59
60
|
end
|
60
61
|
|
61
|
-
def self.
|
62
|
-
url + '/
|
62
|
+
def self.daily_url
|
63
|
+
url + '/daily'
|
63
64
|
end
|
64
65
|
|
65
66
|
def self.meta_url
|
@@ -82,6 +83,33 @@ module Tamber
|
|
82
83
|
url + '/new'
|
83
84
|
end
|
84
85
|
|
86
|
+
class Basic < APIResource
|
87
|
+
def self.recommended(params={})
|
88
|
+
response = request(:get, self.recommended_url, params)
|
89
|
+
Util.convert_to_tamber_object(response)
|
90
|
+
end
|
91
|
+
|
92
|
+
def self.similar(params={})
|
93
|
+
response = request(:get, self.similar_url, params)
|
94
|
+
Util.convert_to_tamber_object(response)
|
95
|
+
end
|
96
|
+
|
97
|
+
def self.recommendedSimilar(params={})
|
98
|
+
response = request(:get, self.recommendedSimilar_url, params)
|
99
|
+
Util.convert_to_tamber_object(response)
|
100
|
+
end
|
101
|
+
def self.recommended_url
|
102
|
+
url + '/recommended'
|
103
|
+
end
|
104
|
+
|
105
|
+
def self.similar_url
|
106
|
+
url + '/similar'
|
107
|
+
end
|
108
|
+
|
109
|
+
def self.recommendedSimilar_url
|
110
|
+
url + '/recommended_similar'
|
111
|
+
end
|
112
|
+
end
|
85
113
|
end
|
86
114
|
|
87
115
|
# Discover requests return an array of 'discovery' objects
|
data/lib/tamber/version.rb
CHANGED
data/test/discover_test.rb
CHANGED
@@ -76,7 +76,7 @@ module Tamber
|
|
76
76
|
|
77
77
|
should "return similar" do
|
78
78
|
begin
|
79
|
-
d = Tamber::Discover.similar(
|
79
|
+
d = Tamber::Discover::Basic.similar(
|
80
80
|
:item => 'item_i5gq90scc1'
|
81
81
|
)
|
82
82
|
d.each { |rec| puts "item: #{rec.item}, score: #{rec.score}"}
|
@@ -85,7 +85,7 @@ module Tamber
|
|
85
85
|
|
86
86
|
should "return recommendedSimilar" do
|
87
87
|
begin
|
88
|
-
d = Tamber::Discover.recommendedSimilar(
|
88
|
+
d = Tamber::Discover::Basic.recommendedSimilar(
|
89
89
|
:user => 'user_jctzgisbru',
|
90
90
|
:item => 'item_i5gq90scc1'
|
91
91
|
)
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tamber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexi Robbins
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-04-
|
12
|
+
date: 2018-04-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rest-client
|