predictionio 0.7.0 → 0.7.1.beta1

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/predictionio/client.rb +63 -0
  3. metadata +5 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4ff41097d6e2912ea649a62771deb609c9a3f025
4
- data.tar.gz: 51a35d920b0918024faa2b51fbd4ed191582afba
3
+ metadata.gz: 6d88cc824f559f883af0ee9f3390b1d320aef530
4
+ data.tar.gz: 993b00e00185f29e36d6b0b958dda77be4eb6cc2
5
5
  SHA512:
6
- metadata.gz: 60eb1cabaf2fea7df32447b602af24545731130e664b7584e7a5b2cdb90ba4278b55ab1051adf66d5ae872b992107a6a35f414c82c09f0fa99c40f8e6777a12c
7
- data.tar.gz: 6753cb134986efe6f0d0dd05235efe5639f948f47896fdd6e555d65c490408da67bb2f184a832dd3b81054edbf80a5e8c7b327d0f0b33ef446b67ba20e52f217
6
+ metadata.gz: 6566781e604ad53a2f661d44636530180db6347a1a0402ec33ba9e58f34182377798121829a45f0d513de6d4186127c68f4605f5a995dad489fbe04dedb7c85c
7
+ data.tar.gz: d691b96f2e287488627ab6043b8db95a416ec3eaeaa669c5890ed74ed467c3b1d319fcaa05879689dfc694333abda9928f087b413fbb334ecc2f52f26ee0369d
@@ -151,6 +151,9 @@ module PredictionIO
151
151
  # Raised when ItemRec results cannot be found for a user after a synchronous API call.
152
152
  class ItemRecNotFoundError < StandardError; end
153
153
 
154
+ # Raised when ItemRank results cannot be found for a user after a synchronous API call.
155
+ class ItemRankNotFoundError < StandardError; end
156
+
154
157
  # Raised when ItemSim results cannot be found for an item after a synchronous API call.
155
158
  class ItemSimNotFoundError < StandardError; end
156
159
 
@@ -531,6 +534,66 @@ module PredictionIO
531
534
  end
532
535
  end
533
536
 
537
+ # :category: Asynchronous Methods
538
+ # Asynchronously request to get the ranking for a user from an ItemRank engine and return a PredictionIO::AsyncResponse object immediately.
539
+ #
540
+ # Corresponding REST API method: GET /engines/itemrank/:engine/ranked
541
+ #
542
+ # See also #get_itemrank_ranked.
543
+ def aget_itemrank_ranked(engine, iids, params = {})
544
+ rparams = Hash.new
545
+ rparams["pio_appkey"] = @appkey
546
+ rparams["pio_uid"] = @apiuid
547
+ if iids.kind_of?(Array) && iids.any?
548
+ rparams["pio_iids"] = iids.join(",")
549
+ else
550
+ rparams["pio_iids"] = iids
551
+ end
552
+ if params["pio_attributes"]
553
+ if params["pio_attributes"].kind_of?(Array) && params["pio_attributes"].any?
554
+ rparams["pio_attributes"] = params["pio_attributes"].join(",")
555
+ else
556
+ rparams["pio_attributes"] = params["pio_attributes"]
557
+ end
558
+ end
559
+ @http.aget(PredictionIO::AsyncRequest.new("/engines/itemrank/#{engine}/ranked.#{@apiformat}", rparams))
560
+ end
561
+
562
+ # :category: Synchronous Methods
563
+ # Synchronously request to get the ranking for a user from an ItemRank engine and block until a response is received.
564
+ #
565
+ # See #aget_itemrank_ranked for a description of special argument handling.
566
+ #
567
+ # call-seq:
568
+ # aget_itemrank_ranked(engine, n, params = {})
569
+ # aget_itemrank_ranked(async_response)
570
+ def get_itemrank_ranked(*args)
571
+ uid_or_res = args[0]
572
+ if uid_or_res.is_a?(PredictionIO::AsyncResponse)
573
+ response = uid_or_res
574
+ else
575
+ response = aget_itemrank_ranked(*args)
576
+ end
577
+ http_response = response.get
578
+ if http_response.is_a?(Net::HTTPOK)
579
+ res = JSON.parse(http_response.body)
580
+ if response.request.params.has_key?('pio_attributes')
581
+ attributes = response.request.params['pio_attributes'].split(',')
582
+ list_of_attribute_values = attributes.map { |attrib| res[attrib] }
583
+ res["pio_iids"].zip(*list_of_attribute_values).map { |v| Hash[(['pio_iid'] + attributes).zip(v)] }
584
+ else
585
+ res["pio_iids"]
586
+ end
587
+ else
588
+ begin
589
+ msg = response.body
590
+ rescue Exception
591
+ raise ItemRankNotFoundError, response
592
+ end
593
+ raise ItemRankNotFoundError, msg
594
+ end
595
+ end
596
+
534
597
  # :category: Asynchronous Methods
535
598
  # Asynchronously request to get the top n similar items for an item from an ItemSim engine and return a PredictionIO::AsyncResponse object immediately.
536
599
  #
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: predictionio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - The PredictionIO Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-01 00:00:00.000000000 Z
11
+ date: 2014-04-28 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |
14
14
  PredictionIO is a prediction server for building smart applications. This gem
@@ -38,12 +38,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
38
38
  version: '1.9'
39
39
  required_rubygems_version: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - '>='
41
+ - - '>'
42
42
  - !ruby/object:Gem::Version
43
- version: '0'
43
+ version: 1.3.1
44
44
  requirements: []
45
45
  rubyforge_project:
46
- rubygems_version: 2.0.3
46
+ rubygems_version: 2.0.14
47
47
  signing_key:
48
48
  specification_version: 4
49
49
  summary: PredictionIO Ruby SDK