mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-08-25 21:17:03 +00:00
47 lines
1.5 KiB
Objective-C
47 lines
1.5 KiB
Objective-C
//
|
|
// WebScripObject+Objective-J.m
|
|
// NativeHost
|
|
//
|
|
// Created by Francisco Tolmasky on 9/1/09.
|
|
// Copyright 2009 280 North, Inc.. All rights reserved.
|
|
//
|
|
|
|
#import "WebScripObject+Objective-J.h"
|
|
|
|
|
|
@implementation WebScriptObject (ObjectiveJ)
|
|
|
|
- (id)evaluateObjectiveJ:(NSString *)aString
|
|
{
|
|
return [self evaluateWebScript:[NSString stringWithFormat:@"(ObjectiveJ.eval(decodeURIComponent(\"%@\")))", [aString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], nil]];
|
|
}
|
|
|
|
- (NSString *)evaluateObjectiveJReturningString:(NSString *)aString
|
|
{
|
|
return [self evaluateWebScript:[NSString stringWithFormat:@"String(ObjectiveJ.eval(decodeURIComponent(\"%@\")))", [aString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], nil]];
|
|
}
|
|
|
|
- (id)bridgeSelector:(SEL)aSelector
|
|
{
|
|
return [self bridgeSelector:aSelector withObjects:nil];
|
|
}
|
|
|
|
- (id)bridgeSelector:(SEL)aSelector withObject:(id)anObject
|
|
{
|
|
return [self bridgeSelector:aSelector withObjects:[NSArray arrayWithObject:anObject]];
|
|
}
|
|
|
|
- (id)bridgeSelector:(SEL)aSelector withObjects:(NSArray *)objects
|
|
{
|
|
[self evaluateWebScript:@"objj_object.prototype.__objj_msgSend = function() { return objj_msgSend.apply(null, arguments); }"];
|
|
|
|
NSArray * arguments = [NSArray arrayWithObjects:self, NSStringFromSelector(aSelector), nil];
|
|
|
|
if (objects)
|
|
arguments = [arguments arrayByAddingObjectsFromArray:objects];
|
|
|
|
return [self callWebScriptMethod:@"__objj_msgSend" withArguments:arguments];
|
|
}
|
|
|
|
@end
|