Class: Spaceship::Client::UserInterface
- Inherits:
-
Object
- Object
- Spaceship::Client::UserInterface
- Defined in:
- lib/spaceship/ui.rb,
lib/spaceship/portal/ui/select_team.rb
Overview
All User Interface related code lives in this class
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Access the client this UserInterface object is for.
Instance Method Summary collapse
-
#initialize(c) ⇒ UserInterface
constructor
Is called by the client to generate one instance of UserInterface.
-
#select_team ⇒ Object
Shows the UI to select a team.
Constructor Details
#initialize(c) ⇒ UserInterface
Is called by the client to generate one instance of UserInterface
22 23 24 |
# File 'lib/spaceship/ui.rb', line 22 def initialize(c) @client = c end |
Instance Attribute Details
#client ⇒ Object (readonly)
Access the client this UserInterface object is for
19 20 21 |
# File 'lib/spaceship/ui.rb', line 19 def client @client end |
Instance Method Details
#select_team ⇒ Object
Shows the UI to select a team
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# 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 |