dribbble 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,20 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+ Gemfile.lock
15
+
16
+ # YARD artifacts
17
+ .yardoc
18
+ _yardoc
19
+ doc/
20
+ *.sqlite
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+
3
+ cache: bundler
4
+ rvm:
5
+ - 2.0.0
6
+ - 2.1.1
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,7 @@
1
+ # Contributing
2
+
3
+ 1. Fork repository
4
+ 2. Create a branch following a [successfull branching model](http://nvie.com/posts/a-successful-git-branching-model/)
5
+ 3. Write your feature/fix
6
+ 4. Write tests
7
+ 5. Pull request
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'http://rubygems.org'
2
+ gemspec
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
+ ![Codeship Status for Calyhre/dribbble](https://www.codeship.io/projects/11857a40-2b09-0132-c03d-1ac4495b4327/status)
4
+
5
+ [![Build Status](https://travis-ci.org/Calyhre/dribbble.svg?branch=master)](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
@@ -0,0 +1,7 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new
5
+
6
+ task default: :spec
7
+ task test: :spec
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,4 @@
1
+ module Dribbble
2
+ class Bucket < Dribbble::Base
3
+ end
4
+ 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,14 @@
1
+ require 'dribbble/bucket'
2
+
3
+ module Dribbble
4
+ class User < Dribbble::Base
5
+ def self.find(token, id = nil)
6
+ @token = token
7
+ get_user(id)
8
+ end
9
+
10
+ def buckets
11
+ Dribbble::Bucket.batch_new token, get("/users/#{id}/buckets")
12
+ end
13
+ end
14
+ 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
@@ -0,0 +1,4 @@
1
+ # Dribbble Version
2
+ module Dribbble
3
+ VERSION = '0.0.2'
4
+ end
data/lib/dribbble.rb ADDED
@@ -0,0 +1,6 @@
1
+ module Dribbble
2
+ API_URI = 'https://api.dribbble.com/v1'
3
+ end
4
+
5
+ require 'dribbble/client'
6
+ require 'dribbble/version'
data/spec/factories.rb ADDED
@@ -0,0 +1,2 @@
1
+ FactoryGirl.define do
2
+ end
@@ -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
@@ -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,3 @@
1
+ {
2
+ "error": "Not found"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "message": "Bad credentials."
3
+ }
@@ -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