gorse 0.4.0

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 +7 -0
  2. data/lib/gorse.rb +55 -0
  3. metadata +43 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: de1508be3a15a7aefd31a677989145e16c1ecc19633abb8cc173f462a6ea924f
4
+ data.tar.gz: 3bac22cda6b6684942fa60591e3c52fffcd6774ee7e22624ad094c324d4dee5d
5
+ SHA512:
6
+ metadata.gz: 1369d41be05ce573fba6846d7c96b820c592fe41bc9ee3e0b4a557fbe1ddce6984eeeddb69fda494b9a6700e51afe64c861c73d41249db2c3e18e75cc0f5698c
7
+ data.tar.gz: aadef649c5fa603a2614f18a152ed923de9361d0e73fbc521365e840014883b8ab7a2160e9d1a1f1ca627b8cbdb5841ad4ff4594862b5d8c6db4b59cf6c6b47a
data/lib/gorse.rb ADDED
@@ -0,0 +1,55 @@
1
+ require 'json'
2
+ require 'net/http'
3
+
4
+ class Feedback
5
+ def initialize(feedback_type, user_id, item_id, timestamp)
6
+ @feedback_type = feedback_type
7
+ @user_id = user_id
8
+ @item_id = item_id
9
+ @timestamp = timestamp
10
+ end
11
+
12
+ def to_json(options = {})
13
+ {
14
+ 'FeedbackType' => @feedback_type,
15
+ 'UserId' => @user_id,
16
+ 'ItemId' => @item_id,
17
+ 'Timestamp' => @timestamp
18
+ }.to_json(options)
19
+ end
20
+ end
21
+
22
+ class RowAffected
23
+ def initialize(row_affected)
24
+ @row_affected = row_affected
25
+ end
26
+
27
+ def self.from_json(string)
28
+ data = JSON.load string
29
+ self.new data['RowAffected']
30
+ end
31
+
32
+ attr_reader :row_affected
33
+ end
34
+
35
+ class Gorse
36
+ def initialize(endpoint, api_key = "")
37
+ @endpoint = endpoint
38
+ @api_key = api_key
39
+ end
40
+
41
+ def insert_feedback(feedback)
42
+ uri = URI("#{@endpoint}/api/feedback")
43
+ response = Net::HTTP::post(uri, JSON.generate(feedback), {
44
+ 'Content-Type' => 'application/json',
45
+ 'Accept' => 'application/json'
46
+ })
47
+ RowAffected.from_json(response.body)
48
+ end
49
+
50
+ def get_recommend(user_id)
51
+ uri = URI("#{@endpoint}/api/recommend/#{user_id}")
52
+ response = Net::HTTP::get(uri)
53
+ JSON.parse(response)
54
+ end
55
+ end
metadata ADDED
@@ -0,0 +1,43 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gorse
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
+ platform: ruby
6
+ authors:
7
+ - Zhenghao Zhang
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-06-01 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Ruby SDK for Gorse recommender system
14
+ email: zhangzhenghao@hotmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/gorse.rb
20
+ homepage: https://gorse.io/
21
+ licenses:
22
+ - Apache 2
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubygems_version: 3.0.3.1
40
+ signing_key:
41
+ specification_version: 4
42
+ summary: Ruby SDK for Gorse recommender system
43
+ test_files: []