behance 0.5.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +5 -13
  2. data/CHANGELOG.md +15 -0
  3. data/README.md +143 -63
  4. data/lib/behance/client.rb +3 -1
  5. data/lib/behance/collections.rb +24 -16
  6. data/lib/behance/creatives_to_follow.rb +23 -0
  7. data/lib/behance/fields.rb +12 -1
  8. data/lib/behance/project.rb +36 -30
  9. data/lib/behance/user.rb +91 -35
  10. data/lib/behance/version.rb +1 -1
  11. data/lib/behance/wips.rb +19 -22
  12. data/spec/behance/client_spec.rb +1 -1
  13. data/spec/behance/collections_spec.rb +5 -5
  14. data/spec/behance/creatives_to_follow_spec.rb +44 -0
  15. data/spec/behance/fields_spec.rb +20 -1
  16. data/spec/behance/project_spec.rb +4 -4
  17. data/spec/behance/user_spec.rb +122 -28
  18. data/spec/behance/wips_spec.rb +28 -13
  19. data/spec/fixtures/collection.json +218 -34
  20. data/spec/fixtures/collection_projects.json +688 -88
  21. data/spec/fixtures/collections.json +2192 -104
  22. data/spec/fixtures/creatives_to_follow.json +302 -0
  23. data/spec/fixtures/fields.json +323 -26
  24. data/spec/fixtures/project.json +716 -10
  25. data/spec/fixtures/project_comments.json +13140 -271
  26. data/spec/fixtures/projects.json +786 -339
  27. data/spec/fixtures/user.json +165 -31
  28. data/spec/fixtures/user_appreciations.json +1155 -211
  29. data/spec/fixtures/user_collections.json +2153 -70
  30. data/spec/fixtures/user_followers.json +319 -0
  31. data/spec/fixtures/user_following.json +362 -0
  32. data/spec/fixtures/user_projects.json +2076 -172
  33. data/spec/fixtures/user_stats.json +14 -13
  34. data/spec/fixtures/user_wips.json +2095 -46
  35. data/spec/fixtures/user_work_experience.json +37 -29
  36. data/spec/fixtures/users.json +347 -97
  37. data/spec/fixtures/wip.json +72 -23
  38. data/spec/fixtures/wip_revision.json +28 -8
  39. data/spec/fixtures/wip_revision_comments.json +184 -108
  40. data/spec/fixtures/wips.json +1015 -158
  41. metadata +26 -17
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- Yjg4OTVlY2M2ZDU5NzYyMDg0YTRmNDU1ZmMxOTY2MzhkNjQ2NDQzMA==
5
- data.tar.gz: !binary |-
6
- YWJjY2E2YjY1ZGQ2ODBkYTJiYjNjNWQ5NDM3YTdhMTBiZmRiZDlhNQ==
2
+ SHA1:
3
+ metadata.gz: 984c4d17b922fb3a353824caf5f37589aef0903d
4
+ data.tar.gz: 7d2ba3866bb1cb2e8bbc1b874a8bbf3cf7cbe0c3
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- N2EzNTQ3ZjM3OTQzNzE3YTEwMzA2MWMwMGNlYTI5NTc0NDg5ZmUzZWNlOTFj
10
- OWU2NGM1ZjM2YzQxZjc1ZTI0ZmJlZmE2N2Q3MTI5MjQzYTBmZmI5NmY4OWFk
11
- ZTU5Yzg3MGZmZjNhZDQzMWQwMGMyZWI4YjUwMTk4MWVjMTM1Nzg=
12
- data.tar.gz: !binary |-
13
- NzJkYWUwMTA2YTk3ZTVhNzRiY2QwZjlmNDZhOTc1MzIwMGIzYjgyMzg3YWYx
14
- YTk4YTQ2YzhjODQ3Nzk5YmIxNTZjZTA0ZDllZWY1NjkxOWQzZjdjNTZmY2Zm
15
- N2RlMmFiYWMwY2RjOTM0ZjQyYzA0YjIzOTdmZjc4NTUyNjcwYTE=
6
+ metadata.gz: 58129857a0e5474dd71860c1fceefd971e6c1eaebc20119666877f2f3db73399df2b022f6339c99d349994277f44f42c4a63f22f06338b5d0f2e1717482f966f
7
+ data.tar.gz: b4b556c770059adba40cef49d792cb3e333a2201de0398b2ff7dc5c2b15a9acf4cd2f2f41b60e720da4f292be3e00d9b52c9c1220b92b6d554193d22b7a1f52b
@@ -0,0 +1,15 @@
1
+ master
2
+ ===
3
+ ...
4
+
5
+ 0.6.0
6
+ ===
7
+ * Introducing CHANGELOG.md.
8
+ * [Creatives To Follow Endpoint](https://www.behance.net/dev/api/endpoints/9) added.
9
+ * `@client.popular` retrieves all Creative Fields (in 'popular').
10
+ * `@client.user_appreciations`, `@client.user_collections` and `@client.wip_revision_comments` now accepts options hash.
11
+ * `@client.user_followers` and `@client.user_following` added.
12
+
13
+ 0.5.1
14
+ ===
15
+ ...
data/README.md CHANGED
@@ -4,161 +4,241 @@ A Ruby wrapper for the Behance API.
4
4
 
5
5
  More information about the API capabilities can be found [here][api].
6
6
 
7
- [api]: http://www.behance.net/dev
7
+ [api]: https://www.behance.net/dev
8
8
 
9
9
  ## Installation
10
10
 
11
- $ gem install behance
11
+ ```
12
+ $ gem install behance
13
+ ```
12
14
 
13
15
  ## API Usage Examples
14
16
 
15
17
  First of all, you will need to get an access token [here][register].
16
18
 
17
- [register]: http://www.behance.net/dev/register
19
+ [register]: https://www.behance.net/dev/register
18
20
 
19
21
  Once you get it, you'll be able to start playing
20
22
 
21
- # initializing the client
22
- $ client = Behance::Client.new(access_token: "access-token")
23
+ ```ruby
24
+ # initializing the client
25
+ client = Behance::Client.new(access_token: "access-token")
26
+ ```
23
27
 
24
28
  ### Projects
25
29
 
26
30
  [Search for projects][projects]
27
31
 
28
- [projects]: http://www.behance.net/dev/api/endpoints/1#projects-get-10
32
+ [projects]: https://www.behance.net/dev/api/endpoints/1#projects-get-10
29
33
 
30
- $ client.projects
31
- $ client.projects(city: "San Francisco", state: "California", field: "branding")
34
+ ```ruby
35
+ client.projects
36
+ client.projects(city: "San Francisco", state: "California", field: "branding")
37
+ ```
32
38
 
33
39
  [Get the information and content of a project][project]
34
40
 
35
- [project]: http://www.behance.net/dev/api/endpoints/1#projects-get-4
41
+ [project]: https://www.behance.net/dev/api/endpoints/1#projects-get-4
36
42
 
37
- $ client.project(5133725)
43
+ ```ruby
44
+ client.project(5133725)
45
+ ```
38
46
 
39
47
  [Get the comments for a project][project_comments]
40
48
 
41
- [project_comments]: http://www.behance.net/dev/api/endpoints/1#projects-get-5
49
+ [project_comments]: https://www.behance.net/dev/api/endpoints/1#projects-get-5
42
50
 
43
- $ client.project_comments(5133725)
51
+ ```ruby
52
+ client.project_comments(5133725)
53
+ ```
44
54
 
45
55
  ### Users
46
56
 
47
- [Search for users][users]
57
+ [Search for users][users]
48
58
 
49
- [users]: http://www.behance.net/dev/api/endpoints/2#users-get-9
59
+ [users]: https://www.behance.net/dev/api/endpoints/2#users-get-9
50
60
 
51
- $ client.users
52
- $ client.users(state: "California", city: "San Francisco")
61
+ ```ruby
62
+ client.users
63
+ client.users(state: "California", city: "San Francisco")
64
+ ```
53
65
 
54
- [Get basic information about an user][user]
66
+ [Get basic information about a user][user]
55
67
 
56
- [user]: http://www.behance.net/dev/api/endpoints/2#users-get-1
68
+ [user]: https://www.behance.net/dev/api/endpoints/2#users-get-1
57
69
 
58
- $ client.user(920309)
59
- $ client.user("jonkap1")
70
+ ```ruby
71
+ client.user(920309)
72
+ client.user("jonkap1")
73
+ ```
60
74
 
61
- [Get the projects published by an user][user_projects]
75
+ [Get the projects published by a user][user_projects]
62
76
 
63
- [user_projects]: http://www.behance.net/dev/api/endpoints/2#users-get-2
77
+ [user_projects]: https://www.behance.net/dev/api/endpoints/2#users-get-2
64
78
 
65
- $ client.user_projects(920309)
66
- $ client.user_projects("jonkap1")
67
- $ client.user_projects("jonkap1", page: 2, sort: "views")
79
+ ```ruby
80
+ client.user_projects(920309)
81
+ client.user_projects("jonkap1")
82
+ client.user_projects("jonkap1", page: 2, sort: "views")
83
+ ```
68
84
 
69
- [Get the works-in-progress published by an user][user_wips]
85
+ [Get the works-in-progress published by a user][user_wips]
70
86
 
71
- [user_wips]: http://www.behance.net/dev/api/endpoints/2#users-get-3
87
+ [user_wips]: https://www.behance.net/dev/api/endpoints/2#users-get-3
72
88
 
73
- $ client.user_wips(920309)
74
- $ client.user_wips(920309, page: 2)
75
- $ client.user_wips("jonkap1", sort: "comments", page: 3)
89
+ ```ruby
90
+ client.user_wips(920309)
91
+ client.user_wips(920309, page: 2)
92
+ client.user_wips("jonkap1", sort: "comments", page: 3)
93
+ ```
76
94
 
77
95
  [Get a list of user's recently appreciated projects][user_appreciations]
78
96
 
79
- [user_appreciations]: http://www.behance.net/dev/api/endpoints/2#users-get-13
97
+ [user_appreciations]: https://www.behance.net/dev/api/endpoints/2#users-get-13
80
98
 
81
- $ client.user_appreciations(920309)
82
- $ client.user_appreciations("jonkap1")
99
+ ```ruby
100
+ client.user_appreciations(920309)
101
+ client.user_appreciations("jonkap1", page: 2)
102
+ ```
83
103
 
84
- [Get a list of a user's collections. The user argument can be an ID or username.][user_collections]
104
+ [Get a list of a user's collections][user_collections]
85
105
 
86
- [user_collections]: http://www.behance.net/dev/api/endpoints/2#users-get-21
106
+ [user_collections]: https://www.behance.net/dev/api/endpoints/2#users-get-21
87
107
 
88
- $ client.user_collections(42)
89
- $ client.user_collections(42, page: 2)
90
- $ client.user_collections("rur", page: 2)
108
+ ```ruby
109
+ client.user_collections(42)
110
+ client.user_collections(42, page: 2)
111
+ client.user_collections("rur", page: 2)
112
+ ```
91
113
 
92
- [Get user's statistics (all-time and today).][user_stats]
114
+ [Get user's statistics (all-time and today)][user_stats]
93
115
 
94
116
  [user_stats]: https://www.behance.net/dev/api/endpoints/2#users-get-55
95
117
 
96
- $ client.user_stats(42)
97
- $ client.user_stats("jonkap1")
118
+ ```ruby
119
+ client.user_stats(42)
120
+ client.user_stats("jonkap1")
121
+ ```
98
122
 
99
- [A list of the user's professional experience.][user_work_experience]
123
+ [Get a list of creatives who follow the user][user_followers]
124
+
125
+ [user_followers]: https://www.behance.net/dev/api/endpoints/2#users-get-57
126
+
127
+ ```ruby
128
+ client.user_followers(1)
129
+ client.user_followers("foo", sort: "alpha", page: 2)
130
+ ```
131
+
132
+ [Get a list of creatives followed by the user][user_following]
133
+
134
+ [user_following]: https://www.behance.net/dev/api/endpoints/2#users-get-59
135
+
136
+ ```ruby
137
+ client.user_following(1)
138
+ client.user_following("foo", sort: "alpha", page: 2)
139
+ ```
140
+
141
+ [A list of the user's professional experience][user_work_experience]
100
142
 
101
143
  [user_work_experience]: https://www.behance.net/dev/api/endpoints/2#users-get-71
102
144
 
103
- $ client.user_work_experience(42)
104
- $ client.user_work_experience("jonkap1")
145
+ ```ruby
146
+ client.user_work_experience(42)
147
+ client.user_work_experience("jonkap1")
148
+ ```
105
149
 
106
150
  ### Works in Progress
107
151
 
108
152
  [Search for works-in-progress][wips]
109
153
 
110
- [wips]: http://www.behance.net/dev/api/endpoints/3#work-in-progress-get-11
154
+ [wips]: https://www.behance.net/dev/api/endpoints/3#work-in-progress-get-11
111
155
 
112
- $ client.wips
113
- $ client.wips(time: "today", page: 2)
156
+ ```ruby
157
+ client.wips
158
+ client.wips(time: "today", page: 2)
159
+ ```
114
160
 
115
161
  [Get information about a work in progress][wip]
116
162
 
117
- [wip]: http://www.behance.net/dev/api/endpoints/3#work-in-progress-get-6
163
+ [wip]: https://www.behance.net/dev/api/endpoints/3#work-in-progress-get-6
118
164
 
119
- $ client.wip(69)
165
+ ```ruby
166
+ client.wip(69)
167
+ ```
120
168
 
121
169
  [Get information and contents of a revision of a work in progress][wip_revision]
122
170
 
123
- [wip_revision]: http://www.behance.net/dev/api/endpoints/3#work-in-progress-get-7
171
+ [wip_revision]: https://www.behance.net/dev/api/endpoints/3#work-in-progress-get-7
124
172
 
125
- $ client.wip_revision(69, 133)
173
+ ```ruby
174
+ client.wip_revision(69, 133)
175
+ ```
126
176
 
127
177
  [Get comments on a revision of a work in progress][wip_revision_comments]
128
178
 
129
- [wip_revision_comments]: http://www.behance.net/dev/api/endpoints/3#work-in-progress-get-8
179
+ [wip_revision_comments]: https://www.behance.net/dev/api/endpoints/3#work-in-progress-get-8
130
180
 
131
- $ client.wip_revision_comments(69, 133)
181
+ ```ruby
182
+ client.wip_revision_comments(69, 133)
183
+ client.wip_revision_comments(69, 133, page: 2)
184
+ ```
132
185
 
133
186
  ### Collections
134
187
 
135
188
  [Search for collections][collections]
136
189
 
137
- [collections]: http://www.behance.net/dev/api/endpoints/5#collections-get-15
190
+ [collections]: https://www.behance.net/dev/api/endpoints/5#collections-get-15
138
191
 
139
- $ client.collections
140
- $ client.collections(time: "today", page: 2)
192
+ ```ruby
193
+ client.collections
194
+ client.collections(time: "today", page: 2)
195
+ ```
141
196
 
142
197
  [Get basic information about a collection][collection]
143
198
 
144
- [collection]: http://www.behance.net/dev/api/endpoints/5#collections-get-17
199
+ [collection]: https://www.behance.net/dev/api/endpoints/5#collections-get-17
145
200
 
146
- $ client.collection(5074147)
201
+ ```ruby
202
+ client.collection(5074147)
203
+ ```
147
204
 
148
205
  [Get projects from a collection][collection_projects]
149
206
 
150
- [collection_projects]: http://www.behance.net/dev/api/endpoints/5#collections-get-19
207
+ [collection_projects]: https://www.behance.net/dev/api/endpoints/5#collections-get-19
151
208
 
152
- $ client.collection_projects(5074147)
153
- $ client.collection_projects(5074147, page: 2)
209
+ ```ruby
210
+ client.collection_projects(5074147)
211
+ client.collection_projects(5074147, page: 2)
212
+ ```
154
213
 
155
214
  ### Creative Fields
156
215
 
157
- [Retrieve all Creative Fields][fields]
216
+ [Retrieves all Creative Fields][fields]
158
217
 
159
218
  [fields]: https://www.behance.net/dev/api/endpoints/11#creative-fields-get-75
160
219
 
161
- $ client.fields
220
+ ```ruby
221
+ client.fields
222
+ ```
223
+
224
+ [Retrieves popular Creative Fields][popular]
225
+
226
+ [popular]: https://www.behance.net/dev/api/endpoints/11#creative-fields-get-75
227
+
228
+ ```ruby
229
+ client.popular
230
+ ```
231
+
232
+ ### Creatives To Follow
233
+
234
+ [Provides a list of creatives you might be interested in following][creatives_to_follow]
235
+
236
+ [creatives_to_follow]: https://www.behance.net/dev/api/endpoints/9#creatives-to-follow-get-69
237
+
238
+ ```ruby
239
+ client.creatives_to_follow
240
+ client.creatives_to_follow(page: 2)
241
+ ```
162
242
 
163
243
  ## Contributing
164
244
 
@@ -3,6 +3,7 @@ require File.expand_path('../user', __FILE__)
3
3
  require File.expand_path('../wips', __FILE__)
4
4
  require File.expand_path('../collections', __FILE__)
5
5
  require File.expand_path('../fields', __FILE__)
6
+ require File.expand_path('../creatives_to_follow', __FILE__)
6
7
  require 'faraday'
7
8
  require 'faraday_middleware'
8
9
 
@@ -18,6 +19,7 @@ module Behance
18
19
  include Behance::Client::Wips
19
20
  include Behance::Client::Collections
20
21
  include Behance::Client::Fields
22
+ include Behance::Client::CreativesToFollow
21
23
 
22
24
  attr_accessor :access_token, :connection
23
25
 
@@ -33,7 +35,7 @@ module Behance
33
35
  # Returns a Faraday instance object.
34
36
  def initialize(options={})
35
37
  @access_token = options[:access_token]
36
- @connection = Faraday.new(:url => Behance::Client::API_URL) do |b|
38
+ @connection = Faraday.new(url: Behance::Client::API_URL) do |b|
37
39
  b.adapter Faraday.default_adapter
38
40
  b.use FaradayMiddleware::ParseJson
39
41
  end
@@ -4,13 +4,15 @@ module Behance
4
4
  module Collections
5
5
  # Public: Search for collections.
6
6
  #
7
- # options - The Hash of options that the API would expect:
8
- # :q - Free text query string.
9
- # :time - Limits the search by time. Possible values: all (default), today, week, month.
10
- # :page - The page number of the results, always starting
11
- # with 1.
12
- # :sort - The order the results are returned in.
13
- # Possible values: comments (default), views, last_item_added_date.
7
+ # options - The Hash with options that the API would expect:
8
+ # :q - Free text query string.
9
+ # :time - Limits the search by time.
10
+ # Possible values: all (default), today, week, month.
11
+ # :page - The page number of the results, always starting
12
+ # with 1.
13
+ # :sort - The order the results are returned in.
14
+ # Possible values: comments (default), views,
15
+ # last_item_added_date.
14
16
  #
15
17
  # Examples
16
18
  #
@@ -30,29 +32,35 @@ module Behance
30
32
  #
31
33
  # @client.collection(1)
32
34
  #
33
- # Returns a single user object.
35
+ # Returns a single collection object.
34
36
  def collection(collection)
35
37
  request("collections/#{collection}")["collection"]
36
38
  end
37
39
 
38
40
  # Public: Get projects from a collection.
39
41
  #
40
- # collection - it has to be an ID (Integer).
41
- # options - The Hash of options that the API would expect:
42
- # :time - Limits the search by time.
43
- # Possible values: all (default), today, week, month.
44
- # :page - The page number of the results, always starting
45
- # with 1.
42
+ # collection - it has to be an ID (Integer).
43
+ # options - The Hash with options that the API would expect:
44
+ # :time - Limits the search by time.
45
+ # Possible values: all (default), today, week,
46
+ # month.
47
+ # :page - The page number of the results, always starting
48
+ # with 1.
49
+ # :sort - The order the results are returned in.
50
+ # Possible values: featured_date (default),
51
+ # appreciations, views, comments, published_date,
52
+ # followed.
53
+ # :per_page - The number of results per page. (Max: 20)
46
54
  #
47
55
  # Examples
48
56
  #
49
57
  # @client.collections_projects(1)
50
58
  # @client.collections_projects(1, page: 2)
51
59
  #
52
- # Returns an array of projects published an user in JSON format.
60
+ # Returns an array of projects from a collection in JSON format.
53
61
  def collection_projects(collection, options={})
54
62
  request("collections/#{collection}/projects", options)["projects"]
55
63
  end
56
64
  end
57
65
  end
58
- end
66
+ end
@@ -0,0 +1,23 @@
1
+ # Creatives To Follow Endpoints.
2
+ module Behance
3
+ class Client
4
+ module CreativesToFollow
5
+ # Public: Provides a list of creatives you might be interested
6
+ # in following
7
+ #
8
+ # options - The Hash with options that the API would expect:
9
+ # :page - The page number of the results, always
10
+ # starting with 1.
11
+ #
12
+ # Examples
13
+ #
14
+ # @client.creatives_to_follow
15
+ # @client.creatives_to_follow(page: 2)
16
+ #
17
+ # Returns an array of creatives in JSON format.
18
+ def creatives_to_follow(options={})
19
+ request("creativestofollow", options)["creatives_to_follow"]
20
+ end
21
+ end
22
+ end
23
+ end