Last active
June 20, 2019 18:03
-
-
Save QuinnStephens/b9c85737deff5092ac107caa71f52671 to your computer and use it in GitHub Desktop.
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
@interface Environment: NSObject | |
@property (nonatomic, strong) NSString *domain; | |
@property (nonatomic, strong) NSString *name; | |
@property (nonatomic, strong) NSString *facebookKey; | |
-(id)initWithData:(NSDictionary *)data; | |
@end | |
@implementation Environment | |
-(id)initWithData:(NSDictionary *)data { | |
self = [super init]; | |
self.domain = data[@"domain"]; | |
self.name = data[@"name"]; | |
self.facebookKey = data[@"facebook"]; | |
return self; | |
} | |
@end | |
-(NSArray*)loadEnvironmentsFromDotEnv { | |
NSString *path = [[NSBundle mainBundle] pathForResource:@".env" ofType:nil]; | |
NSString *rawEnv = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; | |
NSArray *lines = [rawEnv componentsSeparatedByString:@"\n"]; | |
NSMutableDictionary *envData = [NSMutableDictionary new]; | |
for (NSString *line in lines) { | |
NSString *lineTrimmed = [line stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; | |
if ([lineTrimmed length] == 0) { | |
continue; | |
} | |
NSArray *lineComponents = [line componentsSeparatedByString:@"="]; | |
NSString *key = lineComponents[0]; | |
NSString *rawValue = lineComponents[1]; | |
NSArray *valueComponents = [rawValue componentsSeparatedByString:@","]; | |
if ([valueComponents count] > 1) { | |
[envData setObject:valueComponents forKey:key]; | |
} else { | |
[envData setObject:rawValue forKey:key]; | |
} | |
} | |
NSMutableArray *environments = [NSMutableArray new]; | |
for (NSString *envKey in envData[@"environments"]) { | |
NSMutableDictionary *envDict = [NSMutableDictionary new]; | |
for (NSString *key in envData) { | |
NSArray *keyComponents = [key componentsSeparatedByString:envKey]; | |
if ([keyComponents count] > 1) { | |
[envDict setObject:envData[key] forKey:keyComponents[1]]; | |
} | |
} | |
[environments addObject:[[Environment alloc] initWithData: envDict]]; | |
} | |
return environments; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment