Latest | 0.1.0 |
---|---|
Homepage | https://github.com/agilemd/ADURL |
License | MIT |
Authors |
a URL builder class based on node’s url module
usage
#import "ADURL.h"
ADURL *url = [ADURL new];
url.protocol = @"http";
url.hostname = @"agilemd.com";
url.path = @"/foo";
url.query[@"bar"] = @"baz";
url.href;
// => @"http://agilemd.com/foo?bar=baz"
Bonus: JavaScript-style encodeURIcomponent
and decodeURIcomponent class methods:
[ADURL encodeURIcomponent:@"anyone home?"];
// => @"anyone%20home%3F"
[ADURL decodeURIcomponent:@"anyone%20home%3F"];
// => @"anyone home?"
installation
Using cocoapods, add to your podfile:
pod 'ADURL'
api
@interface ADURL : NSObject
/**
* The full URL that was originally parsed. Both the protocol and host are
* lowercased.
* Example: 'http://user:[email protected]:8080/p/a/t/h?query=string#hash'
*/
@property (nonatomic, strong) NSString * href;
/**
* The request protocol, lowercased.
* Example: 'http:'
*/
@property (nonatomic, strong) NSString * protocol;
/**
* The authentication information portion of a URL.
* Example: 'user:pass'
*/
@property (nonatomic, strong) NSString * auth;
/**
* The full lowercased host portion of the URL, including port information.
* Example: 'host.com:8080'
*/
@property (nonatomic, strong) NSString * host;
/**
* Just the lowercased hostname portion of the host.
* Example: 'host.com'
*/
@property (nonatomic, strong) NSString * hostname;
/**
* The port number portion of the host.
* Example: '8080'
*/
@property (nonatomic) NSInteger port;
/**
* Concatenation of pathname and search.
* Example: '/p/a/t/h?query=string'
*/
@property (nonatomic, strong) NSString * path;
/**
* The path section of the URL, that comes after the host and before the query,
* including the initial slash if present.
* Example: '/p/a/t/h'
*/
@property (nonatomic, strong) NSString * pathname;
/**
* The 'query string' portion of the URL, including the leading question mark.
* Example: '?query=string'
*/
@property (nonatomic, strong) NSString * search;
/**
* The querystring as a dictionary
* Example: @{@"query": @"string"}
*/
@property (nonatomic, readonly, strong) NSMutableDictionary * query;
/**
* The 'fragment' portion of the URL including the pound-sign.
* Example: '#hash'
*/
@property (nonatomic, strong) NSString * hash;
+ (ADURL *) parse: (NSString *) urlStr;
+ (NSString *) encodeURIcomponent: (NSString *) str;
+ (NSString *) decodeURIcomponent: (NSString *) str;
@end
not yet implemented
- parser/setter for ADURL.href, [ADURL parse:]
running the tests
Run in Xcode or $ make test
in the project directory
contributors
- jden [email protected]
license
MIT. (c) MMXIII AgileMD. See LICENSE.md
Latest podspec
{ "name": "ADURL", "version": "0.1.0", "summary": "a URL builder class based on node's url module", "homepage": "https://github.com/agilemd/ADURL", "license": { "type": "MIT", "file": "LICENSE.md" }, "authors": { "jden": "[email protected]" }, "source": { "git": "https://github.com/agilemd/ADURL.git", "tag": "0.1.0" }, "source_files": "ADURL/**/*.{h,m}", "requires_arc": false }
Fri, 04 Mar 2016 10:19:03 +0000