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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 08ddf973a51ff93193675c3be4c1ae20297904a5
4
- data.tar.gz: 5a0ec446cdb211e6c4cecca3e106335a41a265ea
3
+ metadata.gz: 1bfab6bea28b6130192d1fb4ca33b67b00a709bb
4
+ data.tar.gz: a6578e60f7cc5cfde70ba744208553b327290db7
5
5
  SHA512:
6
- metadata.gz: ce5ff6e8b06853e08f49f0cd8191e2b85857e989d5e62dae1b7c8e961d6d243682694ca7018382216ef78e7833cc1be46a1cad7e4f597a7f7efb37d31539a509
7
- data.tar.gz: 04784f1efbf6054e7c6478555efa74e68c4c9577045e78e62c595868ceb81c9b4d2203a7c6487415fef982ac7480ea0c090c5fba4e8ed185180954c1842ecc43
6
+ metadata.gz: 94c5d9986465525c13056d1dc42ce85ba36a4c0636c4bae3e5b41985aaa90757225d2e15e631e2a2794cc3e5f6d217f1883623845a64681e5448e3a68f79d63f
7
+ data.tar.gz: 57bc65504e44d48f57fd8af3b9401b5a05016e42d8380a52de830ade7783a37d80669ed377a6705ae8d31baab423ab116d04e42d82b6c2156dd10f69074ca78e
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ # 1.6.12 / 2014-03-18
2
+ * [FEATURE] Add user recommendations
3
+
1
4
  # 1.6.11 / 2014-03-14
2
5
  * [BUGFIX] Allow recommendations for board items
3
6
 
@@ -3,7 +3,11 @@ module MeducationSDK
3
3
  include Helpers
4
4
 
5
5
  def self.recommend(items, options = {})
6
- new(items, options).recommend
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
@@ -1,3 +1,3 @@
1
1
  module MeducationSDK
2
- VERSION = "1.6.11"
2
+ VERSION = "1.6.12"
3
3
  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.11
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-17 00:00:00.000000000 Z
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.0
261
+ rubygems_version: 2.2.1
262
262
  signing_key:
263
263
  specification_version: 4
264
264
  summary: The SDK for Meducation