Skip to content
This repository was archived by the owner on Aug 30, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,17 @@ While you are free to initialize as many instances of `RavenClient` as is approp
#import "RavenClient.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[RavenClient clientWithDSN:@"[SENTRY_DSN]"];
RavenClient *client = [RavenClient clientWithDSN:@"[SENTRY_DSN]"];
// [...]
return YES;
}
```
The first `RavenClient` that is initialized is automatically configured as the singleton instance and becomes available via the `sharedClient` singleton method:
If you would like to use the singleton pattern, you can set the shared client that is used with the
`+[setSharedClient:]` class method. After setting a client, you can retreive the singleton instance via
the `sharedClient` singleton method:

```objective-c
[RavenClient setSharedClient:client];
NSLog(@"I am your RavenClient singleton : %@", [RavenClient sharedClient]);
```

Expand All @@ -61,8 +64,8 @@ Setup a global exception handler:

```objective-c
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[RavenClient clientWithDSN:@"https://[public]:[secret]@[server]/[project id]"];
[[RavenClient sharedClient] setupExceptionHandler];
RavenClient *client = [RavenClient clientWithDSN:@"https://[public]:[secret]@[server]/[project id]"];
[client setupExceptionHandler];
// [...]
return YES;
}
Expand Down
12 changes: 7 additions & 5 deletions Raven/RavenClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,14 @@ typedef enum {
+ (RavenClient *)clientWithDSN:(NSString *)DSN extra:(NSDictionary *)extra;
+ (RavenClient *)clientWithDSN:(NSString *)DSN extra:(NSDictionary *)extra tags:(NSDictionary *)tags;
+ (RavenClient *)clientWithDSN:(NSString *)DSN extra:(NSDictionary *)extra tags:(NSDictionary *)tags logger:(NSString *)logger;
+ (RavenClient *)sharedClient;

- (id)initWithDSN:(NSString *)DSN;
- (id)initWithDSN:(NSString *)DSN extra:(NSDictionary *)extra;
- (id)initWithDSN:(NSString *)DSN extra:(NSDictionary *)extra tags:(NSDictionary *)tags;
- (id)initWithDSN:(NSString *)DSN extra:(NSDictionary *)extra tags:(NSDictionary *)tags logger:(NSString *)logger;
+ (instancetype)sharedClient;
+ (void)setSharedClient:(RavenClient *)client;

- (instancetype)initWithDSN:(NSString *)DSN;
- (instancetype)initWithDSN:(NSString *)DSN extra:(NSDictionary *)extra;
- (instancetype)initWithDSN:(NSString *)DSN extra:(NSDictionary *)extra tags:(NSDictionary *)tags;
- (instancetype)initWithDSN:(NSString *)DSN extra:(NSDictionary *)extra tags:(NSDictionary *)tags logger:(NSString *)logger;

/**
* Messages
Expand Down
17 changes: 8 additions & 9 deletions Raven/RavenClient.m
Original file line number Diff line number Diff line change
Expand Up @@ -98,19 +98,23 @@ + (RavenClient *)sharedClient {
return sharedClient;
}

- (id)initWithDSN:(NSString *)DSN {
+ (void)setSharedClient:(RavenClient *)client {
sharedClient = client;
}

- (instancetype)initWithDSN:(NSString *)DSN {
return [self initWithDSN:DSN extra:@{}];
}

- (id)initWithDSN:(NSString *)DSN extra:(NSDictionary *)extra {
- (instancetype)initWithDSN:(NSString *)DSN extra:(NSDictionary *)extra {
return [self initWithDSN:DSN extra:extra tags:@{}];
}

- (id)initWithDSN:(NSString *)DSN extra:(NSDictionary *)extra tags:(NSDictionary *)tags {
- (instancetype)initWithDSN:(NSString *)DSN extra:(NSDictionary *)extra tags:(NSDictionary *)tags {
return [self initWithDSN:DSN extra:extra tags:tags logger:nil];
}

- (id)initWithDSN:(NSString *)DSN extra:(NSDictionary *)extra tags:(NSDictionary *)tags logger:(NSString *)logger {
- (instancetype)initWithDSN:(NSString *)DSN extra:(NSDictionary *)extra tags:(NSDictionary *)tags logger:(NSString *)logger {
self = [super init];
if (self) {
_config = [[RavenConfig alloc] init];
Expand All @@ -123,11 +127,6 @@ - (id)initWithDSN:(NSString *)DSN extra:(NSDictionary *)extra tags:(NSDictionary
NSLog(@"Invalid DSN %@!", DSN);
return nil;
}

// Save singleton
if (sharedClient == nil) {
sharedClient = self;
}
}

return self;
Expand Down