Sha256: 2db961008939439102f0dfbbf68c9ca3513ff3784c4c9e726210ccf567dfd094

Contents?: true

Size: 1.35 KB

Versions: 1

Compression:

Stored size: 1.35 KB

Contents

require 'fileutils'
require 'pathname'

module Pod
  class PlaygroundGenerator
    TEMPLATE_DIR = Pathname.new('Library/Xcode/Templates/File Templates/Source/Playground with Platform Choice.xctemplate')
    TEMPLATE_NAME = Pathname.new('___FILEBASENAME___.playground')

    def initialize(platform)
      @template = self.class.dir_for_platform(platform)
      raise "Could not find template for #{platform}" if @template.nil?
      @template += TEMPLATE_NAME
    end

    def generate(name)
      FileUtils.cp_r(@template, "#{name}.playground")
      Pathname.new("#{name}.playground")
    end

    def self.platforms
      Dir.entries(template_dir).map do |file|
        next if file.start_with?('.')
        next unless (template_dir + file).directory?
        platform_name(file)
      end.compact
    end

    def self.template_dir
      xcode = Pathname.new(`xcode-select -p`.strip)
      xcode + TEMPLATE_DIR
    end

    def self.major_version
      `xcodebuild -version`.split("\n").first.split(' ')[1].split('.').first.to_i
    end

    def self.platform_name(file)
      file.downcase.sub(' ', '').to_sym
    end

    def self.dir_for_platform(platform)
      platform = :macos if major_version == 8 && platform.to_sym == :osx
      Dir.foreach(template_dir) do |file|
        return (template_dir + file) if platform_name(file) == platform
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cocoapods-playgrounds-1.2.2 lib/cocoapods-playgrounds/generate.rb