little 0.0.4 → 0.0.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.
- data/lib/little/asset.rb +74 -0
- data/lib/little/sender.rb +17 -12
- data/lib/little/tag.rb +11 -11
- data/lib/little/version.rb +1 -1
- data/lib/little.rb +10 -7
- metadata +7 -7
- data/lib/little/like.rb +0 -66
data/lib/little/asset.rb
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
module Little
|
2
|
+
# add, delete and retrieve likes by user or assets
|
3
|
+
class Asset
|
4
|
+
# votes for an asset
|
5
|
+
# @param [String] user the user who likes the asset
|
6
|
+
# @param [String] asset the asset being liked
|
7
|
+
# @param [int] type the type of asset
|
8
|
+
# params [symbol] up_or_down either :up or :down
|
9
|
+
def self.vote(user, asset, type, up_or_down)
|
10
|
+
Little.post(:assets, {:user => user, :asset => asset, :type => type, :vote => up_or_down == :up}, [:user, :asset, :type], 'vote')
|
11
|
+
end
|
12
|
+
|
13
|
+
# generates a signature for voting on an asset (useful when using the javascript library)
|
14
|
+
def self.sign_vote(user, asset, type)
|
15
|
+
Little.sign(:assets, {:user => user, :asset => asset, :type => type})
|
16
|
+
end
|
17
|
+
|
18
|
+
# rates an asset
|
19
|
+
# @param [String] user the user who likes the asset
|
20
|
+
# @param [String] asset the asset being liked
|
21
|
+
# @param [int] type the type of asset
|
22
|
+
# params [int] rating the rating
|
23
|
+
def self.rate(user, asset, type, rating)
|
24
|
+
Little.post(:assets, {:user => user, :asset => asset, :type => type, :rate => rating}, [:user, :asset, :type], 'rate')
|
25
|
+
end
|
26
|
+
|
27
|
+
# generates a signature for rating an asset (useful when using the javascript library)
|
28
|
+
def self.sign_rate(user, asset, type)
|
29
|
+
Little.sign(:assets, {:user => user, :asset => asset, :type => type})
|
30
|
+
end
|
31
|
+
|
32
|
+
# does the user like the asset
|
33
|
+
def self.user_asset(user, asset, type)
|
34
|
+
Little.get(:assets, {:user => user, :asset => asset, :type => type})
|
35
|
+
end
|
36
|
+
|
37
|
+
# gets all the user's assets
|
38
|
+
# params [bool] vote true or false to get assets voted for or against, or nil to get all
|
39
|
+
# params [bool] rated_only true or false to get assets the user rated, or nil to get all
|
40
|
+
def self.for_user(user, page, records, vote = nil, rated_only = nil)
|
41
|
+
Little.get(:assets, {:user => user, :page => page, :records => records, :vote => vote, :rate => rated_only})
|
42
|
+
end
|
43
|
+
|
44
|
+
# gets the number of assets the user likes
|
45
|
+
def self.for_user_count(user, vote = nil, rated_only = nil)
|
46
|
+
Little.get(:assets, {:user => user, :count => true, :vote => vote, :rate => rated_only})
|
47
|
+
end
|
48
|
+
|
49
|
+
# gets all the users who like an asset
|
50
|
+
def self.for_asset(asset, type, page, records, vote = nil, rated_only = nil)
|
51
|
+
Little.get(:assets, {:asset => asset, :type => type, :page => page, :records => records, :vote => vote, :rate => rated_only})
|
52
|
+
end
|
53
|
+
|
54
|
+
# gets the number of users who like an asset
|
55
|
+
def self.for_asset_count(asset, type, vote = nil, rated_only = nil)
|
56
|
+
Little.get(:assets, {:asset => asset, :type => type, :count => true, :vote => vote, :rate => rated_only})
|
57
|
+
end
|
58
|
+
|
59
|
+
# gets the assets liked by type, ordered by number of likes (desc)
|
60
|
+
def self.highest_rated(type, page, records)
|
61
|
+
Little.get(:assets, {:type => type, :page => page, :records => records}, nil, 'by_rate')
|
62
|
+
end
|
63
|
+
|
64
|
+
# gets the assets liked by type, ordered by number of likes (desc)
|
65
|
+
def self.most_votes(type, page, records)
|
66
|
+
Little.get(:assets, {:type => type, :page => page, :records => records}, nil, 'by_vote')
|
67
|
+
end
|
68
|
+
|
69
|
+
# gets the number of assets for a type
|
70
|
+
def self.count_by_type(type)
|
71
|
+
Little.get(:assets, {:type => type}, nil, 'count')
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
data/lib/little/sender.rb
CHANGED
@@ -11,20 +11,20 @@ module Little
|
|
11
11
|
@configuration = configuration
|
12
12
|
end
|
13
13
|
|
14
|
-
def get_request(resource, data, signature_keys)
|
15
|
-
query_request(:get, resource, data, signature_keys)
|
14
|
+
def get_request(resource, data, signature_keys, url)
|
15
|
+
query_request(:get, resource, data, signature_keys, url)
|
16
16
|
end
|
17
17
|
|
18
|
-
def delete_request(resource, data, signature_keys)
|
19
|
-
query_request(:delete, resource, data, signature_keys)
|
18
|
+
def delete_request(resource, data, signature_keys, url)
|
19
|
+
query_request(:delete, resource, data, signature_keys, url)
|
20
20
|
end
|
21
21
|
|
22
|
-
def post_request(resource, data, signature_keys)
|
23
|
-
form_request(:post, resource, data, signature_keys)
|
22
|
+
def post_request(resource, data, signature_keys, url)
|
23
|
+
form_request(:post, resource, data, signature_keys, url)
|
24
24
|
end
|
25
25
|
|
26
|
-
def put_request(resource, data, signature_keys)
|
27
|
-
form_request(:put, resource, data, signature_keys)
|
26
|
+
def put_request(resource, data, signature_keys, url)
|
27
|
+
form_request(:put, resource, data, signature_keys, url)
|
28
28
|
end
|
29
29
|
|
30
30
|
private
|
@@ -47,22 +47,27 @@ module Little
|
|
47
47
|
URI.encode_www_form(data)
|
48
48
|
end
|
49
49
|
|
50
|
-
def query_request(method, resource, data, signature_keys)
|
50
|
+
def query_request(method, resource, data, signature_keys, url)
|
51
51
|
response = nil
|
52
52
|
begin
|
53
53
|
http = create_http(resource, data, signature_keys)
|
54
|
-
|
54
|
+
full_url = "#{BASE_URL}#{resource}"
|
55
|
+
full_url += "/#{url}" unless url.nil?
|
56
|
+
full_url += "?#{url_encode(data)}"
|
57
|
+
response = http.send(method, full_url, HEADERS)
|
55
58
|
rescue => e
|
56
59
|
raise Little::Error.new(-1, e)
|
57
60
|
end
|
58
61
|
handle_response(response) unless response.nil?
|
59
62
|
end
|
60
63
|
|
61
|
-
def form_request(method, resource, data, signature_keys)
|
64
|
+
def form_request(method, resource, data, signature_keys, url)
|
62
65
|
response = nil
|
63
66
|
begin
|
64
67
|
http = create_http(resource, data, signature_keys)
|
65
|
-
|
68
|
+
full_url = "#{BASE_URL}#{resource}"
|
69
|
+
full_url += "/#{url}" unless url.nil?
|
70
|
+
response = http.send(method, full_url, url_encode(data), HEADERS)
|
66
71
|
rescue => e
|
67
72
|
raise Little::Error.new(-2, e)
|
68
73
|
end
|
data/lib/little/tag.rb
CHANGED
@@ -10,12 +10,12 @@ module Little
|
|
10
10
|
def self.add(user, asset, type, share, data = nil)
|
11
11
|
d = {:user => user, :asset => asset, :share => share, :type => type}
|
12
12
|
d[:data] = data if data
|
13
|
-
Little.post(:tags, d, [:user])
|
13
|
+
Little.post(:tags, d, [:user, :asset, :type])
|
14
14
|
end
|
15
15
|
|
16
16
|
# generates a signature for adding a tag (useful when using the javascript library)
|
17
|
-
def self.sign_add(user)
|
18
|
-
Little.sign(:tags, {:user => user})
|
17
|
+
def self.sign_add(user, asset, type)
|
18
|
+
Little.sign(:tags, {:user => user, :asset => asset, :type => type})
|
19
19
|
end
|
20
20
|
|
21
21
|
# removes a tag for a user to an asset
|
@@ -42,46 +42,46 @@ module Little
|
|
42
42
|
end
|
43
43
|
|
44
44
|
# gets all the tags for a user
|
45
|
-
def self.
|
45
|
+
def self.for_user(user, page, records, shared_only = true)
|
46
46
|
data = {:user => user, :page => page, :records => records}
|
47
47
|
Little.get(:tags, data, shared_only ? nil : [:user])
|
48
48
|
end
|
49
49
|
|
50
50
|
# gets all the assets liked for a user for a specific asset
|
51
|
-
def self.
|
51
|
+
def self.for_user_and_asset(user, asset, type, page, records, shared_only = true)
|
52
52
|
data = {:user => user, :asset => asset, :type => type, :page => page, :records => records}
|
53
53
|
Little.get(:tags, data, shared_only ? nil : [:user, :asset, :type])
|
54
54
|
end
|
55
55
|
|
56
56
|
# gets the number of tags for a user
|
57
|
-
def self.
|
57
|
+
def self.for_user_count(user, shared_only = true)
|
58
58
|
data = {:user => user, :count => true}
|
59
59
|
Little.get(:tags, data, shared_only ? nil : [:user])
|
60
60
|
end
|
61
61
|
|
62
62
|
# gets all the of tags for a user for a specific asset
|
63
|
-
def self.
|
63
|
+
def self.for_user_and_asset_count(user, asset, type, shared_only = true)
|
64
64
|
data = {:user => user, :asset => asset, :type => type, :count => true}
|
65
65
|
Little.get(:tags, data, shared_only ? nil : [:user, :asset, :type])
|
66
66
|
end
|
67
67
|
|
68
68
|
# generates a signature for getting a tags for a user (useful when using the javascript library)
|
69
|
-
def self.
|
69
|
+
def self.sign_for_user(user)
|
70
70
|
Little.sign(:tags, {:user => user})
|
71
71
|
end
|
72
72
|
|
73
73
|
# generates a signature for getting a for a user for a specific asset (useful when using the javascript library)
|
74
|
-
def self.
|
74
|
+
def self.sign_for_user_and_asset(user, asset, type)
|
75
75
|
Little.sign(:tags, {:user => user, :asset => asset, :type => type})
|
76
76
|
end
|
77
77
|
|
78
78
|
# gets all the shared tags for a specific asset
|
79
|
-
def self.
|
79
|
+
def self.for_asset(asset, type, page, records)
|
80
80
|
Little.get(:tags, {:asset => asset, :type => type, :page => page, :records => records})
|
81
81
|
end
|
82
82
|
|
83
83
|
# gets the number of shared tags for a specific asset
|
84
|
-
def self.
|
84
|
+
def self.for_asset_count(asset, type)
|
85
85
|
Little.get(:tags, {:asset => asset, :type => type, :count => true})
|
86
86
|
end
|
87
87
|
end
|
data/lib/little/version.rb
CHANGED
data/lib/little.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'little/version'
|
2
2
|
require 'little/error'
|
3
3
|
require 'little/configuration'
|
4
|
-
require 'little/
|
4
|
+
require 'little/asset'
|
5
5
|
require 'little/tag'
|
6
6
|
require 'little/attempt'
|
7
7
|
require 'little/notification'
|
@@ -36,22 +36,25 @@ module Little #:nodoc
|
|
36
36
|
end
|
37
37
|
|
38
38
|
# Issues a POST request to the little.io service
|
39
|
-
|
40
|
-
|
39
|
+
# @param [String, Symbol] resource name of the resource (:tags, :likes, ...)
|
40
|
+
# @param [Hash] data data to send to the service
|
41
|
+
# @param [Array] signature_keys keys of the data used for signing (optional)
|
42
|
+
def post(resource, data, signature_keys, url = nil)
|
43
|
+
sender.post_request(resource, data, signature_keys, url)
|
41
44
|
end
|
42
45
|
# Issues a DELETE request to the little.io service
|
43
46
|
# @param [String, Symbol] resource name of the resource (:tags, :likes, ...)
|
44
47
|
# @param [Hash] data data to send to the service
|
45
48
|
# @param [Array] signature_keys keys of the data used for signing (optional)
|
46
|
-
def delete(resource, data, signature_keys)
|
47
|
-
sender.delete_request(resource, data, signature_keys)
|
49
|
+
def delete(resource, data, signature_keys, url = nil)
|
50
|
+
sender.delete_request(resource, data, signature_keys, url)
|
48
51
|
end
|
49
52
|
# Issues a GET request to the little.io service
|
50
53
|
# @param [String, Symbol] resource name of the resource (:tags, :likes, ...)
|
51
54
|
# @param [Hash] data data to send to the service
|
52
55
|
# @param [Array] signature_keys keys of the data used for signing (optional)
|
53
|
-
def get(resource, data, signature_keys = nil)
|
54
|
-
sender.get_request(resource, data, signature_keys)
|
56
|
+
def get(resource, data, signature_keys = nil, url = nil)
|
57
|
+
sender.get_request(resource, data, signature_keys, url)
|
55
58
|
end
|
56
59
|
end
|
57
60
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: little
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-12-
|
12
|
+
date: 2011-12-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: addressable
|
16
|
-
requirement: &
|
16
|
+
requirement: &70247362540800 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.2.6
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70247362540800
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: json
|
27
|
-
requirement: &
|
27
|
+
requirement: &70247362539500 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70247362539500
|
36
36
|
description:
|
37
37
|
email:
|
38
38
|
- help@little.io
|
@@ -40,10 +40,10 @@ executables: []
|
|
40
40
|
extensions: []
|
41
41
|
extra_rdoc_files: []
|
42
42
|
files:
|
43
|
+
- lib/little/asset.rb
|
43
44
|
- lib/little/attempt.rb
|
44
45
|
- lib/little/configuration.rb
|
45
46
|
- lib/little/error.rb
|
46
|
-
- lib/little/like.rb
|
47
47
|
- lib/little/notification.rb
|
48
48
|
- lib/little/sender.rb
|
49
49
|
- lib/little/tag.rb
|
data/lib/little/like.rb
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
module Little
|
2
|
-
# add, delete and retrieve likes by user or assets
|
3
|
-
class Like
|
4
|
-
# adds a like for a user to an asset
|
5
|
-
# @param [String] user the user who likes the asset
|
6
|
-
# @param [String] asset the asset being liked
|
7
|
-
# @param [int] type the type of asset
|
8
|
-
def self.add(user, asset, type)
|
9
|
-
Little.post(:likes, {:user => user, :asset => asset, :type => type}, [:user])
|
10
|
-
end
|
11
|
-
|
12
|
-
# generates a signature for adding a like (useful when using the javascript library)
|
13
|
-
def self.sign_add(user)
|
14
|
-
Little.sign(:likes, {:user => user})
|
15
|
-
end
|
16
|
-
|
17
|
-
# removes a like for a user to an asset
|
18
|
-
# @param [String] user the user who no longer likes the asset
|
19
|
-
# @param [String] asset the asset being unliked
|
20
|
-
# @param [int] type the type of asset
|
21
|
-
def self.delete(user, asset, type)
|
22
|
-
Little.delete(:likes, {:user => user, :asset => asset, :type => type}, [:user, :asset, :type])
|
23
|
-
end
|
24
|
-
|
25
|
-
# generates a signature for deleting a like (useful when using the javascript library)
|
26
|
-
# @param [String] user the user who no longr likes the asset
|
27
|
-
def self.sign_delete(user, asset, type)
|
28
|
-
Little.sign(:likes, {:user => user, :asset => asset, :type => type})
|
29
|
-
end
|
30
|
-
|
31
|
-
# does the user like the asset
|
32
|
-
def self.user_likes_asset(user, asset, type)
|
33
|
-
Little.get(:likes, {:user => user, :asset => asset, :type => type})
|
34
|
-
end
|
35
|
-
|
36
|
-
# gets all the assets liked by the user
|
37
|
-
def self.user_likes(user, page, records)
|
38
|
-
Little.get(:likes, {:user => user, :page => page, :records => records})
|
39
|
-
end
|
40
|
-
|
41
|
-
# gets the number of assets the user likes
|
42
|
-
def self.user_like_count(user)
|
43
|
-
Little.get(:likes, {:user => user, :count => true})
|
44
|
-
end
|
45
|
-
|
46
|
-
# gets all the users who like an asset
|
47
|
-
def self.asset_liked_by(asset, type, page, records)
|
48
|
-
Little.get(:likes, {:asset => asset, :type => type, :page => page, :records => records})
|
49
|
-
end
|
50
|
-
|
51
|
-
# gets the number of users who like an asset
|
52
|
-
def self.asset_like_count(asset, type)
|
53
|
-
Little.get(:likes, {:asset => asset, :type => type, :count => true})
|
54
|
-
end
|
55
|
-
|
56
|
-
# gets the assets liked by type, ordered by number of likes (desc)
|
57
|
-
def self.by_type(type, page, records)
|
58
|
-
Little.get(:likes, {:type => type, :page => page, :records => records})
|
59
|
-
end
|
60
|
-
|
61
|
-
# gets the number of assets for a type
|
62
|
-
def self.by_type_count(type)
|
63
|
-
Little.get(:likes, {:type => type, :count => true})
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|