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 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: