class XCApp::CreateCommand

Public Instance Methods

ask_for_bundle_identifier(project_name) click to toggle source
# File lib/xcapp/create_command.rb, line 28
def ask_for_bundle_identifier project_name
  guessed_bundle_id = guess_bundle_identifier project_name
  prompt = "Bundle identifier (e.g. com.company.#{project_name}): "

  if guessed_bundle_id
    ask(prompt) { |q| q.default = guessed_bundle_id }
  else
    ask prompt
  end
end
ask_for_language() click to toggle source
# File lib/xcapp/create_command.rb, line 39
def ask_for_language
  choose_inline 'Language for the app? ', ProjectCreator::SUPPORTED_LANGUAGES, :swift
end
ask_for_project_name() click to toggle source
# File lib/xcapp/create_command.rb, line 19
def ask_for_project_name
  name = ask('App name: ')
  while !name or name.length == 0
    name = ask('You must input a name for the app: ')
  end

  name
end
create_project_directory(project_name) click to toggle source
# File lib/xcapp/create_command.rb, line 53
def create_project_directory project_name
  if Dir.exists? project_name
    overwrite = agree("#{project_name} directory already exist, overwrite? (yes/no) ") { |q| q.default = 'no' }
    XCApp.exit_gracefully nil unless overwrite

    FileUtils.rm_rf project_name
  end

  FileUtils.mkdir_p project_name
end
guess_bundle_identifier(project_name) click to toggle source
# File lib/xcapp/create_command.rb, line 43
def guess_bundle_identifier project_name
  git_user_email = Helper::GitHelper.get_current_user_email
  return nil unless git_user_email

  domain = git_user_email.partition('@').last.chomp
  return nil unless (domain and domain.length > 0)

  domain.split('.').reverse.join('.') + ".#{project_name}"
end
run(name, bundle_identifier, language) click to toggle source
# File lib/xcapp/create_command.rb, line 7
def run name, bundle_identifier, language
  name              = ask_for_project_name unless name
  bundle_identifier = ask_for_bundle_identifier name unless bundle_identifier
  language          = ask_for_language     unless language

  create_project_directory name

  creator = ProjectCreator.new
  creator.create_project name, name, bundle_identifier, language.to_sym
  say "Project created."
end