From 552ab693a37e85fa7af982d779d9b86b25629170 Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Tue, 20 Jun 2017 22:00:19 -0700 Subject: [PATCH] Create common data structure for all feeds. Using Swift structs, because I love them so awfully much. --- Frameworks/RSParser/Feeds/FeedParser.swift | 26 ++ Frameworks/RSParser/Feeds/FeedType.swift | 18 ++ .../RSParser/Feeds/ParsedAttachment.swift | 18 ++ Frameworks/RSParser/Feeds/ParsedAuthor.swift | 17 ++ Frameworks/RSParser/Feeds/ParsedFeed.swift | 25 ++ Frameworks/RSParser/Feeds/ParsedHub.swift | 15 ++ Frameworks/RSParser/Feeds/ParsedItem.swift | 27 ++ .../{XML/Feeds => Feeds/XML}/RSAtomParser.h | 0 .../{XML/Feeds => Feeds/XML}/RSAtomParser.m | 0 .../RSParser/Feeds/{ => XML}/RSFeedParser.h | 0 .../RSParser/Feeds/{ => XML}/RSFeedParser.m | 0 .../Feeds/{ => XML}/RSParsedArticle.h | 0 .../Feeds/{ => XML}/RSParsedArticle.m | 0 .../RSParser/Feeds/{ => XML}/RSParsedFeed.h | 0 .../RSParser/Feeds/{ => XML}/RSParsedFeed.m | 0 .../{XML/Feeds => Feeds/XML}/RSRSSParser.h | 0 .../{XML/Feeds => Feeds/XML}/RSRSSParser.m | 0 .../{XML => }/OPML/RSOPMLAttributes.h | 0 .../{XML => }/OPML/RSOPMLAttributes.m | 0 .../RSParser/{XML => }/OPML/RSOPMLDocument.h | 0 .../RSParser/{XML => }/OPML/RSOPMLDocument.m | 0 .../{XML => }/OPML/RSOPMLFeedSpecifier.h | 0 .../{XML => }/OPML/RSOPMLFeedSpecifier.m | 0 .../RSParser/{XML => }/OPML/RSOPMLItem.h | 0 .../RSParser/{XML => }/OPML/RSOPMLItem.m | 0 .../RSParser/{XML => }/OPML/RSOPMLParser.h | 0 .../RSParser/{XML => }/OPML/RSOPMLParser.m | 0 Frameworks/RSParser/ParserData.swift | 21 ++ Frameworks/RSParser/RSParser.h | 56 ++-- .../RSParser.xcodeproj/project.pbxproj | 239 +++++++++++++++++- Frameworks/RSParser/RSParserData.h | 22 -- Frameworks/RSParser/RSParserData.m | 28 -- .../RSParser/{XML => }/SAX/RSSAXParser.h | 0 .../RSParser/{XML => }/SAX/RSSAXParser.m | 0 34 files changed, 430 insertions(+), 82 deletions(-) create mode 100644 Frameworks/RSParser/Feeds/FeedParser.swift create mode 100644 Frameworks/RSParser/Feeds/FeedType.swift create mode 100644 Frameworks/RSParser/Feeds/ParsedAttachment.swift create mode 100644 Frameworks/RSParser/Feeds/ParsedAuthor.swift create mode 100644 Frameworks/RSParser/Feeds/ParsedFeed.swift create mode 100644 Frameworks/RSParser/Feeds/ParsedHub.swift create mode 100644 Frameworks/RSParser/Feeds/ParsedItem.swift rename Frameworks/RSParser/{XML/Feeds => Feeds/XML}/RSAtomParser.h (100%) rename Frameworks/RSParser/{XML/Feeds => Feeds/XML}/RSAtomParser.m (100%) rename Frameworks/RSParser/Feeds/{ => XML}/RSFeedParser.h (100%) rename Frameworks/RSParser/Feeds/{ => XML}/RSFeedParser.m (100%) rename Frameworks/RSParser/Feeds/{ => XML}/RSParsedArticle.h (100%) rename Frameworks/RSParser/Feeds/{ => XML}/RSParsedArticle.m (100%) rename Frameworks/RSParser/Feeds/{ => XML}/RSParsedFeed.h (100%) rename Frameworks/RSParser/Feeds/{ => XML}/RSParsedFeed.m (100%) rename Frameworks/RSParser/{XML/Feeds => Feeds/XML}/RSRSSParser.h (100%) rename Frameworks/RSParser/{XML/Feeds => Feeds/XML}/RSRSSParser.m (100%) rename Frameworks/RSParser/{XML => }/OPML/RSOPMLAttributes.h (100%) rename Frameworks/RSParser/{XML => }/OPML/RSOPMLAttributes.m (100%) rename Frameworks/RSParser/{XML => }/OPML/RSOPMLDocument.h (100%) rename Frameworks/RSParser/{XML => }/OPML/RSOPMLDocument.m (100%) rename Frameworks/RSParser/{XML => }/OPML/RSOPMLFeedSpecifier.h (100%) rename Frameworks/RSParser/{XML => }/OPML/RSOPMLFeedSpecifier.m (100%) rename Frameworks/RSParser/{XML => }/OPML/RSOPMLItem.h (100%) rename Frameworks/RSParser/{XML => }/OPML/RSOPMLItem.m (100%) rename Frameworks/RSParser/{XML => }/OPML/RSOPMLParser.h (100%) rename Frameworks/RSParser/{XML => }/OPML/RSOPMLParser.m (100%) create mode 100644 Frameworks/RSParser/ParserData.swift delete mode 100755 Frameworks/RSParser/RSParserData.h delete mode 100755 Frameworks/RSParser/RSParserData.m rename Frameworks/RSParser/{XML => }/SAX/RSSAXParser.h (100%) rename Frameworks/RSParser/{XML => }/SAX/RSSAXParser.m (100%) diff --git a/Frameworks/RSParser/Feeds/FeedParser.swift b/Frameworks/RSParser/Feeds/FeedParser.swift new file mode 100644 index 000000000..4dedd59d7 --- /dev/null +++ b/Frameworks/RSParser/Feeds/FeedParser.swift @@ -0,0 +1,26 @@ +// +// FeedParser.swift +// RSParser +// +// Created by Brent Simmons on 6/20/17. +// Copyright © 2017 Ranchero Software, LLC. All rights reserved. +// + +import Foundation + +public struct FeedParser { + + static func feedType(parserData: ParserData) -> FeedType { + + // If there’s not enough data, return .unknown. Ask again when there’s more data. + // If it’s definitely not a feed, return .notAFeed. + + return .unknown //stub + } + + static func parseFeed(parserData: ParserData) throws -> ParsedFeed? { + + + return nil //stub + } +} diff --git a/Frameworks/RSParser/Feeds/FeedType.swift b/Frameworks/RSParser/Feeds/FeedType.swift new file mode 100644 index 000000000..498284327 --- /dev/null +++ b/Frameworks/RSParser/Feeds/FeedType.swift @@ -0,0 +1,18 @@ +// +// FeedType.swift +// RSParser +// +// Created by Brent Simmons on 6/20/17. +// Copyright © 2017 Ranchero Software, LLC. All rights reserved. +// + +import Foundation + +public enum FeedType { + case rss + case atom + case jsonFeed + case rssInJSON + case unknown + case notAFeed +} diff --git a/Frameworks/RSParser/Feeds/ParsedAttachment.swift b/Frameworks/RSParser/Feeds/ParsedAttachment.swift new file mode 100644 index 000000000..60989fda6 --- /dev/null +++ b/Frameworks/RSParser/Feeds/ParsedAttachment.swift @@ -0,0 +1,18 @@ +// +// ParsedAttachment.swift +// RSParser +// +// Created by Brent Simmons on 6/20/17. +// Copyright © 2017 Ranchero Software, LLC. All rights reserved. +// + +import Foundation + +public struct ParsedAttachment { + + public let url: String? + public let mimeType: String? + public let title: String? + public let sizeInBytes: Int? + public let durationInSeconds: Int? +} diff --git a/Frameworks/RSParser/Feeds/ParsedAuthor.swift b/Frameworks/RSParser/Feeds/ParsedAuthor.swift new file mode 100644 index 000000000..16ff631d4 --- /dev/null +++ b/Frameworks/RSParser/Feeds/ParsedAuthor.swift @@ -0,0 +1,17 @@ +// +// ParsedAuthor.swift +// RSParser +// +// Created by Brent Simmons on 6/20/17. +// Copyright © 2017 Ranchero Software, LLC. All rights reserved. +// + +import Foundation + +public struct ParsedAuthor { + + public let name: String? + public let url: String? + public let avatarURL: String? + public let emailAddress: String? +} diff --git a/Frameworks/RSParser/Feeds/ParsedFeed.swift b/Frameworks/RSParser/Feeds/ParsedFeed.swift new file mode 100644 index 000000000..4a98bbae0 --- /dev/null +++ b/Frameworks/RSParser/Feeds/ParsedFeed.swift @@ -0,0 +1,25 @@ +// +// ParsedFeed.swift +// RSParser +// +// Created by Brent Simmons on 6/20/17. +// Copyright © 2017 Ranchero Software, LLC. All rights reserved. +// + +import Foundation + +public struct ParsedFeed { + + public let type: FeedType + public let title: String? + public let homePageURL: String? + public let feedURL: String? + public let feedDescription: String? + public let nextURL: String? + public let iconURL: String? + public let faviconURL: String? + public let authors: [ParsedAuthor]? + public let expired: Bool + public let hubs: [ParsedHub]? + public let items: [ParsedItem] +} diff --git a/Frameworks/RSParser/Feeds/ParsedHub.swift b/Frameworks/RSParser/Feeds/ParsedHub.swift new file mode 100644 index 000000000..961799570 --- /dev/null +++ b/Frameworks/RSParser/Feeds/ParsedHub.swift @@ -0,0 +1,15 @@ +// +// ParsedHub.swift +// RSParser +// +// Created by Brent Simmons on 6/20/17. +// Copyright © 2017 Ranchero Software, LLC. All rights reserved. +// + +import Foundation + +public struct ParsedHub { + + public let type: String? + public let url: String? +} diff --git a/Frameworks/RSParser/Feeds/ParsedItem.swift b/Frameworks/RSParser/Feeds/ParsedItem.swift new file mode 100644 index 000000000..090d9c563 --- /dev/null +++ b/Frameworks/RSParser/Feeds/ParsedItem.swift @@ -0,0 +1,27 @@ +// +// ParsedItem.swift +// RSParser +// +// Created by Brent Simmons on 6/20/17. +// Copyright © 2017 Ranchero Software, LLC. All rights reserved. +// + +import Foundation + +public struct ParsedItem { + + public let uniqueID: String? + public let url: String? + public let externalURL: String? + public let title: String? + public let contentHTML: String? + public let contentText: String? + public let summary: String? + public let imageURL: String? + public let bannerImageURL: String? + public let datePublished: Date? + public let dateModified: Date? + public let authors: [ParsedAuthor]? + public let tags: [String]? + public let attachments: [ParsedAttachment]? +} diff --git a/Frameworks/RSParser/XML/Feeds/RSAtomParser.h b/Frameworks/RSParser/Feeds/XML/RSAtomParser.h similarity index 100% rename from Frameworks/RSParser/XML/Feeds/RSAtomParser.h rename to Frameworks/RSParser/Feeds/XML/RSAtomParser.h diff --git a/Frameworks/RSParser/XML/Feeds/RSAtomParser.m b/Frameworks/RSParser/Feeds/XML/RSAtomParser.m similarity index 100% rename from Frameworks/RSParser/XML/Feeds/RSAtomParser.m rename to Frameworks/RSParser/Feeds/XML/RSAtomParser.m diff --git a/Frameworks/RSParser/Feeds/RSFeedParser.h b/Frameworks/RSParser/Feeds/XML/RSFeedParser.h similarity index 100% rename from Frameworks/RSParser/Feeds/RSFeedParser.h rename to Frameworks/RSParser/Feeds/XML/RSFeedParser.h diff --git a/Frameworks/RSParser/Feeds/RSFeedParser.m b/Frameworks/RSParser/Feeds/XML/RSFeedParser.m similarity index 100% rename from Frameworks/RSParser/Feeds/RSFeedParser.m rename to Frameworks/RSParser/Feeds/XML/RSFeedParser.m diff --git a/Frameworks/RSParser/Feeds/RSParsedArticle.h b/Frameworks/RSParser/Feeds/XML/RSParsedArticle.h similarity index 100% rename from Frameworks/RSParser/Feeds/RSParsedArticle.h rename to Frameworks/RSParser/Feeds/XML/RSParsedArticle.h diff --git a/Frameworks/RSParser/Feeds/RSParsedArticle.m b/Frameworks/RSParser/Feeds/XML/RSParsedArticle.m similarity index 100% rename from Frameworks/RSParser/Feeds/RSParsedArticle.m rename to Frameworks/RSParser/Feeds/XML/RSParsedArticle.m diff --git a/Frameworks/RSParser/Feeds/RSParsedFeed.h b/Frameworks/RSParser/Feeds/XML/RSParsedFeed.h similarity index 100% rename from Frameworks/RSParser/Feeds/RSParsedFeed.h rename to Frameworks/RSParser/Feeds/XML/RSParsedFeed.h diff --git a/Frameworks/RSParser/Feeds/RSParsedFeed.m b/Frameworks/RSParser/Feeds/XML/RSParsedFeed.m similarity index 100% rename from Frameworks/RSParser/Feeds/RSParsedFeed.m rename to Frameworks/RSParser/Feeds/XML/RSParsedFeed.m diff --git a/Frameworks/RSParser/XML/Feeds/RSRSSParser.h b/Frameworks/RSParser/Feeds/XML/RSRSSParser.h similarity index 100% rename from Frameworks/RSParser/XML/Feeds/RSRSSParser.h rename to Frameworks/RSParser/Feeds/XML/RSRSSParser.h diff --git a/Frameworks/RSParser/XML/Feeds/RSRSSParser.m b/Frameworks/RSParser/Feeds/XML/RSRSSParser.m similarity index 100% rename from Frameworks/RSParser/XML/Feeds/RSRSSParser.m rename to Frameworks/RSParser/Feeds/XML/RSRSSParser.m diff --git a/Frameworks/RSParser/XML/OPML/RSOPMLAttributes.h b/Frameworks/RSParser/OPML/RSOPMLAttributes.h similarity index 100% rename from Frameworks/RSParser/XML/OPML/RSOPMLAttributes.h rename to Frameworks/RSParser/OPML/RSOPMLAttributes.h diff --git a/Frameworks/RSParser/XML/OPML/RSOPMLAttributes.m b/Frameworks/RSParser/OPML/RSOPMLAttributes.m similarity index 100% rename from Frameworks/RSParser/XML/OPML/RSOPMLAttributes.m rename to Frameworks/RSParser/OPML/RSOPMLAttributes.m diff --git a/Frameworks/RSParser/XML/OPML/RSOPMLDocument.h b/Frameworks/RSParser/OPML/RSOPMLDocument.h similarity index 100% rename from Frameworks/RSParser/XML/OPML/RSOPMLDocument.h rename to Frameworks/RSParser/OPML/RSOPMLDocument.h diff --git a/Frameworks/RSParser/XML/OPML/RSOPMLDocument.m b/Frameworks/RSParser/OPML/RSOPMLDocument.m similarity index 100% rename from Frameworks/RSParser/XML/OPML/RSOPMLDocument.m rename to Frameworks/RSParser/OPML/RSOPMLDocument.m diff --git a/Frameworks/RSParser/XML/OPML/RSOPMLFeedSpecifier.h b/Frameworks/RSParser/OPML/RSOPMLFeedSpecifier.h similarity index 100% rename from Frameworks/RSParser/XML/OPML/RSOPMLFeedSpecifier.h rename to Frameworks/RSParser/OPML/RSOPMLFeedSpecifier.h diff --git a/Frameworks/RSParser/XML/OPML/RSOPMLFeedSpecifier.m b/Frameworks/RSParser/OPML/RSOPMLFeedSpecifier.m similarity index 100% rename from Frameworks/RSParser/XML/OPML/RSOPMLFeedSpecifier.m rename to Frameworks/RSParser/OPML/RSOPMLFeedSpecifier.m diff --git a/Frameworks/RSParser/XML/OPML/RSOPMLItem.h b/Frameworks/RSParser/OPML/RSOPMLItem.h similarity index 100% rename from Frameworks/RSParser/XML/OPML/RSOPMLItem.h rename to Frameworks/RSParser/OPML/RSOPMLItem.h diff --git a/Frameworks/RSParser/XML/OPML/RSOPMLItem.m b/Frameworks/RSParser/OPML/RSOPMLItem.m similarity index 100% rename from Frameworks/RSParser/XML/OPML/RSOPMLItem.m rename to Frameworks/RSParser/OPML/RSOPMLItem.m diff --git a/Frameworks/RSParser/XML/OPML/RSOPMLParser.h b/Frameworks/RSParser/OPML/RSOPMLParser.h similarity index 100% rename from Frameworks/RSParser/XML/OPML/RSOPMLParser.h rename to Frameworks/RSParser/OPML/RSOPMLParser.h diff --git a/Frameworks/RSParser/XML/OPML/RSOPMLParser.m b/Frameworks/RSParser/OPML/RSOPMLParser.m similarity index 100% rename from Frameworks/RSParser/XML/OPML/RSOPMLParser.m rename to Frameworks/RSParser/OPML/RSOPMLParser.m diff --git a/Frameworks/RSParser/ParserData.swift b/Frameworks/RSParser/ParserData.swift new file mode 100644 index 000000000..20e24dc0d --- /dev/null +++ b/Frameworks/RSParser/ParserData.swift @@ -0,0 +1,21 @@ +// +// ParserData.swift +// RSParser +// +// Created by Brent Simmons on 6/20/17. +// Copyright © 2017 Ranchero Software, LLC. All rights reserved. +// + +import Foundation + +public final class ParserData { + + let url: String + let data: Data + + public init(url: String, data: Data) { + + self.url = url + self.data = data + } +} diff --git a/Frameworks/RSParser/RSParser.h b/Frameworks/RSParser/RSParser.h index 7ffc0324e..69a75e5f0 100644 --- a/Frameworks/RSParser/RSParser.h +++ b/Frameworks/RSParser/RSParser.h @@ -9,32 +9,32 @@ @import Foundation; -#import -#import - -#import -#import -#import -#import -#import -#import - -#import -#import -#import -#import -#import - -#import - -#import -#import - -// HTML - -#import - -#import -#import -#import +//#import +//#import +// +//#import +//#import +//#import +//#import +//#import +//#import +// +//#import +//#import +//#import +//#import +//#import +// +//#import +// +//#import +//#import +// +//// HTML +// +//#import +// +//#import +//#import +//#import diff --git a/Frameworks/RSParser/RSParser.xcodeproj/project.pbxproj b/Frameworks/RSParser/RSParser.xcodeproj/project.pbxproj index 676f908ae..a6d9506be 100644 --- a/Frameworks/RSParser/RSParser.xcodeproj/project.pbxproj +++ b/Frameworks/RSParser/RSParser.xcodeproj/project.pbxproj @@ -7,7 +7,51 @@ objects = { /* Begin PBXBuildFile section */ + 84469CE21EFA2F3E004A6B28 /* ParserData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84469CE11EFA2F3E004A6B28 /* ParserData.swift */; }; + 84469CEF1EFA3000004A6B28 /* RSOPMLAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469CE51EFA3000004A6B28 /* RSOPMLAttributes.h */; }; + 84469CF01EFA3000004A6B28 /* RSOPMLAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469CE61EFA3000004A6B28 /* RSOPMLAttributes.m */; }; + 84469CF11EFA3000004A6B28 /* RSOPMLDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469CE71EFA3000004A6B28 /* RSOPMLDocument.h */; }; + 84469CF21EFA3000004A6B28 /* RSOPMLDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469CE81EFA3000004A6B28 /* RSOPMLDocument.m */; }; + 84469CF31EFA3000004A6B28 /* RSOPMLFeedSpecifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469CE91EFA3000004A6B28 /* RSOPMLFeedSpecifier.h */; }; + 84469CF41EFA3000004A6B28 /* RSOPMLFeedSpecifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469CEA1EFA3000004A6B28 /* RSOPMLFeedSpecifier.m */; }; + 84469CF51EFA3000004A6B28 /* RSOPMLItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469CEB1EFA3000004A6B28 /* RSOPMLItem.h */; }; + 84469CF61EFA3000004A6B28 /* RSOPMLItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469CEC1EFA3000004A6B28 /* RSOPMLItem.m */; }; + 84469CF71EFA3000004A6B28 /* RSOPMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469CED1EFA3000004A6B28 /* RSOPMLParser.h */; }; + 84469CF81EFA3000004A6B28 /* RSOPMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469CEE1EFA3000004A6B28 /* RSOPMLParser.m */; }; + 84469CFC1EFA3069004A6B28 /* RSSAXParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469CFA1EFA3069004A6B28 /* RSSAXParser.h */; }; + 84469CFD1EFA3069004A6B28 /* RSSAXParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469CFB1EFA3069004A6B28 /* RSSAXParser.m */; }; + 84469D071EFA307E004A6B28 /* RSHTMLLinkParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469CFF1EFA307E004A6B28 /* RSHTMLLinkParser.h */; }; + 84469D081EFA307E004A6B28 /* RSHTMLLinkParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469D001EFA307E004A6B28 /* RSHTMLLinkParser.m */; }; + 84469D091EFA307E004A6B28 /* RSHTMLMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469D011EFA307E004A6B28 /* RSHTMLMetadata.h */; }; + 84469D0A1EFA307E004A6B28 /* RSHTMLMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469D021EFA307E004A6B28 /* RSHTMLMetadata.m */; }; + 84469D0B1EFA307E004A6B28 /* RSHTMLMetadataParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469D031EFA307E004A6B28 /* RSHTMLMetadataParser.h */; }; + 84469D0C1EFA307E004A6B28 /* RSHTMLMetadataParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469D041EFA307E004A6B28 /* RSHTMLMetadataParser.m */; }; + 84469D0D1EFA307E004A6B28 /* RSSAXHTMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469D051EFA307E004A6B28 /* RSSAXHTMLParser.h */; }; + 84469D0E1EFA307E004A6B28 /* RSSAXHTMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469D061EFA307E004A6B28 /* RSSAXHTMLParser.m */; }; + 84469D161EFA30A2004A6B28 /* NSString+RSXML.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469D101EFA30A2004A6B28 /* NSString+RSXML.h */; }; + 84469D171EFA30A2004A6B28 /* NSString+RSXML.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469D111EFA30A2004A6B28 /* NSString+RSXML.m */; }; + 84469D181EFA30A2004A6B28 /* RSDateParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469D121EFA30A2004A6B28 /* RSDateParser.h */; }; + 84469D191EFA30A2004A6B28 /* RSDateParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469D131EFA30A2004A6B28 /* RSDateParser.m */; }; + 84469D1A1EFA30A2004A6B28 /* RSXMLInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469D141EFA30A2004A6B28 /* RSXMLInternal.h */; }; + 84469D1B1EFA30A2004A6B28 /* RSXMLInternal.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469D151EFA30A2004A6B28 /* RSXMLInternal.m */; }; + 84469D271EFA3134004A6B28 /* RSAtomParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469D1D1EFA3134004A6B28 /* RSAtomParser.h */; }; + 84469D281EFA3134004A6B28 /* RSAtomParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469D1E1EFA3134004A6B28 /* RSAtomParser.m */; }; + 84469D291EFA3134004A6B28 /* RSFeedParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469D1F1EFA3134004A6B28 /* RSFeedParser.h */; }; + 84469D2A1EFA3134004A6B28 /* RSFeedParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469D201EFA3134004A6B28 /* RSFeedParser.m */; }; + 84469D2B1EFA3134004A6B28 /* RSParsedArticle.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469D211EFA3134004A6B28 /* RSParsedArticle.h */; }; + 84469D2C1EFA3134004A6B28 /* RSParsedArticle.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469D221EFA3134004A6B28 /* RSParsedArticle.m */; }; + 84469D2D1EFA3134004A6B28 /* RSParsedFeed.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469D231EFA3134004A6B28 /* RSParsedFeed.h */; }; + 84469D2E1EFA3134004A6B28 /* RSParsedFeed.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469D241EFA3134004A6B28 /* RSParsedFeed.m */; }; + 84469D2F1EFA3134004A6B28 /* RSRSSParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 84469D251EFA3134004A6B28 /* RSRSSParser.h */; }; + 84469D301EFA3134004A6B28 /* RSRSSParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 84469D261EFA3134004A6B28 /* RSRSSParser.m */; }; + 84469D321EFA31CF004A6B28 /* FeedParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84469D311EFA31CF004A6B28 /* FeedParser.swift */; }; 84D81BDC1EFA28E700652332 /* RSParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D81BDA1EFA28E700652332 /* RSParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 84D81BDE1EFA2B7D00652332 /* ParsedFeed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84D81BDD1EFA2B7D00652332 /* ParsedFeed.swift */; }; + 84D81BE01EFA2BAE00652332 /* FeedType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84D81BDF1EFA2BAE00652332 /* FeedType.swift */; }; + 84D81BE21EFA2D0900652332 /* ParsedAuthor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84D81BE11EFA2D0900652332 /* ParsedAuthor.swift */; }; + 84D81BE41EFA2D3D00652332 /* ParsedItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84D81BE31EFA2D3D00652332 /* ParsedItem.swift */; }; + 84D81BE61EFA2DFB00652332 /* ParsedAttachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84D81BE51EFA2DFB00652332 /* ParsedAttachment.swift */; }; + 84D81BE81EFA2E6700652332 /* ParsedHub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84D81BE71EFA2E6700652332 /* ParsedHub.swift */; }; 84FF5F8E1EFA285800C15A01 /* RSParser.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84FF5F841EFA285800C15A01 /* RSParser.framework */; }; 84FF5F931EFA285800C15A01 /* RSParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84FF5F921EFA285800C15A01 /* RSParserTests.swift */; }; /* End PBXBuildFile section */ @@ -23,8 +67,52 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 84469CE11EFA2F3E004A6B28 /* ParserData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ParserData.swift; sourceTree = ""; }; + 84469CE51EFA3000004A6B28 /* RSOPMLAttributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSOPMLAttributes.h; sourceTree = ""; }; + 84469CE61EFA3000004A6B28 /* RSOPMLAttributes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSOPMLAttributes.m; sourceTree = ""; }; + 84469CE71EFA3000004A6B28 /* RSOPMLDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSOPMLDocument.h; sourceTree = ""; }; + 84469CE81EFA3000004A6B28 /* RSOPMLDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSOPMLDocument.m; sourceTree = ""; }; + 84469CE91EFA3000004A6B28 /* RSOPMLFeedSpecifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSOPMLFeedSpecifier.h; sourceTree = ""; }; + 84469CEA1EFA3000004A6B28 /* RSOPMLFeedSpecifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSOPMLFeedSpecifier.m; sourceTree = ""; }; + 84469CEB1EFA3000004A6B28 /* RSOPMLItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSOPMLItem.h; sourceTree = ""; }; + 84469CEC1EFA3000004A6B28 /* RSOPMLItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSOPMLItem.m; sourceTree = ""; }; + 84469CED1EFA3000004A6B28 /* RSOPMLParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSOPMLParser.h; sourceTree = ""; }; + 84469CEE1EFA3000004A6B28 /* RSOPMLParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSOPMLParser.m; sourceTree = ""; }; + 84469CFA1EFA3069004A6B28 /* RSSAXParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSSAXParser.h; sourceTree = ""; }; + 84469CFB1EFA3069004A6B28 /* RSSAXParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSSAXParser.m; sourceTree = ""; }; + 84469CFF1EFA307E004A6B28 /* RSHTMLLinkParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSHTMLLinkParser.h; sourceTree = ""; }; + 84469D001EFA307E004A6B28 /* RSHTMLLinkParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSHTMLLinkParser.m; sourceTree = ""; }; + 84469D011EFA307E004A6B28 /* RSHTMLMetadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSHTMLMetadata.h; sourceTree = ""; }; + 84469D021EFA307E004A6B28 /* RSHTMLMetadata.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSHTMLMetadata.m; sourceTree = ""; }; + 84469D031EFA307E004A6B28 /* RSHTMLMetadataParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSHTMLMetadataParser.h; sourceTree = ""; }; + 84469D041EFA307E004A6B28 /* RSHTMLMetadataParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSHTMLMetadataParser.m; sourceTree = ""; }; + 84469D051EFA307E004A6B28 /* RSSAXHTMLParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSSAXHTMLParser.h; sourceTree = ""; }; + 84469D061EFA307E004A6B28 /* RSSAXHTMLParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSSAXHTMLParser.m; sourceTree = ""; }; + 84469D101EFA30A2004A6B28 /* NSString+RSXML.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+RSXML.h"; sourceTree = ""; }; + 84469D111EFA30A2004A6B28 /* NSString+RSXML.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+RSXML.m"; sourceTree = ""; }; + 84469D121EFA30A2004A6B28 /* RSDateParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSDateParser.h; sourceTree = ""; }; + 84469D131EFA30A2004A6B28 /* RSDateParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSDateParser.m; sourceTree = ""; }; + 84469D141EFA30A2004A6B28 /* RSXMLInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSXMLInternal.h; sourceTree = ""; }; + 84469D151EFA30A2004A6B28 /* RSXMLInternal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSXMLInternal.m; sourceTree = ""; }; + 84469D1D1EFA3134004A6B28 /* RSAtomParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSAtomParser.h; sourceTree = ""; }; + 84469D1E1EFA3134004A6B28 /* RSAtomParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSAtomParser.m; sourceTree = ""; }; + 84469D1F1EFA3134004A6B28 /* RSFeedParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSFeedParser.h; sourceTree = ""; }; + 84469D201EFA3134004A6B28 /* RSFeedParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSFeedParser.m; sourceTree = ""; }; + 84469D211EFA3134004A6B28 /* RSParsedArticle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSParsedArticle.h; sourceTree = ""; }; + 84469D221EFA3134004A6B28 /* RSParsedArticle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSParsedArticle.m; sourceTree = ""; }; + 84469D231EFA3134004A6B28 /* RSParsedFeed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSParsedFeed.h; sourceTree = ""; }; + 84469D241EFA3134004A6B28 /* RSParsedFeed.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSParsedFeed.m; sourceTree = ""; }; + 84469D251EFA3134004A6B28 /* RSRSSParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSRSSParser.h; sourceTree = ""; }; + 84469D261EFA3134004A6B28 /* RSRSSParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSRSSParser.m; sourceTree = ""; }; + 84469D311EFA31CF004A6B28 /* FeedParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = FeedParser.swift; path = Feeds/FeedParser.swift; sourceTree = ""; }; 84D81BD91EFA28E700652332 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 84D81BDA1EFA28E700652332 /* RSParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSParser.h; sourceTree = ""; }; + 84D81BDD1EFA2B7D00652332 /* ParsedFeed.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ParsedFeed.swift; path = Feeds/ParsedFeed.swift; sourceTree = ""; }; + 84D81BDF1EFA2BAE00652332 /* FeedType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = FeedType.swift; path = Feeds/FeedType.swift; sourceTree = ""; }; + 84D81BE11EFA2D0900652332 /* ParsedAuthor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ParsedAuthor.swift; path = Feeds/ParsedAuthor.swift; sourceTree = ""; }; + 84D81BE31EFA2D3D00652332 /* ParsedItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ParsedItem.swift; path = Feeds/ParsedItem.swift; sourceTree = ""; }; + 84D81BE51EFA2DFB00652332 /* ParsedAttachment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ParsedAttachment.swift; path = Feeds/ParsedAttachment.swift; sourceTree = ""; }; + 84D81BE71EFA2E6700652332 /* ParsedHub.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ParsedHub.swift; path = Feeds/ParsedHub.swift; sourceTree = ""; }; 84FF5F841EFA285800C15A01 /* RSParser.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RSParser.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 84FF5F8D1EFA285800C15A01 /* RSParserTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RSParserTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 84FF5F921EFA285800C15A01 /* RSParserTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RSParserTests.swift; sourceTree = ""; }; @@ -50,10 +138,103 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 84469CE31EFA2FB0004A6B28 /* Feeds */ = { + isa = PBXGroup; + children = ( + 84D81BDF1EFA2BAE00652332 /* FeedType.swift */, + 84469D311EFA31CF004A6B28 /* FeedParser.swift */, + 84D81BDD1EFA2B7D00652332 /* ParsedFeed.swift */, + 84D81BE11EFA2D0900652332 /* ParsedAuthor.swift */, + 84D81BE31EFA2D3D00652332 /* ParsedItem.swift */, + 84D81BE51EFA2DFB00652332 /* ParsedAttachment.swift */, + 84D81BE71EFA2E6700652332 /* ParsedHub.swift */, + 84469D1C1EFA3134004A6B28 /* XML */, + ); + name = Feeds; + sourceTree = ""; + }; + 84469CE41EFA3000004A6B28 /* OPML */ = { + isa = PBXGroup; + children = ( + 84469CED1EFA3000004A6B28 /* RSOPMLParser.h */, + 84469CEE1EFA3000004A6B28 /* RSOPMLParser.m */, + 84469CE71EFA3000004A6B28 /* RSOPMLDocument.h */, + 84469CE81EFA3000004A6B28 /* RSOPMLDocument.m */, + 84469CE51EFA3000004A6B28 /* RSOPMLAttributes.h */, + 84469CE61EFA3000004A6B28 /* RSOPMLAttributes.m */, + 84469CE91EFA3000004A6B28 /* RSOPMLFeedSpecifier.h */, + 84469CEA1EFA3000004A6B28 /* RSOPMLFeedSpecifier.m */, + 84469CEB1EFA3000004A6B28 /* RSOPMLItem.h */, + 84469CEC1EFA3000004A6B28 /* RSOPMLItem.m */, + ); + path = OPML; + sourceTree = ""; + }; + 84469CF91EFA3069004A6B28 /* SAX */ = { + isa = PBXGroup; + children = ( + 84469CFA1EFA3069004A6B28 /* RSSAXParser.h */, + 84469CFB1EFA3069004A6B28 /* RSSAXParser.m */, + ); + path = SAX; + sourceTree = ""; + }; + 84469CFE1EFA307E004A6B28 /* HTML */ = { + isa = PBXGroup; + children = ( + 84469CFF1EFA307E004A6B28 /* RSHTMLLinkParser.h */, + 84469D001EFA307E004A6B28 /* RSHTMLLinkParser.m */, + 84469D011EFA307E004A6B28 /* RSHTMLMetadata.h */, + 84469D021EFA307E004A6B28 /* RSHTMLMetadata.m */, + 84469D031EFA307E004A6B28 /* RSHTMLMetadataParser.h */, + 84469D041EFA307E004A6B28 /* RSHTMLMetadataParser.m */, + 84469D051EFA307E004A6B28 /* RSSAXHTMLParser.h */, + 84469D061EFA307E004A6B28 /* RSSAXHTMLParser.m */, + ); + path = HTML; + sourceTree = ""; + }; + 84469D0F1EFA30A2004A6B28 /* Utilities */ = { + isa = PBXGroup; + children = ( + 84469D101EFA30A2004A6B28 /* NSString+RSXML.h */, + 84469D111EFA30A2004A6B28 /* NSString+RSXML.m */, + 84469D121EFA30A2004A6B28 /* RSDateParser.h */, + 84469D131EFA30A2004A6B28 /* RSDateParser.m */, + 84469D141EFA30A2004A6B28 /* RSXMLInternal.h */, + 84469D151EFA30A2004A6B28 /* RSXMLInternal.m */, + ); + path = Utilities; + sourceTree = ""; + }; + 84469D1C1EFA3134004A6B28 /* XML */ = { + isa = PBXGroup; + children = ( + 84469D1D1EFA3134004A6B28 /* RSAtomParser.h */, + 84469D1E1EFA3134004A6B28 /* RSAtomParser.m */, + 84469D251EFA3134004A6B28 /* RSRSSParser.h */, + 84469D261EFA3134004A6B28 /* RSRSSParser.m */, + 84469D1F1EFA3134004A6B28 /* RSFeedParser.h */, + 84469D201EFA3134004A6B28 /* RSFeedParser.m */, + 84469D211EFA3134004A6B28 /* RSParsedArticle.h */, + 84469D221EFA3134004A6B28 /* RSParsedArticle.m */, + 84469D231EFA3134004A6B28 /* RSParsedFeed.h */, + 84469D241EFA3134004A6B28 /* RSParsedFeed.m */, + ); + name = XML; + path = Feeds/XML; + sourceTree = ""; + }; 84FF5F7A1EFA285800C15A01 = { isa = PBXGroup; children = ( 84D81BDA1EFA28E700652332 /* RSParser.h */, + 84469CE11EFA2F3E004A6B28 /* ParserData.swift */, + 84469CE31EFA2FB0004A6B28 /* Feeds */, + 84469CE41EFA3000004A6B28 /* OPML */, + 84469CFE1EFA307E004A6B28 /* HTML */, + 84469CF91EFA3069004A6B28 /* SAX */, + 84469D0F1EFA30A2004A6B28 /* Utilities */, 84D81BD91EFA28E700652332 /* Info.plist */, 84FF5F911EFA285800C15A01 /* RSParserTests */, 84FF5F851EFA285800C15A01 /* Products */, @@ -85,7 +266,25 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 84469D271EFA3134004A6B28 /* RSAtomParser.h in Headers */, + 84469CF71EFA3000004A6B28 /* RSOPMLParser.h in Headers */, + 84469CEF1EFA3000004A6B28 /* RSOPMLAttributes.h in Headers */, + 84469CF51EFA3000004A6B28 /* RSOPMLItem.h in Headers */, + 84469D2D1EFA3134004A6B28 /* RSParsedFeed.h in Headers */, + 84469D181EFA30A2004A6B28 /* RSDateParser.h in Headers */, + 84469D1A1EFA30A2004A6B28 /* RSXMLInternal.h in Headers */, 84D81BDC1EFA28E700652332 /* RSParser.h in Headers */, + 84469D0B1EFA307E004A6B28 /* RSHTMLMetadataParser.h in Headers */, + 84469CFC1EFA3069004A6B28 /* RSSAXParser.h in Headers */, + 84469D071EFA307E004A6B28 /* RSHTMLLinkParser.h in Headers */, + 84469D291EFA3134004A6B28 /* RSFeedParser.h in Headers */, + 84469D0D1EFA307E004A6B28 /* RSSAXHTMLParser.h in Headers */, + 84469D2B1EFA3134004A6B28 /* RSParsedArticle.h in Headers */, + 84469D2F1EFA3134004A6B28 /* RSRSSParser.h in Headers */, + 84469CF31EFA3000004A6B28 /* RSOPMLFeedSpecifier.h in Headers */, + 84469CF11EFA3000004A6B28 /* RSOPMLDocument.h in Headers */, + 84469D091EFA307E004A6B28 /* RSHTMLMetadata.h in Headers */, + 84469D161EFA30A2004A6B28 /* NSString+RSXML.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -140,6 +339,7 @@ TargetAttributes = { 84FF5F831EFA285800C15A01 = { CreatedOnToolsVersion = 9.0; + LastSwiftMigration = 0830; }; 84FF5F8C1EFA285800C15A01 = { CreatedOnToolsVersion = 9.0; @@ -186,6 +386,32 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 84469D081EFA307E004A6B28 /* RSHTMLLinkParser.m in Sources */, + 84469D1B1EFA30A2004A6B28 /* RSXMLInternal.m in Sources */, + 84D81BE21EFA2D0900652332 /* ParsedAuthor.swift in Sources */, + 84469D0E1EFA307E004A6B28 /* RSSAXHTMLParser.m in Sources */, + 84469CF41EFA3000004A6B28 /* RSOPMLFeedSpecifier.m in Sources */, + 84469CF01EFA3000004A6B28 /* RSOPMLAttributes.m in Sources */, + 84469D301EFA3134004A6B28 /* RSRSSParser.m in Sources */, + 84469D191EFA30A2004A6B28 /* RSDateParser.m in Sources */, + 84469CFD1EFA3069004A6B28 /* RSSAXParser.m in Sources */, + 84469CE21EFA2F3E004A6B28 /* ParserData.swift in Sources */, + 84469CF21EFA3000004A6B28 /* RSOPMLDocument.m in Sources */, + 84469CF61EFA3000004A6B28 /* RSOPMLItem.m in Sources */, + 84469D2A1EFA3134004A6B28 /* RSFeedParser.m in Sources */, + 84D81BE41EFA2D3D00652332 /* ParsedItem.swift in Sources */, + 84469D0C1EFA307E004A6B28 /* RSHTMLMetadataParser.m in Sources */, + 84469D0A1EFA307E004A6B28 /* RSHTMLMetadata.m in Sources */, + 84469D171EFA30A2004A6B28 /* NSString+RSXML.m in Sources */, + 84469D2C1EFA3134004A6B28 /* RSParsedArticle.m in Sources */, + 84469D2E1EFA3134004A6B28 /* RSParsedFeed.m in Sources */, + 84469CF81EFA3000004A6B28 /* RSOPMLParser.m in Sources */, + 84469D321EFA31CF004A6B28 /* FeedParser.swift in Sources */, + 84469D281EFA3134004A6B28 /* RSAtomParser.m in Sources */, + 84D81BE61EFA2DFB00652332 /* ParsedAttachment.swift in Sources */, + 84D81BDE1EFA2B7D00652332 /* ParsedFeed.swift in Sources */, + 84D81BE81EFA2E6700652332 /* ParsedHub.swift in Sources */, + 84D81BE01EFA2BAE00652332 /* FeedType.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -319,6 +545,7 @@ 84FF5F991EFA285800C15A01 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; COMBINE_HIDPI_IMAGES = YES; DEFINES_MODULE = YES; @@ -327,19 +554,21 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_VERSION = A; - INFOPLIST_FILE = RSParser/Info.plist; + INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.ranchero.RSParser; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 4.0; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; }; name = Debug; }; 84FF5F9A1EFA285800C15A01 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; COMBINE_HIDPI_IMAGES = YES; DEFINES_MODULE = YES; @@ -348,19 +577,20 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_VERSION = A; - INFOPLIST_FILE = RSParser/Info.plist; + INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.ranchero.RSParser; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 3.0; }; name = Release; }; 84FF5F9C1EFA285800C15A01 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; COMBINE_HIDPI_IMAGES = YES; DEVELOPMENT_TEAM = M8L2WTLA8W; INFOPLIST_FILE = RSParserTests/Info.plist; @@ -374,6 +604,7 @@ 84FF5F9D1EFA285800C15A01 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; COMBINE_HIDPI_IMAGES = YES; DEVELOPMENT_TEAM = M8L2WTLA8W; INFOPLIST_FILE = RSParserTests/Info.plist; diff --git a/Frameworks/RSParser/RSParserData.h b/Frameworks/RSParser/RSParserData.h deleted file mode 100755 index 5004884e6..000000000 --- a/Frameworks/RSParser/RSParserData.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// RSXMLData.h -// RSXML -// -// Created by Brent Simmons on 8/24/15. -// Copyright © 2015 Ranchero Software, LLC. All rights reserved. -// - -@import Foundation; - -NS_ASSUME_NONNULL_BEGIN - -@interface RSXMLData : NSObject - -- (instancetype)initWithData:(NSData *)data urlString:(NSString *)urlString; - -@property (nonatomic, readonly) NSData *data; -@property (nonatomic, readonly) NSString *urlString; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Frameworks/RSParser/RSParserData.m b/Frameworks/RSParser/RSParserData.m deleted file mode 100755 index d6a36f132..000000000 --- a/Frameworks/RSParser/RSParserData.m +++ /dev/null @@ -1,28 +0,0 @@ -// -// RSXMLData.m -// RSXML -// -// Created by Brent Simmons on 8/24/15. -// Copyright © 2015 Ranchero Software, LLC. All rights reserved. -// - -#import "RSXMLData.h" - -@implementation RSXMLData - - -- (instancetype)initWithData:(NSData *)data urlString:(NSString *)urlString { - - self = [super init]; - if (!self) { - return nil; - } - - _data = data; - _urlString = urlString; - - return self; -} - - -@end diff --git a/Frameworks/RSParser/XML/SAX/RSSAXParser.h b/Frameworks/RSParser/SAX/RSSAXParser.h similarity index 100% rename from Frameworks/RSParser/XML/SAX/RSSAXParser.h rename to Frameworks/RSParser/SAX/RSSAXParser.h diff --git a/Frameworks/RSParser/XML/SAX/RSSAXParser.m b/Frameworks/RSParser/SAX/RSSAXParser.m similarity index 100% rename from Frameworks/RSParser/XML/SAX/RSSAXParser.m rename to Frameworks/RSParser/SAX/RSSAXParser.m