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.
-
#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.
Class Method Summary collapse
-
.all ⇒ Array
Returns all beta testers available for this account.
-
.create!(email: nil, first_name: nil, last_name: 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.
-
.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.
32 33 34 |
# File 'lib/spaceship/tunes/tester.rb', line 32 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 |
#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
36 37 38 |
# File 'lib/spaceship/tunes/tester.rb', line 36 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.
40 41 42 |
# File 'lib/spaceship/tunes/tester.rb', line 40 def latest_install_date @latest_install_date end |
#latest_installed_build_number ⇒ Integer
Returns The build number of the last installed build.
43 44 45 |
# File 'lib/spaceship/tunes/tester.rb', line 43 def latest_installed_build_number @latest_installed_build_number end |
#latest_installed_version_number ⇒ Integer
Returns The version number of the last installed build.
46 47 48 |
# File 'lib/spaceship/tunes/tester.rb', line 46 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
123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/spaceship/tunes/tester.rb', line 123 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
73 74 75 |
# File 'lib/spaceship/tunes/tester.rb', line 73 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
107 108 109 |
# File 'lib/spaceship/tunes/tester.rb', line 107 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) ⇒ Tester
Create new tester in iTunes Connect
93 94 95 96 97 98 99 |
# File 'lib/spaceship/tunes/tester.rb', line 93 def create!(email: nil, first_name: nil, last_name: nil) data = client.create_tester!(tester: self, email: email, first_name: first_name, last_name: last_name) 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.
68 69 70 |
# File 'lib/spaceship/tunes/tester.rb', line 68 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
80 81 82 83 84 |
# File 'lib/spaceship/tunes/tester.rb', line 80 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
115 116 117 118 119 |
# File 'lib/spaceship/tunes/tester.rb', line 115 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 |
.url ⇒ Hash
Returns All urls for the ITC used for web requests.
62 63 64 |
# File 'lib/spaceship/tunes/tester.rb', line 62 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
181 182 183 |
# File 'lib/spaceship/tunes/tester.rb', line 181 def add_to_app!(app_id) client.add_tester_to_app!(self, app_id) end |
#delete! ⇒ Object
Delete current tester
171 172 173 |
# File 'lib/spaceship/tunes/tester.rb', line 171 def delete! client.delete_tester!(self) end |
#remove_from_app!(app_id) ⇒ Object
Remove current tester from list of the app testers
187 188 189 |
# File 'lib/spaceship/tunes/tester.rb', line 187 def remove_from_app!(app_id) client.remove_tester_from_app!(self, app_id) end |
#setup ⇒ Object
139 140 141 |
# File 'lib/spaceship/tunes/tester.rb', line 139 def setup self.devices ||= [] # by default, an empty array instead of nil end |