meducation_sdk 1.6.4 → 1.6.5

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: 1c88f47006482637173b6f0ecefb769bf0fc8cba
4
- data.tar.gz: 413eca4a6ba923a7374bf5d4f0c526a0836c5969
3
+ metadata.gz: 88b274bb643e4cd8f5b49a2320791031006b1725
4
+ data.tar.gz: 48542ce459f4b7b4c181d7c3ba3015a9244514e9
5
5
  SHA512:
6
- metadata.gz: cc609c0703bfb356080658287b5ae6f4fe156d8eadbb3a2a5e69e5a80eebfd1638429ab3265bd277fe18a573efbbf8d3ebb570dd97bf6bca8a9d380a89cb5816
7
- data.tar.gz: e5145e0d61744cba03195e9899de18ed8e4cae404b0c53783c0ed5ae254790d5663d48f6f59cb21433d55007172d072daeed6efb6e81ef48c5b5a0268f94e2f8
6
+ metadata.gz: 32776277566684a0b2e58ad7e51952b9b396e21194f11167d5376d27d6f57325a4cc6d7773816ea1e07396fcd5aace9185460cf507e137f1f0547ca0e759ef9f
7
+ data.tar.gz: d79509139ba22b70c044023877e73e4b7a84d5a27415a381f93212b6b39faf01062279988c0a83d83875e91fccb05596ec2b9a831d42f13adcb36745de0a30cd
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ # 1.6.5 / 2014-03-14
2
+ * [FEATURE] Allow recommendations of multiple items
3
+
1
4
  # 1.6.4 / 2014-03-13
2
5
  * [FEATURE] Recommendations are padded with good resources to reach limit
3
6
 
@@ -2,13 +2,13 @@ module MeducationSDK
2
2
  class Recommender
3
3
  include Helpers
4
4
 
5
- def self.recommend(item, options = {})
6
- new(item, options).recommend
5
+ def self.recommend(items, options = {})
6
+ new(items, options).recommend
7
7
  end
8
8
 
9
- attr_reader :item
10
- def initialize(item, options = {})
11
- @item = item
9
+ attr_reader :items
10
+ def initialize(items, options = {})
11
+ @items = [items].flatten
12
12
  @options = options
13
13
  @limit = options[:limit] || 5
14
14
  end
@@ -54,7 +54,12 @@ module MeducationSDK
54
54
  end
55
55
 
56
56
  def recommender_json
57
- path = "/#{spi_type_for(item.class.name)}/#{item.id}"
57
+ path = "/combined"
58
+ separator = "?"
59
+ @items.each do |item|
60
+ path << separator << "#{spi_type_for(item.class.name)}/#{item.id}"
61
+ separator = "&"
62
+ end
58
63
  log "Calling #{config.recommender_host}:#{config.recommender_host}#{path}"
59
64
  response = Net::HTTP.get_response(config.recommender_host, path, config.recommender_port)
60
65
  body = response.body
@@ -1,3 +1,3 @@
1
1
  module MeducationSDK
2
- VERSION = "1.6.4"
2
+ VERSION = "1.6.5"
3
3
  end
@@ -37,13 +37,21 @@ module MeducationSDK
37
37
  Recommender.recommend(nil)
38
38
  end
39
39
 
40
- def test_should_call_the_recommender_service
40
+ def test_should_call_the_recommender_service_for_individual_recommendation
41
41
  @per_result.expects(:per).with(5).returns(@per_result)
42
- Net::HTTP.expects(:get_response).with("recommender.meducation.net", "/MediaFile/#{item.id}", 4567).returns(empty_response)
42
+ Net::HTTP.expects(:get_response).with("recommender.meducation.net", "/combined?MediaFile/#{item.id}", 4567).returns(empty_response)
43
43
  MediaFile.expects(:where).with('rating > 2').returns(@per_result)
44
44
  Recommender.new(item).recommend
45
45
  end
46
46
 
47
+ def test_should_call_the_recommender_service_for_multiple_recommendations
48
+ @per_result.expects(:per).with(5).returns(@per_result)
49
+ @per_result.stubs(to_a: [item, item2, item3])
50
+ Net::HTTP.expects(:get_response).with("recommender.meducation.net", "/combined?MediaFile/#{item.id}&MediaFile/#{item2.id}&MediaFile/#{item3.id}", 4567).returns(empty_response)
51
+ MediaFile.expects(:where).with('rating > 2').returns(@per_result)
52
+ Recommender.new([item, item2, item3]).recommend
53
+ end
54
+
47
55
  def test_should_call_parse_results_of_recommendation_service
48
56
  json = [
49
57
  {"type" => "MediaFile", "id" => item.id, "score" => 0.0097},
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
4
+ version: 1.6.5
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-13 00:00:00.000000000 Z
11
+ date: 2014-03-14 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.1
261
+ rubygems_version: 2.1.9
262
262
  signing_key:
263
263
  specification_version: 4
264
264
  summary: The SDK for Meducation
@@ -320,3 +320,4 @@ test_files:
320
320
  - test/resources/vote_test.rb
321
321
  - test/services/recommender_test.rb
322
322
  - test/test_helper.rb
323
+ has_rdoc: