credly 0.0.1 → 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 +4 -4
- data/.gitignore +3 -0
- data/LICENCE +21 -0
- data/Rakefile +5 -0
- data/lib/credly.rb +15 -8
- data/lib/credly/api/badges.rb +4 -4
- data/lib/credly/api/base.rb +9 -4
- data/lib/credly/api/categories.rb +1 -1
- data/lib/credly/api/evidence.rb +4 -2
- data/lib/credly/api/member_badges.rb +3 -3
- data/lib/credly/api/members.rb +31 -0
- data/lib/credly/client.rb +39 -20
- data/lib/credly/connection.rb +6 -5
- data/lib/credly/response/parse_json.rb +0 -2
- data/lib/credly/version.rb +1 -2
- data/readme.markdown +36 -50
- data/spec/support/contexts.rb +1 -1
- data/spec/unit/api_spec.rb +20 -12
- metadata +5 -6
- data/Gemfile.lock +0 -113
- data/lib/credly/api.rb +0 -33
- data/lib/credly/api/member.rb +0 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b86e3b114c437d2143b9657648f8951b8caa8f5a
|
4
|
+
data.tar.gz: 8b9ac6c6f01e334e13df2097f2e09c56e9dbb10c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 411988b2985245817fc0441383c42e9242bb70cafee59d8a57e1e077c45882ecb95014863815a5ee256943964280a0ad84e7eaca83e64d35e25308ec439fe4b4
|
7
|
+
data.tar.gz: a283bbc7fca7f8c7baef1d05fa1e5e3d9637d15cd632dca01dd0583d734be2aed8446dee3f4d8a98a7fce1d8a103e39f2197833be2d5580a37d5bd52272befaa
|
data/.gitignore
CHANGED
data/LICENCE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2013 Gonzalo Rodríguez-Baltanás Díaz, Haiku Learning Systems
|
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
|
13
|
+
all 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
|
21
|
+
THE SOFTWARE.
|
data/Rakefile
CHANGED
@@ -16,4 +16,9 @@ task :publish => :build do
|
|
16
16
|
end
|
17
17
|
|
18
18
|
task :release => :publish do
|
19
|
+
end
|
20
|
+
|
21
|
+
task :install_gems do
|
22
|
+
# Used when testing in 1.8.6, where bundler is not available.
|
23
|
+
system("gem install faraday activesupport multi_json rake pry-debugger json_spec rspec guard-bundler guard-rspec rb-inotify rb-fsevent rb-fchange ruby_gntp faraday fabrication fuubar awesome_print")
|
19
24
|
end
|
data/lib/credly.rb
CHANGED
@@ -29,12 +29,12 @@ module Credly
|
|
29
29
|
options[:user_agent]
|
30
30
|
end
|
31
31
|
|
32
|
-
def self.
|
33
|
-
options[:
|
32
|
+
def self.access_token=(access_token)
|
33
|
+
options[:access_token] = access_token
|
34
34
|
end
|
35
35
|
|
36
|
-
def self.
|
37
|
-
options[:
|
36
|
+
def self.access_token
|
37
|
+
options[:access_token]
|
38
38
|
end
|
39
39
|
|
40
40
|
def self.version=(version)
|
@@ -50,7 +50,7 @@ module Credly
|
|
50
50
|
@@options
|
51
51
|
else
|
52
52
|
@@options = { :base_endpoint => 'https://apistaging2.credly.com',
|
53
|
-
:
|
53
|
+
:access_token => nil,
|
54
54
|
:version => 'v0.2',
|
55
55
|
:debugging => false,
|
56
56
|
:user_agent => 'credly_ruby_client' }
|
@@ -67,15 +67,22 @@ module Credly
|
|
67
67
|
|
68
68
|
end
|
69
69
|
|
70
|
-
|
70
|
+
if defined? Rails
|
71
|
+
if Rails::VERSION::MAJOR > 2
|
72
|
+
require 'active_support/all'
|
73
|
+
else
|
74
|
+
require 'active_support'
|
75
|
+
end
|
76
|
+
else
|
77
|
+
require 'active_support/all'
|
78
|
+
end
|
71
79
|
|
72
80
|
require 'credly/version'
|
73
81
|
require 'credly/connection'
|
74
82
|
require 'credly/response/follow_redirects'
|
75
83
|
require 'credly/requierable'
|
76
|
-
require 'credly/api'
|
77
84
|
require 'credly/client'
|
78
85
|
|
79
86
|
require 'credly/api/base'
|
80
87
|
|
81
|
-
Dir[File.dirname(__FILE__) + "/credly/api/*"].each {|file| require file }
|
88
|
+
Dir[File.dirname(__FILE__) + "/credly/api/*"].each {|file| require file unless file == 'base.rb' }
|
data/lib/credly/api/badges.rb
CHANGED
@@ -2,19 +2,19 @@ module Credly
|
|
2
2
|
class Api
|
3
3
|
class Badges < Base
|
4
4
|
|
5
|
-
def all(options =
|
5
|
+
def all(options = {})
|
6
6
|
get("badges", options)
|
7
7
|
end
|
8
8
|
|
9
|
-
def create(options =
|
9
|
+
def create(options = {})
|
10
10
|
post('badges', options)
|
11
11
|
end
|
12
12
|
|
13
|
-
def find(id, options =
|
13
|
+
def find(id, options = {})
|
14
14
|
get("badges/#{id}", options)
|
15
15
|
end
|
16
16
|
|
17
|
-
def update(id, options =
|
17
|
+
def update(id, options = {})
|
18
18
|
post("badges/#{id}", options)
|
19
19
|
end
|
20
20
|
|
data/lib/credly/api/base.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'ostruct'
|
2
1
|
|
3
2
|
module Credly
|
4
3
|
class Api
|
@@ -7,13 +6,19 @@ module Credly
|
|
7
6
|
include Requierable
|
8
7
|
|
9
8
|
attr_accessor :response
|
9
|
+
attr_accessor :id
|
10
10
|
|
11
|
-
def initialize(options =
|
12
|
-
@client = options
|
11
|
+
def initialize(options = {})
|
12
|
+
@client = options.delete(:client)
|
13
|
+
options.each_pair do |key, value|
|
14
|
+
if self.respond_to?("#{key}=")
|
15
|
+
self.send("#{key}=", value)
|
16
|
+
end
|
17
|
+
end
|
13
18
|
end
|
14
19
|
|
15
20
|
def build_object
|
16
|
-
|
21
|
+
MultiJson.load(@response)
|
17
22
|
end
|
18
23
|
|
19
24
|
def before_request(*args)
|
data/lib/credly/api/evidence.rb
CHANGED
@@ -3,8 +3,10 @@ module Credly
|
|
3
3
|
class MemberBadges < Base
|
4
4
|
|
5
5
|
class Evidence < Base
|
6
|
-
|
7
|
-
|
6
|
+
attr_accessor :member_badge_id
|
7
|
+
|
8
|
+
def all(options = {})
|
9
|
+
get("member_badges/#{self.member_badge_id}/evidence", options)
|
8
10
|
end
|
9
11
|
end
|
10
12
|
|
@@ -2,16 +2,16 @@ module Credly
|
|
2
2
|
class Api
|
3
3
|
class MemberBadges < Base
|
4
4
|
|
5
|
-
def create(options =
|
5
|
+
def create(options = {})
|
6
6
|
post('member_badges', options)
|
7
7
|
end
|
8
8
|
|
9
|
-
def find(id, options =
|
9
|
+
def find(id, options = {})
|
10
10
|
get("member_badges/#{id}", options)
|
11
11
|
end
|
12
12
|
|
13
13
|
def evidence
|
14
|
-
Evidence.new(:client => @client)
|
14
|
+
Evidence.new(:client => @client, :member_badge_id => self.id)
|
15
15
|
end
|
16
16
|
|
17
17
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Credly
|
2
|
+
class Api
|
3
|
+
class Members < Base
|
4
|
+
|
5
|
+
class Badges < Base
|
6
|
+
attr_accessor :member_id
|
7
|
+
|
8
|
+
def all(options = {})
|
9
|
+
get("members/#{self.member_id}/badges", options)
|
10
|
+
end
|
11
|
+
|
12
|
+
def given(options = {})
|
13
|
+
get("members/#{self.member_id}/badges/given", options)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def all(options = {})
|
18
|
+
get("members", options)
|
19
|
+
end
|
20
|
+
|
21
|
+
def find(id, options = {})
|
22
|
+
get("members/#{id}", options)
|
23
|
+
end
|
24
|
+
|
25
|
+
def badges
|
26
|
+
Badges.new(:client => @client, :member_id => self.id)
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/credly/client.rb
CHANGED
@@ -5,50 +5,69 @@ module Credly
|
|
5
5
|
|
6
6
|
attr_accessor :options
|
7
7
|
|
8
|
-
def initialize(
|
9
|
-
@options =
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
def initialize(args = {})
|
9
|
+
@options = Credly.options
|
10
|
+
if args[:username] && args[:password]
|
11
|
+
@options[:access_token] = authenticate(args[:username], args[:password])
|
12
|
+
elsif args[:access_token]
|
13
|
+
@options[:access_token] = args[:access_token]
|
14
|
+
else
|
15
|
+
raise ArgumentError.new("Need either an 'access_token' or 'username' and 'password' parameters")
|
16
|
+
end
|
14
17
|
end
|
15
18
|
|
16
19
|
def authenticate(username, password)
|
17
20
|
connection = new_connection
|
18
21
|
connection.basic_auth(username, password)
|
19
22
|
resp = connection.post(versioned_path('authenticate'))
|
20
|
-
resp =
|
21
|
-
if resp
|
22
|
-
|
23
|
+
resp = MultiJson.load(resp.body)
|
24
|
+
if resp['meta']['status_code'] == 200
|
25
|
+
resp['data']['token']
|
23
26
|
else
|
24
|
-
resp
|
27
|
+
raise "The username or password was invalid\n#{resp}"
|
25
28
|
end
|
26
29
|
end
|
27
30
|
|
28
|
-
def
|
29
|
-
|
31
|
+
def access_token
|
32
|
+
options[:access_token]
|
33
|
+
end
|
34
|
+
|
35
|
+
def get(path, params = {}, headers = {})
|
36
|
+
super(versioned_path(path), {:access_token => access_token}.merge(params), headers)
|
30
37
|
end
|
31
38
|
|
32
|
-
def post(path, params =
|
33
|
-
super(versioned_path(path), {:access_token =>
|
39
|
+
def post(path, params = {}, headers = {})
|
40
|
+
super(versioned_path(path), {:access_token => access_token}.merge(params), headers)
|
34
41
|
end
|
35
42
|
|
36
|
-
def put(path, params =
|
37
|
-
super(versioned_path(path), {:access_token =>
|
43
|
+
def put(path, params = {}, headers = {})
|
44
|
+
super(versioned_path(path), {:access_token => access_token}.merge(params), headers)
|
38
45
|
end
|
39
46
|
|
40
|
-
def delete(path, params =
|
41
|
-
super(versioned_path(path), {:access_token =>
|
47
|
+
def delete(path, params = {}, headers = {})
|
48
|
+
super(versioned_path(path), {:access_token => access_token}.merge(params), headers)
|
42
49
|
end
|
43
50
|
|
44
51
|
def base_url
|
45
|
-
options
|
52
|
+
options[:base_endpoint]
|
53
|
+
end
|
54
|
+
|
55
|
+
def badges(id = nil)
|
56
|
+
Api::Badges.new(:client => self, :id => id)
|
57
|
+
end
|
58
|
+
|
59
|
+
def member_badges(id = nil)
|
60
|
+
Api::MemberBadges.new(:client => self, :id => id)
|
61
|
+
end
|
62
|
+
|
63
|
+
def members(id = nil)
|
64
|
+
Api::Members.new(:client => self, :id => id)
|
46
65
|
end
|
47
66
|
|
48
67
|
private
|
49
68
|
|
50
69
|
def versioned_path(path)
|
51
|
-
[options
|
70
|
+
[options[:version], path].join('/')
|
52
71
|
end
|
53
72
|
|
54
73
|
end
|
data/lib/credly/connection.rb
CHANGED
@@ -12,6 +12,7 @@ module Credly
|
|
12
12
|
:user_agent => Credly.user_agent,
|
13
13
|
}
|
14
14
|
}
|
15
|
+
|
15
16
|
Faraday.new(self.base_url, default_options) do |builder|
|
16
17
|
builder.use Credly::Response::FollowRedirects
|
17
18
|
builder.request :multipart
|
@@ -19,7 +20,7 @@ module Credly
|
|
19
20
|
# builder.use Faraday::Request::Multipart
|
20
21
|
# builder.use Faraday::Request::UrlEncoded
|
21
22
|
|
22
|
-
builder.response :logger, ::Logger.new(STDOUT)
|
23
|
+
builder.response :logger, ::Logger.new(STDOUT) if Credly.debugging?
|
23
24
|
builder.adapter Faraday.default_adapter
|
24
25
|
end
|
25
26
|
end
|
@@ -28,19 +29,19 @@ module Credly
|
|
28
29
|
@connection ||= new_connection
|
29
30
|
end
|
30
31
|
|
31
|
-
def get(path, params =
|
32
|
+
def get(path, params = {}, headers = {})
|
32
33
|
request(:get, path, params, headers)
|
33
34
|
end
|
34
35
|
|
35
|
-
def post(path, params =
|
36
|
+
def post(path, params = {}, headers = {})
|
36
37
|
request(:post, path, params, headers)
|
37
38
|
end
|
38
39
|
|
39
|
-
def put(path, params =
|
40
|
+
def put(path, params = {}, headers = {})
|
40
41
|
request(:put, path, params, headers)
|
41
42
|
end
|
42
43
|
|
43
|
-
def delete(path, params =
|
44
|
+
def delete(path, params = {}, headers = {})
|
44
45
|
request(:delete, path, params, headers)
|
45
46
|
end
|
46
47
|
|
data/lib/credly/version.rb
CHANGED
data/readme.markdown
CHANGED
@@ -2,75 +2,61 @@
|
|
2
2
|
|
3
3
|
Credly is an Badging service. This is the the API client for the ruby client. You can find Credly's API at https://apidocs2.credly.com/credly.
|
4
4
|
|
5
|
-
|
5
|
+
## Install
|
6
6
|
|
7
|
-
|
7
|
+
```
|
8
|
+
gem 'credly'
|
9
|
+
```
|
8
10
|
|
11
|
+
## Quick Start
|
9
12
|
```ruby
|
10
|
-
Credly.
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
client = Credly::Client.new(access_token: '26287568342')
|
14
|
+
# Or
|
15
|
+
client = Credly::Client.new(username: 'whatever', password: 'mypass')
|
16
|
+
|
17
|
+
client.badges.all
|
18
|
+
client.badges.find(1)
|
19
|
+
client.badges.categories.all
|
16
20
|
```
|
17
21
|
|
18
|
-
|
22
|
+
All API endpoints are accessible from the client instance. The endpoints methods are named after the remote endpoint. So, for example any action on 'https://apistaging2.credly.com/v0.2/members' will be using `client.members`.
|
23
|
+
|
24
|
+
Nested endpoints, like `/members/:id/badges` are also nested in the client
|
19
25
|
|
20
26
|
```ruby
|
21
|
-
|
22
|
-
Credly.configuration.version = 'v0.2'
|
23
|
-
Credly.configuration.auth_token = nil
|
27
|
+
client.members(id).badges.all(other_parameter: 'whatever')
|
24
28
|
```
|
25
29
|
|
26
|
-
|
30
|
+
Check https://github.com/haikulearning/credly-ruby/blob/master/spec/unit/api_spec.rb for examples.
|
27
31
|
|
28
|
-
```ruby
|
29
|
-
client = client.api.new(auth_token: '26287568342')
|
30
32
|
|
31
|
-
|
33
|
+
## Configuration
|
32
34
|
|
33
|
-
|
34
|
-
```ruby
|
35
|
-
client = client.api.new()
|
36
|
-
|
37
|
-
client.api.badges.all
|
38
|
-
=> #<OpenStruct
|
39
|
-
meta={"status_code"=>200, "status"=>"OK", "message"=>"", "more_info"=>nil},
|
40
|
-
data=[
|
41
|
-
{ "id"=>1003,
|
42
|
-
"title"=>"asadas",
|
43
|
-
"short_description"=>"asdasda",
|
44
|
-
"image_url"=>"https://credlyapp.s3.amazonaws.com/badges/6f7791d21e13ca7409146c2343fdf28d.png",
|
45
|
-
"is_giveable"=>false,
|
46
|
-
"created_at"=>"Thu, 04 Jul 2013 06:33:43 -0400",
|
47
|
-
"creator_id"=>147,
|
48
|
-
"resources"=>{"url"=>"https://apistaging2.credly.com/v0.2/badges/1003"}},
|
49
|
-
|
50
|
-
{ "id"=>1002,
|
51
|
-
"title"=>"asadas",
|
52
|
-
"short_description"=>"asdasda",
|
53
|
-
"image_url"=>"https://credlyapp.s3.amazonaws.com/badges/6f7791d21e13ca7409146c2343fdf28d.png",
|
54
|
-
"is_giveable"=>false,
|
55
|
-
"created_at"=>"Thu, 04 Jul 2013 06:31:46 -0400",
|
56
|
-
"creator_id"=>147,
|
57
|
-
"resources"=>{"url"=>"https://apistaging2.credly.com/v0.2/badges/1002"}}
|
58
|
-
]
|
59
|
-
>
|
35
|
+
This is how you can configure the default values for Credly:
|
60
36
|
|
37
|
+
```ruby
|
38
|
+
Credly.configuration do |config|
|
39
|
+
# These are the default values
|
40
|
+
config.base_endpoint = 'apistaging2.credly.com'
|
41
|
+
config.version = 'v0.2'
|
42
|
+
config.access_token = nil
|
43
|
+
end
|
61
44
|
```
|
62
45
|
|
63
|
-
|
64
|
-
|
65
|
-
Nested endpoints, like `/members/:id/badges` are also nested in the client
|
46
|
+
You can also do:
|
66
47
|
|
67
48
|
```ruby
|
68
|
-
|
49
|
+
Credly.configuration.base_endpoint = 'apistaging2.credly.com/v0.2/'
|
50
|
+
Credly.configuration.version = 'v0.2'
|
51
|
+
Credly.configuration.access_token = nil
|
69
52
|
```
|
70
53
|
|
71
|
-
|
54
|
+
Those options will be the default ones for any `client` you create afterwards. Nonetheless, you can overwrite any of these options; just pass it as an argument when you instantiate the client:
|
55
|
+
|
72
56
|
```ruby
|
73
|
-
client.
|
57
|
+
client = Credly::Client.new(access_token: '26287568342', base_endpoint: 'apistaging2.credly.com/', version: 'v0.2')
|
74
58
|
```
|
75
59
|
|
76
|
-
|
60
|
+
## License & Acknowledgments
|
61
|
+
|
62
|
+
The MIT License, for full details please see the LICENSE file.
|
data/spec/support/contexts.rb
CHANGED
data/spec/unit/api_spec.rb
CHANGED
@@ -3,31 +3,39 @@ require 'spec_helper'
|
|
3
3
|
describe 'API' do
|
4
4
|
include_context 'api'
|
5
5
|
|
6
|
+
describe "authentication" do
|
7
|
+
it "authenticates" do
|
8
|
+
pending
|
9
|
+
client = Credly::Client.new(:username => 'whatever', :password => 'password')
|
10
|
+
client.access_token.should_not be_nil
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
6
14
|
describe 'Badges' do
|
7
15
|
it 'list all badges' do
|
8
16
|
expect_api_call(:get, 'badges', {})
|
9
|
-
client.
|
17
|
+
client.badges.all
|
10
18
|
end
|
11
19
|
|
12
20
|
it 'create a badge' do
|
13
21
|
expect_api_call(:post, 'badges', :title => 'my title')
|
14
|
-
client.
|
22
|
+
client.badges.create(:title => 'my title')
|
15
23
|
end
|
16
24
|
|
17
25
|
it "update a badge" do
|
18
26
|
expect_api_call(:post, 'badges/1', {})
|
19
|
-
client.
|
27
|
+
client.badges.update(1, {})
|
20
28
|
end
|
21
29
|
|
22
30
|
it "find a badge" do
|
23
31
|
expect_api_call(:get, 'badges/1', {})
|
24
|
-
client.
|
32
|
+
client.badges.find(1, {})
|
25
33
|
end
|
26
34
|
|
27
35
|
describe "Categories" do
|
28
36
|
it "list categories" do
|
29
37
|
expect_api_call(:get, 'badges/categories', {})
|
30
|
-
client.
|
38
|
+
client.badges.categories.all({})
|
31
39
|
end
|
32
40
|
end
|
33
41
|
end
|
@@ -35,18 +43,18 @@ describe 'API' do
|
|
35
43
|
describe "Member Badges" do
|
36
44
|
it "create member badge" do
|
37
45
|
expect_api_call(:post, 'member_badges', {})
|
38
|
-
client.
|
46
|
+
client.member_badges.create({})
|
39
47
|
end
|
40
48
|
|
41
49
|
it "find a member badge " do
|
42
50
|
expect_api_call(:get, 'member_badges/1', {})
|
43
|
-
client.
|
51
|
+
client.member_badges.find(1, {})
|
44
52
|
end
|
45
53
|
|
46
54
|
describe "Evidence" do
|
47
55
|
it "list all evidence for a member_badge" do
|
48
56
|
expect_api_call(:get, 'member_badges/1/evidence', {})
|
49
|
-
client.
|
57
|
+
client.member_badges(1).evidence.all({})
|
50
58
|
end
|
51
59
|
end
|
52
60
|
end
|
@@ -54,23 +62,23 @@ describe 'API' do
|
|
54
62
|
describe "Members" do
|
55
63
|
it "list all members" do
|
56
64
|
expect_api_call(:get, 'members', {})
|
57
|
-
client.
|
65
|
+
client.members.all({})
|
58
66
|
end
|
59
67
|
|
60
68
|
it "find a member" do
|
61
69
|
expect_api_call(:get, 'members/1', {})
|
62
|
-
client.
|
70
|
+
client.members.find(1, {})
|
63
71
|
end
|
64
72
|
|
65
73
|
describe "Badges" do
|
66
74
|
it "list all badges of a member" do
|
67
75
|
expect_api_call(:get, 'members/1/badges', {})
|
68
|
-
client.
|
76
|
+
client.members(1).badges.all({})
|
69
77
|
end
|
70
78
|
|
71
79
|
it "list all badges a member has given" do
|
72
80
|
expect_api_call(:get, 'members/1/badges/given', {})
|
73
|
-
client.
|
81
|
+
client.members(1).badges.given({})
|
74
82
|
end
|
75
83
|
end
|
76
84
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: credly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gonzalo Rodríguez-Baltanás Díaz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-09-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -258,18 +258,17 @@ files:
|
|
258
258
|
- .gitignore
|
259
259
|
- .rvmrc
|
260
260
|
- Gemfile
|
261
|
-
- Gemfile.lock
|
262
261
|
- Guardfile
|
262
|
+
- LICENCE
|
263
263
|
- Rakefile
|
264
264
|
- credly.gemspec
|
265
265
|
- lib/credly.rb
|
266
|
-
- lib/credly/api.rb
|
267
266
|
- lib/credly/api/badges.rb
|
268
267
|
- lib/credly/api/base.rb
|
269
268
|
- lib/credly/api/categories.rb
|
270
269
|
- lib/credly/api/evidence.rb
|
271
|
-
- lib/credly/api/member.rb
|
272
270
|
- lib/credly/api/member_badges.rb
|
271
|
+
- lib/credly/api/members.rb
|
273
272
|
- lib/credly/client.rb
|
274
273
|
- lib/credly/connection.rb
|
275
274
|
- lib/credly/requierable.rb
|
@@ -299,7 +298,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
299
298
|
version: '0'
|
300
299
|
requirements: []
|
301
300
|
rubyforge_project:
|
302
|
-
rubygems_version: 2.0.
|
301
|
+
rubygems_version: 2.0.6
|
303
302
|
signing_key:
|
304
303
|
specification_version: 4
|
305
304
|
summary: ruby client for the Credly API
|
data/Gemfile.lock
DELETED
@@ -1,113 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
credly (0.0.1)
|
5
|
-
activesupport
|
6
|
-
faraday
|
7
|
-
multi_json
|
8
|
-
|
9
|
-
GEM
|
10
|
-
remote: https://rubygems.org/
|
11
|
-
specs:
|
12
|
-
activesupport (4.0.0)
|
13
|
-
i18n (~> 0.6, >= 0.6.4)
|
14
|
-
minitest (~> 4.2)
|
15
|
-
multi_json (~> 1.3)
|
16
|
-
thread_safe (~> 0.1)
|
17
|
-
tzinfo (~> 0.3.37)
|
18
|
-
atomic (1.1.10)
|
19
|
-
awesome_print (1.1.0)
|
20
|
-
coderay (1.0.9)
|
21
|
-
columnize (0.3.6)
|
22
|
-
debugger (1.6.0)
|
23
|
-
columnize (>= 0.3.1)
|
24
|
-
debugger-linecache (~> 1.2.0)
|
25
|
-
debugger-ruby_core_source (~> 1.2.1)
|
26
|
-
debugger-linecache (1.2.0)
|
27
|
-
debugger-ruby_core_source (1.2.3)
|
28
|
-
diff-lcs (1.2.4)
|
29
|
-
fabrication (2.7.2)
|
30
|
-
faraday (0.8.7)
|
31
|
-
multipart-post (~> 1.1)
|
32
|
-
ffi (1.9.0)
|
33
|
-
formatador (0.2.4)
|
34
|
-
fuubar (1.1.1)
|
35
|
-
rspec (~> 2.0)
|
36
|
-
rspec-instafail (~> 0.2.0)
|
37
|
-
ruby-progressbar (~> 1.0)
|
38
|
-
guard (1.8.1)
|
39
|
-
formatador (>= 0.2.4)
|
40
|
-
listen (>= 1.0.0)
|
41
|
-
lumberjack (>= 1.0.2)
|
42
|
-
pry (>= 0.9.10)
|
43
|
-
thor (>= 0.14.6)
|
44
|
-
guard-bundler (1.0.0)
|
45
|
-
bundler (~> 1.0)
|
46
|
-
guard (~> 1.1)
|
47
|
-
guard-rspec (3.0.2)
|
48
|
-
guard (>= 1.8)
|
49
|
-
rspec (~> 2.13)
|
50
|
-
i18n (0.6.4)
|
51
|
-
json_spec (1.1.1)
|
52
|
-
multi_json (~> 1.0)
|
53
|
-
rspec (~> 2.0)
|
54
|
-
listen (1.2.2)
|
55
|
-
rb-fsevent (>= 0.9.3)
|
56
|
-
rb-inotify (>= 0.9)
|
57
|
-
rb-kqueue (>= 0.2)
|
58
|
-
lumberjack (1.0.4)
|
59
|
-
method_source (0.8.1)
|
60
|
-
minitest (4.7.5)
|
61
|
-
multi_json (1.7.7)
|
62
|
-
multipart-post (1.2.0)
|
63
|
-
pry (0.9.12.2)
|
64
|
-
coderay (~> 1.0.5)
|
65
|
-
method_source (~> 0.8)
|
66
|
-
slop (~> 3.4)
|
67
|
-
pry-debugger (0.2.2)
|
68
|
-
debugger (~> 1.3)
|
69
|
-
pry (~> 0.9.10)
|
70
|
-
rake (10.1.0)
|
71
|
-
rb-fchange (0.0.6)
|
72
|
-
ffi
|
73
|
-
rb-fsevent (0.9.3)
|
74
|
-
rb-inotify (0.9.0)
|
75
|
-
ffi (>= 0.5.0)
|
76
|
-
rb-kqueue (0.2.0)
|
77
|
-
ffi (>= 0.5.0)
|
78
|
-
rspec (2.13.0)
|
79
|
-
rspec-core (~> 2.13.0)
|
80
|
-
rspec-expectations (~> 2.13.0)
|
81
|
-
rspec-mocks (~> 2.13.0)
|
82
|
-
rspec-core (2.13.1)
|
83
|
-
rspec-expectations (2.13.0)
|
84
|
-
diff-lcs (>= 1.1.3, < 2.0)
|
85
|
-
rspec-instafail (0.2.4)
|
86
|
-
rspec-mocks (2.13.1)
|
87
|
-
ruby-progressbar (1.1.1)
|
88
|
-
ruby_gntp (0.3.4)
|
89
|
-
slop (3.4.5)
|
90
|
-
thor (0.18.1)
|
91
|
-
thread_safe (0.1.0)
|
92
|
-
atomic
|
93
|
-
tzinfo (0.3.37)
|
94
|
-
|
95
|
-
PLATFORMS
|
96
|
-
ruby
|
97
|
-
|
98
|
-
DEPENDENCIES
|
99
|
-
awesome_print
|
100
|
-
credly!
|
101
|
-
fabrication
|
102
|
-
faraday
|
103
|
-
fuubar
|
104
|
-
guard-bundler
|
105
|
-
guard-rspec
|
106
|
-
json_spec
|
107
|
-
pry-debugger
|
108
|
-
rake
|
109
|
-
rb-fchange
|
110
|
-
rb-fsevent
|
111
|
-
rb-inotify
|
112
|
-
rspec
|
113
|
-
ruby_gntp
|
data/lib/credly/api.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'forwardable'
|
2
|
-
|
3
|
-
module Credly
|
4
|
-
class Api
|
5
|
-
extend Forwardable
|
6
|
-
|
7
|
-
attr_accessor :client
|
8
|
-
|
9
|
-
def_delegators :@client, :get, :post, :request, :put, :delete, :patch
|
10
|
-
|
11
|
-
def initialize(client)
|
12
|
-
@client = client
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def self.endpoint(name)
|
18
|
-
define_method name do
|
19
|
-
$endpoint_resource = name.to_s if ENV['testing']
|
20
|
-
Api::const_get(name.to_s.camelize).new(:client => @client)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.endpoints(*names)
|
25
|
-
names.each { |name| endpoint(name) }
|
26
|
-
end
|
27
|
-
|
28
|
-
public
|
29
|
-
|
30
|
-
endpoints :badges, :member_badges, :members
|
31
|
-
|
32
|
-
end
|
33
|
-
end
|
data/lib/credly/api/member.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
module Credly
|
2
|
-
class Api
|
3
|
-
class Members < Base
|
4
|
-
|
5
|
-
class Badges < Base
|
6
|
-
def all(member_id, options = Hash.new)
|
7
|
-
get("members/#{member_id}/badges", options)
|
8
|
-
end
|
9
|
-
|
10
|
-
def given(member_id, options = Hash.new)
|
11
|
-
get("members/#{member_id}/badges/given", options)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
def all(options = Hash.new)
|
16
|
-
get("members", options)
|
17
|
-
end
|
18
|
-
|
19
|
-
def find(id, options = Hash.new)
|
20
|
-
get("members/#{id}", options)
|
21
|
-
end
|
22
|
-
|
23
|
-
def badges
|
24
|
-
Badges.new(:client => @client)
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|