tinybucket 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +35 -0
- data/.rspec +1 -0
- data/.rubocop.yml +44 -0
- data/.travis.yml +10 -0
- data/Gemfile +22 -0
- data/Guardfile +13 -0
- data/LICENSE +21 -0
- data/README.md +237 -0
- data/Rakefile +39 -0
- data/lib/faraday_middleware/follow_oauth_redirects.rb +67 -0
- data/lib/tinybucket.rb +61 -0
- data/lib/tinybucket/api.rb +20 -0
- data/lib/tinybucket/api/base_api.rb +31 -0
- data/lib/tinybucket/api/branch_restrictions_api.rb +26 -0
- data/lib/tinybucket/api/comments_api.rb +46 -0
- data/lib/tinybucket/api/commits_api.rb +26 -0
- data/lib/tinybucket/api/diff_api.rb +17 -0
- data/lib/tinybucket/api/helper.rb +22 -0
- data/lib/tinybucket/api/helper/api_helper.rb +48 -0
- data/lib/tinybucket/api/helper/branch_restrictions_helper.rb +27 -0
- data/lib/tinybucket/api/helper/comments_helper.rb +49 -0
- data/lib/tinybucket/api/helper/commits_helper.rb +27 -0
- data/lib/tinybucket/api/helper/diff_helper.rb +29 -0
- data/lib/tinybucket/api/helper/pull_requests_helper.rb +44 -0
- data/lib/tinybucket/api/helper/repo_helper.rb +29 -0
- data/lib/tinybucket/api/helper/repos_helper.rb +21 -0
- data/lib/tinybucket/api/helper/team_helper.rb +35 -0
- data/lib/tinybucket/api/helper/user_helper.rb +31 -0
- data/lib/tinybucket/api/pull_requests_api.rb +49 -0
- data/lib/tinybucket/api/repo_api.rb +35 -0
- data/lib/tinybucket/api/repos_api.rb +19 -0
- data/lib/tinybucket/api/team_api.rb +51 -0
- data/lib/tinybucket/api/user_api.rb +44 -0
- data/lib/tinybucket/api_factory.rb +21 -0
- data/lib/tinybucket/client.rb +95 -0
- data/lib/tinybucket/connection.rb +62 -0
- data/lib/tinybucket/constants.rb +4 -0
- data/lib/tinybucket/error.rb +8 -0
- data/lib/tinybucket/error/base_error.rb +12 -0
- data/lib/tinybucket/error/service_error.rb +20 -0
- data/lib/tinybucket/model.rb +20 -0
- data/lib/tinybucket/model/base.rb +54 -0
- data/lib/tinybucket/model/branch_restriction.rb +17 -0
- data/lib/tinybucket/model/comment.rb +39 -0
- data/lib/tinybucket/model/commit.rb +39 -0
- data/lib/tinybucket/model/concerns.rb +14 -0
- data/lib/tinybucket/model/concerns/reloadable.rb +45 -0
- data/lib/tinybucket/model/concerns/repository_keys.rb +43 -0
- data/lib/tinybucket/model/error_response.rb +7 -0
- data/lib/tinybucket/model/page.rb +65 -0
- data/lib/tinybucket/model/profile.rb +37 -0
- data/lib/tinybucket/model/pull_request.rb +64 -0
- data/lib/tinybucket/model/repository.rb +96 -0
- data/lib/tinybucket/model/team.rb +39 -0
- data/lib/tinybucket/parser.rb +25 -0
- data/lib/tinybucket/parser/base_parser.rb +17 -0
- data/lib/tinybucket/parser/branch_restriction_parser.rb +9 -0
- data/lib/tinybucket/parser/branch_restrictions_parser.rb +10 -0
- data/lib/tinybucket/parser/comment_parser.rb +9 -0
- data/lib/tinybucket/parser/comments_parser.rb +10 -0
- data/lib/tinybucket/parser/commit_parser.rb +9 -0
- data/lib/tinybucket/parser/commits_parser.rb +9 -0
- data/lib/tinybucket/parser/profile_parser.rb +9 -0
- data/lib/tinybucket/parser/profiles_parser.rb +9 -0
- data/lib/tinybucket/parser/pull_request_parser.rb +9 -0
- data/lib/tinybucket/parser/pull_requests_parser.rb +10 -0
- data/lib/tinybucket/parser/repo_parser.rb +9 -0
- data/lib/tinybucket/parser/repos_parser.rb +10 -0
- data/lib/tinybucket/parser/team_parser.rb +9 -0
- data/lib/tinybucket/parser/teams_parser.rb +9 -0
- data/lib/tinybucket/request.rb +55 -0
- data/lib/tinybucket/response.rb +7 -0
- data/lib/tinybucket/response/error_handler.rb +14 -0
- data/lib/tinybucket/version.rb +3 -0
- data/spec/fixtures/commit.json +83 -0
- data/spec/fixtures/profile.json +29 -0
- data/spec/fixtures/pull_request.json +106 -0
- data/spec/fixtures/repositories/get.json +78 -0
- data/spec/fixtures/repositories/test_owner/get.json +78 -0
- data/spec/fixtures/repositories/test_owner/test_repo/branch-restrictions/1/get.json +17 -0
- data/spec/fixtures/repositories/test_owner/test_repo/branch-restrictions/get.json +101 -0
- data/spec/fixtures/repositories/test_owner/test_repo/commit/1/comments/1/get.json +38 -0
- data/spec/fixtures/repositories/test_owner/test_repo/commit/1/comments/get.json +40 -0
- data/spec/fixtures/repositories/test_owner/test_repo/commit/1/get.json +83 -0
- data/spec/fixtures/repositories/test_owner/test_repo/commits/get.json +73 -0
- data/spec/fixtures/repositories/test_owner/test_repo/diff/1/get.json +21 -0
- data/spec/fixtures/repositories/test_owner/test_repo/forks/get.json +78 -0
- data/spec/fixtures/repositories/test_owner/test_repo/get.json +71 -0
- data/spec/fixtures/repositories/test_owner/test_repo/patch/1/get.json +29 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/approve/delete.json +3 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/approve/post.json +3 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/comments/1/get.json +30 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/comments/get.json +44 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/commits/get.json +66 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/diff/get.txt +13 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/1/get.json +164 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/get.json +112 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/get_state_declined.json +112 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/get_state_merged.json +112 -0
- data/spec/fixtures/repositories/test_owner/test_repo/pullrequests/get_state_open.json +112 -0
- data/spec/fixtures/repositories/test_owner/test_repo/watchers/get.json +32 -0
- data/spec/fixtures/repository.json +71 -0
- data/spec/fixtures/teams/test_team/followers/get.json +36 -0
- data/spec/fixtures/teams/test_team/following/get.json +39 -0
- data/spec/fixtures/teams/test_team/get.json +32 -0
- data/spec/fixtures/teams/test_team/members/get.json +36 -0
- data/spec/fixtures/teams/test_team/repositories/get.json +125 -0
- data/spec/fixtures/users/test_owner/followers/get.json +65 -0
- data/spec/fixtures/users/test_owner/following/get.json +100 -0
- data/spec/fixtures/users/test_owner/get.json +29 -0
- data/spec/lib/tinybucket/api/branch_restrictions_api_spec.rb +78 -0
- data/spec/lib/tinybucket/api/comments_api_spec.rb +133 -0
- data/spec/lib/tinybucket/api/commits_api_spec.rb +63 -0
- data/spec/lib/tinybucket/api/diff_api_spec.rb +5 -0
- data/spec/lib/tinybucket/api/pull_requests_api_spec.rb +229 -0
- data/spec/lib/tinybucket/api/repo_api_spec.rb +100 -0
- data/spec/lib/tinybucket/api/repos_api_spec.rb +28 -0
- data/spec/lib/tinybucket/api/team_api_spec.rb +87 -0
- data/spec/lib/tinybucket/api/user_api_spec.rb +60 -0
- data/spec/lib/tinybucket/api_factory_spec.rb +23 -0
- data/spec/lib/tinybucket/client_spec.rb +102 -0
- data/spec/lib/tinybucket/connection_spec.rb +30 -0
- data/spec/lib/tinybucket/model/branch_restriction_spec.rb +29 -0
- data/spec/lib/tinybucket/model/comment_spec.rb +31 -0
- data/spec/lib/tinybucket/model/commit_spec.rb +62 -0
- data/spec/lib/tinybucket/model/page_spec.rb +58 -0
- data/spec/lib/tinybucket/model/profile_spec.rb +47 -0
- data/spec/lib/tinybucket/model/pull_request_spec.rb +122 -0
- data/spec/lib/tinybucket/model/repository_spec.rb +131 -0
- data/spec/lib/tinybucket/model/team_spec.rb +53 -0
- data/spec/lib/tinybucket_spec.rb +32 -0
- data/spec/spec_helper.rb +42 -0
- data/spec/support/api_response_macros.rb +30 -0
- data/spec/support/model_macros.rb +61 -0
- data/tinybucket.gemspec +36 -0
- metadata +437 -0
@@ -0,0 +1,27 @@
|
|
1
|
+
module Tinybucket
|
2
|
+
module Api
|
3
|
+
module Helper
|
4
|
+
module CommitsHelper
|
5
|
+
include ::Tinybucket::Api::Helper::ApiHelper
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def path_to_list
|
10
|
+
build_path(base_path, 'commits')
|
11
|
+
end
|
12
|
+
|
13
|
+
def path_to_find(revision)
|
14
|
+
build_path(base_path,
|
15
|
+
'commit',
|
16
|
+
[revision, 'revision'])
|
17
|
+
end
|
18
|
+
|
19
|
+
def base_path
|
20
|
+
build_path('/repositories',
|
21
|
+
[repo_owner, 'repo_owner'],
|
22
|
+
[repo_slug, 'repo_slug'])
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Tinybucket
|
2
|
+
module Api
|
3
|
+
module Helper
|
4
|
+
module DiffHelper
|
5
|
+
include ::Tinybucket::Api::Helper::ApiHelper
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def path_to_find(spec)
|
10
|
+
build_path(base_path,
|
11
|
+
'diff',
|
12
|
+
[spec, 'spec'])
|
13
|
+
end
|
14
|
+
|
15
|
+
def path_to_patch(spec)
|
16
|
+
build_path(base_path,
|
17
|
+
'patch',
|
18
|
+
[spec, 'spec'])
|
19
|
+
end
|
20
|
+
|
21
|
+
def base_path
|
22
|
+
build_path('/repositories',
|
23
|
+
[repo_owner, 'repo_owner'],
|
24
|
+
[repo_slug, 'repo_slug'])
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Tinybucket
|
2
|
+
module Api
|
3
|
+
module Helper
|
4
|
+
module PullRequestsHelper
|
5
|
+
include ::Tinybucket::Api::Helper::ApiHelper
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def path_to_list
|
10
|
+
base_path
|
11
|
+
end
|
12
|
+
|
13
|
+
def path_to_find(pr_id)
|
14
|
+
build_path(base_path,
|
15
|
+
[pr_id, 'pullrequest_id'])
|
16
|
+
end
|
17
|
+
|
18
|
+
def path_to_commits(pr_id)
|
19
|
+
build_path(base_path,
|
20
|
+
[pr_id, 'pullrequest_id'],
|
21
|
+
'commits')
|
22
|
+
end
|
23
|
+
|
24
|
+
def path_to_approve(pr_id)
|
25
|
+
build_path(base_path,
|
26
|
+
[pr_id, 'pullrequest_id'],
|
27
|
+
'approve')
|
28
|
+
end
|
29
|
+
|
30
|
+
def path_to_diff(pr_id)
|
31
|
+
build_path(path_to_find(pr_id),
|
32
|
+
'diff')
|
33
|
+
end
|
34
|
+
|
35
|
+
def base_path
|
36
|
+
build_path('/repositories',
|
37
|
+
[repo_owner, 'repo_owner'],
|
38
|
+
[repo_slug, 'repo_slug'],
|
39
|
+
'pullrequests')
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Tinybucket
|
2
|
+
module Api
|
3
|
+
module Helper
|
4
|
+
module RepoHelper
|
5
|
+
include ::Tinybucket::Api::Helper::ApiHelper
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def path_to_find
|
10
|
+
base_path
|
11
|
+
end
|
12
|
+
|
13
|
+
def path_to_watchers
|
14
|
+
build_path(base_path, '/watchers')
|
15
|
+
end
|
16
|
+
|
17
|
+
def path_to_forks
|
18
|
+
build_path(base_path, '/forks')
|
19
|
+
end
|
20
|
+
|
21
|
+
def base_path
|
22
|
+
build_path('/repositories',
|
23
|
+
[repo_owner, 'repo_owner'],
|
24
|
+
[repo_slug, 'repo_slug'])
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Tinybucket
|
2
|
+
module Api
|
3
|
+
module Helper
|
4
|
+
module ReposHelper
|
5
|
+
include ::Tinybucket::Api::Helper::ApiHelper
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def path_to_list(options)
|
10
|
+
owner = options[:owner]
|
11
|
+
return base_path if owner.blank?
|
12
|
+
build_path(base_path, [owner, 'owner'])
|
13
|
+
end
|
14
|
+
|
15
|
+
def base_path
|
16
|
+
'/repositories'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Tinybucket
|
2
|
+
module Api
|
3
|
+
module Helper
|
4
|
+
module TeamHelper
|
5
|
+
include ::Tinybucket::Api::Helper::ApiHelper
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def path_to_find(name)
|
10
|
+
base_path(name)
|
11
|
+
end
|
12
|
+
|
13
|
+
def path_to_members(name)
|
14
|
+
build_path(base_path(name), 'members')
|
15
|
+
end
|
16
|
+
|
17
|
+
def path_to_followers(name)
|
18
|
+
build_path(base_path(name), 'followers')
|
19
|
+
end
|
20
|
+
|
21
|
+
def path_to_following(name)
|
22
|
+
build_path(base_path(name), 'following')
|
23
|
+
end
|
24
|
+
|
25
|
+
def path_to_repos(name)
|
26
|
+
build_path(base_path(name), 'repositories')
|
27
|
+
end
|
28
|
+
|
29
|
+
def base_path(name)
|
30
|
+
build_path('/teams', [name, 'teamname'])
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Tinybucket
|
2
|
+
module Api
|
3
|
+
module Helper
|
4
|
+
module UserHelper
|
5
|
+
include ::Tinybucket::Api::Helper::ApiHelper
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def path_to_find
|
10
|
+
base_path
|
11
|
+
end
|
12
|
+
|
13
|
+
def path_to_followers
|
14
|
+
build_path(base_path, 'followers')
|
15
|
+
end
|
16
|
+
|
17
|
+
def path_to_following
|
18
|
+
build_path(base_path, 'following')
|
19
|
+
end
|
20
|
+
|
21
|
+
def path_to_repos
|
22
|
+
build_path('/repositories', [username, 'username'])
|
23
|
+
end
|
24
|
+
|
25
|
+
def base_path
|
26
|
+
build_path('/users', [username, 'username'])
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Tinybucket
|
2
|
+
module Api
|
3
|
+
class PullRequestsApi < BaseApi
|
4
|
+
include Tinybucket::Api::Helper::PullRequestsHelper
|
5
|
+
|
6
|
+
attr_accessor :repo_owner, :repo_slug
|
7
|
+
|
8
|
+
def list(options = {})
|
9
|
+
list = get_path(path_to_list,
|
10
|
+
options,
|
11
|
+
Tinybucket::Parser::PullRequestsParser)
|
12
|
+
|
13
|
+
list.next_proc = next_proc(:list, options)
|
14
|
+
inject_api_config(list)
|
15
|
+
end
|
16
|
+
|
17
|
+
def find(pr_id, options = {})
|
18
|
+
m = get_path(path_to_find(pr_id),
|
19
|
+
options,
|
20
|
+
Tinybucket::Parser::PullRequestParser)
|
21
|
+
|
22
|
+
inject_api_config(m)
|
23
|
+
end
|
24
|
+
|
25
|
+
def commits(pr_id, options = {})
|
26
|
+
list = get_path(path_to_commits(pr_id),
|
27
|
+
options,
|
28
|
+
Tinybucket::Parser::CommitsParser)
|
29
|
+
|
30
|
+
list.next_proc = next_proc(:commits, options)
|
31
|
+
inject_api_config(list)
|
32
|
+
end
|
33
|
+
|
34
|
+
def approve(pr_id, options = {})
|
35
|
+
result = post_path(path_to_approve(pr_id), options)
|
36
|
+
(result['approved'] == true)
|
37
|
+
end
|
38
|
+
|
39
|
+
def unapprove(pr_id, options = {})
|
40
|
+
result = delete_path(path_to_approve(pr_id), options)
|
41
|
+
(result['approved'] == false)
|
42
|
+
end
|
43
|
+
|
44
|
+
def diff(pr_id, options = {})
|
45
|
+
get_path(path_to_diff(pr_id), options)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Tinybucket
|
2
|
+
module Api
|
3
|
+
class RepoApi < BaseApi
|
4
|
+
include Tinybucket::Api::Helper::RepoHelper
|
5
|
+
|
6
|
+
attr_accessor :repo_owner, :repo_slug
|
7
|
+
|
8
|
+
def find(options = {})
|
9
|
+
repo = get_path(path_to_find,
|
10
|
+
options,
|
11
|
+
Tinybucket::Parser::RepoParser)
|
12
|
+
|
13
|
+
inject_api_config(repo)
|
14
|
+
end
|
15
|
+
|
16
|
+
def watchers(options = {})
|
17
|
+
list = get_path(path_to_watchers,
|
18
|
+
options,
|
19
|
+
Tinybucket::Parser::ProfilesParser)
|
20
|
+
|
21
|
+
list.next_proc = next_proc(:watchers, options)
|
22
|
+
inject_api_config(list)
|
23
|
+
end
|
24
|
+
|
25
|
+
def forks(options = {})
|
26
|
+
list = get_path(path_to_forks,
|
27
|
+
options,
|
28
|
+
Tinybucket::Parser::ReposParser)
|
29
|
+
|
30
|
+
list.next_proc = next_proc(:forks, options)
|
31
|
+
inject_api_config(list)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Tinybucket
|
2
|
+
module Api
|
3
|
+
class ReposApi < BaseApi
|
4
|
+
include Tinybucket::Api::Helper::ReposHelper
|
5
|
+
|
6
|
+
def list(options = {})
|
7
|
+
opts = options.clone
|
8
|
+
opts.delete(:owner)
|
9
|
+
|
10
|
+
list = get_path(path_to_list(options),
|
11
|
+
opts,
|
12
|
+
Tinybucket::Parser::ReposParser)
|
13
|
+
|
14
|
+
list.next_proc = next_proc(:list, options)
|
15
|
+
inject_api_config(list)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Tinybucket
|
2
|
+
module Api
|
3
|
+
class TeamApi < BaseApi
|
4
|
+
include Tinybucket::Api::Helper::TeamHelper
|
5
|
+
|
6
|
+
def find(name, options = {})
|
7
|
+
m = get_path(path_to_find(name),
|
8
|
+
options,
|
9
|
+
Tinybucket::Parser::TeamParser)
|
10
|
+
|
11
|
+
inject_api_config(m)
|
12
|
+
end
|
13
|
+
|
14
|
+
def members(name, options = {})
|
15
|
+
list = get_path(path_to_members(name),
|
16
|
+
options,
|
17
|
+
Tinybucket::Parser::TeamsParser)
|
18
|
+
|
19
|
+
list.next_proc = next_proc(:members, options)
|
20
|
+
inject_api_config(list)
|
21
|
+
end
|
22
|
+
|
23
|
+
def followers(name, options = {})
|
24
|
+
list = get_path(path_to_followers(name),
|
25
|
+
options,
|
26
|
+
Tinybucket::Parser::TeamsParser)
|
27
|
+
|
28
|
+
list.next_proc = next_proc(:followers, options)
|
29
|
+
inject_api_config(list)
|
30
|
+
end
|
31
|
+
|
32
|
+
def following(name, options = {})
|
33
|
+
list = get_path(path_to_following(name),
|
34
|
+
options,
|
35
|
+
Tinybucket::Parser::TeamsParser)
|
36
|
+
|
37
|
+
list.next_proc = next_proc(:following, options)
|
38
|
+
inject_api_config(list)
|
39
|
+
end
|
40
|
+
|
41
|
+
def repos(name, options = {})
|
42
|
+
list = get_path(path_to_repos(name),
|
43
|
+
options,
|
44
|
+
Tinybucket::Parser::ReposParser)
|
45
|
+
|
46
|
+
list.next_proc = next_proc(:repos, options)
|
47
|
+
inject_api_config(list)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Tinybucket
|
2
|
+
module Api
|
3
|
+
class UserApi < BaseApi
|
4
|
+
include Tinybucket::Api::Helper::UserHelper
|
5
|
+
|
6
|
+
attr_accessor :username
|
7
|
+
|
8
|
+
def profile(options = {})
|
9
|
+
m = get_path(path_to_find,
|
10
|
+
options,
|
11
|
+
Tinybucket::Parser::ProfileParser)
|
12
|
+
|
13
|
+
inject_api_config(m)
|
14
|
+
end
|
15
|
+
|
16
|
+
def followers(options = {})
|
17
|
+
list = get_path(path_to_followers,
|
18
|
+
options,
|
19
|
+
Tinybucket::Parser::ProfilesParser)
|
20
|
+
|
21
|
+
list.next_proc = next_proc(:followers, options)
|
22
|
+
inject_api_config(list)
|
23
|
+
end
|
24
|
+
|
25
|
+
def following(options = {})
|
26
|
+
list = get_path(path_to_following,
|
27
|
+
options,
|
28
|
+
Tinybucket::Parser::ProfilesParser)
|
29
|
+
|
30
|
+
list.next_proc = next_proc(:following, options)
|
31
|
+
inject_api_config(list)
|
32
|
+
end
|
33
|
+
|
34
|
+
def repos(options = {})
|
35
|
+
list = get_path(path_to_repos,
|
36
|
+
options,
|
37
|
+
Tinybucket::Parser::ReposParser)
|
38
|
+
|
39
|
+
list.next_proc = next_proc(:repos, options)
|
40
|
+
inject_api_config(list)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Tinybucket
|
2
|
+
class ApiFactory
|
3
|
+
class << self
|
4
|
+
def create_instance(klass_name, config, options)
|
5
|
+
options.symbolize_keys!
|
6
|
+
|
7
|
+
klass =
|
8
|
+
begin
|
9
|
+
name = "#{klass_name}Api".intern
|
10
|
+
(Tinybucket::Api).const_get name
|
11
|
+
rescue => e
|
12
|
+
# TODO: log exception
|
13
|
+
Tinybucket.logger.error e
|
14
|
+
raise ArgumentError, 'must provide klass to be instantiated'
|
15
|
+
end
|
16
|
+
|
17
|
+
klass.new config, options
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|