cloth 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cloth.rb +5 -1
- data/lib/cloth/account.rb +9 -0
- data/lib/cloth/client.rb +18 -11
- data/lib/cloth/item.rb +18 -6
- data/lib/cloth/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4859db3b96e68fb4659b746327882b2234af798
|
4
|
+
data.tar.gz: 07f971ddcf128572453e1706f8d904e4a35f8378
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 904ed1d055ce2d37c6eb4b125d56a5c67ef2a31d6771550e9267a626dcb9ff4913609f69d73813d8f8a43c7a4453be4e8eb5e15726ef7f93e2877b30259b290b
|
7
|
+
data.tar.gz: cfefa91159832584e3a265a467196fca65bb509cdc56f9271e0a449050471b8dad46e995b26a7f7801e23139fdda40aa63bfa3725c5db6142a3ccbb056d71037
|
data/lib/cloth.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require "cloth/account"
|
1
2
|
require "cloth/client"
|
2
3
|
require "cloth/item"
|
3
4
|
require "cloth/user"
|
@@ -6,7 +7,6 @@ require "cloth/version"
|
|
6
7
|
module Cloth
|
7
8
|
class << self
|
8
9
|
attr_accessor :api_key, :client
|
9
|
-
attr_reader :api_url
|
10
10
|
|
11
11
|
def client
|
12
12
|
@_client ||= Cloth::Client.new
|
@@ -15,5 +15,9 @@ module Cloth
|
|
15
15
|
def api_url
|
16
16
|
@api_url ||= "https://api.cloth.network"
|
17
17
|
end
|
18
|
+
|
19
|
+
def api_url=(url)
|
20
|
+
@api_url = url
|
21
|
+
end
|
18
22
|
end
|
19
23
|
end
|
data/lib/cloth/client.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'typhoeus'
|
3
|
+
|
1
4
|
module Cloth
|
2
5
|
class Client
|
3
6
|
attr_reader :api_key
|
@@ -6,33 +9,37 @@ module Cloth
|
|
6
9
|
raise Exception, "An API key must be set before the Cloth client can be used. Set an API key with 'Cloth.api_key = ...'" unless @api_key
|
7
10
|
end
|
8
11
|
|
9
|
-
def get(url, options)
|
10
|
-
request(:get, url, options)
|
12
|
+
def get(url, options = {})
|
13
|
+
JSON.parse(request(:get, url, options).run.body)
|
11
14
|
end
|
12
15
|
|
13
|
-
def post(url, options)
|
14
|
-
|
16
|
+
def post(url, options = {})
|
17
|
+
headers = { 'Content-Type': "application/x-www-form-urlencoded" }
|
18
|
+
JSON.parse(request(:post, url, options.merge({ headers: headers })).run.body)
|
15
19
|
end
|
16
20
|
|
17
|
-
def request(method
|
21
|
+
def request(method, url, options = {})
|
18
22
|
fixed_url = url[0] == "/" ? url[1..-1] : url
|
23
|
+
url = [Cloth.api_url, fixed_url].join('/')
|
19
24
|
Typhoeus::Request.new(
|
20
|
-
|
25
|
+
url,
|
21
26
|
method: method,
|
22
27
|
body: options[:body],
|
23
28
|
params: options[:params],
|
24
29
|
headers: {
|
25
|
-
'
|
26
|
-
|
27
|
-
|
30
|
+
'Accept': 'application/json',
|
31
|
+
'Cloth-Api-Key': @api_key,
|
32
|
+
'Content-Type': 'application/json'
|
33
|
+
}.merge(options[:headers] || {})
|
34
|
+
)
|
28
35
|
end
|
29
36
|
|
30
37
|
class << self
|
31
|
-
def get(url, options)
|
38
|
+
def get(url, options = {})
|
32
39
|
Cloth.client.get(url, options)
|
33
40
|
end
|
34
41
|
|
35
|
-
def post(url, options)
|
42
|
+
def post(url, options = {})
|
36
43
|
Cloth.client.post(url, options)
|
37
44
|
end
|
38
45
|
end
|
data/lib/cloth/item.rb
CHANGED
@@ -1,30 +1,42 @@
|
|
1
1
|
module Cloth
|
2
2
|
class Item
|
3
|
+
def initialize(id, data)
|
4
|
+
@id = id
|
5
|
+
@data = data
|
6
|
+
@user = data["user_id"] if @data && data["user_id"]
|
7
|
+
end
|
8
|
+
|
3
9
|
attr_reader :data
|
4
10
|
attr_reader :id
|
11
|
+
attr_reader :user
|
5
12
|
|
6
13
|
def recommend
|
7
|
-
Cloth.client.post("/api/items/recommend", { id: id, data: data })
|
14
|
+
Cloth.client.post("/api/items/recommend", { body: { item: { id: id, data: data } } })
|
8
15
|
end
|
9
16
|
|
10
17
|
def unrecommend
|
11
|
-
Cloth.client.post("/api/items/unrecommend", { id: id, data: data })
|
18
|
+
Cloth.client.post("/api/items/unrecommend", { body: { item: { id: id, data: data } } })
|
12
19
|
end
|
13
20
|
|
14
21
|
def recommendations
|
15
|
-
Cloth.client.get("/api/items/#{id}/recommendations")
|
22
|
+
resp = Cloth.client.get("/api/items/#{id}/recommendations")
|
23
|
+
if resp['recommendations']
|
24
|
+
resp['recommendations']
|
25
|
+
else
|
26
|
+
resp
|
27
|
+
end
|
16
28
|
end
|
17
29
|
|
18
30
|
class << self
|
19
|
-
def
|
31
|
+
def recommend(id, data = nil)
|
20
32
|
Item.new(id, data).recommend
|
21
33
|
end
|
22
34
|
|
23
|
-
def
|
35
|
+
def unrecommend(id, data = nil)
|
24
36
|
Item.new(id, data).unrecommend
|
25
37
|
end
|
26
38
|
|
27
|
-
def recommendations(id, data)
|
39
|
+
def recommendations(id, data = nil)
|
28
40
|
Item.new(id, data).recommendations
|
29
41
|
end
|
30
42
|
end
|
data/lib/cloth/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kristian Freeman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-10-
|
11
|
+
date: 2017-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -78,6 +78,7 @@ files:
|
|
78
78
|
- bin/console
|
79
79
|
- bin/setup
|
80
80
|
- lib/cloth.rb
|
81
|
+
- lib/cloth/account.rb
|
81
82
|
- lib/cloth/client.rb
|
82
83
|
- lib/cloth/item.rb
|
83
84
|
- lib/cloth/user.rb
|