Class: Spaceship::Tunes::BuildTrain

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

Overview

Represents a build train of builds from iTunes Connect A build train is all builds for a given version number with different build numbers

Instance Attribute Summary collapse

Attributes inherited from Base

#raw_data

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from TunesBase

client

Methods inherited from Base

attr_accessor, attr_mapping, attributes, #attributes, #client, #initialize, #inspect, mapping_module, method_missing, set_client, #to_s

Constructor Details

This class inherits a constructor from Spaceship::Base

Instance Attribute Details

#applicationSpaceship::Tunes::Application

Returns A reference to the application this train is for.

Returns:



9
10
11
# File 'lib/spaceship/tunes/build_train.rb', line 9

def application
  @application
end

#buildsArray (readonly)

Returns An array of all builds that are inside this train (Spaceship::Tunes::Build).

Returns:

  • (Array)

    An array of all builds that are inside this train (Spaceship::Tunes::Build)



12
13
14
# File 'lib/spaceship/tunes/build_train.rb', line 12

def builds
  @builds
end

#platformString (readonly)

Returns Platform (e.g. “ios”).

Returns:

  • (String)

    Platform (e.g. “ios”)



18
19
20
# File 'lib/spaceship/tunes/build_train.rb', line 18

def platform
  @platform
end

#processing_buildsArray (readonly)

Returns An array of all builds that are inside this train (Spaceship::Tunes::Build) I never got this to work to properly try and debug this.

Returns:

  • (Array)

    An array of all builds that are inside this train (Spaceship::Tunes::Build) I never got this to work to properly try and debug this



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

def processing_builds
  @processing_builds
end

#testing_enabledBool (readonly)

Returns Is beta testing enabled for this train? Only one train can have enabled testing.

Returns:

  • (Bool)

    Is beta testing enabled for this train? Only one train can have enabled testing.



21
22
23
# File 'lib/spaceship/tunes/build_train.rb', line 21

def testing_enabled
  @testing_enabled
end

#version_stringString (readonly)

Returns The version number of this train.

Returns:

  • (String)

    The version number of this train



15
16
17
# File 'lib/spaceship/tunes/build_train.rb', line 15

def version_string
  @version_string
end

Class Method Details

.all(application, app_id) ⇒ Object

Parameters:



42
43
44
45
46
47
48
49
50
51
# File 'lib/spaceship/tunes/build_train.rb', line 42

def all(application, app_id)
  data = client.build_trains(app_id)
  result = {}
  data['trains'].each do |attrs|
    attrs.merge!(application: application)
    current = self.factory(attrs)
    result[current.version_string] = current
  end
  result
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.



36
37
38
# File 'lib/spaceship/tunes/build_train.rb', line 36

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

Instance Method Details

#setupObject

Setup all the builds and processing builds



55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/spaceship/tunes/build_train.rb', line 55

def setup
  super
  
  @builds = self.raw_data['builds'].collect do |attrs|
    attrs.merge!(build_train: self)
    Tunes::Build.factory(attrs)
  end

  @processing_builds = self.raw_data['buildsInProcessing'].collect do |attrs|
    attrs.merge!(build_train: self)
    Tunes::Build.factory(attrs)
  end
end

#update_testing_status!(new_value) ⇒ Object



69
70
71
72
73
74
75
76
77
78
# File 'lib/spaceship/tunes/build_train.rb', line 69

def update_testing_status!(new_value)
  data = client.build_trains(self.application.apple_id)
  data['trains'].each do |train|
    train['testing']['value'] = false
    train['testing']['value'] = new_value if train['versionString'] == version_string
  end
  result = client.update_build_trains!(application.apple_id, data)
  self.testing_enabled = new_value
  result
end