]> err.no Git - sope/blob - sopex/SOPEX/NSBundle+Ext.m
SOPE:X 2.x
[sope] / sopex / SOPEX / NSBundle+Ext.m
1 /*
2  Copyright (C) 2004 Marcus Mueller <znek@mulle-kybernetik.com>
3
4  This file is part of OGo
5
6  OGo is free software; you can redistribute it and/or modify it under
7  the terms of the GNU Lesser General Public License as published by the
8  Free Software Foundation; either version 2, or (at your option) any
9  later version.
10
11  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
12  WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
14  License for more details.
15
16  You should have received a copy of the GNU Lesser General Public
17  License along with OGo; see the file COPYING.  If not, write to the
18  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
19  02111-1307, USA.
20  */
21 // $Id: NSBundle+Ext.m,v 1.1 2004/05/02 16:27:46 znek Exp $
22 //  Created by znek on Sun May 02 2004.
23
24
25 #import "NSBundle+Ext.h"
26
27
28 @implementation NSBundle (SOPEXExt)
29
30 - (NSString *)pathForResourceWithURLPath:(NSString *)_urlPath
31 {
32     static NSFileManager *fm = nil;
33     NSRange r;
34     NSString *resourcePath;
35
36     if(fm == nil)
37         fm = [[NSFileManager defaultManager] retain];
38
39     // need to strip /Appname/WebServerResources/ first
40     r = [_urlPath rangeOfString:@"WebServerResources"];
41     if(r.location != NSNotFound)
42         _urlPath = [_urlPath substringFromIndex:r.location + r.length];
43
44     resourcePath = [[self bundlePath] stringByAppendingPathComponent:_urlPath];
45     if([fm fileExistsAtPath:resourcePath])
46         return resourcePath;
47
48     _urlPath = [_urlPath lastPathComponent];
49     return [self pathForResource:[_urlPath stringByDeletingPathExtension]
50                           ofType:[_urlPath pathExtension]];
51 }
52
53 @end