behance 0.5.1 → 0.6.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.
- checksums.yaml +5 -13
- data/CHANGELOG.md +15 -0
- data/README.md +143 -63
- data/lib/behance/client.rb +3 -1
- data/lib/behance/collections.rb +24 -16
- data/lib/behance/creatives_to_follow.rb +23 -0
- data/lib/behance/fields.rb +12 -1
- data/lib/behance/project.rb +36 -30
- data/lib/behance/user.rb +91 -35
- data/lib/behance/version.rb +1 -1
- data/lib/behance/wips.rb +19 -22
- data/spec/behance/client_spec.rb +1 -1
- data/spec/behance/collections_spec.rb +5 -5
- data/spec/behance/creatives_to_follow_spec.rb +44 -0
- data/spec/behance/fields_spec.rb +20 -1
- data/spec/behance/project_spec.rb +4 -4
- data/spec/behance/user_spec.rb +122 -28
- data/spec/behance/wips_spec.rb +28 -13
- data/spec/fixtures/collection.json +218 -34
- data/spec/fixtures/collection_projects.json +688 -88
- data/spec/fixtures/collections.json +2192 -104
- data/spec/fixtures/creatives_to_follow.json +302 -0
- data/spec/fixtures/fields.json +323 -26
- data/spec/fixtures/project.json +716 -10
- data/spec/fixtures/project_comments.json +13140 -271
- data/spec/fixtures/projects.json +786 -339
- data/spec/fixtures/user.json +165 -31
- data/spec/fixtures/user_appreciations.json +1155 -211
- data/spec/fixtures/user_collections.json +2153 -70
- data/spec/fixtures/user_followers.json +319 -0
- data/spec/fixtures/user_following.json +362 -0
- data/spec/fixtures/user_projects.json +2076 -172
- data/spec/fixtures/user_stats.json +14 -13
- data/spec/fixtures/user_wips.json +2095 -46
- data/spec/fixtures/user_work_experience.json +37 -29
- data/spec/fixtures/users.json +347 -97
- data/spec/fixtures/wip.json +72 -23
- data/spec/fixtures/wip_revision.json +28 -8
- data/spec/fixtures/wip_revision_comments.json +184 -108
- data/spec/fixtures/wips.json +1015 -158
- metadata +26 -17
data/lib/behance/fields.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
module Behance
|
3
3
|
class Client
|
4
4
|
module Fields
|
5
|
-
# Public: Retrieve all Creative Fields.
|
5
|
+
# Public: Retrieve all Creative Fields (in 'fields').
|
6
6
|
#
|
7
7
|
# Examples
|
8
8
|
#
|
@@ -12,6 +12,17 @@ module Behance
|
|
12
12
|
def fields
|
13
13
|
request("fields")["fields"]
|
14
14
|
end
|
15
|
+
|
16
|
+
# Public: Retrieve all Creative Fields (in 'popular').
|
17
|
+
#
|
18
|
+
# Examples
|
19
|
+
#
|
20
|
+
# @client.popular
|
21
|
+
#
|
22
|
+
# Returns an array of popular creative fields in JSON format.
|
23
|
+
def popular
|
24
|
+
request("fields")["popular"]
|
25
|
+
end
|
15
26
|
end
|
16
27
|
end
|
17
28
|
end
|
data/lib/behance/project.rb
CHANGED
@@ -3,29 +3,35 @@ module Behance
|
|
3
3
|
class Client
|
4
4
|
module Project
|
5
5
|
# Public: Search for projects.
|
6
|
-
#
|
7
|
-
# options - The Hash
|
8
|
-
# :q
|
9
|
-
# :sort
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
# :field
|
16
|
-
#
|
17
|
-
#
|
18
|
-
# :country
|
19
|
-
#
|
20
|
-
# :
|
21
|
-
# :
|
22
|
-
#
|
23
|
-
#
|
24
|
-
#
|
25
|
-
#
|
6
|
+
#
|
7
|
+
# options - The Hash with options that the API would expect:
|
8
|
+
# :q - Free text query string.
|
9
|
+
# :sort - The order the results are returned in.
|
10
|
+
# Possible values: featured_date (default),
|
11
|
+
# appreciations, views, comments, published_date.
|
12
|
+
# :time - Limits the search by time.
|
13
|
+
# Possible values: all (default), today, week,
|
14
|
+
# month.
|
15
|
+
# :field - Limits the search by creative field.
|
16
|
+
# Accepts a URL-encoded field name from the list
|
17
|
+
# of defined creative fields.
|
18
|
+
# :country - Limits the search by a 2-letter FIPS country
|
19
|
+
# code.
|
20
|
+
# :state - Limits the search by state or province name.
|
21
|
+
# :city - Limits the search by city name.
|
22
|
+
# :page - The page number of the results, always starting
|
23
|
+
# with 1.
|
24
|
+
# :tags - Limits the search by tags. Accepts one tag name
|
25
|
+
# or a pipe-separated list of tag names.
|
26
|
+
# :color_hex - Limit results to an RGB hex value (without #)
|
27
|
+
# :color_range - How closely to match the requested color_hex,
|
28
|
+
# in color shades (default: 20) [0-255]
|
29
|
+
# :license - Filter by creative license.
|
30
|
+
# Acronyms found here:
|
31
|
+
# http://creativecommons.org/licenses/
|
26
32
|
#
|
27
33
|
# Examples
|
28
|
-
#
|
34
|
+
#
|
29
35
|
# @client.projects
|
30
36
|
# @client.projects(q: "Freelance", state: "CA", field: "Branding")
|
31
37
|
#
|
@@ -48,20 +54,20 @@ module Behance
|
|
48
54
|
end
|
49
55
|
|
50
56
|
# Public: Get the comments for a project
|
51
|
-
#
|
52
|
-
# project_id - The ID (Integer) of the project.
|
53
|
-
# options - The Hash
|
54
|
-
# :page - The page number of the results, always
|
55
|
-
#
|
56
|
-
#
|
57
|
+
#
|
58
|
+
# project_id - The ID (Integer) of the project.
|
59
|
+
# options - The Hash with options that the API would expect:
|
60
|
+
# :page - The page number of the results, always starting
|
61
|
+
# with 1.
|
62
|
+
#
|
57
63
|
# Examples
|
58
|
-
#
|
64
|
+
#
|
59
65
|
# @client.project_comments(1)
|
60
66
|
# @client.project_comments(1, page: 1)
|
61
|
-
#
|
67
|
+
#
|
62
68
|
# Returns an array of project comments in JSON format.
|
63
69
|
def project_comments(project_id, options={})
|
64
|
-
request("projects/#{project_id}/comments", options)["comments"]
|
70
|
+
request("projects/#{project_id}/comments", options)["comments"]
|
65
71
|
end
|
66
72
|
end
|
67
73
|
end
|
data/lib/behance/user.rb
CHANGED
@@ -4,28 +4,28 @@ module Behance
|
|
4
4
|
module User
|
5
5
|
# Public: Search for users.
|
6
6
|
#
|
7
|
-
# options - The Hash
|
7
|
+
# options - The Hash with options that the API would expect:
|
8
8
|
# :q - Free text query string.
|
9
|
-
# :field - Limits the search by creative field.
|
10
|
-
# Accepts a URL-encoded field name from the list of
|
9
|
+
# :field - Limits the search by creative field.
|
10
|
+
# Accepts a URL-encoded field name from the list of
|
11
11
|
# defined creative fields.
|
12
12
|
# :country - Limits the search by a 2-letter FIPS country code.
|
13
13
|
# :state - Limits the search by state or province name.
|
14
14
|
# :city - Limits the search by city name.
|
15
|
-
# :page - The page number of the results, always starting
|
15
|
+
# :page - The page number of the results, always starting
|
16
16
|
# with 1.
|
17
|
-
# :sort - The order the results are returned in.
|
18
|
-
# Possible values: featured_date (default),
|
19
|
-
#
|
20
|
-
#
|
21
|
-
# :tags - Limits the search by tags.
|
22
|
-
# Accepts one tag name or a pipe-separated list of
|
17
|
+
# :sort - The order the results are returned in.
|
18
|
+
# Possible values: featured_date (default),
|
19
|
+
# appreciations, views, comments, published_date,
|
20
|
+
# followed.
|
21
|
+
# :tags - Limits the search by tags.
|
22
|
+
# Accepts one tag name or a pipe-separated list of
|
23
23
|
# tag names.
|
24
24
|
#
|
25
25
|
# Examples
|
26
26
|
#
|
27
27
|
# @client.users
|
28
|
-
# @client.users(q: "Juan", state: "California", :
|
28
|
+
# @client.users(q: "Juan", state: "California", tags: "freelance")
|
29
29
|
#
|
30
30
|
# Returns an array of users in JSON format.
|
31
31
|
def users(options={})
|
@@ -46,16 +46,16 @@ module Behance
|
|
46
46
|
request("users/#{user}")["user"]
|
47
47
|
end
|
48
48
|
|
49
|
-
# Public: Get the projects published by
|
49
|
+
# Public: Get the projects published by a user.
|
50
50
|
#
|
51
51
|
# user - Can be an ID (Integer) or username (String)
|
52
|
-
# options - The Hash
|
53
|
-
# :sort - The order the results are returned in.
|
54
|
-
# Possible values: featured_date (default),
|
55
|
-
#
|
56
|
-
# :time - Limits the search by time.
|
52
|
+
# options - The Hash with options that the API would expect:
|
53
|
+
# :sort - The order the results are returned in.
|
54
|
+
# Possible values: featured_date (default),
|
55
|
+
# appreciations, views, comments, published_date.
|
56
|
+
# :time - Limits the search by time.
|
57
57
|
# Possible values: all (default), today, week, month.
|
58
|
-
# :page - The page number of the results, always starting
|
58
|
+
# :page - The page number of the results, always starting
|
59
59
|
# with 1.
|
60
60
|
#
|
61
61
|
# Examples
|
@@ -64,7 +64,7 @@ module Behance
|
|
64
64
|
# @client.user_projects("foo")
|
65
65
|
# @client.user_projects("foo", page: 2, sort: "views")
|
66
66
|
#
|
67
|
-
# Returns an array of projects
|
67
|
+
# Returns an array of projects in JSON format.
|
68
68
|
def user_projects(user, options={})
|
69
69
|
request("users/#{user}/projects", options)["projects"]
|
70
70
|
end
|
@@ -72,13 +72,13 @@ module Behance
|
|
72
72
|
# Public: Get the works-in-progress published by a user.
|
73
73
|
#
|
74
74
|
# user - can be an ID (Integer) or username (String).
|
75
|
-
# options - The Hash
|
75
|
+
# options - The Hash with options that the API would expect:
|
76
76
|
# :sort - The order the results are returned in.
|
77
|
-
# Possible values: featured_date (default),
|
78
|
-
#
|
79
|
-
# :time - Limits the search by time.
|
80
|
-
# (default), today, week, month.
|
81
|
-
# :page - The page number of the results, always starting
|
77
|
+
# Possible values: featured_date (default),
|
78
|
+
# appreciations, views, comments, published_date.
|
79
|
+
# :time - Limits the search by time.
|
80
|
+
# Possible values: all (default), today, week, month.
|
81
|
+
# :page - The page number of the results, always starting
|
82
82
|
# with 1.
|
83
83
|
#
|
84
84
|
# Examples
|
@@ -87,29 +87,37 @@ module Behance
|
|
87
87
|
# @client.user_wips(1, page: 2)
|
88
88
|
# @client.user_wips("foo", sort: "comments", page: 3)
|
89
89
|
#
|
90
|
-
# Returns an array of work-in-progress
|
90
|
+
# Returns an array of work-in-progress in JSON format.
|
91
91
|
def user_wips(user, options={})
|
92
92
|
request("users/#{user}/wips", options)["wips"]
|
93
93
|
end
|
94
94
|
|
95
95
|
# Public: Get a list of user's recently appreciated projects.
|
96
96
|
#
|
97
|
-
# user
|
97
|
+
# user - can be an ID (Integer) or username (String).
|
98
|
+
# options - The Hash with options that the API would expect:
|
99
|
+
# :page - The page number of the results, always starting
|
100
|
+
# with 1.
|
98
101
|
#
|
99
102
|
# Examples
|
100
103
|
#
|
101
104
|
# @client.user_appreciations(1)
|
102
|
-
# @client.user_appreciations("foo")
|
105
|
+
# @client.user_appreciations("foo", page: 2)
|
103
106
|
#
|
104
107
|
# Returns an array of user's recently appreciated projects in JSON
|
105
108
|
# format.
|
106
|
-
def user_appreciations(user)
|
107
|
-
request("users/#{user}/appreciations")["appreciations"]
|
109
|
+
def user_appreciations(user, options={})
|
110
|
+
request("users/#{user}/appreciations", options)["appreciations"]
|
108
111
|
end
|
109
112
|
|
110
|
-
# Public: Get a list of user's
|
113
|
+
# Public: Get a list of a user's collections.
|
111
114
|
#
|
112
|
-
# user
|
115
|
+
# user - can be an ID (Integer) or username (String).
|
116
|
+
# options - The Hash with options that the API would expect:
|
117
|
+
# :time - Limits the search by time.
|
118
|
+
# Possible values: all (default), today, week, month.
|
119
|
+
# :page - The page number of the results, always starting
|
120
|
+
# with 1.
|
113
121
|
#
|
114
122
|
# Examples
|
115
123
|
#
|
@@ -118,8 +126,8 @@ module Behance
|
|
118
126
|
#
|
119
127
|
# Returns an array of user's public collections in JSON
|
120
128
|
# format.
|
121
|
-
def user_collections(user)
|
122
|
-
request("users/#{user}/collections")["collections"]
|
129
|
+
def user_collections(user, options={})
|
130
|
+
request("users/#{user}/collections", options)["collections"]
|
123
131
|
end
|
124
132
|
|
125
133
|
# Public: Get user's statistics (all-time and today).
|
@@ -136,7 +144,55 @@ module Behance
|
|
136
144
|
request("users/#{user}/stats")["stats"]
|
137
145
|
end
|
138
146
|
|
139
|
-
# Public:
|
147
|
+
# Public: Get a list of creatives who follow the user.
|
148
|
+
#
|
149
|
+
# user - can be an ID (Integer) or username (String).
|
150
|
+
# options - The Hash with options that the API would expect:
|
151
|
+
# :page - The page number of the results, always starting
|
152
|
+
# with 1.
|
153
|
+
# :sort - The order the results are returned in.
|
154
|
+
# Possible values: created_date (default),
|
155
|
+
# appreciations, views, comments, followed, alpha.
|
156
|
+
# :sort_order - The direction in which the results are returned.
|
157
|
+
# Possible values: asc, desc.
|
158
|
+
# :per_page - The number of results per page. (Max: 20)
|
159
|
+
#
|
160
|
+
# Examples
|
161
|
+
#
|
162
|
+
# @client.user_followers(1)
|
163
|
+
# @client.user_followers(1, page: 2)
|
164
|
+
# @client.user_followers("foo", sort: "alpha", page: 3)
|
165
|
+
#
|
166
|
+
# Returns an array of creatives who follow the user in JSON format.
|
167
|
+
def user_followers(user, options={})
|
168
|
+
request("users/#{user}/followers", options)["followers"]
|
169
|
+
end
|
170
|
+
|
171
|
+
# Public: Get a list of creatives followed by the user.
|
172
|
+
#
|
173
|
+
# user - can be an ID (Integer) or username (String).
|
174
|
+
# options - The Hash with options that the API would expect:
|
175
|
+
# :page - The page number of the results, always starting
|
176
|
+
# with 1.
|
177
|
+
# :sort - The order the results are returned in.
|
178
|
+
# Possible values: created_date (default),
|
179
|
+
# appreciations, views, comments, followed, alpha.
|
180
|
+
# :sort_order - The direction in which the results are returned.
|
181
|
+
# Possible values: asc, desc.
|
182
|
+
# :per_page - The number of results per page. (Max: 20)
|
183
|
+
#
|
184
|
+
# Examples
|
185
|
+
#
|
186
|
+
# @client.user_following(1)
|
187
|
+
# @client.user_following(1, page: 2)
|
188
|
+
# @client.user_following("foo", sort: "alpha", page: 3)
|
189
|
+
#
|
190
|
+
# Returns an array of creatives followed by the user in JSON format.
|
191
|
+
def user_following(user, options={})
|
192
|
+
request("users/#{user}/following", options)["following"]
|
193
|
+
end
|
194
|
+
|
195
|
+
# Public: A list of the user's professional experience
|
140
196
|
#
|
141
197
|
# user - can be an ID (Integer) or username (String).
|
142
198
|
#
|
data/lib/behance/version.rb
CHANGED
data/lib/behance/wips.rb
CHANGED
@@ -5,17 +5,14 @@ module Behance
|
|
5
5
|
# Public: Search for works-in-progress.
|
6
6
|
#
|
7
7
|
# options - The Hash with options that the API would expect:
|
8
|
-
# :
|
9
|
-
#
|
10
|
-
#
|
11
|
-
# :
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
#
|
16
|
-
# :tags - Limits the search by tags. Accepts one
|
17
|
-
# tag name or a pipe-separated list of tag
|
18
|
-
# names.
|
8
|
+
# :q - Free text query string.
|
9
|
+
# :page - The page number of the results, always starting
|
10
|
+
# with 1.
|
11
|
+
# :sort - The order the results are returned in.
|
12
|
+
# Possible values: comments (default), views,
|
13
|
+
# last_item_added_date.
|
14
|
+
# :time - Limits the search by time.
|
15
|
+
# Possible values: all, today (default), week, month.
|
19
16
|
#
|
20
17
|
# Examples
|
21
18
|
#
|
@@ -32,7 +29,7 @@ module Behance
|
|
32
29
|
# wip_id - The ID (Integer) of a wip.
|
33
30
|
#
|
34
31
|
# Examples
|
35
|
-
#
|
32
|
+
#
|
36
33
|
# @client.wip(69)
|
37
34
|
#
|
38
35
|
# Returns a wip in JSON format.
|
@@ -40,13 +37,11 @@ module Behance
|
|
40
37
|
request("wips/#{wip_id}")["wip"]
|
41
38
|
end
|
42
39
|
|
43
|
-
# Public: Get information and contents of a revision of a
|
40
|
+
# Public: Get information and contents of a revision of a
|
44
41
|
# work in progress.
|
45
42
|
#
|
46
|
-
# wip_id - The ID (Integer) from the work in progress
|
47
|
-
#
|
48
|
-
# revision_id - The ID (Integer) from the revision to look
|
49
|
-
# for.
|
43
|
+
# wip_id - The ID (Integer) from the work in progress to look for.
|
44
|
+
# revision_id - The ID (Integer) from the revision to look for.
|
50
45
|
#
|
51
46
|
# Examples
|
52
47
|
#
|
@@ -61,17 +56,19 @@ module Behance
|
|
61
56
|
#
|
62
57
|
# wip_id - The ID (Integer) from the work in progress
|
63
58
|
# to look for.
|
64
|
-
# revision_id - The ID (Integer) from the revision to look
|
59
|
+
# revision_id - The ID (Integer) from the revision to look
|
65
60
|
# for.
|
61
|
+
# options - The Hash with options that the API would expect:
|
62
|
+
# :page - The page number of the results, always starting
|
63
|
+
# with 1.
|
66
64
|
#
|
67
65
|
# Examples
|
68
66
|
#
|
69
67
|
# @client.wip_revision_comments(69, 133)
|
70
68
|
#
|
71
|
-
# Returns a work-in-progress revision comments in JSON
|
72
|
-
|
73
|
-
|
74
|
-
request("wips/#{wip_id}/#{revision_id}/comments")["comments"]
|
69
|
+
# Returns a work-in-progress revision comments in JSON format.
|
70
|
+
def wip_revision_comments(wip_id, revision_id, options={})
|
71
|
+
request("wips/#{wip_id}/#{revision_id}/comments", options)["comments"]
|
75
72
|
end
|
76
73
|
end
|
77
74
|
end
|
data/spec/behance/client_spec.rb
CHANGED
@@ -24,7 +24,7 @@ describe Behance::Client::Collections do
|
|
24
24
|
end
|
25
25
|
|
26
26
|
it "gets an collections list" do
|
27
|
-
@collections.size.should ==
|
27
|
+
@collections.size.should == 10
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
@@ -36,7 +36,7 @@ describe Behance::Client::Collections do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
it "gets an collections list" do
|
39
|
-
@collections = @client.collections(@options).size.should ==
|
39
|
+
@collections = @client.collections(@options).size.should == 10
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
@@ -54,7 +54,7 @@ describe Behance::Client::Collections do
|
|
54
54
|
end
|
55
55
|
|
56
56
|
it "gets a single collection" do
|
57
|
-
@collection["id"].should ==
|
57
|
+
@collection["id"].should == 9866
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -72,7 +72,7 @@ describe Behance::Client::Collections do
|
|
72
72
|
end
|
73
73
|
|
74
74
|
it "gets a list of projects" do
|
75
|
-
@projects.size.should ==
|
75
|
+
@projects.size.should == 12
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
@@ -85,7 +85,7 @@ describe Behance::Client::Collections do
|
|
85
85
|
|
86
86
|
it "gets a list of projects" do
|
87
87
|
@projects = @client.collection_projects(1, @options).
|
88
|
-
size.should ==
|
88
|
+
size.should == 12
|
89
89
|
end
|
90
90
|
end
|
91
91
|
end
|