meducation_sdk 1.6.11 → 1.6.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/meducation_sdk/services/recommender.rb +21 -1
- data/lib/meducation_sdk/version.rb +1 -1
- data/test/services/recommender_test.rb +28 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1bfab6bea28b6130192d1fb4ca33b67b00a709bb
|
4
|
+
data.tar.gz: a6578e60f7cc5cfde70ba744208553b327290db7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 94c5d9986465525c13056d1dc42ce85ba36a4c0636c4bae3e5b41985aaa90757225d2e15e631e2a2794cc3e5f6d217f1883623845a64681e5448e3a68f79d63f
|
7
|
+
data.tar.gz: 57bc65504e44d48f57fd8af3b9401b5a05016e42d8380a52de830ade7783a37d80669ed377a6705ae8d31baab423ab116d04e42d82b6c2156dd10f69074ca78e
|
data/CHANGELOG.md
CHANGED
@@ -3,7 +3,11 @@ module MeducationSDK
|
|
3
3
|
include Helpers
|
4
4
|
|
5
5
|
def self.recommend(items, options = {})
|
6
|
-
|
6
|
+
if items.is_a?(User)
|
7
|
+
UserRecommender.new(items, options).recommend
|
8
|
+
else
|
9
|
+
new(items, options).recommend
|
10
|
+
end
|
7
11
|
end
|
8
12
|
|
9
13
|
attr_reader :items
|
@@ -83,5 +87,21 @@ module MeducationSDK
|
|
83
87
|
def config
|
84
88
|
MeducationSDK.config
|
85
89
|
end
|
90
|
+
|
91
|
+
class UserRecommender
|
92
|
+
include Helpers
|
93
|
+
def initialize(user, options = {})
|
94
|
+
@user = user
|
95
|
+
@options = options
|
96
|
+
@limit = options[:limit] || 5
|
97
|
+
end
|
98
|
+
|
99
|
+
def recommend
|
100
|
+
results = Loquor.get("items/recommendations_for_user", user_id: @user.id)
|
101
|
+
results.map do |result|
|
102
|
+
sdk_class_for(result[:type]).new(result)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
86
106
|
end
|
87
107
|
end
|
@@ -32,6 +32,12 @@ module MeducationSDK
|
|
32
32
|
Recommender.recommend(item)
|
33
33
|
end
|
34
34
|
|
35
|
+
def test_should_call_user_recommnder_new_with_user
|
36
|
+
user = User.new({})
|
37
|
+
Recommender::UserRecommender.expects(:new).with(user, {}).returns(mock(recommend: nil))
|
38
|
+
Recommender.recommend(user)
|
39
|
+
end
|
40
|
+
|
35
41
|
def test_should_proxy_to_recommend
|
36
42
|
Recommender.any_instance.expects(:recommend)
|
37
43
|
Recommender.recommend(nil)
|
@@ -39,6 +45,7 @@ module MeducationSDK
|
|
39
45
|
|
40
46
|
def test_should_use_items_not_board_items
|
41
47
|
Net::HTTP.expects(:get_response).with("recommender.meducation.net", "/combined?MediaFile/#{item.id}", 4567).returns(empty_response)
|
48
|
+
MediaFile.expects(:where).returns(@per_result)
|
42
49
|
item = BoardItem.new(item_type: "MediaFile", item_id: 10)
|
43
50
|
Recommender.new(item).recommend
|
44
51
|
end
|
@@ -153,5 +160,26 @@ module MeducationSDK
|
|
153
160
|
items = Recommender.new(item).recommend
|
154
161
|
assert_equal [item2], items
|
155
162
|
end
|
163
|
+
|
164
|
+
def test_user_recommender_calls_spi
|
165
|
+
user = User.new({id: 2})
|
166
|
+
recommender = Recommender::UserRecommender.new(user)
|
167
|
+
Loquor.expects(:get).with("items/recommendations_for_user", user_id: user.id).returns([])
|
168
|
+
recommender.recommend
|
169
|
+
end
|
170
|
+
|
171
|
+
def test_user_recommender_calls_return_objects
|
172
|
+
user = User.new({id: 2})
|
173
|
+
response = [{type: "MediaFile", id: 8}, {type: "ExternalResource", id: 22}]
|
174
|
+
recommender = Recommender::UserRecommender.new(user)
|
175
|
+
Loquor.expects(:get).returns(response)
|
176
|
+
results = recommender.recommend
|
177
|
+
|
178
|
+
assert results[0].is_a?(MediaFile)
|
179
|
+
assert_equal 8, results[0].id
|
180
|
+
|
181
|
+
assert results[1].is_a?(ExternalResource)
|
182
|
+
assert_equal 22, results[1].id
|
183
|
+
end
|
156
184
|
end
|
157
185
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: meducation_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Walker
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -258,7 +258,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
258
258
|
version: '0'
|
259
259
|
requirements: []
|
260
260
|
rubyforge_project:
|
261
|
-
rubygems_version: 2.2.
|
261
|
+
rubygems_version: 2.2.1
|
262
262
|
signing_key:
|
263
263
|
specification_version: 4
|
264
264
|
summary: The SDK for Meducation
|