├── .gitignore
├── .travis.yml
├── Assets
├── ImageError.psd
├── ImageError@2x.psd
├── ImageError@3x.psd
├── ImageSelected.psd
├── ImageSelected@2x.psd
├── ImageSelected@3x.psd
├── ImageSelectedSmallOff.psd
├── ImageSelectedSmallOff@2x.psd
├── ImageSelectedSmallOff@3x.psd
├── ImageSelectedSmallOn.psd
├── ImageSelectedSmallOn@2x.psd
├── ImageSelectedSmallOn@3x.psd
├── PlayButtonOverlayLarge.psd
├── PlayButtonOverlayLarge@2x.psd
├── PlayButtonOverlayLarge@3x.psd
├── PlayButtonOverlayLargeTap.psd
├── PlayButtonOverlayLargeTap@2x.psd
├── PlayButtonOverlayLargeTap@3x.psd
├── UIBarButtonItemArrow.psd
├── UIBarButtonItemArrow@2x.psd
├── UIBarButtonItemArrow@3x.psd
├── UIBarButtonItemGrid.psd
├── UIBarButtonItemGrid@2x.psd
├── UIBarButtonItemGrid@3x.psd
├── VideoOverlay.psd
├── VideoOverlay@2x.psd
└── VideoOverlay@3x.psd
├── Example
├── MWPhotoBrowser.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── MWPhotoBrowser-Example.xcscheme
├── MWPhotoBrowser.xcworkspace
│ └── contents.xcworkspacedata
├── MWPhotoBrowser
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ ├── ImageSelected.imageset
│ │ │ ├── Contents.json
│ │ │ ├── ImageSelectedOn.png
│ │ │ ├── ImageSelectedOn@2x.png
│ │ │ └── ImageSelectedOn@3x.png
│ │ ├── ImageSelectedSmall.imageset
│ │ │ ├── Contents.json
│ │ │ ├── ImageSelectedSmallOn.png
│ │ │ ├── ImageSelectedSmallOn@2x.png
│ │ │ └── ImageSelectedSmallOn@3x.png
│ │ └── LaunchImage.launchimage
│ │ │ └── Contents.json
│ ├── Local Media
│ │ ├── photo1.jpg
│ │ ├── photo1t.jpg
│ │ ├── photo2.jpg
│ │ ├── photo2t.jpg
│ │ ├── photo3.jpg
│ │ ├── photo3t.jpg
│ │ ├── photo4.jpg
│ │ ├── photo4t.jpg
│ │ ├── photo5.jpg
│ │ ├── photo5t.jpg
│ │ ├── photo6.jpg
│ │ ├── photo6t.jpg
│ │ ├── photo7.jpg
│ │ ├── photo7t.jpg
│ │ ├── photo8.jpg
│ │ ├── photo8t.jpg
│ │ ├── video.mp4
│ │ └── video_thumb.jpg
│ ├── MWPhotoBrowser-Info.plist
│ ├── MWPhotoBrowser-Prefix.pch
│ ├── Main.storyboard
│ ├── Menu.h
│ ├── Menu.m
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ └── main.m
├── Podfile
├── Podfile.lock
├── Pods
│ ├── DACircularProgress
│ │ ├── DACircularProgress
│ │ │ ├── DACircularProgressView.h
│ │ │ ├── DACircularProgressView.m
│ │ │ ├── DALabeledCircularProgressView.h
│ │ │ └── DALabeledCircularProgressView.m
│ │ ├── LICENSE.md
│ │ └── README.md
│ ├── Expecta+Snapshots
│ │ ├── EXPMatchers+FBSnapshotTest.h
│ │ ├── EXPMatchers+FBSnapshotTest.m
│ │ ├── LICENSE.md
│ │ └── README.md
│ ├── Expecta
│ │ ├── Expecta
│ │ │ ├── EXPBlockDefinedMatcher.h
│ │ │ ├── EXPBlockDefinedMatcher.m
│ │ │ ├── EXPDefines.h
│ │ │ ├── EXPDoubleTuple.h
│ │ │ ├── EXPDoubleTuple.m
│ │ │ ├── EXPExpect.h
│ │ │ ├── EXPExpect.m
│ │ │ ├── EXPFloatTuple.h
│ │ │ ├── EXPFloatTuple.m
│ │ │ ├── EXPMatcher.h
│ │ │ ├── EXPUnsupportedObject.h
│ │ │ ├── EXPUnsupportedObject.m
│ │ │ ├── Expecta.h
│ │ │ ├── ExpectaObject.h
│ │ │ ├── ExpectaObject.m
│ │ │ ├── ExpectaSupport.h
│ │ │ ├── ExpectaSupport.m
│ │ │ ├── Matchers
│ │ │ │ ├── EXPMatcherHelpers.h
│ │ │ │ ├── EXPMatcherHelpers.m
│ │ │ │ ├── EXPMatchers+beCloseTo.h
│ │ │ │ ├── EXPMatchers+beCloseTo.m
│ │ │ │ ├── EXPMatchers+beFalsy.h
│ │ │ │ ├── EXPMatchers+beFalsy.m
│ │ │ │ ├── EXPMatchers+beGreaterThan.h
│ │ │ │ ├── EXPMatchers+beGreaterThan.m
│ │ │ │ ├── EXPMatchers+beGreaterThanOrEqualTo.h
│ │ │ │ ├── EXPMatchers+beGreaterThanOrEqualTo.m
│ │ │ │ ├── EXPMatchers+beIdenticalTo.h
│ │ │ │ ├── EXPMatchers+beIdenticalTo.m
│ │ │ │ ├── EXPMatchers+beInTheRangeOf.h
│ │ │ │ ├── EXPMatchers+beInTheRangeOf.m
│ │ │ │ ├── EXPMatchers+beInstanceOf.h
│ │ │ │ ├── EXPMatchers+beInstanceOf.m
│ │ │ │ ├── EXPMatchers+beKindOf.h
│ │ │ │ ├── EXPMatchers+beKindOf.m
│ │ │ │ ├── EXPMatchers+beLessThan.h
│ │ │ │ ├── EXPMatchers+beLessThan.m
│ │ │ │ ├── EXPMatchers+beLessThanOrEqualTo.h
│ │ │ │ ├── EXPMatchers+beLessThanOrEqualTo.m
│ │ │ │ ├── EXPMatchers+beNil.h
│ │ │ │ ├── EXPMatchers+beNil.m
│ │ │ │ ├── EXPMatchers+beSubclassOf.h
│ │ │ │ ├── EXPMatchers+beSubclassOf.m
│ │ │ │ ├── EXPMatchers+beSupersetOf.h
│ │ │ │ ├── EXPMatchers+beSupersetOf.m
│ │ │ │ ├── EXPMatchers+beTruthy.h
│ │ │ │ ├── EXPMatchers+beTruthy.m
│ │ │ │ ├── EXPMatchers+beginWith.h
│ │ │ │ ├── EXPMatchers+beginWith.m
│ │ │ │ ├── EXPMatchers+conformTo.h
│ │ │ │ ├── EXPMatchers+conformTo.m
│ │ │ │ ├── EXPMatchers+contain.h
│ │ │ │ ├── EXPMatchers+contain.m
│ │ │ │ ├── EXPMatchers+endWith.h
│ │ │ │ ├── EXPMatchers+endWith.m
│ │ │ │ ├── EXPMatchers+equal.h
│ │ │ │ ├── EXPMatchers+equal.m
│ │ │ │ ├── EXPMatchers+haveCountOf.h
│ │ │ │ ├── EXPMatchers+haveCountOf.m
│ │ │ │ ├── EXPMatchers+match.h
│ │ │ │ ├── EXPMatchers+match.m
│ │ │ │ ├── EXPMatchers+postNotification.h
│ │ │ │ ├── EXPMatchers+postNotification.m
│ │ │ │ ├── EXPMatchers+raise.h
│ │ │ │ ├── EXPMatchers+raise.m
│ │ │ │ ├── EXPMatchers+raiseWithReason.h
│ │ │ │ ├── EXPMatchers+raiseWithReason.m
│ │ │ │ ├── EXPMatchers+respondTo.h
│ │ │ │ ├── EXPMatchers+respondTo.m
│ │ │ │ └── EXPMatchers.h
│ │ │ ├── NSObject+Expecta.h
│ │ │ ├── NSValue+Expecta.h
│ │ │ └── NSValue+Expecta.m
│ │ ├── LICENSE
│ │ └── README.md
│ ├── FBSnapshotTestCase
│ │ ├── FBSnapshotTestCase
│ │ │ ├── FBSnapshotTestCase.h
│ │ │ ├── FBSnapshotTestCase.m
│ │ │ ├── FBSnapshotTestCasePlatform.h
│ │ │ ├── FBSnapshotTestCasePlatform.m
│ │ │ ├── FBSnapshotTestController.h
│ │ │ ├── FBSnapshotTestController.m
│ │ │ ├── UIImage+Compare.h
│ │ │ ├── UIImage+Compare.m
│ │ │ ├── UIImage+Diff.h
│ │ │ └── UIImage+Diff.m
│ │ ├── LICENSE
│ │ └── README.md
│ ├── Headers
│ │ ├── Private
│ │ │ ├── DACircularProgress
│ │ │ │ ├── DACircularProgressView.h
│ │ │ │ └── DALabeledCircularProgressView.h
│ │ │ ├── Expecta+Snapshots
│ │ │ │ └── EXPMatchers+FBSnapshotTest.h
│ │ │ ├── Expecta
│ │ │ │ ├── EXPBlockDefinedMatcher.h
│ │ │ │ ├── EXPDefines.h
│ │ │ │ ├── EXPDoubleTuple.h
│ │ │ │ ├── EXPExpect.h
│ │ │ │ ├── EXPFloatTuple.h
│ │ │ │ ├── EXPMatcher.h
│ │ │ │ ├── EXPMatcherHelpers.h
│ │ │ │ ├── EXPMatchers+beCloseTo.h
│ │ │ │ ├── EXPMatchers+beFalsy.h
│ │ │ │ ├── EXPMatchers+beGreaterThan.h
│ │ │ │ ├── EXPMatchers+beGreaterThanOrEqualTo.h
│ │ │ │ ├── EXPMatchers+beIdenticalTo.h
│ │ │ │ ├── EXPMatchers+beInTheRangeOf.h
│ │ │ │ ├── EXPMatchers+beInstanceOf.h
│ │ │ │ ├── EXPMatchers+beKindOf.h
│ │ │ │ ├── EXPMatchers+beLessThan.h
│ │ │ │ ├── EXPMatchers+beLessThanOrEqualTo.h
│ │ │ │ ├── EXPMatchers+beNil.h
│ │ │ │ ├── EXPMatchers+beSubclassOf.h
│ │ │ │ ├── EXPMatchers+beSupersetOf.h
│ │ │ │ ├── EXPMatchers+beTruthy.h
│ │ │ │ ├── EXPMatchers+beginWith.h
│ │ │ │ ├── EXPMatchers+conformTo.h
│ │ │ │ ├── EXPMatchers+contain.h
│ │ │ │ ├── EXPMatchers+endWith.h
│ │ │ │ ├── EXPMatchers+equal.h
│ │ │ │ ├── EXPMatchers+haveCountOf.h
│ │ │ │ ├── EXPMatchers+match.h
│ │ │ │ ├── EXPMatchers+postNotification.h
│ │ │ │ ├── EXPMatchers+raise.h
│ │ │ │ ├── EXPMatchers+raiseWithReason.h
│ │ │ │ ├── EXPMatchers+respondTo.h
│ │ │ │ ├── EXPMatchers.h
│ │ │ │ ├── EXPUnsupportedObject.h
│ │ │ │ ├── Expecta.h
│ │ │ │ ├── ExpectaObject.h
│ │ │ │ ├── ExpectaSupport.h
│ │ │ │ ├── NSObject+Expecta.h
│ │ │ │ └── NSValue+Expecta.h
│ │ │ ├── FBSnapshotTestCase
│ │ │ │ ├── FBSnapshotTestCase.h
│ │ │ │ ├── FBSnapshotTestCasePlatform.h
│ │ │ │ ├── FBSnapshotTestController.h
│ │ │ │ ├── UIImage+Compare.h
│ │ │ │ └── UIImage+Diff.h
│ │ │ ├── MBProgressHUD
│ │ │ │ └── MBProgressHUD.h
│ │ │ ├── MWPhotoBrowser
│ │ │ │ ├── MWCaptionView.h
│ │ │ │ ├── MWCommon.h
│ │ │ │ ├── MWGridCell.h
│ │ │ │ ├── MWGridViewController.h
│ │ │ │ ├── MWPhoto.h
│ │ │ │ ├── MWPhotoBrowser.h
│ │ │ │ ├── MWPhotoBrowserPrivate.h
│ │ │ │ ├── MWPhotoProtocol.h
│ │ │ │ ├── MWTapDetectingImageView.h
│ │ │ │ ├── MWTapDetectingView.h
│ │ │ │ ├── MWZoomingScrollView.h
│ │ │ │ └── UIImage+MWPhotoBrowser.h
│ │ │ ├── SDWebImage
│ │ │ │ ├── NSData+ImageContentType.h
│ │ │ │ ├── SDImageCache.h
│ │ │ │ ├── SDWebImageCompat.h
│ │ │ │ ├── SDWebImageDecoder.h
│ │ │ │ ├── SDWebImageDownloader.h
│ │ │ │ ├── SDWebImageDownloaderOperation.h
│ │ │ │ ├── SDWebImageManager.h
│ │ │ │ ├── SDWebImageOperation.h
│ │ │ │ ├── SDWebImagePrefetcher.h
│ │ │ │ ├── UIButton+WebCache.h
│ │ │ │ ├── UIImage+GIF.h
│ │ │ │ ├── UIImage+MultiFormat.h
│ │ │ │ ├── UIImageView+HighlightedWebCache.h
│ │ │ │ ├── UIImageView+WebCache.h
│ │ │ │ └── UIView+WebCacheOperation.h
│ │ │ └── Specta
│ │ │ │ ├── SPTCallSite.h
│ │ │ │ ├── SPTCompiledExample.h
│ │ │ │ ├── SPTExample.h
│ │ │ │ ├── SPTExampleGroup.h
│ │ │ │ ├── SPTExcludeGlobalBeforeAfterEach.h
│ │ │ │ ├── SPTGlobalBeforeAfterEach.h
│ │ │ │ ├── SPTSharedExampleGroups.h
│ │ │ │ ├── SPTSpec.h
│ │ │ │ ├── SPTTestSuite.h
│ │ │ │ ├── Specta.h
│ │ │ │ ├── SpectaDSL.h
│ │ │ │ ├── SpectaTypes.h
│ │ │ │ ├── SpectaUtility.h
│ │ │ │ ├── XCTest+Private.h
│ │ │ │ └── XCTestCase+Specta.h
│ │ └── Public
│ │ │ ├── DACircularProgress
│ │ │ ├── DACircularProgressView.h
│ │ │ └── DALabeledCircularProgressView.h
│ │ │ ├── Expecta+Snapshots
│ │ │ └── EXPMatchers+FBSnapshotTest.h
│ │ │ ├── Expecta
│ │ │ ├── EXPBlockDefinedMatcher.h
│ │ │ ├── EXPDefines.h
│ │ │ ├── EXPDoubleTuple.h
│ │ │ ├── EXPExpect.h
│ │ │ ├── EXPFloatTuple.h
│ │ │ ├── EXPMatcher.h
│ │ │ ├── EXPMatcherHelpers.h
│ │ │ ├── EXPMatchers+beCloseTo.h
│ │ │ ├── EXPMatchers+beFalsy.h
│ │ │ ├── EXPMatchers+beGreaterThan.h
│ │ │ ├── EXPMatchers+beGreaterThanOrEqualTo.h
│ │ │ ├── EXPMatchers+beIdenticalTo.h
│ │ │ ├── EXPMatchers+beInTheRangeOf.h
│ │ │ ├── EXPMatchers+beInstanceOf.h
│ │ │ ├── EXPMatchers+beKindOf.h
│ │ │ ├── EXPMatchers+beLessThan.h
│ │ │ ├── EXPMatchers+beLessThanOrEqualTo.h
│ │ │ ├── EXPMatchers+beNil.h
│ │ │ ├── EXPMatchers+beSubclassOf.h
│ │ │ ├── EXPMatchers+beSupersetOf.h
│ │ │ ├── EXPMatchers+beTruthy.h
│ │ │ ├── EXPMatchers+beginWith.h
│ │ │ ├── EXPMatchers+conformTo.h
│ │ │ ├── EXPMatchers+contain.h
│ │ │ ├── EXPMatchers+endWith.h
│ │ │ ├── EXPMatchers+equal.h
│ │ │ ├── EXPMatchers+haveCountOf.h
│ │ │ ├── EXPMatchers+match.h
│ │ │ ├── EXPMatchers+postNotification.h
│ │ │ ├── EXPMatchers+raise.h
│ │ │ ├── EXPMatchers+raiseWithReason.h
│ │ │ ├── EXPMatchers+respondTo.h
│ │ │ ├── EXPMatchers.h
│ │ │ ├── EXPUnsupportedObject.h
│ │ │ ├── Expecta.h
│ │ │ ├── ExpectaObject.h
│ │ │ ├── ExpectaSupport.h
│ │ │ ├── NSObject+Expecta.h
│ │ │ └── NSValue+Expecta.h
│ │ │ ├── FBSnapshotTestCase
│ │ │ ├── FBSnapshotTestCase.h
│ │ │ ├── FBSnapshotTestCasePlatform.h
│ │ │ ├── FBSnapshotTestController.h
│ │ │ ├── UIImage+Compare.h
│ │ │ └── UIImage+Diff.h
│ │ │ ├── MBProgressHUD
│ │ │ └── MBProgressHUD.h
│ │ │ ├── MWPhotoBrowser
│ │ │ ├── MWCaptionView.h
│ │ │ ├── MWCommon.h
│ │ │ ├── MWGridCell.h
│ │ │ ├── MWGridViewController.h
│ │ │ ├── MWPhoto.h
│ │ │ ├── MWPhotoBrowser.h
│ │ │ ├── MWPhotoBrowserPrivate.h
│ │ │ ├── MWPhotoProtocol.h
│ │ │ ├── MWTapDetectingImageView.h
│ │ │ ├── MWTapDetectingView.h
│ │ │ ├── MWZoomingScrollView.h
│ │ │ └── UIImage+MWPhotoBrowser.h
│ │ │ ├── SDWebImage
│ │ │ ├── NSData+ImageContentType.h
│ │ │ ├── SDImageCache.h
│ │ │ ├── SDWebImageCompat.h
│ │ │ ├── SDWebImageDecoder.h
│ │ │ ├── SDWebImageDownloader.h
│ │ │ ├── SDWebImageDownloaderOperation.h
│ │ │ ├── SDWebImageManager.h
│ │ │ ├── SDWebImageOperation.h
│ │ │ ├── SDWebImagePrefetcher.h
│ │ │ ├── UIButton+WebCache.h
│ │ │ ├── UIImage+GIF.h
│ │ │ ├── UIImage+MultiFormat.h
│ │ │ ├── UIImageView+HighlightedWebCache.h
│ │ │ ├── UIImageView+WebCache.h
│ │ │ └── UIView+WebCacheOperation.h
│ │ │ └── Specta
│ │ │ ├── SPTCallSite.h
│ │ │ ├── SPTCompiledExample.h
│ │ │ ├── SPTExample.h
│ │ │ ├── SPTExampleGroup.h
│ │ │ ├── SPTExcludeGlobalBeforeAfterEach.h
│ │ │ ├── SPTGlobalBeforeAfterEach.h
│ │ │ ├── SPTSharedExampleGroups.h
│ │ │ ├── SPTSpec.h
│ │ │ ├── SPTTestSuite.h
│ │ │ ├── Specta.h
│ │ │ ├── SpectaDSL.h
│ │ │ ├── SpectaTypes.h
│ │ │ ├── SpectaUtility.h
│ │ │ ├── XCTest+Private.h
│ │ │ └── XCTestCase+Specta.h
│ ├── Local Podspecs
│ │ └── MWPhotoBrowser.podspec.json
│ ├── MBProgressHUD
│ │ ├── LICENSE
│ │ ├── MBProgressHUD.h
│ │ ├── MBProgressHUD.m
│ │ └── README.mdown
│ ├── Manifest.lock
│ ├── Pods.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ ├── MWPhotoBrowser.xcscheme
│ │ │ ├── Pods-MWPhotoBrowser_Example-MWPhotoBrowser-MWPhotoBrowser.xcscheme
│ │ │ ├── Pods-MWPhotoBrowser_Example-MWPhotoBrowser.xcscheme
│ │ │ ├── Pods-MWPhotoBrowser_Tests-MWPhotoBrowser-MWPhotoBrowser.xcscheme
│ │ │ └── Pods-MWPhotoBrowser_Tests-MWPhotoBrowser.xcscheme
│ ├── SDWebImage
│ │ ├── LICENSE
│ │ ├── README.md
│ │ └── SDWebImage
│ │ │ ├── NSData+ImageContentType.h
│ │ │ ├── NSData+ImageContentType.m
│ │ │ ├── SDImageCache.h
│ │ │ ├── SDImageCache.m
│ │ │ ├── SDWebImageCompat.h
│ │ │ ├── SDWebImageCompat.m
│ │ │ ├── SDWebImageDecoder.h
│ │ │ ├── SDWebImageDecoder.m
│ │ │ ├── SDWebImageDownloader.h
│ │ │ ├── SDWebImageDownloader.m
│ │ │ ├── SDWebImageDownloaderOperation.h
│ │ │ ├── SDWebImageDownloaderOperation.m
│ │ │ ├── SDWebImageManager.h
│ │ │ ├── SDWebImageManager.m
│ │ │ ├── SDWebImageOperation.h
│ │ │ ├── SDWebImagePrefetcher.h
│ │ │ ├── SDWebImagePrefetcher.m
│ │ │ ├── UIButton+WebCache.h
│ │ │ ├── UIButton+WebCache.m
│ │ │ ├── UIImage+GIF.h
│ │ │ ├── UIImage+GIF.m
│ │ │ ├── UIImage+MultiFormat.h
│ │ │ ├── UIImage+MultiFormat.m
│ │ │ ├── UIImageView+HighlightedWebCache.h
│ │ │ ├── UIImageView+HighlightedWebCache.m
│ │ │ ├── UIImageView+WebCache.h
│ │ │ ├── UIImageView+WebCache.m
│ │ │ ├── UIView+WebCacheOperation.h
│ │ │ └── UIView+WebCacheOperation.m
│ ├── Specta
│ │ ├── LICENSE
│ │ ├── README.md
│ │ └── Specta
│ │ │ └── Specta
│ │ │ ├── SPTCallSite.h
│ │ │ ├── SPTCallSite.m
│ │ │ ├── SPTCompiledExample.h
│ │ │ ├── SPTCompiledExample.m
│ │ │ ├── SPTExample.h
│ │ │ ├── SPTExample.m
│ │ │ ├── SPTExampleGroup.h
│ │ │ ├── SPTExampleGroup.m
│ │ │ ├── SPTExcludeGlobalBeforeAfterEach.h
│ │ │ ├── SPTGlobalBeforeAfterEach.h
│ │ │ ├── SPTSharedExampleGroups.h
│ │ │ ├── SPTSharedExampleGroups.m
│ │ │ ├── SPTSpec.h
│ │ │ ├── SPTSpec.m
│ │ │ ├── SPTTestSuite.h
│ │ │ ├── SPTTestSuite.m
│ │ │ ├── Specta.h
│ │ │ ├── SpectaDSL.h
│ │ │ ├── SpectaDSL.m
│ │ │ ├── SpectaTypes.h
│ │ │ ├── SpectaUtility.h
│ │ │ ├── SpectaUtility.m
│ │ │ ├── XCTest+Private.h
│ │ │ ├── XCTestCase+Specta.h
│ │ │ └── XCTestCase+Specta.m
│ └── Target Support Files
│ │ ├── DACircularProgress
│ │ ├── DACircularProgress-dummy.m
│ │ ├── DACircularProgress-prefix.pch
│ │ └── DACircularProgress.xcconfig
│ │ ├── Expecta+Snapshots
│ │ ├── Expecta+Snapshots-dummy.m
│ │ ├── Expecta+Snapshots-prefix.pch
│ │ └── Expecta+Snapshots.xcconfig
│ │ ├── Expecta
│ │ ├── Expecta-dummy.m
│ │ ├── Expecta-prefix.pch
│ │ └── Expecta.xcconfig
│ │ ├── FBSnapshotTestCase
│ │ ├── FBSnapshotTestCase-dummy.m
│ │ ├── FBSnapshotTestCase-prefix.pch
│ │ └── FBSnapshotTestCase.xcconfig
│ │ ├── MBProgressHUD
│ │ ├── MBProgressHUD-dummy.m
│ │ ├── MBProgressHUD-prefix.pch
│ │ └── MBProgressHUD.xcconfig
│ │ ├── MWPhotoBrowser
│ │ ├── MWPhotoBrowser-dummy.m
│ │ ├── MWPhotoBrowser-prefix.pch
│ │ └── MWPhotoBrowser.xcconfig
│ │ ├── Pods-MWPhotoBrowser_Example
│ │ ├── Pods-MWPhotoBrowser_Example-acknowledgements.markdown
│ │ ├── Pods-MWPhotoBrowser_Example-acknowledgements.plist
│ │ ├── Pods-MWPhotoBrowser_Example-dummy.m
│ │ ├── Pods-MWPhotoBrowser_Example-frameworks.sh
│ │ ├── Pods-MWPhotoBrowser_Example-resources.sh
│ │ ├── Pods-MWPhotoBrowser_Example.debug.xcconfig
│ │ └── Pods-MWPhotoBrowser_Example.release.xcconfig
│ │ ├── Pods-MWPhotoBrowser_Tests
│ │ ├── Pods-MWPhotoBrowser_Tests-acknowledgements.markdown
│ │ ├── Pods-MWPhotoBrowser_Tests-acknowledgements.plist
│ │ ├── Pods-MWPhotoBrowser_Tests-dummy.m
│ │ ├── Pods-MWPhotoBrowser_Tests-frameworks.sh
│ │ ├── Pods-MWPhotoBrowser_Tests-resources.sh
│ │ ├── Pods-MWPhotoBrowser_Tests.debug.xcconfig
│ │ └── Pods-MWPhotoBrowser_Tests.release.xcconfig
│ │ ├── SDWebImage
│ │ ├── SDWebImage-dummy.m
│ │ ├── SDWebImage-prefix.pch
│ │ └── SDWebImage.xcconfig
│ │ └── Specta
│ │ ├── Specta-dummy.m
│ │ ├── Specta-prefix.pch
│ │ └── Specta.xcconfig
└── Tests
│ ├── Tests-Info.plist
│ ├── Tests-Prefix.pch
│ ├── Tests.m
│ └── en.lproj
│ └── InfoPlist.strings
├── LICENSE
├── MWPhotoBrowser.podspec
├── Pod
├── Assets
│ ├── .gitkeep
│ ├── ImageError.png
│ ├── ImageError@2x.png
│ ├── ImageError@3x.png
│ ├── ImageSelectedOff.png
│ ├── ImageSelectedOff@2x.png
│ ├── ImageSelectedOff@3x.png
│ ├── ImageSelectedOn.png
│ ├── ImageSelectedOn@2x.png
│ ├── ImageSelectedOn@3x.png
│ ├── ImageSelectedSmallOff.png
│ ├── ImageSelectedSmallOff@2x.png
│ ├── ImageSelectedSmallOff@3x.png
│ ├── ImageSelectedSmallOn.png
│ ├── ImageSelectedSmallOn@2x.png
│ ├── ImageSelectedSmallOn@3x.png
│ ├── PlayButtonOverlayLarge.png
│ ├── PlayButtonOverlayLarge@2x.png
│ ├── PlayButtonOverlayLarge@3x.png
│ ├── PlayButtonOverlayLargeTap.png
│ ├── PlayButtonOverlayLargeTap@2x.png
│ ├── PlayButtonOverlayLargeTap@3x.png
│ ├── UIBarButtonItemArrowLeft.png
│ ├── UIBarButtonItemArrowLeft@2x.png
│ ├── UIBarButtonItemArrowLeft@3x.png
│ ├── UIBarButtonItemArrowRight.png
│ ├── UIBarButtonItemArrowRight@2x.png
│ ├── UIBarButtonItemArrowRight@3x.png
│ ├── UIBarButtonItemGrid.png
│ ├── UIBarButtonItemGrid@2x.png
│ ├── UIBarButtonItemGrid@3x.png
│ ├── VideoOverlay.png
│ ├── VideoOverlay@2x.png
│ └── VideoOverlay@3x.png
└── Classes
│ ├── .gitkeep
│ ├── MWCaptionView.h
│ ├── MWCaptionView.m
│ ├── MWCommon.h
│ ├── MWGridCell.h
│ ├── MWGridCell.m
│ ├── MWGridViewController.h
│ ├── MWGridViewController.m
│ ├── MWPhoto.h
│ ├── MWPhoto.m
│ ├── MWPhotoBrowser.h
│ ├── MWPhotoBrowser.m
│ ├── MWPhotoBrowserPrivate.h
│ ├── MWPhotoProtocol.h
│ ├── MWTapDetectingImageView.h
│ ├── MWTapDetectingImageView.m
│ ├── MWTapDetectingView.h
│ ├── MWTapDetectingView.m
│ ├── MWZoomingScrollView.h
│ ├── MWZoomingScrollView.m
│ ├── UIImage+MWPhotoBrowser.h
│ └── UIImage+MWPhotoBrowser.m
├── README.md
├── Screenshots
├── MWPhotoBrowser1.png
├── MWPhotoBrowser1t.png
├── MWPhotoBrowser2.png
├── MWPhotoBrowser2t.png
├── MWPhotoBrowser3.png
├── MWPhotoBrowser3t.png
├── MWPhotoBrowser4.png
├── MWPhotoBrowser4t.png
├── MWPhotoBrowser5.png
├── MWPhotoBrowser5t.png
├── MWPhotoBrowser6.png
└── MWPhotoBrowser6t.png
└── _Pods.xcodeproj
/.gitignore:
--------------------------------------------------------------------------------
1 | # OS X
2 | .DS_Store
3 |
4 | # Xcode
5 | build/
6 | *.pbxuser
7 | !default.pbxuser
8 | *.mode1v3
9 | !default.mode1v3
10 | *.mode2v3
11 | !default.mode2v3
12 | *.perspectivev3
13 | !default.perspectivev3
14 | xcuserdata
15 | *.xccheckout
16 | profile
17 | *.moved-aside
18 | DerivedData
19 | *.hmap
20 | *.ipa
21 |
22 | # Bundler
23 | .bundle
24 |
25 | Carthage
26 | # We recommend against adding the Pods directory to your .gitignore. However
27 | # you should judge for yourself, the pros and cons are mentioned at:
28 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
29 | #
30 | # Note: if you ignore the Pods directory, make sure to uncomment
31 | # `pod install` in .travis.yml
32 | #
33 | # Pods/
34 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | # references:
2 | # * http://www.objc.io/issue-6/travis-ci.html
3 | # * https://github.com/supermarin/xcpretty#usage
4 |
5 | language: objective-c
6 | # cache: cocoapods
7 | # podfile: Example/Podfile
8 | # before_install:
9 | # - gem install cocoapods # Since Travis is not always on latest version
10 | # - pod install --project-directory=Example
11 | install:
12 | - gem install xcpretty --no-rdoc --no-ri --no-document --quiet
13 | script:
14 | - set -o pipefail && xcodebuild test -workspace Example/MWPhotoBrowser.xcworkspace -scheme MWPhotoBrowser-Example -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO | xcpretty -c
15 | - pod lib lint --quick
16 |
--------------------------------------------------------------------------------
/Assets/ImageError.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/ImageError.psd
--------------------------------------------------------------------------------
/Assets/ImageError@2x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/ImageError@2x.psd
--------------------------------------------------------------------------------
/Assets/ImageError@3x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/ImageError@3x.psd
--------------------------------------------------------------------------------
/Assets/ImageSelected.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/ImageSelected.psd
--------------------------------------------------------------------------------
/Assets/ImageSelected@2x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/ImageSelected@2x.psd
--------------------------------------------------------------------------------
/Assets/ImageSelected@3x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/ImageSelected@3x.psd
--------------------------------------------------------------------------------
/Assets/ImageSelectedSmallOff.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/ImageSelectedSmallOff.psd
--------------------------------------------------------------------------------
/Assets/ImageSelectedSmallOff@2x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/ImageSelectedSmallOff@2x.psd
--------------------------------------------------------------------------------
/Assets/ImageSelectedSmallOff@3x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/ImageSelectedSmallOff@3x.psd
--------------------------------------------------------------------------------
/Assets/ImageSelectedSmallOn.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/ImageSelectedSmallOn.psd
--------------------------------------------------------------------------------
/Assets/ImageSelectedSmallOn@2x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/ImageSelectedSmallOn@2x.psd
--------------------------------------------------------------------------------
/Assets/ImageSelectedSmallOn@3x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/ImageSelectedSmallOn@3x.psd
--------------------------------------------------------------------------------
/Assets/PlayButtonOverlayLarge.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/PlayButtonOverlayLarge.psd
--------------------------------------------------------------------------------
/Assets/PlayButtonOverlayLarge@2x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/PlayButtonOverlayLarge@2x.psd
--------------------------------------------------------------------------------
/Assets/PlayButtonOverlayLarge@3x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/PlayButtonOverlayLarge@3x.psd
--------------------------------------------------------------------------------
/Assets/PlayButtonOverlayLargeTap.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/PlayButtonOverlayLargeTap.psd
--------------------------------------------------------------------------------
/Assets/PlayButtonOverlayLargeTap@2x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/PlayButtonOverlayLargeTap@2x.psd
--------------------------------------------------------------------------------
/Assets/PlayButtonOverlayLargeTap@3x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/PlayButtonOverlayLargeTap@3x.psd
--------------------------------------------------------------------------------
/Assets/UIBarButtonItemArrow.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/UIBarButtonItemArrow.psd
--------------------------------------------------------------------------------
/Assets/UIBarButtonItemArrow@2x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/UIBarButtonItemArrow@2x.psd
--------------------------------------------------------------------------------
/Assets/UIBarButtonItemArrow@3x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/UIBarButtonItemArrow@3x.psd
--------------------------------------------------------------------------------
/Assets/UIBarButtonItemGrid.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/UIBarButtonItemGrid.psd
--------------------------------------------------------------------------------
/Assets/UIBarButtonItemGrid@2x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/UIBarButtonItemGrid@2x.psd
--------------------------------------------------------------------------------
/Assets/UIBarButtonItemGrid@3x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/UIBarButtonItemGrid@3x.psd
--------------------------------------------------------------------------------
/Assets/VideoOverlay.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/VideoOverlay.psd
--------------------------------------------------------------------------------
/Assets/VideoOverlay@2x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/VideoOverlay@2x.psd
--------------------------------------------------------------------------------
/Assets/VideoOverlay@3x.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Assets/VideoOverlay@3x.psd
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // PhotoBrowserDemo
4 | //
5 | // Created by Michael Waterfall on 31/12/2011.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | //@property (strong, nonatomic) UIViewController *viewController;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "ipad",
35 | "size" : "29x29",
36 | "scale" : "1x"
37 | },
38 | {
39 | "idiom" : "ipad",
40 | "size" : "29x29",
41 | "scale" : "2x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "40x40",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "40x40",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "76x76",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "76x76",
61 | "scale" : "2x"
62 | },
63 | {
64 | "idiom" : "ipad",
65 | "size" : "83.5x83.5",
66 | "scale" : "2x"
67 | }
68 | ],
69 | "info" : {
70 | "version" : 1,
71 | "author" : "xcode"
72 | }
73 | }
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Images.xcassets/ImageSelected.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "ImageSelectedOn.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "ImageSelectedOn@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "ImageSelectedOn@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Images.xcassets/ImageSelected.imageset/ImageSelectedOn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Images.xcassets/ImageSelected.imageset/ImageSelectedOn.png
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Images.xcassets/ImageSelected.imageset/ImageSelectedOn@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Images.xcassets/ImageSelected.imageset/ImageSelectedOn@2x.png
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Images.xcassets/ImageSelected.imageset/ImageSelectedOn@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Images.xcassets/ImageSelected.imageset/ImageSelectedOn@3x.png
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Images.xcassets/ImageSelectedSmall.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "ImageSelectedSmallOn.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "ImageSelectedSmallOn@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "ImageSelectedSmallOn@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Images.xcassets/ImageSelectedSmall.imageset/ImageSelectedSmallOn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Images.xcassets/ImageSelectedSmall.imageset/ImageSelectedSmallOn.png
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Images.xcassets/ImageSelectedSmall.imageset/ImageSelectedSmallOn@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Images.xcassets/ImageSelectedSmall.imageset/ImageSelectedSmallOn@2x.png
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Images.xcassets/ImageSelectedSmall.imageset/ImageSelectedSmallOn@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Images.xcassets/ImageSelectedSmall.imageset/ImageSelectedSmallOn@3x.png
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Images.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "orientation" : "portrait",
5 | "idiom" : "iphone",
6 | "extent" : "full-screen",
7 | "minimum-system-version" : "7.0",
8 | "scale" : "2x"
9 | },
10 | {
11 | "orientation" : "portrait",
12 | "idiom" : "iphone",
13 | "subtype" : "retina4",
14 | "extent" : "full-screen",
15 | "minimum-system-version" : "7.0",
16 | "scale" : "2x"
17 | },
18 | {
19 | "orientation" : "portrait",
20 | "idiom" : "ipad",
21 | "extent" : "full-screen",
22 | "minimum-system-version" : "7.0",
23 | "scale" : "1x"
24 | },
25 | {
26 | "orientation" : "landscape",
27 | "idiom" : "ipad",
28 | "extent" : "full-screen",
29 | "minimum-system-version" : "7.0",
30 | "scale" : "1x"
31 | },
32 | {
33 | "orientation" : "portrait",
34 | "idiom" : "ipad",
35 | "extent" : "full-screen",
36 | "minimum-system-version" : "7.0",
37 | "scale" : "2x"
38 | },
39 | {
40 | "orientation" : "landscape",
41 | "idiom" : "ipad",
42 | "extent" : "full-screen",
43 | "minimum-system-version" : "7.0",
44 | "scale" : "2x"
45 | }
46 | ],
47 | "info" : {
48 | "version" : 1,
49 | "author" : "xcode"
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/photo1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/photo1.jpg
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/photo1t.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/photo1t.jpg
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/photo2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/photo2.jpg
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/photo2t.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/photo2t.jpg
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/photo3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/photo3.jpg
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/photo3t.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/photo3t.jpg
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/photo4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/photo4.jpg
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/photo4t.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/photo4t.jpg
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/photo5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/photo5.jpg
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/photo5t.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/photo5t.jpg
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/photo6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/photo6.jpg
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/photo6t.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/photo6t.jpg
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/photo7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/photo7.jpg
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/photo7t.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/photo7t.jpg
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/photo8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/photo8.jpg
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/photo8t.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/photo8t.jpg
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/video.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/video.mp4
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Local Media/video_thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Example/MWPhotoBrowser/Local Media/video_thumb.jpg
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/MWPhotoBrowser-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | ${PRODUCT_NAME}
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1.0
25 | LSRequiresIPhoneOS
26 |
27 | UILaunchStoryboardName
28 | Main
29 | UIMainStoryboardFile
30 | Main
31 | UIRequiredDeviceCapabilities
32 |
33 | armv7
34 |
35 | UIStatusBarHidden
36 |
37 | UISupportedInterfaceOrientations
38 |
39 | UIInterfaceOrientationPortrait
40 | UIInterfaceOrientationLandscapeLeft
41 | UIInterfaceOrientationLandscapeRight
42 |
43 | UISupportedInterfaceOrientations~ipad
44 |
45 | UIInterfaceOrientationPortrait
46 | UIInterfaceOrientationPortraitUpsideDown
47 | UIInterfaceOrientationLandscapeLeft
48 | UIInterfaceOrientationLandscapeRight
49 |
50 | UIViewControllerBasedStatusBarAppearance
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/MWPhotoBrowser-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header
3 | //
4 | // The contents of this file are implicitly included at the beginning of every source file.
5 | //
6 |
7 | #import
8 |
9 | #ifndef __IPHONE_5_0
10 | #warning "This project uses features only available in iOS SDK 5.0 and later."
11 | #endif
12 |
13 | #ifdef __OBJC__
14 | @import UIKit;
15 | @import Foundation;
16 | #endif
17 |
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/Menu.h:
--------------------------------------------------------------------------------
1 | //
2 | // Menu.h
3 | // MWPhotoBrowser
4 | //
5 | // Created by Michael Waterfall on 21/10/2010.
6 | // Copyright 2010 d3i. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "MWPhotoBrowser.h"
11 | #import
12 |
13 | @interface Menu : UITableViewController {
14 | UISegmentedControl *_segmentedControl;
15 | NSMutableArray *_selections;
16 | }
17 |
18 | @property (nonatomic, strong) NSMutableArray *photos;
19 | @property (nonatomic, strong) NSMutableArray *thumbs;
20 | @property (nonatomic, strong) NSMutableArray *assets;
21 |
22 | @property (nonatomic, strong) ALAssetsLibrary *ALAssetsLibrary;
23 |
24 | - (void)loadAssets;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Example/MWPhotoBrowser/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // MWPhotoBrowser
4 | //
5 | // Created by Michael Waterfall on 07/04/2015.
6 | // Copyright (c) 2015 Michael Waterfall. All rights reserved.
7 | //
8 |
9 | @import UIKit;
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[])
13 | {
14 | @autoreleasepool {
15 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Example/Podfile:
--------------------------------------------------------------------------------
1 | source 'https://github.com/CocoaPods/Specs.git'
2 |
3 | target 'MWPhotoBrowser_Example', :exclusive => true do
4 | pod "MWPhotoBrowser", :path => "../"
5 | end
6 |
7 | target 'MWPhotoBrowser_Tests', :exclusive => true do
8 | pod "MWPhotoBrowser", :path => "../"
9 |
10 | pod 'Specta'
11 | pod 'Expecta'
12 | pod 'FBSnapshotTestCase'
13 | pod 'Expecta+Snapshots'
14 | end
15 |
--------------------------------------------------------------------------------
/Example/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - DACircularProgress (2.3.1)
3 | - Expecta (1.0.0)
4 | - Expecta+Snapshots (1.3.4):
5 | - Expecta (~> 1.0)
6 | - FBSnapshotTestCase (~> 1.8)
7 | - FBSnapshotTestCase (1.8.1)
8 | - MBProgressHUD (0.9.2)
9 | - MWPhotoBrowser (2.1.2):
10 | - DACircularProgress (~> 2.3)
11 | - MBProgressHUD (~> 0.9)
12 | - SDWebImage (!= 3.7.2, ~> 3.7)
13 | - SDWebImage (3.7.5):
14 | - SDWebImage/Core (= 3.7.5)
15 | - SDWebImage/Core (3.7.5)
16 | - Specta (1.0.2)
17 |
18 | DEPENDENCIES:
19 | - Expecta
20 | - Expecta+Snapshots
21 | - FBSnapshotTestCase
22 | - MWPhotoBrowser (from `../`)
23 | - Specta
24 |
25 | EXTERNAL SOURCES:
26 | MWPhotoBrowser:
27 | :path: ../
28 |
29 | SPEC CHECKSUMS:
30 | DACircularProgress: 4dd437c0fc3da5161cb289e07ac449493d41db71
31 | Expecta: 32604574add2c46a36f8d2f716b6c5736eb75024
32 | Expecta+Snapshots: ca15bfb57e7a0f78f86c7699c2c54ffacfa4ad2a
33 | FBSnapshotTestCase: 3dc3899168747a0319c5278f5b3445c13a6532dd
34 | MBProgressHUD: 1569cf7ace17a8bac47aabfbb8580a49690386d1
35 | MWPhotoBrowser: 5836d7aa041dc05a13de380c246826578adc5ea5
36 | SDWebImage: 69c6303e3348fba97e03f65d65d4fbc26740f461
37 | Specta: 9cec98310dca411f7c7ffd6943552b501622abfe
38 |
39 | COCOAPODS: 0.39.0
40 |
--------------------------------------------------------------------------------
/Example/Pods/DACircularProgress/DACircularProgress/DACircularProgressView.h:
--------------------------------------------------------------------------------
1 | //
2 | // DACircularProgressView.h
3 | // DACircularProgress
4 | //
5 | // Created by Daniel Amitay on 2/6/12.
6 | // Copyright (c) 2012 Daniel Amitay. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DACircularProgressView : UIView
12 |
13 | @property(nonatomic, strong) UIColor *trackTintColor UI_APPEARANCE_SELECTOR;
14 | @property(nonatomic, strong) UIColor *progressTintColor UI_APPEARANCE_SELECTOR;
15 | @property(nonatomic, strong) UIColor *innerTintColor UI_APPEARANCE_SELECTOR;
16 | @property(nonatomic) NSInteger roundedCorners UI_APPEARANCE_SELECTOR; // Can not use BOOL with UI_APPEARANCE_SELECTOR :-(
17 | @property(nonatomic) CGFloat thicknessRatio UI_APPEARANCE_SELECTOR;
18 | @property(nonatomic) NSInteger clockwiseProgress UI_APPEARANCE_SELECTOR; // Can not use BOOL with UI_APPEARANCE_SELECTOR :-(
19 | @property(nonatomic) CGFloat progress;
20 |
21 | @property(nonatomic) CGFloat indeterminateDuration UI_APPEARANCE_SELECTOR;
22 | @property(nonatomic) NSInteger indeterminate UI_APPEARANCE_SELECTOR; // Can not use BOOL with UI_APPEARANCE_SELECTOR :-(
23 |
24 | - (void)setProgress:(CGFloat)progress animated:(BOOL)animated;
25 | - (void)setProgress:(CGFloat)progress animated:(BOOL)animated initialDelay:(CFTimeInterval)initialDelay;
26 | - (void)setProgress:(CGFloat)progress animated:(BOOL)animated initialDelay:(CFTimeInterval)initialDelay withDuration:(CFTimeInterval)duration;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Example/Pods/DACircularProgress/DACircularProgress/DALabeledCircularProgressView.h:
--------------------------------------------------------------------------------
1 | //
2 | // DALabeledCircularProgressView.h
3 | // DACircularProgressExample
4 | //
5 | // Created by Josh Sklar on 4/8/14.
6 | // Copyright (c) 2014 Shout Messenger. All rights reserved.
7 | //
8 |
9 | #import "DACircularProgressView.h"
10 |
11 | /**
12 | @class DALabeledCircularProgressView
13 |
14 | @brief Subclass of DACircularProgressView that adds a UILabel.
15 | */
16 | @interface DALabeledCircularProgressView : DACircularProgressView
17 |
18 | /**
19 | UILabel placed right on the DACircularProgressView.
20 | */
21 | @property (strong, nonatomic) UILabel *progressLabel;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/Example/Pods/DACircularProgress/DACircularProgress/DALabeledCircularProgressView.m:
--------------------------------------------------------------------------------
1 | //
2 | // DALabeledCircularProgressView.m
3 | // DACircularProgressExample
4 | //
5 | // Created by Josh Sklar on 4/8/14.
6 | // Copyright (c) 2014 Shout Messenger. All rights reserved.
7 | //
8 |
9 | #import "DALabeledCircularProgressView.h"
10 |
11 | @implementation DALabeledCircularProgressView
12 |
13 | - (id)initWithFrame:(CGRect)frame
14 | {
15 | self = [super initWithFrame:frame];
16 | if (self) {
17 | [self initializeLabel];
18 | }
19 | return self;
20 | }
21 |
22 | - (id)initWithCoder:(NSCoder *)aDecoder
23 | {
24 | self = [super initWithCoder:aDecoder];
25 | if (self) {
26 | [self initializeLabel];
27 | }
28 | return self;
29 | }
30 |
31 |
32 | #pragma mark - Internal methods
33 |
34 | /**
35 | Creates and initializes
36 | -[DALabeledCircularProgressView progressLabel].
37 | */
38 | - (void)initializeLabel
39 | {
40 | self.progressLabel = [[UILabel alloc] initWithFrame:self.bounds];
41 | self.progressLabel.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
42 | self.progressLabel.textAlignment = NSTextAlignmentCenter;
43 | self.progressLabel.backgroundColor = [UIColor clearColor];
44 | [self addSubview:self.progressLabel];
45 | }
46 |
47 | @end
48 |
--------------------------------------------------------------------------------
/Example/Pods/DACircularProgress/LICENSE.md:
--------------------------------------------------------------------------------
1 | # License
2 |
3 | ## MIT License
4 |
5 | Copyright (c) 2013 Daniel Amitay (http://danielamitay.com)
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy
8 | of this software and associated documentation files (the "Software"), to deal
9 | in the Software without restriction, including without limitation the rights
10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 | copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in
15 | all copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 | THE SOFTWARE.
--------------------------------------------------------------------------------
/Example/Pods/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.h:
--------------------------------------------------------------------------------
1 | //
2 | // EXPMatchers+FBSnapshotTest.h
3 | // Artsy
4 | //
5 | // Created by Daniel Doubrovkine on 1/14/14.
6 | // Copyright (c) 2014 Artsy Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface EXPExpectFBSnapshotTest : NSObject
12 | @end
13 |
14 | /// Set the default folder for image tests to run in
15 | extern void setGlobalReferenceImageDir(char *reference);
16 |
17 | EXPMatcherInterface(haveValidSnapshot, (void));
18 | EXPMatcherInterface(recordSnapshot, (void));
19 |
20 | EXPMatcherInterface(haveValidSnapshotNamed, (NSString *snapshot));
21 | EXPMatcherInterface(recordSnapshotNamed, (NSString *snapshot));
22 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta+Snapshots/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2014 Daniel Doubrovkine, Artsy Inc.
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining
6 | a copy of this software and associated documentation files (the
7 | "Software"), to deal in the Software without restriction, including
8 | without limitation the rights to use, copy, modify, merge, publish,
9 | distribute, sublicense, and/or sell copies of the Software, and to
10 | permit persons to whom the Software is furnished to do so, subject to
11 | the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be
14 | included in all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/EXPBlockDefinedMatcher.h:
--------------------------------------------------------------------------------
1 | //
2 | // EXPRuntimeMatcher.h
3 | // Expecta
4 | //
5 | // Created by Luke Redpath on 26/03/2012.
6 | // Copyright (c) 2012 Peter Jihoon Kim. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "EXPMatcher.h"
11 | #import "EXPDefines.h"
12 |
13 | @interface EXPBlockDefinedMatcher : NSObject {
14 | EXPBoolBlock prerequisiteBlock;
15 | EXPBoolBlock matchBlock;
16 | EXPStringBlock failureMessageForToBlock;
17 | EXPStringBlock failureMessageForNotToBlock;
18 | }
19 |
20 | @property(nonatomic, copy) EXPBoolBlock prerequisiteBlock;
21 | @property(nonatomic, copy) EXPBoolBlock matchBlock;
22 | @property(nonatomic, copy) EXPStringBlock failureMessageForToBlock;
23 | @property(nonatomic, copy) EXPStringBlock failureMessageForNotToBlock;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/EXPBlockDefinedMatcher.m:
--------------------------------------------------------------------------------
1 | //
2 | // EXPRuntimeMatcher.m
3 | // Expecta
4 | //
5 | // Created by Luke Redpath on 26/03/2012.
6 | // Copyright (c) 2012 Peter Jihoon Kim. All rights reserved.
7 | //
8 |
9 | #import "EXPBlockDefinedMatcher.h"
10 |
11 | @implementation EXPBlockDefinedMatcher
12 |
13 | - (void)dealloc
14 | {
15 | self.prerequisiteBlock = nil;
16 | self.matchBlock = nil;
17 | self.failureMessageForToBlock = nil;
18 | self.failureMessageForNotToBlock = nil;
19 |
20 | [super dealloc];
21 | }
22 |
23 | @synthesize prerequisiteBlock;
24 | @synthesize matchBlock;
25 | @synthesize failureMessageForToBlock;
26 | @synthesize failureMessageForNotToBlock;
27 |
28 | - (BOOL)meetsPrerequesiteFor:(id)actual
29 | {
30 | if (self.prerequisiteBlock) {
31 | return self.prerequisiteBlock();
32 | }
33 | return YES;
34 | }
35 |
36 | - (BOOL)matches:(id)actual
37 | {
38 | if (self.matchBlock) {
39 | return self.matchBlock();
40 | }
41 | return YES;
42 | }
43 |
44 | - (NSString *)failureMessageForTo:(id)actual
45 | {
46 | if (self.failureMessageForToBlock) {
47 | return self.failureMessageForToBlock();
48 | }
49 | return nil;
50 | }
51 |
52 | - (NSString *)failureMessageForNotTo:(id)actual
53 | {
54 | if (self.failureMessageForNotToBlock) {
55 | return self.failureMessageForNotToBlock();
56 | }
57 | return nil;
58 | }
59 |
60 | @end
61 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/EXPDefines.h:
--------------------------------------------------------------------------------
1 | //
2 | // EXPDefines.h
3 | // Expecta
4 | //
5 | // Created by Luke Redpath on 26/03/2012.
6 | // Copyright (c) 2012 Peter Jihoon Kim. All rights reserved.
7 | //
8 |
9 | #ifndef Expecta_EXPDefines_h
10 | #define Expecta_EXPDefines_h
11 |
12 | typedef void (^EXPBasicBlock)();
13 | typedef id (^EXPIdBlock)();
14 | typedef BOOL (^EXPBoolBlock)();
15 | typedef NSString *(^EXPStringBlock)();
16 |
17 | #endif
18 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/EXPDoubleTuple.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | @interface EXPDoubleTuple : NSObject {
4 | double *_values;
5 | size_t _size;
6 | }
7 |
8 | @property (nonatomic, assign) double *values;
9 | @property (nonatomic, assign) size_t size;
10 |
11 | - (instancetype)initWithDoubleValues:(double *)values size:(size_t)size NS_DESIGNATED_INITIALIZER;
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/EXPDoubleTuple.m:
--------------------------------------------------------------------------------
1 | #import "EXPDoubleTuple.h"
2 |
3 | @implementation EXPDoubleTuple
4 |
5 | @synthesize values = _values, size = _size;
6 |
7 | - (instancetype)initWithDoubleValues:(double *)values size:(size_t)size {
8 | if ((self = [super init])) {
9 | self.values = malloc(sizeof(double) * size);
10 | memcpy(self.values, values, sizeof(double) * size);
11 | self.size = size;
12 | }
13 | return self;
14 | }
15 |
16 | - (void)dealloc {
17 | free(self.values);
18 | [super dealloc];
19 | }
20 |
21 | - (BOOL)isEqual:(id)object {
22 | if (![object isKindOfClass:[EXPDoubleTuple class]]) return NO;
23 | EXPDoubleTuple *other = (EXPDoubleTuple *)object;
24 | if (self.size == other.size) {
25 | for (int i = 0; i < self.size; ++i) {
26 | if (self.values[i] != other.values[i]) return NO;
27 | }
28 | return YES;
29 | }
30 | return NO;
31 | }
32 |
33 | - (NSString *)description {
34 | if (self.size == 2) {
35 | return [NSString stringWithFormat:@"Double tuple: {%f, %f}", self.values[0], self.values[1]];
36 | } else if (self.size == 4) {
37 | return [NSString stringWithFormat:@"Double tuple: {%f, %f, %f, %f}", self.values[0], self.values[1], self.values[2], self.values[3]];
38 | }
39 | return [NSString stringWithFormat:@"Double tuple of unexpected size %zd, sadly", self.size];
40 | }
41 |
42 | @end
43 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/EXPExpect.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import "EXPMatcher.h"
3 | #import "EXPDefines.h"
4 |
5 | @interface EXPExpect : NSObject {
6 | EXPIdBlock _actualBlock;
7 | id _testCase;
8 | int _lineNumber;
9 | char *_fileName;
10 | BOOL _negative;
11 | BOOL _asynchronous;
12 | NSTimeInterval _timeout;
13 | }
14 |
15 | @property(nonatomic, copy) EXPIdBlock actualBlock;
16 | @property(nonatomic, readonly) id actual;
17 | @property(nonatomic, assign) id testCase;
18 | @property(nonatomic) int lineNumber;
19 | @property(nonatomic) const char *fileName;
20 | @property(nonatomic) BOOL negative;
21 | @property(nonatomic) BOOL asynchronous;
22 | @property(nonatomic) NSTimeInterval timeout;
23 |
24 | @property(nonatomic, readonly) EXPExpect *to;
25 | @property(nonatomic, readonly) EXPExpect *toNot;
26 | @property(nonatomic, readonly) EXPExpect *notTo;
27 | @property(nonatomic, readonly) EXPExpect *will;
28 | @property(nonatomic, readonly) EXPExpect *willNot;
29 | @property(nonatomic, readonly) EXPExpect *(^after)(NSTimeInterval timeInterval);
30 |
31 | - (instancetype)initWithActualBlock:(id)actualBlock testCase:(id)testCase lineNumber:(int)lineNumber fileName:(const char *)fileName NS_DESIGNATED_INITIALIZER;
32 | + (EXPExpect *)expectWithActualBlock:(id)actualBlock testCase:(id)testCase lineNumber:(int)lineNumber fileName:(const char *)fileName;
33 |
34 | - (void)applyMatcher:(id)matcher;
35 | - (void)applyMatcher:(id)matcher to:(NSObject **)actual;
36 |
37 | @end
38 |
39 | @interface EXPDynamicPredicateMatcher : NSObject {
40 | EXPExpect *_expectation;
41 | SEL _selector;
42 | }
43 | - (instancetype)initWithExpectation:(EXPExpect *)expectation selector:(SEL)selector NS_DESIGNATED_INITIALIZER;
44 | @property (nonatomic, readonly, copy) void (^dispatch)(void);
45 | @end
46 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/EXPFloatTuple.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | @interface EXPFloatTuple : NSObject {
4 | float *_values;
5 | size_t _size;
6 | }
7 |
8 | @property (nonatomic, assign) float *values;
9 | @property (nonatomic, assign) size_t size;
10 |
11 | - (instancetype)initWithFloatValues:(float *)values size:(size_t)size NS_DESIGNATED_INITIALIZER;
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/EXPFloatTuple.m:
--------------------------------------------------------------------------------
1 | #import "EXPFloatTuple.h"
2 |
3 | @implementation EXPFloatTuple
4 |
5 | @synthesize values = _values, size = _size;
6 |
7 | - (instancetype)initWithFloatValues:(float *)values size:(size_t)size {
8 | if ((self = [super init])) {
9 | self.values = malloc(sizeof(float) * size);
10 | memcpy(self.values, values, sizeof(float) * size);
11 | self.size = size;
12 | }
13 | return self;
14 | }
15 |
16 | - (void)dealloc {
17 | free(self.values);
18 | [super dealloc];
19 | }
20 |
21 | - (BOOL)isEqual:(id)object {
22 | if (![object isKindOfClass:[EXPFloatTuple class]]) return NO;
23 | EXPFloatTuple *other = (EXPFloatTuple *)object;
24 | if (self.size == other.size) {
25 | for (int i = 0; i < self.size; ++i) {
26 | if (self.values[i] != other.values[i]) return NO;
27 | }
28 | return YES;
29 | }
30 | return NO;
31 | }
32 |
33 | - (NSUInteger)hash
34 | {
35 | NSUInteger prime = 31;
36 | NSUInteger hash = 0;
37 | for (int i=0; i
10 |
11 | @protocol EXPMatcher
12 |
13 | - (BOOL)matches:(id)actual;
14 |
15 | @optional
16 | - (BOOL)meetsPrerequesiteFor:(id)actual;
17 | - (NSString *)failureMessageForTo:(id)actual;
18 | - (NSString *)failureMessageForNotTo:(id)actual;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/EXPUnsupportedObject.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | @interface EXPUnsupportedObject : NSObject {
4 | NSString *_type;
5 | }
6 |
7 | @property (nonatomic, retain) NSString *type;
8 |
9 | - (instancetype)initWithType:(NSString *)type NS_DESIGNATED_INITIALIZER;
10 |
11 | @end
12 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/EXPUnsupportedObject.m:
--------------------------------------------------------------------------------
1 | #import "EXPUnsupportedObject.h"
2 |
3 | @implementation EXPUnsupportedObject
4 |
5 | @synthesize type=_type;
6 |
7 | - (instancetype)initWithType:(NSString *)type {
8 | self = [super init];
9 | if(self) {
10 | self.type = type;
11 | }
12 | return self;
13 | }
14 |
15 | - (void)dealloc {
16 | self.type = nil;
17 | [super dealloc];
18 | }
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Expecta.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | //! Project version number for Expecta.
4 | FOUNDATION_EXPORT double ExpectaVersionNumber;
5 |
6 | //! Project version string for Expecta.
7 | FOUNDATION_EXPORT const unsigned char ExpectaVersionString[];
8 |
9 | #import
10 | #import
11 | #import
12 |
13 | // Enable shorthand by default
14 | #define expect(...) EXP_expect((__VA_ARGS__))
15 | #define failure(...) EXP_failure((__VA_ARGS__))
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/ExpectaObject.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #define EXPObjectify(value) _EXPObjectify(@encode(__typeof__((value))), (value))
4 | #define EXP_expect(actual) _EXP_expect(self, __LINE__, __FILE__, ^id{ return EXPObjectify((actual)); })
5 | #define EXPMatcherInterface(matcherName, matcherArguments) _EXPMatcherInterface(matcherName, matcherArguments)
6 | #define EXPMatcherImplementationBegin(matcherName, matcherArguments) _EXPMatcherImplementationBegin(matcherName, matcherArguments)
7 | #define EXPMatcherImplementationEnd _EXPMatcherImplementationEnd
8 | #define EXPMatcherAliasImplementation(newMatcherName, oldMatcherName, matcherArguments) _EXPMatcherAliasImplementation(newMatcherName, oldMatcherName, matcherArguments)
9 |
10 | #define EXP_failure(message) EXPFail(self, __LINE__, __FILE__, message)
11 |
12 |
13 | @interface Expecta : NSObject
14 |
15 | + (NSTimeInterval)asynchronousTestTimeout;
16 | + (void)setAsynchronousTestTimeout:(NSTimeInterval)timeout;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/ExpectaObject.m:
--------------------------------------------------------------------------------
1 | #import "ExpectaObject.h"
2 |
3 | @implementation Expecta
4 |
5 | static NSTimeInterval _asynchronousTestTimeout = 1.0;
6 |
7 | + (NSTimeInterval)asynchronousTestTimeout {
8 | return _asynchronousTestTimeout;
9 | }
10 |
11 | + (void)setAsynchronousTestTimeout:(NSTimeInterval)timeout {
12 | _asynchronousTestTimeout = timeout;
13 | }
14 |
15 | @end
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatcherHelpers.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | BOOL EXPIsValuePointer(NSValue *value);
4 | BOOL EXPIsNumberFloat(NSNumber *number);
5 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatcherHelpers.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatcherHelpers.h"
2 |
3 | BOOL EXPIsValuePointer(NSValue *value) {
4 | return [value objCType][0] == @encode(void *)[0];
5 | }
6 |
7 | BOOL EXPIsNumberFloat(NSNumber *number) {
8 | return strcmp([number objCType], @encode(float)) == 0;
9 | }
10 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beCloseTo.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(_beCloseToWithin, (id expected, id within));
4 | EXPMatcherInterface(beCloseToWithin, (id expected, id within));
5 |
6 | #define beCloseTo(expected) _beCloseToWithin(EXPObjectify((expected)), nil)
7 | #define beCloseToWithin(expected, range) _beCloseToWithin(EXPObjectify((expected)), EXPObjectify((range)))
8 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beCloseTo.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+beCloseTo.h"
2 | #import "EXPMatcherHelpers.h"
3 |
4 | EXPMatcherImplementationBegin(_beCloseToWithin, (id expected, id within)) {
5 | prerequisite(^BOOL{
6 | return [actual isKindOfClass:[NSNumber class]] &&
7 | [expected isKindOfClass:[NSNumber class]] &&
8 | ([within isKindOfClass:[NSNumber class]] || (within == nil));
9 | });
10 |
11 | match(^BOOL{
12 | double actualValue = [actual doubleValue];
13 | double expectedValue = [expected doubleValue];
14 |
15 | if (within != nil) {
16 | double withinValue = [within doubleValue];
17 | double lowerBound = expectedValue - withinValue;
18 | double upperBound = expectedValue + withinValue;
19 | return (actualValue >= lowerBound) && (actualValue <= upperBound);
20 | } else {
21 | double diff = fabs(actualValue - expectedValue);
22 | actualValue = fabs(actualValue);
23 | expectedValue = fabs(expectedValue);
24 | double largest = (expectedValue > actualValue) ? expectedValue : actualValue;
25 | return (diff <= largest * FLT_EPSILON);
26 | }
27 | });
28 |
29 | failureMessageForTo(^NSString *{
30 | if (within) {
31 | return [NSString stringWithFormat:@"expected %@ to be close to %@ within %@",
32 | EXPDescribeObject(actual), EXPDescribeObject(expected), EXPDescribeObject(within)];
33 | } else {
34 | return [NSString stringWithFormat:@"expected %@ to be close to %@",
35 | EXPDescribeObject(actual), EXPDescribeObject(expected)];
36 | }
37 | });
38 |
39 | failureMessageForNotTo(^NSString *{
40 | if (within) {
41 | return [NSString stringWithFormat:@"expected %@ not to be close to %@ within %@",
42 | EXPDescribeObject(actual), EXPDescribeObject(expected), EXPDescribeObject(within)];
43 | } else {
44 | return [NSString stringWithFormat:@"expected %@ not to be close to %@",
45 | EXPDescribeObject(actual), EXPDescribeObject(expected)];
46 | }
47 | });
48 | }
49 | EXPMatcherImplementationEnd
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beFalsy.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(beFalsy, (void));
4 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beFalsy.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+beFalsy.h"
2 | #import "EXPMatcherHelpers.h"
3 |
4 | EXPMatcherImplementationBegin(beFalsy, (void)) {
5 | match(^BOOL{
6 | if([actual isKindOfClass:[NSNumber class]]) {
7 | return ![(NSNumber *)actual boolValue];
8 | } else if([actual isKindOfClass:[NSValue class]]) {
9 | if(EXPIsValuePointer((NSValue *)actual)) {
10 | return ![(NSValue *)actual pointerValue];
11 | }
12 | }
13 | return !actual;
14 | });
15 |
16 | failureMessageForTo(^NSString *{
17 | return [NSString stringWithFormat:@"expected: a falsy value, got: %@, which is truthy", EXPDescribeObject(actual)];
18 | });
19 |
20 | failureMessageForNotTo(^NSString *{
21 | return [NSString stringWithFormat:@"expected: a non-falsy value, got: %@, which is falsy", EXPDescribeObject(actual)];
22 | });
23 | }
24 | EXPMatcherImplementationEnd
25 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beGreaterThan.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(_beGreaterThan, (id expected));
4 | EXPMatcherInterface(beGreaterThan, (id expected));
5 |
6 | #define beGreaterThan(expected) _beGreaterThan(EXPObjectify((expected)))
7 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beGreaterThan.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+beGreaterThan.h"
2 | #import "EXPMatcherHelpers.h"
3 |
4 | EXPMatcherImplementationBegin(_beGreaterThan, (id expected)) {
5 | match(^BOOL{
6 | if ([actual respondsToSelector:@selector(compare:)]) {
7 | return [actual compare:expected] == NSOrderedDescending;
8 | }
9 | return NO;
10 | });
11 |
12 | failureMessageForTo(^NSString *{
13 | return [NSString stringWithFormat:@"expected: %@ to be greater than %@", EXPDescribeObject(actual), EXPDescribeObject(expected)];
14 | });
15 |
16 | failureMessageForNotTo(^NSString *{
17 | return [NSString stringWithFormat:@"expected: %@ not to be greater than %@", EXPDescribeObject(actual), EXPDescribeObject(expected)];
18 | });
19 | }
20 | EXPMatcherImplementationEnd
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(_beGreaterThanOrEqualTo, (id expected));
4 | EXPMatcherInterface(beGreaterThanOrEqualTo, (id expected));
5 |
6 | #define beGreaterThanOrEqualTo(expected) _beGreaterThanOrEqualTo(EXPObjectify((expected)))
7 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+beGreaterThanOrEqualTo.h"
2 | #import "EXPMatcherHelpers.h"
3 |
4 | EXPMatcherImplementationBegin(_beGreaterThanOrEqualTo, (id expected)) {
5 | match(^BOOL{
6 | if ([actual respondsToSelector:@selector(compare:)]) {
7 | return [actual compare:expected] != NSOrderedAscending;
8 | }
9 | return NO;
10 | });
11 |
12 | failureMessageForTo(^NSString *{
13 | return [NSString stringWithFormat:@"expected: %@ to be greater than or equal to %@", EXPDescribeObject(actual), EXPDescribeObject(expected)];
14 | });
15 |
16 | failureMessageForNotTo(^NSString *{
17 | return [NSString stringWithFormat:@"expected: %@ not to be greater than or equal to %@", EXPDescribeObject(actual), EXPDescribeObject(expected)];
18 | });
19 | }
20 | EXPMatcherImplementationEnd
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beIdenticalTo.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(_beIdenticalTo, (void *expected));
4 | EXPMatcherInterface(beIdenticalTo, (void *expected)); // to aid code completion
5 |
6 | #if __has_feature(objc_arc)
7 | #define beIdenticalTo(expected) _beIdenticalTo((__bridge void*)expected)
8 | #else
9 | #define beIdenticalTo(expected) _beIdenticalTo(expected)
10 | #endif
11 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beIdenticalTo.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+equal.h"
2 | #import "EXPMatcherHelpers.h"
3 |
4 | EXPMatcherImplementationBegin(_beIdenticalTo, (void *expected)) {
5 | match(^BOOL{
6 | if(actual == expected) {
7 | return YES;
8 | } else if([actual isKindOfClass:[NSValue class]] && EXPIsValuePointer((NSValue *)actual)) {
9 | if([(NSValue *)actual pointerValue] == expected) {
10 | return YES;
11 | }
12 | }
13 | return NO;
14 | });
15 |
16 | failureMessageForTo(^NSString *{
17 | return [NSString stringWithFormat:@"expected: <%p>, got: <%p>", expected, actual];
18 | });
19 |
20 | failureMessageForNotTo(^NSString *{
21 | return [NSString stringWithFormat:@"expected: not <%p>, got: <%p>", expected, actual];
22 | });
23 | }
24 | EXPMatcherImplementationEnd
25 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beInTheRangeOf.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(_beInTheRangeOf, (id expectedLowerBound, id expectedUpperBound));
4 | EXPMatcherInterface(beInTheRangeOf, (id expectedLowerBound, id expectedUpperBound));
5 |
6 | #define beInTheRangeOf(expectedLowerBound, expectedUpperBound) _beInTheRangeOf(EXPObjectify((expectedLowerBound)), EXPObjectify((expectedUpperBound)))
7 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beInTheRangeOf.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+beInTheRangeOf.h"
2 | #import "EXPMatcherHelpers.h"
3 |
4 | EXPMatcherImplementationBegin(_beInTheRangeOf, (id expectedLowerBound, id expectedUpperBound)) {
5 | match(^BOOL{
6 | if ([actual respondsToSelector:@selector(compare:)]) {
7 | NSComparisonResult compareLowerBound = [expectedLowerBound compare: actual];
8 | NSComparisonResult compareUpperBound = [expectedUpperBound compare: actual];
9 | if (compareLowerBound == NSOrderedSame) {
10 | return YES;
11 | }
12 | if (compareUpperBound == NSOrderedSame) {
13 | return YES;
14 | }
15 | if ((compareLowerBound == NSOrderedAscending) && (compareUpperBound == NSOrderedDescending)) {
16 | return YES;
17 | }
18 | }
19 | return NO;
20 | });
21 |
22 | failureMessageForTo(^NSString *{
23 | return [NSString stringWithFormat:@"expected: %@ to be in the range [%@, %@] (inclusive)", EXPDescribeObject(actual), EXPDescribeObject(expectedLowerBound), EXPDescribeObject(expectedUpperBound)];
24 | });
25 |
26 | failureMessageForNotTo(^NSString *{
27 | return [NSString stringWithFormat:@"expected: %@ not to be in the range [%@, %@] (inclusive)", EXPDescribeObject(actual), EXPDescribeObject(expectedLowerBound), EXPDescribeObject(expectedUpperBound)];
28 | });
29 | }
30 | EXPMatcherImplementationEnd
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beInstanceOf.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(beInstanceOf, (Class expected));
4 | EXPMatcherInterface(beAnInstanceOf, (Class expected));
5 | EXPMatcherInterface(beMemberOf, (Class expected));
6 | EXPMatcherInterface(beAMemberOf, (Class expected));
7 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beInstanceOf.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+beInstanceOf.h"
2 |
3 | EXPMatcherImplementationBegin(beInstanceOf, (Class expected)) {
4 | BOOL actualIsNil = (actual == nil);
5 | BOOL expectedIsNil = (expected == nil);
6 |
7 | prerequisite(^BOOL{
8 | return !(actualIsNil || expectedIsNil);
9 | });
10 |
11 | match(^BOOL{
12 | return [actual isMemberOfClass:expected];
13 | });
14 |
15 | failureMessageForTo(^NSString *{
16 | if(actualIsNil) return @"the actual value is nil/null";
17 | if(expectedIsNil) return @"the expected value is nil/null";
18 | return [NSString stringWithFormat:@"expected: an instance of %@, got: an instance of %@", [expected class], [actual class]];
19 | });
20 |
21 | failureMessageForNotTo(^NSString *{
22 | if(actualIsNil) return @"the actual value is nil/null";
23 | if(expectedIsNil) return @"the expected value is nil/null";
24 | return [NSString stringWithFormat:@"expected: not an instance of %@, got: an instance of %@", [expected class], [actual class]];
25 | });
26 | }
27 | EXPMatcherImplementationEnd
28 |
29 | EXPMatcherAliasImplementation(beAnInstanceOf, beInstanceOf, (Class expected));
30 | EXPMatcherAliasImplementation(beMemberOf, beInstanceOf, (Class expected));
31 | EXPMatcherAliasImplementation(beAMemberOf, beInstanceOf, (Class expected));
32 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beKindOf.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(beKindOf, (Class expected));
4 | EXPMatcherInterface(beAKindOf, (Class expected));
5 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beKindOf.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+beKindOf.h"
2 |
3 | EXPMatcherImplementationBegin(beKindOf, (Class expected)) {
4 | BOOL actualIsNil = (actual == nil);
5 | BOOL expectedIsNil = (expected == nil);
6 |
7 | prerequisite(^BOOL{
8 | return !(actualIsNil || expectedIsNil);
9 | });
10 |
11 | match(^BOOL{
12 | return [actual isKindOfClass:expected];
13 | });
14 |
15 | failureMessageForTo(^NSString *{
16 | if(actualIsNil) return @"the actual value is nil/null";
17 | if(expectedIsNil) return @"the expected value is nil/null";
18 | return [NSString stringWithFormat:@"expected: a kind of %@, got: an instance of %@, which is not a kind of %@", [expected class], [actual class], [expected class]];
19 | });
20 |
21 | failureMessageForNotTo(^NSString *{
22 | if(actualIsNil) return @"the actual value is nil/null";
23 | if(expectedIsNil) return @"the expected value is nil/null";
24 | return [NSString stringWithFormat:@"expected: not a kind of %@, got: an instance of %@, which is a kind of %@", [expected class], [actual class], [expected class]];
25 | });
26 | }
27 | EXPMatcherImplementationEnd
28 |
29 | EXPMatcherAliasImplementation(beAKindOf, beKindOf, (Class expected));
30 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beLessThan.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(_beLessThan, (id expected));
4 | EXPMatcherInterface(beLessThan, (id expected));
5 |
6 | #define beLessThan(expected) _beLessThan(EXPObjectify((expected)))
7 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beLessThan.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+beLessThan.h"
2 | #import "EXPMatcherHelpers.h"
3 |
4 | EXPMatcherImplementationBegin(_beLessThan, (id expected)) {
5 | match(^BOOL{
6 | if ([actual respondsToSelector:@selector(compare:)]) {
7 | return [actual compare:expected] == NSOrderedAscending;
8 | }
9 | return NO;
10 | });
11 |
12 | failureMessageForTo(^NSString *{
13 | return [NSString stringWithFormat:@"expected: %@ to be less than %@", EXPDescribeObject(actual), EXPDescribeObject(expected)];
14 | });
15 |
16 | failureMessageForNotTo(^NSString *{
17 | return [NSString stringWithFormat:@"expected: %@ not to be less than %@", EXPDescribeObject(actual), EXPDescribeObject(expected)];
18 | });
19 | }
20 | EXPMatcherImplementationEnd
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(_beLessThanOrEqualTo, (id expected));
4 | EXPMatcherInterface(beLessThanOrEqualTo, (id expected));
5 |
6 | #define beLessThanOrEqualTo(expected) _beLessThanOrEqualTo(EXPObjectify((expected)))
7 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+beLessThanOrEqualTo.h"
2 | #import "EXPMatcherHelpers.h"
3 |
4 | EXPMatcherImplementationBegin(_beLessThanOrEqualTo, (id expected)) {
5 | match(^BOOL{
6 | if ([actual respondsToSelector:@selector(compare:)]) {
7 | return [actual compare:expected] != NSOrderedDescending;
8 | }
9 | return NO;
10 | });
11 |
12 | failureMessageForTo(^NSString *{
13 | return [NSString stringWithFormat:@"expected: %@ to be less than or equal to %@", EXPDescribeObject(actual), EXPDescribeObject(expected)];
14 | });
15 |
16 | failureMessageForNotTo(^NSString *{
17 | return [NSString stringWithFormat:@"expected: %@ not to be less than or equal to %@", EXPDescribeObject(actual), EXPDescribeObject(expected)];
18 | });
19 | }
20 | EXPMatcherImplementationEnd
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beNil.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(beNil, (void));
4 | EXPMatcherInterface(beNull, (void));
5 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beNil.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+beNil.h"
2 |
3 | EXPMatcherImplementationBegin(beNil, (void)) {
4 | match(^BOOL{
5 | return actual == nil;
6 | });
7 |
8 | failureMessageForTo(^NSString *{
9 | return [NSString stringWithFormat:@"expected: nil/null, got: %@", EXPDescribeObject(actual)];
10 | });
11 |
12 | failureMessageForNotTo(^NSString *{
13 | return [NSString stringWithFormat:@"expected: not nil/null, got: %@", EXPDescribeObject(actual)];
14 | });
15 | }
16 | EXPMatcherImplementationEnd
17 |
18 | EXPMatcherAliasImplementation(beNull, beNil, (void));
19 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beSubclassOf.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(beSubclassOf, (Class expected));
4 | EXPMatcherInterface(beASubclassOf, (Class expected));
5 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beSubclassOf.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+beSubclassOf.h"
2 | #import "NSValue+Expecta.h"
3 | #import
4 |
5 | EXPMatcherImplementationBegin(beSubclassOf, (Class expected)) {
6 | __block BOOL actualIsClass = YES;
7 |
8 | prerequisite(^BOOL {
9 | actualIsClass = class_isMetaClass(object_getClass(actual));
10 | return actualIsClass;
11 | });
12 |
13 | match(^BOOL{
14 | return [actual isSubclassOfClass:expected];
15 | });
16 |
17 | failureMessageForTo(^NSString *{
18 | if(!actualIsClass) return @"the actual value is not a Class";
19 | return [NSString stringWithFormat:@"expected: a subclass of %@, got: a class %@, which is not a subclass of %@", [expected class], actual, [expected class]];
20 | });
21 |
22 | failureMessageForNotTo(^NSString *{
23 | if(!actualIsClass) return @"the actual value is not a Class";
24 | return [NSString stringWithFormat:@"expected: not a subclass of %@, got: a class %@, which is a subclass of %@", [expected class], actual, [expected class]];
25 | });
26 | }
27 | EXPMatcherImplementationEnd
28 |
29 | EXPMatcherAliasImplementation(beASubclassOf, beSubclassOf, (Class expected));
30 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beSupersetOf.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(beSupersetOf, (id subset));
4 |
5 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beTruthy.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(beTruthy, (void));
4 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beTruthy.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+beTruthy.h"
2 | #import "EXPMatcherHelpers.h"
3 |
4 | EXPMatcherImplementationBegin(beTruthy, (void)) {
5 | match(^BOOL{
6 | if([actual isKindOfClass:[NSNumber class]]) {
7 | return !![(NSNumber *)actual boolValue];
8 | } else if([actual isKindOfClass:[NSValue class]]) {
9 | if(EXPIsValuePointer((NSValue *)actual)) {
10 | return !![(NSValue *)actual pointerValue];
11 | }
12 | }
13 | return !!actual;
14 | });
15 |
16 | failureMessageForTo(^NSString *{
17 | return [NSString stringWithFormat:@"expected: a truthy value, got: %@, which is falsy", EXPDescribeObject(actual)];
18 | });
19 |
20 | failureMessageForNotTo(^NSString *{
21 | return [NSString stringWithFormat:@"expected: a non-truthy value, got: %@, which is truthy", EXPDescribeObject(actual)];
22 | });
23 | }
24 | EXPMatcherImplementationEnd
25 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+beginWith.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(beginWith, (id expected));
4 | EXPMatcherInterface(startWith, (id expected));
5 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+conformTo.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(conformTo, (Protocol *expected));
4 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+conformTo.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+conformTo.h"
2 | #import "NSValue+Expecta.h"
3 | #import
4 |
5 | EXPMatcherImplementationBegin(conformTo, (Protocol *expected)) {
6 | BOOL actualIsNil = (actual == nil);
7 | BOOL expectedIsNil = (expected == nil);
8 |
9 | prerequisite(^BOOL{
10 | return !(actualIsNil || expectedIsNil);
11 | });
12 |
13 | match(^BOOL{
14 | return [actual conformsToProtocol:expected];
15 | });
16 |
17 | failureMessageForTo(^NSString *{
18 | if(actualIsNil) return @"the object is nil/null";
19 | if(expectedIsNil) return @"the protocol is nil/null";
20 |
21 | NSString *name = NSStringFromProtocol(expected);
22 | return [NSString stringWithFormat:@"expected: %@ to conform to %@", actual, name];
23 | });
24 |
25 | failureMessageForNotTo(^NSString *{
26 | if(actualIsNil) return @"the object is nil/null";
27 | if(expectedIsNil) return @"the protocol is nil/null";
28 |
29 | NSString *name = NSStringFromProtocol(expected);
30 | return [NSString stringWithFormat:@"expected: %@ not to conform to %@", actual, name];
31 | });
32 | }
33 | EXPMatcherImplementationEnd
34 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+contain.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(_contain, (id expected));
4 | EXPMatcherInterface(contain, (id expected)); // to aid code completion
5 | #define contain(expected) _contain(EXPObjectify((expected)))
6 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+contain.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+contain.h"
2 |
3 | EXPMatcherImplementationBegin(_contain, (id expected)) {
4 | BOOL actualIsCompatible = [actual isKindOfClass:[NSString class]] || [actual conformsToProtocol:@protocol(NSFastEnumeration)];
5 | BOOL expectedIsNil = (expected == nil);
6 |
7 | prerequisite(^BOOL{
8 | return actualIsCompatible && !expectedIsNil;
9 | });
10 |
11 | match(^BOOL{
12 | if(actualIsCompatible) {
13 | if([actual isKindOfClass:[NSString class]]) {
14 | return [(NSString *)actual rangeOfString:[expected description]].location != NSNotFound;
15 | } else {
16 | for (id object in actual) {
17 | if ([object isEqual:expected]) {
18 | return YES;
19 | }
20 | }
21 | }
22 | }
23 | return NO;
24 | });
25 |
26 | failureMessageForTo(^NSString *{
27 | if(!actualIsCompatible) return [NSString stringWithFormat:@"%@ is not an instance of NSString or NSFastEnumeration", EXPDescribeObject(actual)];
28 | if(expectedIsNil) return @"the expected value is nil/null";
29 | return [NSString stringWithFormat:@"expected %@ to contain %@", EXPDescribeObject(actual), EXPDescribeObject(expected)];
30 | });
31 |
32 | failureMessageForNotTo(^NSString *{
33 | if(!actualIsCompatible) return [NSString stringWithFormat:@"%@ is not an instance of NSString or NSFastEnumeration", EXPDescribeObject(actual)];
34 | if(expectedIsNil) return @"the expected value is nil/null";
35 | return [NSString stringWithFormat:@"expected %@ not to contain %@", EXPDescribeObject(actual), EXPDescribeObject(expected)];
36 | });
37 | }
38 | EXPMatcherImplementationEnd
39 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+endWith.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(endWith, (id expected));
4 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+equal.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(_equal, (id expected));
4 | EXPMatcherInterface(equal, (id expected)); // to aid code completion
5 | #define equal(...) _equal(EXPObjectify((__VA_ARGS__)))
6 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+equal.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+equal.h"
2 | #import "EXPMatcherHelpers.h"
3 |
4 | EXPMatcherImplementationBegin(_equal, (id expected)) {
5 | match(^BOOL{
6 | if((actual == expected) || [actual isEqual:expected]) {
7 | return YES;
8 | } else if([actual isKindOfClass:[NSNumber class]] && [expected isKindOfClass:[NSNumber class]]) {
9 | if([actual isKindOfClass:[NSDecimalNumber class]] || [expected isKindOfClass:[NSDecimalNumber class]]) {
10 | NSDecimalNumber *actualDecimalNumber = [NSDecimalNumber decimalNumberWithDecimal:[(NSNumber *) actual decimalValue]];
11 | NSDecimalNumber *expectedDecimalNumber = [NSDecimalNumber decimalNumberWithDecimal:[(NSNumber *) expected decimalValue]];
12 | return [actualDecimalNumber isEqualToNumber:expectedDecimalNumber];
13 | }
14 | else {
15 | if(EXPIsNumberFloat((NSNumber *)actual) || EXPIsNumberFloat((NSNumber *)expected)) {
16 | return [(NSNumber *)actual floatValue] == [(NSNumber *)expected floatValue];
17 | }
18 | }
19 | }
20 | return NO;
21 | });
22 |
23 | failureMessageForTo(^NSString *{
24 | return [NSString stringWithFormat:@"expected: %@, got: %@", EXPDescribeObject(expected), EXPDescribeObject(actual)];
25 | });
26 |
27 | failureMessageForNotTo(^NSString *{
28 | return [NSString stringWithFormat:@"expected: not %@, got: %@", EXPDescribeObject(expected), EXPDescribeObject(actual)];
29 | });
30 | }
31 | EXPMatcherImplementationEnd
32 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+haveCountOf.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(haveCountOf, (NSUInteger expected));
4 | EXPMatcherInterface(haveCount, (NSUInteger expected));
5 | EXPMatcherInterface(haveACountOf, (NSUInteger expected));
6 | EXPMatcherInterface(haveLength, (NSUInteger expected));
7 | EXPMatcherInterface(haveLengthOf, (NSUInteger expected));
8 | EXPMatcherInterface(haveALengthOf, (NSUInteger expected));
9 |
10 | #define beEmpty() haveCountOf(0)
11 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+haveCountOf.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+haveCountOf.h"
2 |
3 | EXPMatcherImplementationBegin(haveCountOf, (NSUInteger expected)) {
4 | BOOL actualIsStringy = [actual isKindOfClass:[NSString class]] || [actual isKindOfClass:[NSAttributedString class]];
5 | BOOL actualIsCompatible = actualIsStringy || [actual respondsToSelector:@selector(count)];
6 |
7 | prerequisite(^BOOL{
8 | return actualIsCompatible;
9 | });
10 |
11 | NSUInteger (^count)(id) = ^(id actual) {
12 | if(actualIsStringy) {
13 | return [actual length];
14 | } else {
15 | return [actual count];
16 | }
17 | };
18 |
19 | match(^BOOL{
20 | if(actualIsCompatible) {
21 | return count(actual) == expected;
22 | }
23 | return NO;
24 | });
25 |
26 | failureMessageForTo(^NSString *{
27 | if(!actualIsCompatible) return [NSString stringWithFormat:@"%@ is not an instance of NSString, NSAttributedString, NSArray, NSSet, NSOrderedSet, or NSDictionary", EXPDescribeObject(actual)];
28 | return [NSString stringWithFormat:@"expected %@ to have a count of %zi but got %zi", EXPDescribeObject(actual), expected, count(actual)];
29 | });
30 |
31 | failureMessageForNotTo(^NSString *{
32 | if(!actualIsCompatible) return [NSString stringWithFormat:@"%@ is not an instance of NSString, NSAttributedString, NSArray, NSSet, NSOrderedSet, or NSDictionary", EXPDescribeObject(actual)];
33 | return [NSString stringWithFormat:@"expected %@ not to have a count of %zi", EXPDescribeObject(actual), expected];
34 | });
35 | }
36 | EXPMatcherImplementationEnd
37 |
38 | EXPMatcherAliasImplementation(haveCount, haveCountOf, (NSUInteger expected));
39 | EXPMatcherAliasImplementation(haveACountOf, haveCountOf, (NSUInteger expected));
40 | EXPMatcherAliasImplementation(haveLength, haveCountOf, (NSUInteger expected));
41 | EXPMatcherAliasImplementation(haveLengthOf, haveCountOf, (NSUInteger expected));
42 | EXPMatcherAliasImplementation(haveALengthOf, haveCountOf, (NSUInteger expected));
43 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+match.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(match, (NSString *expected));
4 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+match.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+match.h"
2 | #import "EXPMatcherHelpers.h"
3 |
4 | EXPMatcherImplementationBegin(match, (NSString *expected)) {
5 | BOOL actualIsNil = (actual == nil);
6 | BOOL expectedIsNil = (expected == nil);
7 |
8 | __block NSRegularExpression *regex = nil;
9 | __block NSError *regexError = nil;
10 |
11 | prerequisite (^BOOL {
12 | BOOL nilInput = (actualIsNil || expectedIsNil);
13 | if (!nilInput) {
14 | regex = [NSRegularExpression regularExpressionWithPattern:expected options:0 error:®exError];
15 | }
16 | return !nilInput && regex;
17 | });
18 |
19 | match(^BOOL {
20 | NSRange range = [regex rangeOfFirstMatchInString:actual options:0 range:NSMakeRange(0, [actual length])];
21 | return !NSEqualRanges(range, NSMakeRange(NSNotFound, 0));
22 | });
23 |
24 | failureMessageForTo(^NSString *{
25 | if (actualIsNil) return @"the object is nil/null";
26 | if (expectedIsNil) return @"the expression is nil/null";
27 | if (regexError) return [NSString stringWithFormat:@"unable to create regular expression from given parameter: %@", [regexError localizedDescription]];
28 | return [NSString stringWithFormat:@"expected: %@ to match to %@", EXPDescribeObject(actual), expected];
29 | });
30 |
31 | failureMessageForNotTo(^NSString *{
32 | if (actualIsNil) return @"the object is nil/null";
33 | if (expectedIsNil) return @"the expression is nil/null";
34 | if (regexError) return [NSString stringWithFormat:@"unable to create regular expression from given parameter: %@", [regexError localizedDescription]];
35 | return [NSString stringWithFormat:@"expected: %@ not to match to %@", EXPDescribeObject(actual), expected];
36 | });
37 | }
38 | EXPMatcherImplementationEnd
39 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+postNotification.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(postNotification, (id expectedNotification));
4 | EXPMatcherInterface(notify, (id expectedNotification));
5 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+raise.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(raise, (NSString *expectedExceptionName));
4 | #define raiseAny() raise(nil)
5 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+raise.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+raise.h"
2 | #import "EXPDefines.h"
3 |
4 | EXPMatcherImplementationBegin(raise, (NSString *expectedExceptionName)) {
5 | __block NSException *exceptionCaught = nil;
6 |
7 | match(^BOOL{
8 | BOOL expectedExceptionCaught = NO;
9 | @try {
10 | ((EXPBasicBlock)actual)();
11 | } @catch(NSException *e) {
12 | exceptionCaught = e;
13 | expectedExceptionCaught = (expectedExceptionName == nil) || [[exceptionCaught name] isEqualToString:expectedExceptionName];
14 | }
15 | return expectedExceptionCaught;
16 | });
17 |
18 | failureMessageForTo(^NSString *{
19 | return [NSString stringWithFormat:@"expected: %@, got: %@",
20 | expectedExceptionName ? expectedExceptionName : @"any exception",
21 | exceptionCaught ? [exceptionCaught name] : @"no exception"];
22 | });
23 |
24 | failureMessageForNotTo(^NSString *{
25 | return [NSString stringWithFormat:@"expected: %@, got: %@",
26 | expectedExceptionName ? [NSString stringWithFormat:@"not %@", expectedExceptionName] : @"no exception",
27 | exceptionCaught ? [exceptionCaught name] : @"no exception"];
28 | });
29 | }
30 | EXPMatcherImplementationEnd
31 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+raiseWithReason.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(raiseWithReason, (NSString *expectedExceptionName, NSString *expectedReason));
4 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+raiseWithReason.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+raiseWithReason.h"
2 | #import "EXPDefines.h"
3 |
4 | EXPMatcherImplementationBegin(raiseWithReason, (NSString *expectedExceptionName, NSString *expectedReason)) {
5 | __block NSException *exceptionCaught = nil;
6 |
7 | match(^BOOL{
8 | BOOL expectedExceptionCaught = NO;
9 | @try {
10 | ((EXPBasicBlock)actual)();
11 | } @catch(NSException *e) {
12 | exceptionCaught = e;
13 | expectedExceptionCaught = (((expectedExceptionName == nil) || [[exceptionCaught name] isEqualToString:expectedExceptionName]) &&
14 | ((expectedReason == nil) || ([[exceptionCaught reason] isEqualToString:expectedReason])));
15 | }
16 | return expectedExceptionCaught;
17 | });
18 |
19 | failureMessageForTo(^NSString *{
20 | return [NSString stringWithFormat:@"expected: %@ (%@), got: %@ (%@)",
21 | expectedExceptionName ?: @"any exception",
22 | expectedReason ?: @"any reason",
23 | exceptionCaught ? [exceptionCaught name] : @"no exception",
24 | exceptionCaught ? [exceptionCaught reason] : @""];
25 | });
26 |
27 | failureMessageForNotTo(^NSString *{
28 | return [NSString stringWithFormat:@"expected: %@ (%@), got: %@ (%@)",
29 | expectedExceptionName ? [NSString stringWithFormat:@"not %@", expectedExceptionName] : @"no exception",
30 | expectedReason ? [NSString stringWithFormat:@"not '%@'", expectedReason] : @"no reason",
31 | exceptionCaught ? [exceptionCaught name] : @"no exception",
32 | exceptionCaught ? [exceptionCaught reason] : @"no reason"];
33 | });
34 | }
35 | EXPMatcherImplementationEnd
36 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+respondTo.h:
--------------------------------------------------------------------------------
1 | #import "Expecta.h"
2 |
3 | EXPMatcherInterface(respondTo, (SEL expected));
4 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers+respondTo.m:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+respondTo.h"
2 | #import "EXPMatcherHelpers.h"
3 |
4 | EXPMatcherImplementationBegin(respondTo, (SEL expected)) {
5 | BOOL actualIsNil = (actual == nil);
6 | BOOL expectedIsNull = (expected == NULL);
7 |
8 | prerequisite (^BOOL {
9 | return !(actualIsNil || expectedIsNull);
10 | });
11 |
12 | match(^BOOL {
13 | return [actual respondsToSelector:expected];
14 | });
15 |
16 | failureMessageForTo(^NSString *{
17 | if (actualIsNil) return @"the object is nil/null";
18 | if (expectedIsNull) return @"the selector is null";
19 | return [NSString stringWithFormat:@"expected: %@ to respond to %@", EXPDescribeObject(actual), NSStringFromSelector(expected)];
20 | });
21 |
22 | failureMessageForNotTo(^NSString *{
23 | if (actualIsNil) return @"the object is nil/null";
24 | if (expectedIsNull) return @"the selector is null";
25 | return [NSString stringWithFormat:@"expected: %@ not to respond to %@", EXPDescribeObject(actual), NSStringFromSelector(expected)];
26 | });
27 | }
28 | EXPMatcherImplementationEnd
29 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/Matchers/EXPMatchers.h:
--------------------------------------------------------------------------------
1 | #import "EXPMatchers+beNil.h"
2 | #import "EXPMatchers+equal.h"
3 | #import "EXPMatchers+beInstanceOf.h"
4 | #import "EXPMatchers+beKindOf.h"
5 | #import "EXPMatchers+beSubclassOf.h"
6 | #import "EXPMatchers+conformTo.h"
7 | #import "EXPMatchers+beTruthy.h"
8 | #import "EXPMatchers+beFalsy.h"
9 | #import "EXPMatchers+contain.h"
10 | #import "EXPMatchers+beSupersetOf.h"
11 | #import "EXPMatchers+haveCountOf.h"
12 | #import "EXPMatchers+beIdenticalTo.h"
13 | #import "EXPMatchers+beGreaterThan.h"
14 | #import "EXPMatchers+beGreaterThanOrEqualTo.h"
15 | #import "EXPMatchers+beLessThan.h"
16 | #import "EXPMatchers+beLessThanOrEqualTo.h"
17 | #import "EXPMatchers+beInTheRangeOf.h"
18 | #import "EXPMatchers+beCloseTo.h"
19 | #import "EXPMatchers+raise.h"
20 | #import "EXPMatchers+raiseWithReason.h"
21 | #import "EXPMatchers+respondTo.h"
22 | #import "EXPMatchers+postNotification.h"
23 | #import "EXPMatchers+beginWith.h"
24 | #import "EXPMatchers+endWith.h"
25 | #import "EXPMatchers+match.h"
26 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/NSObject+Expecta.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | @interface NSObject (Expecta)
4 |
5 | - (void)recordFailureWithDescription:(NSString *)description
6 | inFile:(NSString *)filename
7 | atLine:(NSUInteger)lineNumber
8 | expected:(BOOL)expected;
9 |
10 | @end
11 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/NSValue+Expecta.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | @interface NSValue (Expecta)
4 |
5 | @property (nonatomic) const char *_EXP_objCType;
6 |
7 | @end
8 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/Expecta/NSValue+Expecta.m:
--------------------------------------------------------------------------------
1 | #import "NSValue+Expecta.h"
2 | #import
3 | #import "Expecta.h"
4 |
5 | EXPFixCategoriesBug(NSValue_Expecta);
6 |
7 | @implementation NSValue (Expecta)
8 |
9 | static char _EXP_typeKey;
10 |
11 | - (const char *)_EXP_objCType {
12 | return [(NSString *)objc_getAssociatedObject(self, &_EXP_typeKey) cStringUsingEncoding:NSASCIIStringEncoding];
13 | }
14 |
15 | - (void)set_EXP_objCType:(const char *)_EXP_objCType {
16 | objc_setAssociatedObject(self, &_EXP_typeKey,
17 | @(_EXP_objCType),
18 | OBJC_ASSOCIATION_COPY_NONATOMIC);
19 | }
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Example/Pods/Expecta/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2011-2015 Specta Team - https://github.com/specta
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCasePlatform.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | *
9 | */
10 |
11 | #import
12 |
13 | #ifdef __cplusplus
14 | extern "C" {
15 | #endif
16 |
17 | /**
18 | Returns a Boolean value that indicates whether the snapshot test is running in 64Bit.
19 | This method is a convenience for creating the suffixes set based on the architecture
20 | that the test is running.
21 |
22 | @returns @c YES if the test is running in 64bit, otherwise @c NO.
23 | */
24 | BOOL FBSnapshotTestCaseIs64Bit(void);
25 |
26 | /**
27 | Returns a default set of strings that is used to append a suffix based on the architectures.
28 | @warning Do not modify this function, you can create your own and use it with @c FBSnapshotVerifyViewWithOptions()
29 |
30 | @returns An @c NSOrderedSet object containing strings that are appended to the reference images directory.
31 | */
32 | NSOrderedSet *FBSnapshotTestCaseDefaultSuffixes(void);
33 |
34 | #ifdef __cplusplus
35 | }
36 | #endif
37 |
--------------------------------------------------------------------------------
/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCasePlatform.m:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | *
9 | */
10 |
11 | #import
12 |
13 | BOOL FBSnapshotTestCaseIs64Bit(void)
14 | {
15 | #if __LP64__
16 | return YES;
17 | #else
18 | return NO;
19 | #endif
20 | }
21 |
22 | NSOrderedSet *FBSnapshotTestCaseDefaultSuffixes(void)
23 | {
24 | NSMutableOrderedSet *suffixesSet = [[NSMutableOrderedSet alloc] init];
25 | [suffixesSet addObject:@"_32"];
26 | [suffixesSet addObject:@"_64"];
27 | if (FBSnapshotTestCaseIs64Bit()) {
28 | return [suffixesSet reversedOrderedSet];
29 | }
30 | return [suffixesSet copy];
31 | }
32 |
--------------------------------------------------------------------------------
/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/UIImage+Compare.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Gabriel Handford on 3/1/09.
3 | // Copyright 2009-2013. All rights reserved.
4 | // Created by John Boiles on 10/20/11.
5 | // Copyright (c) 2011. All rights reserved
6 | // Modified by Felix Schulze on 2/11/13.
7 | // Copyright 2013. All rights reserved.
8 | //
9 | // Permission is hereby granted, free of charge, to any person
10 | // obtaining a copy of this software and associated documentation
11 | // files (the "Software"), to deal in the Software without
12 | // restriction, including without limitation the rights to use,
13 | // copy, modify, merge, publish, distribute, sublicense, and/or sell
14 | // copies of the Software, and to permit persons to whom the
15 | // Software is furnished to do so, subject to the following
16 | // conditions:
17 | //
18 | // The above copyright notice and this permission notice shall be
19 | // included in all copies or substantial portions of the Software.
20 | //
21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 | // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
23 | // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 | // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
25 | // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
26 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
27 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
28 | // OTHER DEALINGS IN THE SOFTWARE.
29 | //
30 |
31 | #import
32 |
33 | @interface UIImage (Compare)
34 |
35 | - (BOOL)compareWithImage:(UIImage *)image;
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/UIImage+Diff.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Gabriel Handford on 3/1/09.
3 | // Copyright 2009-2013. All rights reserved.
4 | // Created by John Boiles on 10/20/11.
5 | // Copyright (c) 2011. All rights reserved
6 | // Modified by Felix Schulze on 2/11/13.
7 | // Copyright 2013. All rights reserved.
8 | //
9 | // Permission is hereby granted, free of charge, to any person
10 | // obtaining a copy of this software and associated documentation
11 | // files (the "Software"), to deal in the Software without
12 | // restriction, including without limitation the rights to use,
13 | // copy, modify, merge, publish, distribute, sublicense, and/or sell
14 | // copies of the Software, and to permit persons to whom the
15 | // Software is furnished to do so, subject to the following
16 | // conditions:
17 | //
18 | // The above copyright notice and this permission notice shall be
19 | // included in all copies or substantial portions of the Software.
20 | //
21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 | // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
23 | // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 | // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
25 | // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
26 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
27 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
28 | // OTHER DEALINGS IN THE SOFTWARE.
29 | //
30 |
31 | #import
32 |
33 | @interface UIImage (Diff)
34 |
35 | - (UIImage *)diffWithImage:(UIImage *)image;
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/Example/Pods/FBSnapshotTestCase/LICENSE:
--------------------------------------------------------------------------------
1 | BSD License
2 |
3 | For the FBSnapshotTestCase software
4 |
5 | Copyright (c) 2013, Facebook, Inc.
6 | All rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without
9 | modification, are permitted provided that the following conditions are met:
10 |
11 | * Redistributions of source code must retain the above copyright notice,
12 | this list of conditions and the following disclaimer.
13 | * Redistributions in binary form must reproduce the above copyright notice,
14 | this list of conditions and the following disclaimer in the documentation
15 | and/or other materials provided with the distribution.
16 | * Neither the name Facebook nor the names of its contributors may be used to
17 | endorse or promote products derived from this software without specific
18 | prior written permission.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/DACircularProgress/DACircularProgressView.h:
--------------------------------------------------------------------------------
1 | ../../../DACircularProgress/DACircularProgress/DACircularProgressView.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/DACircularProgress/DALabeledCircularProgressView.h:
--------------------------------------------------------------------------------
1 | ../../../DACircularProgress/DACircularProgress/DALabeledCircularProgressView.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta+Snapshots/EXPMatchers+FBSnapshotTest.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPBlockDefinedMatcher.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/EXPBlockDefinedMatcher.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPDefines.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/EXPDefines.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPDoubleTuple.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/EXPDoubleTuple.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPExpect.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/EXPExpect.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPFloatTuple.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/EXPFloatTuple.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatcher.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/EXPMatcher.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatcherHelpers.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatcherHelpers.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+beCloseTo.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beCloseTo.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+beFalsy.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beFalsy.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+beGreaterThan.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beGreaterThan.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+beGreaterThanOrEqualTo.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+beIdenticalTo.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beIdenticalTo.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+beInTheRangeOf.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beInTheRangeOf.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+beInstanceOf.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beInstanceOf.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+beKindOf.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beKindOf.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+beLessThan.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beLessThan.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+beLessThanOrEqualTo.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+beNil.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beNil.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+beSubclassOf.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beSubclassOf.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+beSupersetOf.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beSupersetOf.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+beTruthy.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beTruthy.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+beginWith.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beginWith.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+conformTo.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+conformTo.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+contain.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+contain.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+endWith.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+endWith.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+equal.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+equal.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+haveCountOf.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+haveCountOf.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+match.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+match.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+postNotification.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+postNotification.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+raise.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+raise.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+raiseWithReason.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+raiseWithReason.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers+respondTo.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+respondTo.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPMatchers.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/EXPUnsupportedObject.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/EXPUnsupportedObject.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/Expecta.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Expecta.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/ExpectaObject.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/ExpectaObject.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/ExpectaSupport.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/ExpectaSupport.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/NSObject+Expecta.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/NSObject+Expecta.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Expecta/NSValue+Expecta.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/NSValue+Expecta.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/FBSnapshotTestCase/FBSnapshotTestCase.h:
--------------------------------------------------------------------------------
1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCase.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/FBSnapshotTestCase/FBSnapshotTestCasePlatform.h:
--------------------------------------------------------------------------------
1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCasePlatform.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/FBSnapshotTestCase/FBSnapshotTestController.h:
--------------------------------------------------------------------------------
1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestController.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/FBSnapshotTestCase/UIImage+Compare.h:
--------------------------------------------------------------------------------
1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/UIImage+Compare.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/FBSnapshotTestCase/UIImage+Diff.h:
--------------------------------------------------------------------------------
1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/UIImage+Diff.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/MBProgressHUD/MBProgressHUD.h:
--------------------------------------------------------------------------------
1 | ../../../MBProgressHUD/MBProgressHUD.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/MWPhotoBrowser/MWCaptionView.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWCaptionView.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/MWPhotoBrowser/MWCommon.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWCommon.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/MWPhotoBrowser/MWGridCell.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWGridCell.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/MWPhotoBrowser/MWGridViewController.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWGridViewController.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/MWPhotoBrowser/MWPhoto.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWPhoto.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/MWPhotoBrowser/MWPhotoBrowser.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWPhotoBrowser.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/MWPhotoBrowser/MWPhotoBrowserPrivate.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWPhotoBrowserPrivate.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/MWPhotoBrowser/MWPhotoProtocol.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWPhotoProtocol.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/MWPhotoBrowser/MWTapDetectingImageView.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWTapDetectingImageView.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/MWPhotoBrowser/MWTapDetectingView.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWTapDetectingView.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/MWPhotoBrowser/MWZoomingScrollView.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWZoomingScrollView.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/MWPhotoBrowser/UIImage+MWPhotoBrowser.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/UIImage+MWPhotoBrowser.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/SDWebImage/NSData+ImageContentType.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/NSData+ImageContentType.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/SDWebImage/SDImageCache.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/SDImageCache.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/SDWebImage/SDWebImageCompat.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/SDWebImageCompat.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/SDWebImage/SDWebImageDecoder.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/SDWebImageDecoder.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/SDWebImage/SDWebImageDownloader.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/SDWebImageDownloader.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/SDWebImage/SDWebImageDownloaderOperation.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/SDWebImageDownloaderOperation.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/SDWebImage/SDWebImageManager.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/SDWebImageManager.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/SDWebImage/SDWebImageOperation.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/SDWebImageOperation.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/SDWebImage/SDWebImagePrefetcher.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/SDWebImagePrefetcher.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/SDWebImage/UIButton+WebCache.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/UIButton+WebCache.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/SDWebImage/UIImage+GIF.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/UIImage+GIF.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/SDWebImage/UIImage+MultiFormat.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/UIImage+MultiFormat.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/SDWebImage/UIImageView+HighlightedWebCache.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/UIImageView+HighlightedWebCache.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/SDWebImage/UIImageView+WebCache.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/UIImageView+WebCache.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/SDWebImage/UIView+WebCacheOperation.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/UIView+WebCacheOperation.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Specta/SPTCallSite.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTCallSite.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Specta/SPTCompiledExample.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTCompiledExample.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Specta/SPTExample.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTExample.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Specta/SPTExampleGroup.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTExampleGroup.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Specta/SPTExcludeGlobalBeforeAfterEach.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTExcludeGlobalBeforeAfterEach.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Specta/SPTGlobalBeforeAfterEach.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTGlobalBeforeAfterEach.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Specta/SPTSharedExampleGroups.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTSharedExampleGroups.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Specta/SPTSpec.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTSpec.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Specta/SPTTestSuite.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTTestSuite.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Specta/Specta.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/Specta.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Specta/SpectaDSL.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SpectaDSL.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Specta/SpectaTypes.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SpectaTypes.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Specta/SpectaUtility.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SpectaUtility.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Specta/XCTest+Private.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/XCTest+Private.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Private/Specta/XCTestCase+Specta.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/XCTestCase+Specta.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/DACircularProgress/DACircularProgressView.h:
--------------------------------------------------------------------------------
1 | ../../../DACircularProgress/DACircularProgress/DACircularProgressView.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/DACircularProgress/DALabeledCircularProgressView.h:
--------------------------------------------------------------------------------
1 | ../../../DACircularProgress/DACircularProgress/DALabeledCircularProgressView.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta+Snapshots/EXPMatchers+FBSnapshotTest.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPBlockDefinedMatcher.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/EXPBlockDefinedMatcher.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPDefines.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/EXPDefines.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPDoubleTuple.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/EXPDoubleTuple.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPExpect.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/EXPExpect.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPFloatTuple.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/EXPFloatTuple.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatcher.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/EXPMatcher.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatcherHelpers.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatcherHelpers.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+beCloseTo.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beCloseTo.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+beFalsy.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beFalsy.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+beGreaterThan.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beGreaterThan.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+beGreaterThanOrEqualTo.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+beIdenticalTo.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beIdenticalTo.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+beInTheRangeOf.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beInTheRangeOf.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+beInstanceOf.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beInstanceOf.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+beKindOf.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beKindOf.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+beLessThan.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beLessThan.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+beLessThanOrEqualTo.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+beNil.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beNil.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+beSubclassOf.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beSubclassOf.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+beSupersetOf.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beSupersetOf.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+beTruthy.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beTruthy.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+beginWith.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+beginWith.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+conformTo.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+conformTo.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+contain.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+contain.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+endWith.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+endWith.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+equal.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+equal.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+haveCountOf.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+haveCountOf.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+match.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+match.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+postNotification.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+postNotification.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+raise.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+raise.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+raiseWithReason.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+raiseWithReason.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers+respondTo.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers+respondTo.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPMatchers.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Matchers/EXPMatchers.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/EXPUnsupportedObject.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/EXPUnsupportedObject.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/Expecta.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/Expecta.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/ExpectaObject.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/ExpectaObject.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/ExpectaSupport.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/ExpectaSupport.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/NSObject+Expecta.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/NSObject+Expecta.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Expecta/NSValue+Expecta.h:
--------------------------------------------------------------------------------
1 | ../../../Expecta/Expecta/NSValue+Expecta.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/FBSnapshotTestCase/FBSnapshotTestCase.h:
--------------------------------------------------------------------------------
1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCase.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/FBSnapshotTestCase/FBSnapshotTestCasePlatform.h:
--------------------------------------------------------------------------------
1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCasePlatform.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/FBSnapshotTestCase/FBSnapshotTestController.h:
--------------------------------------------------------------------------------
1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestController.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/FBSnapshotTestCase/UIImage+Compare.h:
--------------------------------------------------------------------------------
1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/UIImage+Compare.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/FBSnapshotTestCase/UIImage+Diff.h:
--------------------------------------------------------------------------------
1 | ../../../FBSnapshotTestCase/FBSnapshotTestCase/UIImage+Diff.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/MBProgressHUD/MBProgressHUD.h:
--------------------------------------------------------------------------------
1 | ../../../MBProgressHUD/MBProgressHUD.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/MWPhotoBrowser/MWCaptionView.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWCaptionView.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/MWPhotoBrowser/MWCommon.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWCommon.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/MWPhotoBrowser/MWGridCell.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWGridCell.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/MWPhotoBrowser/MWGridViewController.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWGridViewController.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/MWPhotoBrowser/MWPhoto.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWPhoto.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/MWPhotoBrowser/MWPhotoBrowser.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWPhotoBrowser.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/MWPhotoBrowser/MWPhotoBrowserPrivate.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWPhotoBrowserPrivate.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/MWPhotoBrowser/MWPhotoProtocol.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWPhotoProtocol.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/MWPhotoBrowser/MWTapDetectingImageView.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWTapDetectingImageView.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/MWPhotoBrowser/MWTapDetectingView.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWTapDetectingView.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/MWPhotoBrowser/MWZoomingScrollView.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/MWZoomingScrollView.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/MWPhotoBrowser/UIImage+MWPhotoBrowser.h:
--------------------------------------------------------------------------------
1 | ../../../../../Pod/Classes/UIImage+MWPhotoBrowser.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/SDWebImage/NSData+ImageContentType.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/NSData+ImageContentType.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/SDWebImage/SDImageCache.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/SDImageCache.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/SDWebImage/SDWebImageCompat.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/SDWebImageCompat.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/SDWebImage/SDWebImageDecoder.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/SDWebImageDecoder.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/SDWebImage/SDWebImageDownloader.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/SDWebImageDownloader.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/SDWebImage/SDWebImageDownloaderOperation.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/SDWebImageDownloaderOperation.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/SDWebImage/SDWebImageManager.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/SDWebImageManager.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/SDWebImage/SDWebImageOperation.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/SDWebImageOperation.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/SDWebImage/SDWebImagePrefetcher.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/SDWebImagePrefetcher.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/SDWebImage/UIButton+WebCache.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/UIButton+WebCache.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/SDWebImage/UIImage+GIF.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/UIImage+GIF.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/SDWebImage/UIImage+MultiFormat.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/UIImage+MultiFormat.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/SDWebImage/UIImageView+HighlightedWebCache.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/UIImageView+HighlightedWebCache.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/SDWebImage/UIImageView+WebCache.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/UIImageView+WebCache.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/SDWebImage/UIView+WebCacheOperation.h:
--------------------------------------------------------------------------------
1 | ../../../SDWebImage/SDWebImage/UIView+WebCacheOperation.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Specta/SPTCallSite.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTCallSite.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Specta/SPTCompiledExample.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTCompiledExample.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Specta/SPTExample.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTExample.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Specta/SPTExampleGroup.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTExampleGroup.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Specta/SPTExcludeGlobalBeforeAfterEach.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTExcludeGlobalBeforeAfterEach.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Specta/SPTGlobalBeforeAfterEach.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTGlobalBeforeAfterEach.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Specta/SPTSharedExampleGroups.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTSharedExampleGroups.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Specta/SPTSpec.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTSpec.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Specta/SPTTestSuite.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SPTTestSuite.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Specta/Specta.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/Specta.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Specta/SpectaDSL.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SpectaDSL.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Specta/SpectaTypes.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SpectaTypes.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Specta/SpectaUtility.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/SpectaUtility.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Specta/XCTest+Private.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/XCTest+Private.h
--------------------------------------------------------------------------------
/Example/Pods/Headers/Public/Specta/XCTestCase+Specta.h:
--------------------------------------------------------------------------------
1 | ../../../Specta/Specta/Specta/XCTestCase+Specta.h
--------------------------------------------------------------------------------
/Example/Pods/MBProgressHUD/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2009-2015 Matej Bukovinski
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
--------------------------------------------------------------------------------
/Example/Pods/Manifest.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - DACircularProgress (2.3.1)
3 | - Expecta (1.0.0)
4 | - Expecta+Snapshots (1.3.4):
5 | - Expecta (~> 1.0)
6 | - FBSnapshotTestCase (~> 1.8)
7 | - FBSnapshotTestCase (1.8.1)
8 | - MBProgressHUD (0.9.2)
9 | - MWPhotoBrowser (2.1.2):
10 | - DACircularProgress (~> 2.3)
11 | - MBProgressHUD (~> 0.9)
12 | - SDWebImage (!= 3.7.2, ~> 3.7)
13 | - SDWebImage (3.7.5):
14 | - SDWebImage/Core (= 3.7.5)
15 | - SDWebImage/Core (3.7.5)
16 | - Specta (1.0.2)
17 |
18 | DEPENDENCIES:
19 | - Expecta
20 | - Expecta+Snapshots
21 | - FBSnapshotTestCase
22 | - MWPhotoBrowser (from `../`)
23 | - Specta
24 |
25 | EXTERNAL SOURCES:
26 | MWPhotoBrowser:
27 | :path: ../
28 |
29 | SPEC CHECKSUMS:
30 | DACircularProgress: 4dd437c0fc3da5161cb289e07ac449493d41db71
31 | Expecta: 32604574add2c46a36f8d2f716b6c5736eb75024
32 | Expecta+Snapshots: ca15bfb57e7a0f78f86c7699c2c54ffacfa4ad2a
33 | FBSnapshotTestCase: 3dc3899168747a0319c5278f5b3445c13a6532dd
34 | MBProgressHUD: 1569cf7ace17a8bac47aabfbb8580a49690386d1
35 | MWPhotoBrowser: 5836d7aa041dc05a13de380c246826578adc5ea5
36 | SDWebImage: 69c6303e3348fba97e03f65d65d4fbc26740f461
37 | Specta: 9cec98310dca411f7c7ffd6943552b501622abfe
38 |
39 | COCOAPODS: 0.39.0
40 |
--------------------------------------------------------------------------------
/Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Example/Pods/SDWebImage/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2009 Olivier Poitrey
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is furnished
8 | to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
21 |
--------------------------------------------------------------------------------
/Example/Pods/SDWebImage/SDWebImage/NSData+ImageContentType.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Fabrice Aneche on 06/01/14.
3 | // Copyright (c) 2014 Dailymotion. All rights reserved.
4 | //
5 |
6 | #import
7 |
8 | @interface NSData (ImageContentType)
9 |
10 | /**
11 | * Compute the content type for an image data
12 | *
13 | * @param data the input data
14 | *
15 | * @return the content type as string (i.e. image/jpeg, image/gif)
16 | */
17 | + (NSString *)sd_contentTypeForImageData:(NSData *)data;
18 |
19 | @end
20 |
21 |
22 | @interface NSData (ImageContentTypeDeprecated)
23 |
24 | + (NSString *)contentTypeForImageData:(NSData *)data __deprecated_msg("Use `sd_contentTypeForImageData:`");
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Example/Pods/SDWebImage/SDWebImage/NSData+ImageContentType.m:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Fabrice Aneche on 06/01/14.
3 | // Copyright (c) 2014 Dailymotion. All rights reserved.
4 | //
5 |
6 | #import "NSData+ImageContentType.h"
7 |
8 |
9 | @implementation NSData (ImageContentType)
10 |
11 | + (NSString *)sd_contentTypeForImageData:(NSData *)data {
12 | uint8_t c;
13 | [data getBytes:&c length:1];
14 | switch (c) {
15 | case 0xFF:
16 | return @"image/jpeg";
17 | case 0x89:
18 | return @"image/png";
19 | case 0x47:
20 | return @"image/gif";
21 | case 0x49:
22 | case 0x4D:
23 | return @"image/tiff";
24 | case 0x52:
25 | // R as RIFF for WEBP
26 | if ([data length] < 12) {
27 | return nil;
28 | }
29 |
30 | NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding];
31 | if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"]) {
32 | return @"image/webp";
33 | }
34 |
35 | return nil;
36 | }
37 | return nil;
38 | }
39 |
40 | @end
41 |
42 |
43 | @implementation NSData (ImageContentTypeDeprecated)
44 |
45 | + (NSString *)contentTypeForImageData:(NSData *)data {
46 | return [self sd_contentTypeForImageData:data];
47 | }
48 |
49 | @end
50 |
--------------------------------------------------------------------------------
/Example/Pods/SDWebImage/SDWebImage/SDWebImageCompat.m:
--------------------------------------------------------------------------------
1 | //
2 | // SDWebImageCompat.m
3 | // SDWebImage
4 | //
5 | // Created by Olivier Poitrey on 11/12/12.
6 | // Copyright (c) 2012 Dailymotion. All rights reserved.
7 | //
8 |
9 | #import "SDWebImageCompat.h"
10 |
11 | #if !__has_feature(objc_arc)
12 | #error SDWebImage is ARC only. Either turn on ARC for the project or use -fobjc-arc flag
13 | #endif
14 |
15 | inline UIImage *SDScaledImageForKey(NSString *key, UIImage *image) {
16 | if (!image) {
17 | return nil;
18 | }
19 |
20 | if ([image.images count] > 0) {
21 | NSMutableArray *scaledImages = [NSMutableArray array];
22 |
23 | for (UIImage *tempImage in image.images) {
24 | [scaledImages addObject:SDScaledImageForKey(key, tempImage)];
25 | }
26 |
27 | return [UIImage animatedImageWithImages:scaledImages duration:image.duration];
28 | }
29 | else {
30 | if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
31 | CGFloat scale = [UIScreen mainScreen].scale;
32 | if (key.length >= 8) {
33 | NSRange range = [key rangeOfString:@"@2x."];
34 | if (range.location != NSNotFound) {
35 | scale = 2.0;
36 | }
37 |
38 | range = [key rangeOfString:@"@3x."];
39 | if (range.location != NSNotFound) {
40 | scale = 3.0;
41 | }
42 | }
43 |
44 | UIImage *scaledImage = [[UIImage alloc] initWithCGImage:image.CGImage scale:scale orientation:image.imageOrientation];
45 | image = scaledImage;
46 | }
47 | return image;
48 | }
49 | }
50 |
51 | NSString *const SDWebImageErrorDomain = @"SDWebImageErrorDomain";
52 |
--------------------------------------------------------------------------------
/Example/Pods/SDWebImage/SDWebImage/SDWebImageDecoder.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * Created by james on 9/28/11.
6 | *
7 | * For the full copyright and license information, please view the LICENSE
8 | * file that was distributed with this source code.
9 | */
10 |
11 | #import
12 | #import "SDWebImageCompat.h"
13 |
14 | @interface UIImage (ForceDecode)
15 |
16 | + (UIImage *)decodedImageWithImage:(UIImage *)image;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Example/Pods/SDWebImage/SDWebImage/SDWebImageOperation.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import
10 |
11 | @protocol SDWebImageOperation
12 |
13 | - (void)cancel;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Example/Pods/SDWebImage/SDWebImage/UIImage+GIF.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+GIF.h
3 | // LBGIFImage
4 | //
5 | // Created by Laurin Brandner on 06.01.12.
6 | // Copyright (c) 2012 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (GIF)
12 |
13 | + (UIImage *)sd_animatedGIFNamed:(NSString *)name;
14 |
15 | + (UIImage *)sd_animatedGIFWithData:(NSData *)data;
16 |
17 | - (UIImage *)sd_animatedImageByScalingAndCroppingToSize:(CGSize)size;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Example/Pods/SDWebImage/SDWebImage/UIImage+MultiFormat.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+MultiFormat.h
3 | // SDWebImage
4 | //
5 | // Created by Olivier Poitrey on 07/06/13.
6 | // Copyright (c) 2013 Dailymotion. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (MultiFormat)
12 |
13 | + (UIImage *)sd_imageWithData:(NSData *)data;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Example/Pods/SDWebImage/SDWebImage/UIView+WebCacheOperation.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the SDWebImage package.
3 | * (c) Olivier Poitrey
4 | *
5 | * For the full copyright and license information, please view the LICENSE
6 | * file that was distributed with this source code.
7 | */
8 |
9 | #import
10 | #import "SDWebImageManager.h"
11 |
12 | @interface UIView (WebCacheOperation)
13 |
14 | /**
15 | * Set the image load operation (storage in a UIView based dictionary)
16 | *
17 | * @param operation the operation
18 | * @param key key for storing the operation
19 | */
20 | - (void)sd_setImageLoadOperation:(id)operation forKey:(NSString *)key;
21 |
22 | /**
23 | * Cancel all operations for the current UIView and key
24 | *
25 | * @param key key for identifying the operations
26 | */
27 | - (void)sd_cancelImageLoadOperationWithKey:(NSString *)key;
28 |
29 | /**
30 | * Just remove the operations corresponding to the current UIView and key without cancelling them
31 | *
32 | * @param key key for identifying the operations
33 | */
34 | - (void)sd_removeImageLoadOperationWithKey:(NSString *)key;
35 |
36 | @end
37 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2012-2014 Specta Team.
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
21 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/SPTCallSite.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | @interface SPTCallSite : NSObject
4 |
5 | @property (nonatomic, copy, readonly) NSString *file;
6 | @property (nonatomic, readonly) NSUInteger line;
7 |
8 | + (instancetype)callSiteWithFile:(NSString *)file line:(NSUInteger)line;
9 |
10 | - (instancetype)initWithFile:(NSString *)file line:(NSUInteger)line;
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/SPTCallSite.m:
--------------------------------------------------------------------------------
1 | #import "SPTCallSite.h"
2 |
3 | @implementation SPTCallSite
4 |
5 | + (instancetype)callSiteWithFile:(NSString *)file line:(NSUInteger)line {
6 | return [[self alloc] initWithFile:file line:line];
7 | }
8 |
9 | - (instancetype)initWithFile:(NSString *)file line:(NSUInteger)line {
10 | self = [super init];
11 | if (self) {
12 | _file = file;
13 | _line = line;
14 | }
15 | return self;
16 | }
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/SPTCompiledExample.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import "SpectaTypes.h"
3 |
4 | @interface SPTCompiledExample : NSObject
5 |
6 | @property (nonatomic, copy) NSString *name;
7 | @property (nonatomic, copy) NSString *testCaseName;
8 | @property (nonatomic, copy) SPTSpecBlock block;
9 |
10 | @property (nonatomic) BOOL pending;
11 | @property (nonatomic, getter=isFocused) BOOL focused;
12 |
13 | @property (nonatomic) SEL testMethodSelector;
14 |
15 | - (id)initWithName:(NSString *)name testCaseName:(NSString *)testCaseName block:(SPTSpecBlock)block pending:(BOOL)pending focused:(BOOL)focused;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/SPTCompiledExample.m:
--------------------------------------------------------------------------------
1 | #import "SPTCompiledExample.h"
2 |
3 | @implementation SPTCompiledExample
4 |
5 | - (id)initWithName:(NSString *)name testCaseName:(NSString *)testCaseName block:(SPTSpecBlock)block pending:(BOOL)pending focused:(BOOL)focused {
6 | self = [super init];
7 | if (self) {
8 | self.name = name;
9 | self.testCaseName = testCaseName;
10 | self.block = block;
11 | self.pending = pending;
12 | self.focused = focused;
13 | }
14 | return self;
15 | }
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/SPTExample.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import "SpectaTypes.h"
3 |
4 | @class SPTCallSite;
5 |
6 | @interface SPTExample : NSObject
7 |
8 | @property (nonatomic, copy) NSString *name;
9 | @property (nonatomic, retain) SPTCallSite *callSite;
10 | @property (nonatomic, copy) SPTVoidBlock block;
11 |
12 | @property (nonatomic) BOOL pending;
13 | @property (nonatomic, getter=isFocused) BOOL focused;
14 |
15 | - (id)initWithName:(NSString *)name callSite:(SPTCallSite *)callSite focused:(BOOL)focused block:(SPTVoidBlock)block;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/SPTExample.m:
--------------------------------------------------------------------------------
1 | #import "SPTExample.h"
2 |
3 | @implementation SPTExample
4 |
5 | - (id)initWithName:(NSString *)name callSite:(SPTCallSite *)callSite focused:(BOOL)focused block:(SPTVoidBlock)block {
6 | self = [super init];
7 | if (self) {
8 | self.name = name;
9 | self.callSite = callSite;
10 | self.block = block;
11 | self.focused = focused;
12 | self.pending = block == nil;
13 | }
14 | return self;
15 | }
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/SPTExampleGroup.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 | #import "SpectaTypes.h"
4 |
5 | @class SPTExample;
6 | @class SPTCallSite;
7 |
8 | @interface SPTExampleGroup : NSObject
9 |
10 | @property (nonatomic, copy) NSString *name;
11 | @property (nonatomic, strong) SPTExampleGroup *root;
12 | @property (nonatomic, strong) SPTExampleGroup *parent;
13 | @property (nonatomic, strong) NSMutableArray *children;
14 | @property (nonatomic, strong) NSMutableArray *beforeAllArray;
15 | @property (nonatomic, strong) NSMutableArray *afterAllArray;
16 | @property (nonatomic, strong) NSMutableArray *beforeEachArray;
17 | @property (nonatomic, strong) NSMutableArray *afterEachArray;
18 | @property (nonatomic, strong) NSMutableDictionary *sharedExamples;
19 | @property (nonatomic) unsigned int exampleCount;
20 | @property (nonatomic) unsigned int ranExampleCount;
21 | @property (nonatomic) unsigned int pendingExampleCount;
22 | @property (nonatomic, getter=isFocused) BOOL focused;
23 |
24 | - (id)initWithName:(NSString *)name parent:(SPTExampleGroup *)parent root:(SPTExampleGroup *)root;
25 |
26 | - (SPTExampleGroup *)addExampleGroupWithName:(NSString *)name focused:(BOOL)focused;
27 | - (SPTExample *)addExampleWithName:(NSString *)name callSite:(SPTCallSite *)callSite focused:(BOOL)focused block:(SPTVoidBlock)block;
28 |
29 | - (void)addBeforeAllBlock:(SPTVoidBlock)block;
30 | - (void)addAfterAllBlock:(SPTVoidBlock)block;
31 | - (void)addBeforeEachBlock:(SPTVoidBlock)block;
32 | - (void)addAfterEachBlock:(SPTVoidBlock)block;
33 |
34 | - (NSArray *)compileExamplesWithStack:(NSArray *)stack;
35 |
36 | @end
37 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/SPTExcludeGlobalBeforeAfterEach.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Specta Team. All rights reserved.
3 | */
4 | #import
5 |
6 | // This protocol was used for blacklisting classes for global beforeEach and afterEach blocks.
7 | // Now, instead, classes are whitelisted by implementing the SPTGlobalBeforeAfterEach protocol.
8 | __deprecated_msg("Please whitelist classes instead with the SPTGlobalBeforeAfterEach protocol")
9 | @protocol SPTExcludeGlobalBeforeAfterEach
10 | @end
11 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/SPTGlobalBeforeAfterEach.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Specta Team. All rights reserved.
3 | */
4 | #import
5 |
6 | // This protocol is used for whitelisting classes for global beforeEach and afterEach blocks.
7 | // If you want a class to participate in those just add this protocol to a category and it will be
8 | // included.
9 | @protocol SPTGlobalBeforeAfterEach
10 |
11 | @optional
12 | + (void)beforeEach;
13 | + (void)afterEach;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/SPTSharedExampleGroups.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 | #import
4 |
5 | @class _XCTestCaseImplementation;
6 |
7 | @class SPTExampleGroup;
8 |
9 | @interface SPTSharedExampleGroups : XCTestCase
10 |
11 | + (void)addSharedExampleGroupWithName:(NSString *)name block:(SPTDictionaryBlock)block exampleGroup:(SPTExampleGroup *)exampleGroup;
12 | + (SPTDictionaryBlock)sharedExampleGroupWithName:(NSString *)name exampleGroup:(SPTExampleGroup *)exampleGroup;
13 |
14 | - (void)sharedExampleGroups;
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/SPTSpec.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 |
4 | @class
5 | SPTTestSuite
6 | , SPTCompiledExample
7 | ;
8 |
9 | @interface SPTSpec : XCTestCase
10 |
11 | @property (strong) XCTestCaseRun *spt_run;
12 | @property (nonatomic) BOOL spt_pending;
13 | @property (nonatomic) BOOL spt_skipped;
14 |
15 | + (BOOL)spt_isDisabled;
16 | + (void)spt_setDisabled:(BOOL)disabled;
17 | + (BOOL)spt_focusedExamplesExist;
18 | + (SEL)spt_convertToTestMethod:(SPTCompiledExample *)example;
19 | + (SPTTestSuite *)spt_testSuite;
20 | + (void)spt_setCurrentTestSuite;
21 | + (void)spt_unsetCurrentTestSuite;
22 | + (void)spt_setCurrentTestSuiteFileName:(NSString *)fileName lineNumber:(NSUInteger)lineNumber;
23 |
24 | - (void)spec;
25 | - (BOOL)spt_shouldRunExample:(SPTCompiledExample *)example;
26 | - (void)spt_runExample:(SPTCompiledExample *)example;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/SPTTestSuite.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | @class
4 | SPTExample
5 | , SPTExampleGroup
6 | ;
7 |
8 | @interface SPTTestSuite : NSObject
9 |
10 | @property (nonatomic, strong) SPTExampleGroup *rootGroup;
11 | @property (nonatomic, strong) NSMutableArray *groupStack;
12 | @property (nonatomic, strong) NSArray *compiledExamples;
13 | @property (nonatomic, copy) NSString *fileName;
14 | @property (nonatomic) NSUInteger lineNumber;
15 | @property (nonatomic, getter = isDisabled) BOOL disabled;
16 | @property (nonatomic) BOOL hasFocusedExamples;
17 |
18 | - (SPTExampleGroup *)currentGroup;
19 | - (void)compile;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/SPTTestSuite.m:
--------------------------------------------------------------------------------
1 | #import "SPTTestSuite.h"
2 | #import "SPTExampleGroup.h"
3 | #import "SPTCompiledExample.h"
4 |
5 | @implementation SPTTestSuite
6 |
7 | - (id)init {
8 | self = [super init];
9 | if (self) {
10 | self.rootGroup = [[SPTExampleGroup alloc] init];
11 | self.rootGroup.root = self.rootGroup;
12 | self.groupStack = [NSMutableArray arrayWithObject:self.rootGroup];
13 | }
14 | return self;
15 | }
16 |
17 | - (SPTExampleGroup *)currentGroup {
18 | return [self.groupStack lastObject];
19 | }
20 |
21 | - (void)compile {
22 | self.compiledExamples = [self.rootGroup compileExamplesWithStack:@[]];
23 | for (SPTCompiledExample *example in self.compiledExamples) {
24 | if (example.focused) {
25 | self.hasFocusedExamples = YES;
26 | break;
27 | }
28 | }
29 | }
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/Specta.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 |
4 | //! Project version number for Specta.
5 | FOUNDATION_EXPORT double SpectaVersionNumber;
6 |
7 | //! Project version string for Specta.
8 | FOUNDATION_EXPORT const unsigned char SpectaVersionString[];
9 |
10 | // In this header, you should import all the public headers of your framework using statements like #import
11 |
12 | #import
13 | #import
14 | #import
15 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/SpectaTypes.h:
--------------------------------------------------------------------------------
1 | @class SPTSpec;
2 |
3 | typedef void (^SPTVoidBlock)();
4 | typedef void (^SPTSpecBlock)(SPTSpec *spec);
5 | typedef void (^SPTDictionaryBlock)(NSDictionary *dictionary);
6 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/SpectaUtility.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | extern NSString * const spt_kCurrentTestSuiteKey;
4 | extern NSString * const spt_kCurrentSpecKey;
5 |
6 | #define SPTCurrentTestSuite [[NSThread mainThread] threadDictionary][spt_kCurrentTestSuiteKey]
7 | #define SPTCurrentSpec [[NSThread mainThread] threadDictionary][spt_kCurrentSpecKey]
8 | #define SPTCurrentGroup [SPTCurrentTestSuite currentGroup]
9 | #define SPTGroupStack [SPTCurrentTestSuite groupStack]
10 |
11 | #define SPTReturnUnlessBlockOrNil(block) if ((block) && !SPTIsBlock((block))) return;
12 | #define SPTIsBlock(obj) [(obj) isKindOfClass:NSClassFromString(@"NSBlock")]
13 |
14 | BOOL spt_isSpecClass(Class aClass);
15 | NSString *spt_underscorize(NSString *string);
16 | NSArray *spt_map(NSArray *array, id (^block)(id obj, NSUInteger idx));
17 | NSArray *spt_shuffle(NSArray *array);
18 | unsigned int spt_seed();
19 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/XCTest+Private.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 90000 || __MAC_OS_X_VERSION_MAX_ALLOWED >= 101100
4 |
5 | @interface XCTestObservationCenter (SPTTestSuspention)
6 |
7 | - (void)_suspendObservationForBlock:(void (^)(void))block;
8 |
9 | @end
10 |
11 | #else
12 |
13 | @interface XCTestObservationCenter : NSObject
14 |
15 | + (id)sharedObservationCenter;
16 | - (void)_suspendObservationForBlock:(void (^)(void))block;
17 |
18 | @end
19 |
20 | #endif
21 |
22 | @protocol XCTestObservation
23 | @end
24 |
25 | @interface _XCTestDriverTestObserver : NSObject
26 |
27 | - (void)stopObserving;
28 | - (void)startObserving;
29 |
30 | @end
31 |
32 | @interface _XCTestCaseImplementation : NSObject
33 | @end
34 |
35 | @interface XCTestCase ()
36 |
37 | - (_XCTestCaseImplementation *)internalImplementation;
38 | - (void)_recordUnexpectedFailureWithDescription:(NSString *)description exception:(NSException *)exception;
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/Example/Pods/Specta/Specta/Specta/XCTestCase+Specta.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | @interface XCTestCase (Specta)
4 |
5 | - (void)spt_handleException:(NSException *)exception;
6 |
7 | @end
8 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/DACircularProgress/DACircularProgress-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_DACircularProgress : NSObject
3 | @end
4 | @implementation PodsDummy_DACircularProgress
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/DACircularProgress/DACircularProgress-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/DACircularProgress/DACircularProgress.xcconfig:
--------------------------------------------------------------------------------
1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/DACircularProgress" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/Specta"
3 | OTHER_LDFLAGS = -framework "QuartzCore"
4 | PODS_ROOT = ${SRCROOT}
5 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Expecta_Snapshots : NSObject
3 | @end
4 | @implementation PodsDummy_Expecta_Snapshots
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots.xcconfig:
--------------------------------------------------------------------------------
1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks"
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/Specta"
4 | OTHER_LDFLAGS = -framework "Foundation" -framework "XCTest"
5 | PODS_ROOT = ${SRCROOT}
6 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Expecta/Expecta-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Expecta : NSObject
3 | @end
4 | @implementation PodsDummy_Expecta
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Expecta/Expecta-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Expecta/Expecta.xcconfig:
--------------------------------------------------------------------------------
1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks"
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Expecta" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/Specta"
4 | OTHER_LDFLAGS = -framework "Foundation" -framework "XCTest"
5 | PODS_ROOT = ${SRCROOT}
6 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_FBSnapshotTestCase : NSObject
3 | @end
4 | @implementation PodsDummy_FBSnapshotTestCase
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase.xcconfig:
--------------------------------------------------------------------------------
1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks"
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/Specta"
4 | OTHER_LDFLAGS = -framework "XCTest"
5 | PODS_ROOT = ${SRCROOT}
6 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/MBProgressHUD/MBProgressHUD-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_MBProgressHUD : NSObject
3 | @end
4 | @implementation PodsDummy_MBProgressHUD
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/MBProgressHUD/MBProgressHUD-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/MBProgressHUD/MBProgressHUD.xcconfig:
--------------------------------------------------------------------------------
1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MBProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/Specta"
3 | OTHER_LDFLAGS = -framework "CoreGraphics"
4 | PODS_ROOT = ${SRCROOT}
5 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/MWPhotoBrowser/MWPhotoBrowser-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_MWPhotoBrowser : NSObject
3 | @end
4 | @implementation PodsDummy_MWPhotoBrowser
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/MWPhotoBrowser/MWPhotoBrowser-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/MWPhotoBrowser/MWPhotoBrowser.xcconfig:
--------------------------------------------------------------------------------
1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/Specta"
3 | OTHER_LDFLAGS = -framework "AssetsLibrary" -framework "ImageIO" -framework "MediaPlayer" -framework "QuartzCore" -weak_framework "Photos"
4 | PODS_ROOT = ${SRCROOT}
5 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-MWPhotoBrowser_Example/Pods-MWPhotoBrowser_Example-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_MWPhotoBrowser_Example : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_MWPhotoBrowser_Example
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-MWPhotoBrowser_Example/Pods-MWPhotoBrowser_Example.debug.xcconfig:
--------------------------------------------------------------------------------
1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/Specta"
3 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/DACircularProgress" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" -isystem "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/Specta"
4 | OTHER_LDFLAGS = $(inherited) -ObjC -l"DACircularProgress" -l"MBProgressHUD" -l"MWPhotoBrowser" -l"SDWebImage" -framework "AssetsLibrary" -framework "CoreGraphics" -framework "ImageIO" -framework "MediaPlayer" -framework "QuartzCore" -weak_framework "Photos"
5 | PODS_ROOT = ${SRCROOT}/Pods
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-MWPhotoBrowser_Example/Pods-MWPhotoBrowser_Example.release.xcconfig:
--------------------------------------------------------------------------------
1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/Specta"
3 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/DACircularProgress" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" -isystem "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/Specta"
4 | OTHER_LDFLAGS = $(inherited) -ObjC -l"DACircularProgress" -l"MBProgressHUD" -l"MWPhotoBrowser" -l"SDWebImage" -framework "AssetsLibrary" -framework "CoreGraphics" -framework "ImageIO" -framework "MediaPlayer" -framework "QuartzCore" -weak_framework "Photos"
5 | PODS_ROOT = ${SRCROOT}/Pods
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-MWPhotoBrowser_Tests/Pods-MWPhotoBrowser_Tests-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_MWPhotoBrowser_Tests : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_MWPhotoBrowser_Tests
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-MWPhotoBrowser_Tests/Pods-MWPhotoBrowser_Tests.debug.xcconfig:
--------------------------------------------------------------------------------
1 | FRAMEWORK_SEARCH_PATHS = $(inherited) $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks"
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/Specta"
4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/DACircularProgress" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" -isystem "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/Specta"
5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"DACircularProgress" -l"Expecta" -l"Expecta+Snapshots" -l"FBSnapshotTestCase" -l"MBProgressHUD" -l"MWPhotoBrowser" -l"SDWebImage" -l"Specta" -framework "AssetsLibrary" -framework "CoreGraphics" -framework "Foundation" -framework "ImageIO" -framework "MediaPlayer" -framework "QuartzCore" -framework "XCTest" -weak_framework "Photos"
6 | PODS_ROOT = ${SRCROOT}/Pods
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Pods-MWPhotoBrowser_Tests/Pods-MWPhotoBrowser_Tests.release.xcconfig:
--------------------------------------------------------------------------------
1 | FRAMEWORK_SEARCH_PATHS = $(inherited) $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks"
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/Specta"
4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/DACircularProgress" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" -isystem "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/Specta"
5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"DACircularProgress" -l"Expecta" -l"Expecta+Snapshots" -l"FBSnapshotTestCase" -l"MBProgressHUD" -l"MWPhotoBrowser" -l"SDWebImage" -l"Specta" -framework "AssetsLibrary" -framework "CoreGraphics" -framework "Foundation" -framework "ImageIO" -framework "MediaPlayer" -framework "QuartzCore" -framework "XCTest" -weak_framework "Photos"
6 | PODS_ROOT = ${SRCROOT}/Pods
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/SDWebImage/SDWebImage-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_SDWebImage : NSObject
3 | @end
4 | @implementation PodsDummy_SDWebImage
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/SDWebImage/SDWebImage-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/SDWebImage/SDWebImage.xcconfig:
--------------------------------------------------------------------------------
1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SDWebImage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/Specta"
3 | OTHER_LDFLAGS = -framework "ImageIO"
4 | PODS_ROOT = ${SRCROOT}
5 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Specta/Specta-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Specta : NSObject
3 | @end
4 | @implementation PodsDummy_Specta
5 | @end
6 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Specta/Specta-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 |
--------------------------------------------------------------------------------
/Example/Pods/Target Support Files/Specta/Specta.xcconfig:
--------------------------------------------------------------------------------
1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" $(inherited) $(DEVELOPER_FRAMEWORKS_DIR) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "$(DEVELOPER_DIR)/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks"
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Specta" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Expecta+Snapshots" "${PODS_ROOT}/Headers/Public/FBSnapshotTestCase" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/Specta"
4 | OTHER_LDFLAGS = -framework "Foundation" -framework "XCTest"
5 | PODS_ROOT = ${SRCROOT}
6 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Example/Tests/Tests-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundlePackageType
14 | BNDL
15 | CFBundleShortVersionString
16 | 1.0
17 | CFBundleSignature
18 | ????
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Example/Tests/Tests-Prefix.pch:
--------------------------------------------------------------------------------
1 | // The contents of this file are implicitly included at the beginning of every test case source file.
2 |
3 | #ifdef __OBJC__
4 |
5 | @import Specta;
6 | @import Expecta;
7 | @import FBSnapshotTestCase;
8 | @import Expecta_Snapshots;
9 |
10 | #endif
11 |
--------------------------------------------------------------------------------
/Example/Tests/Tests.m:
--------------------------------------------------------------------------------
1 | //
2 | // MWPhotoBrowserTests.m
3 | // MWPhotoBrowserTests
4 | //
5 | // Created by Michael Waterfall on 07/04/2015.
6 | // Copyright (c) 2015 Michael Waterfall. All rights reserved.
7 | //
8 |
9 | // https://github.com/Specta/Specta
10 |
11 | SpecBegin(InitialSpecs)
12 |
13 | describe(@"these will fail", ^{
14 |
15 | it(@"can do maths", ^{
16 | expect(1).to.equal(2);
17 | });
18 |
19 | it(@"can read", ^{
20 | expect(@"number").to.equal(@"string");
21 | });
22 |
23 | it(@"will wait for 10 seconds and fail", ^{
24 | waitUntil(^(DoneCallback done) {
25 |
26 | });
27 | });
28 | });
29 |
30 | describe(@"these will pass", ^{
31 |
32 | it(@"can do maths", ^{
33 | expect(1).beLessThan(23);
34 | });
35 |
36 | it(@"can read", ^{
37 | expect(@"team").toNot.contain(@"I");
38 | });
39 |
40 | it(@"will wait and succeed", ^{
41 | waitUntil(^(DoneCallback done) {
42 | done();
43 | });
44 | });
45 | });
46 |
47 | SpecEnd
48 |
49 |
--------------------------------------------------------------------------------
/Example/Tests/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2010 Michael Waterfall
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/Pod/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/.gitkeep
--------------------------------------------------------------------------------
/Pod/Assets/ImageError.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/ImageError.png
--------------------------------------------------------------------------------
/Pod/Assets/ImageError@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/ImageError@2x.png
--------------------------------------------------------------------------------
/Pod/Assets/ImageError@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/ImageError@3x.png
--------------------------------------------------------------------------------
/Pod/Assets/ImageSelectedOff.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/ImageSelectedOff.png
--------------------------------------------------------------------------------
/Pod/Assets/ImageSelectedOff@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/ImageSelectedOff@2x.png
--------------------------------------------------------------------------------
/Pod/Assets/ImageSelectedOff@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/ImageSelectedOff@3x.png
--------------------------------------------------------------------------------
/Pod/Assets/ImageSelectedOn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/ImageSelectedOn.png
--------------------------------------------------------------------------------
/Pod/Assets/ImageSelectedOn@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/ImageSelectedOn@2x.png
--------------------------------------------------------------------------------
/Pod/Assets/ImageSelectedOn@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/ImageSelectedOn@3x.png
--------------------------------------------------------------------------------
/Pod/Assets/ImageSelectedSmallOff.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/ImageSelectedSmallOff.png
--------------------------------------------------------------------------------
/Pod/Assets/ImageSelectedSmallOff@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/ImageSelectedSmallOff@2x.png
--------------------------------------------------------------------------------
/Pod/Assets/ImageSelectedSmallOff@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/ImageSelectedSmallOff@3x.png
--------------------------------------------------------------------------------
/Pod/Assets/ImageSelectedSmallOn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/ImageSelectedSmallOn.png
--------------------------------------------------------------------------------
/Pod/Assets/ImageSelectedSmallOn@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/ImageSelectedSmallOn@2x.png
--------------------------------------------------------------------------------
/Pod/Assets/ImageSelectedSmallOn@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/ImageSelectedSmallOn@3x.png
--------------------------------------------------------------------------------
/Pod/Assets/PlayButtonOverlayLarge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/PlayButtonOverlayLarge.png
--------------------------------------------------------------------------------
/Pod/Assets/PlayButtonOverlayLarge@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/PlayButtonOverlayLarge@2x.png
--------------------------------------------------------------------------------
/Pod/Assets/PlayButtonOverlayLarge@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/PlayButtonOverlayLarge@3x.png
--------------------------------------------------------------------------------
/Pod/Assets/PlayButtonOverlayLargeTap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/PlayButtonOverlayLargeTap.png
--------------------------------------------------------------------------------
/Pod/Assets/PlayButtonOverlayLargeTap@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/PlayButtonOverlayLargeTap@2x.png
--------------------------------------------------------------------------------
/Pod/Assets/PlayButtonOverlayLargeTap@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/PlayButtonOverlayLargeTap@3x.png
--------------------------------------------------------------------------------
/Pod/Assets/UIBarButtonItemArrowLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/UIBarButtonItemArrowLeft.png
--------------------------------------------------------------------------------
/Pod/Assets/UIBarButtonItemArrowLeft@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/UIBarButtonItemArrowLeft@2x.png
--------------------------------------------------------------------------------
/Pod/Assets/UIBarButtonItemArrowLeft@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/UIBarButtonItemArrowLeft@3x.png
--------------------------------------------------------------------------------
/Pod/Assets/UIBarButtonItemArrowRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/UIBarButtonItemArrowRight.png
--------------------------------------------------------------------------------
/Pod/Assets/UIBarButtonItemArrowRight@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/UIBarButtonItemArrowRight@2x.png
--------------------------------------------------------------------------------
/Pod/Assets/UIBarButtonItemArrowRight@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/UIBarButtonItemArrowRight@3x.png
--------------------------------------------------------------------------------
/Pod/Assets/UIBarButtonItemGrid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/UIBarButtonItemGrid.png
--------------------------------------------------------------------------------
/Pod/Assets/UIBarButtonItemGrid@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/UIBarButtonItemGrid@2x.png
--------------------------------------------------------------------------------
/Pod/Assets/UIBarButtonItemGrid@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/UIBarButtonItemGrid@3x.png
--------------------------------------------------------------------------------
/Pod/Assets/VideoOverlay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/VideoOverlay.png
--------------------------------------------------------------------------------
/Pod/Assets/VideoOverlay@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/VideoOverlay@2x.png
--------------------------------------------------------------------------------
/Pod/Assets/VideoOverlay@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Assets/VideoOverlay@3x.png
--------------------------------------------------------------------------------
/Pod/Classes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Pod/Classes/.gitkeep
--------------------------------------------------------------------------------
/Pod/Classes/MWCaptionView.h:
--------------------------------------------------------------------------------
1 | //
2 | // MWCaptionView.h
3 | // MWPhotoBrowser
4 | //
5 | // Created by Michael Waterfall on 30/12/2011.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "MWPhotoProtocol.h"
11 |
12 | @interface MWCaptionView : UIToolbar
13 |
14 | // Init
15 | - (id)initWithPhoto:(id)photo;
16 |
17 | // To create your own custom caption view, subclass this view
18 | // and override the following two methods (as well as any other
19 | // UIView methods that you see fit):
20 |
21 | // Override -setupCaption so setup your subviews and customise the appearance
22 | // of your custom caption
23 | // You can access the photo's data by accessing the _photo ivar
24 | // If you need more data per photo then simply subclass MWPhoto and return your
25 | // subclass to the photo browsers -photoBrowser:photoAtIndex: delegate method
26 | - (void)setupCaption;
27 |
28 | // Override -sizeThatFits: and return a CGSize specifying the height of your
29 | // custom caption view. With width property is ignored and the caption is displayed
30 | // the full width of the screen
31 | - (CGSize)sizeThatFits:(CGSize)size;
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/Pod/Classes/MWCommon.h:
--------------------------------------------------------------------------------
1 | //
2 | // MWPreprocessor.h
3 | // MWPhotoBrowser
4 | //
5 | // Created by Michael Waterfall on 01/10/2013.
6 | //
7 |
8 | #define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
9 | #define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
10 | #define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
11 | #define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
12 | #define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)
13 |
--------------------------------------------------------------------------------
/Pod/Classes/MWGridCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // MWGridCell.h
3 | // MWPhotoBrowser
4 | //
5 | // Created by Michael Waterfall on 08/10/2013.
6 | //
7 | //
8 |
9 | #import
10 | #import "MWPhoto.h"
11 | #import "MWGridViewController.h"
12 |
13 | @interface MWGridCell : UICollectionViewCell {}
14 |
15 | @property (nonatomic, weak) MWGridViewController *gridController;
16 | @property (nonatomic) NSUInteger index;
17 | @property (nonatomic) id photo;
18 | @property (nonatomic) BOOL selectionMode;
19 | @property (nonatomic) BOOL isSelected;
20 |
21 | - (void)displayImage;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/Pod/Classes/MWGridViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MWGridViewController.h
3 | // MWPhotoBrowser
4 | //
5 | // Created by Michael Waterfall on 08/10/2013.
6 | //
7 | //
8 |
9 | #import
10 | #import "MWPhotoBrowser.h"
11 |
12 | @interface MWGridViewController : UICollectionViewController {}
13 |
14 | @property (nonatomic, assign) MWPhotoBrowser *browser;
15 | @property (nonatomic) BOOL selectionMode;
16 | @property (nonatomic) CGPoint initialContentOffset;
17 |
18 | - (void)adjustOffsetsAsRequired;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Pod/Classes/MWPhoto.h:
--------------------------------------------------------------------------------
1 | //
2 | // MWPhoto.h
3 | // MWPhotoBrowser
4 | //
5 | // Created by Michael Waterfall on 17/10/2010.
6 | // Copyright 2010 d3i. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "MWPhotoProtocol.h"
12 |
13 | // This class models a photo/image and it's caption
14 | // If you want to handle photos, caching, decompression
15 | // yourself then you can simply ensure your custom data model
16 | // conforms to MWPhotoProtocol
17 | @interface MWPhoto : NSObject
18 |
19 | @property (nonatomic, strong) NSString *caption;
20 | @property (nonatomic, strong) NSURL *videoURL;
21 | @property (nonatomic) BOOL emptyImage;
22 | @property (nonatomic) BOOL isVideo;
23 |
24 | + (MWPhoto *)photoWithImage:(UIImage *)image;
25 | + (MWPhoto *)photoWithURL:(NSURL *)url;
26 | + (MWPhoto *)photoWithAsset:(PHAsset *)asset targetSize:(CGSize)targetSize;
27 | + (MWPhoto *)videoWithURL:(NSURL *)url; // Initialise video with no poster image
28 |
29 | - (id)init;
30 | - (id)initWithImage:(UIImage *)image;
31 | - (id)initWithURL:(NSURL *)url;
32 | - (id)initWithAsset:(PHAsset *)asset targetSize:(CGSize)targetSize;
33 | - (id)initWithVideoURL:(NSURL *)url;
34 |
35 | @end
36 |
37 |
--------------------------------------------------------------------------------
/Pod/Classes/MWTapDetectingImageView.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImageViewTap.h
3 | // Momento
4 | //
5 | // Created by Michael Waterfall on 04/11/2009.
6 | // Copyright 2009 d3i. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @protocol MWTapDetectingImageViewDelegate;
12 |
13 | @interface MWTapDetectingImageView : UIImageView {}
14 |
15 | @property (nonatomic, weak) id tapDelegate;
16 |
17 | @end
18 |
19 | @protocol MWTapDetectingImageViewDelegate
20 |
21 | @optional
22 |
23 | - (void)imageView:(UIImageView *)imageView singleTapDetected:(UITouch *)touch;
24 | - (void)imageView:(UIImageView *)imageView doubleTapDetected:(UITouch *)touch;
25 | - (void)imageView:(UIImageView *)imageView tripleTapDetected:(UITouch *)touch;
26 |
27 | @end
--------------------------------------------------------------------------------
/Pod/Classes/MWTapDetectingImageView.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIImageViewTap.m
3 | // Momento
4 | //
5 | // Created by Michael Waterfall on 04/11/2009.
6 | // Copyright 2009 d3i. All rights reserved.
7 | //
8 |
9 | #import "MWTapDetectingImageView.h"
10 |
11 | @implementation MWTapDetectingImageView
12 |
13 | - (id)initWithFrame:(CGRect)frame {
14 | if ((self = [super initWithFrame:frame])) {
15 | self.userInteractionEnabled = YES;
16 | }
17 | return self;
18 | }
19 |
20 | - (id)initWithImage:(UIImage *)image {
21 | if ((self = [super initWithImage:image])) {
22 | self.userInteractionEnabled = YES;
23 | }
24 | return self;
25 | }
26 |
27 | - (id)initWithImage:(UIImage *)image highlightedImage:(UIImage *)highlightedImage {
28 | if ((self = [super initWithImage:image highlightedImage:highlightedImage])) {
29 | self.userInteractionEnabled = YES;
30 | }
31 | return self;
32 | }
33 |
34 | - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
35 | UITouch *touch = [touches anyObject];
36 | NSUInteger tapCount = touch.tapCount;
37 | switch (tapCount) {
38 | case 1:
39 | [self handleSingleTap:touch];
40 | break;
41 | case 2:
42 | [self handleDoubleTap:touch];
43 | break;
44 | case 3:
45 | [self handleTripleTap:touch];
46 | break;
47 | default:
48 | break;
49 | }
50 | [[self nextResponder] touchesEnded:touches withEvent:event];
51 | }
52 |
53 | - (void)handleSingleTap:(UITouch *)touch {
54 | if ([_tapDelegate respondsToSelector:@selector(imageView:singleTapDetected:)])
55 | [_tapDelegate imageView:self singleTapDetected:touch];
56 | }
57 |
58 | - (void)handleDoubleTap:(UITouch *)touch {
59 | if ([_tapDelegate respondsToSelector:@selector(imageView:doubleTapDetected:)])
60 | [_tapDelegate imageView:self doubleTapDetected:touch];
61 | }
62 |
63 | - (void)handleTripleTap:(UITouch *)touch {
64 | if ([_tapDelegate respondsToSelector:@selector(imageView:tripleTapDetected:)])
65 | [_tapDelegate imageView:self tripleTapDetected:touch];
66 | }
67 |
68 | @end
69 |
--------------------------------------------------------------------------------
/Pod/Classes/MWTapDetectingView.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewTap.h
3 | // Momento
4 | //
5 | // Created by Michael Waterfall on 04/11/2009.
6 | // Copyright 2009 d3i. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @protocol MWTapDetectingViewDelegate;
12 |
13 | @interface MWTapDetectingView : UIView {}
14 |
15 | @property (nonatomic, weak) id tapDelegate;
16 |
17 | @end
18 |
19 | @protocol MWTapDetectingViewDelegate
20 |
21 | @optional
22 |
23 | - (void)view:(UIView *)view singleTapDetected:(UITouch *)touch;
24 | - (void)view:(UIView *)view doubleTapDetected:(UITouch *)touch;
25 | - (void)view:(UIView *)view tripleTapDetected:(UITouch *)touch;
26 |
27 | @end
--------------------------------------------------------------------------------
/Pod/Classes/MWTapDetectingView.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewTap.m
3 | // Momento
4 | //
5 | // Created by Michael Waterfall on 04/11/2009.
6 | // Copyright 2009 d3i. All rights reserved.
7 | //
8 |
9 | #import "MWTapDetectingView.h"
10 |
11 | @implementation MWTapDetectingView
12 |
13 | - (id)init {
14 | if ((self = [super init])) {
15 | self.userInteractionEnabled = YES;
16 | }
17 | return self;
18 | }
19 |
20 | - (id)initWithFrame:(CGRect)frame {
21 | if ((self = [super initWithFrame:frame])) {
22 | self.userInteractionEnabled = YES;
23 | }
24 | return self;
25 | }
26 |
27 | - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
28 | UITouch *touch = [touches anyObject];
29 | NSUInteger tapCount = touch.tapCount;
30 | switch (tapCount) {
31 | case 1:
32 | [self handleSingleTap:touch];
33 | break;
34 | case 2:
35 | [self handleDoubleTap:touch];
36 | break;
37 | case 3:
38 | [self handleTripleTap:touch];
39 | break;
40 | default:
41 | break;
42 | }
43 | [[self nextResponder] touchesEnded:touches withEvent:event];
44 | }
45 |
46 | - (void)handleSingleTap:(UITouch *)touch {
47 | if ([_tapDelegate respondsToSelector:@selector(view:singleTapDetected:)])
48 | [_tapDelegate view:self singleTapDetected:touch];
49 | }
50 |
51 | - (void)handleDoubleTap:(UITouch *)touch {
52 | if ([_tapDelegate respondsToSelector:@selector(view:doubleTapDetected:)])
53 | [_tapDelegate view:self doubleTapDetected:touch];
54 | }
55 |
56 | - (void)handleTripleTap:(UITouch *)touch {
57 | if ([_tapDelegate respondsToSelector:@selector(view:tripleTapDetected:)])
58 | [_tapDelegate view:self tripleTapDetected:touch];
59 | }
60 |
61 | @end
62 |
--------------------------------------------------------------------------------
/Pod/Classes/MWZoomingScrollView.h:
--------------------------------------------------------------------------------
1 | //
2 | // ZoomingScrollView.h
3 | // MWPhotoBrowser
4 | //
5 | // Created by Michael Waterfall on 14/10/2010.
6 | // Copyright 2010 d3i. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "MWPhotoProtocol.h"
11 | #import "MWTapDetectingImageView.h"
12 | #import "MWTapDetectingView.h"
13 |
14 | @class MWPhotoBrowser, MWPhoto, MWCaptionView;
15 |
16 | @interface MWZoomingScrollView : UIScrollView {
17 |
18 | }
19 |
20 | @property () NSUInteger index;
21 | @property (nonatomic) id photo;
22 | @property (nonatomic, weak) MWCaptionView *captionView;
23 | @property (nonatomic, weak) UIButton *selectedButton;
24 | @property (nonatomic, weak) UIButton *playButton;
25 |
26 | - (id)initWithPhotoBrowser:(MWPhotoBrowser *)browser;
27 | - (void)displayImage;
28 | - (void)displayImageFailure;
29 | - (void)setMaxMinZoomScalesForCurrentBounds;
30 | - (void)prepareForReuse;
31 | - (BOOL)displayingVideo;
32 | - (void)setImageHidden:(BOOL)hidden;
33 |
34 | @end
35 |
--------------------------------------------------------------------------------
/Pod/Classes/UIImage+MWPhotoBrowser.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+MWPhotoBrowser.h
3 | // Pods
4 | //
5 | // Created by Michael Waterfall on 05/07/2015.
6 | //
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (MWPhotoBrowser)
12 |
13 | + (UIImage *)imageForResourcePath:(NSString *)path ofType:(NSString *)type inBundle:(NSBundle *)bundle;
14 | + (UIImage *)clearImageWithSize:(CGSize)size;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Pod/Classes/UIImage+MWPhotoBrowser.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+MWPhotoBrowser.m
3 | // Pods
4 | //
5 | // Created by Michael Waterfall on 05/07/2015.
6 | //
7 | //
8 |
9 | #import "UIImage+MWPhotoBrowser.h"
10 |
11 | @implementation UIImage (MWPhotoBrowser)
12 |
13 | + (UIImage *)imageForResourcePath:(NSString *)path ofType:(NSString *)type inBundle:(NSBundle *)bundle {
14 | return [UIImage imageWithContentsOfFile:[bundle pathForResource:path ofType:type]];
15 | }
16 |
17 | + (UIImage *)clearImageWithSize:(CGSize)size {
18 | UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale);
19 | UIImage *blank = UIGraphicsGetImageFromCurrentImageContext();
20 | UIGraphicsEndImageContext();
21 | return blank;
22 | }
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/Screenshots/MWPhotoBrowser1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Screenshots/MWPhotoBrowser1.png
--------------------------------------------------------------------------------
/Screenshots/MWPhotoBrowser1t.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Screenshots/MWPhotoBrowser1t.png
--------------------------------------------------------------------------------
/Screenshots/MWPhotoBrowser2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Screenshots/MWPhotoBrowser2.png
--------------------------------------------------------------------------------
/Screenshots/MWPhotoBrowser2t.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Screenshots/MWPhotoBrowser2t.png
--------------------------------------------------------------------------------
/Screenshots/MWPhotoBrowser3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Screenshots/MWPhotoBrowser3.png
--------------------------------------------------------------------------------
/Screenshots/MWPhotoBrowser3t.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Screenshots/MWPhotoBrowser3t.png
--------------------------------------------------------------------------------
/Screenshots/MWPhotoBrowser4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Screenshots/MWPhotoBrowser4.png
--------------------------------------------------------------------------------
/Screenshots/MWPhotoBrowser4t.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Screenshots/MWPhotoBrowser4t.png
--------------------------------------------------------------------------------
/Screenshots/MWPhotoBrowser5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Screenshots/MWPhotoBrowser5.png
--------------------------------------------------------------------------------
/Screenshots/MWPhotoBrowser5t.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Screenshots/MWPhotoBrowser5t.png
--------------------------------------------------------------------------------
/Screenshots/MWPhotoBrowser6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Screenshots/MWPhotoBrowser6.png
--------------------------------------------------------------------------------
/Screenshots/MWPhotoBrowser6t.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwaterfall/MWPhotoBrowser/66ddd73859978a9c24c6ce014634f3bde351e917/Screenshots/MWPhotoBrowser6t.png
--------------------------------------------------------------------------------
/_Pods.xcodeproj:
--------------------------------------------------------------------------------
1 | Example/Pods/Pods.xcodeproj
--------------------------------------------------------------------------------