Copy disabled (too large)
Download .txt
Showing preview only (12,666K chars total). Download the full file to get everything.
Repository: richeterre/SwiftGoal
Branch: master
Commit: eac3bcd043ed
Files: 1905
Total size: 11.5 MB
Directory structure:
gitextract_y3kpcg6a/
├── .gitignore
├── Cartfile
├── Cartfile.private
├── Cartfile.resolved
├── Carthage/
│ └── Checkouts/
│ ├── Argo/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .gitmodules
│ │ ├── .hound.yml
│ │ ├── Argo/
│ │ │ ├── Extensions/
│ │ │ │ ├── Dictionary.swift
│ │ │ │ ├── NSNumber.swift
│ │ │ │ └── RawRepresentable.swift
│ │ │ ├── Functions/
│ │ │ │ ├── catDecoded.swift
│ │ │ │ ├── curry.swift
│ │ │ │ ├── decode.swift
│ │ │ │ ├── flatReduce.swift
│ │ │ │ └── sequence.swift
│ │ │ ├── Operators/
│ │ │ │ ├── Argo.swift
│ │ │ │ └── Decode.swift
│ │ │ ├── Resources/
│ │ │ │ ├── Argo.h
│ │ │ │ └── Info.plist
│ │ │ └── Types/
│ │ │ ├── Decodable.swift
│ │ │ ├── DecodeError.swift
│ │ │ ├── Decoded/
│ │ │ │ ├── Alternative.swift
│ │ │ │ ├── Applicative.swift
│ │ │ │ ├── Decoded.swift
│ │ │ │ ├── FailureCoalescing.swift
│ │ │ │ ├── Functor.swift
│ │ │ │ └── Monad.swift
│ │ │ ├── JSON.swift
│ │ │ └── StandardTypes.swift
│ │ ├── Argo Playground.playground/
│ │ │ ├── Pages/
│ │ │ │ ├── Basics.xcplaygroundpage/
│ │ │ │ │ ├── Contents.swift
│ │ │ │ │ ├── Resources/
│ │ │ │ │ │ └── user_with_email.json
│ │ │ │ │ └── timeline.xctimeline
│ │ │ │ └── iTunes Example.xcplaygroundpage/
│ │ │ │ ├── Contents.swift
│ │ │ │ ├── Resources/
│ │ │ │ │ └── tropos.json
│ │ │ │ └── timeline.xctimeline
│ │ │ ├── contents.xcplayground
│ │ │ └── playground.xcworkspace/
│ │ │ └── contents.xcworkspacedata
│ │ ├── Argo.podspec
│ │ ├── Argo.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace/
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── xcschemes/
│ │ │ ├── Argo-Mac.xcscheme
│ │ │ ├── Argo-iOS.xcscheme
│ │ │ ├── Argo-tvOS.xcscheme
│ │ │ └── Argo-watchOS.xcscheme
│ │ ├── Argo.xcworkspace/
│ │ │ └── contents.xcworkspacedata
│ │ ├── ArgoTests/
│ │ │ ├── Info.plist
│ │ │ ├── JSON/
│ │ │ │ ├── JSONFileReader.swift
│ │ │ │ ├── array_root.json
│ │ │ │ ├── big_data.json
│ │ │ │ ├── booleans.json
│ │ │ │ ├── comment.json
│ │ │ │ ├── post_bad_comments.json
│ │ │ │ ├── post_comments.json
│ │ │ │ ├── post_no_comments.json
│ │ │ │ ├── root_array.json
│ │ │ │ ├── root_object.json
│ │ │ │ ├── types.json
│ │ │ │ ├── types_fail_embedded.json
│ │ │ │ ├── url.json
│ │ │ │ ├── user_with_bad_type.json
│ │ │ │ ├── user_with_email.json
│ │ │ │ ├── user_with_nested_name.json
│ │ │ │ ├── user_without_email.json
│ │ │ │ └── user_without_key.json
│ │ │ ├── Models/
│ │ │ │ ├── Booleans.swift
│ │ │ │ ├── Comment.swift
│ │ │ │ ├── NSURL.swift
│ │ │ │ ├── Post.swift
│ │ │ │ ├── TestModel.swift
│ │ │ │ └── User.swift
│ │ │ ├── Tests/
│ │ │ │ ├── DecodedTests.swift
│ │ │ │ ├── EmbeddedJSONDecodingTests.swift
│ │ │ │ ├── EquatableTests.swift
│ │ │ │ ├── ExampleTests.swift
│ │ │ │ ├── OptionalPropertyDecodingTests.swift
│ │ │ │ ├── PListDecodingTests.swift
│ │ │ │ ├── PerformanceTests.swift
│ │ │ │ ├── RawRepresentableTests.swift
│ │ │ │ ├── SwiftDictionaryDecodingTests.swift
│ │ │ │ └── TypeTests.swift
│ │ │ └── plists/
│ │ │ ├── PListFileReader.swift
│ │ │ └── types.plist
│ │ ├── CONTRIBUTING.md
│ │ ├── Cartfile.private
│ │ ├── Cartfile.resolved
│ │ ├── Carthage/
│ │ │ └── Checkouts/
│ │ │ └── Curry/
│ │ │ ├── .gitattributes
│ │ │ ├── .gitignore
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── Curry.podspec
│ │ │ ├── Curry.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ ├── project.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── xcschemes/
│ │ │ │ ├── Curry-Mac.xcscheme
│ │ │ │ ├── Curry-iOS.xcscheme
│ │ │ │ ├── Curry-tvOS.xcscheme
│ │ │ │ └── Curry-watchOS.xcscheme
│ │ │ ├── LICENSE
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ ├── Resources/
│ │ │ │ ├── Curry.h
│ │ │ │ └── Info.plist
│ │ │ ├── Source/
│ │ │ │ └── Curry.swift
│ │ │ └── bin/
│ │ │ └── generate
│ │ ├── Documentation/
│ │ │ ├── .gitkeep
│ │ │ ├── Basic-Usage.md
│ │ │ ├── Decode-Enums.md
│ │ │ ├── Decode-Root-Keys.md
│ │ │ ├── Functional-Concepts.md
│ │ │ ├── Ideology.md
│ │ │ ├── README.md
│ │ │ └── Relationships.md
│ │ ├── ISSUE_TEMPLATE.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── bin/
│ │ │ ├── archive
│ │ │ ├── setup
│ │ │ └── test
│ │ └── circle.yml
│ ├── Curry/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── CONTRIBUTING.md
│ │ ├── Curry.podspec
│ │ ├── Curry.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace/
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── xcschemes/
│ │ │ ├── Curry-Mac.xcscheme
│ │ │ ├── Curry-iOS.xcscheme
│ │ │ ├── Curry-tvOS.xcscheme
│ │ │ └── Curry-watchOS.xcscheme
│ │ ├── LICENSE
│ │ ├── Package.swift
│ │ ├── README.md
│ │ ├── Resources/
│ │ │ ├── Curry.h
│ │ │ └── Info.plist
│ │ ├── Source/
│ │ │ └── Curry.swift
│ │ └── bin/
│ │ └── generate
│ ├── DZNEmptyDataSet/
│ │ ├── .gitignore
│ │ ├── DZNEmptyDataSet.podspec
│ │ ├── Examples/
│ │ │ ├── Applications/
│ │ │ │ ├── Applications/
│ │ │ │ │ ├── AppDelegate.h
│ │ │ │ │ ├── AppDelegate.m
│ │ │ │ │ ├── Application.h
│ │ │ │ │ ├── Application.m
│ │ │ │ │ ├── Applications-Info.plist
│ │ │ │ │ ├── Applications-Prefix.pch
│ │ │ │ │ ├── DetailViewController.h
│ │ │ │ │ ├── DetailViewController.m
│ │ │ │ │ ├── Fonts/
│ │ │ │ │ │ └── Ideal Sans/
│ │ │ │ │ │ └── IdealSans-Book-Pro.otf
│ │ │ │ │ ├── Images.xcassets/
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── button_background_foursquare_highlight.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── button_background_foursquare_normal.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── button_background_icloud_highlight.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── button_background_icloud_normal.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── button_background_kickstarter_highlight.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── button_background_kickstarter_normal.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── header_pinterest.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── header_podcasts.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_500px.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_airbnb.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_appstore.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_camera.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_dropbox.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_facebook.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_fancy.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_foursquare.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_icloud.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_instagram.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_itunes_connect.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_kickstarter.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_path.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_photos.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_pinterest.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_podcasts.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_remote.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_safari.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_skype.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_slack.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_tumblr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_twitter.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_vesper.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_videos.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_vine.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_whatsapp.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_wwdc.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── loading_imgBlue_78x78.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_500px.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_airbnb.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_dropbox.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_facebook.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_fancy.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_foursquare.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_instagram.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_kickstarter.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_path.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_pinterest.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_skype.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_slack.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_tumblr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_twitter.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_vesper.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_vine.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_500px.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_airbnb.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_appstore.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_dropbox.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_facebook.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_fancy.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_foursquare.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_instagram.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_itunes_connect.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_kickstarter.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_path.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_remote.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_skype.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_slack.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_tumblr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_vesper.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_videos.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_vine.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── placeholder_whatsapp.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── MainViewController.h
│ │ │ │ │ ├── MainViewController.m
│ │ │ │ │ ├── Storyboard.storyboard
│ │ │ │ │ ├── System.xcassets/
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── LaunchImage.launchimage/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── UIColor+Hexadecimal.h
│ │ │ │ │ ├── UIColor+Hexadecimal.m
│ │ │ │ │ ├── applications.json
│ │ │ │ │ ├── en.lproj/
│ │ │ │ │ │ └── InfoPlist.strings
│ │ │ │ │ └── main.m
│ │ │ │ ├── Applications.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ ├── Applications.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ ├── Podfile
│ │ │ │ └── Pods/
│ │ │ │ ├── Local Podspecs/
│ │ │ │ │ └── DZNEmptyDataSet.podspec.json
│ │ │ │ ├── Pods.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── xcschemes/
│ │ │ │ │ └── DZNEmptyDataSet.xcscheme
│ │ │ │ └── Target Support Files/
│ │ │ │ ├── DZNEmptyDataSet/
│ │ │ │ │ ├── DZNEmptyDataSet-Private.xcconfig
│ │ │ │ │ ├── DZNEmptyDataSet-dummy.m
│ │ │ │ │ ├── DZNEmptyDataSet-prefix.pch
│ │ │ │ │ └── DZNEmptyDataSet.xcconfig
│ │ │ │ └── Pods/
│ │ │ │ ├── Pods-acknowledgements.markdown
│ │ │ │ ├── Pods-acknowledgements.plist
│ │ │ │ ├── Pods-dummy.m
│ │ │ │ ├── Pods-resources.sh
│ │ │ │ ├── Pods.debug.xcconfig
│ │ │ │ └── Pods.release.xcconfig
│ │ │ ├── Colors/
│ │ │ │ ├── Colors/
│ │ │ │ │ ├── AppDelegate.h
│ │ │ │ │ ├── AppDelegate.m
│ │ │ │ │ ├── CollectionViewController.h
│ │ │ │ │ ├── CollectionViewController.m
│ │ │ │ │ ├── Colors-Info.plist
│ │ │ │ │ ├── Colors-Prefix.pch
│ │ │ │ │ ├── DataSource/
│ │ │ │ │ │ ├── Color.h
│ │ │ │ │ │ ├── Color.m
│ │ │ │ │ │ ├── Palette.h
│ │ │ │ │ │ ├── Palette.m
│ │ │ │ │ │ ├── UIColor+Hex.h
│ │ │ │ │ │ ├── UIColor+Hex.m
│ │ │ │ │ │ └── colors.json
│ │ │ │ │ ├── Images.xcassets/
│ │ │ │ │ │ ├── empty_placeholder.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── search_icon.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tab_collection.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tab_search.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── tab_table.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── SearchViewController.h
│ │ │ │ │ ├── SearchViewController.m
│ │ │ │ │ ├── Storyboard.storyboard
│ │ │ │ │ ├── System.xcassets/
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── LaunchImage.launchimage/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── TableViewController.h
│ │ │ │ │ ├── TableViewController.m
│ │ │ │ │ ├── en.lproj/
│ │ │ │ │ │ └── InfoPlist.strings
│ │ │ │ │ └── main.m
│ │ │ │ ├── Colors.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ ├── Colors.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ ├── Podfile
│ │ │ │ └── Pods/
│ │ │ │ ├── Local Podspecs/
│ │ │ │ │ └── DZNEmptyDataSet.podspec.json
│ │ │ │ ├── Pods.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── xcschemes/
│ │ │ │ │ └── DZNEmptyDataSet.xcscheme
│ │ │ │ └── Target Support Files/
│ │ │ │ ├── DZNEmptyDataSet/
│ │ │ │ │ ├── DZNEmptyDataSet-Private.xcconfig
│ │ │ │ │ ├── DZNEmptyDataSet-dummy.m
│ │ │ │ │ ├── DZNEmptyDataSet-prefix.pch
│ │ │ │ │ └── DZNEmptyDataSet.xcconfig
│ │ │ │ └── Pods/
│ │ │ │ ├── Pods-acknowledgements.markdown
│ │ │ │ ├── Pods-acknowledgements.plist
│ │ │ │ ├── Pods-dummy.m
│ │ │ │ ├── Pods-resources.sh
│ │ │ │ ├── Pods.debug.xcconfig
│ │ │ │ └── Pods.release.xcconfig
│ │ │ ├── Countries/
│ │ │ │ ├── Countries/
│ │ │ │ │ ├── AppDelegate.h
│ │ │ │ │ ├── AppDelegate.m
│ │ │ │ │ ├── Country.h
│ │ │ │ │ ├── Country.m
│ │ │ │ │ ├── Images.xcassets/
│ │ │ │ │ │ ├── ad.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ae.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── af.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ag.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── al.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── am.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ar.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── at.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── au.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── az.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ba.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bb.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bd.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── be.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bf.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bg.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bh.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bi.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bj.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bo.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── br.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bs.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bt.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bw.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── by.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ca.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cd.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cf.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cg.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ch.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ci.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cl.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── co.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cu.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cv.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cy.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── de.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── dj.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── dk.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── dm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── do.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── dz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ec.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ee.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── eg.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── er.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── es.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── et.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── fi.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── fj.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── fm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── fr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ga.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gb.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gd.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ge.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gh.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gq.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gt.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gw.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gy.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── hn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── hr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ht.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── hu.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── id.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ie.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── il.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── in.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── iq.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ir.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── is.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── it.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── jm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── jo.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── jp.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ke.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── kg.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── kh.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ki.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── km.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── kn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── kp.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── kr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── kv.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── kw.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── kz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── la.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── lb.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── lc.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── li.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── lk.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── lr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ls.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── lt.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── lu.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── lv.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ly.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ma.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mc.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── md.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── me.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mg.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mh.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mk.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ml.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mt.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mu.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mv.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mw.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mx.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── my.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── na.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ne.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ng.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ni.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── nl.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── no.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── np.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── nr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── nz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── om.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── pa.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── pe.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── pg.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ph.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── pk.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── pl.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── pt.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── pw.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── py.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── qa.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ro.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── rs.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ru.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── rw.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sa.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sb.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sc.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sd.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── se.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── search_icon.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sg.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── si.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sk.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sl.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── so.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ss.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── st.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sv.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sy.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── td.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tg.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── th.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tj.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tl.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── to.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tt.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tv.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tw.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ua.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ug.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── unknown.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── us.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── uy.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── uz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── va.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── vc.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ve.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── vn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── vu.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ws.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ye.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── za.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── zm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── zw.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── MainViewController.h
│ │ │ │ │ ├── MainViewController.m
│ │ │ │ │ ├── Model.xcdatamodeld/
│ │ │ │ │ │ └── Model.xcdatamodel/
│ │ │ │ │ │ └── contents
│ │ │ │ │ ├── Supporting Files/
│ │ │ │ │ │ ├── Countries-Info.plist
│ │ │ │ │ │ ├── Countries-Prefix.pch
│ │ │ │ │ │ └── main.m
│ │ │ │ │ ├── System.xcassets/
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── LaunchImage.launchimage/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── countries.json
│ │ │ │ │ └── en.lproj/
│ │ │ │ │ └── InfoPlist.strings
│ │ │ │ ├── Countries.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ ├── Countries.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ ├── Podfile
│ │ │ │ └── Pods/
│ │ │ │ ├── Local Podspecs/
│ │ │ │ │ └── DZNEmptyDataSet.podspec.json
│ │ │ │ ├── NSManagedObjectContext-Hydrate/
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ ├── README.md
│ │ │ │ │ └── Source/
│ │ │ │ │ ├── NSManagedObjectContext+Hydrate.h
│ │ │ │ │ └── NSManagedObjectContext+Hydrate.m
│ │ │ │ ├── Pods.xcodeproj/
│ │ │ │ │ └── project.pbxproj
│ │ │ │ └── Target Support Files/
│ │ │ │ ├── DZNEmptyDataSet/
│ │ │ │ │ ├── DZNEmptyDataSet-Private.xcconfig
│ │ │ │ │ ├── DZNEmptyDataSet-dummy.m
│ │ │ │ │ ├── DZNEmptyDataSet-prefix.pch
│ │ │ │ │ └── DZNEmptyDataSet.xcconfig
│ │ │ │ ├── NSManagedObjectContext-Hydrate/
│ │ │ │ │ ├── NSManagedObjectContext-Hydrate-Private.xcconfig
│ │ │ │ │ ├── NSManagedObjectContext-Hydrate-dummy.m
│ │ │ │ │ ├── NSManagedObjectContext-Hydrate-prefix.pch
│ │ │ │ │ └── NSManagedObjectContext-Hydrate.xcconfig
│ │ │ │ └── Pods/
│ │ │ │ ├── Pods-acknowledgements.markdown
│ │ │ │ ├── Pods-acknowledgements.plist
│ │ │ │ ├── Pods-dummy.m
│ │ │ │ ├── Pods-resources.sh
│ │ │ │ ├── Pods.debug.xcconfig
│ │ │ │ └── Pods.release.xcconfig
│ │ │ └── WebBrowser/
│ │ │ ├── Podfile
│ │ │ ├── Pods/
│ │ │ │ ├── DZNWebViewController/
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ ├── README.md
│ │ │ │ │ └── Source/
│ │ │ │ │ ├── Classes/
│ │ │ │ │ │ ├── DZNPolyActivity.h
│ │ │ │ │ │ ├── DZNPolyActivity.m
│ │ │ │ │ │ ├── DZNWebViewController.h
│ │ │ │ │ │ └── DZNWebViewController.m
│ │ │ │ │ └── Scripts/
│ │ │ │ │ └── inpector-script.js
│ │ │ │ ├── Local Podspecs/
│ │ │ │ │ └── DZNEmptyDataSet.podspec.json
│ │ │ │ ├── NJKWebViewProgress/
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ ├── NJKWebViewProgress/
│ │ │ │ │ │ ├── NJKWebViewProgress.h
│ │ │ │ │ │ ├── NJKWebViewProgress.m
│ │ │ │ │ │ ├── NJKWebViewProgressView.h
│ │ │ │ │ │ └── NJKWebViewProgressView.m
│ │ │ │ │ └── README.md
│ │ │ │ ├── Pods.xcodeproj/
│ │ │ │ │ └── project.pbxproj
│ │ │ │ └── Target Support Files/
│ │ │ │ ├── DZNEmptyDataSet/
│ │ │ │ │ ├── DZNEmptyDataSet-Private.xcconfig
│ │ │ │ │ ├── DZNEmptyDataSet-dummy.m
│ │ │ │ │ ├── DZNEmptyDataSet-prefix.pch
│ │ │ │ │ └── DZNEmptyDataSet.xcconfig
│ │ │ │ ├── DZNWebViewController/
│ │ │ │ │ ├── DZNWebViewController-Private.xcconfig
│ │ │ │ │ ├── DZNWebViewController-dummy.m
│ │ │ │ │ ├── DZNWebViewController-prefix.pch
│ │ │ │ │ └── DZNWebViewController.xcconfig
│ │ │ │ ├── NJKWebViewProgress/
│ │ │ │ │ ├── NJKWebViewProgress-Private.xcconfig
│ │ │ │ │ ├── NJKWebViewProgress-dummy.m
│ │ │ │ │ ├── NJKWebViewProgress-prefix.pch
│ │ │ │ │ └── NJKWebViewProgress.xcconfig
│ │ │ │ └── Pods/
│ │ │ │ ├── Pods-acknowledgements.markdown
│ │ │ │ ├── Pods-acknowledgements.plist
│ │ │ │ ├── Pods-dummy.m
│ │ │ │ ├── Pods-resources.sh
│ │ │ │ ├── Pods.debug.xcconfig
│ │ │ │ └── Pods.release.xcconfig
│ │ │ ├── WebBrowser/
│ │ │ │ ├── AppDelegate.h
│ │ │ │ ├── AppDelegate.m
│ │ │ │ ├── Images.xcassets/
│ │ │ │ │ └── AppIcon.appiconset/
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Info.plist
│ │ │ │ ├── Launch Screen.xib
│ │ │ │ ├── ViewController.h
│ │ │ │ ├── ViewController.m
│ │ │ │ ├── WebViewController.h
│ │ │ │ ├── WebViewController.m
│ │ │ │ └── main.m
│ │ │ ├── WebBrowser.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── WebBrowser.xcworkspace/
│ │ │ └── contents.xcworkspacedata
│ │ ├── Framework/
│ │ │ ├── DZNEmptyDataSet/
│ │ │ │ ├── DZNEmptyDataSet.h
│ │ │ │ └── Info.plist
│ │ │ └── DZNEmptyDataSet.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace/
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── xcschemes/
│ │ │ └── DZNEmptyDataSet.xcscheme
│ │ ├── LICENSE
│ │ ├── README.md
│ │ └── Source/
│ │ ├── UIScrollView+EmptyDataSet.h
│ │ └── UIScrollView+EmptyDataSet.m
│ ├── Nimble/
│ │ ├── .gitignore
│ │ ├── .ruby-version
│ │ ├── .swift-version
│ │ ├── .travis.yml
│ │ ├── CONTRIBUTING.md
│ │ ├── Gemfile
│ │ ├── LICENSE.md
│ │ ├── Nimble.podspec
│ │ ├── Nimble.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace/
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── xcschemes/
│ │ │ ├── Nimble-OSX.xcscheme
│ │ │ ├── Nimble-iOS.xcscheme
│ │ │ └── Nimble-tvOS.xcscheme
│ │ ├── Package.swift
│ │ ├── README.md
│ │ ├── Sources/
│ │ │ └── Nimble/
│ │ │ ├── Adapters/
│ │ │ │ ├── AdapterProtocols.swift
│ │ │ │ ├── AssertionDispatcher.swift
│ │ │ │ ├── AssertionRecorder.swift
│ │ │ │ ├── NimbleEnvironment.swift
│ │ │ │ ├── NimbleXCTestHandler.swift
│ │ │ │ ├── NonObjectiveC/
│ │ │ │ │ └── ExceptionCapture.swift
│ │ │ │ └── ObjectiveC/
│ │ │ │ ├── CurrentTestCaseTracker.h
│ │ │ │ ├── DSL.h
│ │ │ │ ├── DSL.m
│ │ │ │ ├── NMBExceptionCapture.h
│ │ │ │ ├── NMBExceptionCapture.m
│ │ │ │ ├── NMBExpectation.swift
│ │ │ │ ├── NMBObjCMatcher.swift
│ │ │ │ ├── NMBStringify.h
│ │ │ │ ├── NMBStringify.m
│ │ │ │ └── XCTestObservationCenter+Register.m
│ │ │ ├── DSL+Wait.swift
│ │ │ ├── DSL.swift
│ │ │ ├── Expectation.swift
│ │ │ ├── Expression.swift
│ │ │ ├── FailureMessage.swift
│ │ │ ├── Info.plist
│ │ │ ├── Matchers/
│ │ │ │ ├── AllPass.swift
│ │ │ │ ├── AsyncMatcherWrapper.swift
│ │ │ │ ├── BeAKindOf.swift
│ │ │ │ ├── BeAnInstanceOf.swift
│ │ │ │ ├── BeCloseTo.swift
│ │ │ │ ├── BeEmpty.swift
│ │ │ │ ├── BeGreaterThan.swift
│ │ │ │ ├── BeGreaterThanOrEqualTo.swift
│ │ │ │ ├── BeIdenticalTo.swift
│ │ │ │ ├── BeLessThan.swift
│ │ │ │ ├── BeLessThanOrEqual.swift
│ │ │ │ ├── BeLogical.swift
│ │ │ │ ├── BeNil.swift
│ │ │ │ ├── BeVoid.swift
│ │ │ │ ├── BeginWith.swift
│ │ │ │ ├── Contain.swift
│ │ │ │ ├── EndWith.swift
│ │ │ │ ├── Equal.swift
│ │ │ │ ├── HaveCount.swift
│ │ │ │ ├── Match.swift
│ │ │ │ ├── MatchError.swift
│ │ │ │ ├── MatcherFunc.swift
│ │ │ │ ├── MatcherProtocols.swift
│ │ │ │ ├── PostNotification.swift
│ │ │ │ ├── RaisesException.swift
│ │ │ │ ├── SatisfyAnyOf.swift
│ │ │ │ └── ThrowError.swift
│ │ │ ├── Nimble.h
│ │ │ └── Utils/
│ │ │ ├── Async.swift
│ │ │ ├── Errors.swift
│ │ │ ├── Functional.swift
│ │ │ ├── SourceLocation.swift
│ │ │ └── Stringers.swift
│ │ ├── Tests/
│ │ │ ├── LinuxMain.swift
│ │ │ └── Nimble/
│ │ │ ├── AsynchronousTest.swift
│ │ │ ├── Helpers/
│ │ │ │ ├── ObjectWithLazyProperty.swift
│ │ │ │ ├── XCTestCaseProvider.swift
│ │ │ │ └── utils.swift
│ │ │ ├── Info.plist
│ │ │ ├── Matchers/
│ │ │ │ ├── AllPassTest.swift
│ │ │ │ ├── BeAKindOfTest.swift
│ │ │ │ ├── BeAnInstanceOfTest.swift
│ │ │ │ ├── BeCloseToTest.swift
│ │ │ │ ├── BeEmptyTest.swift
│ │ │ │ ├── BeGreaterThanOrEqualToTest.swift
│ │ │ │ ├── BeGreaterThanTest.swift
│ │ │ │ ├── BeIdenticalToObjectTest.swift
│ │ │ │ ├── BeIdenticalToTest.swift
│ │ │ │ ├── BeLessThanOrEqualToTest.swift
│ │ │ │ ├── BeLessThanTest.swift
│ │ │ │ ├── BeLogicalTest.swift
│ │ │ │ ├── BeNilTest.swift
│ │ │ │ ├── BeVoidTest.swift
│ │ │ │ ├── BeginWithTest.swift
│ │ │ │ ├── ContainTest.swift
│ │ │ │ ├── EndWithTest.swift
│ │ │ │ ├── EqualTest.swift
│ │ │ │ ├── HaveCountTest.swift
│ │ │ │ ├── MatchErrorTest.swift
│ │ │ │ ├── MatchTest.swift
│ │ │ │ ├── PostNotificationTest.swift
│ │ │ │ ├── RaisesExceptionTest.swift
│ │ │ │ ├── SatisfyAnyOfTest.swift
│ │ │ │ └── ThrowErrorTest.swift
│ │ │ ├── SynchronousTests.swift
│ │ │ ├── UserDescriptionTest.swift
│ │ │ └── objc/
│ │ │ ├── NimbleSpecHelper.h
│ │ │ ├── ObjCAllPassTest.m
│ │ │ ├── ObjCAsyncTest.m
│ │ │ ├── ObjCBeAnInstanceOfTest.m
│ │ │ ├── ObjCBeCloseToTest.m
│ │ │ ├── ObjCBeEmptyTest.m
│ │ │ ├── ObjCBeFalseTest.m
│ │ │ ├── ObjCBeFalsyTest.m
│ │ │ ├── ObjCBeGreaterThanOrEqualToTest.m
│ │ │ ├── ObjCBeGreaterThanTest.m
│ │ │ ├── ObjCBeIdenticalToTest.m
│ │ │ ├── ObjCBeKindOfTest.m
│ │ │ ├── ObjCBeLessThanOrEqualToTest.m
│ │ │ ├── ObjCBeLessThanTest.m
│ │ │ ├── ObjCBeNilTest.m
│ │ │ ├── ObjCBeTrueTest.m
│ │ │ ├── ObjCBeTruthyTest.m
│ │ │ ├── ObjCBeginWithTest.m
│ │ │ ├── ObjCContainTest.m
│ │ │ ├── ObjCEndWithTest.m
│ │ │ ├── ObjCEqualTest.m
│ │ │ ├── ObjCHaveCount.m
│ │ │ ├── ObjCMatchTest.m
│ │ │ ├── ObjCRaiseExceptionTest.m
│ │ │ ├── ObjCSatisfyAnyOfTest.m
│ │ │ ├── ObjCSyncTest.m
│ │ │ ├── ObjCUserDescriptionTest.m
│ │ │ └── ObjcStringersTest.m
│ │ ├── circle.yml
│ │ ├── script/
│ │ │ └── release
│ │ └── test
│ ├── Quick/
│ │ ├── .gitignore
│ │ ├── .gitmodules
│ │ ├── .ruby-version
│ │ ├── .swift-version
│ │ ├── .travis.yml
│ │ ├── CONTRIBUTING.md
│ │ ├── Documentation/
│ │ │ ├── en-us/
│ │ │ │ ├── ArrangeActAssert.md
│ │ │ │ ├── BehavioralTesting.md
│ │ │ │ ├── ConfiguringQuick.md
│ │ │ │ ├── InstallingFileTemplates.md
│ │ │ │ ├── InstallingQuick.md
│ │ │ │ ├── MoreResources.md
│ │ │ │ ├── NimbleAssertions.md
│ │ │ │ ├── QuickExamplesAndGroups.md
│ │ │ │ ├── QuickInObjectiveC.md
│ │ │ │ ├── README.md
│ │ │ │ ├── SettingUpYourXcodeProject.md
│ │ │ │ ├── SharedExamples.md
│ │ │ │ └── TestingApps.md
│ │ │ ├── ja/
│ │ │ │ ├── ArrangeActAssert.md
│ │ │ │ ├── BehavioralTesting.md
│ │ │ │ ├── ConfiguringQuick.md
│ │ │ │ ├── InstallingFileTemplates.md
│ │ │ │ ├── InstallingQuick.md
│ │ │ │ ├── MoreResources.md
│ │ │ │ ├── NimbleAssertions.md
│ │ │ │ ├── QuickExamplesAndGroups.md
│ │ │ │ ├── QuickInObjectiveC.md
│ │ │ │ ├── README.md
│ │ │ │ ├── SettingUpYourXcodeProject.md
│ │ │ │ ├── SharedExamples.md
│ │ │ │ └── TestingApps.md
│ │ │ └── zh-cn/
│ │ │ └── SettingUpYourXcodeProject.md
│ │ ├── Externals/
│ │ │ └── Nimble/
│ │ │ ├── .gitignore
│ │ │ ├── .ruby-version
│ │ │ ├── .swift-version
│ │ │ ├── .travis.yml
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── Gemfile
│ │ │ ├── LICENSE.md
│ │ │ ├── Nimble.podspec
│ │ │ ├── Nimble.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ ├── project.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── xcschemes/
│ │ │ │ ├── Nimble-OSX.xcscheme
│ │ │ │ ├── Nimble-iOS.xcscheme
│ │ │ │ └── Nimble-tvOS.xcscheme
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ ├── Sources/
│ │ │ │ └── Nimble/
│ │ │ │ ├── Adapters/
│ │ │ │ │ ├── AdapterProtocols.swift
│ │ │ │ │ ├── AssertionDispatcher.swift
│ │ │ │ │ ├── AssertionRecorder.swift
│ │ │ │ │ ├── NimbleEnvironment.swift
│ │ │ │ │ ├── NimbleXCTestHandler.swift
│ │ │ │ │ ├── NonObjectiveC/
│ │ │ │ │ │ └── ExceptionCapture.swift
│ │ │ │ │ └── ObjectiveC/
│ │ │ │ │ ├── CurrentTestCaseTracker.h
│ │ │ │ │ ├── DSL.h
│ │ │ │ │ ├── DSL.m
│ │ │ │ │ ├── NMBExceptionCapture.h
│ │ │ │ │ ├── NMBExceptionCapture.m
│ │ │ │ │ ├── NMBExpectation.swift
│ │ │ │ │ ├── NMBObjCMatcher.swift
│ │ │ │ │ ├── NMBStringify.h
│ │ │ │ │ ├── NMBStringify.m
│ │ │ │ │ └── XCTestObservationCenter+Register.m
│ │ │ │ ├── DSL+Wait.swift
│ │ │ │ ├── DSL.swift
│ │ │ │ ├── Expectation.swift
│ │ │ │ ├── Expression.swift
│ │ │ │ ├── FailureMessage.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── Matchers/
│ │ │ │ │ ├── AllPass.swift
│ │ │ │ │ ├── AsyncMatcherWrapper.swift
│ │ │ │ │ ├── BeAKindOf.swift
│ │ │ │ │ ├── BeAnInstanceOf.swift
│ │ │ │ │ ├── BeCloseTo.swift
│ │ │ │ │ ├── BeEmpty.swift
│ │ │ │ │ ├── BeGreaterThan.swift
│ │ │ │ │ ├── BeGreaterThanOrEqualTo.swift
│ │ │ │ │ ├── BeIdenticalTo.swift
│ │ │ │ │ ├── BeLessThan.swift
│ │ │ │ │ ├── BeLessThanOrEqual.swift
│ │ │ │ │ ├── BeLogical.swift
│ │ │ │ │ ├── BeNil.swift
│ │ │ │ │ ├── BeVoid.swift
│ │ │ │ │ ├── BeginWith.swift
│ │ │ │ │ ├── Contain.swift
│ │ │ │ │ ├── EndWith.swift
│ │ │ │ │ ├── Equal.swift
│ │ │ │ │ ├── HaveCount.swift
│ │ │ │ │ ├── Match.swift
│ │ │ │ │ ├── MatchError.swift
│ │ │ │ │ ├── MatcherFunc.swift
│ │ │ │ │ ├── MatcherProtocols.swift
│ │ │ │ │ ├── PostNotification.swift
│ │ │ │ │ ├── RaisesException.swift
│ │ │ │ │ ├── SatisfyAnyOf.swift
│ │ │ │ │ └── ThrowError.swift
│ │ │ │ ├── Nimble.h
│ │ │ │ └── Utils/
│ │ │ │ ├── Async.swift
│ │ │ │ ├── Errors.swift
│ │ │ │ ├── Functional.swift
│ │ │ │ ├── SourceLocation.swift
│ │ │ │ └── Stringers.swift
│ │ │ ├── Tests/
│ │ │ │ ├── LinuxMain.swift
│ │ │ │ └── Nimble/
│ │ │ │ ├── AsynchronousTest.swift
│ │ │ │ ├── Helpers/
│ │ │ │ │ ├── ObjectWithLazyProperty.swift
│ │ │ │ │ ├── XCTestCaseProvider.swift
│ │ │ │ │ └── utils.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── Matchers/
│ │ │ │ │ ├── AllPassTest.swift
│ │ │ │ │ ├── BeAKindOfTest.swift
│ │ │ │ │ ├── BeAnInstanceOfTest.swift
│ │ │ │ │ ├── BeCloseToTest.swift
│ │ │ │ │ ├── BeEmptyTest.swift
│ │ │ │ │ ├── BeGreaterThanOrEqualToTest.swift
│ │ │ │ │ ├── BeGreaterThanTest.swift
│ │ │ │ │ ├── BeIdenticalToObjectTest.swift
│ │ │ │ │ ├── BeIdenticalToTest.swift
│ │ │ │ │ ├── BeLessThanOrEqualToTest.swift
│ │ │ │ │ ├── BeLessThanTest.swift
│ │ │ │ │ ├── BeLogicalTest.swift
│ │ │ │ │ ├── BeNilTest.swift
│ │ │ │ │ ├── BeVoidTest.swift
│ │ │ │ │ ├── BeginWithTest.swift
│ │ │ │ │ ├── ContainTest.swift
│ │ │ │ │ ├── EndWithTest.swift
│ │ │ │ │ ├── EqualTest.swift
│ │ │ │ │ ├── HaveCountTest.swift
│ │ │ │ │ ├── MatchErrorTest.swift
│ │ │ │ │ ├── MatchTest.swift
│ │ │ │ │ ├── PostNotificationTest.swift
│ │ │ │ │ ├── RaisesExceptionTest.swift
│ │ │ │ │ ├── SatisfyAnyOfTest.swift
│ │ │ │ │ └── ThrowErrorTest.swift
│ │ │ │ ├── SynchronousTests.swift
│ │ │ │ ├── UserDescriptionTest.swift
│ │ │ │ └── objc/
│ │ │ │ ├── NimbleSpecHelper.h
│ │ │ │ ├── ObjCAllPassTest.m
│ │ │ │ ├── ObjCAsyncTest.m
│ │ │ │ ├── ObjCBeAnInstanceOfTest.m
│ │ │ │ ├── ObjCBeCloseToTest.m
│ │ │ │ ├── ObjCBeEmptyTest.m
│ │ │ │ ├── ObjCBeFalseTest.m
│ │ │ │ ├── ObjCBeFalsyTest.m
│ │ │ │ ├── ObjCBeGreaterThanOrEqualToTest.m
│ │ │ │ ├── ObjCBeGreaterThanTest.m
│ │ │ │ ├── ObjCBeIdenticalToTest.m
│ │ │ │ ├── ObjCBeKindOfTest.m
│ │ │ │ ├── ObjCBeLessThanOrEqualToTest.m
│ │ │ │ ├── ObjCBeLessThanTest.m
│ │ │ │ ├── ObjCBeNilTest.m
│ │ │ │ ├── ObjCBeTrueTest.m
│ │ │ │ ├── ObjCBeTruthyTest.m
│ │ │ │ ├── ObjCBeginWithTest.m
│ │ │ │ ├── ObjCContainTest.m
│ │ │ │ ├── ObjCEndWithTest.m
│ │ │ │ ├── ObjCEqualTest.m
│ │ │ │ ├── ObjCHaveCount.m
│ │ │ │ ├── ObjCMatchTest.m
│ │ │ │ ├── ObjCRaiseExceptionTest.m
│ │ │ │ ├── ObjCSatisfyAnyOfTest.m
│ │ │ │ ├── ObjCSyncTest.m
│ │ │ │ ├── ObjCUserDescriptionTest.m
│ │ │ │ └── ObjcStringersTest.m
│ │ │ ├── circle.yml
│ │ │ ├── script/
│ │ │ │ └── release
│ │ │ └── test
│ │ ├── Gemfile
│ │ ├── LICENSE
│ │ ├── Package.swift
│ │ ├── Quick Templates/
│ │ │ ├── Quick Configuration Class.xctemplate/
│ │ │ │ ├── Objective-C/
│ │ │ │ │ ├── ___FILEBASENAME___.h
│ │ │ │ │ └── ___FILEBASENAME___.m
│ │ │ │ ├── Swift/
│ │ │ │ │ └── ___FILEBASENAME___.swift
│ │ │ │ ├── TemplateIcon.icns
│ │ │ │ └── TemplateInfo.plist
│ │ │ └── Quick Spec Class.xctemplate/
│ │ │ ├── Objective-C/
│ │ │ │ └── ___FILEBASENAME___.m
│ │ │ ├── Swift/
│ │ │ │ └── ___FILEBASENAME___.swift
│ │ │ ├── TemplateIcon.icns
│ │ │ └── TemplateInfo.plist
│ │ ├── Quick.podspec
│ │ ├── Quick.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace/
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── xcschemes/
│ │ │ ├── Quick-OSX.xcscheme
│ │ │ ├── Quick-iOS.xcscheme
│ │ │ └── Quick-tvOS.xcscheme
│ │ ├── Quick.xcworkspace/
│ │ │ └── contents.xcworkspacedata
│ │ ├── README.md
│ │ ├── Rakefile
│ │ ├── Sources/
│ │ │ ├── Quick/
│ │ │ │ ├── Callsite.swift
│ │ │ │ ├── Configuration/
│ │ │ │ │ ├── Configuration.swift
│ │ │ │ │ ├── QuickConfiguration.h
│ │ │ │ │ ├── QuickConfiguration.m
│ │ │ │ │ └── QuickConfiguration.swift
│ │ │ │ ├── DSL/
│ │ │ │ │ ├── DSL.swift
│ │ │ │ │ ├── QCKDSL.h
│ │ │ │ │ ├── QCKDSL.m
│ │ │ │ │ ├── World+DSL.h
│ │ │ │ │ └── World+DSL.swift
│ │ │ │ ├── ErrorUtility.swift
│ │ │ │ ├── Example.swift
│ │ │ │ ├── ExampleGroup.swift
│ │ │ │ ├── ExampleMetadata.swift
│ │ │ │ ├── Filter.swift
│ │ │ │ ├── Hooks/
│ │ │ │ │ ├── Closures.swift
│ │ │ │ │ ├── ExampleHooks.swift
│ │ │ │ │ ├── HooksPhase.swift
│ │ │ │ │ └── SuiteHooks.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── NSBundle+CurrentTestBundle.swift
│ │ │ │ ├── NSString+QCKSelectorName.h
│ │ │ │ ├── NSString+QCKSelectorName.m
│ │ │ │ ├── Quick.h
│ │ │ │ ├── QuickMain.swift
│ │ │ │ ├── QuickSelectedTestSuiteBuilder.swift
│ │ │ │ ├── QuickSpec.h
│ │ │ │ ├── QuickSpec.m
│ │ │ │ ├── QuickSpec.swift
│ │ │ │ ├── QuickTestSuite.swift
│ │ │ │ ├── String+FileName.swift
│ │ │ │ ├── World.h
│ │ │ │ ├── World.swift
│ │ │ │ └── XCTestSuite+QuickTestSuiteBuilder.m
│ │ │ ├── QuickFocusedTests/
│ │ │ │ ├── FocusedTests+ObjC.m
│ │ │ │ ├── FocusedTests.swift
│ │ │ │ ├── Info.plist
│ │ │ │ └── main.swift
│ │ │ ├── QuickTestHelpers/
│ │ │ │ ├── SpecRunner.swift
│ │ │ │ └── TestRun.swift
│ │ │ └── QuickTests/
│ │ │ ├── Fixtures/
│ │ │ │ └── FunctionalTests_SharedExamplesTests_SharedExamples.swift
│ │ │ ├── FunctionalTests/
│ │ │ │ ├── AfterEachTests+ObjC.m
│ │ │ │ ├── AfterEachTests.swift
│ │ │ │ ├── AfterSuiteTests+ObjC.m
│ │ │ │ ├── AfterSuiteTests.swift
│ │ │ │ ├── BeforeEachTests+ObjC.m
│ │ │ │ ├── BeforeEachTests.swift
│ │ │ │ ├── BeforeSuiteTests+ObjC.m
│ │ │ │ ├── BeforeSuiteTests.swift
│ │ │ │ ├── Configuration/
│ │ │ │ │ ├── AfterEach/
│ │ │ │ │ │ ├── Configuration+AfterEach.swift
│ │ │ │ │ │ └── Configuration+AfterEachTests.swift
│ │ │ │ │ └── BeforeEach/
│ │ │ │ │ ├── Configuration+BeforeEach.swift
│ │ │ │ │ └── Configuration+BeforeEachTests.swift
│ │ │ │ ├── ContextTests.swift
│ │ │ │ ├── CrossReferencingSpecs.swift
│ │ │ │ ├── DescribeTests.swift
│ │ │ │ ├── FailureTests+ObjC.m
│ │ │ │ ├── FailureUsingXCTAssertTests+ObjC.m
│ │ │ │ ├── ItTests+ObjC.m
│ │ │ │ ├── ItTests.swift
│ │ │ │ ├── PendingTests+ObjC.m
│ │ │ │ ├── PendingTests.swift
│ │ │ │ ├── SharedExamples+BeforeEachTests+ObjC.m
│ │ │ │ ├── SharedExamples+BeforeEachTests.swift
│ │ │ │ ├── SharedExamplesTests+ObjC.m
│ │ │ │ └── SharedExamplesTests.swift
│ │ │ ├── Helpers/
│ │ │ │ ├── QCKSpecRunner.h
│ │ │ │ ├── QCKSpecRunner.m
│ │ │ │ ├── QuickSpec+QuickSpec_MethodList.h
│ │ │ │ ├── QuickSpec+QuickSpec_MethodList.m
│ │ │ │ ├── QuickTestsBridgingHeader.h
│ │ │ │ ├── XCTestCaseProvider.swift
│ │ │ │ ├── XCTestObservationCenter+QCKSuspendObservation.h
│ │ │ │ └── XCTestObservationCenter+QCKSuspendObservation.m
│ │ │ ├── Info.plist
│ │ │ ├── QuickConfigurationTests.m
│ │ │ └── main.swift
│ │ ├── circle.yml
│ │ └── script/
│ │ ├── release
│ │ ├── travis-install-linux
│ │ ├── travis-install-osx
│ │ ├── travis-script-linux
│ │ └── travis-script-osx
│ ├── ReactiveCocoa/
│ │ ├── .gitignore
│ │ ├── .gitmodules
│ │ ├── .travis.yml
│ │ ├── CHANGELOG.md
│ │ ├── CONTRIBUTING.md
│ │ ├── Cartfile
│ │ ├── Cartfile.private
│ │ ├── Cartfile.resolved
│ │ ├── Carthage/
│ │ │ └── Checkouts/
│ │ │ ├── Nimble/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── .ruby-version
│ │ │ │ ├── .swift-version
│ │ │ │ ├── .travis.yml
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── Gemfile
│ │ │ │ ├── LICENSE.md
│ │ │ │ ├── Nimble.podspec
│ │ │ │ ├── Nimble.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── xcschemes/
│ │ │ │ │ ├── Nimble-OSX.xcscheme
│ │ │ │ │ ├── Nimble-iOS.xcscheme
│ │ │ │ │ └── Nimble-tvOS.xcscheme
│ │ │ │ ├── Package.swift
│ │ │ │ ├── README.md
│ │ │ │ ├── Sources/
│ │ │ │ │ └── Nimble/
│ │ │ │ │ ├── Adapters/
│ │ │ │ │ │ ├── AdapterProtocols.swift
│ │ │ │ │ │ ├── AssertionDispatcher.swift
│ │ │ │ │ │ ├── AssertionRecorder.swift
│ │ │ │ │ │ ├── NimbleEnvironment.swift
│ │ │ │ │ │ ├── NimbleXCTestHandler.swift
│ │ │ │ │ │ ├── NonObjectiveC/
│ │ │ │ │ │ │ └── ExceptionCapture.swift
│ │ │ │ │ │ └── ObjectiveC/
│ │ │ │ │ │ ├── CurrentTestCaseTracker.h
│ │ │ │ │ │ ├── DSL.h
│ │ │ │ │ │ ├── DSL.m
│ │ │ │ │ │ ├── NMBExceptionCapture.h
│ │ │ │ │ │ ├── NMBExceptionCapture.m
│ │ │ │ │ │ ├── NMBExpectation.swift
│ │ │ │ │ │ ├── NMBObjCMatcher.swift
│ │ │ │ │ │ ├── NMBStringify.h
│ │ │ │ │ │ ├── NMBStringify.m
│ │ │ │ │ │ └── XCTestObservationCenter+Register.m
│ │ │ │ │ ├── DSL+Wait.swift
│ │ │ │ │ ├── DSL.swift
│ │ │ │ │ ├── Expectation.swift
│ │ │ │ │ ├── Expression.swift
│ │ │ │ │ ├── FailureMessage.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── Matchers/
│ │ │ │ │ │ ├── AllPass.swift
│ │ │ │ │ │ ├── AsyncMatcherWrapper.swift
│ │ │ │ │ │ ├── BeAKindOf.swift
│ │ │ │ │ │ ├── BeAnInstanceOf.swift
│ │ │ │ │ │ ├── BeCloseTo.swift
│ │ │ │ │ │ ├── BeEmpty.swift
│ │ │ │ │ │ ├── BeGreaterThan.swift
│ │ │ │ │ │ ├── BeGreaterThanOrEqualTo.swift
│ │ │ │ │ │ ├── BeIdenticalTo.swift
│ │ │ │ │ │ ├── BeLessThan.swift
│ │ │ │ │ │ ├── BeLessThanOrEqual.swift
│ │ │ │ │ │ ├── BeLogical.swift
│ │ │ │ │ │ ├── BeNil.swift
│ │ │ │ │ │ ├── BeVoid.swift
│ │ │ │ │ │ ├── BeginWith.swift
│ │ │ │ │ │ ├── Contain.swift
│ │ │ │ │ │ ├── EndWith.swift
│ │ │ │ │ │ ├── Equal.swift
│ │ │ │ │ │ ├── HaveCount.swift
│ │ │ │ │ │ ├── Match.swift
│ │ │ │ │ │ ├── MatchError.swift
│ │ │ │ │ │ ├── MatcherFunc.swift
│ │ │ │ │ │ ├── MatcherProtocols.swift
│ │ │ │ │ │ ├── PostNotification.swift
│ │ │ │ │ │ ├── RaisesException.swift
│ │ │ │ │ │ ├── SatisfyAnyOf.swift
│ │ │ │ │ │ └── ThrowError.swift
│ │ │ │ │ ├── Nimble.h
│ │ │ │ │ └── Utils/
│ │ │ │ │ ├── Async.swift
│ │ │ │ │ ├── Errors.swift
│ │ │ │ │ ├── Functional.swift
│ │ │ │ │ ├── SourceLocation.swift
│ │ │ │ │ └── Stringers.swift
│ │ │ │ ├── Tests/
│ │ │ │ │ ├── LinuxMain.swift
│ │ │ │ │ └── Nimble/
│ │ │ │ │ ├── AsynchronousTest.swift
│ │ │ │ │ ├── Helpers/
│ │ │ │ │ │ ├── ObjectWithLazyProperty.swift
│ │ │ │ │ │ ├── XCTestCaseProvider.swift
│ │ │ │ │ │ └── utils.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── Matchers/
│ │ │ │ │ │ ├── AllPassTest.swift
│ │ │ │ │ │ ├── BeAKindOfTest.swift
│ │ │ │ │ │ ├── BeAnInstanceOfTest.swift
│ │ │ │ │ │ ├── BeCloseToTest.swift
│ │ │ │ │ │ ├── BeEmptyTest.swift
│ │ │ │ │ │ ├── BeGreaterThanOrEqualToTest.swift
│ │ │ │ │ │ ├── BeGreaterThanTest.swift
│ │ │ │ │ │ ├── BeIdenticalToObjectTest.swift
│ │ │ │ │ │ ├── BeIdenticalToTest.swift
│ │ │ │ │ │ ├── BeLessThanOrEqualToTest.swift
│ │ │ │ │ │ ├── BeLessThanTest.swift
│ │ │ │ │ │ ├── BeLogicalTest.swift
│ │ │ │ │ │ ├── BeNilTest.swift
│ │ │ │ │ │ ├── BeVoidTest.swift
│ │ │ │ │ │ ├── BeginWithTest.swift
│ │ │ │ │ │ ├── ContainTest.swift
│ │ │ │ │ │ ├── EndWithTest.swift
│ │ │ │ │ │ ├── EqualTest.swift
│ │ │ │ │ │ ├── HaveCountTest.swift
│ │ │ │ │ │ ├── MatchErrorTest.swift
│ │ │ │ │ │ ├── MatchTest.swift
│ │ │ │ │ │ ├── PostNotificationTest.swift
│ │ │ │ │ │ ├── RaisesExceptionTest.swift
│ │ │ │ │ │ ├── SatisfyAnyOfTest.swift
│ │ │ │ │ │ └── ThrowErrorTest.swift
│ │ │ │ │ ├── SynchronousTests.swift
│ │ │ │ │ ├── UserDescriptionTest.swift
│ │ │ │ │ └── objc/
│ │ │ │ │ ├── NimbleSpecHelper.h
│ │ │ │ │ ├── ObjCAllPassTest.m
│ │ │ │ │ ├── ObjCAsyncTest.m
│ │ │ │ │ ├── ObjCBeAnInstanceOfTest.m
│ │ │ │ │ ├── ObjCBeCloseToTest.m
│ │ │ │ │ ├── ObjCBeEmptyTest.m
│ │ │ │ │ ├── ObjCBeFalseTest.m
│ │ │ │ │ ├── ObjCBeFalsyTest.m
│ │ │ │ │ ├── ObjCBeGreaterThanOrEqualToTest.m
│ │ │ │ │ ├── ObjCBeGreaterThanTest.m
│ │ │ │ │ ├── ObjCBeIdenticalToTest.m
│ │ │ │ │ ├── ObjCBeKindOfTest.m
│ │ │ │ │ ├── ObjCBeLessThanOrEqualToTest.m
│ │ │ │ │ ├── ObjCBeLessThanTest.m
│ │ │ │ │ ├── ObjCBeNilTest.m
│ │ │ │ │ ├── ObjCBeTrueTest.m
│ │ │ │ │ ├── ObjCBeTruthyTest.m
│ │ │ │ │ ├── ObjCBeginWithTest.m
│ │ │ │ │ ├── ObjCContainTest.m
│ │ │ │ │ ├── ObjCEndWithTest.m
│ │ │ │ │ ├── ObjCEqualTest.m
│ │ │ │ │ ├── ObjCHaveCount.m
│ │ │ │ │ ├── ObjCMatchTest.m
│ │ │ │ │ ├── ObjCRaiseExceptionTest.m
│ │ │ │ │ ├── ObjCSatisfyAnyOfTest.m
│ │ │ │ │ ├── ObjCSyncTest.m
│ │ │ │ │ ├── ObjCUserDescriptionTest.m
│ │ │ │ │ └── ObjcStringersTest.m
│ │ │ │ ├── circle.yml
│ │ │ │ ├── script/
│ │ │ │ │ └── release
│ │ │ │ └── test
│ │ │ ├── Quick/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── .gitmodules
│ │ │ │ ├── .ruby-version
│ │ │ │ ├── .swift-version
│ │ │ │ ├── .travis.yml
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── Documentation/
│ │ │ │ │ ├── en-us/
│ │ │ │ │ │ ├── ArrangeActAssert.md
│ │ │ │ │ │ ├── BehavioralTesting.md
│ │ │ │ │ │ ├── ConfiguringQuick.md
│ │ │ │ │ │ ├── InstallingFileTemplates.md
│ │ │ │ │ │ ├── InstallingQuick.md
│ │ │ │ │ │ ├── MoreResources.md
│ │ │ │ │ │ ├── NimbleAssertions.md
│ │ │ │ │ │ ├── QuickExamplesAndGroups.md
│ │ │ │ │ │ ├── QuickInObjectiveC.md
│ │ │ │ │ │ ├── README.md
│ │ │ │ │ │ ├── SettingUpYourXcodeProject.md
│ │ │ │ │ │ ├── SharedExamples.md
│ │ │ │ │ │ └── TestingApps.md
│ │ │ │ │ ├── ja/
│ │ │ │ │ │ ├── ArrangeActAssert.md
│ │ │ │ │ │ ├── BehavioralTesting.md
│ │ │ │ │ │ ├── ConfiguringQuick.md
│ │ │ │ │ │ ├── InstallingFileTemplates.md
│ │ │ │ │ │ ├── InstallingQuick.md
│ │ │ │ │ │ ├── MoreResources.md
│ │ │ │ │ │ ├── NimbleAssertions.md
│ │ │ │ │ │ ├── QuickExamplesAndGroups.md
│ │ │ │ │ │ ├── QuickInObjectiveC.md
│ │ │ │ │ │ ├── README.md
│ │ │ │ │ │ ├── SettingUpYourXcodeProject.md
│ │ │ │ │ │ ├── SharedExamples.md
│ │ │ │ │ │ └── TestingApps.md
│ │ │ │ │ └── zh-cn/
│ │ │ │ │ └── SettingUpYourXcodeProject.md
│ │ │ │ ├── Externals/
│ │ │ │ │ └── Nimble/
│ │ │ │ │ ├── .gitignore
│ │ │ │ │ ├── .ruby-version
│ │ │ │ │ ├── .swift-version
│ │ │ │ │ ├── .travis.yml
│ │ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ │ ├── Gemfile
│ │ │ │ │ ├── LICENSE.md
│ │ │ │ │ ├── Nimble.podspec
│ │ │ │ │ ├── Nimble.xcodeproj/
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ └── xcshareddata/
│ │ │ │ │ │ └── xcschemes/
│ │ │ │ │ │ ├── Nimble-OSX.xcscheme
│ │ │ │ │ │ ├── Nimble-iOS.xcscheme
│ │ │ │ │ │ └── Nimble-tvOS.xcscheme
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── Sources/
│ │ │ │ │ │ └── Nimble/
│ │ │ │ │ │ ├── Adapters/
│ │ │ │ │ │ │ ├── AdapterProtocols.swift
│ │ │ │ │ │ │ ├── AssertionDispatcher.swift
│ │ │ │ │ │ │ ├── AssertionRecorder.swift
│ │ │ │ │ │ │ ├── NimbleEnvironment.swift
│ │ │ │ │ │ │ ├── NimbleXCTestHandler.swift
│ │ │ │ │ │ │ ├── NonObjectiveC/
│ │ │ │ │ │ │ │ └── ExceptionCapture.swift
│ │ │ │ │ │ │ └── ObjectiveC/
│ │ │ │ │ │ │ ├── CurrentTestCaseTracker.h
│ │ │ │ │ │ │ ├── DSL.h
│ │ │ │ │ │ │ ├── DSL.m
│ │ │ │ │ │ │ ├── NMBExceptionCapture.h
│ │ │ │ │ │ │ ├── NMBExceptionCapture.m
│ │ │ │ │ │ │ ├── NMBExpectation.swift
│ │ │ │ │ │ │ ├── NMBObjCMatcher.swift
│ │ │ │ │ │ │ ├── NMBStringify.h
│ │ │ │ │ │ │ ├── NMBStringify.m
│ │ │ │ │ │ │ └── XCTestObservationCenter+Register.m
│ │ │ │ │ │ ├── DSL+Wait.swift
│ │ │ │ │ │ ├── DSL.swift
│ │ │ │ │ │ ├── Expectation.swift
│ │ │ │ │ │ ├── Expression.swift
│ │ │ │ │ │ ├── FailureMessage.swift
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── Matchers/
│ │ │ │ │ │ │ ├── AllPass.swift
│ │ │ │ │ │ │ ├── AsyncMatcherWrapper.swift
│ │ │ │ │ │ │ ├── BeAKindOf.swift
│ │ │ │ │ │ │ ├── BeAnInstanceOf.swift
│ │ │ │ │ │ │ ├── BeCloseTo.swift
│ │ │ │ │ │ │ ├── BeEmpty.swift
│ │ │ │ │ │ │ ├── BeGreaterThan.swift
│ │ │ │ │ │ │ ├── BeGreaterThanOrEqualTo.swift
│ │ │ │ │ │ │ ├── BeIdenticalTo.swift
│ │ │ │ │ │ │ ├── BeLessThan.swift
│ │ │ │ │ │ │ ├── BeLessThanOrEqual.swift
│ │ │ │ │ │ │ ├── BeLogical.swift
│ │ │ │ │ │ │ ├── BeNil.swift
│ │ │ │ │ │ │ ├── BeVoid.swift
│ │ │ │ │ │ │ ├── BeginWith.swift
│ │ │ │ │ │ │ ├── Contain.swift
│ │ │ │ │ │ │ ├── EndWith.swift
│ │ │ │ │ │ │ ├── Equal.swift
│ │ │ │ │ │ │ ├── HaveCount.swift
│ │ │ │ │ │ │ ├── Match.swift
│ │ │ │ │ │ │ ├── MatchError.swift
│ │ │ │ │ │ │ ├── MatcherFunc.swift
│ │ │ │ │ │ │ ├── MatcherProtocols.swift
│ │ │ │ │ │ │ ├── PostNotification.swift
│ │ │ │ │ │ │ ├── RaisesException.swift
│ │ │ │ │ │ │ ├── SatisfyAnyOf.swift
│ │ │ │ │ │ │ └── ThrowError.swift
│ │ │ │ │ │ ├── Nimble.h
│ │ │ │ │ │ └── Utils/
│ │ │ │ │ │ ├── Async.swift
│ │ │ │ │ │ ├── Errors.swift
│ │ │ │ │ │ ├── Functional.swift
│ │ │ │ │ │ ├── SourceLocation.swift
│ │ │ │ │ │ └── Stringers.swift
│ │ │ │ │ ├── Tests/
│ │ │ │ │ │ ├── LinuxMain.swift
│ │ │ │ │ │ └── Nimble/
│ │ │ │ │ │ ├── AsynchronousTest.swift
│ │ │ │ │ │ ├── Helpers/
│ │ │ │ │ │ │ ├── ObjectWithLazyProperty.swift
│ │ │ │ │ │ │ ├── XCTestCaseProvider.swift
│ │ │ │ │ │ │ └── utils.swift
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── Matchers/
│ │ │ │ │ │ │ ├── AllPassTest.swift
│ │ │ │ │ │ │ ├── BeAKindOfTest.swift
│ │ │ │ │ │ │ ├── BeAnInstanceOfTest.swift
│ │ │ │ │ │ │ ├── BeCloseToTest.swift
│ │ │ │ │ │ │ ├── BeEmptyTest.swift
│ │ │ │ │ │ │ ├── BeGreaterThanOrEqualToTest.swift
│ │ │ │ │ │ │ ├── BeGreaterThanTest.swift
│ │ │ │ │ │ │ ├── BeIdenticalToObjectTest.swift
│ │ │ │ │ │ │ ├── BeIdenticalToTest.swift
│ │ │ │ │ │ │ ├── BeLessThanOrEqualToTest.swift
│ │ │ │ │ │ │ ├── BeLessThanTest.swift
│ │ │ │ │ │ │ ├── BeLogicalTest.swift
│ │ │ │ │ │ │ ├── BeNilTest.swift
│ │ │ │ │ │ │ ├── BeVoidTest.swift
│ │ │ │ │ │ │ ├── BeginWithTest.swift
│ │ │ │ │ │ │ ├── ContainTest.swift
│ │ │ │ │ │ │ ├── EndWithTest.swift
│ │ │ │ │ │ │ ├── EqualTest.swift
│ │ │ │ │ │ │ ├── HaveCountTest.swift
│ │ │ │ │ │ │ ├── MatchErrorTest.swift
│ │ │ │ │ │ │ ├── MatchTest.swift
│ │ │ │ │ │ │ ├── PostNotificationTest.swift
│ │ │ │ │ │ │ ├── RaisesExceptionTest.swift
│ │ │ │ │ │ │ ├── SatisfyAnyOfTest.swift
│ │ │ │ │ │ │ └── ThrowErrorTest.swift
│ │ │ │ │ │ ├── SynchronousTests.swift
│ │ │ │ │ │ ├── UserDescriptionTest.swift
│ │ │ │ │ │ └── objc/
│ │ │ │ │ │ ├── NimbleSpecHelper.h
│ │ │ │ │ │ ├── ObjCAllPassTest.m
│ │ │ │ │ │ ├── ObjCAsyncTest.m
│ │ │ │ │ │ ├── ObjCBeAnInstanceOfTest.m
│ │ │ │ │ │ ├── ObjCBeCloseToTest.m
│ │ │ │ │ │ ├── ObjCBeEmptyTest.m
│ │ │ │ │ │ ├── ObjCBeFalseTest.m
│ │ │ │ │ │ ├── ObjCBeFalsyTest.m
│ │ │ │ │ │ ├── ObjCBeGreaterThanOrEqualToTest.m
│ │ │ │ │ │ ├── ObjCBeGreaterThanTest.m
│ │ │ │ │ │ ├── ObjCBeIdenticalToTest.m
│ │ │ │ │ │ ├── ObjCBeKindOfTest.m
│ │ │ │ │ │ ├── ObjCBeLessThanOrEqualToTest.m
│ │ │ │ │ │ ├── ObjCBeLessThanTest.m
│ │ │ │ │ │ ├── ObjCBeNilTest.m
│ │ │ │ │ │ ├── ObjCBeTrueTest.m
│ │ │ │ │ │ ├── ObjCBeTruthyTest.m
│ │ │ │ │ │ ├── ObjCBeginWithTest.m
│ │ │ │ │ │ ├── ObjCContainTest.m
│ │ │ │ │ │ ├── ObjCEndWithTest.m
│ │ │ │ │ │ ├── ObjCEqualTest.m
│ │ │ │ │ │ ├── ObjCHaveCount.m
│ │ │ │ │ │ ├── ObjCMatchTest.m
│ │ │ │ │ │ ├── ObjCRaiseExceptionTest.m
│ │ │ │ │ │ ├── ObjCSatisfyAnyOfTest.m
│ │ │ │ │ │ ├── ObjCSyncTest.m
│ │ │ │ │ │ ├── ObjCUserDescriptionTest.m
│ │ │ │ │ │ └── ObjcStringersTest.m
│ │ │ │ │ ├── circle.yml
│ │ │ │ │ ├── script/
│ │ │ │ │ │ └── release
│ │ │ │ │ └── test
│ │ │ │ ├── Gemfile
│ │ │ │ ├── LICENSE
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Quick Templates/
│ │ │ │ │ ├── Quick Configuration Class.xctemplate/
│ │ │ │ │ │ ├── Objective-C/
│ │ │ │ │ │ │ ├── ___FILEBASENAME___.h
│ │ │ │ │ │ │ └── ___FILEBASENAME___.m
│ │ │ │ │ │ ├── Swift/
│ │ │ │ │ │ │ └── ___FILEBASENAME___.swift
│ │ │ │ │ │ ├── TemplateIcon.icns
│ │ │ │ │ │ └── TemplateInfo.plist
│ │ │ │ │ └── Quick Spec Class.xctemplate/
│ │ │ │ │ ├── Objective-C/
│ │ │ │ │ │ └── ___FILEBASENAME___.m
│ │ │ │ │ ├── Swift/
│ │ │ │ │ │ └── ___FILEBASENAME___.swift
│ │ │ │ │ ├── TemplateIcon.icns
│ │ │ │ │ └── TemplateInfo.plist
│ │ │ │ ├── Quick.podspec
│ │ │ │ ├── Quick.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── xcschemes/
│ │ │ │ │ ├── Quick-OSX.xcscheme
│ │ │ │ │ ├── Quick-iOS.xcscheme
│ │ │ │ │ └── Quick-tvOS.xcscheme
│ │ │ │ ├── README.md
│ │ │ │ ├── Rakefile
│ │ │ │ ├── Sources/
│ │ │ │ │ ├── Quick/
│ │ │ │ │ │ ├── Callsite.swift
│ │ │ │ │ │ ├── Configuration/
│ │ │ │ │ │ │ ├── Configuration.swift
│ │ │ │ │ │ │ ├── QuickConfiguration.h
│ │ │ │ │ │ │ ├── QuickConfiguration.m
│ │ │ │ │ │ │ └── QuickConfiguration.swift
│ │ │ │ │ │ ├── DSL/
│ │ │ │ │ │ │ ├── DSL.swift
│ │ │ │ │ │ │ ├── QCKDSL.h
│ │ │ │ │ │ │ ├── QCKDSL.m
│ │ │ │ │ │ │ ├── World+DSL.h
│ │ │ │ │ │ │ └── World+DSL.swift
│ │ │ │ │ │ ├── ErrorUtility.swift
│ │ │ │ │ │ ├── Example.swift
│ │ │ │ │ │ ├── ExampleGroup.swift
│ │ │ │ │ │ ├── ExampleMetadata.swift
│ │ │ │ │ │ ├── Filter.swift
│ │ │ │ │ │ ├── Hooks/
│ │ │ │ │ │ │ ├── Closures.swift
│ │ │ │ │ │ │ ├── ExampleHooks.swift
│ │ │ │ │ │ │ ├── HooksPhase.swift
│ │ │ │ │ │ │ └── SuiteHooks.swift
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── NSBundle+CurrentTestBundle.swift
│ │ │ │ │ │ ├── NSString+QCKSelectorName.h
│ │ │ │ │ │ ├── NSString+QCKSelectorName.m
│ │ │ │ │ │ ├── Quick.h
│ │ │ │ │ │ ├── QuickMain.swift
│ │ │ │ │ │ ├── QuickSelectedTestSuiteBuilder.swift
│ │ │ │ │ │ ├── QuickSpec.h
│ │ │ │ │ │ ├── QuickSpec.m
│ │ │ │ │ │ ├── QuickSpec.swift
│ │ │ │ │ │ ├── QuickTestSuite.swift
│ │ │ │ │ │ ├── String+FileName.swift
│ │ │ │ │ │ ├── World.h
│ │ │ │ │ │ ├── World.swift
│ │ │ │ │ │ └── XCTestSuite+QuickTestSuiteBuilder.m
│ │ │ │ │ ├── QuickFocusedTests/
│ │ │ │ │ │ ├── FocusedTests+ObjC.m
│ │ │ │ │ │ ├── FocusedTests.swift
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── QuickTestHelpers/
│ │ │ │ │ │ ├── SpecRunner.swift
│ │ │ │ │ │ └── TestRun.swift
│ │ │ │ │ └── QuickTests/
│ │ │ │ │ ├── Fixtures/
│ │ │ │ │ │ └── FunctionalTests_SharedExamplesTests_SharedExamples.swift
│ │ │ │ │ ├── FunctionalTests/
│ │ │ │ │ │ ├── AfterEachTests+ObjC.m
│ │ │ │ │ │ ├── AfterEachTests.swift
│ │ │ │ │ │ ├── AfterSuiteTests+ObjC.m
│ │ │ │ │ │ ├── AfterSuiteTests.swift
│ │ │ │ │ │ ├── BeforeEachTests+ObjC.m
│ │ │ │ │ │ ├── BeforeEachTests.swift
│ │ │ │ │ │ ├── BeforeSuiteTests+ObjC.m
│ │ │ │ │ │ ├── BeforeSuiteTests.swift
│ │ │ │ │ │ ├── Configuration/
│ │ │ │ │ │ │ ├── AfterEach/
│ │ │ │ │ │ │ │ ├── Configuration+AfterEach.swift
│ │ │ │ │ │ │ │ └── Configuration+AfterEachTests.swift
│ │ │ │ │ │ │ └── BeforeEach/
│ │ │ │ │ │ │ ├── Configuration+BeforeEach.swift
│ │ │ │ │ │ │ └── Configuration+BeforeEachTests.swift
│ │ │ │ │ │ ├── ContextTests.swift
│ │ │ │ │ │ ├── CrossReferencingSpecs.swift
│ │ │ │ │ │ ├── DescribeTests.swift
│ │ │ │ │ │ ├── FailureTests+ObjC.m
│ │ │ │ │ │ ├── FailureUsingXCTAssertTests+ObjC.m
│ │ │ │ │ │ ├── ItTests+ObjC.m
│ │ │ │ │ │ ├── ItTests.swift
│ │ │ │ │ │ ├── PendingTests+ObjC.m
│ │ │ │ │ │ ├── PendingTests.swift
│ │ │ │ │ │ ├── SharedExamples+BeforeEachTests+ObjC.m
│ │ │ │ │ │ ├── SharedExamples+BeforeEachTests.swift
│ │ │ │ │ │ ├── SharedExamplesTests+ObjC.m
│ │ │ │ │ │ └── SharedExamplesTests.swift
│ │ │ │ │ ├── Helpers/
│ │ │ │ │ │ ├── QCKSpecRunner.h
│ │ │ │ │ │ ├── QCKSpecRunner.m
│ │ │ │ │ │ ├── QuickSpec+QuickSpec_MethodList.h
│ │ │ │ │ │ ├── QuickSpec+QuickSpec_MethodList.m
│ │ │ │ │ │ ├── QuickTestsBridgingHeader.h
│ │ │ │ │ │ ├── XCTestCaseProvider.swift
│ │ │ │ │ │ ├── XCTestObservationCenter+QCKSuspendObservation.h
│ │ │ │ │ │ └── XCTestObservationCenter+QCKSuspendObservation.m
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── QuickConfigurationTests.m
│ │ │ │ │ └── main.swift
│ │ │ │ ├── circle.yml
│ │ │ │ └── script/
│ │ │ │ ├── release
│ │ │ │ ├── travis-install-linux
│ │ │ │ ├── travis-install-osx
│ │ │ │ ├── travis-script-linux
│ │ │ │ └── travis-script-osx
│ │ │ ├── Result/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── .swift-version
│ │ │ │ ├── .travis.yml
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── LICENSE
│ │ │ │ ├── Package.swift
│ │ │ │ ├── README.md
│ │ │ │ ├── Result/
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── Result.h
│ │ │ │ │ ├── Result.swift
│ │ │ │ │ └── ResultType.swift
│ │ │ │ ├── Result.podspec
│ │ │ │ ├── Result.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── xcschemes/
│ │ │ │ │ ├── Result-Mac.xcscheme
│ │ │ │ │ ├── Result-iOS.xcscheme
│ │ │ │ │ ├── Result-tvOS.xcscheme
│ │ │ │ │ └── Result-watchOS.xcscheme
│ │ │ │ └── Tests/
│ │ │ │ ├── LinuxMain.swift
│ │ │ │ └── Result/
│ │ │ │ ├── Info.plist
│ │ │ │ └── ResultTests.swift
│ │ │ └── xcconfigs/
│ │ │ ├── .gitignore
│ │ │ ├── Base/
│ │ │ │ ├── Common.xcconfig
│ │ │ │ ├── Configurations/
│ │ │ │ │ ├── Debug.xcconfig
│ │ │ │ │ ├── Profile.xcconfig
│ │ │ │ │ ├── Release.xcconfig
│ │ │ │ │ └── Test.xcconfig
│ │ │ │ └── Targets/
│ │ │ │ ├── Application.xcconfig
│ │ │ │ ├── Framework.xcconfig
│ │ │ │ └── StaticLibrary.xcconfig
│ │ │ ├── Mac OS X/
│ │ │ │ ├── Mac-Application.xcconfig
│ │ │ │ ├── Mac-Base.xcconfig
│ │ │ │ ├── Mac-DynamicLibrary.xcconfig
│ │ │ │ ├── Mac-Framework.xcconfig
│ │ │ │ └── Mac-StaticLibrary.xcconfig
│ │ │ ├── README.md
│ │ │ ├── iOS/
│ │ │ │ ├── iOS-Application.xcconfig
│ │ │ │ ├── iOS-Base.xcconfig
│ │ │ │ ├── iOS-Framework.xcconfig
│ │ │ │ └── iOS-StaticLibrary.xcconfig
│ │ │ ├── tvOS/
│ │ │ │ ├── tvOS-Application.xcconfig
│ │ │ │ ├── tvOS-Base.xcconfig
│ │ │ │ ├── tvOS-Framework.xcconfig
│ │ │ │ └── tvOS-StaticLibrary.xcconfig
│ │ │ └── watchOS/
│ │ │ ├── watchOS-Application.xcconfig
│ │ │ ├── watchOS-Base.xcconfig
│ │ │ ├── watchOS-Framework.xcconfig
│ │ │ └── watchOS-StaticLibrary.xcconfig
│ │ ├── Documentation/
│ │ │ ├── BasicOperators.md
│ │ │ ├── DebuggingTechniques.md
│ │ │ ├── DesignGuidelines.md
│ │ │ ├── DocumentingCode.md
│ │ │ ├── FrameworkOverview.md
│ │ │ ├── Legacy/
│ │ │ │ ├── BasicOperators.md
│ │ │ │ ├── DesignGuidelines.md
│ │ │ │ ├── FrameworkOverview.md
│ │ │ │ ├── MemoryManagement.md
│ │ │ │ └── README.md
│ │ │ ├── ObjectiveCBridging.md
│ │ │ └── README.md
│ │ ├── Instruments/
│ │ │ ├── Disposable Growth.tracetemplate
│ │ │ ├── README.md
│ │ │ └── Signal Events.tracetemplate
│ │ ├── LICENSE.md
│ │ ├── Logo/
│ │ │ └── README.md
│ │ ├── README.md
│ │ ├── ReactiveCocoa/
│ │ │ ├── Info.plist
│ │ │ ├── Objective-C/
│ │ │ │ ├── MKAnnotationView+RACSignalSupport.h
│ │ │ │ ├── MKAnnotationView+RACSignalSupport.m
│ │ │ │ ├── NSArray+RACSequenceAdditions.h
│ │ │ │ ├── NSArray+RACSequenceAdditions.m
│ │ │ │ ├── NSControl+RACCommandSupport.h
│ │ │ │ ├── NSControl+RACCommandSupport.m
│ │ │ │ ├── NSControl+RACTextSignalSupport.h
│ │ │ │ ├── NSControl+RACTextSignalSupport.m
│ │ │ │ ├── NSData+RACSupport.h
│ │ │ │ ├── NSData+RACSupport.m
│ │ │ │ ├── NSDictionary+RACSequenceAdditions.h
│ │ │ │ ├── NSDictionary+RACSequenceAdditions.m
│ │ │ │ ├── NSEnumerator+RACSequenceAdditions.h
│ │ │ │ ├── NSEnumerator+RACSequenceAdditions.m
│ │ │ │ ├── NSFileHandle+RACSupport.h
│ │ │ │ ├── NSFileHandle+RACSupport.m
│ │ │ │ ├── NSIndexSet+RACSequenceAdditions.h
│ │ │ │ ├── NSIndexSet+RACSequenceAdditions.m
│ │ │ │ ├── NSInvocation+RACTypeParsing.h
│ │ │ │ ├── NSInvocation+RACTypeParsing.m
│ │ │ │ ├── NSNotificationCenter+RACSupport.h
│ │ │ │ ├── NSNotificationCenter+RACSupport.m
│ │ │ │ ├── NSObject+RACAppKitBindings.h
│ │ │ │ ├── NSObject+RACAppKitBindings.m
│ │ │ │ ├── NSObject+RACDeallocating.h
│ │ │ │ ├── NSObject+RACDeallocating.m
│ │ │ │ ├── NSObject+RACDescription.h
│ │ │ │ ├── NSObject+RACDescription.m
│ │ │ │ ├── NSObject+RACKVOWrapper.h
│ │ │ │ ├── NSObject+RACKVOWrapper.m
│ │ │ │ ├── NSObject+RACLifting.h
│ │ │ │ ├── NSObject+RACLifting.m
│ │ │ │ ├── NSObject+RACPropertySubscribing.h
│ │ │ │ ├── NSObject+RACPropertySubscribing.m
│ │ │ │ ├── NSObject+RACSelectorSignal.h
│ │ │ │ ├── NSObject+RACSelectorSignal.m
│ │ │ │ ├── NSOrderedSet+RACSequenceAdditions.h
│ │ │ │ ├── NSOrderedSet+RACSequenceAdditions.m
│ │ │ │ ├── NSSet+RACSequenceAdditions.h
│ │ │ │ ├── NSSet+RACSequenceAdditions.m
│ │ │ │ ├── NSString+RACKeyPathUtilities.h
│ │ │ │ ├── NSString+RACKeyPathUtilities.m
│ │ │ │ ├── NSString+RACSequenceAdditions.h
│ │ │ │ ├── NSString+RACSequenceAdditions.m
│ │ │ │ ├── NSString+RACSupport.h
│ │ │ │ ├── NSString+RACSupport.m
│ │ │ │ ├── NSText+RACSignalSupport.h
│ │ │ │ ├── NSText+RACSignalSupport.m
│ │ │ │ ├── NSURLConnection+RACSupport.h
│ │ │ │ ├── NSURLConnection+RACSupport.m
│ │ │ │ ├── NSUserDefaults+RACSupport.h
│ │ │ │ ├── NSUserDefaults+RACSupport.m
│ │ │ │ ├── RACArraySequence.h
│ │ │ │ ├── RACArraySequence.m
│ │ │ │ ├── RACBehaviorSubject.h
│ │ │ │ ├── RACBehaviorSubject.m
│ │ │ │ ├── RACBlockTrampoline.h
│ │ │ │ ├── RACBlockTrampoline.m
│ │ │ │ ├── RACChannel.h
│ │ │ │ ├── RACChannel.m
│ │ │ │ ├── RACCommand.h
│ │ │ │ ├── RACCommand.m
│ │ │ │ ├── RACCompoundDisposable.h
│ │ │ │ ├── RACCompoundDisposable.m
│ │ │ │ ├── RACCompoundDisposableProvider.d
│ │ │ │ ├── RACDelegateProxy.h
│ │ │ │ ├── RACDelegateProxy.m
│ │ │ │ ├── RACDisposable.h
│ │ │ │ ├── RACDisposable.m
│ │ │ │ ├── RACDynamicPropertySuperclass.h
│ │ │ │ ├── RACDynamicPropertySuperclass.m
│ │ │ │ ├── RACDynamicSequence.h
│ │ │ │ ├── RACDynamicSequence.m
│ │ │ │ ├── RACDynamicSignal.h
│ │ │ │ ├── RACDynamicSignal.m
│ │ │ │ ├── RACEagerSequence.h
│ │ │ │ ├── RACEagerSequence.m
│ │ │ │ ├── RACEmptySequence.h
│ │ │ │ ├── RACEmptySequence.m
│ │ │ │ ├── RACEmptySignal.h
│ │ │ │ ├── RACEmptySignal.m
│ │ │ │ ├── RACErrorSignal.h
│ │ │ │ ├── RACErrorSignal.m
│ │ │ │ ├── RACEvent.h
│ │ │ │ ├── RACEvent.m
│ │ │ │ ├── RACGroupedSignal.h
│ │ │ │ ├── RACGroupedSignal.m
│ │ │ │ ├── RACImmediateScheduler.h
│ │ │ │ ├── RACImmediateScheduler.m
│ │ │ │ ├── RACIndexSetSequence.h
│ │ │ │ ├── RACIndexSetSequence.m
│ │ │ │ ├── RACKVOChannel.h
│ │ │ │ ├── RACKVOChannel.m
│ │ │ │ ├── RACKVOProxy.h
│ │ │ │ ├── RACKVOProxy.m
│ │ │ │ ├── RACKVOTrampoline.h
│ │ │ │ ├── RACKVOTrampoline.m
│ │ │ │ ├── RACMulticastConnection+Private.h
│ │ │ │ ├── RACMulticastConnection.h
│ │ │ │ ├── RACMulticastConnection.m
│ │ │ │ ├── RACPassthroughSubscriber.h
│ │ │ │ ├── RACPassthroughSubscriber.m
│ │ │ │ ├── RACQueueScheduler+Subclass.h
│ │ │ │ ├── RACQueueScheduler.h
│ │ │ │ ├── RACQueueScheduler.m
│ │ │ │ ├── RACReplaySubject.h
│ │ │ │ ├── RACReplaySubject.m
│ │ │ │ ├── RACReturnSignal.h
│ │ │ │ ├── RACReturnSignal.m
│ │ │ │ ├── RACScheduler+Private.h
│ │ │ │ ├── RACScheduler+Subclass.h
│ │ │ │ ├── RACScheduler.h
│ │ │ │ ├── RACScheduler.m
│ │ │ │ ├── RACScopedDisposable.h
│ │ │ │ ├── RACScopedDisposable.m
│ │ │ │ ├── RACSequence.h
│ │ │ │ ├── RACSequence.m
│ │ │ │ ├── RACSerialDisposable.h
│ │ │ │ ├── RACSerialDisposable.m
│ │ │ │ ├── RACSignal+Operations.h
│ │ │ │ ├── RACSignal+Operations.m
│ │ │ │ ├── RACSignal.h
│ │ │ │ ├── RACSignal.m
│ │ │ │ ├── RACSignalProvider.d
│ │ │ │ ├── RACSignalSequence.h
│ │ │ │ ├── RACSignalSequence.m
│ │ │ │ ├── RACStream+Private.h
│ │ │ │ ├── RACStream.h
│ │ │ │ ├── RACStream.m
│ │ │ │ ├── RACStringSequence.h
│ │ │ │ ├── RACStringSequence.m
│ │ │ │ ├── RACSubject.h
│ │ │ │ ├── RACSubject.m
│ │ │ │ ├── RACSubscriber+Private.h
│ │ │ │ ├── RACSubscriber.h
│ │ │ │ ├── RACSubscriber.m
│ │ │ │ ├── RACSubscriptingAssignmentTrampoline.h
│ │ │ │ ├── RACSubscriptingAssignmentTrampoline.m
│ │ │ │ ├── RACSubscriptionScheduler.h
│ │ │ │ ├── RACSubscriptionScheduler.m
│ │ │ │ ├── RACTargetQueueScheduler.h
│ │ │ │ ├── RACTargetQueueScheduler.m
│ │ │ │ ├── RACTestScheduler.h
│ │ │ │ ├── RACTestScheduler.m
│ │ │ │ ├── RACTuple.h
│ │ │ │ ├── RACTuple.m
│ │ │ │ ├── RACTupleSequence.h
│ │ │ │ ├── RACTupleSequence.m
│ │ │ │ ├── RACUnarySequence.h
│ │ │ │ ├── RACUnarySequence.m
│ │ │ │ ├── RACUnit.h
│ │ │ │ ├── RACUnit.m
│ │ │ │ ├── RACValueTransformer.h
│ │ │ │ ├── RACValueTransformer.m
│ │ │ │ ├── ReactiveCocoa-Bridging-Header.h
│ │ │ │ ├── UIActionSheet+RACSignalSupport.h
│ │ │ │ ├── UIActionSheet+RACSignalSupport.m
│ │ │ │ ├── UIAlertView+RACSignalSupport.h
│ │ │ │ ├── UIAlertView+RACSignalSupport.m
│ │ │ │ ├── UIBarButtonItem+RACCommandSupport.h
│ │ │ │ ├── UIBarButtonItem+RACCommandSupport.m
│ │ │ │ ├── UIButton+RACCommandSupport.h
│ │ │ │ ├── UIButton+RACCommandSupport.m
│ │ │ │ ├── UICollectionReusableView+RACSignalSupport.h
│ │ │ │ ├── UICollectionReusableView+RACSignalSupport.m
│ │ │ │ ├── UIControl+RACSignalSupport.h
│ │ │ │ ├── UIControl+RACSignalSupport.m
│ │ │ │ ├── UIControl+RACSignalSupportPrivate.h
│ │ │ │ ├── UIControl+RACSignalSupportPrivate.m
│ │ │ │ ├── UIDatePicker+RACSignalSupport.h
│ │ │ │ ├── UIDatePicker+RACSignalSupport.m
│ │ │ │ ├── UIGestureRecognizer+RACSignalSupport.h
│ │ │ │ ├── UIGestureRecognizer+RACSignalSupport.m
│ │ │ │ ├── UIImagePickerController+RACSignalSupport.h
│ │ │ │ ├── UIImagePickerController+RACSignalSupport.m
│ │ │ │ ├── UIRefreshControl+RACCommandSupport.h
│ │ │ │ ├── UIRefreshControl+RACCommandSupport.m
│ │ │ │ ├── UISegmentedControl+RACSignalSupport.h
│ │ │ │ ├── UISegmentedControl+RACSignalSupport.m
│ │ │ │ ├── UISlider+RACSignalSupport.h
│ │ │ │ ├── UISlider+RACSignalSupport.m
│ │ │ │ ├── UIStepper+RACSignalSupport.h
│ │ │ │ ├── UIStepper+RACSignalSupport.m
│ │ │ │ ├── UISwitch+RACSignalSupport.h
│ │ │ │ ├── UISwitch+RACSignalSupport.m
│ │ │ │ ├── UITableViewCell+RACSignalSupport.h
│ │ │ │ ├── UITableViewCell+RACSignalSupport.m
│ │ │ │ ├── UITableViewHeaderFooterView+RACSignalSupport.h
│ │ │ │ ├── UITableViewHeaderFooterView+RACSignalSupport.m
│ │ │ │ ├── UITextField+RACSignalSupport.h
│ │ │ │ ├── UITextField+RACSignalSupport.m
│ │ │ │ ├── UITextView+RACSignalSupport.h
│ │ │ │ ├── UITextView+RACSignalSupport.m
│ │ │ │ └── extobjc/
│ │ │ │ ├── EXTKeyPathCoding.h
│ │ │ │ ├── EXTRuntimeExtensions.h
│ │ │ │ ├── EXTRuntimeExtensions.m
│ │ │ │ ├── EXTScope.h
│ │ │ │ └── metamacros.h
│ │ │ ├── ReactiveCocoa.h
│ │ │ └── Swift/
│ │ │ ├── Action.swift
│ │ │ ├── Atomic.swift
│ │ │ ├── Bag.swift
│ │ │ ├── CocoaAction.swift
│ │ │ ├── Disposable.swift
│ │ │ ├── DynamicProperty.swift
│ │ │ ├── Errors.swift
│ │ │ ├── Event.swift
│ │ │ ├── EventLogger.swift
│ │ │ ├── Flatten.swift
│ │ │ ├── FoundationExtensions.swift
│ │ │ ├── ObjectiveCBridging.swift
│ │ │ ├── Observer.swift
│ │ │ ├── Optional.swift
│ │ │ ├── Property.swift
│ │ │ ├── Scheduler.swift
│ │ │ ├── Signal.swift
│ │ │ ├── SignalProducer.swift
│ │ │ └── TupleExtensions.swift
│ │ ├── ReactiveCocoa.playground/
│ │ │ ├── Pages/
│ │ │ │ ├── Sandbox.xcplaygroundpage/
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Signal.xcplaygroundpage/
│ │ │ │ │ └── Contents.swift
│ │ │ │ └── SignalProducer.xcplaygroundpage/
│ │ │ │ └── Contents.swift
│ │ │ ├── Sources/
│ │ │ │ └── PlaygroundUtility.swift
│ │ │ └── contents.xcplayground
│ │ ├── ReactiveCocoa.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ └── xcshareddata/
│ │ │ └── xcschemes/
│ │ │ ├── ReactiveCocoa-Mac.xcscheme
│ │ │ ├── ReactiveCocoa-iOS.xcscheme
│ │ │ ├── ReactiveCocoa-tvOS.xcscheme
│ │ │ └── ReactiveCocoa-watchOS.xcscheme
│ │ ├── ReactiveCocoaTests/
│ │ │ ├── Info.plist
│ │ │ ├── Objective-C/
│ │ │ │ ├── NSControllerRACSupportSpec.m
│ │ │ │ ├── NSEnumeratorRACSequenceAdditionsSpec.m
│ │ │ │ ├── NSNotificationCenterRACSupportSpec.m
│ │ │ │ ├── NSObjectRACAppKitBindingsSpec.m
│ │ │ │ ├── NSObjectRACDeallocatingSpec.m
│ │ │ │ ├── NSObjectRACLiftingSpec.m
│ │ │ │ ├── NSObjectRACPropertySubscribingExamples.h
│ │ │ │ ├── NSObjectRACPropertySubscribingExamples.m
│ │ │ │ ├── NSObjectRACPropertySubscribingSpec.m
│ │ │ │ ├── NSObjectRACSelectorSignalSpec.m
│ │ │ │ ├── NSStringRACKeyPathUtilitiesSpec.m
│ │ │ │ ├── NSURLConnectionRACSupportSpec.m
│ │ │ │ ├── NSUserDefaultsRACSupportSpec.m
│ │ │ │ ├── RACBlockTrampolineSpec.m
│ │ │ │ ├── RACChannelExamples.h
│ │ │ │ ├── RACChannelExamples.m
│ │ │ │ ├── RACChannelSpec.m
│ │ │ │ ├── RACCommandSpec.m
│ │ │ │ ├── RACCompoundDisposableSpec.m
│ │ │ │ ├── RACControlCommandExamples.h
│ │ │ │ ├── RACControlCommandExamples.m
│ │ │ │ ├── RACDelegateProxySpec.m
│ │ │ │ ├── RACDisposableSpec.m
│ │ │ │ ├── RACEventSpec.m
│ │ │ │ ├── RACKVOChannelSpec.m
│ │ │ │ ├── RACKVOProxySpec.m
│ │ │ │ ├── RACKVOWrapperSpec.m
│ │ │ │ ├── RACMulticastConnectionSpec.m
│ │ │ │ ├── RACPropertySignalExamples.h
│ │ │ │ ├── RACPropertySignalExamples.m
│ │ │ │ ├── RACSchedulerSpec.m
│ │ │ │ ├── RACSequenceAdditionsSpec.m
│ │ │ │ ├── RACSequenceExamples.h
│ │ │ │ ├── RACSequenceExamples.m
│ │ │ │ ├── RACSequenceSpec.m
│ │ │ │ ├── RACSerialDisposableSpec.m
│ │ │ │ ├── RACSignalSpec.m
│ │ │ │ ├── RACStreamExamples.h
│ │ │ │ ├── RACStreamExamples.m
│ │ │ │ ├── RACSubclassObject.h
│ │ │ │ ├── RACSubclassObject.m
│ │ │ │ ├── RACSubjectSpec.m
│ │ │ │ ├── RACSubscriberExamples.h
│ │ │ │ ├── RACSubscriberExamples.m
│ │ │ │ ├── RACSubscriberSpec.m
│ │ │ │ ├── RACSubscriptingAssignmentTrampolineSpec.m
│ │ │ │ ├── RACTargetQueueSchedulerSpec.m
│ │ │ │ ├── RACTestExampleScheduler.h
│ │ │ │ ├── RACTestExampleScheduler.m
│ │ │ │ ├── RACTestObject.h
│ │ │ │ ├── RACTestObject.m
│ │ │ │ ├── RACTestSchedulerSpec.m
│ │ │ │ ├── RACTestUIButton.h
│ │ │ │ ├── RACTestUIButton.m
│ │ │ │ ├── RACTupleSpec.m
│ │ │ │ ├── UIActionSheetRACSupportSpec.m
│ │ │ │ ├── UIAlertViewRACSupportSpec.m
│ │ │ │ ├── UIBarButtonItemRACSupportSpec.m
│ │ │ │ ├── UIButtonRACSupportSpec.m
│ │ │ │ └── UIImagePickerControllerRACSupportSpec.m
│ │ │ ├── Swift/
│ │ │ │ ├── ActionSpec.swift
│ │ │ │ ├── AtomicSpec.swift
│ │ │ │ ├── BagSpec.swift
│ │ │ │ ├── CocoaActionSpec.swift
│ │ │ │ ├── DisposableSpec.swift
│ │ │ │ ├── FlattenSpec.swift
│ │ │ │ ├── FoundationExtensionsSpec.swift
│ │ │ │ ├── ObjectiveCBridgingSpec.swift
│ │ │ │ ├── PropertySpec.swift
│ │ │ │ ├── SchedulerSpec.swift
│ │ │ │ ├── SignalLifetimeSpec.swift
│ │ │ │ ├── SignalProducerLiftingSpec.swift
│ │ │ │ ├── SignalProducerNimbleMatchers.swift
│ │ │ │ ├── SignalProducerSpec.swift
│ │ │ │ ├── SignalSpec.swift
│ │ │ │ ├── TestError.swift
│ │ │ │ └── TestLogger.swift
│ │ │ └── test-data.json
│ │ └── script/
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── bootstrap
│ │ ├── build
│ │ ├── cibuild
│ │ ├── schemes.awk
│ │ ├── targets.awk
│ │ ├── validate-playground.sh
│ │ ├── xcodebuild.awk
│ │ └── xctool.awk
│ ├── Result/
│ │ ├── .gitignore
│ │ ├── .gitmodules
│ │ ├── .swift-version
│ │ ├── .travis.yml
│ │ ├── CONTRIBUTING.md
│ │ ├── Cartfile
│ │ ├── Cartfile.resolved
│ │ ├── Carthage/
│ │ │ └── Checkouts/
│ │ │ └── Box/
│ │ │ ├── .gitignore
│ │ │ ├── Box/
│ │ │ │ ├── Box.h
│ │ │ │ ├── Box.swift
│ │ │ │ ├── BoxType.swift
│ │ │ │ ├── Info.plist
│ │ │ │ └── MutableBox.swift
│ │ │ ├── Box.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ ├── project.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── xcschemes/
│ │ │ │ ├── Box-Mac.xcscheme
│ │ │ │ └── Box-iOS.xcscheme
│ │ │ ├── BoxTests/
│ │ │ │ ├── BoxTests.swift
│ │ │ │ ├── BoxTypeTests.swift
│ │ │ │ ├── Info.plist
│ │ │ │ └── MutableBoxTests.swift
│ │ │ ├── LICENSE
│ │ │ └── README.md
│ │ ├── LICENSE
│ │ ├── Package.swift
│ │ ├── README.md
│ │ ├── Result/
│ │ │ ├── Info.plist
│ │ │ ├── Result.h
│ │ │ ├── Result.swift
│ │ │ └── ResultType.swift
│ │ ├── Result.podspec
│ │ ├── Result.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace/
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── xcschemes/
│ │ │ ├── Result-Mac.xcscheme
│ │ │ ├── Result-iOS.xcscheme
│ │ │ ├── Result-tvOS.xcscheme
│ │ │ └── Result-watchOS.xcscheme
│ │ ├── Result.xcworkspace/
│ │ │ └── contents.xcworkspacedata
│ │ ├── ResultTests/
│ │ │ ├── Info.plist
│ │ │ └── ResultTests.swift
│ │ └── Tests/
│ │ ├── LinuxMain.swift
│ │ └── Result/
│ │ ├── Info.plist
│ │ └── ResultTests.swift
│ └── SnapKit/
│ ├── .gitignore
│ ├── .travis.yml
│ ├── CHANGELOG.md
│ ├── CONTRIBUTING.md
│ ├── CodeSnippets/
│ │ ├── SnapKit Constraint Make.codesnippet
│ │ └── SnapKit Constraint Remake.codesnippet
│ ├── Example-iOS/
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets/
│ │ │ └── AppIcon.appiconset/
│ │ │ └── Contents.json
│ │ ├── Base.lproj/
│ │ │ └── LaunchScreen.storyboard
│ │ ├── Info.plist
│ │ ├── ListViewController.swift
│ │ └── demos/
│ │ ├── BasicUIScrollViewController.swift
│ │ └── SimpleLayoutViewController.swift
│ ├── ISSUE_TEMPLATE.md
│ ├── LICENSE
│ ├── Package.swift
│ ├── README.md
│ ├── SnapKit.podspec
│ ├── SnapKit.xcodeproj/
│ │ ├── project.pbxproj
│ │ └── xcshareddata/
│ │ └── xcschemes/
│ │ ├── SnapKit OSX.xcscheme
│ │ ├── SnapKit iOS.xcscheme
│ │ └── SnapKit tvOS.xcscheme
│ ├── SnapKit.xcworkspace/
│ │ └── contents.xcworkspacedata
│ ├── Source/
│ │ ├── Constraint.swift
│ │ ├── ConstraintAttributes.swift
│ │ ├── ConstraintDescription.swift
│ │ ├── ConstraintItem.swift
│ │ ├── ConstraintMaker.swift
│ │ ├── ConstraintRelation.swift
│ │ ├── Debugging.swift
│ │ ├── EdgeInsets.swift
│ │ ├── Info.plist
│ │ ├── LayoutConstraint.swift
│ │ ├── SnapKit.h
│ │ ├── SnapKit.swift
│ │ ├── View+SnapKit.swift
│ │ └── ViewController+SnapKit.swift
│ └── Tests/
│ ├── Info.plist
│ └── Tests.swift
├── LICENSE
├── README.md
├── SwiftGoal/
│ ├── AppDelegate.swift
│ ├── Base.lproj/
│ │ └── LaunchScreen.xib
│ ├── Helpers/
│ │ ├── Color.swift
│ │ ├── Extensions.swift
│ │ └── RankingEngine.swift
│ ├── Images.xcassets/
│ │ ├── AppIcon.appiconset/
│ │ │ └── Contents.json
│ │ ├── Crown.imageset/
│ │ │ └── Contents.json
│ │ ├── CrownFilled.imageset/
│ │ │ └── Contents.json
│ │ └── FootballFilled.imageset/
│ │ └── Contents.json
│ ├── Info.plist
│ ├── Models/
│ │ ├── Changeset.swift
│ │ ├── Encodable.swift
│ │ ├── Match.swift
│ │ ├── Player.swift
│ │ └── Ranking.swift
│ ├── Settings.bundle/
│ │ └── Root.plist
│ ├── Stores/
│ │ ├── LocalStore.swift
│ │ ├── RemoteStore.swift
│ │ └── StoreType.swift
│ ├── ViewModels/
│ │ ├── EditMatchViewModel.swift
│ │ ├── ManagePlayersViewModel.swift
│ │ ├── MatchesViewModel.swift
│ │ └── RankingsViewModel.swift
│ └── Views/
│ ├── EditMatchViewController.swift
│ ├── ManagePlayersViewController.swift
│ ├── MatchCell.swift
│ ├── MatchesViewController.swift
│ ├── PlayerCell.swift
│ ├── RankingCell.swift
│ └── RankingsViewController.swift
├── SwiftGoal.xcodeproj/
│ ├── project.pbxproj
│ ├── project.xcworkspace/
│ │ └── contents.xcworkspacedata
│ └── xcshareddata/
│ └── xcschemes/
│ └── SwiftGoal.xcscheme
└── SwiftGoalTests/
├── Helpers/
│ └── RankingEngineSpec.swift
├── Info.plist
├── MockStore.swift
├── Models/
│ ├── ChangesetSpec.swift
│ ├── MatchSpec.swift
│ ├── PlayerSpec.swift
│ └── RankingSpec.swift
└── ViewModels/
├── EditMatchViewModelSpec.swift
├── ManagePlayersViewModelSpec.swift
├── MatchesViewModelSpec.swift
└── RankingsViewModelSpec.swift
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
#
# Pods/
# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts
Carthage/Build
================================================
FILE: Cartfile
================================================
github "dzenbot/DZNEmptyDataSet" == 1.8.1
github "ReactiveCocoa/ReactiveCocoa" == 4.2.2
github "SnapKit/SnapKit" == 0.21.1
github "thoughtbot/Argo" == 3.1
github "thoughtbot/Curry" == 2.3.3
================================================
FILE: Cartfile.private
================================================
github "Quick/Quick" == 0.9.3
github "Quick/Nimble" == 4.1.0
================================================
FILE: Cartfile.resolved
================================================
github "thoughtbot/Argo" "v3.1.0"
github "thoughtbot/Curry" "v2.3.3"
github "dzenbot/DZNEmptyDataSet" "v1.8.1"
github "Quick/Nimble" "v4.1.0"
github "Quick/Quick" "v0.9.3"
github "antitypical/Result" "2.1.3"
github "SnapKit/SnapKit" "0.21.1"
github "ReactiveCocoa/ReactiveCocoa" "v4.2.2"
================================================
FILE: Carthage/Checkouts/Argo/.gitattributes
================================================
*.pbxproj merge=union
================================================
FILE: Carthage/Checkouts/Argo/.gitignore
================================================
# OS X Finder
.DS_Store
# Xcode per-user config
*.mode1
*.mode1v3
*.mode2v3
*.perspective
*.perspectivev3
*.pbxuser
xcuserdata
*.xccheckout
# Build products
build/
*.o
*.LinkFileList
*.hmap
# Automatic backup files
*~.nib/
*.swp
*~
*.dat
*.dep
# Cocoapods
Pods
# Carthage
Carthage/Build
# AppCode specific files
.idea/
*.iml
Argo.framework.zip
*.xcscmblueprint
================================================
FILE: Carthage/Checkouts/Argo/.gitmodules
================================================
[submodule "Carthage/Checkouts/Runes"]
path = Carthage/Checkouts/Runes
url = https://github.com/thoughtbot/Runes.git
[submodule "Carthage/Checkouts/Curry"]
path = Carthage/Checkouts/Curry
url = https://github.com/thoughtbot/Curry.git
================================================
FILE: Carthage/Checkouts/Argo/.hound.yml
================================================
swift:
enabled: true
================================================
FILE: Carthage/Checkouts/Argo/Argo/Extensions/Dictionary.swift
================================================
// pure merge for Dictionaries
func + <T, U>(lhs: [T: U], rhs: [T: U]) -> [T: U] {
var merged = lhs
for (key, val) in rhs {
merged[key] = val
}
return merged
}
extension Dictionary {
func map<T>(@noescape f: Value -> T) -> [Key: T] {
var accum = Dictionary<Key, T>(minimumCapacity: self.count)
for (key, value) in self {
accum[key] = f(value)
}
return accum
}
}
func <^> <T, U, V>(@noescape f: T -> U, x: [V: T]) -> [V: U] {
return x.map(f)
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Extensions/NSNumber.swift
================================================
import Foundation
extension NSNumber {
var isBool: Bool {
return CFBooleanGetTypeID() == CFGetTypeID(self)
}
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Extensions/RawRepresentable.swift
================================================
/**
Default implementation of `Decodable` for `RawRepresentable` types using
`String` as the raw value.
*/
public extension Decodable where Self.DecodedType == Self, Self: RawRepresentable, Self.RawValue == String {
static func decode(json: JSON) -> Decoded<Self> {
switch json {
case let .String(s): return self.init(rawValue: s).map(pure) ?? .typeMismatch("rawValue for \(self)", actual: json)
default: return .typeMismatch("String", actual: json)
}
}
}
/**
Default implementation of `Decodable` for `RawRepresentable` types using
`Int` as the raw value.
*/
public extension Decodable where Self.DecodedType == Self, Self: RawRepresentable, Self.RawValue == Int {
static func decode(json: JSON) -> Decoded<Self> {
switch json {
case let .Number(n): return self.init(rawValue: n as Int).map(pure) ?? .typeMismatch("rawValue for \(self)", actual: json)
default: return .typeMismatch("Int", actual: json)
}
}
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Functions/catDecoded.swift
================================================
/**
Create a new array of unwrapped `.Success` values, filtering out `.Failure`s.
This will iterate through the array of `Decoded<T>` elements and safely
unwrap the values.
If the element is `.Success(T)`, it will unwrap the value and add it into the
array.
If the element is `.Failure`, it will not be added to the new array.
- parameter xs: An array of `Decoded<T>` values
- returns: An array of unwrapped values of type `T`
*/
public func catDecoded<T>(xs: [Decoded<T>]) -> [T] {
var accum: [T] = []
accum.reserveCapacity(xs.count)
for x in xs {
switch x {
case let .Success(value): accum.append(value)
case .Failure: continue
}
}
return accum
}
/**
Create a new dictionary of unwrapped `.Success` values, filtering out
`.Failure`s.
This will iterate through the dictionary of `Decoded<T>` elements and safely
unwrap the values.
If the element is `.Success(T)`, it will unwrap the value and assign it to
the existing key in the new dictionary.
If the element is `.Failure`, it will not be added to the new dictionary.
- parameter xs: A dictionary of `Decoded<T>` values assigned to `String` keys
- returns: A dictionary of unwrapped values of type `T` assigned to `String` keys
*/
public func catDecoded<T>(xs: [String: Decoded<T>]) -> [String: T] {
var accum = Dictionary<String, T>(minimumCapacity: xs.count)
for (key, x) in xs {
switch x {
case let .Success(value): accum[key] = value
case .Failure: continue
}
}
return accum
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Functions/curry.swift
================================================
func curry<T, U, V>(f : (T, U) -> V) -> T -> U -> V {
return { x in { y in f(x, y) } }
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Functions/decode.swift
================================================
/**
Attempt to transform `AnyObject` into a `Decodable` value.
This function takes `AnyObject` (usually the output from
`NSJSONSerialization`) and attempts to transform it into a `Decodable` value.
This works based on the type you ask for.
For example, the following code attempts to decode to `Decoded<String>`,
because that's what we have explicitly stated is the return type:
```
do {
let object = try NSJSONSerialization.JSONObjectWithData(data, options: nil)
let str: Decoded<String> = decode(object)
} catch {
// handle error
}
```
- parameter object: The `AnyObject` instance to attempt to decode
- returns: A `Decoded<T>` value where `T` is `Decodable`
*/
public func decode<T: Decodable where T == T.DecodedType>(object: AnyObject) -> Decoded<T> {
return T.decode(JSON(object))
}
/**
Attempt to transform `AnyObject` into an `Array` of `Decodable` values.
This function takes `AnyObject` (usually the output from
`NSJSONSerialization`) and attempts to transform it into an `Array` of
`Decodable` values. This works based on the type you ask for.
For example, the following code attempts to decode to
`Decoded<[String]>`, because that's what we have explicitly stated is
the return type:
```
do {
let object = try NSJSONSerialization.JSONObjectWithData(data, options: nil)
let str: Decoded<[String]> = decode(object)
} catch {
// handle error
}
```
- parameter object: The `AnyObject` instance to attempt to decode
- returns: A `Decoded<[T]>` value where `T` is `Decodable`
*/
public func decode<T: Decodable where T == T.DecodedType>(object: AnyObject) -> Decoded<[T]> {
return Array<T>.decode(JSON(object))
}
/**
Attempt to transform `AnyObject` into a `Decodable` value and return an `Optional`.
This function takes `AnyObject` (usually the output from
`NSJSONSerialization`) and attempts to transform it into a `Decodable` value,
returning an `Optional`. This works based on the type you ask for.
For example, the following code attempts to decode to `Optional<String>`,
because that's what we have explicitly stated is the return type:
```
do {
let object = try NSJSONSerialization.JSONObjectWithData(data, options: nil)
let str: String? = decode(object)
} catch {
// handle error
}
```
- parameter object: The `AnyObject` instance to attempt to decode
- returns: An `Optional<T>` value where `T` is `Decodable`
*/
public func decode<T: Decodable where T == T.DecodedType>(object: AnyObject) -> T? {
return decode(object).value
}
/**
Attempt to transform `AnyObject` into an `Array` of `Decodable` values and
return an `Optional`.
This function takes `AnyObject` (usually the output from
`NSJSONSerialization`) and attempts to transform it into an `Array` of
`Decodable` values, returning an `Optional`. This works based on the type you
ask for.
For example, the following code attempts to decode to
`Optional<[String]>`, because that's what we have explicitly stated is
the return type:
```
do {
let object = try NSJSONSerialization.JSONObjectWithData(data, options: nil)
let str: [String]? = decode(object)
} catch {
// handle error
}
```
- parameter object: The `AnyObject` instance to attempt to decode
- returns: An `Optional<[T]>` value where `T` is `Decodable`
*/
public func decode<T: Decodable where T == T.DecodedType>(object: AnyObject) -> [T]? {
return decode(object).value
}
/**
Attempt to transform `AnyObject` into a `Decodable` value using a specified
root key.
This function attempts to extract the embedded `JSON` object from the
dictionary at the specified key and transform it into a `Decodable` value.
This works based on the type you ask for.
For example, the following code attempts to decode to `Decoded<String>`,
because that's what we have explicitly stated is the return type:
```
do {
let dict = try NSJSONSerialization.JSONObjectWithData(data, options: nil) as? [String: AnyObject] ?? [:]
let str: Decoded<String> = decode(dict, rootKey: "value")
} catch {
// handle error
}
```
- parameter dict: The dictionary containing the `AnyObject` instance to
attempt to decode
- parameter rootKey: The root key that contains the object to decode
- returns: A `Decoded<T>` value where `T` is `Decodable`
*/
public func decode<T: Decodable where T == T.DecodedType>(dict: [String: AnyObject], rootKey: String) -> Decoded<T> {
return JSON(dict) <| rootKey
}
/**
Attempt to transform `AnyObject` into an `Array` of `Decodable` value using a
specified root key.
This function attempts to extract the embedded `JSON` object from the
dictionary at the specified key and transform it into an `Array` of
`Decodable` values. This works based on the type you ask for.
For example, the following code attempts to decode to `Decoded<[String]>`,
because that's what we have explicitly stated is the return type:
```
do {
let dict = try NSJSONSerialization.JSONObjectWithData(data, options: nil) as? [String: AnyObject] ?? [:]
let str: Decoded<[String]> = decode(dict, rootKey: "value")
} catch {
// handle error
}
```
- parameter dict: The dictionary containing the `AnyObject` instance to
attempt to decode
- parameter rootKey: The root key that contains the object to decode
- returns: A `Decoded<[T]>` value where `T` is `Decodable`
*/
public func decode<T: Decodable where T == T.DecodedType>(dict: [String: AnyObject], rootKey: String) -> Decoded<[T]> {
return JSON(dict) <|| rootKey
}
/**
Attempt to transform `AnyObject` into a `Decodable` value using a specified
root key and return an `Optional`.
This function attempts to extract the embedded `JSON` object from the
dictionary at the specified key and transform it into a `Decodable` value,
returning an `Optional`. This works based on the type you ask for.
For example, the following code attempts to decode to `Optional<String>`,
because that's what we have explicitly stated is the return type:
```
do {
let dict = try NSJSONSerialization.JSONObjectWithData(data, options: nil) as? [String: AnyObject] ?? [:]
let str: String? = decode(dict, rootKey: "value")
} catch {
// handle error
}
```
- parameter dict: The dictionary containing the `AnyObject` instance to
attempt to decode
- parameter rootKey: The root key that contains the object to decode
- returns: A `Decoded<T>` value where `T` is `Decodable`
*/
public func decode<T: Decodable where T == T.DecodedType>(dict: [String: AnyObject], rootKey: String) -> T? {
return decode(dict, rootKey: rootKey).value
}
/**
Attempt to transform `AnyObject` into an `Array` of `Decodable` value using a
specified root key and return an `Optional`
This function attempts to extract the embedded `JSON` object from the
dictionary at the specified key and transform it into an `Array` of
`Decodable` values, returning an `Optional`. This works based on the type you
ask for.
For example, the following code attempts to decode to `Optional<[String]>`,
because that's what we have explicitly stated is the return type:
```
do {
let dict = try NSJSONSerialization.JSONObjectWithData(data, options: nil) as? [String: AnyObject] ?? [:]
let str: [String]? = decode(dict, rootKey: "value")
} catch {
// handle error
}
```
- parameter dict: The dictionary containing the `AnyObject` instance to
attempt to decode
- parameter rootKey: The root key that contains the object to decode
- returns: A `Decoded<[T]>` value where `T` is `Decodable`
*/
public func decode<T: Decodable where T == T.DecodedType>(dict: [String: AnyObject], rootKey: String) -> [T]? {
return decode(dict, rootKey: rootKey).value
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Functions/flatReduce.swift
================================================
/**
Reduce a sequence with a combinator that returns a `Decoded` type, flattening
the result.
This function is a helper function to make it easier to deal with combinators
that return `Decoded` types without ending up with multiple levels of nested
`Decoded` values.
For example, it can be used to traverse a JSON structure with an array of
keys. See the implementations of `<|` and `<||` that take an array of keys for
a real-world example of this use case.
- parameter sequence: Any `SequenceType` of values
- parameter initial: The initial value for the accumulator
- parameter combine: The combinator, which returns a `Decoded` type
- returns: The result of iterating the combinator over every element of the
sequence and flattening the result
*/
public func flatReduce<S: SequenceType, U>(sequence: S, initial: U, @noescape combine: (U, S.Generator.Element) -> Decoded<U>) -> Decoded<U> {
return sequence.reduce(pure(initial)) { accum, x in
accum >>- { combine($0, x) }
}
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Functions/sequence.swift
================================================
/**
Convert an `Array` of `Decoded<T>` values to a `Decoded` `Array` of unwrapped
`T` values.
This performs an all-or-nothing transformation on the array. If every element
is `.Success`, then this function will return `.Success` along with the array
of unwrapped `T` values.
However, if _any_ of the elements are `.Failure`, this function will also
return `.Failure`, and no array will be returned.
- parameter xs: An `Array` of `Decoded<T>` values
- returns: A `Decoded` `Array` of unwrapped `T` values
*/
public func sequence<T>(xs: [Decoded<T>]) -> Decoded<[T]> {
var accum: [T] = []
accum.reserveCapacity(xs.count)
for x in xs {
switch x {
case let .Success(value): accum.append(value)
case let .Failure(error): return .Failure(error)
}
}
return pure(accum)
}
/**
Convert a `Dictionary` with `Decoded<T>` values to a `Decoded` `Dictionary`
with unwrapped `T` values.
This performs an all-or-nothing transformation on the dictionary. If every
key is associated with a `.Success` value, then this function will return
`.Success` along with the dictionary of unwrapped `T` values associated with
their original keys.
However, if _any_ of the keys are associated with a `.Failure` value, this
function will also return `.Failure`, and no dictionary will be returned.
- parameter xs: A `Dictionary` of arbitrary keys and `Decoded<T>` values
- returns: A `Decoded` `Dictionary` of unwrapped `T` values assigned to their
original keys
*/
public func sequence<Key, Value>(xs: [Key: Decoded<Value>]) -> Decoded<[Key: Value]> {
var accum = Dictionary<Key, Value>(minimumCapacity: xs.count)
for (key, x) in xs {
switch x {
case let .Success(value): accum[key] = value
case let .Failure(error): return .Failure(error)
}
}
return pure(accum)
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Operators/Argo.swift
================================================
infix operator <| { associativity left precedence 150 }
infix operator <|? { associativity left precedence 150 }
infix operator <|| { associativity left precedence 150 }
infix operator <||? { associativity left precedence 150 }
================================================
FILE: Carthage/Checkouts/Argo/Argo/Operators/Decode.swift
================================================
/**
Attempt to decode a value at the specified key into the requested type.
This operator is used to decode a mandatory value from the `JSON`. If the
decoding fails for any reason, this will result in a `.Failure` being
returned.
- parameter json: The `JSON` object containing the key
- parameter key: The key for the object to decode
- returns: A `Decoded` value representing the success or failure of the
decode operation
*/
public func <| <A where A: Decodable, A == A.DecodedType>(json: JSON, key: String) -> Decoded<A> {
return json <| [key]
}
/**
Attempt to decode an optional value at the specified key into the requested
type.
This operator is used to decode an optional value from the `JSON`. If the key
isn't present in the `JSON`, this will still return `.Success`. However, if
the key exists but the object assigned to that key is unable to be decoded
into the requested type, this will return `.Failure`.
- parameter json: The `JSON` object containing the key
- parameter key: The key for the object to decode
- returns: A `Decoded` optional value representing the success or failure of
the decode operation
*/
public func <|? <A where A: Decodable, A == A.DecodedType>(json: JSON, key: String) -> Decoded<A?> {
return .optional(json <| [key])
}
/**
Attempt to decode a value at the specified key path into the requested type.
This operator is used to decode a mandatory value from the `JSON`. If the
decoding fails for any reason, this will result in a `.Failure` being
returned.
- parameter json: The `JSON` object containing the key
- parameter keys: The key path for the object to decode, represented by an
array of strings
- returns: A `Decoded` value representing the success or failure of the
decode operation
*/
public func <| <A where A: Decodable, A == A.DecodedType>(json: JSON, keys: [String]) -> Decoded<A> {
return flatReduce(keys, initial: json, combine: decodedJSON) >>- A.decode
}
/**
Attempt to decode an optional value at the specified key path into the
requested type.
This operator is used to decode an optional value from the `JSON`. If any of
the keys in the key path aren't present in the `JSON`, this will still return
`.Success`. However, if the key path exists but the object assigned to the
final key is unable to be decoded into the requested type, this will return
`.Failure`.
- parameter json: The `JSON` object containing the key
- parameter keys: The key path for the object to decode, represented by an
array of strings
- returns: A `Decoded` optional value representing the success or failure of
the decode operation
*/
public func <|? <A where A: Decodable, A == A.DecodedType>(json: JSON, keys: [String]) -> Decoded<A?> {
return .optional(json <| keys)
}
/**
Attempt to decode an array of values at the specified key into the requested
type.
This operator is used to decode a mandatory array of values from the `JSON`.
If the decoding of any of the objects fail for any reason, this will result
in a `.Failure` being returned.
- parameter json: The `JSON` object containing the key
- parameter key: The key for the array of objects to decode
- returns: A `Decoded` array of values representing the success or failure of
the decode operation
*/
public func <|| <A where A: Decodable, A == A.DecodedType>(json: JSON, key: String) -> Decoded<[A]> {
return json <|| [key]
}
/**
Attempt to decode an optional array of values at the specified key into the
requested type.
This operator is used to decode an optional array of values from the `JSON`.
If the key isn't present in the `JSON`, this will still return `.Success`.
However, if the key exists but the objects assigned to that key are unable to
be decoded into the requested type, this will return `.Failure`.
- parameter json: The `JSON` object containing the key
- parameter key: The key for the object to decode
- returns: A `Decoded` optional array of values representing the success or
failure of the decode operation
*/
public func <||? <A where A: Decodable, A == A.DecodedType>(json: JSON, key: String) -> Decoded<[A]?> {
return .optional(json <|| [key])
}
/**
Attempt to decode an array of values at the specified key path into the
requested type.
This operator is used to decode a mandatory array of values from the `JSON`.
If the decoding fails for any reason, this will result in a `.Failure` being
returned.
- parameter json: The `JSON` object containing the key
- parameter keys: The key path for the object to decode, represented by an
array of strings
- returns: A `Decoded` array of values representing the success or failure of
the decode operation
*/
public func <|| <A where A: Decodable, A == A.DecodedType>(json: JSON, keys: [String]) -> Decoded<[A]> {
return flatReduce(keys, initial: json, combine: decodedJSON) >>- Array<A>.decode
}
/**
Attempt to decode an optional array of values at the specified key path into
the requested type.
This operator is used to decode an optional array of values from the `JSON`.
If any of the keys in the key path aren't present in the `JSON`, this will
still return `.Success`. However, if the key path exists but the objects
assigned to the final key are unable to be decoded into the requested type,
this will return `.Failure`.
- parameter json: The `JSON` object containing the key
- parameter keys: The key path for the object to decode, represented by an
array of strings
- returns: A `Decoded` optional array of values representing the success or
failure of the decode operation
*/
public func <||? <A where A: Decodable, A == A.DecodedType>(json: JSON, keys: [String]) -> Decoded<[A]?> {
return .optional(json <|| keys)
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Resources/Argo.h
================================================
#import <Foundation/Foundation.h>
//! Project version number for Argo.
FOUNDATION_EXPORT double ArgoVersionNumber;
//! Project version string for Argo.
FOUNDATION_EXPORT const unsigned char ArgoVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <Argo/PublicHeader.h>
================================================
FILE: Carthage/Checkouts/Argo/Argo/Resources/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>3.1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
================================================
FILE: Carthage/Checkouts/Argo/Argo/Types/Decodable.swift
================================================
public protocol Decodable {
/**
The type of object that will be decoded.
In order to work with the rest of Argo, this needs to be the same as `Self`.
You will only need to worry about this if the object conforming to
`Decodable` is a reference type (i.e. a `class`), and one of the following
is true:
- Your type is not marked as `final`
- Your `decode` function is not marked as either `final` or `static`
In that case, you will need to explicitly set `DecodedType` to the type you
are returning in order for the compiler to be able to guarantee that this
protocol is being fully conformed to.
We expect the need for this typealias to be removed in a later version of Swift.
*/
associatedtype DecodedType = Self
/**
Decode an object from JSON.
This is the main entry point for Argo. This function declares how the
conforming type should be decoded from JSON. Since this is a failable
operation, we need to return a `Decoded` type from this function.
- parameter json: The `JSON` representation of this object
- returns: A decoded instance of the `DecodedType`
*/
static func decode(json: JSON) -> Decoded<DecodedType>
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Types/DecodeError.swift
================================================
/// Possible decoding failure reasons.
public enum DecodeError: ErrorType {
/// The type existing at the key didn't match the type being requested.
case TypeMismatch(expected: String, actual: String)
/// The key did not exist in the JSON.
case MissingKey(String)
/// A custom error case for adding explicit failure info.
case Custom(String)
}
extension DecodeError: CustomStringConvertible {
public var description: String {
switch self {
case let .TypeMismatch(expected, actual): return "TypeMismatch(Expected \(expected), got \(actual))"
case let .MissingKey(s): return "MissingKey(\(s))"
case let .Custom(s): return "Custom(\(s))"
}
}
}
extension DecodeError: Hashable {
public var hashValue: Int {
switch self {
case let .TypeMismatch(expected: expected, actual: actual):
return expected.hashValue ^ actual.hashValue
case let .MissingKey(string):
return string.hashValue
case let .Custom(string):
return string.hashValue
}
}
}
public func == (lhs: DecodeError, rhs: DecodeError) -> Bool {
switch (lhs, rhs) {
case let (.TypeMismatch(expected: expected1, actual: actual1), .TypeMismatch(expected: expected2, actual: actual2)):
return expected1 == expected2 && actual1 == actual2
case let (.MissingKey(string1), .MissingKey(string2)):
return string1 == string2
case let (.Custom(string1), .Custom(string2)):
return string1 == string2
default:
return false
}
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Types/Decoded/Alternative.swift
================================================
infix operator <|> { associativity left precedence 140 }
/**
Return the left `Decoded` value if it is `.Success`, otherwise return the
default value on the right.
- If the left hand side is `.Success`, this will return the argument on the
left hand side.
- If the left hand side is `.Failure`, this will return the argument on the
right hand side.
- parameter lhs: A value of type `Decoded<T>`
- parameter rhs: A value of type `Decoded<T>`
- returns: A value of type `Decoded<T>`
*/
public func <|> <T>(lhs: Decoded<T>, @autoclosure rhs: () -> Decoded<T>) -> Decoded<T> {
return lhs.or(rhs)
}
public extension Decoded {
/**
Return `self` if it is `.Success`, otherwise return the provided default
value.
- If `self` is `.Success`, this will return `self`.
- If `self` is `.Failure`, this will return the default.
- parameter other: A value of type `Decoded<T>`
- returns: A value of type `Decoded<T>`
*/
func or(@autoclosure other: () -> Decoded<T>) -> Decoded<T> {
switch self {
case .Success: return self
case .Failure: return other()
}
}
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Types/Decoded/Applicative.swift
================================================
/**
Conditionally apply a `Decoded` function to a `Decoded` value.
- If either the function or value arguments are `.Failure`, this will return
`.Failure`. The function's `.Failure` takes precedence here, and will be
returned first. If the function is `.Success` and the value is `.Failure`,
then the value's `.Failure` will be returned.
- If both the function and value arguments are `.Success`, this will return
the result of the function applied to the unwrapped value.
- parameter f: A `Decoded` transformation function from type `T` to type `U`
- parameter x: A value of type `Decoded<T>`
- returns: A value of type `Decoded<U>`
*/
public func <*> <T, U>(f: Decoded<T -> U>, x: Decoded<T>) -> Decoded<U> {
return x.apply(f)
}
/**
Wrap a value in the minimal context of `.Success`.
- parameter x: Any value
- returns: The provided value wrapped in `.Success`
*/
public func pure<T>(x: T) -> Decoded<T> {
return .Success(x)
}
public extension Decoded {
/**
Conditionally apply a `Decoded` function to `self`.
- If either the function or `self` are `.Failure`, this will return
`.Failure`. The function's `.Failure` takes precedence here, and will be
returned first. If the function is `.Success` and `self` is `.Failure`,
then `self`'s `.Failure` will be returned.
- If both the function and `self` are `.Success`, this will return
the result of the function applied to the unwrapped value.
- parameter f: A `Decoded` transformation function from type `T` to type
`U`
- returns: A value of type `Decoded<U>`
*/
func apply<U>(f: Decoded<T -> U>) -> Decoded<U> {
switch f {
case let .Success(function): return self.map(function)
case let .Failure(error): return .Failure(error)
}
}
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Types/Decoded/Decoded.swift
================================================
/// The result of a failable decoding operation.
public enum Decoded<T> {
case Success(T)
case Failure(DecodeError)
}
public extension Decoded {
/**
Get the unwrapped value as an `Optional`.
- returns: The unwrapped value if it exists, otherwise `.None`
*/
var value: T? {
switch self {
case let .Success(value): return value
case .Failure: return .None
}
}
/**
Get the error value as an `Optional`.
- returns: The unwrapped error if it exists, otherwise `.None`
*/
var error: DecodeError? {
switch self {
case .Success: return .None
case let .Failure(error): return error
}
}
}
public extension Decoded {
/**
Convert a `Decoded` type into a `Decoded` `Optional` type.
This is useful for when a decode operation should be allowed to fail, such
as when decoding an optional property.
It only returns a `.Failure` case if the error is `.TypeMismatch` or
`.Custom`. If the error was `.MissingKey`, it converts the failure into
`.Success(.None)`.
- parameter x: A `Decoded` type
- returns: The `Decoded` type with a `.TypeMismatch` failure converted to
`.Success(.None)`
*/
static func optional<T>(x: Decoded<T>) -> Decoded<T?> {
switch x {
case let .Success(value): return .Success(.Some(value))
case .Failure(.MissingKey): return .Success(.None)
case let .Failure(.TypeMismatch(expected, actual)):
return .Failure(.TypeMismatch(expected: expected, actual: actual))
case let .Failure(.Custom(x)): return .Failure(.Custom(x))
}
}
/**
Convert an `Optional` into a `Decoded` value.
If the provided optional is `.Some`, this method extracts the value and
wraps it in `.Success`. Otherwise, it returns a `.TypeMismatch` error.
- returns: The provided `Optional` value transformed into a `Decoded` value
*/
static func fromOptional<T>(x: T?) -> Decoded<T> {
switch x {
case let .Some(value): return .Success(value)
case .None: return .typeMismatch(".Some(\(T.self))", actual: ".None")
}
}
}
public extension Decoded {
/**
Convenience function for creating `.TypeMismatch` errors.
- parameter expected: A string describing the expected type
- parameter actual: A string describing the actual type
- returns: A `Decoded.Failure` with a `.TypeMismatch` error constructed
from the provided `expected` and `actual` values
*/
static func typeMismatch<T, U>(expected: String, actual: U) -> Decoded<T> {
return .Failure(.TypeMismatch(expected: expected, actual: String(actual)))
}
/**
Convenience function for creating `.MissingKey` errors.
- parameter name: The name of the missing key
- returns: A `Decoded.Failure` with a `.MissingKey` error constructed from
the provided `name` value
*/
static func missingKey<T>(name: String) -> Decoded<T> {
return .Failure(.MissingKey(name))
}
/**
Convenience function for creating `.Custom` errors
- parameter message: The custom error message
- returns: A `Decoded.Failure` with a `.Custom` error constructed from the
provided `message` value
*/
static func customError<T>(message: String) -> Decoded<T> {
return .Failure(.Custom(message))
}
}
extension Decoded: CustomStringConvertible {
public var description: String {
switch self {
case let .Success(value): return "Success(\(value))"
case let .Failure(error): return "Failure(\(error))"
}
}
}
public extension Decoded {
/**
Extract the `.Success` value or throw an error.
This can be used to move from `Decoded` types into the world of `throws`.
If the value exists, this will return it. Otherwise, it will throw the error
information.
- throws: `DecodeError` if `self` is `.Failure`
- returns: The unwrapped value
*/
func dematerialize() throws -> T {
switch self {
case let .Success(value): return value
case let .Failure(error): throw error
}
}
}
/**
Construct a `Decoded` type from a throwing function.
This can be used to move from the world of `throws` into a `Decoded` type. If
the function succeeds, it will wrap the returned value in a minimal context of
`.Success`. Otherwise, it will return a custom error with the thrown error from
the function.
- parameter f: A function from `Void` to `T` that can `throw` an error
- returns: A `Decoded` type representing the success or failure of the function
*/
public func materialize<T>(f: () throws -> T) -> Decoded<T> {
do {
return .Success(try f())
} catch {
return .customError("\(error)")
}
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Types/Decoded/FailureCoalescing.swift
================================================
/**
Return the unwrapped value of the `Decoded` value on the left if it is
`.Success`, otherwise return the default on the right.
- If the left hand side is `.Success`, this will return the unwrapped value
from the left hand side argument.
- If the left hand side is `.Failure`, this will return the default value on
the right hand side.
- parameter lhs: A value of type `Decoded<T>`
- parameter rhs: An autoclosure returning a value of type `T`
- returns: A value of type `T`
*/
public func ?? <T>(lhs: Decoded<T>, @autoclosure rhs: () -> T) -> T {
switch lhs {
case let .Success(x): return x
case .Failure: return rhs()
}
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Types/Decoded/Functor.swift
================================================
/**
Conditionally map a function over a `Decoded` value.
- If the value is `.Failure`, the function will not be evaluated and this
will return `.Failure`.
- If the value is `.Success`, the function will be applied to the unwrapped
value.
- parameter f: A transformation function from type `T` to type `U`
- parameter x: A value of type `Decoded<T>`
- returns: A value of type `Decoded<U>`
*/
public func <^> <T, U>(@noescape f: T -> U, x: Decoded<T>) -> Decoded<U> {
return x.map(f)
}
public extension Decoded {
/**
Conditionally map a function over `self`.
- If `self` is `.Failure`, the function will not be evaluated and this will
return `.Failure`.
- If `self` is `.Success`, the function will be applied to the unwrapped
value.
- parameter f: A transformation function from type `T` to type `U`
- returns: A value of type `Decoded<U>`
*/
func map<U>(@noescape f: T -> U) -> Decoded<U> {
switch self {
case let .Success(value): return .Success(f(value))
case let .Failure(error): return .Failure(error)
}
}
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Types/Decoded/Monad.swift
================================================
/**
Conditionally map a function over a `Decoded` value, flattening the result.
- If the value is `.Failure`, the function will not be evaluated and this
will return `.Failure`.
- If the value is `.Success`, the function will be applied to the unwrapped
value.
- parameter x: A value of type `Decoded<T>`
- parameter f: A transformation function from type `T` to type `Decoded<U>`
- returns: A value of type `Decoded<U>`
*/
public func >>- <T, U>(x: Decoded<T>, @noescape f: T -> Decoded<U>) -> Decoded<U> {
return x.flatMap(f)
}
/**
Conditionally map a function over a `Decoded` value, flattening the result.
- If the value is `.Failure`, the function will not be evaluated and this
will return `.Failure`.
- If the value is `.Success`, the function will be applied to the unwrapped
value.
- parameter f: A transformation function from type `T` to type `Decoded<U>`
- parameter x: A value of type `Decoded<T>`
- returns: A value of type `Decoded<U>`
*/
public func -<< <T, U>(@noescape f: T -> Decoded<U>, x: Decoded<T>) -> Decoded<U> {
return x.flatMap(f)
}
public extension Decoded {
/**
Conditionally map a function over `self`, flattening the result.
- If `self` is `.Failure`, the function will not be evaluated and this will
return `.Failure`.
- If `self` is `.Success`, the function will be applied to the unwrapped
value.
- parameter f: A transformation function from type `T` to type `Decoded<U>`
- returns: A value of type `Decoded<U>`
*/
func flatMap<U>(@noescape f: T -> Decoded<U>) -> Decoded<U> {
switch self {
case let .Success(value): return f(value)
case let .Failure(error): return .Failure(error)
}
}
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Types/JSON.swift
================================================
import Foundation
/// A type safe representation of JSON.
public enum JSON {
case Object([Swift.String: JSON])
case Array([JSON])
case String(Swift.String)
case Number(NSNumber)
case Bool(Swift.Bool)
case Null
}
public extension JSON {
/**
Transform an `AnyObject` instance into `JSON`.
This is used to move from a loosely typed object (like those returned from
`NSJSONSerialization`) to the strongly typed `JSON` tree structure.
- parameter json: A loosely typed object
*/
init(_ json: AnyObject) {
switch json {
case let v as [AnyObject]:
self = .Array(v.map(JSON.init))
case let v as [Swift.String: AnyObject]:
self = .Object(v.map(JSON.init))
case let v as Swift.String:
self = .String(v)
case let v as NSNumber:
if v.isBool {
self = .Bool(v as Swift.Bool)
} else {
self = .Number(v)
}
default:
self = .Null
}
}
}
extension JSON: Decodable {
/**
Decode `JSON` into `Decoded<JSON>`.
This simply wraps the provided `JSON` in `.Success`. This is useful because
it means we can use `JSON` values with the `<|` family of operators to pull
out sub-keys.
- parameter j: The `JSON` value to decode
- returns: The provided `JSON` wrapped in `.Success`
*/
public static func decode(j: JSON) -> Decoded<JSON> {
return pure(j)
}
}
extension JSON: CustomStringConvertible {
public var description: Swift.String {
switch self {
case let .String(v): return "String(\(v))"
case let .Number(v): return "Number(\(v))"
case let .Bool(v): return "Bool(\(v))"
case let .Array(a): return "Array(\(a.description))"
case let .Object(o): return "Object(\(o.description))"
case .Null: return "Null"
}
}
}
extension JSON: Equatable { }
public func == (lhs: JSON, rhs: JSON) -> Bool {
switch (lhs, rhs) {
case let (.String(l), .String(r)): return l == r
case let (.Number(l), .Number(r)): return l == r
case let (.Bool(l), .Bool(r)): return l == r
case let (.Array(l), .Array(r)): return l == r
case let (.Object(l), .Object(r)): return l == r
case (.Null, .Null): return true
default: return false
}
}
/// MARK: Deprecations
extension JSON {
@available(*, deprecated=3.0, renamed="init")
static func parse(json: AnyObject) -> JSON {
return JSON(json)
}
}
================================================
FILE: Carthage/Checkouts/Argo/Argo/Types/StandardTypes.swift
================================================
import Foundation
extension String: Decodable {
/**
Decode `JSON` into `Decoded<String>`.
Succeeds if the value is a string, otherwise it returns a type mismatch.
- parameter j: The `JSON` value to decode
- returns: A decoded `String` value
*/
public static func decode(j: JSON) -> Decoded<String> {
switch j {
case let .String(s): return pure(s)
default: return .typeMismatch("String", actual: j)
}
}
}
extension Int: Decodable {
/**
Decode `JSON` into `Decoded<Int>`.
Succeeds if the value is a number that can be converted to an `Int`,
otherwise it returns a type mismatch.
- parameter j: The `JSON` value to decode
- returns: A decoded `Int` value
*/
public static func decode(j: JSON) -> Decoded<Int> {
switch j {
case let .Number(n): return pure(n as Int)
default: return .typeMismatch("Int", actual: j)
}
}
}
extension UInt: Decodable {
/**
Decode `JSON` into `Decoded<UInt>`.
Succeeds if the value is a number that can be converted to a `UInt`,
otherwise it returns a type mismatch.
- parameter json: The `JSON` value to decode
- returns: A decoded `UInt` value
*/
public static func decode(j: JSON) -> Decoded<UInt> {
switch j {
case let .Number(n): return pure(n as UInt)
default: return .typeMismatch("UInt", actual: j)
}
}
}
extension Int64: Decodable {
/**
Decode `JSON` into `Decoded<Int64>`.
Succeeds if the value is a number that can be converted to an `Int64` or a
string that represents a large number, otherwise it returns a type
mismatch.
- parameter j: The `JSON` value to decode
- returns: A decoded `Int64` value
*/
public static func decode(j: JSON) -> Decoded<Int64> {
switch j {
case let .Number(n): return pure(n.longLongValue)
case let .String(s):
guard let i = Int64(s) else { fallthrough }
return pure(i)
default: return .typeMismatch("Int64", actual: j)
}
}
}
extension UInt64: Decodable {
/**
Decode `JSON` into `Decoded<UInt64>`.
Succeeds if the value is a number that can be converted to an `UInt64` or a
string that represents a large number, otherwise it returns a type
mismatch.
- parameter json: The `JSON` value to decode
- returns: A decoded `UInt` value
*/
public static func decode(j: JSON) -> Decoded<UInt64> {
switch j {
case let .Number(n): return pure(n.unsignedLongLongValue)
case let .String(s):
guard let i = UInt64(s) else { fallthrough }
return pure(i)
default: return .typeMismatch("UInt64", actual: j)
}
}
}
extension Double: Decodable {
/**
Decode `JSON` into `Decoded<Double>`.
Succeeds if the value is a number that can be converted to a `Double`,
otherwise it returns a type mismatch.
- parameter j: The `JSON` value to decode
- returns: A decoded `Double` value
*/
public static func decode(j: JSON) -> Decoded<Double> {
switch j {
case let .Number(n): return pure(n as Double)
default: return .typeMismatch("Double", actual: j)
}
}
}
extension Float: Decodable {
/**
Decode `JSON` into `Decoded<Float>`.
Succeeds if the value is a number that can be converted to a `Float`,
otherwise it returns a type mismatch.
- parameter j: The `JSON` value to decode
- returns: A decoded `Float` value
*/
public static func decode(j: JSON) -> Decoded<Float> {
switch j {
case let .Number(n): return pure(n as Float)
default: return .typeMismatch("Float", actual: j)
}
}
}
extension Bool: Decodable {
/**
Decode `JSON` into `Decoded<Bool>`.
Succeeds if the value is a boolean or if the value is a number that is able
to be converted to a boolean, otherwise it returns a type mismatch.
- parameter j: The `JSON` value to decode
- returns: A decoded `Bool` value
*/
public static func decode(j: JSON) -> Decoded<Bool> {
switch j {
case let .Bool(n): return pure(n)
case let .Number(n): return pure(n as Bool)
default: return .typeMismatch("Bool", actual: j)
}
}
}
public extension Optional where Wrapped: Decodable, Wrapped == Wrapped.DecodedType {
/**
Decode `JSON` into an `Optional<Wrapped>` value where `Wrapped` is `Decodable`.
Returns a decoded optional value from the result of performing `decode` on
the internal wrapped type.
- parameter j: The `JSON` value to decode
- returns: A decoded optional `Wrapped` value
*/
static func decode(j: JSON) -> Decoded<Wrapped?> {
return .optional(Wrapped.decode(j))
}
}
public extension CollectionType where Generator.Element: Decodable, Generator.Element == Generator.Element.DecodedType {
/**
Decode `JSON` into an array of values where the elements of the array are
`Decodable`.
If the `JSON` is an array of `JSON` objects, this returns a decoded array
of values by mapping the element's `decode` function over the `JSON` and
then applying `sequence` to the result. This makes this `decode` function
an all-or-nothing operation (See the documentation for `sequence` for more
info).
If the `JSON` is not an array, this returns a type mismatch.
- parameter j: The `JSON` value to decode
- returns: A decoded array of values
*/
static func decode(j: JSON) -> Decoded<[Generator.Element]> {
switch j {
case let .Array(a): return sequence(a.map(Generator.Element.decode))
default: return .typeMismatch("Array", actual: j)
}
}
}
/**
Decode `JSON` into an array of values where the elements of the array are
`Decodable`.
If the `JSON` is an array of `JSON` objects, this returns a decoded array
of values by mapping the element's `decode` function over the `JSON` and
then applying `sequence` to the result. This makes `decodeArray` an
all-or-nothing operation (See the documentation for `sequence` for more
info).
If the `JSON` is not an array, this returns a type mismatch.
This is a convenience function that is the same as `[T].decode(j)` (where `T`
is `Decodable`) and only exists to ease some pain around needing to use the
full type of the array when calling `decode`. We expect this function to be
removed in a future version.
- parameter j: The `JSON` value to decode
- returns: A decoded array of values
*/
public func decodeArray<T: Decodable where T.DecodedType == T>(j: JSON) -> Decoded<[T]> {
return [T].decode(j)
}
public extension DictionaryLiteralConvertible where Value: Decodable, Value == Value.DecodedType {
/**
Decode `JSON` into a dictionary of keys and values where the keys are
`String`s and the values are `Decodable`.
If the `JSON` is a dictionary of `String`/`JSON` pairs, this returns a decoded dictionary
of key/value pairs by mapping the value's `decode` function over the `JSON` and
then applying `sequence` to the result. This makes this `decode` function
an all-or-nothing operation (See the documentation for `sequence` for more
info).
If the `JSON` is not a dictionary, this returns a type mismatch.
- parameter j: The `JSON` value to decode
- returns: A decoded dictionary of key/value pairs
*/
static func decode(j: JSON) -> Decoded<[String: Value]> {
switch j {
case let .Object(o): return sequence(Value.decode <^> o)
default: return .typeMismatch("Object", actual: j)
}
}
}
/**
Decode `JSON` into a dictionary of keys and values where the keys are
`String`s and the values are `Decodable`.
If the `JSON` is a dictionary of `String`/`JSON` pairs, this returns a
decoded dictionary of key/value pairs by mapping the value's `decode`
function over the `JSON` and then applying `sequence` to the result. This
makes `decodeObject` an all-or-nothing operation (See the documentation for
`sequence` for more info).
If the `JSON` is not a dictionary, this returns a type mismatch.
This is a convenience function that is the same as `[String: T].decode(j)`
(where `T` is `Decodable`) and only exists to ease some pain around needing to
use the full type of the dictionary when calling `decode`. We expect this
function to be removed in a future version.
- parameter j: The `JSON` value to decode
- returns: A decoded dictionary of key/value pairs
*/
public func decodeObject<T: Decodable where T.DecodedType == T>(j: JSON) -> Decoded<[String: T]> {
return [String: T].decode(j)
}
/**
Pull an embedded `JSON` value from a specified key.
If the `JSON` value is an object, it will attempt to return the embedded
`JSON` value at the specified key, failing if the key doesn't exist.
If the `JSON` value is not an object, this will return a type mismatch.
This is similar to adding a subscript to `JSON`, except that it returns a
`Decoded` type.
- parameter json: The `JSON` value that contains the key
- parameter key: The key containing the embedded `JSON` object
- returns: A decoded `JSON` value representing the success or failure of
extracting the value from the object
*/
public func decodedJSON(json: JSON, forKey key: String) -> Decoded<JSON> {
switch json {
case let .Object(o): return guardNull(key, j: o[key] ?? .Null)
default: return .typeMismatch("Object", actual: json)
}
}
private func guardNull(key: String, j: JSON) -> Decoded<JSON> {
switch j {
case .Null: return .missingKey(key)
default: return pure(j)
}
}
================================================
FILE: Carthage/Checkouts/Argo/Argo Playground.playground/Pages/Basics.xcplaygroundpage/Contents.swift
================================================
/*:
**Note:** For **Argo** to be imported into the Playground, ensure that the **Argo-Mac** *scheme* is selected from the list of schemes.
* * *
*/
import Foundation
import Argo
import Curry
/*:
**Helper function** – load JSON from a file
*/
func JSONFromFile(file: String) -> AnyObject? {
return NSBundle.mainBundle().pathForResource(file, ofType: "json")
.flatMap { NSData(contentsOfFile: $0) }
.flatMap(JSONObjectWithData)
}
func JSONObjectWithData(data: NSData) -> AnyObject? {
do { return try NSJSONSerialization.JSONObjectWithData(data, options: []) }
catch { return .None }
}
/*:
## Decoding JSON into a simple **User** struct
The **User** struct has three properties, one of which is an Optional value.
(The example JSON file can be found in the **Resources** folder.)
*/
struct User {
let id: Int
let name: String
let email: String?
}
extension User: CustomStringConvertible {
var description: String {
return "name: \(name), id: \(id), email: \(email)"
}
}
extension User: Decodable {
static func decode(j: JSON) -> Decoded<User> {
return curry(self.init)
<^> j <| "id"
<*> j <| "name"
<*> j <|? "email"
}
}
/*:
* * *
*/
let user: User? = JSONFromFile("user_with_email").flatMap(decode)
print(user!)
================================================
FILE: Carthage/Checkouts/Argo/Argo Playground.playground/Pages/Basics.xcplaygroundpage/Resources/user_with_email.json
================================================
{
"id": 1,
"name": "Cool User",
"email": "u.cool@example.com"
}
================================================
FILE: Carthage/Checkouts/Argo/Argo Playground.playground/Pages/Basics.xcplaygroundpage/timeline.xctimeline
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Timeline
version = "3.0">
<TimelineItems>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=9&EndingLineNumber=67&StartingColumnNumber=1&StartingLineNumber=67&Timestamp=455496627.584604"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=11&EndingLineNumber=71&StartingColumnNumber=1&StartingLineNumber=69&Timestamp=455496627.584762"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=12&EndingLineNumber=73&StartingColumnNumber=1&StartingLineNumber=73&Timestamp=455496627.584881"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=9&EndingLineNumber=67&StartingColumnNumber=1&StartingLineNumber=67&Timestamp=455496627.584995"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=11&EndingLineNumber=67&StartingColumnNumber=1&StartingLineNumber=67&Timestamp=455496627.585106"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=12&EndingLineNumber=67&StartingColumnNumber=1&StartingLineNumber=67&Timestamp=455496627.585219"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=10&EndingLineNumber=75&StartingColumnNumber=1&StartingLineNumber=75&Timestamp=455496627.58533"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=23&EndingLineNumber=75&StartingColumnNumber=1&StartingLineNumber=75&Timestamp=455496627.585446"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=20&EndingLineNumber=75&StartingColumnNumber=1&StartingLineNumber=75&Timestamp=455496627.585559"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=1681&EndingColumnNumber=17&EndingLineNumber=75&StartingColumnNumber=1&StartingLineNumber=75&Timestamp=455498186.272651"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=11&EndingLineNumber=67&StartingColumnNumber=1&StartingLineNumber=67&Timestamp=455496627.585782"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=10&EndingLineNumber=75&StartingColumnNumber=1&StartingLineNumber=75&Timestamp=455496627.585894"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=23&EndingLineNumber=75&StartingColumnNumber=1&StartingLineNumber=75&Timestamp=455496627.586006"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=17&EndingLineNumber=75&StartingColumnNumber=1&StartingLineNumber=75&Timestamp=455496627.586117"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=20&EndingLineNumber=75&StartingColumnNumber=1&StartingLineNumber=75&Timestamp=455496627.58623"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=5&EndingLineNumber=66&StartingColumnNumber=1&StartingLineNumber=66&Timestamp=455496627.586343"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=14&EndingLineNumber=66&StartingColumnNumber=1&StartingLineNumber=66&Timestamp=455496627.586456"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=14&EndingLineNumber=66&StartingColumnNumber=1&StartingLineNumber=66&Timestamp=455496627.586569"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=14&EndingLineNumber=56&StartingColumnNumber=1&StartingLineNumber=56&Timestamp=455496627.586678"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=14&EndingLineNumber=58&StartingColumnNumber=1&StartingLineNumber=58&Timestamp=455496627.586787"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=14&EndingLineNumber=58&StartingColumnNumber=1&StartingLineNumber=58&Timestamp=455496627.586894"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&CharacterRangeLoc=0&EndingColumnNumber=14&EndingLineNumber=0&StartingColumnNumber=1&StartingLineNumber=0&Timestamp=455491959.867682"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=9&CharacterRangeLoc=1260&EndingColumnNumber=15&EndingLineNumber=56&StartingColumnNumber=1&StartingLineNumber=56&Timestamp=455498186.273935"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=8&CharacterRangeLoc=1260&EndingColumnNumber=15&EndingLineNumber=55&StartingColumnNumber=1&StartingLineNumber=55&Timestamp=455498186.274038"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
</TimelineItems>
</Timeline>
================================================
FILE: Carthage/Checkouts/Argo/Argo Playground.playground/Pages/iTunes Example.xcplaygroundpage/Contents.swift
================================================
/*:
**Note:** For **Argo** to be imported into the Playground, ensure that the **Argo-Mac** *scheme* is selected from the list of schemes.
* * *
*/
import Foundation
import Argo
import Curry
/*:
**Helper function** – load JSON from a file
*/
func JSONFromFile(file: String) -> AnyObject? {
return NSBundle.mainBundle().pathForResource(file, ofType: "json")
.flatMap { NSData(contentsOfFile: $0) }
.flatMap(JSONObjectWithData)
}
func JSONObjectWithData(data: NSData) -> AnyObject? {
do { return try NSJSONSerialization.JSONObjectWithData(data, options: []) }
catch { return .None }
}
/*:
During JSON decoding, a **String** representation of a date needs to be converted to a **NSDate**.
To achieve this, a **NSDateFormatter** and a helper function will be used.
*/
let jsonDateFormatter: NSDateFormatter = {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssz"
return dateFormatter
}()
let toNSDate: String -> Decoded<NSDate> = {
.fromOptional(jsonDateFormatter.dateFromString($0))
}
/*:
## Decoding selected entries from the iTunes store JSON format
An example JSON file (**tropos.json**) can be found in the **resources** folder.
*/
struct App {
let name: String
let formattedPrice: String
let averageUserRating: Float?
let releaseDate: NSDate
}
extension App: CustomStringConvertible {
var description: String {
return "name: \(name)\nprice: \(formattedPrice), rating: \(averageUserRating), released: \(releaseDate)"
}
}
extension App: Decodable {
static func decode(j: JSON) -> Decoded<App> {
return curry(self.init)
<^> j <| "trackName"
<*> j <| "formattedPrice"
<*> j <|? "averageUserRating"
<*> (j <| "releaseDate" >>- toNSDate)
}
}
/*:
* * *
*/
let app: App? = (JSONFromFile("tropos")?["results"].flatMap(decode))?.first
print(app!)
================================================
FILE: Carthage/Checkouts/Argo/Argo Playground.playground/Pages/iTunes Example.xcplaygroundpage/Resources/tropos.json
================================================
{
"resultCount":1,
"results":[
{
"isGameCenterEnabled":false,
"screenshotUrls":[
"http://a5.mzstatic.com/us/r30/Purple5/v4/8b/3e/bd/8b3ebd2c-9dfe-1ce5-cdf5-8c89d854e375/screen322x572.jpeg",
"http://a1.mzstatic.com/us/r30/Purple5/v4/e6/4f/36/e64f369d-d453-f007-dd15-361d21641116/screen322x572.jpeg",
"http://a1.mzstatic.com/us/r30/Purple1/v4/74/77/cd/7477cd91-a094-3c22-fff1-cf75e7474dad/screen322x572.jpeg"
],
"ipadScreenshotUrls":[
],
"artworkUrl60":"http://is2.mzstatic.com/image/pf/us/r30/Purple3/v4/1b/b7/31/1bb731e3-a35a-9eaa-b13e-c536e639851c/AppIcon60x60_U00402x.png",
"artworkUrl512":"http://is4.mzstatic.com/image/pf/us/r30/Purple3/v4/e2/c5/42/e2c542e5-664e-36df-2285-490b7c16941e/mzl.ivsinquu.png",
"artistViewUrl":"https://itunes.apple.com/us/artist/thoughtbot-inc./id337354066?uo=4",
"kind":"software",
"features":[
],
"supportedDevices":[
"iPhone4S",
"iPadThirdGen4G",
"iPodTouchFifthGen",
"iPhone6",
"iPadMini4G",
"iPhone6Plus",
"iPadThirdGen",
"iPadFourthGen",
"iPad23G",
"iPad2Wifi",
"iPadFourthGen4G",
"iPadMini",
"iPhone5c",
"iPhone5",
"iPhone5s"
],
"advisories":[
],
"averageUserRatingForCurrentVersion":5.0,
"artworkUrl100":"http://is4.mzstatic.com/image/pf/us/r30/Purple3/v4/e2/c5/42/e2c542e5-664e-36df-2285-490b7c16941e/mzl.ivsinquu.png",
"trackCensoredName":"Tropos – Weather and forecasts for humans",
"languageCodesISO2A":[
"EN"
],
"fileSizeBytes":"2945254",
"sellerUrl":"http://troposweather.com",
"contentAdvisoryRating":"4+",
"userRatingCountForCurrentVersion":1,
"trackViewUrl":"https://itunes.apple.com/us/app/tropos-weather-forecasts-for/id955209376?mt=8&uo=4",
"trackContentRating":"4+",
"currency":"USD",
"wrapperType":"software",
"version":"1.0.1",
"artistId":337354066,
"artistName":"thoughtbot, inc.",
"genres":[
"Weather"
],
"price":0.99,
"description":"Weather and forecasts for humans. Information you can act on.\n\nMost weather apps throw a lot of information at you but that doesn't answer the question of \"What does it feel like outside?\". Tropos answers this by relating the current conditions to conditions the same time yesterday.\n\nFeatures:\n• Current conditions presented in plain language. For example, “It is warmer tonight than last night.”\n• Intelligent use of color to convey how it feels in your area compared to yesterday.\n• Simple, 3-day forecast that allows you to see how the next few days are trending.\n\nthoughtbot is dedicated to building the best possible application. Your feedback is invaluable to us. Get in touch at help@troposweather.com.",
"bundleId":"com.thoughtbot.carlweathers",
"genreIds":[
"6001"
],
"releaseDate":"2015-03-25T18:34:40Z",
"sellerName":"thoughtbot, inc.",
"trackId":955209376,
"trackName":"Tropos – Weather and forecasts for humans",
"primaryGenreName":"Weather",
"primaryGenreId":6001,
"releaseNotes":"- Fixed an issue where the app could crash if you're going buck-wild messing around with the pull to refresh control.\n- Improved the relative weather description in cases where it's crazy hot or ridiculously cold outside. Tropos will no longer tell you that it's hotter today when it's 10°F outside. (Sorry, Boston)\n- Fixed an issue where the high and low temperatures could be lower or higher than the current temperature, respectively. That's just silly.\n\nFinally, we want to thank everyone for supporting Tropos!",
"minimumOsVersion":"8.0",
"formattedPrice":"$0.99",
"averageUserRating":4.5,
"userRatingCount":10
}
]
}
================================================
FILE: Carthage/Checkouts/Argo/Argo Playground.playground/Pages/iTunes Example.xcplaygroundpage/timeline.xctimeline
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Timeline
version = "3.0">
<TimelineItems>
</TimelineItems>
</Timeline>
================================================
FILE: Carthage/Checkouts/Argo/Argo Playground.playground/contents.xcplayground
================================================
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<playground version='6.0' target-platform='osx' requires-full-environment='true' display-mode='rendered'/>
================================================
FILE: Carthage/Checkouts/Argo/Argo Playground.playground/playground.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:Argo.playground">
</FileRef>
</Workspace>
================================================
FILE: Carthage/Checkouts/Argo/Argo.podspec
================================================
Pod::Spec.new do |spec|
spec.name = 'Argo'
spec.version = '3.1.0'
spec.summary = 'Functional JSON parsing library for Swift.'
spec.homepage = 'https://github.com/thoughtbot/Argo'
spec.license = { :type => 'MIT', :file => 'LICENSE' }
spec.author = {
'Gordon Fontenot' => 'gordon@thoughtbot.com',
'Tony DiPasquale' => 'tony@thoughtbot.com',
'thoughtbot' => nil,
}
spec.social_media_url = 'http://twitter.com/thoughtbot'
spec.source = { :git => 'https://github.com/thoughtbot/Argo.git', :tag => "v#{spec.version}", :submodules => true }
spec.source_files = 'Argo/**/*.{h,swift}', 'Carthage/Checkouts/Runes/Source/Runes.swift'
spec.requires_arc = true
spec.compiler_flags = '-whole-module-optimization'
spec.ios.deployment_target = '8.0'
spec.osx.deployment_target = '10.9'
spec.watchos.deployment_target = '2.0'
spec.tvos.deployment_target = '9.0'
end
================================================
FILE: Carthage/Checkouts/Argo/Argo.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
4D5F6DD91B3832C200D79B25 /* user_with_nested_name.json in Resources */ = {isa = PBXBuildFile; fileRef = 4D5F6DD81B3832C200D79B25 /* user_with_nested_name.json */; };
4D5F6DDA1B3832C200D79B25 /* user_with_nested_name.json in Resources */ = {isa = PBXBuildFile; fileRef = 4D5F6DD81B3832C200D79B25 /* user_with_nested_name.json */; };
809586051BB84CEE004F9319 /* Curry.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 809586041BB84CE7004F9319 /* Curry.framework */; };
809754CB1BADF34200C409E6 /* Argo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 809754C11BADF34100C409E6 /* Argo.framework */; };
809754D81BADF36D00C409E6 /* Decoded.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69E1ABC5F1300E3B0AB /* Decoded.swift */; };
809754D91BADF36D00C409E6 /* JSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69F1ABC5F1300E3B0AB /* JSON.swift */; };
809754DA1BADF36D00C409E6 /* Decodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB6A01ABC5F1300E3B0AB /* Decodable.swift */; };
809754DB1BADF36D00C409E6 /* StandardTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB6A11ABC5F1300E3B0AB /* StandardTypes.swift */; };
809754DC1BADF36D00C409E6 /* DecodeError.swift in Sources */ = {isa = PBXBuildFile; fileRef = F84318A71B9A2D7A00165216 /* DecodeError.swift */; };
809754DD1BADF36D00C409E6 /* Runes.swift in Sources */ = {isa = PBXBuildFile; fileRef = F876F1D61B56FBB300B38589 /* Runes.swift */; };
809754DE1BADF36D00C409E6 /* Decode.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FAF519D0F7900031E006 /* Decode.swift */; };
809754DF1BADF36D00C409E6 /* (null) in Sources */ = {isa = PBXBuildFile; };
809754E11BADF36D00C409E6 /* curry.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB6991ABC5F1300E3B0AB /* curry.swift */; };
809754E21BADF36D00C409E6 /* decode.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69A1ABC5F1300E3B0AB /* decode.swift */; };
809754E31BADF36D00C409E6 /* flatReduce.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69B1ABC5F1300E3B0AB /* flatReduce.swift */; };
809754E41BADF36D00C409E6 /* sequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69C1ABC5F1300E3B0AB /* sequence.swift */; };
809754E51BADF36D00C409E6 /* Dictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8CBE6661A64521000316FBC /* Dictionary.swift */; };
809754E61BADF36D00C409E6 /* RawRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF92789C1B9365900038A7E1 /* RawRepresentable.swift */; };
809754E71BADF37200C409E6 /* Argo.h in Headers */ = {isa = PBXBuildFile; fileRef = F893356D1A4CE8FC00B88685 /* Argo.h */; settings = {ATTRIBUTES = (Public, ); }; };
809754E81BADF3E400C409E6 /* PListDecodingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EABDF6931A9CD4FC00B6CC83 /* PListDecodingTests.swift */; };
809754E91BADF3E400C409E6 /* SwiftDictionaryDecodingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EABDF6891A9CD46100B6CC83 /* SwiftDictionaryDecodingTests.swift */; };
809754EA1BADF3E400C409E6 /* OptionalPropertyDecodingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FB0D19D215570031E006 /* OptionalPropertyDecodingTests.swift */; };
809754EB1BADF3E400C409E6 /* EmbeddedJSONDecodingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FB1119D30E660031E006 /* EmbeddedJSONDecodingTests.swift */; };
809754EC1BADF3E400C409E6 /* TypeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA08313019D5EEAF003B90D7 /* TypeTests.swift */; };
809754ED1BADF3E400C409E6 /* ExampleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA395DC61A52F93B00EB607E /* ExampleTests.swift */; };
809754EE1BADF3E400C409E6 /* EquatableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EADADCB11A5DB6F600B180EC /* EquatableTests.swift */; };
809754EF1BADF3E400C409E6 /* PerformanceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA6DD69B1AB383FB00CA3A5B /* PerformanceTests.swift */; };
809754F01BADF3E400C409E6 /* DecodedTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA47BB521AFC5B76002D2CCD /* DecodedTests.swift */; };
809754F11BADF3E400C409E6 /* RawRepresentableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA1200CA1BAB5CBA006DDBD8 /* RawRepresentableTests.swift */; };
809754F21BADF3E400C409E6 /* JSONFileReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FB0F19D21AF50031E006 /* JSONFileReader.swift */; };
809754F31BADF3E400C409E6 /* PListFileReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = EABDF68D1A9CD4EA00B6CC83 /* PListFileReader.swift */; };
809754F41BADF3E400C409E6 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FAFD19D2113C0031E006 /* User.swift */; };
809754F51BADF3E400C409E6 /* Comment.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FAFF19D211630031E006 /* Comment.swift */; };
809754F61BADF3E400C409E6 /* Post.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FB0119D211C10031E006 /* Post.swift */; };
809754F71BADF3E400C409E6 /* TestModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FB1719D49A3E0031E006 /* TestModel.swift */; };
809754F81BADF3E400C409E6 /* NSURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = F802D4C21A5EE061005E236C /* NSURL.swift */; };
809754F91BADF3ED00C409E6 /* user_with_email.json in Resources */ = {isa = PBXBuildFile; fileRef = EAD9FB0419D2143A0031E006 /* user_with_email.json */; };
809754FA1BADF3ED00C409E6 /* user_without_email.json in Resources */ = {isa = PBXBuildFile; fileRef = EAD9FB0819D214AA0031E006 /* user_without_email.json */; };
809754FB1BADF3ED00C409E6 /* user_with_nested_name.json in Resources */ = {isa = PBXBuildFile; fileRef = 4D5F6DD81B3832C200D79B25 /* user_with_nested_name.json */; };
809754FC1BADF3ED00C409E6 /* url.json in Resources */ = {isa = PBXBuildFile; fileRef = F802D4C51A5EE2D5005E236C /* url.json */; };
809754FD1BADF3ED00C409E6 /* root_array.json in Resources */ = {isa = PBXBuildFile; fileRef = F874B7E91A66BF52004CCE5E /* root_array.json */; };
809754FE1BADF3ED00C409E6 /* TemplateIcon2x.png in Resources */ = {isa = PBXBuildFile; fileRef = EAD9FB0919D214AA0031E006 /* TemplateIcon2x.png */; };
809754FF1BADF3ED00C409E6 /* comment.json in Resources */ = {isa = PBXBuildFile; fileRef = EAD9FB1319D30ED00031E006 /* comment.json */; };
809755001BADF3ED00C409E6 /* post_no_comments.json in Resources */ = {isa = PBXBuildFile; fileRef = EAD9FB1519D30F8D0031E006 /* post_no_comments.json */; };
809755011BADF3ED00C409E6 /* post_comments.json in Resources */ = {isa = PBXBuildFile; fileRef = EA08313219D5EEF2003B90D7 /* post_comments.json */; };
809755021BADF3ED00C409E6 /* post_bad_comments.json in Resources */ = {isa = PBXBuildFile; fileRef = F8E33FA41A51E0C20025A6E5 /* post_bad_comments.json */; };
809755031BADF3ED00C409E6 /* types.json in Resources */ = {isa = PBXBuildFile; fileRef = EA08313419D5EFC0003B90D7 /* types.json */; };
809755041BADF3ED00C409E6 /* types_fail_embedded.json in Resources */ = {isa = PBXBuildFile; fileRef = EA4EAF7219DD96330036AE0D /* types_fail_embedded.json */; };
809755051BADF3ED00C409E6 /* array_root.json in Resources */ = {isa = PBXBuildFile; fileRef = EA395DC31A52F8EB00EB607E /* array_root.json */; };
809755061BADF3ED00C409E6 /* root_object.json in Resources */ = {isa = PBXBuildFile; fileRef = EA395DC91A52FC1400EB607E /* root_object.json */; };
809755071BADF3ED00C409E6 /* big_data.json in Resources */ = {isa = PBXBuildFile; fileRef = EA6DD69E1AB384C700CA3A5B /* big_data.json */; };
809755081BADF3ED00C409E6 /* user_with_bad_type.json in Resources */ = {isa = PBXBuildFile; fileRef = EA47BB551AFC5DAC002D2CCD /* user_with_bad_type.json */; };
809755091BADF3ED00C409E6 /* user_without_key.json in Resources */ = {isa = PBXBuildFile; fileRef = EA47BB581AFC5E65002D2CCD /* user_without_key.json */; };
8097550A1BADF3F200C409E6 /* types.plist in Resources */ = {isa = PBXBuildFile; fileRef = EABDF68E1A9CD4EA00B6CC83 /* types.plist */; };
BF92789D1B9365900038A7E1 /* RawRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF92789C1B9365900038A7E1 /* RawRepresentable.swift */; };
D0592EBE1B77DD8E00EFEF39 /* Decoded.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69E1ABC5F1300E3B0AB /* Decoded.swift */; };
D0592EBF1B77DD8E00EFEF39 /* JSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69F1ABC5F1300E3B0AB /* JSON.swift */; };
D0592EC01B77DD8E00EFEF39 /* Decodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB6A01ABC5F1300E3B0AB /* Decodable.swift */; };
D0592EC11B77DD8E00EFEF39 /* StandardTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB6A11ABC5F1300E3B0AB /* StandardTypes.swift */; };
D0592EC21B77DD9300EFEF39 /* Runes.swift in Sources */ = {isa = PBXBuildFile; fileRef = F876F1D61B56FBB300B38589 /* Runes.swift */; };
D0592EC31B77DD9300EFEF39 /* Decode.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FAF519D0F7900031E006 /* Decode.swift */; };
D0592EC41B77DD9A00EFEF39 /* curry.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB6991ABC5F1300E3B0AB /* curry.swift */; };
D0592EC51B77DD9A00EFEF39 /* decode.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69A1ABC5F1300E3B0AB /* decode.swift */; };
D0592EC61B77DD9A00EFEF39 /* flatReduce.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69B1ABC5F1300E3B0AB /* flatReduce.swift */; };
D0592EC71B77DD9A00EFEF39 /* sequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69C1ABC5F1300E3B0AB /* sequence.swift */; };
D0592EC81B77DD9A00EFEF39 /* Dictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8CBE6661A64521000316FBC /* Dictionary.swift */; };
EA04D5911BBF1F40001DE23B /* Monad.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5901BBF1F40001DE23B /* Monad.swift */; };
EA04D5921BBF1F40001DE23B /* Monad.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5901BBF1F40001DE23B /* Monad.swift */; };
EA04D5931BBF1F40001DE23B /* Monad.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5901BBF1F40001DE23B /* Monad.swift */; };
EA04D5951BBF1F80001DE23B /* Functor.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5941BBF1F80001DE23B /* Functor.swift */; };
EA04D5961BBF1F80001DE23B /* Functor.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5941BBF1F80001DE23B /* Functor.swift */; };
EA04D5971BBF1F80001DE23B /* Functor.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5941BBF1F80001DE23B /* Functor.swift */; };
EA04D5991BBF1FA4001DE23B /* Applicative.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5981BBF1FA4001DE23B /* Applicative.swift */; };
EA04D59A1BBF1FA4001DE23B /* Applicative.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5981BBF1FA4001DE23B /* Applicative.swift */; };
EA04D59B1BBF1FA4001DE23B /* Applicative.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5981BBF1FA4001DE23B /* Applicative.swift */; };
EA04D59D1BBF1FB9001DE23B /* Alternative.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D59C1BBF1FB9001DE23B /* Alternative.swift */; };
EA04D59E1BBF1FB9001DE23B /* Alternative.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D59C1BBF1FB9001DE23B /* Alternative.swift */; };
EA04D59F1BBF1FB9001DE23B /* Alternative.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D59C1BBF1FB9001DE23B /* Alternative.swift */; };
EA04D5A11BBF2021001DE23B /* FailureCoalescing.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5A01BBF2021001DE23B /* FailureCoalescing.swift */; };
EA04D5A21BBF2021001DE23B /* FailureCoalescing.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5A01BBF2021001DE23B /* FailureCoalescing.swift */; };
EA04D5A31BBF2021001DE23B /* FailureCoalescing.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5A01BBF2021001DE23B /* FailureCoalescing.swift */; };
EA04D5A51BBF2047001DE23B /* Argo.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5A41BBF2047001DE23B /* Argo.swift */; };
EA04D5A61BBF2047001DE23B /* Argo.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5A41BBF2047001DE23B /* Argo.swift */; };
EA04D5A71BBF2047001DE23B /* Argo.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5A41BBF2047001DE23B /* Argo.swift */; };
EA08313119D5EEAF003B90D7 /* TypeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA08313019D5EEAF003B90D7 /* TypeTests.swift */; };
EA08313319D5EEF2003B90D7 /* post_comments.json in Resources */ = {isa = PBXBuildFile; fileRef = EA08313219D5EEF2003B90D7 /* post_comments.json */; };
EA08313519D5EFC0003B90D7 /* types.json in Resources */ = {isa = PBXBuildFile; fileRef = EA08313419D5EFC0003B90D7 /* types.json */; };
EA1200CB1BAB5CBA006DDBD8 /* RawRepresentableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA1200CA1BAB5CBA006DDBD8 /* RawRepresentableTests.swift */; };
EA1200CC1BAB5CBA006DDBD8 /* RawRepresentableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA1200CA1BAB5CBA006DDBD8 /* RawRepresentableTests.swift */; };
EA1200CD1BAB621C006DDBD8 /* RawRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF92789C1B9365900038A7E1 /* RawRepresentable.swift */; };
EA1200CE1BAB621C006DDBD8 /* RawRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF92789C1B9365900038A7E1 /* RawRepresentable.swift */; };
EA395DC21A5209C000EB607E /* post_bad_comments.json in Resources */ = {isa = PBXBuildFile; fileRef = F8E33FA41A51E0C20025A6E5 /* post_bad_comments.json */; };
EA395DC41A52F8EB00EB607E /* array_root.json in Resources */ = {isa = PBXBuildFile; fileRef = EA395DC31A52F8EB00EB607E /* array_root.json */; };
EA395DC51A52F8EE00EB607E /* array_root.json in Resources */ = {isa = PBXBuildFile; fileRef = EA395DC31A52F8EB00EB607E /* array_root.json */; };
EA395DC71A52F93B00EB607E /* ExampleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA395DC61A52F93B00EB607E /* ExampleTests.swift */; };
EA395DC81A52FA5300EB607E /* ExampleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA395DC61A52F93B00EB607E /* ExampleTests.swift */; };
EA395DCA1A52FC1400EB607E /* root_object.json in Resources */ = {isa = PBXBuildFile; fileRef = EA395DC91A52FC1400EB607E /* root_object.json */; };
EA395DCB1A52FC1400EB607E /* root_object.json in Resources */ = {isa = PBXBuildFile; fileRef = EA395DC91A52FC1400EB607E /* root_object.json */; };
EA47BB531AFC5B76002D2CCD /* DecodedTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA47BB521AFC5B76002D2CCD /* DecodedTests.swift */; };
EA47BB541AFC5B76002D2CCD /* DecodedTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA47BB521AFC5B76002D2CCD /* DecodedTests.swift */; };
EA47BB561AFC5DAC002D2CCD /* user_with_bad_type.json in Resources */ = {isa = PBXBuildFile; fileRef = EA47BB551AFC5DAC002D2CCD /* user_with_bad_type.json */; };
EA47BB571AFC5DAC002D2CCD /* user_with_bad_type.json in Resources */ = {isa = PBXBuildFile; fileRef = EA47BB551AFC5DAC002D2CCD /* user_with_bad_type.json */; };
EA47BB591AFC5E65002D2CCD /* user_without_key.json in Resources */ = {isa = PBXBuildFile; fileRef = EA47BB581AFC5E65002D2CCD /* user_without_key.json */; };
EA47BB5A1AFC5E65002D2CCD /* user_without_key.json in Resources */ = {isa = PBXBuildFile; fileRef = EA47BB581AFC5E65002D2CCD /* user_without_key.json */; };
EA4EAF7319DD96330036AE0D /* types_fail_embedded.json in Resources */ = {isa = PBXBuildFile; fileRef = EA4EAF7219DD96330036AE0D /* types_fail_embedded.json */; };
EA6DD69C1AB383FB00CA3A5B /* PerformanceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA6DD69B1AB383FB00CA3A5B /* PerformanceTests.swift */; };
EA6DD69D1AB383FB00CA3A5B /* PerformanceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA6DD69B1AB383FB00CA3A5B /* PerformanceTests.swift */; };
EA6DD69F1AB384C700CA3A5B /* big_data.json in Resources */ = {isa = PBXBuildFile; fileRef = EA6DD69E1AB384C700CA3A5B /* big_data.json */; };
EA6DD6A01AB384C700CA3A5B /* big_data.json in Resources */ = {isa = PBXBuildFile; fileRef = EA6DD69E1AB384C700CA3A5B /* big_data.json */; };
EA9159F61BDE74BC00D85292 /* Argo.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5A41BBF2047001DE23B /* Argo.swift */; };
EA9159F71BDE74C700D85292 /* catDecoded.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8EF432E1BBC728A001886BA /* catDecoded.swift */; };
EA9159F81BDE74E400D85292 /* Monad.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5901BBF1F40001DE23B /* Monad.swift */; };
EA9159F91BDE74EB00D85292 /* Functor.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5941BBF1F80001DE23B /* Functor.swift */; };
EA9159FA1BDE74F300D85292 /* Applicative.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5981BBF1FA4001DE23B /* Applicative.swift */; };
EA9159FB1BDE74F800D85292 /* Alternative.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D59C1BBF1FB9001DE23B /* Alternative.swift */; };
EA9159FC1BDE74FC00D85292 /* FailureCoalescing.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA04D5A01BBF2021001DE23B /* FailureCoalescing.swift */; };
EABDF68A1A9CD46100B6CC83 /* SwiftDictionaryDecodingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EABDF6891A9CD46100B6CC83 /* SwiftDictionaryDecodingTests.swift */; };
EABDF68B1A9CD46400B6CC83 /* SwiftDictionaryDecodingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EABDF6891A9CD46100B6CC83 /* SwiftDictionaryDecodingTests.swift */; };
EABDF68F1A9CD4EA00B6CC83 /* PListFileReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = EABDF68D1A9CD4EA00B6CC83 /* PListFileReader.swift */; };
EABDF6901A9CD4EA00B6CC83 /* PListFileReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = EABDF68D1A9CD4EA00B6CC83 /* PListFileReader.swift */; };
EABDF6911A9CD4EA00B6CC83 /* types.plist in Resources */ = {isa = PBXBuildFile; fileRef = EABDF68E1A9CD4EA00B6CC83 /* types.plist */; };
EABDF6921A9CD4EA00B6CC83 /* types.plist in Resources */ = {isa = PBXBuildFile; fileRef = EABDF68E1A9CD4EA00B6CC83 /* types.plist */; };
EABDF6941A9CD4FC00B6CC83 /* PListDecodingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EABDF6931A9CD4FC00B6CC83 /* PListDecodingTests.swift */; };
EABDF6951A9CD4FC00B6CC83 /* PListDecodingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EABDF6931A9CD4FC00B6CC83 /* PListDecodingTests.swift */; };
EAD9FAF619D0F7900031E006 /* Decode.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FAF519D0F7900031E006 /* Decode.swift */; };
EAD9FAFE19D2113C0031E006 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FAFD19D2113C0031E006 /* User.swift */; };
EAD9FB0019D211630031E006 /* Comment.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FAFF19D211630031E006 /* Comment.swift */; };
EAD9FB0219D211C10031E006 /* Post.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FB0119D211C10031E006 /* Post.swift */; };
EAD9FB0619D2143A0031E006 /* user_with_email.json in Resources */ = {isa = PBXBuildFile; fileRef = EAD9FB0419D2143A0031E006 /* user_with_email.json */; };
EAD9FB0A19D214AA0031E006 /* user_without_email.json in Resources */ = {isa = PBXBuildFile; fileRef = EAD9FB0819D214AA0031E006 /* user_without_email.json */; };
EAD9FB0B19D214AA0031E006 /* TemplateIcon2x.png in Resources */ = {isa = PBXBuildFile; fileRef = EAD9FB0919D214AA0031E006 /* TemplateIcon2x.png */; };
EAD9FB0E19D215570031E006 /* OptionalPropertyDecodingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FB0D19D215570031E006 /* OptionalPropertyDecodingTests.swift */; };
EAD9FB1019D21AF50031E006 /* JSONFileReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FB0F19D21AF50031E006 /* JSONFileReader.swift */; };
EAD9FB1219D30E660031E006 /* EmbeddedJSONDecodingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FB1119D30E660031E006 /* EmbeddedJSONDecodingTests.swift */; };
EAD9FB1419D30ED00031E006 /* comment.json in Resources */ = {isa = PBXBuildFile; fileRef = EAD9FB1319D30ED00031E006 /* comment.json */; };
EAD9FB1619D30F8D0031E006 /* post_no_comments.json in Resources */ = {isa = PBXBuildFile; fileRef = EAD9FB1519D30F8D0031E006 /* post_no_comments.json */; };
EAD9FB1819D49A3E0031E006 /* TestModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FB1719D49A3E0031E006 /* TestModel.swift */; };
EADADCB21A5DB6F600B180EC /* EquatableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EADADCB11A5DB6F600B180EC /* EquatableTests.swift */; };
EADADCB41A5DB7F800B180EC /* EquatableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EADADCB11A5DB6F600B180EC /* EquatableTests.swift */; };
F802D4C31A5EE061005E236C /* NSURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = F802D4C21A5EE061005E236C /* NSURL.swift */; };
F802D4C41A5EE172005E236C /* NSURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = F802D4C21A5EE061005E236C /* NSURL.swift */; };
F802D4C61A5EE2D5005E236C /* url.json in Resources */ = {isa = PBXBuildFile; fileRef = F802D4C51A5EE2D5005E236C /* url.json */; };
F802D4C71A5EE2D5005E236C /* url.json in Resources */ = {isa = PBXBuildFile; fileRef = F802D4C51A5EE2D5005E236C /* url.json */; };
F82D15F31C3C82730079FFB5 /* NSNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = F82D15F21C3C82730079FFB5 /* NSNumber.swift */; };
F84290291B57EFAE008F57B4 /* Curry.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F84290281B57EFAE008F57B4 /* Curry.framework */; };
F842902B1B57EFB5008F57B4 /* Curry.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F842902A1B57EFB5008F57B4 /* Curry.framework */; };
F84318A81B9A2D7A00165216 /* DecodeError.swift in Sources */ = {isa = PBXBuildFile; fileRef = F84318A71B9A2D7A00165216 /* DecodeError.swift */; };
F84318A91B9A2D7A00165216 /* DecodeError.swift in Sources */ = {isa = PBXBuildFile; fileRef = F84318A71B9A2D7A00165216 /* DecodeError.swift */; };
F84318AA1B9A2D7A00165216 /* DecodeError.swift in Sources */ = {isa = PBXBuildFile; fileRef = F84318A71B9A2D7A00165216 /* DecodeError.swift */; };
F862E0AB1A519D470093B028 /* TypeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA08313019D5EEAF003B90D7 /* TypeTests.swift */; };
F862E0AC1A519D520093B028 /* post_comments.json in Resources */ = {isa = PBXBuildFile; fileRef = EA08313219D5EEF2003B90D7 /* post_comments.json */; };
F862E0AD1A519D560093B028 /* types.json in Resources */ = {isa = PBXBuildFile; fileRef = EA08313419D5EFC0003B90D7 /* types.json */; };
F862E0AE1A519D5C0093B028 /* types_fail_embedded.json in Resources */ = {isa = PBXBuildFile; fileRef = EA4EAF7219DD96330036AE0D /* types_fail_embedded.json */; };
F874B7EA1A66BF52004CCE5E /* root_array.json in Resources */ = {isa = PBXBuildFile; fileRef = F874B7E91A66BF52004CCE5E /* root_array.json */; };
F874B7EB1A66C221004CCE5E /* root_array.json in Resources */ = {isa = PBXBuildFile; fileRef = F874B7E91A66BF52004CCE5E /* root_array.json */; };
F876F1D71B56FBB300B38589 /* Runes.swift in Sources */ = {isa = PBXBuildFile; fileRef = F876F1D61B56FBB300B38589 /* Runes.swift */; };
F876F1D81B56FBB300B38589 /* Runes.swift in Sources */ = {isa = PBXBuildFile; fileRef = F876F1D61B56FBB300B38589 /* Runes.swift */; };
F87897EF1A927864009316A5 /* Argo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EAD9FACF19D0EAB50031E006 /* Argo.framework */; };
F87EB6A21ABC5F1300E3B0AB /* curry.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB6991ABC5F1300E3B0AB /* curry.swift */; };
F87EB6A31ABC5F1300E3B0AB /* curry.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB6991ABC5F1300E3B0AB /* curry.swift */; };
F87EB6A41ABC5F1300E3B0AB /* decode.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69A1ABC5F1300E3B0AB /* decode.swift */; };
F87EB6A51ABC5F1300E3B0AB /* decode.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69A1ABC5F1300E3B0AB /* decode.swift */; };
F87EB6A61ABC5F1300E3B0AB /* flatReduce.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69B1ABC5F1300E3B0AB /* flatReduce.swift */; };
F87EB6A71ABC5F1300E3B0AB /* flatReduce.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69B1ABC5F1300E3B0AB /* flatReduce.swift */; };
F87EB6A81ABC5F1300E3B0AB /* sequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69C1ABC5F1300E3B0AB /* sequence.swift */; };
F87EB6A91ABC5F1300E3B0AB /* sequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69C1ABC5F1300E3B0AB /* sequence.swift */; };
F87EB6AA1ABC5F1300E3B0AB /* Decoded.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69E1ABC5F1300E3B0AB /* Decoded.swift */; };
F87EB6AB1ABC5F1300E3B0AB /* Decoded.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69E1ABC5F1300E3B0AB /* Decoded.swift */; };
F87EB6AC1ABC5F1300E3B0AB /* JSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69F1ABC5F1300E3B0AB /* JSON.swift */; };
F87EB6AD1ABC5F1300E3B0AB /* JSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB69F1ABC5F1300E3B0AB /* JSON.swift */; };
F87EB6AE1ABC5F1300E3B0AB /* Decodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB6A01ABC5F1300E3B0AB /* Decodable.swift */; };
F87EB6AF1ABC5F1300E3B0AB /* Decodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB6A01ABC5F1300E3B0AB /* Decodable.swift */; };
F87EB6B01ABC5F1300E3B0AB /* StandardTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB6A11ABC5F1300E3B0AB /* StandardTypes.swift */; };
F87EB6B11ABC5F1300E3B0AB /* StandardTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = F87EB6A11ABC5F1300E3B0AB /* StandardTypes.swift */; };
F893355F1A4CE83000B88685 /* Argo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F89335541A4CE83000B88685 /* Argo.framework */; };
F893356E1A4CE8FC00B88685 /* Argo.h in Headers */ = {isa = PBXBuildFile; fileRef = F893356D1A4CE8FC00B88685 /* Argo.h */; settings = {ATTRIBUTES = (Public, ); }; };
F893356F1A4CE8FC00B88685 /* Argo.h in Headers */ = {isa = PBXBuildFile; fileRef = F893356D1A4CE8FC00B88685 /* Argo.h */; settings = {ATTRIBUTES = (Public, ); }; };
F89335761A4CE93600B88685 /* Decode.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FAF519D0F7900031E006 /* Decode.swift */; };
F8C2561A1C3C855B00B70968 /* NSNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = F82D15F21C3C82730079FFB5 /* NSNumber.swift */; };
F8C2561B1C3C855C00B70968 /* NSNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = F82D15F21C3C82730079FFB5 /* NSNumber.swift */; };
F8C2561C1C3C855C00B70968 /* NSNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = F82D15F21C3C82730079FFB5 /* NSNumber.swift */; };
F8C5927E1CB726C7007C5ABC /* booleans.json in Resources */ = {isa = PBXBuildFile; fileRef = F8C5927D1CB726C7007C5ABC /* booleans.json */; };
F8C5927F1CB726CA007C5ABC /* booleans.json in Resources */ = {isa = PBXBuildFile; fileRef = F8C5927D1CB726C7007C5ABC /* booleans.json */; };
F8C592801CB726CB007C5ABC /* booleans.json in Resources */ = {isa = PBXBuildFile; fileRef = F8C5927D1CB726C7007C5ABC /* booleans.json */; };
F8C592821CB726FB007C5ABC /* Booleans.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8C592811CB726FB007C5ABC /* Booleans.swift */; };
F8C592831CB726FE007C5ABC /* Booleans.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8C592811CB726FB007C5ABC /* Booleans.swift */; };
F8C592841CB726FF007C5ABC /* Booleans.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8C592811CB726FB007C5ABC /* Booleans.swift */; };
F8CBE6671A64521000316FBC /* Dictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8CBE6661A64521000316FBC /* Dictionary.swift */; };
F8CBE6681A64526300316FBC /* Dictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8CBE6661A64521000316FBC /* Dictionary.swift */; };
F8E33FA51A51E0C20025A6E5 /* post_bad_comments.json in Resources */ = {isa = PBXBuildFile; fileRef = F8E33FA41A51E0C20025A6E5 /* post_bad_comments.json */; };
F8EF432F1BBC728A001886BA /* catDecoded.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8EF432E1BBC728A001886BA /* catDecoded.swift */; };
F8EF43301BBC729F001886BA /* catDecoded.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8EF432E1BBC728A001886BA /* catDecoded.swift */; };
F8EF43311BBC729F001886BA /* catDecoded.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8EF432E1BBC728A001886BA /* catDecoded.swift */; };
F8EF756A1A4CEC6100BDCC2D /* OptionalPropertyDecodingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FB0D19D215570031E006 /* OptionalPropertyDecodingTests.swift */; };
F8EF756B1A4CEC6400BDCC2D /* EmbeddedJSONDecodingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FB1119D30E660031E006 /* EmbeddedJSONDecodingTests.swift */; };
F8EF756C1A4CEC7100BDCC2D /* JSONFileReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FB0F19D21AF50031E006 /* JSONFileReader.swift */; };
F8EF756D1A4CEC7100BDCC2D /* user_with_email.json in Resources */ = {isa = PBXBuildFile; fileRef = EAD9FB0419D2143A0031E006 /* user_with_email.json */; };
F8EF756E1A4CEC7100BDCC2D /* user_without_email.json in Resources */ = {isa = PBXBuildFile; fileRef = EAD9FB0819D214AA0031E006 /* user_without_email.json */; };
F8EF756F1A4CEC7100BDCC2D /* TemplateIcon2x.png in Resources */ = {isa = PBXBuildFile; fileRef = EAD9FB0919D214AA0031E006 /* TemplateIcon2x.png */; };
F8EF75701A4CEC7100BDCC2D /* comment.json in Resources */ = {isa = PBXBuildFile; fileRef = EAD9FB1319D30ED00031E006 /* comment.json */; };
F8EF75711A4CEC7100BDCC2D /* post_no_comments.json in Resources */ = {isa = PBXBuildFile; fileRef = EAD9FB1519D30F8D0031E006 /* post_no_comments.json */; };
F8EF75721A4CEC7800BDCC2D /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FAFD19D2113C0031E006 /* User.swift */; };
F8EF75731A4CEC7800BDCC2D /* Comment.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FAFF19D211630031E006 /* Comment.swift */; };
F8EF75741A4CEC7800BDCC2D /* Post.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FB0119D211C10031E006 /* Post.swift */; };
F8EF75751A4CEC7800BDCC2D /* TestModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD9FB1719D49A3E0031E006 /* TestModel.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
809754CC1BADF34200C409E6 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = EAD9FAC619D0EAB50031E006 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 809754C01BADF34100C409E6;
remoteInfo = "Argo-tvOS";
};
EA395DC01A51FF5200EB607E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = EAD9FAC619D0EAB50031E006 /* Project object */;
proxyType = 1;
remoteGlobalIDString = EAD9FACE19D0EAB50031E006;
remoteInfo = "Argo-iOS";
};
F89335601A4CE83000B88685 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = EAD9FAC619D0EAB50031E006 /* Project object */;
proxyType = 1;
remoteGlobalIDString = F89335531A4CE83000B88685;
remoteInfo = "Argo-Mac";
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
F87D9D8C1A92676900C8AF1D /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
F87D9D8E1A92677500C8AF1D /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
F8C05D481A649A14004A8D0F /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
F8C05D4B1A649A21004A8D0F /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
4D5F6DD81B3832C200D79B25 /* user_with_nested_name.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = user_with_nested_name.json; sourceTree = "<group>"; };
809586041BB84CE7004F9319 /* Curry.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Curry.framework; path = "Carthage/Checkouts/Curry/build/Debug-appletvos/Curry.framework"; sourceTree = "<group>"; };
809754C11BADF34100C409E6 /* Argo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Argo.framework; sourceTree = BUILT_PRODUCTS_DIR; };
809754CA1BADF34200C409E6 /* Argo-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Argo-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
BF92789C1B9365900038A7E1 /* RawRepresentable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RawRepresentable.swift; path = Argo/Extensions/RawRepresentable.swift; sourceTree = SOURCE_ROOT; };
D0592EB61B77DD7800EFEF39 /* Argo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Argo.framework; sourceTree = BUILT_PRODUCTS_DIR; };
EA04D5901BBF1F40001DE23B /* Monad.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Monad.swift; sourceTree = "<group>"; };
EA04D5941BBF1F80001DE23B /* Functor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Functor.swift; sourceTree = "<group>"; };
EA04D5981BBF1FA4001DE23B /* Applicative.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Applicative.swift; sourceTree = "<group>"; };
EA04D59C1BBF1FB9001DE23B /* Alternative.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Alternative.swift; sourceTree = "<group>"; };
EA04D5A01BBF2021001DE23B /* FailureCoalescing.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FailureCoalescing.swift; sourceTree = "<group>"; };
EA04D5A41BBF2047001DE23B /* Argo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Argo.swift; sourceTree = "<group>"; };
EA08313019D5EEAF003B90D7 /* TypeTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TypeTests.swift; sourceTree = "<group>"; };
EA08313219D5EEF2003B90D7 /* post_comments.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = post_comments.json; sourceTree = "<group>"; };
EA08313419D5EFC0003B90D7 /* types.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = types.json; sourceTree = "<group>"; };
EA1200CA1BAB5CBA006DDBD8 /* RawRepresentableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RawRepresentableTests.swift; sourceTree = "<group>"; };
EA395DC31A52F8EB00EB607E /* array_root.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = array_root.json; sourceTree = "<group>"; };
EA395DC61A52F93B00EB607E /* ExampleTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExampleTests.swift; sourceTree = "<group>"; };
EA395DC91A52FC1400EB607E /* root_object.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = root_object.json; sourceTree = "<group>"; };
EA47BB521AFC5B76002D2CCD /* DecodedTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DecodedTests.swift; sourceTree = "<group>"; };
EA47BB551AFC5DAC002D2CCD /* user_with_bad_type.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = user_with_bad_type.json; sourceTree = "<group>"; };
EA47BB581AFC5E65002D2CCD /* user_without_key.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = user_without_key.json; sourceTree = "<group>"; };
EA4EAF7219DD96330036AE0D /* types_fail_embedded.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = types_fail_embedded.json; sourceTree = "<group>"; };
EA6DD69B1AB383FB00CA3A5B /* PerformanceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PerformanceTests.swift; sourceTree = "<group>"; };
EA6DD69E1AB384C700CA3A5B /* big_data.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = big_data.json; sourceTree = "<group>"; };
EABDF6891A9CD46100B6CC83 /* SwiftDictionaryDecodingTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftDictionaryDecodingTests.swift; sourceTree = "<group>"; };
EABDF68D1A9CD4EA00B6CC83 /* PListFileReader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PListFileReader.swift; sourceTree = "<group>"; };
EABDF68E1A9CD4EA00B6CC83 /* types.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = types.plist; sourceTree = "<group>"; };
EABDF6931A9CD4FC00B6CC83 /* PListDecodingTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PListDecodingTests.swift; sourceTree = "<group>"; };
EAD9FACF19D0EAB50031E006 /* Argo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Argo.framework; sourceTree = BUILT_PRODUCTS_DIR; };
EAD9FAD319D0EAB50031E006 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
EAD9FADA19D0EAB60031E006 /* ArgoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ArgoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
EAD9FADD19D0EAB60031E006 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
EAD9FAF519D0F7900031E006 /* Decode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Decode.swift; sourceTree = "<group>"; };
EAD9FAFD19D2113C0031E006 /* User.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = "<group>"; };
EAD9FAFF19D211630031E006 /* Comment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Comment.swift; sourceTree = "<group>"; };
EAD9FB0119D211C10031E006 /* Post.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Post.swift; sourceTree = "<group>"; };
EAD9FB0419D2143A0031E006 /* user_with_email.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = user_with_email.json; sourceTree = "<group>"; };
EAD9FB0819D214AA0031E006 /* user_without_email.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = user_without_email.json; sourceTree = "<group>"; };
EAD9FB0919D214AA0031E006 /* TemplateIcon2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = TemplateIcon2x.png; sourceTree = "<group>"; };
EAD9FB0D19D215570031E006 /* OptionalPropertyDecodingTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OptionalPropertyDecodingTests.swift; sourceTree = "<group>"; };
EAD9FB0F19D21AF50031E006 /* JSONFileReader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JSONFileReader.swift; sourceTree = "<group>"; };
EAD9FB1119D30E660031E006 /* EmbeddedJSONDecodingTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmbeddedJSONDecodingTests.swift; sourceTree = "<group>"; };
EAD9FB1319D30ED00031E006 /* comment.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = comment.json; sourceTree = "<group>"; };
EAD9FB1519D30F8D0031E006 /* post_no_comments.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = post_no_comments.json; sourceTree = "<group>"; };
EAD9FB1719D49A3E0031E006 /* TestModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = TestModel.swift; path = ../../../Argo/ArgoTests/Models/TestModel.swift; sourceTree = "<group>"; };
EADADCB11A5DB6F600B180EC /* EquatableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EquatableTests.swift; sourceTree = "<group>"; };
F802D4C21A5EE061005E236C /* NSURL.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSURL.swift; sourceTree = "<group>"; };
F802D4C51A5EE2D5005E236C /* url.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = url.json; sourceTree = "<group>"; };
F82D15F21C3C82730079FFB5 /* NSNumber.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSNumber.swift; sourceTree = "<group>"; };
F84290281B57EFAE008F57B4 /* Curry.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Curry.framework; path = "Carthage/Checkouts/Curry/build/Debug-iphoneos/Curry.framework"; sourceTree = "<group>"; };
F842902A1B57EFB5008F57B4 /* Curry.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Curry.framework; path = Carthage/Checkouts/Curry/build/Debug/Curry.framework; sourceTree = "<group>"; };
F84318A71B9A2D7A00165216 /* DecodeError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DecodeError.swift; sourceTree = "<group>"; };
F874B7E91A66BF52004CCE5E /* root_array.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = root_array.json; sourceTree = "<group>"; };
F876F1D61B56FBB300B38589 /* Runes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Runes.swift; path = Carthage/Checkouts/Runes/Source/Runes.swift; sourceTree = SOURCE_ROOT; };
F87EB6991ABC5F1300E3B0AB /* curry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = curry.swift; sourceTree = "<group>"; };
F87EB69A1ABC5F1300E3B0AB /* decode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = decode.swift; sourceTree = "<group>"; };
F87EB69B1ABC5F1300E3B0AB /* flatReduce.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = flatReduce.swift; sourceTree = "<group>"; };
F87EB69C1ABC5F1300E3B0AB /* sequence.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = sequence.swift; sourceTree = "<group>"; };
F87EB69E1ABC5F1300E3B0AB /* Decoded.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Decoded.swift; path = Argo/Types/Decoded/Decoded.swift; sourceTree = SOURCE_ROOT; };
F87EB69F1ABC5F1300E3B0AB /* JSON.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JSON.swift; sourceTree = "<group>"; };
F87EB6A01ABC5F1300E3B0AB /* Decodable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Decodable.swift; sourceTree = "<group>"; };
F87EB6A11ABC5F1300E3B0AB /* StandardTypes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StandardTypes.swift; sourceTree = "<group>"; };
F89335541A4CE83000B88685 /* Argo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Argo.framework; sourceTree = BUILT_PRODUCTS_DIR; };
F893355E1A4CE83000B88685 /* Argo-MacTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Argo-MacTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
F893356D1A4CE8FC00B88685 /* Argo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Argo.h; sourceTree = "<group>"; };
F8C5927D1CB726C7007C5ABC /* booleans.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = booleans.json; sourceTree = "<group>"; };
F8C592811CB726FB007C5ABC /* Booleans.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Booleans.swift; sourceTree = "<group>"; };
F8CBE6661A64521000316FBC /* Dictionary.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Dictionary.swift; sourceTree = "<group>"; };
F8E33FA41A51E0C20025A6E5 /* post_bad_comments.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = post_bad_comments.json; sourceTree = "<group>"; };
F8EF432E1BBC728A001886BA /* catDecoded.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = catDecoded.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
809754BD1BADF34100C409E6 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
809754C71BADF34200C409E6 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
809586051BB84CEE004F9319 /* Curry.framework in Frameworks */,
809754CB1BADF34200C409E6 /* Argo.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
D0592EB21B77DD7800EFEF39 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
EAD9FACB19D0EAB50031E006 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
EAD9FAD719D0EAB60031E006 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
F84290291B57EFAE008F57B4 /* Curry.framework in Frameworks */,
F87897EF1A927864009316A5 /* Argo.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
F89335501A4CE83000B88685 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
F893355B1A4CE83000B88685 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
F842902B1B57EFB5008F57B4 /* Curry.framework in Frameworks */,
F893355F1A4CE83000B88685 /* Argo.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
EA04D5A81BBF43C7001DE23B /* Decoded */ = {
isa = PBXGroup;
children = (
F87EB69E1ABC5F1300E3B0AB /* Decoded.swift */,
EA04D5901BBF1F40001DE23B /* Monad.swift */,
EA04D5941BBF1F80001DE23B /* Functor.swift */,
EA04D5981BBF1FA4001DE23B /* Applicative.swift */,
EA04D59C1BBF1FB9001DE23B /* Alternative.swift */,
EA04D5A01BBF2021001DE23B /* FailureCoalescing.swift */,
);
path = Decoded;
sourceTree = "<group>";
};
EABDF68C1A9CD4EA00B6CC83 /* plists */ = {
isa = PBXGroup;
children = (
EABDF68D1A9CD4EA00B6CC83 /* PListFileReader.swift */,
EABDF68E1A9CD4EA00B6CC83 /* types.plist */,
);
path = plists;
sourceTree = "<group>";
};
EAD9FAC519D0EAB50031E006 = {
isa = PBXGroup;
children = (
EAD9FAD119D0EAB50031E006 /* Argo */,
EAD9FADB19D0EAB60031E006 /* ArgoTests */,
EAD9FAD019D0EAB50031E006 /* Products */,
F87AD8BB1AF7DFD200D6E3FF /* Frameworks */,
);
indentWidth = 2;
sourceTree = "<group>";
tabWidth = 2;
usesTabs = 0;
};
EAD9FAD019D0EAB50031E006 /* Products */ = {
isa = PBXGroup;
children = (
EAD9FACF19D0EAB50031E006 /* Argo.framework */,
EAD9FADA19D0EAB60031E006 /* ArgoTests.xctest */,
F89335541A4CE83000B88685 /* Argo.framework */,
F893355E1A4CE83000B88685 /* Argo-MacTests.xctest */,
D0592EB61B77DD7800EFEF39 /* Argo.framework */,
809754C11BADF34100C409E6 /* Argo.framework */,
809754CA1BADF34200C409E6 /* Argo-tvOSTests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
EAD9FAD119D0EAB50031E006 /* Argo */ = {
isa = PBXGroup;
children = (
F87EB69D1ABC5F1300E3B0AB /* Types */,
EAD9FAE919D0F6480031E006 /* Operators */,
F87EB6981ABC5F1300E3B0AB /* Functions */,
F8CBE6651A6451F800316FBC /* Extensions */,
EAD9FAE819D0F5B50031E006 /* Resources */,
);
name = Argo;
path = ../Argo/Argo;
sourceTree = "<group>";
};
EAD9FADB19D0EAB60031E006 /* ArgoTests */ = {
isa = PBXGroup;
children = (
EAD9FB0C19D215020031E006 /* Tests */,
EAD9FB0319D213F30031E006 /* JSON */,
EABDF68C1A9CD4EA00B6CC83 /* plists */,
EAD9FAFC19D2110D0031E006 /* Models */,
EAD9FADC19D0EAB60031E006 /* Supporting Files */,
);
name = ArgoTests;
path = ../Argo/ArgoTests;
sourceTree = "<group>";
};
EAD9FADC19D0EAB60031E006 /* Supporting Files */ = {
isa = PBXGroup;
children = (
EAD9FADD19D0EAB60031E006 /* Info.plist */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
EAD9FAE819D0F5B50031E006 /* Resources */ = {
isa = PBXGroup;
children = (
EAD9FAD319D0EAB50031E006 /* Info.plist */,
F893356D1A4CE8FC00B88685 /* Argo.h */,
);
path = Resources;
sourceTree = "<group>";
};
EAD9FAE919D0F6480031E006 /* Operators */ = {
isa = PBXGroup;
children = (
F876F1D61B56FBB300B38589 /* Runes.swift */,
EA04D5A41BBF2047001DE23B /* Argo.swift */,
EAD9FAF519D0F7900031E006 /* Decode.swift */,
);
path = Operators;
sourceTree = "<group>";
};
EAD9FAFC19D2110D0031E006 /* Models */ = {
isa = PBXGroup;
children = (
F8C592811CB726FB007C5ABC /* Booleans.swift */,
EAD9FAFD19D2113C0031E006 /* User.swift */,
EAD9FAFF19D211630031E006 /* Comment.swift */,
EAD9FB0119D211C10031E006 /* Post.swift */,
EAD9FB1719D49A3E0031E006 /* TestModel.swift */,
F802D4C21A5EE061005E236C /* NSURL.swift */,
);
path = Models;
sourceTree = "<group>";
};
EAD9FB0319D213F30031E006 /* JSON */ = {
isa = PBXGroup;
children = (
F8C5927D1CB726C7007C5ABC /* booleans.json */,
EAD9FB0F19D21AF50031E006 /* JSONFileReader.swift */,
EAD9FB0419D2143A0031E006 /* user_with_email.json */,
EAD9FB0819D214AA0031E006 /* user_without_email.json */,
4D5F6DD81B3832C200D79B25 /* user_with_nested_name.json */,
F802D4C51A5EE2D5005E236C /* url.json */,
F874B7E91A66BF52004CCE5E /* root_array.json */,
EAD9FB0919D214AA0031E006 /* TemplateIcon2x.png */,
EAD9FB1319D30ED00031E006 /* comment.json */,
EAD9FB1519D30F8D0031E006 /* post_no_comments.json */,
EA08313219D5EEF2003B90D7 /* post_comments.json */,
F8E33FA41A51E0C20025A6E5 /* post_bad_comments.json */,
EA08313419D5EFC0003B90D7 /* types.json */,
EA4EAF7219DD96330036AE0D /* types_fail_embedded.json */,
EA395DC31A52F8EB00EB607E /* array_root.json */,
EA395DC91A52FC1400EB607E /* root_object.json */,
EA6DD69E1AB384C700CA3A5B /* big_data.json */,
EA47BB551AFC5DAC002D2CCD /* user_with_bad_type.json */,
EA47BB581AFC5E65002D2CCD /* user_without_key.json */,
);
path = JSON;
sourceTree = "<group>";
};
EAD9FB0C19D215020031E006 /* Tests */ = {
isa = PBXGroup;
children = (
EABDF6931A9CD4FC00B6CC83 /* PListDecodingTests.swift */,
EABDF6891A9CD46100B6CC83 /* SwiftDictionaryDecodingTests.swift */,
EAD9FB0D19D215570031E006 /* OptionalPropertyDecodingTests.swift */,
EAD9FB1119D30E660031E006 /* EmbeddedJSONDecodingTests.swift */,
EA08313019D5EEAF003B90D7 /* TypeTests.swift */,
EA395DC61A52F93B00EB607E /* ExampleTests.swift */,
EADADCB11A5DB6F600B180EC /* EquatableTests.swift */,
EA6DD69B1AB383FB00CA3A5B /* PerformanceTests.swift */,
EA47BB521AFC5B76002D2CCD /* DecodedTests.swift */,
EA1200CA1BAB5CBA006DDBD8 /* RawRepresentableTests.swift */,
);
path = Tests;
sourceTree = "<group>";
};
F87AD8BB1AF7DFD200D6E3FF /* Frameworks */ = {
isa = PBXGroup;
children = (
F842902A1B57EFB5008F57B4 /* Curry.framework */,
F84290281B57EFAE008F57B4 /* Curry.framework */,
809586041BB84CE7004F9319 /* Curry.framework */,
F87AD8BD1AF7E04B00D6E3FF /* Mac */,
F87AD8BC1AF7E04500D6E3FF /* iOS */,
);
name = Frameworks;
sourceTree = "<group>";
};
F87AD8BC1AF7E04500D6E3FF /* iOS */ = {
isa = PBXGroup;
children = (
);
name = iOS;
sourceTree = "<group>";
};
F87AD8BD1AF7E04B00D6E3FF /* Mac */ = {
isa = PBXGroup;
children = (
);
name = Mac;
sourceTree = "<group>";
};
F87EB6981ABC5F1300E3B0AB /* Functions */ = {
isa = PBXGroup;
children = (
F8EF432E1BBC728A001886BA /* catDecoded.swift */,
F87EB6991ABC5F1300E3B0AB /* curry.swift */,
F87EB69A1ABC5F1300E3B0AB /* decode.swift */,
F87EB69B1ABC5F1300E3B0AB /* flatReduce.swift */,
F87EB69C1ABC5F1300E3B0AB /* sequence.swift */,
);
path = Functions;
sourceTree = "<group>";
};
F87EB69D1ABC5F1300E3B0AB /* Types */ = {
isa = PBXGroup;
children = (
EA04D5A81BBF43C7001DE23B /* Decoded */,
F87EB69F1ABC5F1300E3B0AB /* JSON.swift */,
F87EB6A01ABC5F1300E3B0AB /* Decodable.swift */,
F87EB6A11ABC5F1300E3B0AB /* StandardTypes.swift */,
F84318A71B9A2D7A00165216 /* DecodeError.swift */,
);
path = Types;
sourceTree = "<group>";
};
F8CBE6651A6451F800316FBC /* Extensions */ = {
isa = PBXGroup;
children = (
F82D15F21C3C82730079FFB5 /* NSNumber.swift */,
F8CBE6661A64521000316FBC /* Dictionary.swift */,
BF92789C1B9365900038A7E1 /* RawRepresentable.swift */,
);
path = Extensions;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
809754BE1BADF34100C409E6 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
809754E71BADF37200C409E6 /* Argo.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
D0592EB31B77DD7800EFEF39 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
EAD9FACC19D0EAB50031E006 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
F893356E1A4CE8FC00B88685 /* Argo.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
F89335511A4CE83000B88685 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
F893356F1A4CE8FC00B88685 /* Argo.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
809754C01BADF34100C409E6 /* Argo-tvOS */ = {
isa = PBXNativeTarget;
buildConfigurationList = 809754D61BADF34200C409E6 /* Build configuration list for PBXNativeTarget "Argo-tvOS" */;
buildPhases = (
809754BC1BADF34100C409E6 /* Sources */,
809754BD1BADF34100C409E6 /* Frameworks */,
809754BE1BADF34100C409E6 /* Headers */,
809754BF1BADF34100C409E6 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "Argo-tvOS";
productName = "Argo-tvOS";
productReference = 809754C11BADF34100C409E6 /* Argo.framework */;
productType = "com.apple.product-type.framework";
};
809754C91BADF34200C409E6 /* Argo-tvOSTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 809754D71BADF34200C409E6 /* Build configuration list for PBXNativeTarget "Argo-tvOSTests" */;
buildPhases = (
809754C61BADF34200C409E6 /* Sources */,
809754C71BADF34200C409E6 /* Frameworks */,
809754C81BADF34200C409E6 /* Resources */,
);
buildRules = (
);
dependencies = (
809754CD1BADF34200C409E6 /* PBXTargetDependency */,
);
name = "Argo-tvOSTests";
productName = "Argo-tvOSTests";
productReference = 809754CA1BADF34200C409E6 /* Argo-tvOSTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
D0592EB51B77DD7800EFEF39 /* Argo-watchOS */ = {
isa = PBXNativeTarget;
buildConfigurationList = D0592EBD1B77DD7800EFEF39 /* Build configuration list for PBXNativeTarget "Argo-watchOS" */;
buildPhases = (
D0592EB11B77DD7800EFEF39 /* Sources */,
D0592EB21B77DD7800EFEF39 /* Frameworks */,
D0592EB31B77DD7800EFEF39 /* Headers */,
D0592EB41B77DD7800EFEF39 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "Argo-watchOS";
productName = "Argo-watchOS";
productReference = D0592EB61B77DD7800EFEF39 /* Argo.framework */;
productType = "com.apple.product-type.framework";
};
EAD9FACE19D0EAB50031E006 /* Argo-iOS */ = {
isa = PBXNativeTarget;
buildConfigurationList = EAD9FAE219D0EAB60031E006 /* Build configuration list for PBXNativeTarget "Argo-iOS" */;
buildPhases = (
EAD9FACA19D0EAB50031E006 /* Sources */,
EAD9FACB19D0EAB50031E006 /* Frameworks */,
EAD9FACC19D0EAB50031E006 /* Headers */,
EAD9FACD19D0EAB50031E006 /* Resources */,
2BF79DC6DAAA04A8DB0169BA /* Warn for TODO and FIXME comments */,
F8C05D481A649A14004A8D0F /* CopyFiles */,
);
buildRules = (
);
dependencies = (
);
name = "Argo-iOS";
productName = argo;
productReference = EAD9FACF19D0EAB50031E006 /* Argo.framework */;
productType = "com.apple.product-type.framework";
};
EAD9FAD919D0EAB60031E006 /* ArgoTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = EAD9FAE519D0EAB60031E006 /* Build configuration list for PBXNativeTarget "ArgoTests" */;
buildPhases = (
EAD9FAD619D0EAB60031E006 /* Sources */,
EAD9FAD719D0EAB60031E006 /* Frameworks */,
EAD9FAD819D0EAB60031E006 /* Resources */,
F87D9D8C1A92676900C8AF1D /* CopyFiles */,
);
buildRules = (
);
dependencies = (
EA395DC11A51FF5200EB607E /* PBXTargetDependency */,
);
name = ArgoTests;
productName = argoTests;
productReference = EAD9FADA19D0EAB60031E006 /* ArgoTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
F89335531A4CE83000B88685 /* Argo-Mac */ = {
isa = PBXNativeTarget;
buildConfigurationList = F89335671A4CE83000B88685 /* Build configuration list for PBXNativeTarget "Argo-Mac" */;
buildPhases = (
F893354F1A4CE83000B88685 /* Sources */,
F89335501A4CE83000B88685 /* Frameworks */,
F89335511A4CE83000B88685 /* Headers */,
F89335521A4CE83000B88685 /* Resources */,
F8C05D4B1A649A21004A8D0F /* CopyFiles */,
);
buildRules = (
);
dependencies = (
);
name = "Argo-Mac";
productName = "Argo-Mac";
productReference = F89335541A4CE83000B88685 /* Argo.framework */;
productType = "com.apple.product-type.framework";
};
F893355D1A4CE83000B88685 /* Argo-MacTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = F893356A1A4CE83000B88685 /* Build configuration list for PBXNativeTarget "Argo-MacTests" */;
buildPhases = (
F893355A1A4CE83000B88685 /* Sources */,
F893355B1A4CE83000B88685 /* Frameworks */,
F893355C1A4CE83000B88685 /* Resources */,
F87D9D8E1A92677500C8AF1D /* CopyFiles */,
);
buildRules = (
);
dependencies = (
F89335611A4CE83000B88685 /* PBXTargetDependency */,
);
name = "Argo-MacTests";
productName = "Argo-MacTests";
productReference = F893355E1A4CE83000B88685 /* Argo-MacTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
EAD9FAC619D0EAB50031E006 /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0700;
LastUpgradeCheck = 0800;
ORGANIZATIONNAME = thoughtbot;
TargetAttributes = {
809754C01BADF34100C409E6 = {
CreatedOnToolsVersion = 7.1;
LastSwiftMigration = 0800;
};
809754C91BADF34200C409E6 = {
CreatedOnToolsVersion = 7.1;
LastSwiftMigration = 0800;
};
D0592EB51B77DD7800EFEF39 = {
CreatedOnToolsVersion = 7.0;
LastSwiftMigration = 0800;
};
EAD9FACE19D0EAB50031E006 = {
CreatedOnToolsVersion = 6.0.1;
LastSwiftMigration = 0800;
};
EAD9FAD919D0EAB60031E006 = {
CreatedOnToolsVersion = 6.0.1;
LastSwiftMigration = 0800;
};
F89335531A4CE83000B88685 = {
CreatedOnToolsVersion = 6.2;
LastSwiftMigration = 0800;
};
F893355D1A4CE83000B88685 = {
CreatedOnToolsVersion = 6.2;
LastSwiftMigration = 0800;
};
};
};
buildConfigurationList = EAD9FAC919D0EAB50031E006 /* Build configuration list for PBXProject "Argo" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = EAD9FAC519D0EAB50031E006;
productRefGroup = EAD9FAD019D0EAB50031E006 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
EAD9FACE19D0EAB50031E006 /* Argo-iOS */,
EAD9FAD919D0EAB60031E006 /* ArgoTests */,
F89335531A4CE83000B88685 /* Argo-Mac */,
F893355D1A4CE83000B88685 /* Argo-MacTests */,
D0592EB51B77DD7800EFEF39 /* Argo-watchOS */,
809754C01BADF34100C409E6 /* Argo-tvOS */,
809754C91BADF34200C409E6 /* Argo-tvOSTests */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
809754BF1BADF34100C409E6 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
809754C81BADF34200C409E6 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
809755081BADF3ED00C409E6 /* user_with_bad_type.json in Resources */,
809754FA1BADF3ED00C409E6 /* user_without_email.json in Resources */,
809755031BADF3ED00C409E6 /* types.json in Resources */,
F8C592801CB726CB007C5ABC /* booleans.json in Resources */,
809754FD1BADF3ED00C409E6 /* root_array.json in Resources */,
809754FE1BADF3ED00C409E6 /* TemplateIcon2x.png in Resources */,
809754FB1BADF3ED00C409E6 /* user_with_nested_name.json in Resources */,
809755071BADF3ED00C409E6 /* big_data.json in Resources */,
809755011BADF3ED00C409E6 /* post_comments.json in Resources */,
809755061BADF3ED00C409E6 /* root_object.json in Resources */,
809755021BADF3ED00C409E6 /* post_bad_comments.json in Resources */,
809755001BADF3ED00C409E6 /* post_no_comments.json in Resources */,
809754F91BADF3ED00C409E6 /* user_with_email.json in Resources */,
8097550A1BADF3F200C409E6 /* types.plist in Resources */,
809755041BADF3ED00C409E6 /* types_fail_embedded.json in Resources */,
809755051BADF3ED00C409E6 /* array_root.json in Resources */,
809754FC1BADF3ED00C409E6 /* url.json in Resources */,
809755091BADF3ED00C409E6 /* user_without_key.json in Resources */,
809754FF1BADF3ED00C409E6 /* comment.json in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
D0592EB41B77DD7800EFEF39 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
EAD9FACD19D0EAB50031E006 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
EAD9FAD819D0EAB60031E006 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
EA47BB561AFC5DAC002D2CCD /* user_with_bad_type.json in Resources */,
EA08313519D5EFC0003B90D7 /* types.json in Resources */,
EA4EAF7319DD96330036AE0D /* types_fail_embedded.json in Resources */,
F8C5927E1CB726C7007C5ABC /* booleans.json in Resources */,
EA395DCA1A52FC1400EB607E /* root_object.json in Resources */,
F874B7EA1A66BF52004CCE5E /* root_array.json in Resources */,
EAD9FB1619D30F8D0031E006 /* post_no_comments.json in Resources */,
EA6DD69F1AB384C700CA3A5B /* big_data.json in Resources */,
EA08313319D5EEF2003B90D7 /* post_comments.json in Resources */,
4D5F6DD91B3832C200D79B25 /* user_with_nested_name.json in Resources */,
EABDF6911A9CD4EA00B6CC83 /* types.plist in Resources */,
EAD9FB0A19D214AA0031E006 /* user_without_email.json in Resources */,
EAD9FB0619D2143A0031E006 /* user_with_email.json in Resources */,
EAD9FB0B19D214AA0031E006 /* TemplateIcon2x.png in Resources */,
EA47BB591AFC5E65002D2CCD /* user_without_key.json in Resources */,
EA395DC41A52F8EB00EB607E /* array_root.json in Resources */,
F8E33FA51A51E0C20025A6E5 /* post_bad_comments.json in Resources */,
EAD9FB1419D30ED00031E006 /* comment.json in Resources */,
F802D4C61A5EE2D5005E236C /* url.json in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
F89335521A4CE83000B88685 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
F893355C1A4CE83000B88685 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
EA47BB571AFC5DAC002D2CCD /* user_with_bad_type.json in Resources */,
F862E0AD1A519D560093B028 /* types.json in Resources */,
F862E0AE1A519D5C0093B028 /* types_fail_embedded.json in Resources */,
F8C5927F1CB726CA007C5ABC /* booleans.json in Resources */,
EA395DCB1A52FC1400EB607E /* root_object.json in Resources */,
F874B7EB1A66C221004CCE5E /* root_array.json in Resources */,
F8EF75711A4CEC7100BDCC2D /* post_no_comments.json in Resources */,
EA6DD6A01AB384C700CA3A5B /* big_data.json in Resources */,
F862E0AC1A519D520093B028 /* post_comments.json in Resources */,
4D5F6DDA1B3832C200D79B25 /* user_with_nested_name.json in Resources */,
EABDF6921A9CD4EA00B6CC83 /* types.plist in Resources */,
F8EF756E1A4CEC7100BDCC2D /* user_without_email.json in Resources */,
F8EF756D1A4CEC7100BDCC2D /* user_with_email.json in Resources */,
F8EF756F1A4CEC7100BDCC2D /* TemplateIcon2x.png in Resources */,
EA47BB5A1AFC5E65002D2CCD /* user_without_key.json in Resources */,
EA395DC51A52F8EE00EB607E /* array_root.json in Resources */,
EA395DC21A5209C000EB607E /* post_bad_comments.json in Resources */,
F8EF75701A4CEC7100BDCC2D /* comment.json in Resources */,
F802D4C71A5EE2D5005E236C /* url.json in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
2BF79DC6DAAA04A8DB0169BA /* Warn for TODO and FIXME comments */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Warn for TODO and FIXME comments";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "KEYWORDS=\"TODO:|FIXME:|\\?\\?\\?:|\\!\\!\\!:\"\nFILE_EXTENSIONS=\"h|m|mm|c|cpp\"\nfind -E \"${SRCROOT}\" -ipath \"${SRCROOT}/pods\" -prune -o \\( -regex \".*\\.($FILE_EXTENSIONS)$\" \\) -print0 | xargs -0 egrep --with-filename --line-number --only-matching \"($KEYWORDS).*\\$\" | perl -p -e \"s/($KEYWORDS)/ warning: \\$1/\"\n";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
809754BC1BADF34100C409E6 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
EA9159F81BDE74E400D85292 /* Monad.swift in Sources */,
809754DF1BADF36D00C409E6 /* (null) in Sources */,
EA9159F71BDE74C700D85292 /* catDecoded.swift in Sources */,
EA9159FC1BDE74FC00D85292 /* FailureCoalescing.swift in Sources */,
809754E31BADF36D00C409E6 /* flatReduce.swift in Sources */,
809754DB1BADF36D00C409E6 /* StandardTypes.swift in Sources */,
EA9159F91BDE74EB00D85292 /* Functor.swift in Sources */,
809754DA1BADF36D00C409E6 /* Decodable.swift in Sources */,
809754DE1BADF36D00C409E6 /* Decode.swift in Sources */,
809754D81BADF36D00C409E6 /* Decoded.swift in Sources */,
809754E41BADF36D00C409E6 /* sequence.swift in Sources */,
809754DD1BADF36D00C409E6 /* Runes.swift in Sources */,
809754E21BADF36D00C409E6 /* decode.swift in Sources */,
809754DC1BADF36D00C409E6 /* DecodeError.swift in Sources */,
EA9159FA1BDE74F300D85292 /* Applicative.swift in Sources */,
809754E51BADF36D00C409E6 /* Dictionary.swift in Sources */,
809754E61BADF36D00C409E6 /* RawRepresentable.swift in Sources */,
809754D91BADF36D00C409E6 /* JSON.swift in Sources */,
F8C2561C1C3C855C00B70968 /* NSNumber.swift in Sources */,
EA9159F61BDE74BC00D85292 /* Argo.swift in Sources */,
EA9159FB1BDE74F800D85292 /* Alternative.swift in Sources */,
809754E11BADF36D00C409E6 /* curry.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
809754C61BADF34200C409E6 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
809754F01BADF3E400C409E6 /* DecodedTests.swift in Sources */,
809754F11BADF3E400C409E6 /* RawRepresentableTests.swift in Sources */,
809754F31BADF3E400C409E6 /* PListFileReader.swift in Sources */,
809754EB1BADF3E400C409E6 /* EmbeddedJSONDecodingTests.swift in Sources */,
F8C592841CB726FF007C5ABC /* Booleans.swift in Sources */,
809754EA1BADF3E400C409E6 /* OptionalPropertyDecodingTests.swift in Sources */,
809754F81BADF3E400C409E6 /* NSURL.swift in Sources */,
809754F41BADF3E400C409E6 /* User.swift in Sources */,
809754EC1BADF3E400C409E6 /* TypeTests.swift in Sources */,
809754E81BADF3E400C409E6 /* PListDecodingTests.swift in Sources */,
809754E91BADF3E400C409E6 /* SwiftDictionaryDecodingTests.swift in Sources */,
809754F51BADF3E400C409E6 /* Comment.swift in Sources */,
809754F61BADF3E400C409E6 /* Post.swift in Sources */,
809754F21BADF3E400C409E6 /* JSONFileReader.swift in Sources */,
809754EE1BADF3E400C409E6 /* EquatableTests.swift in Sources */,
809754ED1BADF3E400C409E6 /* ExampleTests.swift in Sources */,
809754F71BADF3E400C409E6 /* TestModel.swift in Sources */,
809754EF1BADF3E400C409E6 /* PerformanceTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
D0592EB11B77DD7800EFEF39 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
D0592EC41B77DD9A00EFEF39 /* curry.swift in Sources */,
EA04D59B1BBF1FA4001DE23B /* Applicative.swift in Sources */,
D0592EC11B77DD8E00EFEF39 /* StandardTypes.swift in Sources */,
EA04D59F1BBF1FB9001DE23B /* Alternative.swift in Sources */,
D0592EC01B77DD8E00EFEF39 /* Decodable.swift in Sources */,
D0592EC51B77DD9A00EFEF39 /* decode.swift in Sources */,
F8C2561B1C3C855C00B70968 /* NSNumber.swift in Sources */,
D0592EC81B77DD9A00EFEF39 /* Dictionary.swift in Sources */,
EA04D5A31BBF2021001DE23B /* FailureCoalescing.swift in Sources */,
D0592EBE1B77DD8E00EFEF39 /* Decoded.swift in Sources */,
F84318AA1B9A2D7A00165216 /* DecodeError.swift in Sources */,
D0592EBF1B77DD8E00EFEF39 /* JSON.swift in Sources */,
D0592EC21B77DD9300EFEF39 /* Runes.swift in Sources */,
F8EF43311BBC729F001886BA /* catDecoded.swift in Sources */,
D0592EC31B77DD9300EFEF39 /* Decode.swift in Sources */,
EA1200CE1BAB621C006DDBD8 /* RawRepresentable.swift in Sources */,
EA04D5931BBF1F40001DE23B /* Monad.swift in Sources */,
EA04D5971BBF1F80001DE23B /* Functor.swift in Sources */,
D0592EC71B77DD9A00EFEF39 /* sequence.swift in Sources */,
EA04D5A71BBF2047001DE23B /* Argo.swift in Sources */,
D0592EC61B77DD9A00EFEF39 /* flatReduce.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
EAD9FACA19D0EAB50031E006 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F87EB6AA1ABC5F1300E3B0AB /* Decoded.swift in Sources */,
EA04D5991BBF1FA4001DE23B /* Applicative.swift in Sources */,
BF92789D1B9365900038A7E1 /* RawRepresentable.swift in Sources */,
EA04D59D1BBF1FB9001DE23B /* Alternative.swift in Sources */,
F87EB6AE1ABC5F1300E3B0AB /* Decodable.swift in Sources */,
F87EB6A41ABC5F1300E3B0AB /* decode.swift in Sources */,
F82D15F31C3C82730079FFB5 /* NSNumber.swift in Sources */,
F87EB6AC1ABC5F1300E3B0AB /* JSON.swift in Sources */,
EA04D5A11BBF2021001DE23B /* FailureCoalescing.swift in Sources */,
F87EB6A61ABC5F1300E3B0AB /* flatReduce.swift in Sources */,
F87EB6A81ABC5F1300E3B0AB /* sequence.swift in Sources */,
F84318A81B9A2D7A00165216 /* DecodeError.swift in Sources */,
F876F1D71B56FBB300B38589 /* Runes.swift in Sources */,
F8CBE6671A64521000316FBC /* Dictionary.swift in Sources */,
EAD9FAF619D0F7900031E006 /* Decode.swift in Sources */,
F87EB6B01ABC5F1300E3B0AB /* StandardTypes.swift in Sources */,
EA04D5911BBF1F40001DE23B /* Monad.swift in Sources */,
EA04D5951BBF1F80001DE23B /* Functor.swift in Sources */,
F87EB6A21ABC5F1300E3B0AB /* curry.swift in Sources */,
EA04D5A51BBF2047001DE23B /* Argo.swift in Sources */,
F8EF432F1BBC728A001886BA /* catDecoded.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
EAD9FAD619D0EAB60031E006 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
EAD9FB1219D30E660031E006 /* EmbeddedJSONDecodingTests.swift in Sources */,
F802D4C31A5EE061005E236C /* NSURL.swift in Sources */,
EABDF68F1A9CD4EA00B6CC83 /* PListFileReader.swift in Sources */,
EAD9FB1019D21AF50031E006 /* JSONFileReader.swift in Sources */,
F8C592821CB726FB007C5ABC /* Booleans.swift in Sources */,
EAD9FB0219D211C10031E006 /* Post.swift in Sources */,
EABDF6941A9CD4FC00B6CC83 /* PListDecodingTests.swift in Sources */,
EAD9FB1819D49A3E0031E006 /* TestModel.swift in Sources */,
EAD9FB0E19D215570031E006 /* OptionalPropertyDecodingTests.swift in Sources */,
EA47BB531AFC5B76002D2CCD /* DecodedTests.swift in Sources */,
EAD9FAFE19D2113C0031E006 /* User.swift in Sources */,
EAD9FB0019D211630031E006 /* Comment.swift in Sources */,
EA6DD69C1AB383FB00CA3A5B /* PerformanceTests.swift in Sources */,
EA1200CB1BAB5CBA006DDBD8 /* RawRepresentableTests.swift in Sources */,
EABDF68A1A9CD46100B6CC83 /* SwiftDictionaryDecodingTests.swift in Sources */,
EA08313119D5EEAF003B90D7 /* TypeTests.swift in Sources */,
EA395DC71A52F93B00EB607E /* ExampleTests.swift in Sources */,
EADADCB21A5DB6F600B180EC /* EquatableTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
F893354F1A4CE83000B88685 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F87EB6AB1ABC5F1300E3B0AB /* Decoded.swift in Sources */,
EA04D59A1BBF1FA4001DE23B /* Applicative.swift in Sources */,
F87EB6AF1ABC5F1300E3B0AB /* Decodable.swift in Sources */,
EA04D59E1BBF1FB9001DE23B /* Alternative.swift in Sources */,
F87EB6A51ABC5F1300E3B0AB /* decode.swift in Sources */,
F87EB6AD1ABC5F1300E3B0AB /* JSON.swift in Sources */,
F8C2561A1C3C855B00B70968 /* NSNumber.swift in Sources */,
F87EB6A71ABC5F1300E3B0AB /* flatReduce.swift in Sources */,
EA04D5A21BBF2021001DE23B /* FailureCoalescing.swift in Sources */,
F87EB6A91ABC5F1300E3B0AB /* sequence.swift in Sources */,
F84318A91B9A2D7A00165216 /* DecodeError.swift in Sources */,
F876F1D81B56FBB300B38589 /* Runes.swift in Sources */,
F8CBE6681A64526300316FBC /* Dictionary.swift in Sources */,
F8EF43301BBC729F001886BA /* catDecoded.swift in Sources */,
F89335761A4CE93600B88685 /* Decode.swift in Sources */,
EA1200CD1BAB621C006DDBD8 /* RawRepresentable.swift in Sources */,
EA04D5921BBF1F40001DE23B /* Monad.swift in Sources */,
EA04D5961BBF1F80001DE23B /* Functor.swift in Sources */,
F87EB6B11ABC5F1300E3B0AB /* StandardTypes.swift in Sources */,
EA04D5A61BBF2047001DE23B /* Argo.swift in Sources */,
F87EB6A31ABC5F1300E3B0AB /* curry.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
F893355A1A4CE83000B88685 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
F8EF75731A4CEC7800BDCC2D /* Comment.swift in Sources */,
F802D4C41A5EE172005E236C /* NSURL.swift in Sources */,
EABDF6901A9CD4EA00B6CC83 /* PListFileReader.swift in Sources */,
F8EF75721A4CEC7800BDCC2D /* User.swift in Sources */,
F8C592831CB726FE007C5ABC /* Booleans.swift in Sources */,
F8EF756B1A4CEC6400BDCC2D /* EmbeddedJSONDecodingTests.swift in Sources */,
EABDF6951A9CD4FC00B6CC83 /* PListDecodingTests.swift in Sources */,
F8EF75751A4CEC7800BDCC2D /* TestModel.swift in Sources */,
F8EF75741A4CEC7800BDCC2D /* Post.swift in Sources */,
EA47BB541AFC5B76002D2CCD /* DecodedTests.swift in Sources */,
F8EF756A1A4CEC6100BDCC2D /* OptionalPropertyDecodingTests.swift in Sources */,
F8EF756C1A4CEC7100BDCC2D /* JSONFileReader.swift in Sources */,
EA6DD69D1AB383FB00CA3A5B /* PerformanceTests.swift in Sources */,
EA1200CC1BAB5CBA006DDBD8 /* RawRepresentableTests.swift in Sources */,
EABDF68B1A9CD46400B6CC83 /* SwiftDictionaryDecodingTests.swift in Sources */,
F862E0AB1A519D470093B028 /* TypeTests.swift in Sources */,
EA395DC81A52FA5300EB607E /* ExampleTests.swift in Sources */,
EADADCB41A5DB7F800B180EC /* EquatableTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
809754CD1BADF34200C409E6 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 809754C01BADF34100C409E6 /* Argo-tvOS */;
targetProxy = 809754CC1BADF34200C409E6 /* PBXContainerItemProxy */;
};
EA395DC11A51FF5200EB607E /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = EAD9FACE19D0EAB50031E006 /* Argo-iOS */;
targetProxy = EA395DC01A51FF5200EB607E /* PBXContainerItemProxy */;
};
F89335611A4CE83000B88685 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = F89335531A4CE83000B88685 /* Argo-Mac */;
targetProxy = F89335601A4CE83000B88685 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
809754D21BADF34200C409E6 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_NO_COMMON_BLOCKS = YES;
GCC_TREAT_WARNINGS_AS_ERRORS = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
INFOPLIST_FILE = "$(SRCROOT)/Argo/Resources/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.thoughtbot.Argo;
PRODUCT_NAME = Argo;
SDKROOT = appletvos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.0;
};
name = Debug;
};
809754D31BADF34200C409E6 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_NO_COMMON_BLOCKS = YES;
GCC_TREAT_WARNINGS_AS_ERRORS = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
INFOPLIST_FILE = "$(SRCROOT)/Argo/Resources/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.thoughtbot.Argo;
PRODUCT_NAME = Argo;
SDKROOT = appletvos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 9.0;
};
name = Release;
};
809754D41BADF34200C409E6 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEBUG_INFORMATION_FORMAT = dwarf;
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
INFOPLIST_FILE = ArgoTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.thoughtbot.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
TVOS_DEPLOYMENT_TARGET = 9.0;
};
name = Debug;
};
809754D51BADF34200C409E6 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
INFOPLIST_FILE = ArgoTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.thoughtbot.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
TVOS_DEPLOYMENT_TARGET = 9.0;
};
name = Release;
};
D0592EBB1B77DD7800EFEF39 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
BITCODE_GENERATION_MODE = marker;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=watchsimulator*]" = "";
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
INFOPLIST_FILE = "$(SRCROOT)/Argo/Resources/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.thoughtbot.$(PRODUCT_NAME)";
PRODUCT_NAME = Argo;
SDKROOT = watchos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = 4;
WATCHOS_DEPLOYMENT_TARGET = 2.0;
};
name = Debug;
};
D0592EBC1B77DD7800EFEF39 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
BITCODE_GENERATION_MODE = bitcode;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=watchsimulator*]" = "";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
INFOPLIST_FILE = "$(SRCROOT)/Argo/Resources/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.thoughtbot.$(PRODUCT_NAME)";
PRODUCT_NAME = Argo;
SDKROOT = watchos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = 4;
WATCHOS_DEPLOYMENT_TARGET = 2.0;
};
name = Release;
};
EAD9FAE019D0EAB60031E006 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
GCC_WARN_MISSING_PARENTHESES = YES;
GCC_WARN_SHADOW = YES;
GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_LABEL = YES;
GCC_WARN_UNUSED_VALUE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
RUN_CLANG_STATIC_ANALYZER = YES;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 2.3;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
EAD9FAE119D0EAB60031E006 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
CURRENT_PROJECT_VERSION = 1;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
GCC_WARN_MISSING_PARENTHESES = YES;
GCC_WARN_SHADOW = YES;
GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_LABEL = YES;
GCC_WARN_UNUSED_VALUE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
RUN_CLANG_STATIC_ANALYZER = YES;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 2.3;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
EAD9FAE319D0EAB60031E006 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
BITCODE_GENERATION_MODE = marker;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphonesimulator*]" = "";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_TREAT_WARNINGS_AS_ERRORS = YES;
INFOPLIST_FILE = "$(SRCROOT)/Argo/Resources/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.thoughtbot.$(PRODUCT_NAME)";
PRODUCT_NAME = Argo;
SKIP_INSTALL = YES;
};
name = Debug;
};
EAD9FAE419D0EAB60031E006 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
BITCODE_GENERATION_MODE = bitcode;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphonesimulator*]" = "";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "$(SRCROOT)/Argo/Resources/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.thoughtbot.$(PRODUCT_NAME)";
PRODUCT_NAME = Argo;
SKIP_INSTALL = YES;
};
name = Release;
};
EAD9FAE619D0EAB60031E006 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_MODULES = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
INFOPLIST_FILE = ArgoTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.thoughtbot.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = ArgoTests;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
EAD9FAE719D0EAB60031E006 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_MODULES = YES;
INFOPLIST_FILE = ArgoTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.thoughtbot.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = ArgoTests;
};
name = Release;
};
F89335681A4CE83000B88685 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
BITCODE_GENERATION_MODE = marker;
COMBINE_HIDPI_IMAGES = YES;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
FRAMEWORK_VERSION = A;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
INFOPLIST_FILE = "$(SRCROOT)/Argo/Resources/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.9;
PRODUCT_BUNDLE_IDENTIFIER = "com.thoughtbot.$(PRODUCT_NAME)";
PRODUCT_NAME = Argo;
SDKROOT = macosx;
SKIP_INSTALL = YES;
};
name = Debug;
};
F89335691A4CE83000B88685 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
BITCODE_GENERATION_MODE = bitcode;
COMBINE_HIDPI_IMAGES = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
FRAMEWORK_VERSION = A;
INFOPLIST_FILE = "$(SRCROOT)/Argo/Resources/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.9;
PRODUCT_BUNDLE_IDENTIFIER = "com.thoughtbot.$(PRODUCT_NAME)";
PRODUCT_NAME = Argo;
SDKROOT = macosx;
SKIP_INSTALL = YES;
};
name = Release;
};
F893356B1A4CE83000B88685 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
INFOPLIST_FILE = ArgoTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.10;
PRODUCT_BUNDLE_IDENTIFIER = "com.thoughtbot.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
};
name = Debug;
};
F893356C1A4CE83000B88685 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
COMBINE_HIDPI_IMAGES = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
INFOPLIST_FILE = ArgoTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.10;
PRODUCT_BUNDLE_IDENTIFIER = "com.thoughtbot.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
809754D61BADF34200C409E6 /* Build configuration list for PBXNativeTarget "Argo-tvOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
809754D21BADF34200C409E6 /* Debug */,
809754D31BADF34200C409E6 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
809754D71BADF34200C409E6 /* Build configuration list for PBXNativeTarget "Argo-tvOSTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
809754D41BADF34200C409E6 /* Debug */,
809754D51BADF34200C409E6 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
D0592EBD1B77DD7800EFEF39 /* Build configuration list for PBXNativeTarget "Argo-watchOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
D0592EBB1B77DD7800EFEF39 /* Debug */,
D0592EBC1B77DD7800EFEF39 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
EAD9FAC919D0EAB50031E006 /* Build configuration list for PBXProject "Argo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
EAD9FAE019D0EAB60031E006 /* Debug */,
EAD9FAE119D0EAB60031E006 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
EAD9FAE219D0EAB60031E006 /* Build configuration list for PBXNativeTarget "Argo-iOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
EAD9FAE319D0EAB60031E006 /* Debug */,
EAD9FAE419D0EAB60031E006 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
EAD9FAE519D0EAB60031E006 /* Build configuration list for PBXNativeTarget "ArgoTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
EAD9FAE619D0EAB60031E006 /* Debug */,
EAD9FAE719D0EAB60031E006 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
F89335671A4CE83000B88685 /* Build configuration list for PBXNativeTarget "Argo-Mac" */ = {
isa = XCConfigurationList;
buildConfigurations = (
F89335681A4CE83000B88685 /* Debug */,
F89335691A4CE83000B88685 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
F893356A1A4CE83000B88685 /* Build configuration list for PBXNativeTarget "Argo-MacTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
F893356B1A4CE83000B88685 /* Debug */,
F893356C1A4CE83000B88685 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = EAD9FAC619D0EAB50031E006 /* Project object */;
}
================================================
FILE: Carthage/Checkouts/Argo/Argo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:Argo.xcodeproj">
</FileRef>
</Workspace>
================================================
FILE: Carthage/Checkouts/Argo/Argo.xcodeproj/xcshareddata/xcschemes/Argo-Mac.xcscheme
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0800"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F89335531A4CE83000B88685"
BuildableName = "Argo.framework"
BlueprintName = "Argo-Mac"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F893355D1A4CE83000B88685"
BuildableName = "Argo-MacTests.xctest"
BlueprintName = "Argo-MacTests"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F89335531A4CE83000B88685"
BuildableName = "Argo.framework"
BlueprintName = "Argo-Mac"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F89335531A4CE83000B88685"
BuildableName = "Argo.framework"
BlueprintName = "Argo-Mac"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F89335531A4CE83000B88685"
BuildableName = "Argo.framework"
BlueprintName = "Argo-Mac"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
================================================
FILE: Carthage/Checkouts/Argo/Argo.xcodeproj/xcshareddata/xcschemes/Argo-iOS.xcscheme
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0800"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "EAD9FACE19D0EAB50031E006"
BuildableName = "Argo.framework"
BlueprintName = "Argo-iOS"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "EAD9FAD919D0EAB60031E006"
BuildableName = "ArgoTests.xctest"
BlueprintName = "ArgoTests"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "EAD9FACE19D0EAB50031E006"
BuildableName = "Argo.framework"
BlueprintName = "Argo-iOS"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "EAD9FACE19D0EAB50031E006"
BuildableName = "Argo.framework"
BlueprintName = "Argo-iOS"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "EAD9FACE19D0EAB50031E006"
BuildableName = "Argo.framework"
BlueprintName = "Argo-iOS"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
================================================
FILE: Carthage/Checkouts/Argo/Argo.xcodeproj/xcshareddata/xcschemes/Argo-tvOS.xcscheme
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0800"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "809754C01BADF34100C409E6"
BuildableName = "Argo.framework"
BlueprintName = "Argo-tvOS"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "809754C91BADF34200C409E6"
BuildableName = "Argo-tvOSTests.xctest"
BlueprintName = "Argo-tvOSTests"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "809754C01BADF34100C409E6"
BuildableName = "Argo.framework"
BlueprintName = "Argo-tvOS"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "809754C01BADF34100C409E6"
BuildableName = "Argo.framework"
BlueprintName = "Argo-tvOS"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "809754C01BADF34100C409E6"
BuildableName = "Argo.framework"
BlueprintName = "Argo-tvOS"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
================================================
FILE: Carthage/Checkouts/Argo/Argo.xcodeproj/xcshareddata/xcschemes/Argo-watchOS.xcscheme
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0800"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D0592EB51B77DD7800EFEF39"
BuildableName = "Argo.framework"
BlueprintName = "Argo-watchOS"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D0592EB51B77DD7800EFEF39"
BuildableName = "Argo.framework"
BlueprintName = "Argo-watchOS"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D0592EB51B77DD7800EFEF39"
BuildableName = "Argo.framework"
BlueprintName = "Argo-watchOS"
ReferencedContainer = "container:Argo.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
================================================
FILE: Carthage/Checkouts/Argo/Argo.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:Argo.xcodeproj">
</FileRef>
<FileRef
location = "group:Carthage/Checkouts/Curry/Curry.xcodeproj">
</FileRef>
<FileRef
location = "group:Argo Playground.playground">
</FileRef>
</Workspace>
================================================
FILE: Carthage/Checkouts/Argo/ArgoTests/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>
================================================
FILE: Carthage/Checkouts/Argo/ArgoTests/JSON/JSONFileReader.swift
================================================
import Foundation
func JSONFromFile(file: String) -> AnyObject? {
return NSBundle(forClass: JSONFileReader.self).pathForResource(file, ofType: "json")
.flatMap { NSData(contentsOfFile: $0) }
.flatMap(JSONObjectWithData)
}
private func JSONObjectWithData(data: NSData) -> AnyObject? {
return try? NSJSONSerialization.JSONObjectWithData(data, options: [])
}
private class JSONFileReader { }
================================================
FILE: Carthage/Checkouts/Argo/ArgoTests/JSON/array_root.json
================================================
[
"foo",
"bar",
"baz"
]
================================================
FILE: Carthage/Checkouts/Argo/ArgoTests/JSON/big_data.json
================================================
[{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 9223372036854775807,
"uint64_string": "18446744073709551614"
},
"bool": false,
"string_array": [
"hello",
"world"
],
"string_array_opt": null,
"embedded": {
"string_array": [
"hello",
"world"
],
"string_array_opt": []
},
"user_opt": {
"id": 6,
"name": "Cooler User"
},
"dict": {
"foo": "bar"
}
},
{
"numerics": {
"int": 5,
"int64": 9007199254740992,
"int64_string": "1076543210012345678",
"double": 3.4,
"float": 1.1,
"int_opt": 4,
"uint": 500,
"uint64": 92
gitextract_y3kpcg6a/
├── .gitignore
├── Cartfile
├── Cartfile.private
├── Cartfile.resolved
├── Carthage/
│ └── Checkouts/
│ ├── Argo/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .gitmodules
│ │ ├── .hound.yml
│ │ ├── Argo/
│ │ │ ├── Extensions/
│ │ │ │ ├── Dictionary.swift
│ │ │ │ ├── NSNumber.swift
│ │ │ │ └── RawRepresentable.swift
│ │ │ ├── Functions/
│ │ │ │ ├── catDecoded.swift
│ │ │ │ ├── curry.swift
│ │ │ │ ├── decode.swift
│ │ │ │ ├── flatReduce.swift
│ │ │ │ └── sequence.swift
│ │ │ ├── Operators/
│ │ │ │ ├── Argo.swift
│ │ │ │ └── Decode.swift
│ │ │ ├── Resources/
│ │ │ │ ├── Argo.h
│ │ │ │ └── Info.plist
│ │ │ └── Types/
│ │ │ ├── Decodable.swift
│ │ │ ├── DecodeError.swift
│ │ │ ├── Decoded/
│ │ │ │ ├── Alternative.swift
│ │ │ │ ├── Applicative.swift
│ │ │ │ ├── Decoded.swift
│ │ │ │ ├── FailureCoalescing.swift
│ │ │ │ ├── Functor.swift
│ │ │ │ └── Monad.swift
│ │ │ ├── JSON.swift
│ │ │ └── StandardTypes.swift
│ │ ├── Argo Playground.playground/
│ │ │ ├── Pages/
│ │ │ │ ├── Basics.xcplaygroundpage/
│ │ │ │ │ ├── Contents.swift
│ │ │ │ │ ├── Resources/
│ │ │ │ │ │ └── user_with_email.json
│ │ │ │ │ └── timeline.xctimeline
│ │ │ │ └── iTunes Example.xcplaygroundpage/
│ │ │ │ ├── Contents.swift
│ │ │ │ ├── Resources/
│ │ │ │ │ └── tropos.json
│ │ │ │ └── timeline.xctimeline
│ │ │ ├── contents.xcplayground
│ │ │ └── playground.xcworkspace/
│ │ │ └── contents.xcworkspacedata
│ │ ├── Argo.podspec
│ │ ├── Argo.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace/
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── xcschemes/
│ │ │ ├── Argo-Mac.xcscheme
│ │ │ ├── Argo-iOS.xcscheme
│ │ │ ├── Argo-tvOS.xcscheme
│ │ │ └── Argo-watchOS.xcscheme
│ │ ├── Argo.xcworkspace/
│ │ │ └── contents.xcworkspacedata
│ │ ├── ArgoTests/
│ │ │ ├── Info.plist
│ │ │ ├── JSON/
│ │ │ │ ├── JSONFileReader.swift
│ │ │ │ ├── array_root.json
│ │ │ │ ├── big_data.json
│ │ │ │ ├── booleans.json
│ │ │ │ ├── comment.json
│ │ │ │ ├── post_bad_comments.json
│ │ │ │ ├── post_comments.json
│ │ │ │ ├── post_no_comments.json
│ │ │ │ ├── root_array.json
│ │ │ │ ├── root_object.json
│ │ │ │ ├── types.json
│ │ │ │ ├── types_fail_embedded.json
│ │ │ │ ├── url.json
│ │ │ │ ├── user_with_bad_type.json
│ │ │ │ ├── user_with_email.json
│ │ │ │ ├── user_with_nested_name.json
│ │ │ │ ├── user_without_email.json
│ │ │ │ └── user_without_key.json
│ │ │ ├── Models/
│ │ │ │ ├── Booleans.swift
│ │ │ │ ├── Comment.swift
│ │ │ │ ├── NSURL.swift
│ │ │ │ ├── Post.swift
│ │ │ │ ├── TestModel.swift
│ │ │ │ └── User.swift
│ │ │ ├── Tests/
│ │ │ │ ├── DecodedTests.swift
│ │ │ │ ├── EmbeddedJSONDecodingTests.swift
│ │ │ │ ├── EquatableTests.swift
│ │ │ │ ├── ExampleTests.swift
│ │ │ │ ├── OptionalPropertyDecodingTests.swift
│ │ │ │ ├── PListDecodingTests.swift
│ │ │ │ ├── PerformanceTests.swift
│ │ │ │ ├── RawRepresentableTests.swift
│ │ │ │ ├── SwiftDictionaryDecodingTests.swift
│ │ │ │ └── TypeTests.swift
│ │ │ └── plists/
│ │ │ ├── PListFileReader.swift
│ │ │ └── types.plist
│ │ ├── CONTRIBUTING.md
│ │ ├── Cartfile.private
│ │ ├── Cartfile.resolved
│ │ ├── Carthage/
│ │ │ └── Checkouts/
│ │ │ └── Curry/
│ │ │ ├── .gitattributes
│ │ │ ├── .gitignore
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── Curry.podspec
│ │ │ ├── Curry.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ ├── project.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── xcschemes/
│ │ │ │ ├── Curry-Mac.xcscheme
│ │ │ │ ├── Curry-iOS.xcscheme
│ │ │ │ ├── Curry-tvOS.xcscheme
│ │ │ │ └── Curry-watchOS.xcscheme
│ │ │ ├── LICENSE
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ ├── Resources/
│ │ │ │ ├── Curry.h
│ │ │ │ └── Info.plist
│ │ │ ├── Source/
│ │ │ │ └── Curry.swift
│ │ │ └── bin/
│ │ │ └── generate
│ │ ├── Documentation/
│ │ │ ├── .gitkeep
│ │ │ ├── Basic-Usage.md
│ │ │ ├── Decode-Enums.md
│ │ │ ├── Decode-Root-Keys.md
│ │ │ ├── Functional-Concepts.md
│ │ │ ├── Ideology.md
│ │ │ ├── README.md
│ │ │ └── Relationships.md
│ │ ├── ISSUE_TEMPLATE.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── bin/
│ │ │ ├── archive
│ │ │ ├── setup
│ │ │ └── test
│ │ └── circle.yml
│ ├── Curry/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── CONTRIBUTING.md
│ │ ├── Curry.podspec
│ │ ├── Curry.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace/
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── xcschemes/
│ │ │ ├── Curry-Mac.xcscheme
│ │ │ ├── Curry-iOS.xcscheme
│ │ │ ├── Curry-tvOS.xcscheme
│ │ │ └── Curry-watchOS.xcscheme
│ │ ├── LICENSE
│ │ ├── Package.swift
│ │ ├── README.md
│ │ ├── Resources/
│ │ │ ├── Curry.h
│ │ │ └── Info.plist
│ │ ├── Source/
│ │ │ └── Curry.swift
│ │ └── bin/
│ │ └── generate
│ ├── DZNEmptyDataSet/
│ │ ├── .gitignore
│ │ ├── DZNEmptyDataSet.podspec
│ │ ├── Examples/
│ │ │ ├── Applications/
│ │ │ │ ├── Applications/
│ │ │ │ │ ├── AppDelegate.h
│ │ │ │ │ ├── AppDelegate.m
│ │ │ │ │ ├── Application.h
│ │ │ │ │ ├── Application.m
│ │ │ │ │ ├── Applications-Info.plist
│ │ │ │ │ ├── Applications-Prefix.pch
│ │ │ │ │ ├── DetailViewController.h
│ │ │ │ │ ├── DetailViewController.m
│ │ │ │ │ ├── Fonts/
│ │ │ │ │ │ └── Ideal Sans/
│ │ │ │ │ │ └── IdealSans-Book-Pro.otf
│ │ │ │ │ ├── Images.xcassets/
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── button_background_foursquare_highlight.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── button_background_foursquare_normal.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── button_background_icloud_highlight.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── button_background_icloud_normal.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── button_background_kickstarter_highlight.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── button_background_kickstarter_normal.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── header_pinterest.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── header_podcasts.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_500px.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_airbnb.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_appstore.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_camera.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_dropbox.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_facebook.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_fancy.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_foursquare.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_icloud.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_instagram.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_itunes_connect.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_kickstarter.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_path.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_photos.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_pinterest.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_podcasts.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_remote.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_safari.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_skype.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_slack.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_tumblr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_twitter.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_vesper.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_videos.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_vine.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_whatsapp.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── icon_wwdc.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── loading_imgBlue_78x78.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_500px.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_airbnb.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_dropbox.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_facebook.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_fancy.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_foursquare.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_instagram.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_kickstarter.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_path.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_pinterest.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_skype.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_slack.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_tumblr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_twitter.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_vesper.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── logo_vine.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_500px.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_airbnb.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_appstore.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_dropbox.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_facebook.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_fancy.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_foursquare.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_instagram.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_itunes_connect.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_kickstarter.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_path.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_remote.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_skype.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_slack.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_tumblr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_vesper.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_videos.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── placeholder_vine.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── placeholder_whatsapp.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── MainViewController.h
│ │ │ │ │ ├── MainViewController.m
│ │ │ │ │ ├── Storyboard.storyboard
│ │ │ │ │ ├── System.xcassets/
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── LaunchImage.launchimage/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── UIColor+Hexadecimal.h
│ │ │ │ │ ├── UIColor+Hexadecimal.m
│ │ │ │ │ ├── applications.json
│ │ │ │ │ ├── en.lproj/
│ │ │ │ │ │ └── InfoPlist.strings
│ │ │ │ │ └── main.m
│ │ │ │ ├── Applications.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ ├── Applications.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ ├── Podfile
│ │ │ │ └── Pods/
│ │ │ │ ├── Local Podspecs/
│ │ │ │ │ └── DZNEmptyDataSet.podspec.json
│ │ │ │ ├── Pods.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── xcschemes/
│ │ │ │ │ └── DZNEmptyDataSet.xcscheme
│ │ │ │ └── Target Support Files/
│ │ │ │ ├── DZNEmptyDataSet/
│ │ │ │ │ ├── DZNEmptyDataSet-Private.xcconfig
│ │ │ │ │ ├── DZNEmptyDataSet-dummy.m
│ │ │ │ │ ├── DZNEmptyDataSet-prefix.pch
│ │ │ │ │ └── DZNEmptyDataSet.xcconfig
│ │ │ │ └── Pods/
│ │ │ │ ├── Pods-acknowledgements.markdown
│ │ │ │ ├── Pods-acknowledgements.plist
│ │ │ │ ├── Pods-dummy.m
│ │ │ │ ├── Pods-resources.sh
│ │ │ │ ├── Pods.debug.xcconfig
│ │ │ │ └── Pods.release.xcconfig
│ │ │ ├── Colors/
│ │ │ │ ├── Colors/
│ │ │ │ │ ├── AppDelegate.h
│ │ │ │ │ ├── AppDelegate.m
│ │ │ │ │ ├── CollectionViewController.h
│ │ │ │ │ ├── CollectionViewController.m
│ │ │ │ │ ├── Colors-Info.plist
│ │ │ │ │ ├── Colors-Prefix.pch
│ │ │ │ │ ├── DataSource/
│ │ │ │ │ │ ├── Color.h
│ │ │ │ │ │ ├── Color.m
│ │ │ │ │ │ ├── Palette.h
│ │ │ │ │ │ ├── Palette.m
│ │ │ │ │ │ ├── UIColor+Hex.h
│ │ │ │ │ │ ├── UIColor+Hex.m
│ │ │ │ │ │ └── colors.json
│ │ │ │ │ ├── Images.xcassets/
│ │ │ │ │ │ ├── empty_placeholder.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── search_icon.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tab_collection.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tab_search.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── tab_table.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── SearchViewController.h
│ │ │ │ │ ├── SearchViewController.m
│ │ │ │ │ ├── Storyboard.storyboard
│ │ │ │ │ ├── System.xcassets/
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── LaunchImage.launchimage/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── TableViewController.h
│ │ │ │ │ ├── TableViewController.m
│ │ │ │ │ ├── en.lproj/
│ │ │ │ │ │ └── InfoPlist.strings
│ │ │ │ │ └── main.m
│ │ │ │ ├── Colors.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ ├── Colors.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ ├── Podfile
│ │ │ │ └── Pods/
│ │ │ │ ├── Local Podspecs/
│ │ │ │ │ └── DZNEmptyDataSet.podspec.json
│ │ │ │ ├── Pods.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── xcschemes/
│ │ │ │ │ └── DZNEmptyDataSet.xcscheme
│ │ │ │ └── Target Support Files/
│ │ │ │ ├── DZNEmptyDataSet/
│ │ │ │ │ ├── DZNEmptyDataSet-Private.xcconfig
│ │ │ │ │ ├── DZNEmptyDataSet-dummy.m
│ │ │ │ │ ├── DZNEmptyDataSet-prefix.pch
│ │ │ │ │ └── DZNEmptyDataSet.xcconfig
│ │ │ │ └── Pods/
│ │ │ │ ├── Pods-acknowledgements.markdown
│ │ │ │ ├── Pods-acknowledgements.plist
│ │ │ │ ├── Pods-dummy.m
│ │ │ │ ├── Pods-resources.sh
│ │ │ │ ├── Pods.debug.xcconfig
│ │ │ │ └── Pods.release.xcconfig
│ │ │ ├── Countries/
│ │ │ │ ├── Countries/
│ │ │ │ │ ├── AppDelegate.h
│ │ │ │ │ ├── AppDelegate.m
│ │ │ │ │ ├── Country.h
│ │ │ │ │ ├── Country.m
│ │ │ │ │ ├── Images.xcassets/
│ │ │ │ │ │ ├── ad.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ae.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── af.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ag.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── al.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── am.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ar.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── at.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── au.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── az.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ba.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bb.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bd.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── be.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bf.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bg.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bh.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bi.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bj.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bo.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── br.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bs.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bt.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bw.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── by.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── bz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ca.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cd.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cf.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cg.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ch.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ci.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cl.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── co.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cu.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cv.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cy.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── cz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── de.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── dj.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── dk.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── dm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── do.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── dz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ec.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ee.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── eg.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── er.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── es.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── et.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── fi.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── fj.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── fm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── fr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ga.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gb.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gd.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ge.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gh.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gq.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gt.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gw.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── gy.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── hn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── hr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ht.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── hu.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── id.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ie.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── il.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── in.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── iq.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ir.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── is.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── it.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── jm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── jo.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── jp.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ke.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── kg.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── kh.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ki.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── km.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── kn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── kp.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── kr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── kv.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── kw.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── kz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── la.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── lb.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── lc.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── li.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── lk.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── lr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ls.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── lt.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── lu.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── lv.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ly.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ma.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mc.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── md.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── me.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mg.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mh.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mk.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ml.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mt.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mu.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mv.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mw.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mx.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── my.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── mz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── na.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ne.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ng.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ni.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── nl.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── no.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── np.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── nr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── nz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── om.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── pa.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── pe.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── pg.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ph.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── pk.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── pl.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── pt.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── pw.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── py.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── qa.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ro.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── rs.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ru.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── rw.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sa.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sb.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sc.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sd.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── se.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── search_icon.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sg.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── si.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sk.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sl.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── so.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ss.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── st.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sv.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sy.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── sz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── td.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tg.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── th.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tj.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tl.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── to.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tr.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tt.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tv.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tw.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── tz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ua.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ug.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── unknown.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── us.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── uy.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── uz.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── va.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── vc.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ve.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── vn.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── vu.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ws.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── ye.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── za.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── zm.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── zw.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── MainViewController.h
│ │ │ │ │ ├── MainViewController.m
│ │ │ │ │ ├── Model.xcdatamodeld/
│ │ │ │ │ │ └── Model.xcdatamodel/
│ │ │ │ │ │ └── contents
│ │ │ │ │ ├── Supporting Files/
│ │ │ │ │ │ ├── Countries-Info.plist
│ │ │ │ │ │ ├── Countries-Prefix.pch
│ │ │ │ │ │ └── main.m
│ │ │ │ │ ├── System.xcassets/
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── LaunchImage.launchimage/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── countries.json
│ │ │ │ │ └── en.lproj/
│ │ │ │ │ └── InfoPlist.strings
│ │ │ │ ├── Countries.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ ├── Countries.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ ├── Podfile
│ │ │ │ └── Pods/
│ │ │ │ ├── Local Podspecs/
│ │ │ │ │ └── DZNEmptyDataSet.podspec.json
│ │ │ │ ├── NSManagedObjectContext-Hydrate/
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ ├── README.md
│ │ │ │ │ └── Source/
│ │ │ │ │ ├── NSManagedObjectContext+Hydrate.h
│ │ │ │ │ └── NSManagedObjectContext+Hydrate.m
│ │ │ │ ├── Pods.xcodeproj/
│ │ │ │ │ └── project.pbxproj
│ │ │ │ └── Target Support Files/
│ │ │ │ ├── DZNEmptyDataSet/
│ │ │ │ │ ├── DZNEmptyDataSet-Private.xcconfig
│ │ │ │ │ ├── DZNEmptyDataSet-dummy.m
│ │ │ │ │ ├── DZNEmptyDataSet-prefix.pch
│ │ │ │ │ └── DZNEmptyDataSet.xcconfig
│ │ │ │ ├── NSManagedObjectContext-Hydrate/
│ │ │ │ │ ├── NSManagedObjectContext-Hydrate-Private.xcconfig
│ │ │ │ │ ├── NSManagedObjectContext-Hydrate-dummy.m
│ │ │ │ │ ├── NSManagedObjectContext-Hydrate-prefix.pch
│ │ │ │ │ └── NSManagedObjectContext-Hydrate.xcconfig
│ │ │ │ └── Pods/
│ │ │ │ ├── Pods-acknowledgements.markdown
│ │ │ │ ├── Pods-acknowledgements.plist
│ │ │ │ ├── Pods-dummy.m
│ │ │ │ ├── Pods-resources.sh
│ │ │ │ ├── Pods.debug.xcconfig
│ │ │ │ └── Pods.release.xcconfig
│ │ │ └── WebBrowser/
│ │ │ ├── Podfile
│ │ │ ├── Pods/
│ │ │ │ ├── DZNWebViewController/
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ ├── README.md
│ │ │ │ │ └── Source/
│ │ │ │ │ ├── Classes/
│ │ │ │ │ │ ├── DZNPolyActivity.h
│ │ │ │ │ │ ├── DZNPolyActivity.m
│ │ │ │ │ │ ├── DZNWebViewController.h
│ │ │ │ │ │ └── DZNWebViewController.m
│ │ │ │ │ └── Scripts/
│ │ │ │ │ └── inpector-script.js
│ │ │ │ ├── Local Podspecs/
│ │ │ │ │ └── DZNEmptyDataSet.podspec.json
│ │ │ │ ├── NJKWebViewProgress/
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ ├── NJKWebViewProgress/
│ │ │ │ │ │ ├── NJKWebViewProgress.h
│ │ │ │ │ │ ├── NJKWebViewProgress.m
│ │ │ │ │ │ ├── NJKWebViewProgressView.h
│ │ │ │ │ │ └── NJKWebViewProgressView.m
│ │ │ │ │ └── README.md
│ │ │ │ ├── Pods.xcodeproj/
│ │ │ │ │ └── project.pbxproj
│ │ │ │ └── Target Support Files/
│ │ │ │ ├── DZNEmptyDataSet/
│ │ │ │ │ ├── DZNEmptyDataSet-Private.xcconfig
│ │ │ │ │ ├── DZNEmptyDataSet-dummy.m
│ │ │ │ │ ├── DZNEmptyDataSet-prefix.pch
│ │ │ │ │ └── DZNEmptyDataSet.xcconfig
│ │ │ │ ├── DZNWebViewController/
│ │ │ │ │ ├── DZNWebViewController-Private.xcconfig
│ │ │ │ │ ├── DZNWebViewController-dummy.m
│ │ │ │ │ ├── DZNWebViewController-prefix.pch
│ │ │ │ │ └── DZNWebViewController.xcconfig
│ │ │ │ ├── NJKWebViewProgress/
│ │ │ │ │ ├── NJKWebViewProgress-Private.xcconfig
│ │ │ │ │ ├── NJKWebViewProgress-dummy.m
│ │ │ │ │ ├── NJKWebViewProgress-prefix.pch
│ │ │ │ │ └── NJKWebViewProgress.xcconfig
│ │ │ │ └── Pods/
│ │ │ │ ├── Pods-acknowledgements.markdown
│ │ │ │ ├── Pods-acknowledgements.plist
│ │ │ │ ├── Pods-dummy.m
│ │ │ │ ├── Pods-resources.sh
│ │ │ │ ├── Pods.debug.xcconfig
│ │ │ │ └── Pods.release.xcconfig
│ │ │ ├── WebBrowser/
│ │ │ │ ├── AppDelegate.h
│ │ │ │ ├── AppDelegate.m
│ │ │ │ ├── Images.xcassets/
│ │ │ │ │ └── AppIcon.appiconset/
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Info.plist
│ │ │ │ ├── Launch Screen.xib
│ │ │ │ ├── ViewController.h
│ │ │ │ ├── ViewController.m
│ │ │ │ ├── WebViewController.h
│ │ │ │ ├── WebViewController.m
│ │ │ │ └── main.m
│ │ │ ├── WebBrowser.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── WebBrowser.xcworkspace/
│ │ │ └── contents.xcworkspacedata
│ │ ├── Framework/
│ │ │ ├── DZNEmptyDataSet/
│ │ │ │ ├── DZNEmptyDataSet.h
│ │ │ │ └── Info.plist
│ │ │ └── DZNEmptyDataSet.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace/
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── xcschemes/
│ │ │ └── DZNEmptyDataSet.xcscheme
│ │ ├── LICENSE
│ │ ├── README.md
│ │ └── Source/
│ │ ├── UIScrollView+EmptyDataSet.h
│ │ └── UIScrollView+EmptyDataSet.m
│ ├── Nimble/
│ │ ├── .gitignore
│ │ ├── .ruby-version
│ │ ├── .swift-version
│ │ ├── .travis.yml
│ │ ├── CONTRIBUTING.md
│ │ ├── Gemfile
│ │ ├── LICENSE.md
│ │ ├── Nimble.podspec
│ │ ├── Nimble.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace/
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── xcschemes/
│ │ │ ├── Nimble-OSX.xcscheme
│ │ │ ├── Nimble-iOS.xcscheme
│ │ │ └── Nimble-tvOS.xcscheme
│ │ ├── Package.swift
│ │ ├── README.md
│ │ ├── Sources/
│ │ │ └── Nimble/
│ │ │ ├── Adapters/
│ │ │ │ ├── AdapterProtocols.swift
│ │ │ │ ├── AssertionDispatcher.swift
│ │ │ │ ├── AssertionRecorder.swift
│ │ │ │ ├── NimbleEnvironment.swift
│ │ │ │ ├── NimbleXCTestHandler.swift
│ │ │ │ ├── NonObjectiveC/
│ │ │ │ │ └── ExceptionCapture.swift
│ │ │ │ └── ObjectiveC/
│ │ │ │ ├── CurrentTestCaseTracker.h
│ │ │ │ ├── DSL.h
│ │ │ │ ├── DSL.m
│ │ │ │ ├── NMBExceptionCapture.h
│ │ │ │ ├── NMBExceptionCapture.m
│ │ │ │ ├── NMBExpectation.swift
│ │ │ │ ├── NMBObjCMatcher.swift
│ │ │ │ ├── NMBStringify.h
│ │ │ │ ├── NMBStringify.m
│ │ │ │ └── XCTestObservationCenter+Register.m
│ │ │ ├── DSL+Wait.swift
│ │ │ ├── DSL.swift
│ │ │ ├── Expectation.swift
│ │ │ ├── Expression.swift
│ │ │ ├── FailureMessage.swift
│ │ │ ├── Info.plist
│ │ │ ├── Matchers/
│ │ │ │ ├── AllPass.swift
│ │ │ │ ├── AsyncMatcherWrapper.swift
│ │ │ │ ├── BeAKindOf.swift
│ │ │ │ ├── BeAnInstanceOf.swift
│ │ │ │ ├── BeCloseTo.swift
│ │ │ │ ├── BeEmpty.swift
│ │ │ │ ├── BeGreaterThan.swift
│ │ │ │ ├── BeGreaterThanOrEqualTo.swift
│ │ │ │ ├── BeIdenticalTo.swift
│ │ │ │ ├── BeLessThan.swift
│ │ │ │ ├── BeLessThanOrEqual.swift
│ │ │ │ ├── BeLogical.swift
│ │ │ │ ├── BeNil.swift
│ │ │ │ ├── BeVoid.swift
│ │ │ │ ├── BeginWith.swift
│ │ │ │ ├── Contain.swift
│ │ │ │ ├── EndWith.swift
│ │ │ │ ├── Equal.swift
│ │ │ │ ├── HaveCount.swift
│ │ │ │ ├── Match.swift
│ │ │ │ ├── MatchError.swift
│ │ │ │ ├── MatcherFunc.swift
│ │ │ │ ├── MatcherProtocols.swift
│ │ │ │ ├── PostNotification.swift
│ │ │ │ ├── RaisesException.swift
│ │ │ │ ├── SatisfyAnyOf.swift
│ │ │ │ └── ThrowError.swift
│ │ │ ├── Nimble.h
│ │ │ └── Utils/
│ │ │ ├── Async.swift
│ │ │ ├── Errors.swift
│ │ │ ├── Functional.swift
│ │ │ ├── SourceLocation.swift
│ │ │ └── Stringers.swift
│ │ ├── Tests/
│ │ │ ├── LinuxMain.swift
│ │ │ └── Nimble/
│ │ │ ├── AsynchronousTest.swift
│ │ │ ├── Helpers/
│ │ │ │ ├── ObjectWithLazyProperty.swift
│ │ │ │ ├── XCTestCaseProvider.swift
│ │ │ │ └── utils.swift
│ │ │ ├── Info.plist
│ │ │ ├── Matchers/
│ │ │ │ ├── AllPassTest.swift
│ │ │ │ ├── BeAKindOfTest.swift
│ │ │ │ ├── BeAnInstanceOfTest.swift
│ │ │ │ ├── BeCloseToTest.swift
│ │ │ │ ├── BeEmptyTest.swift
│ │ │ │ ├── BeGreaterThanOrEqualToTest.swift
│ │ │ │ ├── BeGreaterThanTest.swift
│ │ │ │ ├── BeIdenticalToObjectTest.swift
│ │ │ │ ├── BeIdenticalToTest.swift
│ │ │ │ ├── BeLessThanOrEqualToTest.swift
│ │ │ │ ├── BeLessThanTest.swift
│ │ │ │ ├── BeLogicalTest.swift
│ │ │ │ ├── BeNilTest.swift
│ │ │ │ ├── BeVoidTest.swift
│ │ │ │ ├── BeginWithTest.swift
│ │ │ │ ├── ContainTest.swift
│ │ │ │ ├── EndWithTest.swift
│ │ │ │ ├── EqualTest.swift
│ │ │ │ ├── HaveCountTest.swift
│ │ │ │ ├── MatchErrorTest.swift
│ │ │ │ ├── MatchTest.swift
│ │ │ │ ├── PostNotificationTest.swift
│ │ │ │ ├── RaisesExceptionTest.swift
│ │ │ │ ├── SatisfyAnyOfTest.swift
│ │ │ │ └── ThrowErrorTest.swift
│ │ │ ├── SynchronousTests.swift
│ │ │ ├── UserDescriptionTest.swift
│ │ │ └── objc/
│ │ │ ├── NimbleSpecHelper.h
│ │ │ ├── ObjCAllPassTest.m
│ │ │ ├── ObjCAsyncTest.m
│ │ │ ├── ObjCBeAnInstanceOfTest.m
│ │ │ ├── ObjCBeCloseToTest.m
│ │ │ ├── ObjCBeEmptyTest.m
│ │ │ ├── ObjCBeFalseTest.m
│ │ │ ├── ObjCBeFalsyTest.m
│ │ │ ├── ObjCBeGreaterThanOrEqualToTest.m
│ │ │ ├── ObjCBeGreaterThanTest.m
│ │ │ ├── ObjCBeIdenticalToTest.m
│ │ │ ├── ObjCBeKindOfTest.m
│ │ │ ├── ObjCBeLessThanOrEqualToTest.m
│ │ │ ├── ObjCBeLessThanTest.m
│ │ │ ├── ObjCBeNilTest.m
│ │ │ ├── ObjCBeTrueTest.m
│ │ │ ├── ObjCBeTruthyTest.m
│ │ │ ├── ObjCBeginWithTest.m
│ │ │ ├── ObjCContainTest.m
│ │ │ ├── ObjCEndWithTest.m
│ │ │ ├── ObjCEqualTest.m
│ │ │ ├── ObjCHaveCount.m
│ │ │ ├── ObjCMatchTest.m
│ │ │ ├── ObjCRaiseExceptionTest.m
│ │ │ ├── ObjCSatisfyAnyOfTest.m
│ │ │ ├── ObjCSyncTest.m
│ │ │ ├── ObjCUserDescriptionTest.m
│ │ │ └── ObjcStringersTest.m
│ │ ├── circle.yml
│ │ ├── script/
│ │ │ └── release
│ │ └── test
│ ├── Quick/
│ │ ├── .gitignore
│ │ ├── .gitmodules
│ │ ├── .ruby-version
│ │ ├── .swift-version
│ │ ├── .travis.yml
│ │ ├── CONTRIBUTING.md
│ │ ├── Documentation/
│ │ │ ├── en-us/
│ │ │ │ ├── ArrangeActAssert.md
│ │ │ │ ├── BehavioralTesting.md
│ │ │ │ ├── ConfiguringQuick.md
│ │ │ │ ├── InstallingFileTemplates.md
│ │ │ │ ├── InstallingQuick.md
│ │ │ │ ├── MoreResources.md
│ │ │ │ ├── NimbleAssertions.md
│ │ │ │ ├── QuickExamplesAndGroups.md
│ │ │ │ ├── QuickInObjectiveC.md
│ │ │ │ ├── README.md
│ │ │ │ ├── SettingUpYourXcodeProject.md
│ │ │ │ ├── SharedExamples.md
│ │ │ │ └── TestingApps.md
│ │ │ ├── ja/
│ │ │ │ ├── ArrangeActAssert.md
│ │ │ │ ├── BehavioralTesting.md
│ │ │ │ ├── ConfiguringQuick.md
│ │ │ │ ├── InstallingFileTemplates.md
│ │ │ │ ├── InstallingQuick.md
│ │ │ │ ├── MoreResources.md
│ │ │ │ ├── NimbleAssertions.md
│ │ │ │ ├── QuickExamplesAndGroups.md
│ │ │ │ ├── QuickInObjectiveC.md
│ │ │ │ ├── README.md
│ │ │ │ ├── SettingUpYourXcodeProject.md
│ │ │ │ ├── SharedExamples.md
│ │ │ │ └── TestingApps.md
│ │ │ └── zh-cn/
│ │ │ └── SettingUpYourXcodeProject.md
│ │ ├── Externals/
│ │ │ └── Nimble/
│ │ │ ├── .gitignore
│ │ │ ├── .ruby-version
│ │ │ ├── .swift-version
│ │ │ ├── .travis.yml
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── Gemfile
│ │ │ ├── LICENSE.md
│ │ │ ├── Nimble.podspec
│ │ │ ├── Nimble.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ ├── project.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── xcschemes/
│ │ │ │ ├── Nimble-OSX.xcscheme
│ │ │ │ ├── Nimble-iOS.xcscheme
│ │ │ │ └── Nimble-tvOS.xcscheme
│ │ │ ├── Package.swift
│ │ │ ├── README.md
│ │ │ ├── Sources/
│ │ │ │ └── Nimble/
│ │ │ │ ├── Adapters/
│ │ │ │ │ ├── AdapterProtocols.swift
│ │ │ │ │ ├── AssertionDispatcher.swift
│ │ │ │ │ ├── AssertionRecorder.swift
│ │ │ │ │ ├── NimbleEnvironment.swift
│ │ │ │ │ ├── NimbleXCTestHandler.swift
│ │ │ │ │ ├── NonObjectiveC/
│ │ │ │ │ │ └── ExceptionCapture.swift
│ │ │ │ │ └── ObjectiveC/
│ │ │ │ │ ├── CurrentTestCaseTracker.h
│ │ │ │ │ ├── DSL.h
│ │ │ │ │ ├── DSL.m
│ │ │ │ │ ├── NMBExceptionCapture.h
│ │ │ │ │ ├── NMBExceptionCapture.m
│ │ │ │ │ ├── NMBExpectation.swift
│ │ │ │ │ ├── NMBObjCMatcher.swift
│ │ │ │ │ ├── NMBStringify.h
│ │ │ │ │ ├── NMBStringify.m
│ │ │ │ │ └── XCTestObservationCenter+Register.m
│ │ │ │ ├── DSL+Wait.swift
│ │ │ │ ├── DSL.swift
│ │ │ │ ├── Expectation.swift
│ │ │ │ ├── Expression.swift
│ │ │ │ ├── FailureMessage.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── Matchers/
│ │ │ │ │ ├── AllPass.swift
│ │ │ │ │ ├── AsyncMatcherWrapper.swift
│ │ │ │ │ ├── BeAKindOf.swift
│ │ │ │ │ ├── BeAnInstanceOf.swift
│ │ │ │ │ ├── BeCloseTo.swift
│ │ │ │ │ ├── BeEmpty.swift
│ │ │ │ │ ├── BeGreaterThan.swift
│ │ │ │ │ ├── BeGreaterThanOrEqualTo.swift
│ │ │ │ │ ├── BeIdenticalTo.swift
│ │ │ │ │ ├── BeLessThan.swift
│ │ │ │ │ ├── BeLessThanOrEqual.swift
│ │ │ │ │ ├── BeLogical.swift
│ │ │ │ │ ├── BeNil.swift
│ │ │ │ │ ├── BeVoid.swift
│ │ │ │ │ ├── BeginWith.swift
│ │ │ │ │ ├── Contain.swift
│ │ │ │ │ ├── EndWith.swift
│ │ │ │ │ ├── Equal.swift
│ │ │ │ │ ├── HaveCount.swift
│ │ │ │ │ ├── Match.swift
│ │ │ │ │ ├── MatchError.swift
│ │ │ │ │ ├── MatcherFunc.swift
│ │ │ │ │ ├── MatcherProtocols.swift
│ │ │ │ │ ├── PostNotification.swift
│ │ │ │ │ ├── RaisesException.swift
│ │ │ │ │ ├── SatisfyAnyOf.swift
│ │ │ │ │ └── ThrowError.swift
│ │ │ │ ├── Nimble.h
│ │ │ │ └── Utils/
│ │ │ │ ├── Async.swift
│ │ │ │ ├── Errors.swift
│ │ │ │ ├── Functional.swift
│ │ │ │ ├── SourceLocation.swift
│ │ │ │ └── Stringers.swift
│ │ │ ├── Tests/
│ │ │ │ ├── LinuxMain.swift
│ │ │ │ └── Nimble/
│ │ │ │ ├── AsynchronousTest.swift
│ │ │ │ ├── Helpers/
│ │ │ │ │ ├── ObjectWithLazyProperty.swift
│ │ │ │ │ ├── XCTestCaseProvider.swift
│ │ │ │ │ └── utils.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── Matchers/
│ │ │ │ │ ├── AllPassTest.swift
│ │ │ │ │ ├── BeAKindOfTest.swift
│ │ │ │ │ ├── BeAnInstanceOfTest.swift
│ │ │ │ │ ├── BeCloseToTest.swift
│ │ │ │ │ ├── BeEmptyTest.swift
│ │ │ │ │ ├── BeGreaterThanOrEqualToTest.swift
│ │ │ │ │ ├── BeGreaterThanTest.swift
│ │ │ │ │ ├── BeIdenticalToObjectTest.swift
│ │ │ │ │ ├── BeIdenticalToTest.swift
│ │ │ │ │ ├── BeLessThanOrEqualToTest.swift
│ │ │ │ │ ├── BeLessThanTest.swift
│ │ │ │ │ ├── BeLogicalTest.swift
│ │ │ │ │ ├── BeNilTest.swift
│ │ │ │ │ ├── BeVoidTest.swift
│ │ │ │ │ ├── BeginWithTest.swift
│ │ │ │ │ ├── ContainTest.swift
│ │ │ │ │ ├── EndWithTest.swift
│ │ │ │ │ ├── EqualTest.swift
│ │ │ │ │ ├── HaveCountTest.swift
│ │ │ │ │ ├── MatchErrorTest.swift
│ │ │ │ │ ├── MatchTest.swift
│ │ │ │ │ ├── PostNotificationTest.swift
│ │ │ │ │ ├── RaisesExceptionTest.swift
│ │ │ │ │ ├── SatisfyAnyOfTest.swift
│ │ │ │ │ └── ThrowErrorTest.swift
│ │ │ │ ├── SynchronousTests.swift
│ │ │ │ ├── UserDescriptionTest.swift
│ │ │ │ └── objc/
│ │ │ │ ├── NimbleSpecHelper.h
│ │ │ │ ├── ObjCAllPassTest.m
│ │ │ │ ├── ObjCAsyncTest.m
│ │ │ │ ├── ObjCBeAnInstanceOfTest.m
│ │ │ │ ├── ObjCBeCloseToTest.m
│ │ │ │ ├── ObjCBeEmptyTest.m
│ │ │ │ ├── ObjCBeFalseTest.m
│ │ │ │ ├── ObjCBeFalsyTest.m
│ │ │ │ ├── ObjCBeGreaterThanOrEqualToTest.m
│ │ │ │ ├── ObjCBeGreaterThanTest.m
│ │ │ │ ├── ObjCBeIdenticalToTest.m
│ │ │ │ ├── ObjCBeKindOfTest.m
│ │ │ │ ├── ObjCBeLessThanOrEqualToTest.m
│ │ │ │ ├── ObjCBeLessThanTest.m
│ │ │ │ ├── ObjCBeNilTest.m
│ │ │ │ ├── ObjCBeTrueTest.m
│ │ │ │ ├── ObjCBeTruthyTest.m
│ │ │ │ ├── ObjCBeginWithTest.m
│ │ │ │ ├── ObjCContainTest.m
│ │ │ │ ├── ObjCEndWithTest.m
│ │ │ │ ├── ObjCEqualTest.m
│ │ │ │ ├── ObjCHaveCount.m
│ │ │ │ ├── ObjCMatchTest.m
│ │ │ │ ├── ObjCRaiseExceptionTest.m
│ │ │ │ ├── ObjCSatisfyAnyOfTest.m
│ │ │ │ ├── ObjCSyncTest.m
│ │ │ │ ├── ObjCUserDescriptionTest.m
│ │ │ │ └── ObjcStringersTest.m
│ │ │ ├── circle.yml
│ │ │ ├── script/
│ │ │ │ └── release
│ │ │ └── test
│ │ ├── Gemfile
│ │ ├── LICENSE
│ │ ├── Package.swift
│ │ ├── Quick Templates/
│ │ │ ├── Quick Configuration Class.xctemplate/
│ │ │ │ ├── Objective-C/
│ │ │ │ │ ├── ___FILEBASENAME___.h
│ │ │ │ │ └── ___FILEBASENAME___.m
│ │ │ │ ├── Swift/
│ │ │ │ │ └── ___FILEBASENAME___.swift
│ │ │ │ ├── TemplateIcon.icns
│ │ │ │ └── TemplateInfo.plist
│ │ │ └── Quick Spec Class.xctemplate/
│ │ │ ├── Objective-C/
│ │ │ │ └── ___FILEBASENAME___.m
│ │ │ ├── Swift/
│ │ │ │ └── ___FILEBASENAME___.swift
│ │ │ ├── TemplateIcon.icns
│ │ │ └── TemplateInfo.plist
│ │ ├── Quick.podspec
│ │ ├── Quick.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace/
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── xcschemes/
│ │ │ ├── Quick-OSX.xcscheme
│ │ │ ├── Quick-iOS.xcscheme
│ │ │ └── Quick-tvOS.xcscheme
│ │ ├── Quick.xcworkspace/
│ │ │ └── contents.xcworkspacedata
│ │ ├── README.md
│ │ ├── Rakefile
│ │ ├── Sources/
│ │ │ ├── Quick/
│ │ │ │ ├── Callsite.swift
│ │ │ │ ├── Configuration/
│ │ │ │ │ ├── Configuration.swift
│ │ │ │ │ ├── QuickConfiguration.h
│ │ │ │ │ ├── QuickConfiguration.m
│ │ │ │ │ └── QuickConfiguration.swift
│ │ │ │ ├── DSL/
│ │ │ │ │ ├── DSL.swift
│ │ │ │ │ ├── QCKDSL.h
│ │ │ │ │ ├── QCKDSL.m
│ │ │ │ │ ├── World+DSL.h
│ │ │ │ │ └── World+DSL.swift
│ │ │ │ ├── ErrorUtility.swift
│ │ │ │ ├── Example.swift
│ │ │ │ ├── ExampleGroup.swift
│ │ │ │ ├── ExampleMetadata.swift
│ │ │ │ ├── Filter.swift
│ │ │ │ ├── Hooks/
│ │ │ │ │ ├── Closures.swift
│ │ │ │ │ ├── ExampleHooks.swift
│ │ │ │ │ ├── HooksPhase.swift
│ │ │ │ │ └── SuiteHooks.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── NSBundle+CurrentTestBundle.swift
│ │ │ │ ├── NSString+QCKSelectorName.h
│ │ │ │ ├── NSString+QCKSelectorName.m
│ │ │ │ ├── Quick.h
│ │ │ │ ├── QuickMain.swift
│ │ │ │ ├── QuickSelectedTestSuiteBuilder.swift
│ │ │ │ ├── QuickSpec.h
│ │ │ │ ├── QuickSpec.m
│ │ │ │ ├── QuickSpec.swift
│ │ │ │ ├── QuickTestSuite.swift
│ │ │ │ ├── String+FileName.swift
│ │ │ │ ├── World.h
│ │ │ │ ├── World.swift
│ │ │ │ └── XCTestSuite+QuickTestSuiteBuilder.m
│ │ │ ├── QuickFocusedTests/
│ │ │ │ ├── FocusedTests+ObjC.m
│ │ │ │ ├── FocusedTests.swift
│ │ │ │ ├── Info.plist
│ │ │ │ └── main.swift
│ │ │ ├── QuickTestHelpers/
│ │ │ │ ├── SpecRunner.swift
│ │ │ │ └── TestRun.swift
│ │ │ └── QuickTests/
│ │ │ ├── Fixtures/
│ │ │ │ └── FunctionalTests_SharedExamplesTests_SharedExamples.swift
│ │ │ ├── FunctionalTests/
│ │ │ │ ├── AfterEachTests+ObjC.m
│ │ │ │ ├── AfterEachTests.swift
│ │ │ │ ├── AfterSuiteTests+ObjC.m
│ │ │ │ ├── AfterSuiteTests.swift
│ │ │ │ ├── BeforeEachTests+ObjC.m
│ │ │ │ ├── BeforeEachTests.swift
│ │ │ │ ├── BeforeSuiteTests+ObjC.m
│ │ │ │ ├── BeforeSuiteTests.swift
│ │ │ │ ├── Configuration/
│ │ │ │ │ ├── AfterEach/
│ │ │ │ │ │ ├── Configuration+AfterEach.swift
│ │ │ │ │ │ └── Configuration+AfterEachTests.swift
│ │ │ │ │ └── BeforeEach/
│ │ │ │ │ ├── Configuration+BeforeEach.swift
│ │ │ │ │ └── Configuration+BeforeEachTests.swift
│ │ │ │ ├── ContextTests.swift
│ │ │ │ ├── CrossReferencingSpecs.swift
│ │ │ │ ├── DescribeTests.swift
│ │ │ │ ├── FailureTests+ObjC.m
│ │ │ │ ├── FailureUsingXCTAssertTests+ObjC.m
│ │ │ │ ├── ItTests+ObjC.m
│ │ │ │ ├── ItTests.swift
│ │ │ │ ├── PendingTests+ObjC.m
│ │ │ │ ├── PendingTests.swift
│ │ │ │ ├── SharedExamples+BeforeEachTests+ObjC.m
│ │ │ │ ├── SharedExamples+BeforeEachTests.swift
│ │ │ │ ├── SharedExamplesTests+ObjC.m
│ │ │ │ └── SharedExamplesTests.swift
│ │ │ ├── Helpers/
│ │ │ │ ├── QCKSpecRunner.h
│ │ │ │ ├── QCKSpecRunner.m
│ │ │ │ ├── QuickSpec+QuickSpec_MethodList.h
│ │ │ │ ├── QuickSpec+QuickSpec_MethodList.m
│ │ │ │ ├── QuickTestsBridgingHeader.h
│ │ │ │ ├── XCTestCaseProvider.swift
│ │ │ │ ├── XCTestObservationCenter+QCKSuspendObservation.h
│ │ │ │ └── XCTestObservationCenter+QCKSuspendObservation.m
│ │ │ ├── Info.plist
│ │ │ ├── QuickConfigurationTests.m
│ │ │ └── main.swift
│ │ ├── circle.yml
│ │ └── script/
│ │ ├── release
│ │ ├── travis-install-linux
│ │ ├── travis-install-osx
│ │ ├── travis-script-linux
│ │ └── travis-script-osx
│ ├── ReactiveCocoa/
│ │ ├── .gitignore
│ │ ├── .gitmodules
│ │ ├── .travis.yml
│ │ ├── CHANGELOG.md
│ │ ├── CONTRIBUTING.md
│ │ ├── Cartfile
│ │ ├── Cartfile.private
│ │ ├── Cartfile.resolved
│ │ ├── Carthage/
│ │ │ └── Checkouts/
│ │ │ ├── Nimble/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── .ruby-version
│ │ │ │ ├── .swift-version
│ │ │ │ ├── .travis.yml
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── Gemfile
│ │ │ │ ├── LICENSE.md
│ │ │ │ ├── Nimble.podspec
│ │ │ │ ├── Nimble.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── xcschemes/
│ │ │ │ │ ├── Nimble-OSX.xcscheme
│ │ │ │ │ ├── Nimble-iOS.xcscheme
│ │ │ │ │ └── Nimble-tvOS.xcscheme
│ │ │ │ ├── Package.swift
│ │ │ │ ├── README.md
│ │ │ │ ├── Sources/
│ │ │ │ │ └── Nimble/
│ │ │ │ │ ├── Adapters/
│ │ │ │ │ │ ├── AdapterProtocols.swift
│ │ │ │ │ │ ├── AssertionDispatcher.swift
│ │ │ │ │ │ ├── AssertionRecorder.swift
│ │ │ │ │ │ ├── NimbleEnvironment.swift
│ │ │ │ │ │ ├── NimbleXCTestHandler.swift
│ │ │ │ │ │ ├── NonObjectiveC/
│ │ │ │ │ │ │ └── ExceptionCapture.swift
│ │ │ │ │ │ └── ObjectiveC/
│ │ │ │ │ │ ├── CurrentTestCaseTracker.h
│ │ │ │ │ │ ├── DSL.h
│ │ │ │ │ │ ├── DSL.m
│ │ │ │ │ │ ├── NMBExceptionCapture.h
│ │ │ │ │ │ ├── NMBExceptionCapture.m
│ │ │ │ │ │ ├── NMBExpectation.swift
│ │ │ │ │ │ ├── NMBObjCMatcher.swift
│ │ │ │ │ │ ├── NMBStringify.h
│ │ │ │ │ │ ├── NMBStringify.m
│ │ │ │ │ │ └── XCTestObservationCenter+Register.m
│ │ │ │ │ ├── DSL+Wait.swift
│ │ │ │ │ ├── DSL.swift
│ │ │ │ │ ├── Expectation.swift
│ │ │ │ │ ├── Expression.swift
│ │ │ │ │ ├── FailureMessage.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── Matchers/
│ │ │ │ │ │ ├── AllPass.swift
│ │ │ │ │ │ ├── AsyncMatcherWrapper.swift
│ │ │ │ │ │ ├── BeAKindOf.swift
│ │ │ │ │ │ ├── BeAnInstanceOf.swift
│ │ │ │ │ │ ├── BeCloseTo.swift
│ │ │ │ │ │ ├── BeEmpty.swift
│ │ │ │ │ │ ├── BeGreaterThan.swift
│ │ │ │ │ │ ├── BeGreaterThanOrEqualTo.swift
│ │ │ │ │ │ ├── BeIdenticalTo.swift
│ │ │ │ │ │ ├── BeLessThan.swift
│ │ │ │ │ │ ├── BeLessThanOrEqual.swift
│ │ │ │ │ │ ├── BeLogical.swift
│ │ │ │ │ │ ├── BeNil.swift
│ │ │ │ │ │ ├── BeVoid.swift
│ │ │ │ │ │ ├── BeginWith.swift
│ │ │ │ │ │ ├── Contain.swift
│ │ │ │ │ │ ├── EndWith.swift
│ │ │ │ │ │ ├── Equal.swift
│ │ │ │ │ │ ├── HaveCount.swift
│ │ │ │ │ │ ├── Match.swift
│ │ │ │ │ │ ├── MatchError.swift
│ │ │ │ │ │ ├── MatcherFunc.swift
│ │ │ │ │ │ ├── MatcherProtocols.swift
│ │ │ │ │ │ ├── PostNotification.swift
│ │ │ │ │ │ ├── RaisesException.swift
│ │ │ │ │ │ ├── SatisfyAnyOf.swift
│ │ │ │ │ │ └── ThrowError.swift
│ │ │ │ │ ├── Nimble.h
│ │ │ │ │ └── Utils/
│ │ │ │ │ ├── Async.swift
│ │ │ │ │ ├── Errors.swift
│ │ │ │ │ ├── Functional.swift
│ │ │ │ │ ├── SourceLocation.swift
│ │ │ │ │ └── Stringers.swift
│ │ │ │ ├── Tests/
│ │ │ │ │ ├── LinuxMain.swift
│ │ │ │ │ └── Nimble/
│ │ │ │ │ ├── AsynchronousTest.swift
│ │ │ │ │ ├── Helpers/
│ │ │ │ │ │ ├── ObjectWithLazyProperty.swift
│ │ │ │ │ │ ├── XCTestCaseProvider.swift
│ │ │ │ │ │ └── utils.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── Matchers/
│ │ │ │ │ │ ├── AllPassTest.swift
│ │ │ │ │ │ ├── BeAKindOfTest.swift
│ │ │ │ │ │ ├── BeAnInstanceOfTest.swift
│ │ │ │ │ │ ├── BeCloseToTest.swift
│ │ │ │ │ │ ├── BeEmptyTest.swift
│ │ │ │ │ │ ├── BeGreaterThanOrEqualToTest.swift
│ │ │ │ │ │ ├── BeGreaterThanTest.swift
│ │ │ │ │ │ ├── BeIdenticalToObjectTest.swift
│ │ │ │ │ │ ├── BeIdenticalToTest.swift
│ │ │ │ │ │ ├── BeLessThanOrEqualToTest.swift
│ │ │ │ │ │ ├── BeLessThanTest.swift
│ │ │ │ │ │ ├── BeLogicalTest.swift
│ │ │ │ │ │ ├── BeNilTest.swift
│ │ │ │ │ │ ├── BeVoidTest.swift
│ │ │ │ │ │ ├── BeginWithTest.swift
│ │ │ │ │ │ ├── ContainTest.swift
│ │ │ │ │ │ ├── EndWithTest.swift
│ │ │ │ │ │ ├── EqualTest.swift
│ │ │ │ │ │ ├── HaveCountTest.swift
│ │ │ │ │ │ ├── MatchErrorTest.swift
│ │ │ │ │ │ ├── MatchTest.swift
│ │ │ │ │ │ ├── PostNotificationTest.swift
│ │ │ │ │ │ ├── RaisesExceptionTest.swift
│ │ │ │ │ │ ├── SatisfyAnyOfTest.swift
│ │ │ │ │ │ └── ThrowErrorTest.swift
│ │ │ │ │ ├── SynchronousTests.swift
│ │ │ │ │ ├── UserDescriptionTest.swift
│ │ │ │ │ └── objc/
│ │ │ │ │ ├── NimbleSpecHelper.h
│ │ │ │ │ ├── ObjCAllPassTest.m
│ │ │ │ │ ├── ObjCAsyncTest.m
│ │ │ │ │ ├── ObjCBeAnInstanceOfTest.m
│ │ │ │ │ ├── ObjCBeCloseToTest.m
│ │ │ │ │ ├── ObjCBeEmptyTest.m
│ │ │ │ │ ├── ObjCBeFalseTest.m
│ │ │ │ │ ├── ObjCBeFalsyTest.m
│ │ │ │ │ ├── ObjCBeGreaterThanOrEqualToTest.m
│ │ │ │ │ ├── ObjCBeGreaterThanTest.m
│ │ │ │ │ ├── ObjCBeIdenticalToTest.m
│ │ │ │ │ ├── ObjCBeKindOfTest.m
│ │ │ │ │ ├── ObjCBeLessThanOrEqualToTest.m
│ │ │ │ │ ├── ObjCBeLessThanTest.m
│ │ │ │ │ ├── ObjCBeNilTest.m
│ │ │ │ │ ├── ObjCBeTrueTest.m
│ │ │ │ │ ├── ObjCBeTruthyTest.m
│ │ │ │ │ ├── ObjCBeginWithTest.m
│ │ │ │ │ ├── ObjCContainTest.m
│ │ │ │ │ ├── ObjCEndWithTest.m
│ │ │ │ │ ├── ObjCEqualTest.m
│ │ │ │ │ ├── ObjCHaveCount.m
│ │ │ │ │ ├── ObjCMatchTest.m
│ │ │ │ │ ├── ObjCRaiseExceptionTest.m
│ │ │ │ │ ├── ObjCSatisfyAnyOfTest.m
│ │ │ │ │ ├── ObjCSyncTest.m
│ │ │ │ │ ├── ObjCUserDescriptionTest.m
│ │ │ │ │ └── ObjcStringersTest.m
│ │ │ │ ├── circle.yml
│ │ │ │ ├── script/
│ │ │ │ │ └── release
│ │ │ │ └── test
│ │ │ ├── Quick/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── .gitmodules
│ │ │ │ ├── .ruby-version
│ │ │ │ ├── .swift-version
│ │ │ │ ├── .travis.yml
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── Documentation/
│ │ │ │ │ ├── en-us/
│ │ │ │ │ │ ├── ArrangeActAssert.md
│ │ │ │ │ │ ├── BehavioralTesting.md
│ │ │ │ │ │ ├── ConfiguringQuick.md
│ │ │ │ │ │ ├── InstallingFileTemplates.md
│ │ │ │ │ │ ├── InstallingQuick.md
│ │ │ │ │ │ ├── MoreResources.md
│ │ │ │ │ │ ├── NimbleAssertions.md
│ │ │ │ │ │ ├── QuickExamplesAndGroups.md
│ │ │ │ │ │ ├── QuickInObjectiveC.md
│ │ │ │ │ │ ├── README.md
│ │ │ │ │ │ ├── SettingUpYourXcodeProject.md
│ │ │ │ │ │ ├── SharedExamples.md
│ │ │ │ │ │ └── TestingApps.md
│ │ │ │ │ ├── ja/
│ │ │ │ │ │ ├── ArrangeActAssert.md
│ │ │ │ │ │ ├── BehavioralTesting.md
│ │ │ │ │ │ ├── ConfiguringQuick.md
│ │ │ │ │ │ ├── InstallingFileTemplates.md
│ │ │ │ │ │ ├── InstallingQuick.md
│ │ │ │ │ │ ├── MoreResources.md
│ │ │ │ │ │ ├── NimbleAssertions.md
│ │ │ │ │ │ ├── QuickExamplesAndGroups.md
│ │ │ │ │ │ ├── QuickInObjectiveC.md
│ │ │ │ │ │ ├── README.md
│ │ │ │ │ │ ├── SettingUpYourXcodeProject.md
│ │ │ │ │ │ ├── SharedExamples.md
│ │ │ │ │ │ └── TestingApps.md
│ │ │ │ │ └── zh-cn/
│ │ │ │ │ └── SettingUpYourXcodeProject.md
│ │ │ │ ├── Externals/
│ │ │ │ │ └── Nimble/
│ │ │ │ │ ├── .gitignore
│ │ │ │ │ ├── .ruby-version
│ │ │ │ │ ├── .swift-version
│ │ │ │ │ ├── .travis.yml
│ │ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ │ ├── Gemfile
│ │ │ │ │ ├── LICENSE.md
│ │ │ │ │ ├── Nimble.podspec
│ │ │ │ │ ├── Nimble.xcodeproj/
│ │ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ │ └── xcshareddata/
│ │ │ │ │ │ └── xcschemes/
│ │ │ │ │ │ ├── Nimble-OSX.xcscheme
│ │ │ │ │ │ ├── Nimble-iOS.xcscheme
│ │ │ │ │ │ └── Nimble-tvOS.xcscheme
│ │ │ │ │ ├── Package.swift
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── Sources/
│ │ │ │ │ │ └── Nimble/
│ │ │ │ │ │ ├── Adapters/
│ │ │ │ │ │ │ ├── AdapterProtocols.swift
│ │ │ │ │ │ │ ├── AssertionDispatcher.swift
│ │ │ │ │ │ │ ├── AssertionRecorder.swift
│ │ │ │ │ │ │ ├── NimbleEnvironment.swift
│ │ │ │ │ │ │ ├── NimbleXCTestHandler.swift
│ │ │ │ │ │ │ ├── NonObjectiveC/
│ │ │ │ │ │ │ │ └── ExceptionCapture.swift
│ │ │ │ │ │ │ └── ObjectiveC/
│ │ │ │ │ │ │ ├── CurrentTestCaseTracker.h
│ │ │ │ │ │ │ ├── DSL.h
│ │ │ │ │ │ │ ├── DSL.m
│ │ │ │ │ │ │ ├── NMBExceptionCapture.h
│ │ │ │ │ │ │ ├── NMBExceptionCapture.m
│ │ │ │ │ │ │ ├── NMBExpectation.swift
│ │ │ │ │ │ │ ├── NMBObjCMatcher.swift
│ │ │ │ │ │ │ ├── NMBStringify.h
│ │ │ │ │ │ │ ├── NMBStringify.m
│ │ │ │ │ │ │ └── XCTestObservationCenter+Register.m
│ │ │ │ │ │ ├── DSL+Wait.swift
│ │ │ │ │ │ ├── DSL.swift
│ │ │ │ │ │ ├── Expectation.swift
│ │ │ │ │ │ ├── Expression.swift
│ │ │ │ │ │ ├── FailureMessage.swift
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── Matchers/
│ │ │ │ │ │ │ ├── AllPass.swift
│ │ │ │ │ │ │ ├── AsyncMatcherWrapper.swift
│ │ │ │ │ │ │ ├── BeAKindOf.swift
│ │ │ │ │ │ │ ├── BeAnInstanceOf.swift
│ │ │ │ │ │ │ ├── BeCloseTo.swift
│ │ │ │ │ │ │ ├── BeEmpty.swift
│ │ │ │ │ │ │ ├── BeGreaterThan.swift
│ │ │ │ │ │ │ ├── BeGreaterThanOrEqualTo.swift
│ │ │ │ │ │ │ ├── BeIdenticalTo.swift
│ │ │ │ │ │ │ ├── BeLessThan.swift
│ │ │ │ │ │ │ ├── BeLessThanOrEqual.swift
│ │ │ │ │ │ │ ├── BeLogical.swift
│ │ │ │ │ │ │ ├── BeNil.swift
│ │ │ │ │ │ │ ├── BeVoid.swift
│ │ │ │ │ │ │ ├── BeginWith.swift
│ │ │ │ │ │ │ ├── Contain.swift
│ │ │ │ │ │ │ ├── EndWith.swift
│ │ │ │ │ │ │ ├── Equal.swift
│ │ │ │ │ │ │ ├── HaveCount.swift
│ │ │ │ │ │ │ ├── Match.swift
│ │ │ │ │ │ │ ├── MatchError.swift
│ │ │ │ │ │ │ ├── MatcherFunc.swift
│ │ │ │ │ │ │ ├── MatcherProtocols.swift
│ │ │ │ │ │ │ ├── PostNotification.swift
│ │ │ │ │ │ │ ├── RaisesException.swift
│ │ │ │ │ │ │ ├── SatisfyAnyOf.swift
│ │ │ │ │ │ │ └── ThrowError.swift
│ │ │ │ │ │ ├── Nimble.h
│ │ │ │ │ │ └── Utils/
│ │ │ │ │ │ ├── Async.swift
│ │ │ │ │ │ ├── Errors.swift
│ │ │ │ │ │ ├── Functional.swift
│ │ │ │ │ │ ├── SourceLocation.swift
│ │ │ │ │ │ └── Stringers.swift
│ │ │ │ │ ├── Tests/
│ │ │ │ │ │ ├── LinuxMain.swift
│ │ │ │ │ │ └── Nimble/
│ │ │ │ │ │ ├── AsynchronousTest.swift
│ │ │ │ │ │ ├── Helpers/
│ │ │ │ │ │ │ ├── ObjectWithLazyProperty.swift
│ │ │ │ │ │ │ ├── XCTestCaseProvider.swift
│ │ │ │ │ │ │ └── utils.swift
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── Matchers/
│ │ │ │ │ │ │ ├── AllPassTest.swift
│ │ │ │ │ │ │ ├── BeAKindOfTest.swift
│ │ │ │ │ │ │ ├── BeAnInstanceOfTest.swift
│ │ │ │ │ │ │ ├── BeCloseToTest.swift
│ │ │ │ │ │ │ ├── BeEmptyTest.swift
│ │ │ │ │ │ │ ├── BeGreaterThanOrEqualToTest.swift
│ │ │ │ │ │ │ ├── BeGreaterThanTest.swift
│ │ │ │ │ │ │ ├── BeIdenticalToObjectTest.swift
│ │ │ │ │ │ │ ├── BeIdenticalToTest.swift
│ │ │ │ │ │ │ ├── BeLessThanOrEqualToTest.swift
│ │ │ │ │ │ │ ├── BeLessThanTest.swift
│ │ │ │ │ │ │ ├── BeLogicalTest.swift
│ │ │ │ │ │ │ ├── BeNilTest.swift
│ │ │ │ │ │ │ ├── BeVoidTest.swift
│ │ │ │ │ │ │ ├── BeginWithTest.swift
│ │ │ │ │ │ │ ├── ContainTest.swift
│ │ │ │ │ │ │ ├── EndWithTest.swift
│ │ │ │ │ │ │ ├── EqualTest.swift
│ │ │ │ │ │ │ ├── HaveCountTest.swift
│ │ │ │ │ │ │ ├── MatchErrorTest.swift
│ │ │ │ │ │ │ ├── MatchTest.swift
│ │ │ │ │ │ │ ├── PostNotificationTest.swift
│ │ │ │ │ │ │ ├── RaisesExceptionTest.swift
│ │ │ │ │ │ │ ├── SatisfyAnyOfTest.swift
│ │ │ │ │ │ │ └── ThrowErrorTest.swift
│ │ │ │ │ │ ├── SynchronousTests.swift
│ │ │ │ │ │ ├── UserDescriptionTest.swift
│ │ │ │ │ │ └── objc/
│ │ │ │ │ │ ├── NimbleSpecHelper.h
│ │ │ │ │ │ ├── ObjCAllPassTest.m
│ │ │ │ │ │ ├── ObjCAsyncTest.m
│ │ │ │ │ │ ├── ObjCBeAnInstanceOfTest.m
│ │ │ │ │ │ ├── ObjCBeCloseToTest.m
│ │ │ │ │ │ ├── ObjCBeEmptyTest.m
│ │ │ │ │ │ ├── ObjCBeFalseTest.m
│ │ │ │ │ │ ├── ObjCBeFalsyTest.m
│ │ │ │ │ │ ├── ObjCBeGreaterThanOrEqualToTest.m
│ │ │ │ │ │ ├── ObjCBeGreaterThanTest.m
│ │ │ │ │ │ ├── ObjCBeIdenticalToTest.m
│ │ │ │ │ │ ├── ObjCBeKindOfTest.m
│ │ │ │ │ │ ├── ObjCBeLessThanOrEqualToTest.m
│ │ │ │ │ │ ├── ObjCBeLessThanTest.m
│ │ │ │ │ │ ├── ObjCBeNilTest.m
│ │ │ │ │ │ ├── ObjCBeTrueTest.m
│ │ │ │ │ │ ├── ObjCBeTruthyTest.m
│ │ │ │ │ │ ├── ObjCBeginWithTest.m
│ │ │ │ │ │ ├── ObjCContainTest.m
│ │ │ │ │ │ ├── ObjCEndWithTest.m
│ │ │ │ │ │ ├── ObjCEqualTest.m
│ │ │ │ │ │ ├── ObjCHaveCount.m
│ │ │ │ │ │ ├── ObjCMatchTest.m
│ │ │ │ │ │ ├── ObjCRaiseExceptionTest.m
│ │ │ │ │ │ ├── ObjCSatisfyAnyOfTest.m
│ │ │ │ │ │ ├── ObjCSyncTest.m
│ │ │ │ │ │ ├── ObjCUserDescriptionTest.m
│ │ │ │ │ │ └── ObjcStringersTest.m
│ │ │ │ │ ├── circle.yml
│ │ │ │ │ ├── script/
│ │ │ │ │ │ └── release
│ │ │ │ │ └── test
│ │ │ │ ├── Gemfile
│ │ │ │ ├── LICENSE
│ │ │ │ ├── Package.swift
│ │ │ │ ├── Quick Templates/
│ │ │ │ │ ├── Quick Configuration Class.xctemplate/
│ │ │ │ │ │ ├── Objective-C/
│ │ │ │ │ │ │ ├── ___FILEBASENAME___.h
│ │ │ │ │ │ │ └── ___FILEBASENAME___.m
│ │ │ │ │ │ ├── Swift/
│ │ │ │ │ │ │ └── ___FILEBASENAME___.swift
│ │ │ │ │ │ ├── TemplateIcon.icns
│ │ │ │ │ │ └── TemplateInfo.plist
│ │ │ │ │ └── Quick Spec Class.xctemplate/
│ │ │ │ │ ├── Objective-C/
│ │ │ │ │ │ └── ___FILEBASENAME___.m
│ │ │ │ │ ├── Swift/
│ │ │ │ │ │ └── ___FILEBASENAME___.swift
│ │ │ │ │ ├── TemplateIcon.icns
│ │ │ │ │ └── TemplateInfo.plist
│ │ │ │ ├── Quick.podspec
│ │ │ │ ├── Quick.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── xcschemes/
│ │ │ │ │ ├── Quick-OSX.xcscheme
│ │ │ │ │ ├── Quick-iOS.xcscheme
│ │ │ │ │ └── Quick-tvOS.xcscheme
│ │ │ │ ├── README.md
│ │ │ │ ├── Rakefile
│ │ │ │ ├── Sources/
│ │ │ │ │ ├── Quick/
│ │ │ │ │ │ ├── Callsite.swift
│ │ │ │ │ │ ├── Configuration/
│ │ │ │ │ │ │ ├── Configuration.swift
│ │ │ │ │ │ │ ├── QuickConfiguration.h
│ │ │ │ │ │ │ ├── QuickConfiguration.m
│ │ │ │ │ │ │ └── QuickConfiguration.swift
│ │ │ │ │ │ ├── DSL/
│ │ │ │ │ │ │ ├── DSL.swift
│ │ │ │ │ │ │ ├── QCKDSL.h
│ │ │ │ │ │ │ ├── QCKDSL.m
│ │ │ │ │ │ │ ├── World+DSL.h
│ │ │ │ │ │ │ └── World+DSL.swift
│ │ │ │ │ │ ├── ErrorUtility.swift
│ │ │ │ │ │ ├── Example.swift
│ │ │ │ │ │ ├── ExampleGroup.swift
│ │ │ │ │ │ ├── ExampleMetadata.swift
│ │ │ │ │ │ ├── Filter.swift
│ │ │ │ │ │ ├── Hooks/
│ │ │ │ │ │ │ ├── Closures.swift
│ │ │ │ │ │ │ ├── ExampleHooks.swift
│ │ │ │ │ │ │ ├── HooksPhase.swift
│ │ │ │ │ │ │ └── SuiteHooks.swift
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ ├── NSBundle+CurrentTestBundle.swift
│ │ │ │ │ │ ├── NSString+QCKSelectorName.h
│ │ │ │ │ │ ├── NSString+QCKSelectorName.m
│ │ │ │ │ │ ├── Quick.h
│ │ │ │ │ │ ├── QuickMain.swift
│ │ │ │ │ │ ├── QuickSelectedTestSuiteBuilder.swift
│ │ │ │ │ │ ├── QuickSpec.h
│ │ │ │ │ │ ├── QuickSpec.m
│ │ │ │ │ │ ├── QuickSpec.swift
│ │ │ │ │ │ ├── QuickTestSuite.swift
│ │ │ │ │ │ ├── String+FileName.swift
│ │ │ │ │ │ ├── World.h
│ │ │ │ │ │ ├── World.swift
│ │ │ │ │ │ └── XCTestSuite+QuickTestSuiteBuilder.m
│ │ │ │ │ ├── QuickFocusedTests/
│ │ │ │ │ │ ├── FocusedTests+ObjC.m
│ │ │ │ │ │ ├── FocusedTests.swift
│ │ │ │ │ │ ├── Info.plist
│ │ │ │ │ │ └── main.swift
│ │ │ │ │ ├── QuickTestHelpers/
│ │ │ │ │ │ ├── SpecRunner.swift
│ │ │ │ │ │ └── TestRun.swift
│ │ │ │ │ └── QuickTests/
│ │ │ │ │ ├── Fixtures/
│ │ │ │ │ │ └── FunctionalTests_SharedExamplesTests_SharedExamples.swift
│ │ │ │ │ ├── FunctionalTests/
│ │ │ │ │ │ ├── AfterEachTests+ObjC.m
│ │ │ │ │ │ ├── AfterEachTests.swift
│ │ │ │ │ │ ├── AfterSuiteTests+ObjC.m
│ │ │ │ │ │ ├── AfterSuiteTests.swift
│ │ │ │ │ │ ├── BeforeEachTests+ObjC.m
│ │ │ │ │ │ ├── BeforeEachTests.swift
│ │ │ │ │ │ ├── BeforeSuiteTests+ObjC.m
│ │ │ │ │ │ ├── BeforeSuiteTests.swift
│ │ │ │ │ │ ├── Configuration/
│ │ │ │ │ │ │ ├── AfterEach/
│ │ │ │ │ │ │ │ ├── Configuration+AfterEach.swift
│ │ │ │ │ │ │ │ └── Configuration+AfterEachTests.swift
│ │ │ │ │ │ │ └── BeforeEach/
│ │ │ │ │ │ │ ├── Configuration+BeforeEach.swift
│ │ │ │ │ │ │ └── Configuration+BeforeEachTests.swift
│ │ │ │ │ │ ├── ContextTests.swift
│ │ │ │ │ │ ├── CrossReferencingSpecs.swift
│ │ │ │ │ │ ├── DescribeTests.swift
│ │ │ │ │ │ ├── FailureTests+ObjC.m
│ │ │ │ │ │ ├── FailureUsingXCTAssertTests+ObjC.m
│ │ │ │ │ │ ├── ItTests+ObjC.m
│ │ │ │ │ │ ├── ItTests.swift
│ │ │ │ │ │ ├── PendingTests+ObjC.m
│ │ │ │ │ │ ├── PendingTests.swift
│ │ │ │ │ │ ├── SharedExamples+BeforeEachTests+ObjC.m
│ │ │ │ │ │ ├── SharedExamples+BeforeEachTests.swift
│ │ │ │ │ │ ├── SharedExamplesTests+ObjC.m
│ │ │ │ │ │ └── SharedExamplesTests.swift
│ │ │ │ │ ├── Helpers/
│ │ │ │ │ │ ├── QCKSpecRunner.h
│ │ │ │ │ │ ├── QCKSpecRunner.m
│ │ │ │ │ │ ├── QuickSpec+QuickSpec_MethodList.h
│ │ │ │ │ │ ├── QuickSpec+QuickSpec_MethodList.m
│ │ │ │ │ │ ├── QuickTestsBridgingHeader.h
│ │ │ │ │ │ ├── XCTestCaseProvider.swift
│ │ │ │ │ │ ├── XCTestObservationCenter+QCKSuspendObservation.h
│ │ │ │ │ │ └── XCTestObservationCenter+QCKSuspendObservation.m
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── QuickConfigurationTests.m
│ │ │ │ │ └── main.swift
│ │ │ │ ├── circle.yml
│ │ │ │ └── script/
│ │ │ │ ├── release
│ │ │ │ ├── travis-install-linux
│ │ │ │ ├── travis-install-osx
│ │ │ │ ├── travis-script-linux
│ │ │ │ └── travis-script-osx
│ │ │ ├── Result/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── .swift-version
│ │ │ │ ├── .travis.yml
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── LICENSE
│ │ │ │ ├── Package.swift
│ │ │ │ ├── README.md
│ │ │ │ ├── Result/
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── Result.h
│ │ │ │ │ ├── Result.swift
│ │ │ │ │ └── ResultType.swift
│ │ │ │ ├── Result.podspec
│ │ │ │ ├── Result.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── xcschemes/
│ │ │ │ │ ├── Result-Mac.xcscheme
│ │ │ │ │ ├── Result-iOS.xcscheme
│ │ │ │ │ ├── Result-tvOS.xcscheme
│ │ │ │ │ └── Result-watchOS.xcscheme
│ │ │ │ └── Tests/
│ │ │ │ ├── LinuxMain.swift
│ │ │ │ └── Result/
│ │ │ │ ├── Info.plist
│ │ │ │ └── ResultTests.swift
│ │ │ └── xcconfigs/
│ │ │ ├── .gitignore
│ │ │ ├── Base/
│ │ │ │ ├── Common.xcconfig
│ │ │ │ ├── Configurations/
│ │ │ │ │ ├── Debug.xcconfig
│ │ │ │ │ ├── Profile.xcconfig
│ │ │ │ │ ├── Release.xcconfig
│ │ │ │ │ └── Test.xcconfig
│ │ │ │ └── Targets/
│ │ │ │ ├── Application.xcconfig
│ │ │ │ ├── Framework.xcconfig
│ │ │ │ └── StaticLibrary.xcconfig
│ │ │ ├── Mac OS X/
│ │ │ │ ├── Mac-Application.xcconfig
│ │ │ │ ├── Mac-Base.xcconfig
│ │ │ │ ├── Mac-DynamicLibrary.xcconfig
│ │ │ │ ├── Mac-Framework.xcconfig
│ │ │ │ └── Mac-StaticLibrary.xcconfig
│ │ │ ├── README.md
│ │ │ ├── iOS/
│ │ │ │ ├── iOS-Application.xcconfig
│ │ │ │ ├── iOS-Base.xcconfig
│ │ │ │ ├── iOS-Framework.xcconfig
│ │ │ │ └── iOS-StaticLibrary.xcconfig
│ │ │ ├── tvOS/
│ │ │ │ ├── tvOS-Application.xcconfig
│ │ │ │ ├── tvOS-Base.xcconfig
│ │ │ │ ├── tvOS-Framework.xcconfig
│ │ │ │ └── tvOS-StaticLibrary.xcconfig
│ │ │ └── watchOS/
│ │ │ ├── watchOS-Application.xcconfig
│ │ │ ├── watchOS-Base.xcconfig
│ │ │ ├── watchOS-Framework.xcconfig
│ │ │ └── watchOS-StaticLibrary.xcconfig
│ │ ├── Documentation/
│ │ │ ├── BasicOperators.md
│ │ │ ├── DebuggingTechniques.md
│ │ │ ├── DesignGuidelines.md
│ │ │ ├── DocumentingCode.md
│ │ │ ├── FrameworkOverview.md
│ │ │ ├── Legacy/
│ │ │ │ ├── BasicOperators.md
│ │ │ │ ├── DesignGuidelines.md
│ │ │ │ ├── FrameworkOverview.md
│ │ │ │ ├── MemoryManagement.md
│ │ │ │ └── README.md
│ │ │ ├── ObjectiveCBridging.md
│ │ │ └── README.md
│ │ ├── Instruments/
│ │ │ ├── Disposable Growth.tracetemplate
│ │ │ ├── README.md
│ │ │ └── Signal Events.tracetemplate
│ │ ├── LICENSE.md
│ │ ├── Logo/
│ │ │ └── README.md
│ │ ├── README.md
│ │ ├── ReactiveCocoa/
│ │ │ ├── Info.plist
│ │ │ ├── Objective-C/
│ │ │ │ ├── MKAnnotationView+RACSignalSupport.h
│ │ │ │ ├── MKAnnotationView+RACSignalSupport.m
│ │ │ │ ├── NSArray+RACSequenceAdditions.h
│ │ │ │ ├── NSArray+RACSequenceAdditions.m
│ │ │ │ ├── NSControl+RACCommandSupport.h
│ │ │ │ ├── NSControl+RACCommandSupport.m
│ │ │ │ ├── NSControl+RACTextSignalSupport.h
│ │ │ │ ├── NSControl+RACTextSignalSupport.m
│ │ │ │ ├── NSData+RACSupport.h
│ │ │ │ ├── NSData+RACSupport.m
│ │ │ │ ├── NSDictionary+RACSequenceAdditions.h
│ │ │ │ ├── NSDictionary+RACSequenceAdditions.m
│ │ │ │ ├── NSEnumerator+RACSequenceAdditions.h
│ │ │ │ ├── NSEnumerator+RACSequenceAdditions.m
│ │ │ │ ├── NSFileHandle+RACSupport.h
│ │ │ │ ├── NSFileHandle+RACSupport.m
│ │ │ │ ├── NSIndexSet+RACSequenceAdditions.h
│ │ │ │ ├── NSIndexSet+RACSequenceAdditions.m
│ │ │ │ ├── NSInvocation+RACTypeParsing.h
│ │ │ │ ├── NSInvocation+RACTypeParsing.m
│ │ │ │ ├── NSNotificationCenter+RACSupport.h
│ │ │ │ ├── NSNotificationCenter+RACSupport.m
│ │ │ │ ├── NSObject+RACAppKitBindings.h
│ │ │ │ ├── NSObject+RACAppKitBindings.m
│ │ │ │ ├── NSObject+RACDeallocating.h
│ │ │ │ ├── NSObject+RACDeallocating.m
│ │ │ │ ├── NSObject+RACDescription.h
│ │ │ │ ├── NSObject+RACDescription.m
│ │ │ │ ├── NSObject+RACKVOWrapper.h
│ │ │ │ ├── NSObject+RACKVOWrapper.m
│ │ │ │ ├── NSObject+RACLifting.h
│ │ │ │ ├── NSObject+RACLifting.m
│ │ │ │ ├── NSObject+RACPropertySubscribing.h
│ │ │ │ ├── NSObject+RACPropertySubscribing.m
│ │ │ │ ├── NSObject+RACSelectorSignal.h
│ │ │ │ ├── NSObject+RACSelectorSignal.m
│ │ │ │ ├── NSOrderedSet+RACSequenceAdditions.h
│ │ │ │ ├── NSOrderedSet+RACSequenceAdditions.m
│ │ │ │ ├── NSSet+RACSequenceAdditions.h
│ │ │ │ ├── NSSet+RACSequenceAdditions.m
│ │ │ │ ├── NSString+RACKeyPathUtilities.h
│ │ │ │ ├── NSString+RACKeyPathUtilities.m
│ │ │ │ ├── NSString+RACSequenceAdditions.h
│ │ │ │ ├── NSString+RACSequenceAdditions.m
│ │ │ │ ├── NSString+RACSupport.h
│ │ │ │ ├── NSString+RACSupport.m
│ │ │ │ ├── NSText+RACSignalSupport.h
│ │ │ │ ├── NSText+RACSignalSupport.m
│ │ │ │ ├── NSURLConnection+RACSupport.h
│ │ │ │ ├── NSURLConnection+RACSupport.m
│ │ │ │ ├── NSUserDefaults+RACSupport.h
│ │ │ │ ├── NSUserDefaults+RACSupport.m
│ │ │ │ ├── RACArraySequence.h
│ │ │ │ ├── RACArraySequence.m
│ │ │ │ ├── RACBehaviorSubject.h
│ │ │ │ ├── RACBehaviorSubject.m
│ │ │ │ ├── RACBlockTrampoline.h
│ │ │ │ ├── RACBlockTrampoline.m
│ │ │ │ ├── RACChannel.h
│ │ │ │ ├── RACChannel.m
│ │ │ │ ├── RACCommand.h
│ │ │ │ ├── RACCommand.m
│ │ │ │ ├── RACCompoundDisposable.h
│ │ │ │ ├── RACCompoundDisposable.m
│ │ │ │ ├── RACCompoundDisposableProvider.d
│ │ │ │ ├── RACDelegateProxy.h
│ │ │ │ ├── RACDelegateProxy.m
│ │ │ │ ├── RACDisposable.h
│ │ │ │ ├── RACDisposable.m
│ │ │ │ ├── RACDynamicPropertySuperclass.h
│ │ │ │ ├── RACDynamicPropertySuperclass.m
│ │ │ │ ├── RACDynamicSequence.h
│ │ │ │ ├── RACDynamicSequence.m
│ │ │ │ ├── RACDynamicSignal.h
│ │ │ │ ├── RACDynamicSignal.m
│ │ │ │ ├── RACEagerSequence.h
│ │ │ │ ├── RACEagerSequence.m
│ │ │ │ ├── RACEmptySequence.h
│ │ │ │ ├── RACEmptySequence.m
│ │ │ │ ├── RACEmptySignal.h
│ │ │ │ ├── RACEmptySignal.m
│ │ │ │ ├── RACErrorSignal.h
│ │ │ │ ├── RACErrorSignal.m
│ │ │ │ ├── RACEvent.h
│ │ │ │ ├── RACEvent.m
│ │ │ │ ├── RACGroupedSignal.h
│ │ │ │ ├── RACGroupedSignal.m
│ │ │ │ ├── RACImmediateScheduler.h
│ │ │ │ ├── RACImmediateScheduler.m
│ │ │ │ ├── RACIndexSetSequence.h
│ │ │ │ ├── RACIndexSetSequence.m
│ │ │ │ ├── RACKVOChannel.h
│ │ │ │ ├── RACKVOChannel.m
│ │ │ │ ├── RACKVOProxy.h
│ │ │ │ ├── RACKVOProxy.m
│ │ │ │ ├── RACKVOTrampoline.h
│ │ │ │ ├── RACKVOTrampoline.m
│ │ │ │ ├── RACMulticastConnection+Private.h
│ │ │ │ ├── RACMulticastConnection.h
│ │ │ │ ├── RACMulticastConnection.m
│ │ │ │ ├── RACPassthroughSubscriber.h
│ │ │ │ ├── RACPassthroughSubscriber.m
│ │ │ │ ├── RACQueueScheduler+Subclass.h
│ │ │ │ ├── RACQueueScheduler.h
│ │ │ │ ├── RACQueueScheduler.m
│ │ │ │ ├── RACReplaySubject.h
│ │ │ │ ├── RACReplaySubject.m
│ │ │ │ ├── RACReturnSignal.h
│ │ │ │ ├── RACReturnSignal.m
│ │ │ │ ├── RACScheduler+Private.h
│ │ │ │ ├── RACScheduler+Subclass.h
│ │ │ │ ├── RACScheduler.h
│ │ │ │ ├── RACScheduler.m
│ │ │ │ ├── RACScopedDisposable.h
│ │ │ │ ├── RACScopedDisposable.m
│ │ │ │ ├── RACSequence.h
│ │ │ │ ├── RACSequence.m
│ │ │ │ ├── RACSerialDisposable.h
│ │ │ │ ├── RACSerialDisposable.m
│ │ │ │ ├── RACSignal+Operations.h
│ │ │ │ ├── RACSignal+Operations.m
│ │ │ │ ├── RACSignal.h
│ │ │ │ ├── RACSignal.m
│ │ │ │ ├── RACSignalProvider.d
│ │ │ │ ├── RACSignalSequence.h
│ │ │ │ ├── RACSignalSequence.m
│ │ │ │ ├── RACStream+Private.h
│ │ │ │ ├── RACStream.h
│ │ │ │ ├── RACStream.m
│ │ │ │ ├── RACStringSequence.h
│ │ │ │ ├── RACStringSequence.m
│ │ │ │ ├── RACSubject.h
│ │ │ │ ├── RACSubject.m
│ │ │ │ ├── RACSubscriber+Private.h
│ │ │ │ ├── RACSubscriber.h
│ │ │ │ ├── RACSubscriber.m
│ │ │ │ ├── RACSubscriptingAssignmentTrampoline.h
│ │ │ │ ├── RACSubscriptingAssignmentTrampoline.m
│ │ │ │ ├── RACSubscriptionScheduler.h
│ │ │ │ ├── RACSubscriptionScheduler.m
│ │ │ │ ├── RACTargetQueueScheduler.h
│ │ │ │ ├── RACTargetQueueScheduler.m
│ │ │ │ ├── RACTestScheduler.h
│ │ │ │ ├── RACTestScheduler.m
│ │ │ │ ├── RACTuple.h
│ │ │ │ ├── RACTuple.m
│ │ │ │ ├── RACTupleSequence.h
│ │ │ │ ├── RACTupleSequence.m
│ │ │ │ ├── RACUnarySequence.h
│ │ │ │ ├── RACUnarySequence.m
│ │ │ │ ├── RACUnit.h
│ │ │ │ ├── RACUnit.m
│ │ │ │ ├── RACValueTransformer.h
│ │ │ │ ├── RACValueTransformer.m
│ │ │ │ ├── ReactiveCocoa-Bridging-Header.h
│ │ │ │ ├── UIActionSheet+RACSignalSupport.h
│ │ │ │ ├── UIActionSheet+RACSignalSupport.m
│ │ │ │ ├── UIAlertView+RACSignalSupport.h
│ │ │ │ ├── UIAlertView+RACSignalSupport.m
│ │ │ │ ├── UIBarButtonItem+RACCommandSupport.h
│ │ │ │ ├── UIBarButtonItem+RACCommandSupport.m
│ │ │ │ ├── UIButton+RACCommandSupport.h
│ │ │ │ ├── UIButton+RACCommandSupport.m
│ │ │ │ ├── UICollectionReusableView+RACSignalSupport.h
│ │ │ │ ├── UICollectionReusableView+RACSignalSupport.m
│ │ │ │ ├── UIControl+RACSignalSupport.h
│ │ │ │ ├── UIControl+RACSignalSupport.m
│ │ │ │ ├── UIControl+RACSignalSupportPrivate.h
│ │ │ │ ├── UIControl+RACSignalSupportPrivate.m
│ │ │ │ ├── UIDatePicker+RACSignalSupport.h
│ │ │ │ ├── UIDatePicker+RACSignalSupport.m
│ │ │ │ ├── UIGestureRecognizer+RACSignalSupport.h
│ │ │ │ ├── UIGestureRecognizer+RACSignalSupport.m
│ │ │ │ ├── UIImagePickerController+RACSignalSupport.h
│ │ │ │ ├── UIImagePickerController+RACSignalSupport.m
│ │ │ │ ├── UIRefreshControl+RACCommandSupport.h
│ │ │ │ ├── UIRefreshControl+RACCommandSupport.m
│ │ │ │ ├── UISegmentedControl+RACSignalSupport.h
│ │ │ │ ├── UISegmentedControl+RACSignalSupport.m
│ │ │ │ ├── UISlider+RACSignalSupport.h
│ │ │ │ ├── UISlider+RACSignalSupport.m
│ │ │ │ ├── UIStepper+RACSignalSupport.h
│ │ │ │ ├── UIStepper+RACSignalSupport.m
│ │ │ │ ├── UISwitch+RACSignalSupport.h
│ │ │ │ ├── UISwitch+RACSignalSupport.m
│ │ │ │ ├── UITableViewCell+RACSignalSupport.h
│ │ │ │ ├── UITableViewCell+RACSignalSupport.m
│ │ │ │ ├── UITableViewHeaderFooterView+RACSignalSupport.h
│ │ │ │ ├── UITableViewHeaderFooterView+RACSignalSupport.m
│ │ │ │ ├── UITextField+RACSignalSupport.h
│ │ │ │ ├── UITextField+RACSignalSupport.m
│ │ │ │ ├── UITextView+RACSignalSupport.h
│ │ │ │ ├── UITextView+RACSignalSupport.m
│ │ │ │ └── extobjc/
│ │ │ │ ├── EXTKeyPathCoding.h
│ │ │ │ ├── EXTRuntimeExtensions.h
│ │ │ │ ├── EXTRuntimeExtensions.m
│ │ │ │ ├── EXTScope.h
│ │ │ │ └── metamacros.h
│ │ │ ├── ReactiveCocoa.h
│ │ │ └── Swift/
│ │ │ ├── Action.swift
│ │ │ ├── Atomic.swift
│ │ │ ├── Bag.swift
│ │ │ ├── CocoaAction.swift
│ │ │ ├── Disposable.swift
│ │ │ ├── DynamicProperty.swift
│ │ │ ├── Errors.swift
│ │ │ ├── Event.swift
│ │ │ ├── EventLogger.swift
│ │ │ ├── Flatten.swift
│ │ │ ├── FoundationExtensions.swift
│ │ │ ├── ObjectiveCBridging.swift
│ │ │ ├── Observer.swift
│ │ │ ├── Optional.swift
│ │ │ ├── Property.swift
│ │ │ ├── Scheduler.swift
│ │ │ ├── Signal.swift
│ │ │ ├── SignalProducer.swift
│ │ │ └── TupleExtensions.swift
│ │ ├── ReactiveCocoa.playground/
│ │ │ ├── Pages/
│ │ │ │ ├── Sandbox.xcplaygroundpage/
│ │ │ │ │ └── Contents.swift
│ │ │ │ ├── Signal.xcplaygroundpage/
│ │ │ │ │ └── Contents.swift
│ │ │ │ └── SignalProducer.xcplaygroundpage/
│ │ │ │ └── Contents.swift
│ │ │ ├── Sources/
│ │ │ │ └── PlaygroundUtility.swift
│ │ │ └── contents.xcplayground
│ │ ├── ReactiveCocoa.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ └── xcshareddata/
│ │ │ └── xcschemes/
│ │ │ ├── ReactiveCocoa-Mac.xcscheme
│ │ │ ├── ReactiveCocoa-iOS.xcscheme
│ │ │ ├── ReactiveCocoa-tvOS.xcscheme
│ │ │ └── ReactiveCocoa-watchOS.xcscheme
│ │ ├── ReactiveCocoaTests/
│ │ │ ├── Info.plist
│ │ │ ├── Objective-C/
│ │ │ │ ├── NSControllerRACSupportSpec.m
│ │ │ │ ├── NSEnumeratorRACSequenceAdditionsSpec.m
│ │ │ │ ├── NSNotificationCenterRACSupportSpec.m
│ │ │ │ ├── NSObjectRACAppKitBindingsSpec.m
│ │ │ │ ├── NSObjectRACDeallocatingSpec.m
│ │ │ │ ├── NSObjectRACLiftingSpec.m
│ │ │ │ ├── NSObjectRACPropertySubscribingExamples.h
│ │ │ │ ├── NSObjectRACPropertySubscribingExamples.m
│ │ │ │ ├── NSObjectRACPropertySubscribingSpec.m
│ │ │ │ ├── NSObjectRACSelectorSignalSpec.m
│ │ │ │ ├── NSStringRACKeyPathUtilitiesSpec.m
│ │ │ │ ├── NSURLConnectionRACSupportSpec.m
│ │ │ │ ├── NSUserDefaultsRACSupportSpec.m
│ │ │ │ ├── RACBlockTrampolineSpec.m
│ │ │ │ ├── RACChannelExamples.h
│ │ │ │ ├── RACChannelExamples.m
│ │ │ │ ├── RACChannelSpec.m
│ │ │ │ ├── RACCommandSpec.m
│ │ │ │ ├── RACCompoundDisposableSpec.m
│ │ │ │ ├── RACControlCommandExamples.h
│ │ │ │ ├── RACControlCommandExamples.m
│ │ │ │ ├── RACDelegateProxySpec.m
│ │ │ │ ├── RACDisposableSpec.m
│ │ │ │ ├── RACEventSpec.m
│ │ │ │ ├── RACKVOChannelSpec.m
│ │ │ │ ├── RACKVOProxySpec.m
│ │ │ │ ├── RACKVOWrapperSpec.m
│ │ │ │ ├── RACMulticastConnectionSpec.m
│ │ │ │ ├── RACPropertySignalExamples.h
│ │ │ │ ├── RACPropertySignalExamples.m
│ │ │ │ ├── RACSchedulerSpec.m
│ │ │ │ ├── RACSequenceAdditionsSpec.m
│ │ │ │ ├── RACSequenceExamples.h
│ │ │ │ ├── RACSequenceExamples.m
│ │ │ │ ├── RACSequenceSpec.m
│ │ │ │ ├── RACSerialDisposableSpec.m
│ │ │ │ ├── RACSignalSpec.m
│ │ │ │ ├── RACStreamExamples.h
│ │ │ │ ├── RACStreamExamples.m
│ │ │ │ ├── RACSubclassObject.h
│ │ │ │ ├── RACSubclassObject.m
│ │ │ │ ├── RACSubjectSpec.m
│ │ │ │ ├── RACSubscriberExamples.h
│ │ │ │ ├── RACSubscriberExamples.m
│ │ │ │ ├── RACSubscriberSpec.m
│ │ │ │ ├── RACSubscriptingAssignmentTrampolineSpec.m
│ │ │ │ ├── RACTargetQueueSchedulerSpec.m
│ │ │ │ ├── RACTestExampleScheduler.h
│ │ │ │ ├── RACTestExampleScheduler.m
│ │ │ │ ├── RACTestObject.h
│ │ │ │ ├── RACTestObject.m
│ │ │ │ ├── RACTestSchedulerSpec.m
│ │ │ │ ├── RACTestUIButton.h
│ │ │ │ ├── RACTestUIButton.m
│ │ │ │ ├── RACTupleSpec.m
│ │ │ │ ├── UIActionSheetRACSupportSpec.m
│ │ │ │ ├── UIAlertViewRACSupportSpec.m
│ │ │ │ ├── UIBarButtonItemRACSupportSpec.m
│ │ │ │ ├── UIButtonRACSupportSpec.m
│ │ │ │ └── UIImagePickerControllerRACSupportSpec.m
│ │ │ ├── Swift/
│ │ │ │ ├── ActionSpec.swift
│ │ │ │ ├── AtomicSpec.swift
│ │ │ │ ├── BagSpec.swift
│ │ │ │ ├── CocoaActionSpec.swift
│ │ │ │ ├── DisposableSpec.swift
│ │ │ │ ├── FlattenSpec.swift
│ │ │ │ ├── FoundationExtensionsSpec.swift
│ │ │ │ ├── ObjectiveCBridgingSpec.swift
│ │ │ │ ├── PropertySpec.swift
│ │ │ │ ├── SchedulerSpec.swift
│ │ │ │ ├── SignalLifetimeSpec.swift
│ │ │ │ ├── SignalProducerLiftingSpec.swift
│ │ │ │ ├── SignalProducerNimbleMatchers.swift
│ │ │ │ ├── SignalProducerSpec.swift
│ │ │ │ ├── SignalSpec.swift
│ │ │ │ ├── TestError.swift
│ │ │ │ └── TestLogger.swift
│ │ │ └── test-data.json
│ │ └── script/
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── bootstrap
│ │ ├── build
│ │ ├── cibuild
│ │ ├── schemes.awk
│ │ ├── targets.awk
│ │ ├── validate-playground.sh
│ │ ├── xcodebuild.awk
│ │ └── xctool.awk
│ ├── Result/
│ │ ├── .gitignore
│ │ ├── .gitmodules
│ │ ├── .swift-version
│ │ ├── .travis.yml
│ │ ├── CONTRIBUTING.md
│ │ ├── Cartfile
│ │ ├── Cartfile.resolved
│ │ ├── Carthage/
│ │ │ └── Checkouts/
│ │ │ └── Box/
│ │ │ ├── .gitignore
│ │ │ ├── Box/
│ │ │ │ ├── Box.h
│ │ │ │ ├── Box.swift
│ │ │ │ ├── BoxType.swift
│ │ │ │ ├── Info.plist
│ │ │ │ └── MutableBox.swift
│ │ │ ├── Box.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ ├── project.xcworkspace/
│ │ │ │ │ └── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── xcschemes/
│ │ │ │ ├── Box-Mac.xcscheme
│ │ │ │ └── Box-iOS.xcscheme
│ │ │ ├── BoxTests/
│ │ │ │ ├── BoxTests.swift
│ │ │ │ ├── BoxTypeTests.swift
│ │ │ │ ├── Info.plist
│ │ │ │ └── MutableBoxTests.swift
│ │ │ ├── LICENSE
│ │ │ └── README.md
│ │ ├── LICENSE
│ │ ├── Package.swift
│ │ ├── README.md
│ │ ├── Result/
│ │ │ ├── Info.plist
│ │ │ ├── Result.h
│ │ │ ├── Result.swift
│ │ │ └── ResultType.swift
│ │ ├── Result.podspec
│ │ ├── Result.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace/
│ │ │ │ └── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── xcschemes/
│ │ │ ├── Result-Mac.xcscheme
│ │ │ ├── Result-iOS.xcscheme
│ │ │ ├── Result-tvOS.xcscheme
│ │ │ └── Result-watchOS.xcscheme
│ │ ├── Result.xcworkspace/
│ │ │ └── contents.xcworkspacedata
│ │ ├── ResultTests/
│ │ │ ├── Info.plist
│ │ │ └── ResultTests.swift
│ │ └── Tests/
│ │ ├── LinuxMain.swift
│ │ └── Result/
│ │ ├── Info.plist
│ │ └── ResultTests.swift
│ └── SnapKit/
│ ├── .gitignore
│ ├── .travis.yml
│ ├── CHANGELOG.md
│ ├── CONTRIBUTING.md
│ ├── CodeSnippets/
│ │ ├── SnapKit Constraint Make.codesnippet
│ │ └── SnapKit Constraint Remake.codesnippet
│ ├── Example-iOS/
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets/
│ │ │ └── AppIcon.appiconset/
│ │ │ └── Contents.json
│ │ ├── Base.lproj/
│ │ │ └── LaunchScreen.storyboard
│ │ ├── Info.plist
│ │ ├── ListViewController.swift
│ │ └── demos/
│ │ ├── BasicUIScrollViewController.swift
│ │ └── SimpleLayoutViewController.swift
│ ├── ISSUE_TEMPLATE.md
│ ├── LICENSE
│ ├── Package.swift
│ ├── README.md
│ ├── SnapKit.podspec
│ ├── SnapKit.xcodeproj/
│ │ ├── project.pbxproj
│ │ └── xcshareddata/
│ │ └── xcschemes/
│ │ ├── SnapKit OSX.xcscheme
│ │ ├── SnapKit iOS.xcscheme
│ │ └── SnapKit tvOS.xcscheme
│ ├── SnapKit.xcworkspace/
│ │ └── contents.xcworkspacedata
│ ├── Source/
│ │ ├── Constraint.swift
│ │ ├── ConstraintAttributes.swift
│ │ ├── ConstraintDescription.swift
│ │ ├── ConstraintItem.swift
│ │ ├── ConstraintMaker.swift
│ │ ├── ConstraintRelation.swift
│ │ ├── Debugging.swift
│ │ ├── EdgeInsets.swift
│ │ ├── Info.plist
│ │ ├── LayoutConstraint.swift
│ │ ├── SnapKit.h
│ │ ├── SnapKit.swift
│ │ ├── View+SnapKit.swift
│ │ └── ViewController+SnapKit.swift
│ └── Tests/
│ ├── Info.plist
│ └── Tests.swift
├── LICENSE
├── README.md
├── SwiftGoal/
│ ├── AppDelegate.swift
│ ├── Base.lproj/
│ │ └── LaunchScreen.xib
│ ├── Helpers/
│ │ ├── Color.swift
│ │ ├── Extensions.swift
│ │ └── RankingEngine.swift
│ ├── Images.xcassets/
│ │ ├── AppIcon.appiconset/
│ │ │ └── Contents.json
│ │ ├── Crown.imageset/
│ │ │ └── Contents.json
│ │ ├── CrownFilled.imageset/
│ │ │ └── Contents.json
│ │ └── FootballFilled.imageset/
│ │ └── Contents.json
│ ├── Info.plist
│ ├── Models/
│ │ ├── Changeset.swift
│ │ ├── Encodable.swift
│ │ ├── Match.swift
│ │ ├── Player.swift
│ │ └── Ranking.swift
│ ├── Settings.bundle/
│ │ └── Root.plist
│ ├── Stores/
│ │ ├── LocalStore.swift
│ │ ├── RemoteStore.swift
│ │ └── StoreType.swift
│ ├── ViewModels/
│ │ ├── EditMatchViewModel.swift
│ │ ├── ManagePlayersViewModel.swift
│ │ ├── MatchesViewModel.swift
│ │ └── RankingsViewModel.swift
│ └── Views/
│ ├── EditMatchViewController.swift
│ ├── ManagePlayersViewController.swift
│ ├── MatchCell.swift
│ ├── MatchesViewController.swift
│ ├── PlayerCell.swift
│ ├── RankingCell.swift
│ └── RankingsViewController.swift
├── SwiftGoal.xcodeproj/
│ ├── project.pbxproj
│ ├── project.xcworkspace/
│ │ └── contents.xcworkspacedata
│ └── xcshareddata/
│ └── xcschemes/
│ └── SwiftGoal.xcscheme
└── SwiftGoalTests/
├── Helpers/
│ └── RankingEngineSpec.swift
├── Info.plist
├── MockStore.swift
├── Models/
│ ├── ChangesetSpec.swift
│ ├── MatchSpec.swift
│ ├── PlayerSpec.swift
│ └── RankingSpec.swift
└── ViewModels/
├── EditMatchViewModelSpec.swift
├── ManagePlayersViewModelSpec.swift
├── MatchesViewModelSpec.swift
└── RankingsViewModelSpec.swift
SYMBOL INDEX (40 symbols across 11 files)
FILE: Carthage/Checkouts/DZNEmptyDataSet/Examples/WebBrowser/Pods/DZNWebViewController/Source/Classes/DZNPolyActivity.h
type DZNPolyActivityTypeLink (line 16) | typedef NS_OPTIONS(NSUInteger, DZNPolyActivityType) {
FILE: Carthage/Checkouts/DZNEmptyDataSet/Examples/WebBrowser/Pods/DZNWebViewController/Source/Classes/DZNWebViewController.h
type DZNWebViewControllerLoadingStyleNone (line 31) | typedef NS_OPTIONS(NSUInteger, DZNWebViewControllerLoadingStyle) {
FILE: Carthage/Checkouts/Quick/Sources/Quick/DSL/QCKDSL.h
type NSDictionary (line 48) | typedef NSDictionary *(^QCKDSLSharedExampleContext)(void);
function beforeSuite (line 81) | static inline void beforeSuite(QCKDSLEmptyBlock closure) {
function afterSuite (line 96) | static inline void afterSuite(QCKDSLEmptyBlock closure) {
function sharedExamples (line 110) | static inline void sharedExamples(NSString *name, QCKDSLSharedExampleBlo...
function describe (line 121) | static inline void describe(NSString *description, QCKDSLEmptyBlock clos...
function context (line 128) | static inline void context(NSString *description, QCKDSLEmptyBlock closu...
function beforeEach (line 140) | static inline void beforeEach(QCKDSLEmptyBlock closure) {
function beforeEachWithMetadata (line 148) | static inline void beforeEachWithMetadata(QCKDSLExampleMetadataBlock clo...
function afterEach (line 160) | static inline void afterEach(QCKDSLEmptyBlock closure) {
function afterEachWithMetadata (line 168) | static inline void afterEachWithMetadata(QCKDSLExampleMetadataBlock clos...
function pending (line 179) | static inline void pending(NSString *description, QCKDSLEmptyBlock closu...
function xdescribe (line 187) | static inline void xdescribe(NSString *description, QCKDSLEmptyBlock clo...
function xcontext (line 195) | static inline void xcontext(NSString *description, QCKDSLEmptyBlock clos...
function fdescribe (line 204) | static inline void fdescribe(NSString *description, QCKDSLEmptyBlock clo...
function fcontext (line 211) | static inline void fcontext(NSString *description, QCKDSLEmptyBlock clos...
FILE: Carthage/Checkouts/ReactiveCocoa/Carthage/Checkouts/Quick/Sources/Quick/DSL/QCKDSL.h
type NSDictionary (line 48) | typedef NSDictionary *(^QCKDSLSharedExampleContext)(void);
function beforeSuite (line 81) | static inline void beforeSuite(QCKDSLEmptyBlock closure) {
function afterSuite (line 96) | static inline void afterSuite(QCKDSLEmptyBlock closure) {
function sharedExamples (line 110) | static inline void sharedExamples(NSString *name, QCKDSLSharedExampleBlo...
function describe (line 121) | static inline void describe(NSString *description, QCKDSLEmptyBlock clos...
function context (line 128) | static inline void context(NSString *description, QCKDSLEmptyBlock closu...
function beforeEach (line 140) | static inline void beforeEach(QCKDSLEmptyBlock closure) {
function beforeEachWithMetadata (line 148) | static inline void beforeEachWithMetadata(QCKDSLExampleMetadataBlock clo...
function afterEach (line 160) | static inline void afterEach(QCKDSLEmptyBlock closure) {
function afterEachWithMetadata (line 168) | static inline void afterEachWithMetadata(QCKDSLExampleMetadataBlock clos...
function pending (line 179) | static inline void pending(NSString *description, QCKDSLEmptyBlock closu...
function xdescribe (line 187) | static inline void xdescribe(NSString *description, QCKDSLEmptyBlock clo...
function xcontext (line 195) | static inline void xcontext(NSString *description, QCKDSLEmptyBlock clos...
function fdescribe (line 204) | static inline void fdescribe(NSString *description, QCKDSLEmptyBlock clo...
function fcontext (line 211) | static inline void fcontext(NSString *description, QCKDSLEmptyBlock clos...
FILE: Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACEvent.h
type RACEventTypeCompleted (line 16) | typedef NS_ENUM(NSUInteger, RACEventType) {
FILE: Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACScheduler.h
type RACSchedulerPriority (line 17) | typedef enum : long {
FILE: Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACStream.h
type RACStream (line 18) | typedef RACStream * (^RACStreamBindBlock)(id value, BOOL *stop);
FILE: Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACTuple.h
function end (line 97) | end
FILE: Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/extobjc/EXTRuntimeExtensions.h
type rac_propertyMemoryManagementPolicy (line 15) | typedef enum {
type rac_propertyAttributes (line 35) | typedef struct {
FILE: Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/extobjc/EXTScope.h
function rac_executeCleanupBlock (line 93) | static inline void rac_executeCleanupBlock (__strong rac_cleanupBlock_t ...
FILE: Carthage/Checkouts/ReactiveCocoa/ReactiveCocoaTests/Objective-C/RACTestObject.h
type RACTestStruct (line 12) | typedef struct {
Copy disabled (too large)
Download .json
Condensed preview — 1905 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (13,679K chars).
[
{
"path": ".gitignore",
"chars": 635,
"preview": "# Xcode\n#\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.perspectivev3\n!defau"
},
{
"path": "Cartfile",
"chars": 190,
"preview": "github \"dzenbot/DZNEmptyDataSet\" == 1.8.1\ngithub \"ReactiveCocoa/ReactiveCocoa\" == 4.2.2\ngithub \"SnapKit/SnapKit\" == 0.21"
},
{
"path": "Cartfile.private",
"chars": 61,
"preview": "github \"Quick/Quick\" == 0.9.3\ngithub \"Quick/Nimble\" == 4.1.0\n"
},
{
"path": "Cartfile.resolved",
"chars": 288,
"preview": "github \"thoughtbot/Argo\" \"v3.1.0\"\ngithub \"thoughtbot/Curry\" \"v2.3.3\"\ngithub \"dzenbot/DZNEmptyDataSet\" \"v1.8.1\"\ngithub \"Q"
},
{
"path": "Carthage/Checkouts/Argo/.gitattributes",
"chars": 22,
"preview": "*.pbxproj merge=union\n"
},
{
"path": "Carthage/Checkouts/Argo/.gitignore",
"chars": 368,
"preview": "# OS X Finder\n.DS_Store\n\n# Xcode per-user config\n*.mode1\n*.mode1v3\n*.mode2v3\n*.perspective\n*.perspectivev3\n*.pbxuser\nxcu"
},
{
"path": "Carthage/Checkouts/Argo/.gitmodules",
"chars": 238,
"preview": "[submodule \"Carthage/Checkouts/Runes\"]\n\tpath = Carthage/Checkouts/Runes\n\turl = https://github.com/thoughtbot/Runes.git\n["
},
{
"path": "Carthage/Checkouts/Argo/.hound.yml",
"chars": 23,
"preview": "swift:\n enabled: true\n"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Extensions/Dictionary.swift",
"chars": 488,
"preview": "// pure merge for Dictionaries\nfunc + <T, U>(lhs: [T: U], rhs: [T: U]) -> [T: U] {\n var merged = lhs\n for (key, val) i"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Extensions/NSNumber.swift",
"chars": 120,
"preview": "import Foundation\n\nextension NSNumber {\n var isBool: Bool {\n return CFBooleanGetTypeID() == CFGetTypeID(self)\n }\n}\n"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Extensions/RawRepresentable.swift",
"chars": 959,
"preview": "/**\n Default implementation of `Decodable` for `RawRepresentable` types using\n `String` as the raw value.\n*/\npublic ex"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Functions/catDecoded.swift",
"chars": 1533,
"preview": "/**\n Create a new array of unwrapped `.Success` values, filtering out `.Failure`s.\n\n This will iterate through the arr"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Functions/curry.swift",
"chars": 91,
"preview": "func curry<T, U, V>(f : (T, U) -> V) -> T -> U -> V {\n return { x in { y in f(x, y) } }\n}\n"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Functions/decode.swift",
"chars": 7892,
"preview": "/**\n Attempt to transform `AnyObject` into a `Decodable` value.\n\n This function takes `AnyObject` (usually the output "
},
{
"path": "Carthage/Checkouts/Argo/Argo/Functions/flatReduce.swift",
"chars": 1028,
"preview": "/**\n Reduce a sequence with a combinator that returns a `Decoded` type, flattening\n the result.\n\n This function is a "
},
{
"path": "Carthage/Checkouts/Argo/Argo/Functions/sequence.swift",
"chars": 1847,
"preview": "/**\n Convert an `Array` of `Decoded<T>` values to a `Decoded` `Array` of unwrapped\n `T` values.\n\n This performs an al"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Operators/Argo.swift",
"chars": 228,
"preview": "infix operator <| { associativity left precedence 150 }\ninfix operator <|? { associativity left precedence 150 }\ninfix o"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Operators/Decode.swift",
"chars": 5955,
"preview": "/**\n Attempt to decode a value at the specified key into the requested type.\n\n This operator is used to decode a manda"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Resources/Argo.h",
"chars": 344,
"preview": "#import <Foundation/Foundation.h>\n\n//! Project version number for Argo.\nFOUNDATION_EXPORT double ArgoVersionNumber;\n\n//!"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Resources/Info.plist",
"chars": 808,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Types/Decodable.swift",
"chars": 1212,
"preview": "public protocol Decodable {\n /**\n The type of object that will be decoded.\n\n In order to work with the rest of Ar"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Types/DecodeError.swift",
"chars": 1476,
"preview": "/// Possible decoding failure reasons.\npublic enum DecodeError: ErrorType {\n /// The type existing at the key didn't ma"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Types/Decoded/Alternative.swift",
"chars": 1127,
"preview": "infix operator <|> { associativity left precedence 140 }\n\n/**\n Return the left `Decoded` value if it is `.Success`, oth"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Types/Decoded/Applicative.swift",
"chars": 1807,
"preview": "/**\n Conditionally apply a `Decoded` function to a `Decoded` value.\n\n - If either the function or value arguments are "
},
{
"path": "Carthage/Checkouts/Argo/Argo/Types/Decoded/Decoded.swift",
"chars": 4670,
"preview": "/// The result of a failable decoding operation.\npublic enum Decoded<T> {\n case Success(T)\n case Failure(DecodeError)\n"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Types/Decoded/FailureCoalescing.swift",
"chars": 659,
"preview": "/**\n Return the unwrapped value of the `Decoded` value on the left if it is\n `.Success`, otherwise return the default "
},
{
"path": "Carthage/Checkouts/Argo/Argo/Types/Decoded/Functor.swift",
"chars": 1098,
"preview": "/**\n Conditionally map a function over a `Decoded` value.\n\n - If the value is `.Failure`, the function will not be eva"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Types/Decoded/Monad.swift",
"chars": 1734,
"preview": "/**\n Conditionally map a function over a `Decoded` value, flattening the result.\n\n - If the value is `.Failure`, the f"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Types/JSON.swift",
"chars": 2372,
"preview": "import Foundation\n\n/// A type safe representation of JSON.\npublic enum JSON {\n case Object([Swift.String: JSON])\n case"
},
{
"path": "Carthage/Checkouts/Argo/Argo/Types/StandardTypes.swift",
"chars": 9464,
"preview": "import Foundation\n\nextension String: Decodable {\n /**\n Decode `JSON` into `Decoded<String>`.\n\n Succeeds if the va"
},
{
"path": "Carthage/Checkouts/Argo/Argo Playground.playground/Pages/Basics.xcplaygroundpage/Contents.swift",
"chars": 1272,
"preview": "/*:\n**Note:** For **Argo** to be imported into the Playground, ensure that the **Argo-Mac** *scheme* is selected from th"
},
{
"path": "Carthage/Checkouts/Argo/Argo Playground.playground/Pages/Basics.xcplaygroundpage/Resources/user_with_email.json",
"chars": 70,
"preview": "{\n \"id\": 1,\n \"name\": \"Cool User\",\n \"email\": \"u.cool@example.com\"\n}\n"
},
{
"path": "Carthage/Checkouts/Argo/Argo Playground.playground/Pages/Basics.xcplaygroundpage/timeline.xctimeline",
"chars": 9074,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Timeline\n version = \"3.0\">\n <TimelineItems>\n <LoggerValueHistoryTimelin"
},
{
"path": "Carthage/Checkouts/Argo/Argo Playground.playground/Pages/iTunes Example.xcplaygroundpage/Contents.swift",
"chars": 1855,
"preview": "/*:\n**Note:** For **Argo** to be imported into the Playground, ensure that the **Argo-Mac** *scheme* is selected from th"
},
{
"path": "Carthage/Checkouts/Argo/Argo Playground.playground/Pages/iTunes Example.xcplaygroundpage/Resources/tropos.json",
"chars": 4899,
"preview": "{\n \"resultCount\":1,\n \"results\":[\n {\n \"isGameCenterEnabled\":false,\n \"screenshotUrls"
},
{
"path": "Carthage/Checkouts/Argo/Argo Playground.playground/Pages/iTunes Example.xcplaygroundpage/timeline.xctimeline",
"chars": 120,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Timeline\n version = \"3.0\">\n <TimelineItems>\n </TimelineItems>\n</Timeline>\n"
},
{
"path": "Carthage/Checkouts/Argo/Argo Playground.playground/contents.xcplayground",
"chars": 162,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<playground version='6.0' target-platform='osx' requires-full-en"
},
{
"path": "Carthage/Checkouts/Argo/Argo Playground.playground/playground.xcworkspace/contents.xcworkspacedata",
"chars": 151,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"group:Argo.playgroun"
},
{
"path": "Carthage/Checkouts/Argo/Argo.podspec",
"chars": 894,
"preview": "Pod::Spec.new do |spec|\n spec.name = 'Argo'\n spec.version = '3.1.0'\n spec.summary = 'Functional JSON parsing library "
},
{
"path": "Carthage/Checkouts/Argo/Argo.xcodeproj/project.pbxproj",
"chars": 97192,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "Carthage/Checkouts/Argo/Argo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 149,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:Argo.xcodeproj\""
},
{
"path": "Carthage/Checkouts/Argo/Argo.xcodeproj/xcshareddata/xcschemes/Argo-Mac.xcscheme",
"chars": 3624,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0800\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Carthage/Checkouts/Argo/Argo.xcodeproj/xcshareddata/xcschemes/Argo-iOS.xcscheme",
"chars": 3616,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0800\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Carthage/Checkouts/Argo/Argo.xcodeproj/xcshareddata/xcschemes/Argo-tvOS.xcscheme",
"chars": 3628,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0800\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Carthage/Checkouts/Argo/Argo.xcodeproj/xcshareddata/xcschemes/Argo-watchOS.xcscheme",
"chars": 2847,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0800\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Carthage/Checkouts/Argo/Argo.xcworkspace/contents.xcworkspacedata",
"chars": 322,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"group:Argo.xcodeproj"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/Info.plist",
"chars": 733,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/JSONFileReader.swift",
"chars": 404,
"preview": "import Foundation\n\nfunc JSONFromFile(file: String) -> AnyObject? {\n return NSBundle(forClass: JSONFileReader.self).path"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/array_root.json",
"chars": 29,
"preview": "[\n \"foo\",\n \"bar\",\n \"baz\"\n]"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/big_data.json",
"chars": 5590001,
"preview": "[{\n \"numerics\": {\n \"int\": 5,\n \"int64\": 9007199254740992,\n \"int64_string\": \"1076543210012345678\",\n \"double\":"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/booleans.json",
"chars": 42,
"preview": "{\n \"realBool\": true,\n \"numberBool\": 1\n}\n"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/comment.json",
"chars": 98,
"preview": "{\n \"id\": 6,\n \"text\": \"Cool story bro.\",\n \"author\": {\n \"id\": 1,\n \"name\": \"Cool User\"\n }\n}"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/post_bad_comments.json",
"chars": 329,
"preview": "{\n \"id\": 3,\n \"text\": \"A Cool story.\",\n \"author\": {\n \"id\": 1,\n \"name\": \"Cool User\"\n },\n \"comments\": [\n {\n "
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/post_comments.json",
"chars": 360,
"preview": "{\n \"id\": 3,\n \"text\": \"A Cool story.\",\n \"author\": {\n \"id\": 1,\n \"name\": \"Cool User\"\n },\n \"comments\": [\n {\n "
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/post_no_comments.json",
"chars": 114,
"preview": "{\n \"id\": 3,\n \"text\": \"A Cool story.\",\n \"author\": {\n \"id\": 1,\n \"name\": \"Cool User\"\n },\n \"comments\": []\n}"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/root_array.json",
"chars": 89,
"preview": "[\n {\n \"title\": \"Foo\",\n \"age\": 21\n },\n {\n \"title\": \"Bar\",\n \"age\": 32\n }\n]\n"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/root_object.json",
"chars": 91,
"preview": "{\n \"user\": {\n \"id\": 1,\n \"name\": \"Cool User\",\n \"email\": \"u.cool@example.com\"\n }\n}"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/types.json",
"chars": 558,
"preview": "{\n \"numerics\": {\n \"int\": 5,\n \"int64\": 9007199254740992,\n \"int64_string\": \"1076543210012345678\",\n \"double\": "
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/types_fail_embedded.json",
"chars": 174,
"preview": "{\n \"int\": 5,\n \"double\": 3.4,\n \"bool\": false,\n \"int_opt\": 4,\n \"string_array\": [\n \"hello\",\n \"world\"\n ],\n \"use"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/url.json",
"chars": 35,
"preview": "{\n \"url\": \"http://example.com\",\n}\n"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/user_with_bad_type.json",
"chars": 72,
"preview": "{\n \"id\": \"1\",\n \"name\": \"Cool User\",\n \"email\": \"u.cool@example.com\"\n}\n"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/user_with_email.json",
"chars": 69,
"preview": "{\n \"id\": 1,\n \"name\": \"Cool User\",\n \"email\": \"u.cool@example.com\"\n}"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/user_with_nested_name.json",
"chars": 105,
"preview": "{\n \"id\": 1,\n \"userinfo\": {\n \"name\": \"Very Cool User\"\n },\n \"email\": \"u.cool@example.com\"\n}\n"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/user_without_email.json",
"chars": 36,
"preview": "{\n \"id\": 1,\n \"name\": \"Cool User\"\n}"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/JSON/user_without_key.json",
"chars": 59,
"preview": "{\n \"name\": \"Cool User\",\n \"email\": \"u.cool@example.com\"\n}\n"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/Models/Booleans.swift",
"chars": 237,
"preview": "import Argo\nimport Curry\n\nstruct Booleans: Decodable {\n let bool: Bool\n let number: Bool\n\n static func decode(j: JSON"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/Models/Comment.swift",
"chars": 297,
"preview": "import Argo\nimport Curry\n\nstruct Comment {\n let id: Int\n let text: String\n let authorName: String\n}\n\nextension Commen"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/Models/NSURL.swift",
"chars": 351,
"preview": "import Argo\nimport Foundation\n\nextension NSURL: Decodable {\n public typealias DecodedType = NSURL\n\n public class func "
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/Models/Post.swift",
"chars": 325,
"preview": "import Argo\nimport Curry\n\nstruct Post {\n let id: Int\n let text: String\n let author: User\n let comments: [Comment]\n}\n"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/Models/TestModel.swift",
"chars": 1355,
"preview": "import Argo\nimport Curry\n\nstruct TestModel {\n let numerics: TestModelNumerics\n let string: String\n let bool: Bool\n l"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/Models/User.swift",
"chars": 304,
"preview": "import Argo\nimport Curry\n\nstruct User {\n let id: Int\n let name: String\n let email: String?\n}\n\nextension User: Decodab"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/Tests/DecodedTests.swift",
"chars": 4326,
"preview": "import XCTest\nimport Argo\n\nclass DecodedTests: XCTestCase {\n func testDecodedSuccess() {\n let user: Decoded<User> = "
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/Tests/EmbeddedJSONDecodingTests.swift",
"chars": 1149,
"preview": "import XCTest\nimport Argo\n\nclass EmbeddedJSONDecodingTests: XCTestCase {\n func testCommentDecodingWithEmbeddedUserName("
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/Tests/EquatableTests.swift",
"chars": 465,
"preview": "import XCTest\nimport Argo\n\nclass EquatableTests: XCTestCase {\n func testEqualJSONObjects() {\n let json = JSONFromFil"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/Tests/ExampleTests.swift",
"chars": 1950,
"preview": "import XCTest\nimport Argo\nimport Curry\n\nclass ExampleTests: XCTestCase {\n func testJSONWithRootArray() {\n let string"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/Tests/OptionalPropertyDecodingTests.swift",
"chars": 624,
"preview": "import XCTest\nimport Argo\n\nclass OptionalPropertyDecodingTests: XCTestCase {\n func testUserDecodingWithEmail() {\n le"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/Tests/PListDecodingTests.swift",
"chars": 1070,
"preview": "import XCTest\nimport Argo\n\nclass PListDecodingTests: XCTestCase {\n func testDecodingAllTypesFromPList() {\n let model"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/Tests/PerformanceTests.swift",
"chars": 622,
"preview": "import XCTest\nimport Argo\n\nclass PerformanceTests: XCTestCase {\n func testParsePerformance() {\n let json: AnyObject "
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/Tests/RawRepresentableTests.swift",
"chars": 952,
"preview": "import XCTest\nimport Argo\n\nenum TestRawString: String {\n case CoolString\n case NotCoolStringBro\n}\n\nenum TestRawInt: In"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/Tests/SwiftDictionaryDecodingTests.swift",
"chars": 1758,
"preview": "import XCTest\nimport Argo\n\nclass SwiftDictionaryDecodingTests: XCTestCase {\n func testDecodingAllTypesFromSwiftDictiona"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/Tests/TypeTests.swift",
"chars": 1488,
"preview": "import XCTest\nimport Argo\n\nclass TypeTests: XCTestCase {\n func testAllTheTypes() {\n let model: TestModel? = JSONFrom"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/plists/PListFileReader.swift",
"chars": 362,
"preview": "import Foundation\n\nclass PListFileReader {\n class func plist(fromFile file: String) -> AnyObject? {\n let path = NSBu"
},
{
"path": "Carthage/Checkouts/Argo/ArgoTests/plists/types.plist",
"chars": 1135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Carthage/Checkouts/Argo/CONTRIBUTING.md",
"chars": 1313,
"preview": "We love pull requests from everyone. Follow the thoughtbot [code of conduct]\nwhile contributing.\n\n[code of conduct]: htt"
},
{
"path": "Carthage/Checkouts/Argo/Cartfile.private",
"chars": 70,
"preview": "github \"thoughtbot/Curry\" ~> 2.3.2\ngithub \"thoughtbot/Runes\" >= 3.0.0\n"
},
{
"path": "Carthage/Checkouts/Argo/Cartfile.resolved",
"chars": 70,
"preview": "github \"thoughtbot/Curry\" \"v2.3.2\"\ngithub \"thoughtbot/Runes\" \"v3.2.0\"\n"
},
{
"path": "Carthage/Checkouts/Argo/Carthage/Checkouts/Curry/.gitattributes",
"chars": 22,
"preview": "*.pbxproj merge=union\n"
},
{
"path": "Carthage/Checkouts/Argo/Carthage/Checkouts/Curry/.gitignore",
"chars": 372,
"preview": "# OS X Finder\n.DS_Store\n\n# Xcode per-user config\n*.mode1\n*.mode1v3\n*.mode2v3\n*.perspective\n*.perspectivev3\n*.pbxuser\nxcu"
},
{
"path": "Carthage/Checkouts/Argo/Carthage/Checkouts/Curry/CONTRIBUTING.md",
"chars": 718,
"preview": "We love pull requests from everyone. Follow the thoughtbot [code of conduct]\nwhile contributing.\n\n[code of conduct]: htt"
},
{
"path": "Carthage/Checkouts/Argo/Carthage/Checkouts/Curry/Curry.podspec",
"chars": 714,
"preview": "Pod::Spec.new do |spec|\n spec.name = 'Curry'\n spec.version = '2.3.2'\n spec.summary = 'Function Currying for Swift'\n "
},
{
"path": "Carthage/Checkouts/Argo/Carthage/Checkouts/Curry/Curry.xcodeproj/project.pbxproj",
"chars": 22571,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "Carthage/Checkouts/Argo/Carthage/Checkouts/Curry/Curry.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 150,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:Curry.xcodeproj"
},
{
"path": "Carthage/Checkouts/Argo/Carthage/Checkouts/Curry/Curry.xcodeproj/xcshareddata/xcschemes/Curry-Mac.xcscheme",
"chars": 2844,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0800\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Carthage/Checkouts/Argo/Carthage/Checkouts/Curry/Curry.xcodeproj/xcshareddata/xcschemes/Curry-iOS.xcscheme",
"chars": 2844,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0800\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Carthage/Checkouts/Argo/Carthage/Checkouts/Curry/Curry.xcodeproj/xcshareddata/xcschemes/Curry-tvOS.xcscheme",
"chars": 2847,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0800\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Carthage/Checkouts/Argo/Carthage/Checkouts/Curry/Curry.xcodeproj/xcshareddata/xcschemes/Curry-watchOS.xcscheme",
"chars": 2856,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0800\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Carthage/Checkouts/Argo/Carthage/Checkouts/Curry/LICENSE",
"chars": 1073,
"preview": "Copyright (c) 2014 thoughtbot, inc.\n\nMIT License\n\nPermission is hereby granted, free of charge, to any person obtaining\n"
},
{
"path": "Carthage/Checkouts/Argo/Carthage/Checkouts/Curry/Package.swift",
"chars": 68,
"preview": "import PackageDescription\n\nlet package = Package(\n name: \"Curry\"\n)\n"
},
{
"path": "Carthage/Checkouts/Argo/Carthage/Checkouts/Curry/README.md",
"chars": 1955,
"preview": "[](https://github.com/Cart"
},
{
"path": "Carthage/Checkouts/Argo/Carthage/Checkouts/Curry/Resources/Curry.h",
"chars": 481,
"preview": "//\n// Curry.h\n// Curry\n//\n// Created by Gordon Fontenot on 7/9/15.\n// Copyright (c) 2015 thoughtbot. All rights rese"
},
{
"path": "Carthage/Checkouts/Argo/Carthage/Checkouts/Curry/Resources/Info.plist",
"chars": 808,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Carthage/Checkouts/Argo/Carthage/Checkouts/Curry/Source/Curry.swift",
"chars": 21258,
"preview": "public func curry<A, B>(_ function: (A) -> B) -> (A) -> B {\n return { (`a`: A) -> B in function(`a`) }\n}\n\npublic func"
},
{
"path": "Carthage/Checkouts/Argo/Carthage/Checkouts/Curry/bin/generate",
"chars": 3280,
"preview": "#!/usr/bin/env xcrun swift\n\n// Generates a Swift file with implementation of function currying for a ridicolously high n"
},
{
"path": "Carthage/Checkouts/Argo/Documentation/.gitkeep",
"chars": 0,
"preview": ""
},
{
"path": "Carthage/Checkouts/Argo/Documentation/Basic-Usage.md",
"chars": 8334,
"preview": "## Usage\n\nArgo uses Swift's type system along with concepts from functional programming to\nlet you smoothly transform JS"
},
{
"path": "Carthage/Checkouts/Argo/Documentation/Decode-Enums.md",
"chars": 2088,
"preview": "# Decoding Enums\n\nDecoding Structs and Classes is a similar process, but Enums can mix things up.\nIf your Enum inherits "
},
{
"path": "Carthage/Checkouts/Argo/Documentation/Decode-Root-Keys.md",
"chars": 790,
"preview": "# Decoding with Root Keys\n\nThe easiest way to decode models from JSON is to use the global `decode`\nfunction: pass the `"
},
{
"path": "Carthage/Checkouts/Argo/Documentation/Functional-Concepts.md",
"chars": 1349,
"preview": "## Functional Concepts\n\nArgo really wants to be used with patterns borrowed from functional programming\nsuch as `map` (`"
},
{
"path": "Carthage/Checkouts/Argo/Documentation/Ideology.md",
"chars": 1304,
"preview": "## Ideology\n\nArgo's core concept is that in order to maintain type safety, you should only\nbe able to successfully decod"
},
{
"path": "Carthage/Checkouts/Argo/Documentation/README.md",
"chars": 811,
"preview": "# Documentation #\n\nArgo allows you to easily decode loosely typed structures into strongly typed\nmodels. When paired wit"
},
{
"path": "Carthage/Checkouts/Argo/Documentation/Relationships.md",
"chars": 3870,
"preview": "# Decoding Relationships\n\nIt's very common to have models that relate to other models. When all your\nmodels conform to `"
},
{
"path": "Carthage/Checkouts/Argo/ISSUE_TEMPLATE.md",
"chars": 472,
"preview": "_[Description of the issue you are experiencing]_\n\n### Error Messages\n\n_List all the error messages or warnings you are "
},
{
"path": "Carthage/Checkouts/Argo/LICENSE",
"chars": 1073,
"preview": "Copyright (c) 2014 thoughtbot, inc.\n\nMIT License\n\nPermission is hereby granted, free of charge, to any person obtaining\n"
},
{
"path": "Carthage/Checkouts/Argo/README.md",
"chars": 3967,
"preview": "<img src=\"https://raw.githubusercontent.com/thoughtbot/Argo/gh-pages/Argo.png\" width=\"250\" />\n\n# Argo [![Carthage compat"
},
{
"path": "Carthage/Checkouts/Argo/bin/archive",
"chars": 76,
"preview": "#!/usr/bin/env bash\n\ncarthage build --no-skip-current\ncarthage archive Argo\n"
},
{
"path": "Carthage/Checkouts/Argo/bin/setup",
"chars": 121,
"preview": "#!/usr/bin/env bash\n\nbrew install carthage 2> /dev/null\ncarthage bootstrap --use-submodules --no-build --no-use-binaries"
},
{
"path": "Carthage/Checkouts/Argo/bin/test",
"chars": 661,
"preview": "#!/usr/bin/env sh\n\nset -o pipefail\n\nxcrun xcodebuild \\\n -workspace Argo.xcworkspace \\\n -scheme Argo-Mac \\\n test \\\n |"
},
{
"path": "Carthage/Checkouts/Argo/circle.yml",
"chars": 222,
"preview": "machine:\n xcode:\n version: \"7.3\"\n environment:\n XCODE_SCHEME: nonce\n XCODE_WORKSPACE: nonce.xcworkspace\n\ndepe"
},
{
"path": "Carthage/Checkouts/Curry/.gitattributes",
"chars": 22,
"preview": "*.pbxproj merge=union\n"
},
{
"path": "Carthage/Checkouts/Curry/.gitignore",
"chars": 372,
"preview": "# OS X Finder\n.DS_Store\n\n# Xcode per-user config\n*.mode1\n*.mode1v3\n*.mode2v3\n*.perspective\n*.perspectivev3\n*.pbxuser\nxcu"
},
{
"path": "Carthage/Checkouts/Curry/CONTRIBUTING.md",
"chars": 718,
"preview": "We love pull requests from everyone. Follow the thoughtbot [code of conduct]\nwhile contributing.\n\n[code of conduct]: htt"
},
{
"path": "Carthage/Checkouts/Curry/Curry.podspec",
"chars": 714,
"preview": "Pod::Spec.new do |spec|\n spec.name = 'Curry'\n spec.version = '2.3.3'\n spec.summary = 'Function Currying for Swift'\n "
},
{
"path": "Carthage/Checkouts/Curry/Curry.xcodeproj/project.pbxproj",
"chars": 22703,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "Carthage/Checkouts/Curry/Curry.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 150,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:Curry.xcodeproj"
},
{
"path": "Carthage/Checkouts/Curry/Curry.xcodeproj/xcshareddata/xcschemes/Curry-Mac.xcscheme",
"chars": 2844,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0800\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Carthage/Checkouts/Curry/Curry.xcodeproj/xcshareddata/xcschemes/Curry-iOS.xcscheme",
"chars": 2844,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0800\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Carthage/Checkouts/Curry/Curry.xcodeproj/xcshareddata/xcschemes/Curry-tvOS.xcscheme",
"chars": 2847,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0800\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Carthage/Checkouts/Curry/Curry.xcodeproj/xcshareddata/xcschemes/Curry-watchOS.xcscheme",
"chars": 2856,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0800\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Carthage/Checkouts/Curry/LICENSE",
"chars": 1073,
"preview": "Copyright (c) 2014 thoughtbot, inc.\n\nMIT License\n\nPermission is hereby granted, free of charge, to any person obtaining\n"
},
{
"path": "Carthage/Checkouts/Curry/Package.swift",
"chars": 68,
"preview": "import PackageDescription\n\nlet package = Package(\n name: \"Curry\"\n)\n"
},
{
"path": "Carthage/Checkouts/Curry/README.md",
"chars": 1955,
"preview": "[](https://github.com/Cart"
},
{
"path": "Carthage/Checkouts/Curry/Resources/Curry.h",
"chars": 481,
"preview": "//\n// Curry.h\n// Curry\n//\n// Created by Gordon Fontenot on 7/9/15.\n// Copyright (c) 2015 thoughtbot. All rights rese"
},
{
"path": "Carthage/Checkouts/Curry/Resources/Info.plist",
"chars": 808,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Carthage/Checkouts/Curry/Source/Curry.swift",
"chars": 21258,
"preview": "public func curry<A, B>(_ function: (A) -> B) -> (A) -> B {\n return { (`a`: A) -> B in function(`a`) }\n}\n\npublic func"
},
{
"path": "Carthage/Checkouts/Curry/bin/generate",
"chars": 3280,
"preview": "#!/usr/bin/env xcrun swift\n\n// Generates a Swift file with implementation of function currying for a ridicolously high n"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/.gitignore",
"chars": 196,
"preview": "# Xcode\n.DS_Store\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.perspectivev"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/DZNEmptyDataSet.podspec",
"chars": 915,
"preview": "@version = \"1.8\"\n\nPod::Spec.new do |s|\n s.name = \"DZNEmptyDataSet\"\n s.version = @version\n s.summary "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/AppDelegate.h",
"chars": 274,
"preview": "//\n// AppDelegate.h\n// Applications\n//\n// Created by Ignacio on 6/6/14.\n// Copyright (c) 2014 DZN Labs. All rights r"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/AppDelegate.m",
"chars": 413,
"preview": "//\n// AppDelegate.m\n// Applications\n//\n// Created by Ignacio on 6/6/14.\n// Copyright (c) 2014 DZN Labs. All rights r"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Application.h",
"chars": 1419,
"preview": "//\n// Application.h\n// Applications\n//\n// Created by Ignacio on 6/6/14.\n// Copyright (c) 2014 DZN Labs. All rights r"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Application.m",
"chars": 1926,
"preview": "//\n// Application.m\n// Applications\n//\n// Created by Ignacio on 6/6/14.\n// Copyright (c) 2014 DZN Labs. All rights r"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Applications-Info.plist",
"chars": 1471,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Applications-Prefix.pch",
"chars": 344,
"preview": "//\n// Prefix header\n//\n// The contents of this file are implicitly included at the beginning of every source file.\n//\n"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/DetailViewController.h",
"chars": 405,
"preview": "//\n// DetailViewController.h\n// Applications\n//\n// Created by Ignacio on 6/6/14.\n// Copyright (c) 2014 DZN Labs. All"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/DetailViewController.m",
"chars": 31565,
"preview": "//\n// DetailViewController.m\n// Applications\n//\n// Created by Ignacio on 6/6/14.\n// Copyright (c) 2014 DZN Labs. All"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/Contents.json",
"chars": 62,
"preview": "{\n \"info\" : {\n \"version\" : 1,\n \"author\" : \"xcode\"\n }\n}"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/button_background_foursquare_highlight.imageset/Contents.json",
"chars": 403,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"button_background_foursqua"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/button_background_foursquare_normal.imageset/Contents.json",
"chars": 397,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"button_background_foursqua"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/button_background_icloud_highlight.imageset/Contents.json",
"chars": 395,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"button_background_icloud_h"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/button_background_icloud_normal.imageset/Contents.json",
"chars": 389,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"button_background_icloud_n"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/button_background_kickstarter_highlight.imageset/Contents.json",
"chars": 405,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"button_background_kickstar"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/button_background_kickstarter_normal.imageset/Contents.json",
"chars": 399,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"button_background_kickstar"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/header_pinterest.imageset/Contents.json",
"chars": 359,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"header_pinterest.png\"\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/header_podcasts.imageset/Contents.json",
"chars": 357,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"header_podcasts.png\"\n }"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_500px.imageset/Contents.json",
"chars": 347,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_500px.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_airbnb.imageset/Contents.json",
"chars": 349,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_airbnb.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_appstore.imageset/Contents.json",
"chars": 353,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_appstore.png\"\n },\n"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_camera.imageset/Contents.json",
"chars": 349,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_camera.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_dropbox.imageset/Contents.json",
"chars": 351,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_dropbox.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_facebook.imageset/Contents.json",
"chars": 353,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_facebook.png\"\n },\n"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_fancy.imageset/Contents.json",
"chars": 347,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_fancy.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_foursquare.imageset/Contents.json",
"chars": 357,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_foursquare.png\"\n }"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_icloud.imageset/Contents.json",
"chars": 349,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_icloud.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_instagram.imageset/Contents.json",
"chars": 355,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_instagram.png\"\n },"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_itunes_connect.imageset/Contents.json",
"chars": 363,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_itunesconnect.png\"\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_kickstarter.imageset/Contents.json",
"chars": 359,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_kickstarter.png\"\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_path.imageset/Contents.json",
"chars": 345,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_path.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_photos.imageset/Contents.json",
"chars": 349,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_photos.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_pinterest.imageset/Contents.json",
"chars": 355,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_pinterest.png\"\n },"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_podcasts.imageset/Contents.json",
"chars": 353,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_podcasts.png\"\n },\n"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_remote.imageset/Contents.json",
"chars": 349,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_remote.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_safari.imageset/Contents.json",
"chars": 349,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_safari.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_skype.imageset/Contents.json",
"chars": 347,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_skype.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_slack.imageset/Contents.json",
"chars": 347,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_slack.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_tumblr.imageset/Contents.json",
"chars": 349,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_tumblr.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_twitter.imageset/Contents.json",
"chars": 351,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_twitter.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_vesper.imageset/Contents.json",
"chars": 349,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_vesper.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_videos.imageset/Contents.json",
"chars": 349,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_videos.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_vine.imageset/Contents.json",
"chars": 345,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_vine.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_whatsapp.imageset/Contents.json",
"chars": 353,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_whatsapp.png\"\n },\n"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/icon_wwdc.imageset/Contents.json",
"chars": 345,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"icon_wwdc.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/loading_imgBlue_78x78.imageset/Contents.json",
"chars": 372,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\"\n },\n {\n \"idiom\" : \"universal\",\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/logo_500px.imageset/Contents.json",
"chars": 347,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"logo_500px.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/logo_airbnb.imageset/Contents.json",
"chars": 349,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"logo_airbnb.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/logo_dropbox.imageset/Contents.json",
"chars": 351,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"logo_dropbox.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/logo_facebook.imageset/Contents.json",
"chars": 353,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"logo_facebook.png\"\n },\n"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/logo_fancy.imageset/Contents.json",
"chars": 347,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"logo_fancy.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/logo_foursquare.imageset/Contents.json",
"chars": 357,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"logo_foursquare.png\"\n }"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/logo_instagram.imageset/Contents.json",
"chars": 355,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"logo_instagram.png\"\n },"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/logo_kickstarter.imageset/Contents.json",
"chars": 359,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"logo_kickstarter.png\"\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/logo_path.imageset/Contents.json",
"chars": 345,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"logo_path.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/logo_pinterest.imageset/Contents.json",
"chars": 355,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"logo_pinterest.png\"\n },"
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/logo_skype.imageset/Contents.json",
"chars": 347,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"logo_skype.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/logo_slack.imageset/Contents.json",
"chars": 347,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"logo_slack.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/logo_tumblr.imageset/Contents.json",
"chars": 349,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"logo_tumblr.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/logo_twitter.imageset/Contents.json",
"chars": 351,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"logo_twitter.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/logo_vesper.imageset/Contents.json",
"chars": 349,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"logo_vesper.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/logo_vine.imageset/Contents.json",
"chars": 345,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"logo_vine.png\"\n },\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/placeholder_500px.imageset/Contents.json",
"chars": 361,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"placeholder_500px.png\"\n "
},
{
"path": "Carthage/Checkouts/DZNEmptyDataSet/Examples/Applications/Applications/Images.xcassets/placeholder_airbnb.imageset/Contents.json",
"chars": 363,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\",\n \"filename\" : \"placeholder_airbnb.png\"\n "
}
]
// ... and 1705 more files (download for full content)
About this extraction
This page contains the full source code of the richeterre/SwiftGoal GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1905 files (11.5 MB), approximately 3.2M tokens, and a symbol index with 40 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.