class Spaceship::Client::UserInterface
All User Interface related code lives in this class
Attributes
client[R]
Access the client this UserInterface
object is for
Public Class Methods
new(c)
click to toggle source
Is called by the client to generate one instance of UserInterface
# File lib/spaceship/ui.rb, line 22 def initialize(c) @client = c end
Public Instance Methods
select_team()
click to toggle source
Shows the UI to select a team @example teams value:
[{"status"=>"active", "teamId"=>"5A997XAAAA", "type"=>"Company/Organization", "extendedTeamAttributes"=>{}, "teamAgent"=>{ "personId"=>15534241111, "firstName"=>"Felix", "lastName"=>"Krause", "email"=>"spaceship@krausefx.com", "developerStatus"=>"active", "teamMemberId"=>"5Y354CXAAA"}, "memberships"=> [{"membershipId"=>"HJ5WHYC5CE", "membershipProductId"=>"ds1", "status"=>"active", "inDeviceResetWindow"=>false, "inRenewalWindow"=>false, "dateStart"=>"11/20/14 07:59", "dateExpire"=>"11/20/15 07:59", "platform"=>"ios", "availableDeviceSlots"=>100, "name"=>"iOS Developer Program"}], "currentTeamMember"=> {"personId"=>nil, "firstName"=>nil, "lastName"=>nil, "email"=>nil, "developerStatus"=>nil, "privileges"=>{}, "roles"=>["TEAM_ADMIN"], "teamMemberId"=>"HQR8N4GAAA"}, "name"=>"Company GmbH"}, {...} ]
# File lib/spaceship/portal/ui/select_team.rb, line 34 def select_team teams = client.teams if teams.count == 0 puts "No teams available on the Developer Portal" puts "You must accept an invitation to a team for it to be available" puts "To learn more about teams and how to use them visit https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ManagingYourTeam/ManagingYourTeam.html" raise "Your account is in no teams" end team_id = (ENV['FASTLANE_TEAM_ID'] || '').strip team_name = (ENV['FASTLANE_TEAM_NAME'] || '').strip if team_id.length > 0 # User provided a value, let's see if it's valid teams.each_with_index do |team, i| # There are 2 different values - one from the login page one from the Dev Team Page return team['teamId'] if team['teamId'].strip == team_id return team['teamId'] if team['currentTeamMember']['teamMemberId'].to_s.strip == team_id end puts "Couldn't find team with ID '#{team_id}'" end if team_name.length > 0 # User provided a value, let's see if it's valid teams.each_with_index do |team, i| return team['teamId'] if team['name'].strip == team_name end puts "Couldn't find team with Name '#{team_name}'" end return teams[0]['teamId'] if teams.count == 1 # user is just in one team # User Selection loop do # Multiple teams, user has to select puts "Multiple teams found on the Developer Portal, please enter the number of the team you want to use: " teams.each_with_index do |team, i| puts "#{i + 1}) #{team['teamId']} \"#{team['name']}\" (#{team['type']})" end selected = ($stdin.gets || '').strip.to_i - 1 team_to_use = teams[selected] if selected >= 0 return team_to_use['teamId'] if team_to_use end end