RACValueTransformer.m 759 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. //
  2. // RACValueTransformer.m
  3. // ReactiveCocoa
  4. //
  5. // Created by Josh Abernathy on 3/6/12.
  6. // Copyright (c) 2012 GitHub, Inc. All rights reserved.
  7. //
  8. #import "RACValueTransformer.h"
  9. @interface RACValueTransformer ()
  10. @property (nonatomic, copy) id (^transformBlock)(id value);
  11. @end
  12. @implementation RACValueTransformer
  13. #pragma mark NSValueTransformer
  14. + (BOOL)allowsReverseTransformation {
  15. return NO;
  16. }
  17. - (id)transformedValue:(id)value {
  18. return self.transformBlock(value);
  19. }
  20. #pragma mark API
  21. @synthesize transformBlock;
  22. + (instancetype)transformerWithBlock:(id (^)(id value))block {
  23. NSCParameterAssert(block != NULL);
  24. RACValueTransformer *transformer = [[self alloc] init];
  25. transformer.transformBlock = block;
  26. return transformer;
  27. }
  28. @end