Class: Spaceship::Tunes::Tester
- Defined in:
- lib/spaceship/tunes/tester.rb
Defined Under Namespace
Instance Attribute Summary collapse
-
#devices ⇒ Array
An array of registered devices for this user.
-
#email ⇒ String
The email of this tester.
-
#first_name ⇒ String
The first name of this tester.
-
#groups ⇒ Array
An array of associated groups.
-
#last_name ⇒ String
The last name of this tester.
-
#latest_install_app_id ⇒ Integer
Information about the most recent beta install.
-
#latest_install_date ⇒ Integer
Date of the last install of this tester Number of seconds since 1970.
-
#latest_installed_build_number ⇒ Integer
The build number of the last installed build.
-
#latest_installed_version_number ⇒ Integer
The version number of the last installed build.
-
#tester_id ⇒ String
The identifier of this tester, provided by iTunes Connect.
Attributes inherited from Base
App collapse
-
.add_all_to_app!(app_id) ⇒ Object
Add all testers to the app received.
-
.all_by_app(app_id) ⇒ Array
Returns all beta testers available for this account filtered by app.
-
.find_by_app(app_id, identifier) ⇒ Spaceship::Tunes::Tester
Returns the tester matching the parameter as either the Tester id or email.
-
#add_to_app!(app_id) ⇒ Object
Add current tester to list of the app testers.
-
#remove_from_app!(app_id) ⇒ Object
Remove current tester from list of the app testers.
- #setup ⇒ Object
Subclasses collapse
-
#delete! ⇒ Object
Delete current tester.
Helpers collapse
-
#groups_list(separator = ', ') ⇒ Object
Return a list of the Tester’s group, if any.
Class Method Summary collapse
-
.all ⇒ Array
Returns all beta testers available for this account.
-
.create!(email: nil, first_name: nil, last_name: nil, groups: nil) ⇒ Tester
Create new tester in iTunes Connect.
-
.factory(attrs) ⇒ Object
Create a new object based on a hash.
-
.find(identifier) ⇒ Spaceship::Tunes::Tester
Returns the tester matching the parameter as either the Tester id or email.
- .groups ⇒ Object
-
.url ⇒ Hash
All urls for the ITC used for web requests.
Methods inherited from TunesBase
Methods inherited from Base
attr_accessor, attr_mapping, #attributes, attributes, #initialize, #inspect, mapping_module, method_missing, set_client, #to_s
Constructor Details
This class inherits a constructor from Spaceship::Base
Instance Attribute Details
#devices ⇒ Array
Returns An array of registered devices for this user.
42 43 44 |
# File 'lib/spaceship/tunes/tester.rb', line 42 def devices @devices end |
#email ⇒ String
Returns The email of this tester.
12 13 14 |
# File 'lib/spaceship/tunes/tester.rb', line 12 def email @email end |
#first_name ⇒ String
Returns The first name of this tester.
17 18 19 |
# File 'lib/spaceship/tunes/tester.rb', line 17 def first_name @first_name end |
#groups ⇒ Array
Returns an array of associated groups.
32 33 34 |
# File 'lib/spaceship/tunes/tester.rb', line 32 def groups @groups end |
#last_name ⇒ String
Returns The last name of this tester.
22 23 24 |
# File 'lib/spaceship/tunes/tester.rb', line 22 def last_name @last_name end |
#latest_install_app_id ⇒ Integer
Information about the most recent beta install
46 47 48 |
# File 'lib/spaceship/tunes/tester.rb', line 46 def latest_install_app_id @latest_install_app_id end |
#latest_install_date ⇒ Integer
Returns Date of the last install of this tester Number of seconds since 1970.
50 51 52 |
# File 'lib/spaceship/tunes/tester.rb', line 50 def latest_install_date @latest_install_date end |
#latest_installed_build_number ⇒ Integer
Returns The build number of the last installed build.
53 54 55 |
# File 'lib/spaceship/tunes/tester.rb', line 53 def latest_installed_build_number @latest_installed_build_number end |
#latest_installed_version_number ⇒ Integer
Returns The version number of the last installed build.
56 57 58 |
# File 'lib/spaceship/tunes/tester.rb', line 56 def latest_installed_version_number @latest_installed_version_number end |
#tester_id ⇒ String
Returns The identifier of this tester, provided by iTunes Connect.
7 8 9 |
# File 'lib/spaceship/tunes/tester.rb', line 7 def tester_id @tester_id end |
Class Method Details
.add_all_to_app!(app_id) ⇒ Object
Add all testers to the app received
140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
# File 'lib/spaceship/tunes/tester.rb', line 140 def add_all_to_app!(app_id) all.each do |tester| begin tester.add_to_app!(app_id) rescue => ex if ex.to_s.include? "testerEmailExistsInternal" or ex.to_s.include? "duplicate.email" # That's a non-relevant error message by iTC # ignore that else raise ex end end end end |
.all ⇒ Array
Returns all beta testers available for this account
84 85 86 |
# File 'lib/spaceship/tunes/tester.rb', line 84 def all client.testers(self).map { |tester| self.factory(tester) } end |
.all_by_app(app_id) ⇒ Array
Returns all beta testers available for this account filtered by app
124 125 126 |
# File 'lib/spaceship/tunes/tester.rb', line 124 def all_by_app(app_id) client.testers_by_app(self, app_id).map { |tester| self.factory(tester) } end |
.create!(email: nil, first_name: nil, last_name: nil, groups: nil) ⇒ Tester
Create new tester in iTunes Connect
109 110 111 112 113 114 115 116 |
# File 'lib/spaceship/tunes/tester.rb', line 109 def create!(email: nil, first_name: nil, last_name: nil, groups: nil) data = client.create_tester!(tester: self, email: email, first_name: first_name, last_name: last_name, groups: groups) self.factory(data) end |
.factory(attrs) ⇒ Object
Create a new object based on a hash. This is used to create a new object based on the server response.
79 80 81 |
# File 'lib/spaceship/tunes/tester.rb', line 79 def factory(attrs) self.new(attrs) end |
.find(identifier) ⇒ Spaceship::Tunes::Tester
Returns the tester matching the parameter as either the Tester id or email
91 92 93 94 95 |
# File 'lib/spaceship/tunes/tester.rb', line 91 def find(identifier) all.find do |tester| (tester.tester_id.to_s.casecmp(identifier.to_s).zero? or tester.email.to_s.casecmp(identifier.to_s).zero?) end end |
.find_by_app(app_id, identifier) ⇒ Spaceship::Tunes::Tester
Returns the tester matching the parameter as either the Tester id or email
132 133 134 135 136 |
# File 'lib/spaceship/tunes/tester.rb', line 132 def find_by_app(app_id, identifier) all_by_app(app_id).find do |tester| (tester.tester_id.to_s.casecmp(identifier.to_s).zero? or tester.email.to_s.casecmp(identifier.to_s).zero?) end end |
.groups ⇒ Object
97 98 99 |
# File 'lib/spaceship/tunes/tester.rb', line 97 def groups client.groups end |
.url ⇒ Hash
Returns All urls for the ITC used for web requests.
73 74 75 |
# File 'lib/spaceship/tunes/tester.rb', line 73 def url raise "You have to use a subclass: Internal or External" end |
Instance Method Details
#add_to_app!(app_id) ⇒ Object
Add current tester to list of the app testers
198 199 200 |
# File 'lib/spaceship/tunes/tester.rb', line 198 def add_to_app!(app_id) client.add_tester_to_app!(self, app_id) end |
#delete! ⇒ Object
Delete current tester
188 189 190 |
# File 'lib/spaceship/tunes/tester.rb', line 188 def delete! client.delete_tester!(self) end |
#groups_list(separator = ', ') ⇒ Object
Return a list of the Tester’s group, if any
214 215 216 217 218 219 |
# File 'lib/spaceship/tunes/tester.rb', line 214 def groups_list(separator = ', ') if groups group_names = groups.map { |group| group["name"]["value"] } group_names.join(separator) end end |
#remove_from_app!(app_id) ⇒ Object
Remove current tester from list of the app testers
204 205 206 |
# File 'lib/spaceship/tunes/tester.rb', line 204 def remove_from_app!(app_id) client.remove_tester_from_app!(self, app_id) end |
#setup ⇒ Object
156 157 158 |
# File 'lib/spaceship/tunes/tester.rb', line 156 def setup self.devices ||= [] # by default, an empty array instead of nil end |