hockeyhelper 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +0 -4
- data/README.md +39 -3
- data/Rakefile +7 -4
- data/hockey.gemspec +2 -0
- data/lib/hockeyhelper/app.rb +39 -14
- data/lib/hockeyhelper/client.rb +38 -35
- data/lib/hockeyhelper/crash_reason.rb +58 -0
- data/lib/hockeyhelper/networking.rb +8 -6
- data/lib/hockeyhelper/paging_array.rb +41 -0
- data/lib/hockeyhelper/version.rb +1 -1
- data/lib/hockeyhelper.rb +2 -0
- data/spec/app_spec.rb +0 -5
- data/spec/client_spec.rb +158 -0
- metadata +45 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 361f2c3a9a76cf49107f730ecef7116e49f013df
|
4
|
+
data.tar.gz: 0421c010c61dad94c49a94dc2c292d0c1fb6319a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed29a07b77a17dbf91d6766a570d2115802250a4ae0093bd120f9c1637aad53b57ec0b2fdb786fff8bf60a443adba1ab0f2e0635f984619cb6cae00437530288
|
7
|
+
data.tar.gz: e170b47aed77cac749c202b8b0f1aa095c39a1171e11f49b48c871b8d33c271bd38bdeedeff98cc947ed5a4b90547d812dcbb5c63232978be2fc9bbaf1bc8725
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
-
#
|
1
|
+
# hockeyhelper gem
|
2
2
|
|
3
|
-
Helper gem for HokceyApp API
|
3
|
+
Helper gem for HokceyApp API.
|
4
4
|
|
5
5
|
[![Build Status](https://travis-ci.org/yagihiro/hockey.svg?branch=master)](https://travis-ci.org/yagihiro/hockey)
|
6
|
+
[![Gem Version](https://badge.fury.io/rb/hockeyhelper.svg)](http://badge.fury.io/rb/hockeyhelper)
|
6
7
|
|
7
8
|
## Installation
|
8
9
|
|
@@ -20,7 +21,42 @@ Or install it yourself as:
|
|
20
21
|
|
21
22
|
## Usage
|
22
23
|
|
23
|
-
|
24
|
+
create a new app and an invite user
|
25
|
+
|
26
|
+
require 'hockeyhelper'
|
27
|
+
client = Hockey::Client.new 'yourapitoken'
|
28
|
+
app = client.new_app(title: appname, bundle_identifier: bundleid, platform: platform)
|
29
|
+
user = app.invite_user(email: email)
|
30
|
+
|
31
|
+
list all apps with paging
|
32
|
+
|
33
|
+
require 'hockeyhelper'
|
34
|
+
client = Hockey::Client.new 'yourapitoken'
|
35
|
+
apps = client.apps(page: 1)
|
36
|
+
|
37
|
+
list all versions for an app
|
38
|
+
|
39
|
+
require 'hockeyhelper'
|
40
|
+
client = Hockey::Client.new 'yourapitoken'
|
41
|
+
versions = client.apps(page: 1)[0].versions
|
42
|
+
|
43
|
+
list all users for an app
|
44
|
+
|
45
|
+
require 'hockeyhelper'
|
46
|
+
client = Hockey::Client.new 'yourapitoken'
|
47
|
+
users = client.apps(page: 1)[0].users
|
48
|
+
|
49
|
+
remove a user from an app
|
50
|
+
|
51
|
+
require 'hockeyhelper'
|
52
|
+
client = Hockey::Client.new 'yourapitoken'
|
53
|
+
client.apps(page: 1)[0].remove_user 'email@xxx.xx'
|
54
|
+
|
55
|
+
list all teams with paging
|
56
|
+
|
57
|
+
require 'hockeyhelper'
|
58
|
+
client = Hockey::Client.new 'yourapitoken'
|
59
|
+
teams = client.teams(page: 1)
|
24
60
|
|
25
61
|
## Contributing
|
26
62
|
|
data/Rakefile
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
require 'bundler/gem_tasks'
|
2
|
-
require '
|
2
|
+
require 'rake/testtask'
|
3
3
|
|
4
|
-
|
4
|
+
task :default => :test
|
5
5
|
|
6
|
-
|
7
|
-
|
6
|
+
Rake::TestTask.new do |t|
|
7
|
+
t.libs << 'lib'
|
8
|
+
t.test_files = FileList['spec/*_spec.rb']
|
9
|
+
t.warning = true
|
10
|
+
end
|
data/hockey.gemspec
CHANGED
data/lib/hockeyhelper/app.rb
CHANGED
@@ -39,15 +39,8 @@ module Hockey
|
|
39
39
|
end
|
40
40
|
alias_method :to_s, :inspect
|
41
41
|
|
42
|
-
|
43
|
-
|
44
|
-
user = @users.find {|u| u.email == email }
|
45
|
-
|
46
|
-
if user
|
47
|
-
@net.delete "/api/2/apps/#{@public_identifier}/app_users/#{user.id}"
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
42
|
+
# List all users of an app on HockeyApp.
|
43
|
+
# return an Array of User objects.
|
51
44
|
def users
|
52
45
|
return @users if @users
|
53
46
|
|
@@ -61,6 +54,28 @@ module Hockey
|
|
61
54
|
@users
|
62
55
|
end
|
63
56
|
|
57
|
+
# Invite a user to an app.
|
58
|
+
# return a User object.
|
59
|
+
def invite_user(email:email)
|
60
|
+
obj = @net.post_object "/api/2/apps/#{@public_identifier}/app_users", {:email=>email, :role=>1}
|
61
|
+
|
62
|
+
user = User.create_from(obj, @net)
|
63
|
+
|
64
|
+
user
|
65
|
+
end
|
66
|
+
|
67
|
+
# Remove a user from an app on HockeyApp.
|
68
|
+
def remove_user(email:nil)
|
69
|
+
users()
|
70
|
+
user = @users.find {|u| u.email == email }
|
71
|
+
|
72
|
+
if user
|
73
|
+
@net.delete "/api/2/apps/#{@public_identifier}/app_users/#{user.id}"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
# List all versions of an app. The endpoint returns all versions for developer and members, but only released versions for testers.
|
78
|
+
# return an Array of Version objects.
|
64
79
|
def versions
|
65
80
|
return @versions if @versions
|
66
81
|
|
@@ -74,12 +89,22 @@ module Hockey
|
|
74
89
|
@versions
|
75
90
|
end
|
76
91
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
92
|
+
# List all crash groups for an app.
|
93
|
+
# return an Array of CrashReason objects.
|
94
|
+
#
|
95
|
+
# +sort+ parameter:
|
96
|
+
# :date, :class, :number_of_crashes, :last_crash_at
|
97
|
+
# +order+ parameter:
|
98
|
+
# :asc, :desc
|
99
|
+
def crash_reasons(page: 1, per: 25, symbolicated: true, sort: :date, order: :asc)
|
100
|
+
obj = @net.get_object "/api/2/apps/#{@public_identifier}/crash_reasons"
|
101
|
+
|
102
|
+
cr = []
|
103
|
+
obj['crash_reasons'].each do |hashobj|
|
104
|
+
cr << CrashReason.create_from(hashobj, @net)
|
105
|
+
end
|
81
106
|
|
82
|
-
|
107
|
+
cr
|
83
108
|
end
|
84
109
|
|
85
110
|
end
|
data/lib/hockeyhelper/client.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require_relative 'app'
|
2
2
|
require_relative 'networking'
|
3
|
+
require_relative 'paging_array'
|
3
4
|
|
4
5
|
module Hockey
|
5
6
|
|
@@ -7,52 +8,54 @@ module Hockey
|
|
7
8
|
class Client
|
8
9
|
|
9
10
|
#
|
10
|
-
def initialize(token, debug:false)
|
11
|
-
@net = Networking.new
|
12
|
-
@
|
13
|
-
@teams = nil
|
11
|
+
def initialize(token, debug: false, network: nil)
|
12
|
+
@net = network || Networking.new(token, debug:debug)
|
13
|
+
@cached_apps = nil
|
14
14
|
end
|
15
15
|
|
16
|
-
#
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
16
|
+
# List all apps for the logged user, including owned apps, developer apps, member apps, and tester apps on HockeyApp.
|
17
|
+
#
|
18
|
+
# @return [Array<App>] an array of {App} objects.
|
19
|
+
# @param page [Fixnum] optional, used for pagination
|
20
|
+
def apps(page: 1)
|
21
|
+
@cached_apps ||= []
|
22
|
+
|
23
|
+
if @cached_apps.empty?
|
24
|
+
obj = @net.get_object '/api/2/apps'
|
25
|
+
obj['apps'].each do |hashobj|
|
26
|
+
@cached_apps << App.create_from(hashobj, @net)
|
27
|
+
end
|
25
28
|
end
|
26
29
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
# return Array of Team objects
|
31
|
-
def teams
|
32
|
-
return @teams if @teams
|
33
|
-
|
34
|
-
@teams = []
|
35
|
-
page = 1
|
30
|
+
apps = PagingArray.new
|
31
|
+
apps.replace(@cached_apps[(page - 1) * apps.per_page, apps.per_page])
|
32
|
+
apps.update_page_with(page, @cached_apps.size)
|
36
33
|
|
37
|
-
|
38
|
-
|
39
|
-
req.params[:page] = page
|
40
|
-
end
|
41
|
-
obj['teams'].each do |hashobj|
|
42
|
-
@teams << Team.create_from(hashobj, @net)
|
43
|
-
end
|
34
|
+
apps
|
35
|
+
end
|
44
36
|
|
45
|
-
|
46
|
-
|
37
|
+
# List all teams for an account.
|
38
|
+
#
|
39
|
+
# @return [Hockey::PagingArray<Team>] an array of {Team} objects
|
40
|
+
# @param page [Fixnum] optional, used for pagination
|
41
|
+
def teams(page: 1)
|
42
|
+
teams = PagingArray.new
|
47
43
|
|
48
|
-
|
44
|
+
obj = @net.get_object('/api/2/teams') do |req|
|
45
|
+
req.params[:page] = page
|
46
|
+
end
|
47
|
+
obj['teams'].each do |hashobj|
|
48
|
+
teams << Team.create_from(hashobj, @net)
|
49
49
|
end
|
50
50
|
|
51
|
-
|
51
|
+
teams.update_page(obj)
|
52
|
+
|
53
|
+
teams
|
52
54
|
end
|
53
55
|
|
54
|
-
#
|
55
|
-
|
56
|
+
# Create a new app without uploading a file on HockeyApp.
|
57
|
+
# return an App object.
|
58
|
+
def new_app(title: '', bundle_identifier: '', platform: 'iOS')
|
56
59
|
obj = @net.post_object '/api/2/apps/new', {:title=>title, :bundle_identifier=>bundle_identifier, :platform=>platform, :release_type=>0}
|
57
60
|
|
58
61
|
app = App.create_from(obj, @net)
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module Hockey
|
2
|
+
|
3
|
+
# CrashReason on HockeyApp
|
4
|
+
class CrashReason
|
5
|
+
|
6
|
+
attr_reader :id
|
7
|
+
attr_reader :app_id
|
8
|
+
attr_reader :app_version_id
|
9
|
+
attr_reader :number_of_crashes
|
10
|
+
attr_reader :created_at
|
11
|
+
attr_reader :updated_at
|
12
|
+
attr_reader :last_crash_at
|
13
|
+
attr_reader :bundle_short_version
|
14
|
+
attr_reader :bundle_version
|
15
|
+
attr_reader :status
|
16
|
+
attr_reader :fixed
|
17
|
+
attr_reader :file
|
18
|
+
attr_reader :crash_class
|
19
|
+
attr_reader :crash_method
|
20
|
+
attr_reader :line
|
21
|
+
attr_reader :reason
|
22
|
+
attr_reader :original_hash
|
23
|
+
|
24
|
+
attr :net
|
25
|
+
|
26
|
+
def self.create_from(hashobj, networking)
|
27
|
+
self.new hashobj, networking
|
28
|
+
end
|
29
|
+
|
30
|
+
def initialize(hashobj, networking)
|
31
|
+
@id = hashobj['id']
|
32
|
+
@app_id = hashobj['app_id']
|
33
|
+
@app_version_id = hashobj['app_version_id']
|
34
|
+
@number_of_crashes = hashobj['number_of_crashes']
|
35
|
+
@created_at = hashobj['created_at']
|
36
|
+
@updated_at = hashobj['updated_at']
|
37
|
+
@last_crash_at = hashobj['last_crash_at']
|
38
|
+
@bundle_short_version = hashobj['bundle_short_version']
|
39
|
+
@bundle_version = hashobj['bundle_version']
|
40
|
+
@status = hashobj['status']
|
41
|
+
@fixed = hashobj['fixed']
|
42
|
+
@file = hashobj['file']
|
43
|
+
@crash_class = hashobj['class']
|
44
|
+
@crash_method = hashobj['method']
|
45
|
+
@line = hashobj['line']
|
46
|
+
@reason = hashobj['reason']
|
47
|
+
@original_hash = hashobj
|
48
|
+
@net = networking
|
49
|
+
end
|
50
|
+
|
51
|
+
def inspect
|
52
|
+
"#<#{self.class}:#{'0x%08x' % self.hash} #{@id}, #{@file}, #{@crash_class}, #{@crash_method}, #{@line}>"
|
53
|
+
end
|
54
|
+
alias_method :to_s, :inspect
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
@@ -7,11 +7,11 @@ module Hockey
|
|
7
7
|
class NullLogger < Logger
|
8
8
|
def initialize *args
|
9
9
|
end
|
10
|
-
def debug; end
|
11
|
-
def info; end
|
12
|
-
def warn; end
|
13
|
-
def error; end
|
14
|
-
def fatal; end
|
10
|
+
def debug(*args); end
|
11
|
+
def info(*args); end
|
12
|
+
def warn(*args); end
|
13
|
+
def error(*args); end
|
14
|
+
def fatal(*args); end
|
15
15
|
end
|
16
16
|
|
17
17
|
# Networking Core Lib
|
@@ -19,7 +19,9 @@ module Hockey
|
|
19
19
|
|
20
20
|
attr :l
|
21
21
|
|
22
|
-
def initialize(token, debug:false)
|
22
|
+
def initialize(token, debug: false)
|
23
|
+
raise(ArgumentError, 'token must be an instance of String') unless token.kind_of?(String)
|
24
|
+
|
23
25
|
@client = Faraday.new(:url => 'https://rink.hockeyapp.net')
|
24
26
|
@token = token
|
25
27
|
@l = if debug
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Hockey
|
2
|
+
|
3
|
+
class PagingArray < Array
|
4
|
+
attr_reader :current_page
|
5
|
+
attr_reader :per_page # = 25
|
6
|
+
attr_reader :total_entries
|
7
|
+
attr_reader :total_pages
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
super
|
11
|
+
@per_page = 25
|
12
|
+
end
|
13
|
+
|
14
|
+
def update_page(hashobj)
|
15
|
+
@current_page = hashobj['current_page'].to_i
|
16
|
+
@total_entries = hashobj['total_entries'].to_i
|
17
|
+
@total_pages = hashobj['total_pages'].to_i
|
18
|
+
|
19
|
+
self
|
20
|
+
end
|
21
|
+
|
22
|
+
def update_page_with(page, size)
|
23
|
+
@current_page = page
|
24
|
+
@total_entries = size
|
25
|
+
@total_pages = (size / @per_page) + 1
|
26
|
+
|
27
|
+
self
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
class OrderedPagingArray < PagingArray
|
33
|
+
attr :order_type
|
34
|
+
end
|
35
|
+
|
36
|
+
class ClashesPagingArray < OrderedPagingArray
|
37
|
+
attr :symbolicated
|
38
|
+
attr :sort_type
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
data/lib/hockeyhelper/version.rb
CHANGED
data/lib/hockeyhelper.rb
CHANGED
data/spec/app_spec.rb
CHANGED
data/spec/client_spec.rb
ADDED
@@ -0,0 +1,158 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'hockeyhelper'
|
3
|
+
|
4
|
+
describe Hockey::Client do
|
5
|
+
|
6
|
+
describe 'initialize' do
|
7
|
+
|
8
|
+
it 'when no argument' do
|
9
|
+
proc { Hockey::Client.new }.must_raise(ArgumentError)
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'when specified an argument' do
|
13
|
+
proc { Hockey::Client.new(1) }.must_raise(ArgumentError)
|
14
|
+
|
15
|
+
client = Hockey::Client.new ''
|
16
|
+
client.must_be_instance_of Hockey::Client
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
describe 'apps' do
|
22
|
+
|
23
|
+
before do
|
24
|
+
@page1 =<<_EOS_
|
25
|
+
{
|
26
|
+
"apps": [
|
27
|
+
{
|
28
|
+
"title": "HockeyTest",
|
29
|
+
"bundle_identifier": "de.codenauts.hockeytest.beta",
|
30
|
+
"public_identifier": "1234567890abcdef1234567890abcdef",
|
31
|
+
"device_family": "iPhone/iPod",
|
32
|
+
"minimum_os_version": "4.0",
|
33
|
+
"release_type": 0,
|
34
|
+
"status": 2,
|
35
|
+
"platform": "iOS"
|
36
|
+
},
|
37
|
+
{
|
38
|
+
"title": "HockeyTest",
|
39
|
+
"bundle_identifier": "de.codenauts.hockeytest",
|
40
|
+
"public_identifier": "34567890abcdef1234567890abcdef12",
|
41
|
+
"release_type": 1,
|
42
|
+
"platform": "iOS"
|
43
|
+
}
|
44
|
+
],
|
45
|
+
"status": "success"
|
46
|
+
}
|
47
|
+
_EOS_
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'when succeeded' do
|
51
|
+
net_mock = Minitest::Mock.new
|
52
|
+
client = Hockey::Client.new 'token', network: net_mock
|
53
|
+
|
54
|
+
net_mock.expect(:get_object, JSON.parse(@page1), ['/api/2/apps'])
|
55
|
+
apps = client.apps(page: 1)
|
56
|
+
apps.must_be_kind_of Hockey::PagingArray
|
57
|
+
apps.size.must_equal 2
|
58
|
+
apps.each do |obj|
|
59
|
+
obj.must_be_instance_of Hockey::App
|
60
|
+
end
|
61
|
+
apps[0].bundle_identifier.must_equal 'de.codenauts.hockeytest.beta'
|
62
|
+
apps[1].bundle_identifier.must_equal 'de.codenauts.hockeytest'
|
63
|
+
net_mock.verify
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
|
68
|
+
describe 'teams' do
|
69
|
+
|
70
|
+
before do
|
71
|
+
@page1 =<<_EOS_
|
72
|
+
{
|
73
|
+
"teams": [
|
74
|
+
{
|
75
|
+
"id": 23,
|
76
|
+
"name": "Bit Stadium GmbH Owners"
|
77
|
+
},
|
78
|
+
{
|
79
|
+
"id": 42,
|
80
|
+
"name": "External Testers"
|
81
|
+
}
|
82
|
+
],
|
83
|
+
"status": "success",
|
84
|
+
"current_page": 1,
|
85
|
+
"per_page": 25,
|
86
|
+
"total_entries": 3,
|
87
|
+
"total_pages": 2
|
88
|
+
}
|
89
|
+
_EOS_
|
90
|
+
@page2 =<<_EOS_
|
91
|
+
{
|
92
|
+
"teams": [
|
93
|
+
{
|
94
|
+
"id": 50,
|
95
|
+
"name": "Bit Stadium GmbH Owners"
|
96
|
+
}
|
97
|
+
],
|
98
|
+
"status": "success",
|
99
|
+
"current_page": 2,
|
100
|
+
"per_page": 25,
|
101
|
+
"total_entries": 3,
|
102
|
+
"total_pages": 2
|
103
|
+
}
|
104
|
+
_EOS_
|
105
|
+
end
|
106
|
+
|
107
|
+
it 'when succeeded' do
|
108
|
+
net_mock = Minitest::Mock.new
|
109
|
+
client = Hockey::Client.new 'token', network: net_mock
|
110
|
+
|
111
|
+
net_mock.expect(:get_object, JSON.parse(@page1), ['/api/2/teams'])
|
112
|
+
teams = client.teams
|
113
|
+
teams.must_be_kind_of Hockey::PagingArray
|
114
|
+
teams.size.must_equal 2
|
115
|
+
teams.each do |obj|
|
116
|
+
obj.must_be_instance_of Hockey::Team
|
117
|
+
end
|
118
|
+
teams[0].id.must_equal 23
|
119
|
+
teams[1].id.must_equal 42
|
120
|
+
net_mock.verify
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'when success w/ paging' do
|
124
|
+
net_mock = Minitest::Mock.new
|
125
|
+
client = Hockey::Client.new 'token', network: net_mock
|
126
|
+
|
127
|
+
net_mock.expect(:get_object, JSON.parse(@page1), ['/api/2/teams'])
|
128
|
+
teams = client.teams(page: 1)
|
129
|
+
teams.must_be_kind_of Hockey::PagingArray
|
130
|
+
teams.size.must_equal 2
|
131
|
+
teams.each do |obj|
|
132
|
+
obj.must_be_instance_of Hockey::Team
|
133
|
+
end
|
134
|
+
teams[0].id.must_equal 23
|
135
|
+
teams[1].id.must_equal 42
|
136
|
+
teams.current_page.must_equal 1
|
137
|
+
teams.total_entries.must_equal 3
|
138
|
+
teams.total_pages.must_equal 2
|
139
|
+
|
140
|
+
net_mock.expect(:get_object, JSON.parse(@page2), ['/api/2/teams'])
|
141
|
+
teams = client.teams(page: 2)
|
142
|
+
teams.must_be_kind_of Hockey::PagingArray
|
143
|
+
teams.size.must_equal 1
|
144
|
+
teams.each do |obj|
|
145
|
+
obj.must_be_instance_of Hockey::Team
|
146
|
+
end
|
147
|
+
teams[0].id.must_equal 50
|
148
|
+
teams.current_page.must_equal 2
|
149
|
+
teams.total_entries.must_equal 3
|
150
|
+
teams.total_pages.must_equal 2
|
151
|
+
|
152
|
+
net_mock.verify
|
153
|
+
end
|
154
|
+
|
155
|
+
end
|
156
|
+
|
157
|
+
end
|
158
|
+
|
metadata
CHANGED
@@ -1,55 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hockeyhelper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hiroki Yagita
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-03-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.6'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.6'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: yard
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
39
67
|
- !ruby/object:Gem::Version
|
40
68
|
version: '0'
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
70
|
name: faraday
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|
44
72
|
requirements:
|
45
|
-
- -
|
73
|
+
- - ">="
|
46
74
|
- !ruby/object:Gem::Version
|
47
75
|
version: '0'
|
48
76
|
type: :runtime
|
49
77
|
prerelease: false
|
50
78
|
version_requirements: !ruby/object:Gem::Requirement
|
51
79
|
requirements:
|
52
|
-
- -
|
80
|
+
- - ">="
|
53
81
|
- !ruby/object:Gem::Version
|
54
82
|
version: '0'
|
55
83
|
description:
|
@@ -59,8 +87,8 @@ executables: []
|
|
59
87
|
extensions: []
|
60
88
|
extra_rdoc_files: []
|
61
89
|
files:
|
62
|
-
- .gitignore
|
63
|
-
- .travis.yml
|
90
|
+
- ".gitignore"
|
91
|
+
- ".travis.yml"
|
64
92
|
- Gemfile
|
65
93
|
- LICENSE
|
66
94
|
- README.md
|
@@ -69,11 +97,14 @@ files:
|
|
69
97
|
- lib/hockeyhelper.rb
|
70
98
|
- lib/hockeyhelper/app.rb
|
71
99
|
- lib/hockeyhelper/client.rb
|
100
|
+
- lib/hockeyhelper/crash_reason.rb
|
72
101
|
- lib/hockeyhelper/networking.rb
|
102
|
+
- lib/hockeyhelper/paging_array.rb
|
73
103
|
- lib/hockeyhelper/team.rb
|
74
104
|
- lib/hockeyhelper/user.rb
|
75
105
|
- lib/hockeyhelper/version.rb
|
76
106
|
- spec/app_spec.rb
|
107
|
+
- spec/client_spec.rb
|
77
108
|
homepage: ''
|
78
109
|
licenses:
|
79
110
|
- MIT
|
@@ -84,12 +115,12 @@ require_paths:
|
|
84
115
|
- lib
|
85
116
|
required_ruby_version: !ruby/object:Gem::Requirement
|
86
117
|
requirements:
|
87
|
-
- -
|
118
|
+
- - ">="
|
88
119
|
- !ruby/object:Gem::Version
|
89
120
|
version: 2.0.0
|
90
121
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
91
122
|
requirements:
|
92
|
-
- -
|
123
|
+
- - ">="
|
93
124
|
- !ruby/object:Gem::Version
|
94
125
|
version: '0'
|
95
126
|
requirements: []
|
@@ -100,3 +131,5 @@ specification_version: 4
|
|
100
131
|
summary: Helper gem for HokceyApp API
|
101
132
|
test_files:
|
102
133
|
- spec/app_spec.rb
|
134
|
+
- spec/client_spec.rb
|
135
|
+
has_rdoc:
|