class CocoaPodsKeys::NameWhisperer

Public Class Methods

get_project_name() click to toggle source
# File lib/name_whisperer.rb, line 5
def self.get_project_name
  podfile = Pod::Config.instance.podfile
  if podfile
    user_xcodeproj = xcodeproj_from_podfile(podfile)
  end
  user_xcodeproj || search_folders_for_xcodeproj
end

Private Class Methods

search_folders_for_xcodeproj() click to toggle source
# File lib/name_whisperer.rb, line 22
def self.search_folders_for_xcodeproj
  ui = Pod::UserInterface
  xcodeprojects = Pathname.glob('**/*.xcodeproj').reject { |path| path.to_s.start_with?('Pods/') }
  if xcodeprojects.length == 1
    Pathname(xcodeprojects.first).basename('.xcodeproj')
  else
    error_message = xcodeprojects.length > 1 ? 'found too many' : "couldn't find any"
    projects = xcodeprojects.map(&:basename).join(' ')
    ui.puts 'CocoaPods-Keys ' + error_message + ' Xcode projects (' + projects + '). Please give a name for this project.'

    answer = ''
    loop do
      ui.print ' > '
      answer = ui.gets.strip
      break unless answer.empty?
    end
    answer
  end
end
xcodeproj_from_podfile(podfile) click to toggle source
# File lib/name_whisperer.rb, line 15
def self.xcodeproj_from_podfile(podfile)
  unless podfile.target_definition_list.empty?
    project_path = podfile.target_definition_list.first.user_project_path
    File.basename(project_path, '.xcodeproj') if project_path
  end
end