commit cd9566d267165d800e5d39c7240993b69edfd3c1 Author: Vadym Markov Date: Wed Sep 30 17:23:46 2015 +0200 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..76fb73d --- /dev/null +++ b/.gitignore @@ -0,0 +1,30 @@ +# OS X +.DS_Store +.AppleDouble +.LSOverride +Icon +._* +.Spotlight-V100 +.Trashes + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate + +# CocoaPods +Pods diff --git a/.slather.yml b/.slather.yml new file mode 100644 index 0000000..5819120 --- /dev/null +++ b/.slather.yml @@ -0,0 +1,4 @@ +ci_service: travis_ci +coverage_service: coveralls +xcodeproj: Tests/Tests.xcodeproj +source_directory: Source diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..1a32ede --- /dev/null +++ b/.travis.yml @@ -0,0 +1,12 @@ +language: objective-c +cache: cocoapods +before_install: gem install cocoapods obcd slather -N + +# Use when you don't have third party dependencies +script: xctool -project Pod/Pod.xcodeproj -scheme Tests -sdk iphonesimulator build test GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES clean test + +# Use when you have third party dependencies (CocoaPods generates a workspace) +# podfile: Pod/Podfile +# script: xctool -workspace Pod/Pod.xcworkspace -scheme Tests -sdk iphonesimulator build test GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES clean test + +after_success: slather diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..8171449 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,3 @@ +GitHub Issues is for reporting bugs, discussing features and general feedback in **Cache**. Be sure to check our [documentation](http://cocoadocs.org/docsets/Cache), [FAQ](https://github.com/hyperoslo/Cache/wiki/FAQ) and [past issues](https://github.com/hyperoslo/Cache/issues?state=closed) before opening any new issues. + +If you are posting about a crash in your application, a stack trace is helpful, but additional context, in the form of code and explanation, is necessary to be of any use. diff --git a/Cache.podspec b/Cache.podspec new file mode 100644 index 0000000..77d6476 --- /dev/null +++ b/Cache.podspec @@ -0,0 +1,15 @@ +Pod::Spec.new do |s| + s.name = "Cache" + s.summary = "A short description of Cache." + s.version = "0.1.0" + s.homepage = "https://github.com/hyperoslo/Cache" + s.license = 'MIT' + s.author = { "Hyper Interaktiv AS" => "ios@hyper.no" } + s.source = { :git => "https://github.com/hyperoslo/Cache.git", :tag => s.version.to_s } + s.social_media_url = 'https://twitter.com/hyperoslo' + s.platform = :ios, '8.0' + s.requires_arc = true + s.source_files = 'Source/**/*' +# s.frameworks = 'UIKit', 'MapKit' +# s.dependency 'AFNetworking', '~> 2.3' +end diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..65e9840 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,22 @@ +Licensed under the **MIT** license + +> Copyright (c) 2015 Hyper Interaktiv AS +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> "Software"), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Pod/Pod.xcodeproj/project.pbxproj b/Pod/Pod.xcodeproj/project.pbxproj new file mode 100644 index 0000000..2e37d2a --- /dev/null +++ b/Pod/Pod.xcodeproj/project.pbxproj @@ -0,0 +1,303 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 14A139B41AEFC72B00AD732F /* Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14A139B31AEFC72B00AD732F /* Tests.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 146D72AC1AB782920058798C /* Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 146D72B11AB782920058798C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 14A139B21AEFC72B00AD732F /* Tests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Tests-Bridging-Header.h"; sourceTree = ""; }; + 14A139B31AEFC72B00AD732F /* Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Tests.swift; sourceTree = ""; }; + 14C136511AB784B200B7B07A /* .travis.yml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = .travis.yml; path = ../.travis.yml; sourceTree = ""; }; + 14C136521AB784B200B7B07A /* CONTRIBUTING.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; name = CONTRIBUTING.md; path = ../CONTRIBUTING.md; sourceTree = ""; }; + 14C136541AB784B200B7B07A /* LICENSE.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; name = LICENSE.md; path = ../LICENSE.md; sourceTree = ""; }; + 14C136551AB784B200B7B07A /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; + 14C1365C1AB784BC00B7B07A /* .gitkeep */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = .gitkeep; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 146D72A91AB782920058798C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 146D728A1AB782920058798C = { + isa = PBXGroup; + children = ( + 14C1365B1AB784BC00B7B07A /* Source */, + 14C136501AB7849300B7B07A /* Metadata */, + 146D72AF1AB782920058798C /* Tests */, + 146D72941AB782920058798C /* Products */, + ); + indentWidth = 2; + sourceTree = ""; + tabWidth = 2; + }; + 146D72941AB782920058798C /* Products */ = { + isa = PBXGroup; + children = ( + 146D72AC1AB782920058798C /* Tests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 146D72AF1AB782920058798C /* Tests */ = { + isa = PBXGroup; + children = ( + 146D72B01AB782920058798C /* Supporting Files */, + 14A139B31AEFC72B00AD732F /* Tests.swift */, + 14A139B21AEFC72B00AD732F /* Tests-Bridging-Header.h */, + ); + path = Tests; + sourceTree = ""; + }; + 146D72B01AB782920058798C /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 146D72B11AB782920058798C /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 14C136501AB7849300B7B07A /* Metadata */ = { + isa = PBXGroup; + children = ( + 14C136511AB784B200B7B07A /* .travis.yml */, + 14C136521AB784B200B7B07A /* CONTRIBUTING.md */, + 14C136541AB784B200B7B07A /* LICENSE.md */, + 14C136551AB784B200B7B07A /* README.md */, + ); + name = Metadata; + sourceTree = ""; + }; + 14C1365B1AB784BC00B7B07A /* Source */ = { + isa = PBXGroup; + children = ( + 14C1365C1AB784BC00B7B07A /* .gitkeep */, + ); + name = Source; + path = ../Source; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 146D72AB1AB782920058798C /* Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 146D72B91AB782920058798C /* Build configuration list for PBXNativeTarget "Tests" */; + buildPhases = ( + 146D72A81AB782920058798C /* Sources */, + 146D72A91AB782920058798C /* Frameworks */, + 146D72AA1AB782920058798C /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Tests; + productName = PodTests; + productReference = 146D72AC1AB782920058798C /* Tests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 146D728B1AB782920058798C /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0620; + ORGANIZATIONNAME = Example; + TargetAttributes = { + 146D72AB1AB782920058798C = { + CreatedOnToolsVersion = 6.2; + }; + }; + }; + buildConfigurationList = 146D728E1AB782920058798C /* Build configuration list for PBXProject "Pod" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 146D728A1AB782920058798C; + productRefGroup = 146D72941AB782920058798C /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 146D72AB1AB782920058798C /* Tests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 146D72AA1AB782920058798C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 146D72A81AB782920058798C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 14A139B41AEFC72B00AD732F /* Tests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 146D72B41AB782920058798C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 146D72B51AB782920058798C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 146D72BA1AB782920058798C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Tests/Tests-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 146D72BB1AB782920058798C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + INFOPLIST_FILE = Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Tests/Tests-Bridging-Header.h"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 146D728E1AB782920058798C /* Build configuration list for PBXProject "Pod" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 146D72B41AB782920058798C /* Debug */, + 146D72B51AB782920058798C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 146D72B91AB782920058798C /* Build configuration list for PBXNativeTarget "Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 146D72BA1AB782920058798C /* Debug */, + 146D72BB1AB782920058798C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 146D728B1AB782920058798C /* Project object */; +} diff --git a/Pod/Pod.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Pod/Pod.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..f63ae21 --- /dev/null +++ b/Pod/Pod.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Pod/Pod.xcodeproj/xcshareddata/xcschemes/Tests.xcscheme b/Pod/Pod.xcodeproj/xcshareddata/xcschemes/Tests.xcscheme new file mode 100644 index 0000000..55fcf52 --- /dev/null +++ b/Pod/Pod.xcodeproj/xcshareddata/xcschemes/Tests.xcscheme @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pod/Podfile b/Pod/Podfile new file mode 100644 index 0000000..648ccb1 --- /dev/null +++ b/Pod/Podfile @@ -0,0 +1,7 @@ +platform :ios, '8.0' +use_frameworks! + +# When using more than one target in your project +# link_with 'Demo', 'Tests' + +# pod 'Sample' diff --git a/Pod/Tests/Info.plist b/Pod/Tests/Info.plist new file mode 100644 index 0000000..15204bd --- /dev/null +++ b/Pod/Tests/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + com.example.$(PRODUCT_NAME:rfc1034identifier) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/Pod/Tests/Tests-Bridging-Header.h b/Pod/Tests/Tests-Bridging-Header.h new file mode 100644 index 0000000..1b2cb5d --- /dev/null +++ b/Pod/Tests/Tests-Bridging-Header.h @@ -0,0 +1,4 @@ +// +// Use this file to import your target's public headers that you would like to expose to Swift. +// + diff --git a/Pod/Tests/Tests.swift b/Pod/Tests/Tests.swift new file mode 100644 index 0000000..18300e1 --- /dev/null +++ b/Pod/Tests/Tests.swift @@ -0,0 +1,10 @@ +import UIKit +import XCTest + +class Tests: XCTestCase { + + func testFailing() { + let ofCourse = true + XCTAssertEqual(ofCourse, false) + } +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..c98e827 --- /dev/null +++ b/README.md @@ -0,0 +1,29 @@ +# Cache + +[![CI Status](http://img.shields.io/travis/hyperoslo/Cache.svg?style=flat)](https://travis-ci.org/hyperoslo/Cache) +[![Version](https://img.shields.io/cocoapods/v/Cache.svg?style=flat)](http://cocoadocs.org/docsets/Cache) +[![License](https://img.shields.io/cocoapods/l/Cache.svg?style=flat)](http://cocoadocs.org/docsets/Cache) +[![Platform](https://img.shields.io/cocoapods/p/Cache.svg?style=flat)](http://cocoadocs.org/docsets/Cache) + +## Usage + +```swift + +``` + +## Installation + +**Cache** is available through [CocoaPods](http://cocoapods.org). To install +it, simply add the following line to your Podfile: + +```ruby +pod 'Cache' +``` + +## Author + +Hyper Interaktiv AS, ios@hyper.no + +## License + +**Cache** is available under the MIT license. See the LICENSE file for more info. diff --git a/Source/.gitkeep b/Source/.gitkeep new file mode 100644 index 0000000..e69de29