Use guard for simplification.

This commit is contained in:
yoshinori_sano 2015-09-22 19:35:27 +09:00
parent 2c4ee7137b
commit 8b4de57097
4 changed files with 11 additions and 26 deletions

View File

@ -56,13 +56,11 @@ class DefaultWikipediaAPI: WikipediaAPI {
// http://en.wikipedia.org/w/api.php?action=parse&page=rx&format=json
func articleContent(searchResult: WikipediaSearchResult) -> Observable<WikipediaPage> {
let escapedPage = URLEscape(searchResult.title)
let url = NSURL(string: "http://en.wikipedia.org/w/api.php?action=parse&page=\(escapedPage)&format=json")
if url == nil {
guard let url = NSURL(string: "http://en.wikipedia.org/w/api.php?action=parse&page=\(escapedPage)&format=json") else {
return failWith(apiError("Can't create url"))
}
return $.URLSession.rx_JSON(url!)
return $.URLSession.rx_JSON(url)
.map { jsonResult in
guard let json = jsonResult as? NSDictionary else {
throw exampleError("Parsing error")

View File

@ -22,13 +22,11 @@ struct WikipediaPage {
// tedious parsing part
static func parseJSON(json: NSDictionary) throws -> WikipediaPage {
let title = json.valueForKey("parse")?.valueForKey("title") as? String
let text = json.valueForKey("parse")?.valueForKey("text")?.valueForKey("*") as? String
if title == nil || text == nil {
guard let title = json.valueForKey("parse")?.valueForKey("title") as? String,
let text = json.valueForKey("parse")?.valueForKey("text")?.valueForKey("*") as? String else {
throw apiError("Error parsing page content")
}
return WikipediaPage(title: title!, text: text!)
return WikipediaPage(title: title, text: text)
}
}

View File

@ -39,20 +39,14 @@ struct WikipediaSearchResult: CustomStringConvertible {
let (first, url) = result
let (title, description) = first
let titleString = title as? String,
descriptionString = description as? String,
urlString = url as? String
if titleString == nil || descriptionString == nil || urlString == nil {
guard let titleString = title as? String,
let descriptionString = description as? String,
let urlString = url as? String,
let URL = NSURL(string: urlString) else {
throw WikipediaParseError
}
let URL = NSURL(string: urlString!)
if URL == nil {
throw WikipediaParseError
}
return WikipediaSearchResult(title: titleString!, description: descriptionString!, URL: URL!)
return WikipediaSearchResult(title: titleString, description: descriptionString, URL: URL)
})
return searchResults

View File

@ -45,15 +45,10 @@ class DefaultImageService: ImageService {
return just(imageData)
.observeOn($.backgroundWorkScheduler)
.map { data in
let maybeImage = Image(data: data)
if maybeImage == nil {
guard let image = Image(data: data) else {
// some error
throw apiError("Decoding image error")
}
let image = maybeImage!
return image
}
.observeOn($.mainScheduler)