# danger-xcode_summary
[![License](http://img.shields.io/badge/license-MIT-green.svg?style=flat)](LICENSE.txt)
[![Gem Version](https://badge.fury.io/rb/danger-xcode_summary.svg)](https://badge.fury.io/rb/danger-xcode_summary)
[![Build Status](https://travis-ci.org/diogot/danger-xcode_summary.svg?branch=master)](https://travis-ci.org/diogot/danger-xcode_summary)
A [Danger](http://danger.systems) plugin that shows all build errors, warnings and unit tests results generated from `xcodebuild`.
You need to use [xcpretty](https://github.com/supermarin/xcpretty) with
[xcpretty-json-formatter](https://github.com/marcelofabri/xcpretty-json-formatter)
to generate a JSON file that this plugin can read.
**Using [danger-swift](https://github.com/danger/swift)**? You may want to take a look at [danger-swift-xcodesummary](https://github.com/f-meloni/danger-swift-xcodesummary).
## How does it look?
|
2 Warnings
|
⚠️ |
MyWeight/ViewController.swift#L35: initialization of immutable value ‘bla’ was never used; consider replacing with assignment to ‘_’ or removing it
let bla = "unused variable"
|
⚠️ |
Bla.m#L32: Value stored to ‘theme’ is never read
theme = *ptr++;
|
|
1 Message
|
📖 |
Executed 5 tests, with 1 failure (0 unexpected) in 0.032 (0.065) seconds |
## Installation
Add this line to your Gemfile:
```ruby
gem 'danger-xcode_summary'
```
## Usage
Just add this line to your `Dangerfile`:
```ruby
xcode_summary.report 'xcodebuild.json'
```
You can also ignore warnings from certain files by setting `ignored_files`:
Warning: `ignored_files` patterns applied on relative paths.
```ruby
# Ignoring warnings from Pods
xcode_summary.ignored_files = 'Pods/**'
# Ignoring specific warnings
xcode_summary.ignored_results { |result|
result.message.start_with? 'ld' # Ignore ld_warnings
}
xcode_summary.report 'xcodebuild.json'
```
You can use `ignores_warnings` to supress warnings and shows only errors.
```ruby
xcode_summary.ignores_warnings = true
```
You can use `inline_mode`.
When this value is enabled, each warnings and errors are commented on each lines.
```ruby
# Comment on each lines
xcode_summary.inline_mode = true
xcode_summary.report 'xcodebuild.json'
```
You can get warning and error number by calling `warning_error_count`. The return will be a JSON string contains warning and error count, e.g {"warnings":1,"errors":3}:
```ruby
result = xcode_summary.warning_error_count 'xcodebuild.json'
```
## License
danger-xcode_summary is released under the MIT license. See [LICENSE.txt](LICENSE.txt) for details.
## Development
1. Clone this repo
2. Run `bundle install` to setup dependencies.
3. Run `bundle exec rake spec` to run the tests.
4. Use `bundle exec guard` to automatically have tests run as you make changes.
5. Make your changes.