Class: Spaceship::Tunes::Build

Inherits:
TunesBase show all
Defined in:
lib/spaceship/tunes/build.rb

Overview

Represents a build which is inside the build train

Direct Known Subclasses

ProcessingBuild

General metadata collapse

Analytics collapse

Attributes inherited from Base

#client, #raw_data

Analytics collapse

Methods inherited from TunesBase

client

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

#app_nameString



34
35
36
# File 'lib/spaceship/tunes/build.rb', line 34

def app_name
  @app_name
end

#build_trainSpaceship::Tunes::BuildTrain



10
11
12
# File 'lib/spaceship/tunes/build.rb', line 10

def build_train
  @build_train
end

#build_versionString



19
20
21
# File 'lib/spaceship/tunes/build.rb', line 19

def build_version
  @build_version
end

#crash_countInteger



74
75
76
# File 'lib/spaceship/tunes/build.rb', line 74

def crash_count
  @crash_count
end

#external_expiry_dateInteger



43
44
45
# File 'lib/spaceship/tunes/build.rb', line 43

def external_expiry_date
  @external_expiry_date
end

#external_install_countInteger



68
69
70
# File 'lib/spaceship/tunes/build.rb', line 68

def external_install_count
  @external_install_count
end

#external_testing_enabledBool (readonly)



46
47
48
# File 'lib/spaceship/tunes/build.rb', line 46

def external_testing_enabled
  @external_testing_enabled
end

#icon_urlString



31
32
33
# File 'lib/spaceship/tunes/build.rb', line 31

def icon_url
  @icon_url
end

#idInteger



13
14
15
# File 'lib/spaceship/tunes/build.rb', line 13

def id
  @id
end

#install_countInteger



62
63
64
# File 'lib/spaceship/tunes/build.rb', line 62

def install_count
  @install_count
end

#internal_expiry_dateInteger



40
41
42
# File 'lib/spaceship/tunes/build.rb', line 40

def internal_expiry_date
  @internal_expiry_date
end

#internal_install_countInteger



65
66
67
# File 'lib/spaceship/tunes/build.rb', line 65

def internal_install_count
  @internal_install_count
end

#internal_testing_enabledBool (readonly)



49
50
51
# File 'lib/spaceship/tunes/build.rb', line 49

def internal_testing_enabled
  @internal_testing_enabled
end

#platformString



37
38
39
# File 'lib/spaceship/tunes/build.rb', line 37

def platform
  @platform
end

#processingBoolean



25
26
27
# File 'lib/spaceship/tunes/build.rb', line 25

def processing
  @processing
end

#ready_to_installBool



55
56
57
# File 'lib/spaceship/tunes/build.rb', line 55

def ready_to_install
  @ready_to_install
end

#session_countInteger



71
72
73
# File 'lib/spaceship/tunes/build.rb', line 71

def session_count
  @session_count
end

#train_versionString



22
23
24
# File 'lib/spaceship/tunes/build.rb', line 22

def train_version
  @train_version
end

#upload_dateInteger



28
29
30
# File 'lib/spaceship/tunes/build.rb', line 28

def upload_date
  @upload_date
end

#validBoolean



16
17
18
# File 'lib/spaceship/tunes/build.rb', line 16

def valid
  @valid
end

#watch_kit_enabledBool



52
53
54
# File 'lib/spaceship/tunes/build.rb', line 52

def watch_kit_enabled
  @watch_kit_enabled
end

Class Method Details

.factory(attrs) ⇒ Object

Create a new object based on a hash. This is used to create a new object based on the server response.



103
104
105
# File 'lib/spaceship/tunes/build.rb', line 103

def factory(attrs)
  self.new(attrs)
end

Instance Method Details

#cancel_beta_review!Object

This will cancel the review process for this TestFlight build



183
184
185
186
187
# File 'lib/spaceship/tunes/build.rb', line 183

def cancel_beta_review!
  client.remove_testflight_build_from_review!(app_id: self.build_train.application.apple_id,
                                               train: self.build_train.version_string,
                                        build_number: self.build_version)
end

#setupObject



108
109
110
111
112
113
# File 'lib/spaceship/tunes/build.rb', line 108

def setup
  super

  self.external_expiry_date ||= 0
  self.internal_expiry_date ||= 0
end

#submit_for_beta_review!(metadata) ⇒ Object

This will submit this build for TestFlight beta review



135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
# File 'lib/spaceship/tunes/build.rb', line 135

def submit_for_beta_review!()
  # First, enable beta testing for this train (per iTC requirement)
  self.build_train.update_testing_status!(true, 'external')

  parameters = {
    app_id: self.build_train.application.apple_id,
    train: self.build_train.version_string,
    build_number: self.build_version,

    # Required Metadata:
    changelog: "No changelog provided",
    description: "No app description provided",
    feedback_email: "[email protected]",
    marketing_url: "http://marketing.com",
    first_name: "Felix",
    last_name: "Krause",
    review_email: "[email protected]",
    phone_number: "0123456789",

    # Optional Metadata:
    privacy_policy_url: nil,
    review_user_name: nil,
    review_password: nil,
    encryption: false
  }.merge()

  client.submit_testflight_build_for_review!(parameters)

  return parameters
end

#testing_statusString

@examples:

External, Internal, Inactive, Expired


169
170
171
172
173
174
175
176
177
178
179
180
# File 'lib/spaceship/tunes/build.rb', line 169

def testing_status
  testing ||= "External" if self.external_testing_enabled
  testing ||= "Internal" if self.internal_testing_enabled

  if Time.at(self.internal_expiry_date / 1000) > Time.now
    testing ||= "Inactive"
  else
    testing = "Expired"
  end

  return testing
end