coder_wally 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ec3f117479a41d224184d23682f03c5756e9c312
4
- data.tar.gz: b3902c02004878ad333b805bbbdae7022f3e451f
3
+ metadata.gz: 09158bbcb126bc9fbb9fcfd4eaff98d646017548
4
+ data.tar.gz: 7dc0e8d397038d0f315263dcd530a7ace464775d
5
5
  SHA512:
6
- metadata.gz: 24434fbdf0747f6b3ccb0173ded350e5b41649604f8d01ccf320da0c6112f9cf770328a1cce5e00c8928db4874eb61be64757e8e1d7edeaa75e1f8b62840a0fa
7
- data.tar.gz: 65372cdbe3b2eb38bea2500af500253ee1a643beda3547c050882776fcf84d30f5400d4348765eea5bfec44e74c958088af5697059d9f6a2a2c74c29aee59b72
6
+ metadata.gz: e0b7f1da6275413792bd7d23d20d430c803d191ce6643b0d00eba7c7b03ba72e06bef77a546bf06be64be0582591f1209c0eae552bd344c348cfe48eb4244e22
7
+ data.tar.gz: cf18c3a4a70e483dabb092eca36a8f5ba7005fb633db642ffd139d81c5579f5fa662044a7225d27b484cc5c98962d8bb7f91fa9442bb19390f70ce65abe4c7c0
data/.rubocop.yml ADDED
@@ -0,0 +1,6 @@
1
+ AllCops:
2
+ Exclude:
3
+ - coder_wally.gemspec
4
+ - Rakefile
5
+
6
+ inherit_from: .rubocop_todo.yml
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,11 @@
1
+ # This configuration was generated by `rubocop --auto-gen-config`
2
+ # on 2015-02-06 22:59:06 +0000 using RuboCop version 0.29.0.
3
+ # The point is for the user to remove these configuration records
4
+ # one by one as the offenses are removed from the code base.
5
+ # Note that changes in the inspected code, or installation of new
6
+ # versions of RuboCop, may require this file to be generated again.
7
+
8
+ # Offense count: 2
9
+ # Configuration parameters: AllowURI, URISchemes.
10
+ Metrics/LineLength:
11
+ Max: 111
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-2.1.5
1
+ ruby-2.1.3
data/README.md CHANGED
@@ -1,7 +1,8 @@
1
1
  # CoderWally
2
2
 
3
+ [![Build Status](https://circleci.com/gh/gregstewart/coder_wally.svg?style=badge)](https://circleci.com/gh/gregstewart/coder_wally)
4
+
3
5
  [![Gem Version](https://badge.fury.io/rb/coder_wally.svg)](http://badge.fury.io/rb/coder_wally)
4
- [![Build Status](https://travis-ci.org/gregstewart/coder_wally.svg?branch=master)](https://travis-ci.org/gregstewart/coder_wally)
5
6
  [![Coverage Status](https://coveralls.io/repos/gregstewart/coder_wally/badge.svg)](https://coveralls.io/r/gregstewart/coder_wally)
6
7
  [![Code Climate](https://codeclimate.com/github/gregstewart/coder_wally/badges/gpa.svg)](https://codeclimate.com/github/gregstewart/coder_wally)
7
8
  [![Dependency Status](https://gemnasium.com/gregstewart/coder_wally.svg)](https://gemnasium.com/gregstewart/coder_wally)
data/bin/coder_wally CHANGED
@@ -5,4 +5,4 @@ require 'coder_wally'
5
5
  client = CoderWally::Client.new
6
6
  coder_wally = client.get_everything_for ARGV[0]
7
7
 
8
- puts coder_wally.inspect
8
+ puts coder_wally.inspect
data/circle.yml ADDED
@@ -0,0 +1,6 @@
1
+ machine:
2
+ ruby:
3
+ version: 2.1.3
4
+ dependencies:
5
+ pre:
6
+ - gem install bundler --version "=1.7"
data/coder_wally.gemspec CHANGED
@@ -22,4 +22,5 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "rake", "~> 10.0"
23
23
  spec.add_development_dependency "webmock", "~>1.20.4"
24
24
  spec.add_development_dependency "coveralls"
25
+ spec.add_development_dependency "rubocop"
25
26
  end
@@ -5,9 +5,9 @@ module CoderWally
5
5
  # Dynamically create account properties
6
6
  def initialize(collection_of_accounts)
7
7
  collection_of_accounts.each do |account, value|
8
- singleton_class.class_eval do; attr_accessor "#{account}"; end
9
- self.instance_variable_set("@#{account}", value)
8
+ singleton_class.class_eval { attr_accessor "#{account}" }
9
+ instance_variable_set("@#{account}", value)
10
10
  end
11
11
  end
12
12
  end
13
- end
13
+ end
@@ -11,50 +11,50 @@ module CoderWally
11
11
 
12
12
  begin
13
13
  JSON.parse(json.read)
14
- rescue JSON::ParserError => error
14
+ rescue JSON::ParserError
15
15
  raise InvalidJson, 'Received invalid json in response'
16
16
  end
17
17
  end
18
18
 
19
19
  private
20
- # Dispatch the request
21
- def send_request(url)
22
- begin
23
- open(url)
24
- rescue OpenURI::HTTPError => error
25
- handle_user_not_found_error(error)
26
- handle_server_error(error)
27
- end
28
- end
29
20
 
30
- # Parse status code from error
31
- def get_status_code(error)
32
- error.io.status[0]
33
- end
21
+ # Dispatch the request
22
+ def send_request(url)
23
+ open(url)
24
+ rescue OpenURI::HTTPError => error
25
+ handle_user_not_found_error(error)
26
+ handle_server_error(error)
27
+ end
34
28
 
35
- # Raise server error
36
- def handle_server_error(error)
37
- raise ServerError, 'Server error' if get_status_code(error) == '500'
38
- end
29
+ # Parse status code from error
30
+ def get_status_code(error)
31
+ error.io.status[0]
32
+ end
39
33
 
40
- # Raise user not found error
41
- def handle_user_not_found_error(error)
42
- raise UserNotFoundError, 'User not found' if get_status_code(error) == '404'
43
- end
34
+ # Raise server error
35
+ def handle_server_error(error)
36
+ fail ServerError, 'Server error' if get_status_code(error) == '500'
37
+ end
44
38
 
45
- # Build user URI from username and api url
46
- def uri_for_user(username)
47
- raise(ArgumentError, 'Please provide a username') if username.empty?
39
+ # Raise user not found error
40
+ def handle_user_not_found_error(error)
41
+ fail UserNotFoundError, 'User not found' if get_status_code(error) == '404'
42
+ end
48
43
 
49
- URI.parse(api_url % username)
50
- end
44
+ # Build user URI from username and api url
45
+ def uri_for_user(username)
46
+ fail ArgumentError, 'Please provide a username' if username.empty?
51
47
 
52
- # The URL of the API we'll use.
53
- def api_url
54
- 'https://coderwall.com/%s.json'
55
- end
48
+ URI.parse(api_url % username)
49
+ end
50
+
51
+ # The URL of the API we'll use.
52
+ def api_url
53
+ 'https://coderwall.com/%s.json'
54
+ end
56
55
  end
57
56
  end
57
+
58
58
  # Handles user not found exception
59
59
  class UserNotFoundError < StandardError
60
60
  end
@@ -64,4 +64,4 @@ class ServerError < StandardError
64
64
  end
65
65
  # Handles bad JSON
66
66
  class InvalidJson < StandardError
67
- end
67
+ end
@@ -1,16 +1,16 @@
1
1
  # All code in the gem is namespaced under this module.
2
2
  module CoderWally
3
- # Stores Badge properties
4
- class Badge
5
- # Object properties
6
- attr_reader :name, :badge, :description, :created
7
-
8
- # Initialise object with a hash of values
9
- def initialize(hashed_badge)
10
- @name = hashed_badge.fetch('name')
11
- @badge = hashed_badge.fetch('badge')
12
- @description = hashed_badge.fetch('description')
13
- @created = hashed_badge.fetch('created')
14
- end
3
+ # Stores Badge properties
4
+ class Badge
5
+ # Object properties
6
+ attr_reader :name, :badge, :description, :created
7
+
8
+ # Initialise object with a hash of values
9
+ def initialize(hashed_badge)
10
+ @name = hashed_badge.fetch('name')
11
+ @badge = hashed_badge.fetch('badge')
12
+ @description = hashed_badge.fetch('description')
13
+ @created = hashed_badge.fetch('created')
15
14
  end
16
- end
15
+ end
16
+ end
@@ -22,7 +22,7 @@ module CoderWally
22
22
  end
23
23
 
24
24
  # build CoderWall object from API response
25
- def build response
25
+ def build(response)
26
26
  badges = parse_badges(response)
27
27
  accounts = parse_accounts(response)
28
28
  user = parse_user(response)
@@ -1,34 +1,35 @@
1
1
  module CoderWally
2
- # Client to access the API
3
- class Client
4
- # Instantiate class
5
- def initialize
6
- @api = API.new
7
- @builder = Builder.new
8
- end
2
+ # Client to access the API
3
+ class Client
4
+ # Instantiate class
5
+ def initialize
6
+ @api = API.new
7
+ @builder = Builder.new
8
+ end
9
9
 
10
- # Get badges for given user and return has collection of `Badge`s
11
- def get_badges_for username
12
- coder_wall = build_coder_wall_from_response(username)
13
- coder_wall.badges
14
- end
15
-
16
- # Get user details for given user and return a `User` object
17
- def get_details_for username
18
- coder_wall = build_coder_wall_from_response(username)
19
- coder_wall.user
20
- end
10
+ # Get badges for given user and return has collection of `Badge`s
11
+ def get_badges_for(username)
12
+ coder_wall = build_coder_wall_from_response(username)
13
+ coder_wall.badges
14
+ end
21
15
 
22
- # Get all the information available for a given user, returns a `CoderWall` object
23
- def get_everything_for username
24
- build_coder_wall_from_response(username)
25
- end
16
+ # Get user details for given user and return a `User` object
17
+ def get_details_for(username)
18
+ coder_wall = build_coder_wall_from_response(username)
19
+ coder_wall.user
20
+ end
21
+
22
+ # Get all the information available for a given user,
23
+ # returns a `CoderWall` object
24
+ def get_everything_for(username)
25
+ build_coder_wall_from_response(username)
26
+ end
26
27
 
27
- # Builds a CoderWall object
28
- def build_coder_wall_from_response(username)
29
- json_response = @api.fetch(username)
28
+ # Builds a CoderWall object
29
+ def build_coder_wall_from_response(username)
30
+ json_response = @api.fetch(username)
30
31
 
31
- @builder.build(json_response)
32
- end
32
+ @builder.build(json_response)
33
33
  end
34
+ end
34
35
  end
@@ -1,17 +1,17 @@
1
1
  # All code in the gem is namespaced under this module.
2
2
  module CoderWally
3
- # Stores all CoderWall attributes
4
- class CoderWall
5
- # :badges is the collection of user badges
6
- # :user is the `User` object
7
- # :accounts is the `Account` object
8
- attr_reader :badges, :user, :accounts
3
+ # Stores all CoderWall attributes
4
+ class CoderWall
5
+ # :badges is the collection of user badges
6
+ # :user is the `User` object
7
+ # :accounts is the `Account` object
8
+ attr_reader :badges, :user, :accounts
9
9
 
10
- # Instantiate the class with data
11
- def initialize(badges, user, accounts)
12
- @badges = badges
13
- @user = user
14
- @accounts = accounts
15
- end
10
+ # Instantiate the class with data
11
+ def initialize(badges, user, accounts)
12
+ @badges = badges
13
+ @user = user
14
+ @accounts = accounts
16
15
  end
17
- end
16
+ end
17
+ end
@@ -1,17 +1,17 @@
1
1
  # All code in the gem is namespaced under this module.
2
2
  module CoderWally
3
- # Stores user properties
4
- class User
5
- # Object properties
6
- attr_reader :name, :username, :location, :team, :endorsements
7
-
8
- # Initialise object with a hash of values
9
- def initialize(name, username, location, team, endorsements)
10
- @name = name
11
- @username = username
12
- @location = location
13
- @team = team
14
- @endorsements = endorsements
15
- end
3
+ # Stores user properties
4
+ class User
5
+ # Object properties
6
+ attr_reader :name, :username, :location, :team, :endorsements
7
+
8
+ # Initialise object with a hash of values
9
+ def initialize(name, username, location, team, endorsements)
10
+ @name = name
11
+ @username = username
12
+ @location = location
13
+ @team = team
14
+ @endorsements = endorsements
16
15
  end
17
- end
16
+ end
17
+ end
@@ -1,4 +1,5 @@
1
+ # All code in the gem is namespaced under this module.
1
2
  module CoderWally
2
3
  # The current version of CoderWally.
3
- VERSION = '0.1.0'
4
+ VERSION = '0.1.1'
4
5
  end
data/lib/coder_wally.rb CHANGED
@@ -6,4 +6,3 @@ require 'coder_wally/coder_wall'
6
6
  require 'coder_wally/api'
7
7
  require 'coder_wally/builder'
8
8
  require 'coder_wally/client'
9
-
data/test/account_test.rb CHANGED
@@ -3,11 +3,11 @@ require 'coder_wally/account'
3
3
 
4
4
  describe 'Account' do
5
5
  it 'creates an account object with dynamic attributes' do
6
- json_parsed = {'github' => 'gregstewart', 'twitter' => '_greg_stewart_'}
6
+ json_parsed = { 'github' => 'gregstewart', 'twitter' => '_greg_stewart_' }
7
7
 
8
8
  account = CoderWally::Account.new(json_parsed)
9
9
 
10
10
  account.github.must_equal 'gregstewart'
11
11
  account.twitter.must_equal '_greg_stewart_'
12
12
  end
13
- end
13
+ end
@@ -4,15 +4,19 @@ require 'coder_wally'
4
4
  describe 'Coder Wally' do
5
5
  before do
6
6
  @client = CoderWally::Client.new
7
+ @accept_encoding = 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3'
8
+ @success_fixture = File.dirname(__FILE__) + '/./fixtures/200.json'
7
9
  end
8
10
 
9
11
  describe 'user badges' do
10
12
  describe 'valid user' do
11
13
  before do
12
- success_response = open(File.expand_path(File.dirname(__FILE__) + '/./fixtures/200.json')).read
13
- stub_request(:get, 'https://coderwall.com/me.json').
14
- with(:headers => {'Accept' => '*/*', 'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent' => 'Ruby'}).
15
- to_return(:status => 200, :body => success_response, :headers => {})
14
+ success_response = open(File.expand_path(@success_fixture)).read
15
+ stub_request(:get, 'https://coderwall.com/me.json')
16
+ .with(headers: { 'Accept' => '*/*',
17
+ 'Accept-Encoding' => @accept_encoding,
18
+ 'User-Agent' => 'Ruby' })
19
+ .to_return(status: 200, body: success_response, headers: {})
16
20
  end
17
21
 
18
22
  it 'returns a hash of badges' do
@@ -29,64 +33,75 @@ describe 'Coder Wally' do
29
33
  describe 'invalid user' do
30
34
  it 'throws an exception when no user is passed in' do
31
35
  err = -> { @client.get_badges_for }.must_raise ArgumentError
32
- err.message.must_match /wrong number/
36
+ err.message.must_match(/wrong number/)
33
37
  end
34
38
 
35
39
  it 'throws an exception when empty string is passed in' do
36
40
  err = -> { @client.get_badges_for '' }.must_raise ArgumentError
37
- err.message.must_match /Please provide a username/
41
+ err.message.must_match(/Please provide a username/)
38
42
  end
39
43
 
40
44
  describe 'not found' do
41
45
  before do
42
- not_found_response = open(File.expand_path(File.dirname(__FILE__) + '/./fixtures/404.json')).read
43
- stub_request(:get, 'https://coderwall.com/me.json').
44
- with(:headers => {'Accept' => '*/*', 'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent' => 'Ruby'}).
45
- to_return(:status => 404, :body => not_found_response, :headers => {})
46
+ not_found_fixture = File.dirname(__FILE__) + '/./fixtures/404.json'
47
+ not_found_response = open(File.expand_path(not_found_fixture)).read
48
+ stub_request(:get, 'https://coderwall.com/me.json')
49
+ .with(headers: { 'Accept' => '*/*',
50
+ 'Accept-Encoding' => @accept_encoding,
51
+ 'User-Agent' => 'Ruby' })
52
+ .to_return(status: 404, body: not_found_response, headers: {})
46
53
  end
47
54
 
48
55
  it 'throws a UserNotFoundError when the user is not found' do
49
56
  err = -> { @client.get_badges_for('me') }.must_raise UserNotFoundError
50
- err.message.must_match /User not found/
57
+ err.message.must_match(/User not found/)
51
58
  end
52
59
  end
53
60
  end
54
61
 
55
62
  describe 'service throws an error' do
56
63
  before do
57
- server_error = open(File.expand_path(File.dirname(__FILE__) + '/./fixtures/empty.json')).read
58
- stub_request(:get, 'https://coderwall.com/me.json').
59
- with(:headers => {'Accept' => '*/*', 'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent' => 'Ruby'}).
60
- to_return(:status => 500, :body => server_error, :headers => {})
64
+ empty_fixture = File.dirname(__FILE__) + '/./fixtures/empty.json'
65
+ server_error = open(File.expand_path(empty_fixture)).read
66
+ stub_request(:get, 'https://coderwall.com/me.json')
67
+ .with(headers: { 'Accept' => '*/*',
68
+ 'Accept-Encoding' => @accept_encoding,
69
+ 'User-Agent' => 'Ruby' })
70
+ .to_return(status: 500, body: server_error, headers: {})
61
71
  end
62
72
 
63
73
  it 'throws a ServerError when the server response is 500' do
64
74
  err = -> { @client.get_badges_for('me') }.must_raise ServerError
65
- err.message.must_match /Server error/
75
+ err.message.must_match(/Server error/)
66
76
  end
67
77
  end
68
78
 
69
79
  describe 'bad data' do
70
80
  before do
71
- bad_data = open(File.expand_path(File.dirname(__FILE__) + '/./fixtures/bad.json')).read
72
- stub_request(:get, 'https://coderwall.com/me.json').
73
- with(:headers => {'Accept' => '*/*', 'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent' => 'Ruby'}).
74
- to_return(:status => 200, :body => bad_data, :headers => {})
81
+ bad_json_fixture = File.dirname(__FILE__) + '/./fixtures/bad.json'
82
+ bad_data = open(File.expand_path(bad_json_fixture)).read
83
+ stub_request(:get, 'https://coderwall.com/me.json')
84
+ .with(headers: { 'Accept' => '*/*',
85
+ 'Accept-Encoding' => @accept_encoding,
86
+ 'User-Agent' => 'Ruby' })
87
+ .to_return(status: 200, body: bad_data, headers: {})
75
88
  end
76
89
 
77
90
  it 'throws a InvalidJson exception when bad JSON is returned' do
78
91
  err = -> { @client.get_badges_for('me') }.must_raise InvalidJson
79
- err.message.must_match /invalid json/
92
+ err.message.must_match(/invalid json/)
80
93
  end
81
94
  end
82
95
  end
83
96
 
84
97
  describe 'user details' do
85
98
  before do
86
- success_response = open(File.expand_path(File.dirname(__FILE__) + '/./fixtures/200.json')).read
87
- stub_request(:get, 'https://coderwall.com/me.json').
88
- with(:headers => {'Accept' => '*/*', 'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent' => 'Ruby'}).
89
- to_return(:status => 200, :body => success_response, :headers => {})
99
+ success_response = open(File.expand_path(@success_fixture)).read
100
+ stub_request(:get, 'https://coderwall.com/me.json')
101
+ .with(headers: { 'Accept' => '*/*',
102
+ 'Accept-Encoding' => @accept_encoding,
103
+ 'User-Agent' => 'Ruby' })
104
+ .to_return(status: 200, body: success_response, headers: {})
90
105
  end
91
106
 
92
107
  it 'returns a user' do
@@ -102,10 +117,12 @@ describe 'Coder Wally' do
102
117
 
103
118
  describe 'everything' do
104
119
  before do
105
- success_response = open(File.expand_path(File.dirname(__FILE__) + '/./fixtures/200.json')).read
106
- stub_request(:get, 'https://coderwall.com/me.json').
107
- with(:headers => {'Accept' => '*/*', 'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent' => 'Ruby'}).
108
- to_return(:status => 200, :body => success_response, :headers => {})
120
+ success_response = open(File.expand_path(@success_fixture)).read
121
+ stub_request(:get, 'https://coderwall.com/me.json')
122
+ .with(headers: { 'Accept' => '*/*',
123
+ 'Accept-Encoding' => @accept_encoding,
124
+ 'User-Agent' => 'Ruby' })
125
+ .to_return(status: 200, body: success_response, headers: {})
109
126
 
110
127
  @coder_wall = @client.get_everything_for('me')
111
128
  end
@@ -127,5 +144,4 @@ describe 'Coder Wally' do
127
144
  @coder_wall.accounts.must_be_instance_of CoderWally::Account
128
145
  end
129
146
  end
130
-
131
- end
147
+ end
data/test/test_helper.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  require 'webmock/minitest'
2
2
  require 'coveralls'
3
- Coveralls.wear!
3
+ Coveralls.wear!
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coder_wally
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Greg Stewart
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-03 00:00:00.000000000 Z
11
+ date: 2015-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: A simple gem to fetch user badges from Coder Wall
70
84
  email:
71
85
  - gregs@tcias.co.uk
@@ -76,6 +90,8 @@ extra_rdoc_files: []
76
90
  files:
77
91
  - ".coveralls.yml"
78
92
  - ".gitignore"
93
+ - ".rubocop.yml"
94
+ - ".rubocop_todo.yml"
79
95
  - ".ruby-version"
80
96
  - ".travis.yml"
81
97
  - Gemfile
@@ -83,6 +99,7 @@ files:
83
99
  - README.md
84
100
  - Rakefile
85
101
  - bin/coder_wally
102
+ - circle.yml
86
103
  - coder_wally.gemspec
87
104
  - lib/coder_wally.rb
88
105
  - lib/coder_wally/account.rb
@@ -120,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
137
  version: '0'
121
138
  requirements: []
122
139
  rubyforge_project:
123
- rubygems_version: 2.4.3
140
+ rubygems_version: 2.2.2
124
141
  signing_key:
125
142
  specification_version: 4
126
143
  summary: A simple gem to fetch user badges from Coder Wall