Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

87 lines (59 sloc) 1.725 kb
#import <Foundation/Foundation.h>
#import "Fixtures.h"
#import "SpecHelper.h"
extern BOOL gEagerSingletonHook;
@protocol MetaCar<NSObject>
- (id)manufacture;
@protocol GearBox<NSObject>
- (void)shiftUp;
- (void)shiftDown;
@optional // ;-)
- (void)engageClutch;
@interface Car(Meta)
// Perfect example of why factories are OK alternatives to class methods.
// Car that manufactures
+ (id)manufacture;
@interface AfterMarketGearBox : NSObject<GearBox>
@interface EagerSingleton : NSObject
@interface MyModule : JSObjectionModule
Engine *_engine;
id<GearBox> _gearBox;
BOOL _instrumentInvalidEagerSingleton;
BOOL _instrumentInvalidMetaClass;
@property(nonatomic, readonly) Engine *engine;
@property(nonatomic, readonly) id<GearBox> gearBox;
@property(nonatomic, assign) BOOL instrumentInvalidEagerSingleton;
@property (nonatomic, assign) BOOL instrumentInvalidMetaClass;
- (id)initWithEngine:(Engine *)engine andGearBox:(id<GearBox>)gearBox;
@interface CarProvider : NSObject<JSObjectionProvider>
@interface GearBoxProvider : NSObject<JSObjectionProvider>
@interface ProviderModule : JSObjectionModule
@interface BlockModule : JSObjectionModule
@interface CreditCardValidator : NSObject
@protocol CreditCardProcessor <NSObject>
- (void)processNumber:(NSString *)number;
@interface BaseCreditCardProcessor : NSObject<CreditCardProcessor>
@interface VisaCCProcessor : BaseCreditCardProcessor<CreditCardProcessor> {
CreditCardValidator *_validator;
@property (nonatomic, retain) CreditCardValidator *validator;
@interface FirstModule : JSObjectionModule
@interface SecondModule : JSObjectionModule
Jump to Line
Something went wrong with that request. Please try again.