meducation_sdk 1.6.4 → 1.6.5

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