Skip to content

Commit

Permalink
Add RACCommandError to bridged Swift errors
Browse files Browse the repository at this point in the history
  • Loading branch information
sharplet committed Jan 7, 2019
1 parent ffd5478 commit cbb7d90
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 6 deletions.
3 changes: 3 additions & 0 deletions ReactiveObjC/Deprecations+Removals.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
// Copyright © 2018 GitHub. All rights reserved.
//

@available(*, deprecated, renamed: "RACSignalError.notEnabled")
public let RACCommandErrorNotEnabled = RACCommandError.notEnabled.rawValue

@available(*, deprecated, renamed: "RACSignalError.noMatchingCase")
public let RACSignalErrorNoMatchingCase = RACSignalError.noMatchingCase.rawValue

Expand Down
8 changes: 5 additions & 3 deletions ReactiveObjC/RACCommand.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,12 @@
NS_ASSUME_NONNULL_BEGIN

/// The domain for errors originating within `RACCommand`.
extern NSString * const RACCommandErrorDomain;
extern NSErrorDomain const RACCommandErrorDomain;

/// -execute: was invoked while the command was disabled.
extern const NSInteger RACCommandErrorNotEnabled;
typedef NS_ERROR_ENUM(RACCommandErrorDomain, RACCommandError) {
/// -execute: was invoked while the command was disabled.
RACCommandErrorNotEnabled = 1,
};

/// A `userInfo` key for an error, associated with the `RACCommand` that the
/// error originated from.
Expand Down
4 changes: 1 addition & 3 deletions ReactiveObjC/RACCommand.m
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,9 @@
#import "RACSignal+Operations.h"
#import <libkern/OSAtomic.h>

NSString * const RACCommandErrorDomain = @"RACCommandErrorDomain";
NSErrorDomain const RACCommandErrorDomain = @"RACCommandErrorDomain";
NSString * const RACUnderlyingCommandErrorKey = @"RACUnderlyingCommandErrorKey";

const NSInteger RACCommandErrorNotEnabled = 1;

@interface RACCommand () {
// Atomic backing variable for `allowsConcurrentExecution`.
volatile uint32_t _allowsConcurrentExecution;
Expand Down
7 changes: 7 additions & 0 deletions ReactiveObjCTests/RACSwiftBridgingSpec.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@ import ReactiveObjC

final class RACSwiftBridgingSpec: QuickSpec {
override func spec() {
describe("RACCommandError") {
it("bridges RACCommandErrorNotEnabled to a Swift error code") {
let error: Error = NSError(domain: RACCommandErrorDomain, code: 1)
expect(RACCommandError.notEnabled ~= error).to(beTrue())
}
}

describe("RACSignalError") {
it("bridges RACSignalErrorTimedOut to a Swift error code") {
let error: Error = NSError(domain: RACSignalErrorDomain, code: 1)
Expand Down

0 comments on commit cbb7d90

Please sign in to comment.