meducation_sdk 1.6.11 → 1.6.12
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 +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
|