dribbble 0.0.2
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 +7 -0
- data/.gitignore +20 -0
- data/.travis.yml +6 -0
- data/CONTRIBUTING.md +7 -0
- data/Gemfile +2 -0
- data/Guardfile +10 -0
- data/LICENSE.md +21 -0
- data/README.md +92 -0
- data/Rakefile +7 -0
- data/dribbble.gemspec +28 -0
- data/lib/dribbble/base.rb +34 -0
- data/lib/dribbble/bucket.rb +4 -0
- data/lib/dribbble/client.rb +24 -0
- data/lib/dribbble/errors.rb +25 -0
- data/lib/dribbble/user.rb +14 -0
- data/lib/dribbble/utils.rb +31 -0
- data/lib/dribbble/version.rb +4 -0
- data/lib/dribbble.rb +6 -0
- data/spec/factories.rb +2 -0
- data/spec/lib/dribbble/client_spec.rb +59 -0
- data/spec/lib/dribbble/user_spec.rb +29 -0
- data/spec/spec_helper.rb +25 -0
- data/spec/support/dribbble.rb +44 -0
- data/spec/support/fixtures/buckets_success.json +10 -0
- data/spec/support/fixtures/image.jpg +0 -0
- data/spec/support/fixtures/not_found.json +3 -0
- data/spec/support/fixtures/unauthorized.json +3 -0
- data/spec/support/fixtures/user_success.json +25 -0
- metadata +207 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 18244d8f44973748844ce57d3de8bb36e597749b
|
4
|
+
data.tar.gz: b82d095959b81603f2fbed82ae435ff8f3084535
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 64c1ab8b2f3aa5cd9696037f1af805ea52573cff3bec34daa454c6f5d49558ee43c9664fac11ebd936912bbf87848227ca05e1ad0d256cde8f36e60ddbc46c46
|
7
|
+
data.tar.gz: 048b0c14059f97a379360fe09f41a342d7e8af23300f338962056273941f673b28e9f1bcfa0ff87d99e85aa7311432d32a75213cf6a59678de225a9e25c443e9
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/CONTRIBUTING.md
ADDED
data/Gemfile
ADDED
data/Guardfile
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
guard 'spork', rspec_env: { 'RAILS_ENV' => 'test' } do
|
2
|
+
watch('Gemfile.lock')
|
3
|
+
watch('spec/spec_helper.rb') { :rspec }
|
4
|
+
end
|
5
|
+
|
6
|
+
guard :rspec, cmd: 'bundle exec rspec' do
|
7
|
+
watch(/^spec\/.+_spec\.rb$/)
|
8
|
+
watch(/^lib\/(.+)\.rb$/) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
9
|
+
watch('spec/spec_helper.rb') { :rspec }
|
10
|
+
end
|
data/LICENSE.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2014 Charley D.
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
# DribbbleAPI
|
2
|
+
|
3
|
+

|
4
|
+
|
5
|
+
[](https://travis-ci.org/Calyhre/dribbble)
|
6
|
+
|
7
|
+
_Dribbble API gem_
|
8
|
+
|
9
|
+
## Installation
|
10
|
+
|
11
|
+
### Requirements
|
12
|
+
|
13
|
+
* Ruby `~> 2.0`
|
14
|
+
|
15
|
+
### In a Gemfile
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
gem 'dribbble'
|
19
|
+
```
|
20
|
+
|
21
|
+
### By yourself
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
gem install dribbble
|
25
|
+
```
|
26
|
+
|
27
|
+
## Usage
|
28
|
+
|
29
|
+
First you need to instanciate a client with a client access token. You can get one by creating an application on [developer.dribbble.com](http://developer.dribbble.com/).
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
client = Dribbble::Client.new token: '0123456789abcdef'
|
33
|
+
```
|
34
|
+
|
35
|
+
### User
|
36
|
+
|
37
|
+
You can get the current user logged in by calling `client.user`
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
client.get_user
|
41
|
+
#=> #<Dribbble::User ...>
|
42
|
+
```
|
43
|
+
|
44
|
+
Or you can get a specific user by knowing his ID
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
user = client.get_user(1)
|
48
|
+
#=> #<Dribbble::User id=1 ...>
|
49
|
+
```
|
50
|
+
|
51
|
+
You can access users attributes like this :
|
52
|
+
|
53
|
+
```ruby
|
54
|
+
user.name
|
55
|
+
#=> "Charley D."
|
56
|
+
|
57
|
+
user.username
|
58
|
+
#=> "Calyhre"
|
59
|
+
```
|
60
|
+
|
61
|
+
A user also have buckets :
|
62
|
+
|
63
|
+
```ruby
|
64
|
+
user.buckets
|
65
|
+
#=> [#<Dribbble::Bucket ...>, #<Dribbble::Bucket ...>]
|
66
|
+
```
|
67
|
+
|
68
|
+
### Shots
|
69
|
+
|
70
|
+
You can create a shot by calling `client.create_shot`
|
71
|
+
|
72
|
+
```ruby
|
73
|
+
shot = {
|
74
|
+
title: 'Shot title',
|
75
|
+
desciption: 'Shot description',
|
76
|
+
image: File.new('some/directory/image.jpg', 'rb'),
|
77
|
+
tags: %w(tag1 tag2)
|
78
|
+
}
|
79
|
+
|
80
|
+
client.create_shot(shot)
|
81
|
+
#=> True
|
82
|
+
```
|
83
|
+
|
84
|
+
## Contributing
|
85
|
+
|
86
|
+
Feel free to help me make this gem awesome !
|
87
|
+
|
88
|
+
[Contributors](https://github.com/Calyhre/dribbble/graphs/contributors) and [CONTRIBUTING](https://github.com/Calyhre/dribbble/blob/master/CONTRIBUTING.md)
|
89
|
+
|
90
|
+
## Licence
|
91
|
+
|
92
|
+
Released under the MIT License. See the [LICENSE](https://github.com/Calyhre/dribbble/blob/master/LICENSE.md) file for further details.
|
data/Rakefile
ADDED
data/dribbble.gemspec
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require File.expand_path('../lib/dribbble/version', __FILE__)
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = 'dribbble'
|
5
|
+
s.version = Dribbble::VERSION
|
6
|
+
s.summary = 'Dribbble API ruby wrapper'
|
7
|
+
s.description = 'Simple gem to make shots and list stuff from Dribbble'
|
8
|
+
s.authors = ['Calyhre']
|
9
|
+
s.email = ['contact@calyh.re']
|
10
|
+
s.require_path = 'lib'
|
11
|
+
s.homepage = 'http://github.com/Calyhre/dribbble'
|
12
|
+
s.license = 'MIT'
|
13
|
+
|
14
|
+
s.files = `git ls-files`.split("\n")
|
15
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
16
|
+
|
17
|
+
s.required_ruby_version = '>= 2.0.0'
|
18
|
+
s.add_runtime_dependency 'rest_client', '~> 1.7'
|
19
|
+
|
20
|
+
s.add_development_dependency 'rake', '~> 10.3'
|
21
|
+
s.add_development_dependency 'rspec', '~> 2.14'
|
22
|
+
s.add_development_dependency 'guard-rspec', '~> 4.3'
|
23
|
+
s.add_development_dependency 'guard-spork', '~> 1.5'
|
24
|
+
s.add_development_dependency 'sinatra', '~> 1.4'
|
25
|
+
s.add_development_dependency 'webmock', '~> 1.17'
|
26
|
+
s.add_development_dependency 'factory_girl', '~> 4.0'
|
27
|
+
s.add_development_dependency 'faker', '~> 1.3'
|
28
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'dribbble/utils'
|
2
|
+
|
3
|
+
module Dribbble
|
4
|
+
class Base
|
5
|
+
include Dribbble::Utils
|
6
|
+
extend Dribbble::Utils
|
7
|
+
|
8
|
+
attr_reader :token
|
9
|
+
|
10
|
+
def initialize(token, json)
|
11
|
+
@token = token
|
12
|
+
@raw = json.is_a?(Hash) ? json : JSON.parse(json)
|
13
|
+
|
14
|
+
@raw.each do |k, v|
|
15
|
+
define_singleton_method(k) { v }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.batch_new(token, json)
|
20
|
+
json = JSON.parse json unless json.is_a? Hash
|
21
|
+
json.map do |obj|
|
22
|
+
new token, obj
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def get_user(id = nil)
|
27
|
+
if id
|
28
|
+
Dribbble::User.new @token, get("/users/#{id}")
|
29
|
+
else
|
30
|
+
Dribbble::User.new @token, get('/user')
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'dribbble/base'
|
2
|
+
require 'dribbble/user'
|
3
|
+
require 'dribbble/errors'
|
4
|
+
|
5
|
+
require 'rest_client'
|
6
|
+
require 'json'
|
7
|
+
|
8
|
+
module Dribbble
|
9
|
+
class Client < Dribbble::Base
|
10
|
+
include Dribbble::Utils
|
11
|
+
|
12
|
+
def initialize(token: nil)
|
13
|
+
@token = token
|
14
|
+
fail Dribbble::Error::MissingToken if @token.nil?
|
15
|
+
end
|
16
|
+
|
17
|
+
def create_shot(attrs = {})
|
18
|
+
fields = %i(title image description tags team_id rebound_source_id)
|
19
|
+
post '/shots' do |payload|
|
20
|
+
fields.each { |f| payload[f] = attrs[f] }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Dribbble
|
2
|
+
module Error
|
3
|
+
ISSUES_URL = 'https://github.com/Calyhre/dribbble/issues/new'
|
4
|
+
|
5
|
+
# Standard error we will inherit
|
6
|
+
class Standard < StandardError
|
7
|
+
def initialize(message = nil)
|
8
|
+
if message && message.response
|
9
|
+
super message.response
|
10
|
+
else
|
11
|
+
super(message || self.message)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class MissingToken < Standard
|
17
|
+
end
|
18
|
+
|
19
|
+
class Unauthorized < Standard
|
20
|
+
end
|
21
|
+
|
22
|
+
class Unprocessable < Standard
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Dribbble
|
2
|
+
module Utils
|
3
|
+
def full_url(path)
|
4
|
+
"#{Dribbble::API_URI}#{path}"
|
5
|
+
end
|
6
|
+
|
7
|
+
def headers
|
8
|
+
if @token
|
9
|
+
{ authorization: "Bearer #{@token}" }
|
10
|
+
else
|
11
|
+
{}
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def get(path)
|
16
|
+
RestClient.get full_url(path), headers
|
17
|
+
rescue RestClient::Unauthorized => e
|
18
|
+
raise Dribbble::Error::Unauthorized, e
|
19
|
+
end
|
20
|
+
|
21
|
+
def post(path)
|
22
|
+
payload = {}
|
23
|
+
yield payload
|
24
|
+
RestClient.post full_url(path), payload, headers
|
25
|
+
rescue RestClient::Unauthorized => e
|
26
|
+
raise Dribbble::Error::Unauthorized, e
|
27
|
+
rescue RestClient::UnprocessableEntity => e
|
28
|
+
raise Dribbble::Error::Unprocessable, e
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/dribbble.rb
ADDED
data/spec/factories.rb
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Dribbble::Client do
|
4
|
+
describe 'without token' do
|
5
|
+
it 'raises Dribbble::Error::MissingToken' do
|
6
|
+
expect do
|
7
|
+
Dribbble::Client.new
|
8
|
+
end.to raise_error(Dribbble::Error::MissingToken)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe 'on #user' do
|
13
|
+
describe 'with an invalid token' do
|
14
|
+
subject do
|
15
|
+
stub_dribbble_with DribbbleAPI::Unauthorized
|
16
|
+
Dribbble::Client.new(token: 'fake_invalid_token')
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'raise Dribbble::Error::Unauthorized' do
|
20
|
+
expect do
|
21
|
+
subject.get_user
|
22
|
+
end.to raise_error(Dribbble::Error::Unauthorized)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe 'with a valid token' do
|
27
|
+
subject do
|
28
|
+
stub_dribbble_with DribbbleAPI::UserSuccess
|
29
|
+
Dribbble::Client.new(token: 'valid_token')
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'return a Dribbble::User' do
|
33
|
+
expect(subject.get_user).to be_a Dribbble::User
|
34
|
+
expect(subject.get_user.name).to be_a String
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe 'on #create_shot' do
|
40
|
+
before :all do
|
41
|
+
stub_dribbble_with DribbbleAPI::Created
|
42
|
+
@shot = {
|
43
|
+
title: 'Shot title',
|
44
|
+
desciption: 'Shot description',
|
45
|
+
image: File.new("#{Dir.pwd}/spec/support/fixtures/image.jpg", 'rb'),
|
46
|
+
tags: %w(tag1 tag2)
|
47
|
+
}
|
48
|
+
@client = Dribbble::Client.new(token: 'valid_token')
|
49
|
+
end
|
50
|
+
|
51
|
+
subject do
|
52
|
+
@client.create_shot(@shot)
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'create the shot' do
|
56
|
+
expect(subject.code).to eq(202)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RAW_USER = data_from_json 'user_success.json'
|
4
|
+
|
5
|
+
describe Dribbble::User do
|
6
|
+
before :all do
|
7
|
+
@user = Dribbble::User.new 'valid_token', RAW_USER
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'after initialization' do
|
11
|
+
RAW_USER.each do |field, value|
|
12
|
+
it "respond to #{field}" do
|
13
|
+
expect(@user.send field).to eq(value)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe 'on #buckets' do
|
19
|
+
subject do
|
20
|
+
stub_dribbble_with DribbbleAPI::BucketsSuccess
|
21
|
+
@user.buckets
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'responds with buckets' do
|
25
|
+
expect(subject.size).to eq 1
|
26
|
+
expect(subject.first).to be_a Dribbble::Bucket
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spork'
|
2
|
+
|
3
|
+
Spork.prefork do
|
4
|
+
require 'dribbble'
|
5
|
+
require 'webmock/rspec'
|
6
|
+
require 'faker'
|
7
|
+
require 'factory_girl'
|
8
|
+
|
9
|
+
Dir[File.dirname(__FILE__) + '/support/**/*.rb'].each { |f| require f }
|
10
|
+
|
11
|
+
# WebMock.disable_net_connect! allow_localhost: true, allow: 'codeclimate.com'
|
12
|
+
|
13
|
+
def stub_dribbble_with(response_class)
|
14
|
+
stub_request(:any, /api\.dribbble\.com/).to_rack(response_class)
|
15
|
+
end
|
16
|
+
|
17
|
+
def data_from_json(json_name)
|
18
|
+
JSON.parse File.open(File.dirname(__FILE__) + "/support/fixtures/#{json_name}", 'rb').read
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
Spork.each_run do
|
23
|
+
# This code will be run each time you run your specs.
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'sinatra/base'
|
2
|
+
|
3
|
+
module DribbbleAPI
|
4
|
+
class Base < Sinatra::Base
|
5
|
+
protected
|
6
|
+
|
7
|
+
def json_response(response_code, file_name)
|
8
|
+
content_type :json
|
9
|
+
status response_code
|
10
|
+
File.open(File.dirname(__FILE__) + '/fixtures/' + file_name, 'rb').read
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class UserSuccess < Base
|
15
|
+
get '/*' do
|
16
|
+
json_response 200, 'user_success.json'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class BucketsSuccess < Base
|
21
|
+
get '/*' do
|
22
|
+
json_response 200, 'buckets_success.json'
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class Created < Base
|
27
|
+
post '/*' do
|
28
|
+
status 202
|
29
|
+
{}.to_json
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
class NotFound < Base
|
34
|
+
get '/*' do
|
35
|
+
json_response 404, 'not_found.json'
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
class Unauthorized < Base
|
40
|
+
get '/*' do
|
41
|
+
json_response 401, 'unauthorized.json'
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"id" : 2754,
|
4
|
+
"name" : "Great Marks",
|
5
|
+
"description" : "Collecting superb brand marks from the <a href=\"https://dribbble.com\">Dribbbleverse</a>.",
|
6
|
+
"shots_count" : 251,
|
7
|
+
"created_at" : "2011-05-20T21:05:55Z",
|
8
|
+
"updated_at" : "2014-02-21T16:37:12Z"
|
9
|
+
}
|
10
|
+
]
|
Binary file
|
@@ -0,0 +1,25 @@
|
|
1
|
+
{
|
2
|
+
"id" : 483195,
|
3
|
+
"name" : "Charley D.",
|
4
|
+
"username" : "Calyhre",
|
5
|
+
"html_url" : "https://dribbble.com/Calyhre",
|
6
|
+
"avatar_url" : "https://d13yacurqjgara.cloudfront.net/users/483195/avatars/normal/493064787.png?1390292526",
|
7
|
+
"bio" : "",
|
8
|
+
"location" : null,
|
9
|
+
"links" : {},
|
10
|
+
"followers_count" : 1,
|
11
|
+
"followings_count" : 4,
|
12
|
+
"likes_count" : 4,
|
13
|
+
"shots_count" : 0,
|
14
|
+
"type" : "Player",
|
15
|
+
"pro" : false,
|
16
|
+
"buckets_url" : "https://api.dribbble.com/v1/users/483195/buckets",
|
17
|
+
"followers_url" : "https://api.dribbble.com/v1/users/483195/followers",
|
18
|
+
"following_url" : "https://api.dribbble.com/v1/users/483195/following",
|
19
|
+
"likes_url" : "https://api.dribbble.com/v1/users/483195/likes",
|
20
|
+
"projects_url" : "https://api.dribbble.com/v1/users/483195/projects",
|
21
|
+
"shots_url" : "https://api.dribbble.com/v1/users/483195/shots",
|
22
|
+
"teams_url" : "https://api.dribbble.com/v1/users/483195/teams",
|
23
|
+
"created_at" : "2014-01-21T08:22:06Z",
|
24
|
+
"updated_at" : "2014-09-29T19:39:00Z"
|
25
|
+
}
|
metadata
ADDED
@@ -0,0 +1,207 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dribbble
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Calyhre
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-10-01 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rest_client
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.7'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.3'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.14'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.14'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: guard-rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '4.3'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '4.3'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: guard-spork
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.5'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.5'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: sinatra
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.4'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.4'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: webmock
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.17'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.17'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: factory_girl
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '4.0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '4.0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: faker
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '1.3'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '1.3'
|
139
|
+
description: Simple gem to make shots and list stuff from Dribbble
|
140
|
+
email:
|
141
|
+
- contact@calyh.re
|
142
|
+
executables: []
|
143
|
+
extensions: []
|
144
|
+
extra_rdoc_files: []
|
145
|
+
files:
|
146
|
+
- ".gitignore"
|
147
|
+
- ".travis.yml"
|
148
|
+
- CONTRIBUTING.md
|
149
|
+
- Gemfile
|
150
|
+
- Guardfile
|
151
|
+
- LICENSE.md
|
152
|
+
- README.md
|
153
|
+
- Rakefile
|
154
|
+
- dribbble.gemspec
|
155
|
+
- lib/dribbble.rb
|
156
|
+
- lib/dribbble/base.rb
|
157
|
+
- lib/dribbble/bucket.rb
|
158
|
+
- lib/dribbble/client.rb
|
159
|
+
- lib/dribbble/errors.rb
|
160
|
+
- lib/dribbble/user.rb
|
161
|
+
- lib/dribbble/utils.rb
|
162
|
+
- lib/dribbble/version.rb
|
163
|
+
- spec/factories.rb
|
164
|
+
- spec/lib/dribbble/client_spec.rb
|
165
|
+
- spec/lib/dribbble/user_spec.rb
|
166
|
+
- spec/spec_helper.rb
|
167
|
+
- spec/support/dribbble.rb
|
168
|
+
- spec/support/fixtures/buckets_success.json
|
169
|
+
- spec/support/fixtures/image.jpg
|
170
|
+
- spec/support/fixtures/not_found.json
|
171
|
+
- spec/support/fixtures/unauthorized.json
|
172
|
+
- spec/support/fixtures/user_success.json
|
173
|
+
homepage: http://github.com/Calyhre/dribbble
|
174
|
+
licenses:
|
175
|
+
- MIT
|
176
|
+
metadata: {}
|
177
|
+
post_install_message:
|
178
|
+
rdoc_options: []
|
179
|
+
require_paths:
|
180
|
+
- lib
|
181
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - ">="
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: 2.0.0
|
186
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
187
|
+
requirements:
|
188
|
+
- - ">="
|
189
|
+
- !ruby/object:Gem::Version
|
190
|
+
version: '0'
|
191
|
+
requirements: []
|
192
|
+
rubyforge_project:
|
193
|
+
rubygems_version: 2.2.2
|
194
|
+
signing_key:
|
195
|
+
specification_version: 4
|
196
|
+
summary: Dribbble API ruby wrapper
|
197
|
+
test_files:
|
198
|
+
- spec/factories.rb
|
199
|
+
- spec/lib/dribbble/client_spec.rb
|
200
|
+
- spec/lib/dribbble/user_spec.rb
|
201
|
+
- spec/spec_helper.rb
|
202
|
+
- spec/support/dribbble.rb
|
203
|
+
- spec/support/fixtures/buckets_success.json
|
204
|
+
- spec/support/fixtures/image.jpg
|
205
|
+
- spec/support/fixtures/not_found.json
|
206
|
+
- spec/support/fixtures/unauthorized.json
|
207
|
+
- spec/support/fixtures/user_success.json
|