This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extension URLRequest { | |
/// Produce a string that can be copy & pasted into the terminal in order to check the network response. | |
/// | |
/// - Returns: A String representing the curl command of the request. | |
func curlCommand() -> String { | |
template( | |
method: httpMethod ?? "GET", | |
body: httpBody.flatMap { String(data: $0, encoding: .utf8)?.escapedQuotes() } ?? "", | |
headerFields: allHTTPHeaderFields?.map { ($0.key, $0.value.escapedQuotes()) } ?? [], | |
url: url?.absoluteString ?? "<unknown url>" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// ThrottleDebounceLatest.swift | |
// | |
// Created by Daniel Tartaglia on 14 Oct 2023. | |
// Copyright © 2023 Daniel Tartaglia. MIT License. | |
// | |
import Foundation | |
import RxSwift |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// PollContinuously+Rx.swift | |
// | |
// Created by Daniel Tartaglia on 20 Jun 2023. | |
// Copyright © 2023 Daniel Tartaglia. MIT License. | |
// | |
import RxSwift | |
extension ObservableType { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// uses https://gist.github.com/danielt1263/bd449100764e3166644f7a38bca86c96 | |
import RxSwift | |
import RxTest | |
import XCTest | |
final class ExampleTests: XCTestCase { | |
func test_merge_second_finishes_faster() { | |
let scheduler = TestScheduler(initialClock: 0) | |
let args = scheduler.createObserver(Device.self) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// AccumulatingDebounce.swift | |
// | |
// Created by Daniel Tartaglia on 10 Mar 2023. | |
// Copyright © 2023 Daniel Tartaglia. MIT License. | |
// | |
import Foundation | |
import RxSwift |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func apply<A, B>(fn: (A) -> B, a: A) -> B { | |
fn(a) | |
} | |
func bluebird<A, B, C>(fn1: (A) -> B, fn2: (C) -> A, c: C) -> B { | |
fn1(fn2(c)) | |
} | |
func blackbird<A, B, C, D>(fn1: (C) -> D, fn2: (A, B) -> C, a: A, b: B) -> D { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// Restart.swift | |
// | |
// Created by Daniel Tartaglia on 23 Jun 2022. | |
// Copyright © 2022 Daniel Tartaglia. MIT License. | |
// | |
import RxSwift | |
extension ObservableType { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// ActivityTracker.swift | |
// | |
// Created by Daniel Tartaglia on 05 Dec 2021. | |
// Copyright © 2021 Daniel Tartaglia. MIT License. | |
// | |
extension Publisher { | |
func trackActivity(_ activityTracker: ActivityTracker) -> AnyPublisher<Output, Failure> { | |
activityTracker.trackActivity(of: self) |
NewerOlder