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 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