<commit_before>[![Gem Version](https://badge.fury.io/rb/phoenx.svg)](https://badge.fury.io/rb/phoenx)

# Phoenx

Phoenx generates Xcode projects (`*.xcodeproj`) and workspaces (`*.xcworkspace`) for iOS, OSX, and tvOS using specification and xcconfig files. Specify your project once and never worry about broken Xcode projects or merge conflicts in pbxproj files ever again. 

#### Example

```ruby

Phoenx::Project.new do |s|
		
	s.project_name = "DarkLightning"
	
	# Set up project wide xcconfig files
	
	s.config_files["Debug"] = "Configuration/Shared/debug.xcconfig"
	s.config_files["Release"] = "Configuration/Shared/release.xcconfig"
	
	# Add a new OSX framework target
	
	s.target "OSX", :framework, :osx, '10.11' do |target|
	
		target.config_files["Debug"] = "Configuration/OSX/debug.xcconfig"
		target.config_files["Release"] = "Configuration/OSX/release.xcconfig"
		
		# Add files to target
		
		target.support_files = ["Configuration/**/*.{xcconfig,plist}"]
		target.sources = "Source/Sockets/**/*.{h,m}", "Source/USB/**/*.{h,m,c}","Source/PacketProtocol/**/*.{h,m}", "Source/Internal/**/*.{h,m}"
		target.public_headers = "Source/OSX/**/*.{h}","Source/USB/*.{h}","Source/PacketProtocol/**/*.{h}","Source/USB/Connections/**/*.{h}"
		target.private_headers = ["Source/Sockets/**/*.{h}", "Source/USB/USBMux/**/*.{h}"]
		
		# Add a unit test target
		
		target.test_target "OSX-Tests" do |t|
		
			t.sources = ["Tests/**/*.{h,m,c}"]
			t.frameworks = ["Frameworks/Kiwi/Kiwi.framework"]
			t.config_files["Debug"] = "Configuration/OSXTests/debug.xcconfig"
			t.config_files["Release"] = "Configuration/OSXTests/release.xcconfig"
		
		end
	
	end

end

```

As soon as you run `phoenx project build` Phoenx will generate a new `xcodeproj` file based on the above definition. Easy as that!

## Overview

1. [Features](README.md#1-features)
2. [Requirements](README.md#2-requirements)
3. [Installation](README.md#3-installation)
4. [Documentation](README.md#4-documentation)
5. [Available Commands](README.md#5-available-commands)
6. [Credits](README.md#6-credits)
7. [License](README.md#7-license)

## 1. Features<commit_msg>Documented feature<commit_after>[![Gem Version](https://badge.fury.io/rb/phoenx.svg)](https://badge.fury.io/rb/phoenx)

# Phoenx

Phoenx generates Xcode projects (`*.xcodeproj`) and workspaces (`*.xcworkspace`) for iOS, OSX, and tvOS using specification and xcconfig files. Specify your project once and never worry about broken Xcode projects or merge conflicts in pbxproj files ever again. 

#### Example

```ruby

Phoenx::Project.new do |s|
		
	s.project_name = "DarkLightning"
	
	# Set up project wide xcconfig files
	
	s.config_files["Debug"] = "Configuration/Shared/debug.xcconfig"
	s.config_files["Release"] = "Configuration/Shared/release.xcconfig"
	
	# Add a new OSX framework target
	
	s.target "OSX", :framework, :osx, '10.11' do |target|
	
		target.config_files["Debug"] = "Configuration/OSX/debug.xcconfig"
		target.config_files["Release"] = "Configuration/OSX/release.xcconfig"
		
		# Add files to target
		
		target.support_files = ["Configuration/**/*.{xcconfig,plist}"]
		target.sources = "Source/Sockets/**/*.{h,m}", "Source/USB/**/*.{h,m,c}","Source/PacketProtocol/**/*.{h,m}", "Source/Internal/**/*.{h,m}"
		target.public_headers = "Source/OSX/**/*.{h}","Source/USB/*.{h}","Source/PacketProtocol/**/*.{h}","Source/USB/Connections/**/*.{h}"
		target.private_headers = ["Source/Sockets/**/*.{h}", "Source/USB/USBMux/**/*.{h}"]
		
		# Generate an umbrella header

			# Path to the file that should be generated
		target.umbrella_header = "Source/OSX/DarkLightning.h"
			
			# Optional: Defining the module name (results in `#import <Module/Header.h>` in comparison to `#import "Header.h"`)
		target.module_name = "DarkLightning"

		# Add a unit test target
		
		target.test_target "OSX-Tests" do |t|
		
			t.sources = ["Tests/**/*.{h,m,c}"]
			t.frameworks = ["Frameworks/Kiwi/Kiwi.framework"]
			t.config_files["Debug"] = "Configuration/OSXTests/debug.xcconfig"
			t.config_files["Release"] = "Configuration/OSXTests/release.xcconfig"
		
		end
	
	end

end

```

As soon as you run `phoenx project build` Phoenx will generate a new `xcodeproj` file based on the above definition. Easy as that!

## Overview

1. [Features](README.md#1-features)
2. [Requirements](README.md#2-requirements)
3. [Installation](README.md#3-installation)
4. [Documentation](README.md#4-documentation)
5. [Available Commands](README.md#5-available-commands)
6. [Credits](README.md#6-credits)
7. [License](README.md#7-license)

## 1. Features
{'fraction_non_alphanumeric': 0.17703768624014024, 'fraction_numerical': 0.008326029798422436, 'mean_word_length': 4.519951632406288, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5841430', 'n_tokens_mistral': 1735, 'n_tokens_neox': 1627, 'n_words': 330}