hockeyhelper 0.0.2 → 0.0.3

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: 5c327aeb19606a5b2b3dee8d9ee6499ea8d9961c
4
- data.tar.gz: fdc4a74ef9f44cec7449921b90c9e1df9dfb2c1f
3
+ metadata.gz: 361f2c3a9a76cf49107f730ecef7116e49f013df
4
+ data.tar.gz: 0421c010c61dad94c49a94dc2c292d0c1fb6319a
5
5
  SHA512:
6
- metadata.gz: d550230b9d93b87f964641ca8d7efb23ba63d2b807df87c0599f004cc46abf6691c8955e5bfde4e4e8d928c1a324b3e8dca391474a02742261c453922d605196
7
- data.tar.gz: 6ec09c80f4df5c2ba6870f21d11e58a8b7a537d82e67337aada0d196b25bcbf582a9fde0ca5c080dc4ef22fa2b3a9f9e67b167ebf8545aa5532ab3dda5ef07ff
6
+ metadata.gz: ed29a07b77a17dbf91d6766a570d2115802250a4ae0093bd120f9c1637aad53b57ec0b2fdb786fff8bf60a443adba1ab0f2e0635f984619cb6cae00437530288
7
+ data.tar.gz: e170b47aed77cac749c202b8b0f1aa095c39a1171e11f49b48c871b8d33c271bd38bdeedeff98cc947ed5a4b90547d812dcbb5c63232978be2fc9bbaf1bc8725
data/Gemfile CHANGED
@@ -2,7 +2,3 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in hockeyhelper.gemspec
4
4
  gemspec
5
-
6
- group :test do
7
- gem 'rspec'
8
- end
data/README.md CHANGED
@@ -1,8 +1,9 @@
1
- # Hockey
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
- TODO: Write usage instructions here
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 'rspec/core/rake_task'
2
+ require 'rake/testtask'
3
3
 
4
- RSpec::Core::RakeTask.new(:spec)
4
+ task :default => :test
5
5
 
6
- task :test => :spec
7
- task :default => :spec
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
@@ -21,5 +21,7 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_development_dependency "bundler", "~> 1.6"
23
23
  spec.add_development_dependency "rake"
24
+ spec.add_development_dependency "minitest"
25
+ spec.add_development_dependency "yard"
24
26
  spec.add_dependency "faraday"
25
27
  end
@@ -39,15 +39,8 @@ module Hockey
39
39
  end
40
40
  alias_method :to_s, :inspect
41
41
 
42
- def remove_user(email:nil)
43
- users()
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
- def invite_user(email:email)
78
- obj = @net.post_object "/api/2/apps/#{@public_identifier}/app_users", {:email=>email, :role=>1}
79
-
80
- user = User.create_from(obj, @net)
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
- user
107
+ cr
83
108
  end
84
109
 
85
110
  end
@@ -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 token, debug:debug
12
- @apps = nil
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
- # return Array of App objects
17
- def apps
18
- return @apps if @apps
19
-
20
- obj = @net.get_object '/api/2/apps'
21
-
22
- @apps = []
23
- obj['apps'].each do |hashobj|
24
- @apps << App.create_from(hashobj, @net)
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
- @apps
28
- end
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
- while true
38
- obj = @net.get_object('/api/2/teams') do |req|
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
- total = obj['total_pages'].to_i
46
- break unless page < total
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
- page = page + 1
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
- @teams
51
+ teams.update_page(obj)
52
+
53
+ teams
52
54
  end
53
55
 
54
- # create new app on HockeyApp
55
- def new_app(title:title, bundle_identifier:bundle_identifier, platform: 'iOS')
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
@@ -1,6 +1,6 @@
1
1
  module Hockey
2
2
 
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
 
5
5
  # Version on HockeyApp
6
6
  class Version
data/lib/hockeyhelper.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require 'hockeyhelper/app'
2
2
  require 'hockeyhelper/client'
3
+ require 'hockeyhelper/crash_reason'
3
4
  require 'hockeyhelper/networking'
5
+ require 'hockeyhelper/paging_array'
4
6
  require 'hockeyhelper/team'
5
7
  require 'hockeyhelper/user'
6
8
  require 'hockeyhelper/version'
data/spec/app_spec.rb CHANGED
@@ -1,5 +0,0 @@
1
- require_relative '../lib/hockeyhelper/app'
2
-
3
- RSpec.describe Hockey::App do
4
-
5
- end
@@ -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.2
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-02-09 00:00:00.000000000 Z
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: