diff --git a/.gitignore b/.gitignore
index 567609b1..81add2b9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
build/
+slather-report/
diff --git a/.slather.yml b/.slather.yml
new file mode 100644
index 00000000..62b5dbf1
--- /dev/null
+++ b/.slather.yml
@@ -0,0 +1,2 @@
+coverage_service: coveralls
+xcodeproj: SPTDataLoader.xcodeproj
diff --git a/.travis.yml b/.travis.yml
index ad9a945c..66585d29 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,4 +1,6 @@
+osx_image: xcode7.2
language: objective-c
+install: bundle install --without=documentation
script:
- - xctool -project SPTDataLoader.xcodeproj -scheme SPTDataLoader -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO
- - xctool test -project SPTDataLoader.xcodeproj -scheme SPTDataLoader -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO
+ - xcodebuild build test -project SPTDataLoader.xcodeproj -scheme SPTDataLoader -sdk iphonesimulator ONLY_ACTIVE_ARCH=YES -enableCodeCoverage YES
+after_success: ./slather.sh
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 00000000..8f47e105
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,5 @@
+source 'https://rubygems.org'
+
+gem 'slather',
+ :git => "https://github.com/viteinfinite/slather",
+ :branch => "feature-profdata"
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644
index 00000000..197728a0
--- /dev/null
+++ b/Gemfile.lock
@@ -0,0 +1,44 @@
+GIT
+ remote: https://github.com/viteinfinite/slather
+ revision: 19cd9648ebccf351b79e8513136c091c98650e9e
+ branch: feature-profdata
+ specs:
+ slather (1.8.2)
+ clamp (~> 0.6)
+ nokogiri (~> 1.6.3)
+ xcodeproj (~> 0.28.2)
+
+GEM
+ remote: https://rubygems.org/
+ specs:
+ activesupport (4.2.5)
+ i18n (~> 0.7)
+ json (~> 1.7, >= 1.7.7)
+ minitest (~> 5.1)
+ thread_safe (~> 0.3, >= 0.3.4)
+ tzinfo (~> 1.1)
+ claide (0.9.1)
+ clamp (0.6.5)
+ colored (1.2)
+ i18n (0.7.0)
+ json (1.8.3)
+ mini_portile2 (2.0.0)
+ minitest (5.8.3)
+ nokogiri (1.6.7.1)
+ mini_portile2 (~> 2.0.0.rc2)
+ thread_safe (0.3.5)
+ tzinfo (1.2.2)
+ thread_safe (~> 0.1)
+ xcodeproj (0.28.2)
+ activesupport (>= 3)
+ claide (~> 0.9.1)
+ colored (~> 1.2)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ slather!
+
+BUNDLED WITH
+ 1.10.6
diff --git a/README.md b/README.md
index ca161572..1a4b6b53 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
# SPTDataLoader
+[![Coverage Status](https://coveralls.io/repos/spotify/SPTDataLoader/badge.svg?branch=master&service=github)](https://coveralls.io/github/spotify/SPTDataLoader?branch=master)
+
## DESCRIPTION
Authentication and back-off logic is a pain, let's do it once and forget about it! This is a library that allows you to centralise this logic and forget about the ugly parts of making HTTP requests.
diff --git a/SPTDataLoader.xcodeproj/project.pbxproj b/SPTDataLoader.xcodeproj/project.pbxproj
index da2ab8d0..443dfb68 100644
--- a/SPTDataLoader.xcodeproj/project.pbxproj
+++ b/SPTDataLoader.xcodeproj/project.pbxproj
@@ -452,6 +452,7 @@
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_CODE_COVERAGE = YES;
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
@@ -494,6 +495,7 @@
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_CODE_COVERAGE = YES;
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
diff --git a/SPTDataLoader.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/SPTDataLoader.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 00000000..919434a6
--- /dev/null
+++ b/SPTDataLoader.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/SPTDataLoader.xcodeproj/xcshareddata/xcschemes/SPTDataLoader.xcscheme b/SPTDataLoader.xcodeproj/xcshareddata/xcschemes/SPTDataLoader.xcscheme
index cba9cbab..d9e51a36 100644
--- a/SPTDataLoader.xcodeproj/xcshareddata/xcschemes/SPTDataLoader.xcscheme
+++ b/SPTDataLoader.xcodeproj/xcshareddata/xcschemes/SPTDataLoader.xcscheme
@@ -26,7 +26,8 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
- shouldUseLaunchSchemeArgsEnv = "YES">
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ codeCoverageEnabled = "YES">
diff --git a/slather.sh b/slather.sh
new file mode 100755
index 00000000..d1be2079
--- /dev/null
+++ b/slather.sh
@@ -0,0 +1,11 @@
+set -euo pipefail
+
+bundle exec slather coverage \
+ --input-format profdata \
+ --cobertura-xml \
+ --ignore "../**/*/Xcode*" \
+ --output-directory slather-report \
+ --scheme SPTDataLoader \
+ SPTDataLoader.xcodeproj
+
+bundle exec slather