├── LiveAutoLayout.xcodeproj
├── project.pbxproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcuserdata
│ │ └── freedom.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
└── xcuserdata
│ └── freedom.xcuserdatad
│ └── xcschemes
│ ├── LiveAutoLayout.xcscheme
│ └── xcschememanagement.plist
├── LiveAutoLayout.xcworkspace
├── contents.xcworkspacedata
├── xcshareddata
│ └── LiveAutoLayout.xccheckout
└── xcuserdata
│ └── freedom.xcuserdatad
│ └── UserInterfaceState.xcuserstate
├── LiveAutoLayout
├── AppDelegate.h
├── AppDelegate.m
├── Base.lproj
│ ├── LaunchScreen.xib
│ └── Main.storyboard
├── Images.xcassets
│ └── AppIcon.appiconset
│ │ └── Contents.json
├── Info.plist
├── LiveView.h
├── LiveView.m
├── ViewController.h
├── ViewController.m
├── main.m
├── stylesheet.cas
└── variable.cas
├── LiveAutoLayoutTests
├── Info.plist
└── LiveAutoLayoutTests.m
├── Podfile
├── Podfile.lock
├── Pods
├── Classy
│ ├── Classy
│ │ ├── Additions
│ │ │ ├── CASStyleableItem.h
│ │ │ ├── NSObject+CASSwizzle.h
│ │ │ ├── NSObject+CASSwizzle.m
│ │ │ ├── NSRegularExpression+CASAdditions.h
│ │ │ ├── NSRegularExpression+CASAdditions.m
│ │ │ ├── NSString+CASAdditions.h
│ │ │ ├── NSString+CASAdditions.m
│ │ │ ├── UIBarItem+CASAdditions.h
│ │ │ ├── UIBarItem+CASAdditions.m
│ │ │ ├── UIColor+CASAdditions.h
│ │ │ ├── UIColor+CASAdditions.m
│ │ │ ├── UINavigationBar+CASAdditions.h
│ │ │ ├── UINavigationBar+CASAdditions.m
│ │ │ ├── UISlider+CASAdditions.h
│ │ │ ├── UISlider+CASAdditions.m
│ │ │ ├── UITabBar+CASAdditions.h
│ │ │ ├── UITabBar+CASAdditions.m
│ │ │ ├── UITextField+CASAdditions.h
│ │ │ ├── UITextField+CASAdditions.m
│ │ │ ├── UIToolbar+CASAdditions.h
│ │ │ ├── UIToolbar+CASAdditions.m
│ │ │ ├── UIView+CASAdditions.h
│ │ │ ├── UIView+CASAdditions.m
│ │ │ ├── UIViewController+CASAdditions.h
│ │ │ └── UIViewController+CASAdditions.m
│ │ ├── Classy.h
│ │ ├── Parser
│ │ │ ├── CASDeviceOSVersionItem.h
│ │ │ ├── CASDeviceOSVersionItem.m
│ │ │ ├── CASDeviceSelector.h
│ │ │ ├── CASDeviceSelector.m
│ │ │ ├── CASDeviceSelectorItem.h
│ │ │ ├── CASDeviceTypeItem.h
│ │ │ ├── CASDeviceTypeItem.m
│ │ │ ├── CASExpressionSolver.h
│ │ │ ├── CASExpressionSolver.m
│ │ │ ├── CASInvocation.h
│ │ │ ├── CASInvocation.m
│ │ │ ├── CASLexer.h
│ │ │ ├── CASLexer.m
│ │ │ ├── CASParser.h
│ │ │ ├── CASParser.m
│ │ │ ├── CASStyleNode.h
│ │ │ ├── CASStyleNode.m
│ │ │ ├── CASStyleProperty.h
│ │ │ ├── CASStyleProperty.m
│ │ │ ├── CASStyleSelector.h
│ │ │ ├── CASStyleSelector.m
│ │ │ ├── CASStyler.h
│ │ │ ├── CASStyler.m
│ │ │ ├── CASTextAttributes.h
│ │ │ ├── CASTextAttributes.m
│ │ │ ├── CASToken.h
│ │ │ ├── CASToken.m
│ │ │ ├── CASUnitToken.h
│ │ │ ├── CASUnitToken.m
│ │ │ ├── CASUtilities.h
│ │ │ └── CASUtilities.m
│ │ └── Reflection
│ │ │ ├── CASArgumentDescriptor.h
│ │ │ ├── CASArgumentDescriptor.m
│ │ │ ├── CASObjectClassDescriptor.h
│ │ │ ├── CASObjectClassDescriptor.m
│ │ │ ├── CASPropertyDescriptor.h
│ │ │ ├── CASPropertyDescriptor.m
│ │ │ ├── CASRuntimeExtensions.h
│ │ │ └── CASRuntimeExtensions.m
│ ├── LICENSE
│ └── README.md
├── ClassyLiveLayout
│ ├── ClassyLiveLayout
│ │ ├── ClassyLiveLayout.h
│ │ ├── SHPAbstractCollectionViewCell.h
│ │ ├── SHPAbstractCollectionViewCell.m
│ │ ├── SHPAbstractScrollView.h
│ │ ├── SHPAbstractScrollView.m
│ │ ├── SHPAbstractTableViewCell.h
│ │ ├── SHPAbstractTableViewCell.m
│ │ ├── SHPAbstractView.h
│ │ ├── SHPAbstractView.m
│ │ ├── UIView+ClassyLayoutProperties.h
│ │ └── UIView+ClassyLayoutProperties.m
│ ├── LICENSE.md
│ └── README.md
├── Headers
│ ├── Private
│ │ ├── Classy
│ │ │ ├── CASArgumentDescriptor.h
│ │ │ ├── CASDeviceOSVersionItem.h
│ │ │ ├── CASDeviceSelector.h
│ │ │ ├── CASDeviceSelectorItem.h
│ │ │ ├── CASDeviceTypeItem.h
│ │ │ ├── CASExpressionSolver.h
│ │ │ ├── CASInvocation.h
│ │ │ ├── CASLexer.h
│ │ │ ├── CASObjectClassDescriptor.h
│ │ │ ├── CASParser.h
│ │ │ ├── CASPropertyDescriptor.h
│ │ │ ├── CASRuntimeExtensions.h
│ │ │ ├── CASStyleNode.h
│ │ │ ├── CASStyleProperty.h
│ │ │ ├── CASStyleSelector.h
│ │ │ ├── CASStyleableItem.h
│ │ │ ├── CASStyler.h
│ │ │ ├── CASTextAttributes.h
│ │ │ ├── CASToken.h
│ │ │ ├── CASUnitToken.h
│ │ │ ├── CASUtilities.h
│ │ │ ├── Classy.h
│ │ │ ├── NSObject+CASSwizzle.h
│ │ │ ├── NSRegularExpression+CASAdditions.h
│ │ │ ├── NSString+CASAdditions.h
│ │ │ ├── UIBarItem+CASAdditions.h
│ │ │ ├── UIColor+CASAdditions.h
│ │ │ ├── UINavigationBar+CASAdditions.h
│ │ │ ├── UISlider+CASAdditions.h
│ │ │ ├── UITabBar+CASAdditions.h
│ │ │ ├── UITextField+CASAdditions.h
│ │ │ ├── UIToolbar+CASAdditions.h
│ │ │ ├── UIView+CASAdditions.h
│ │ │ └── UIViewController+CASAdditions.h
│ │ ├── ClassyLiveLayout
│ │ │ ├── ClassyLiveLayout.h
│ │ │ ├── SHPAbstractCollectionViewCell.h
│ │ │ ├── SHPAbstractScrollView.h
│ │ │ ├── SHPAbstractTableViewCell.h
│ │ │ ├── SHPAbstractView.h
│ │ │ └── UIView+ClassyLayoutProperties.h
│ │ └── Masonry
│ │ │ ├── MASCompositeConstraint.h
│ │ │ ├── MASConstraint+Private.h
│ │ │ ├── MASConstraint.h
│ │ │ ├── MASConstraintMaker.h
│ │ │ ├── MASLayoutConstraint.h
│ │ │ ├── MASUtilities.h
│ │ │ ├── MASViewAttribute.h
│ │ │ ├── MASViewConstraint.h
│ │ │ ├── Masonry.h
│ │ │ ├── NSArray+MASAdditions.h
│ │ │ ├── NSArray+MASShorthandAdditions.h
│ │ │ ├── NSLayoutConstraint+MASDebugAdditions.h
│ │ │ ├── View+MASAdditions.h
│ │ │ └── View+MASShorthandAdditions.h
│ └── Public
│ │ ├── Classy
│ │ ├── CASArgumentDescriptor.h
│ │ ├── CASDeviceOSVersionItem.h
│ │ ├── CASDeviceSelector.h
│ │ ├── CASDeviceSelectorItem.h
│ │ ├── CASDeviceTypeItem.h
│ │ ├── CASExpressionSolver.h
│ │ ├── CASInvocation.h
│ │ ├── CASLexer.h
│ │ ├── CASObjectClassDescriptor.h
│ │ ├── CASParser.h
│ │ ├── CASPropertyDescriptor.h
│ │ ├── CASRuntimeExtensions.h
│ │ ├── CASStyleNode.h
│ │ ├── CASStyleProperty.h
│ │ ├── CASStyleSelector.h
│ │ ├── CASStyleableItem.h
│ │ ├── CASStyler.h
│ │ ├── CASTextAttributes.h
│ │ ├── CASToken.h
│ │ ├── CASUnitToken.h
│ │ ├── CASUtilities.h
│ │ ├── Classy.h
│ │ ├── NSObject+CASSwizzle.h
│ │ ├── NSRegularExpression+CASAdditions.h
│ │ ├── NSString+CASAdditions.h
│ │ ├── UIBarItem+CASAdditions.h
│ │ ├── UIColor+CASAdditions.h
│ │ ├── UINavigationBar+CASAdditions.h
│ │ ├── UISlider+CASAdditions.h
│ │ ├── UITabBar+CASAdditions.h
│ │ ├── UITextField+CASAdditions.h
│ │ ├── UIToolbar+CASAdditions.h
│ │ ├── UIView+CASAdditions.h
│ │ └── UIViewController+CASAdditions.h
│ │ ├── ClassyLiveLayout
│ │ ├── ClassyLiveLayout.h
│ │ ├── SHPAbstractCollectionViewCell.h
│ │ ├── SHPAbstractScrollView.h
│ │ ├── SHPAbstractTableViewCell.h
│ │ ├── SHPAbstractView.h
│ │ └── UIView+ClassyLayoutProperties.h
│ │ └── Masonry
│ │ ├── MASCompositeConstraint.h
│ │ ├── MASConstraint+Private.h
│ │ ├── MASConstraint.h
│ │ ├── MASConstraintMaker.h
│ │ ├── MASLayoutConstraint.h
│ │ ├── MASUtilities.h
│ │ ├── MASViewAttribute.h
│ │ ├── MASViewConstraint.h
│ │ ├── Masonry.h
│ │ ├── NSArray+MASAdditions.h
│ │ ├── NSArray+MASShorthandAdditions.h
│ │ ├── NSLayoutConstraint+MASDebugAdditions.h
│ │ ├── View+MASAdditions.h
│ │ └── View+MASShorthandAdditions.h
├── Manifest.lock
├── Masonry
│ ├── LICENSE
│ ├── Masonry
│ │ ├── MASCompositeConstraint.h
│ │ ├── MASCompositeConstraint.m
│ │ ├── MASConstraint+Private.h
│ │ ├── MASConstraint.h
│ │ ├── MASConstraint.m
│ │ ├── MASConstraintMaker.h
│ │ ├── MASConstraintMaker.m
│ │ ├── MASLayoutConstraint.h
│ │ ├── MASLayoutConstraint.m
│ │ ├── MASUtilities.h
│ │ ├── MASViewAttribute.h
│ │ ├── MASViewAttribute.m
│ │ ├── MASViewConstraint.h
│ │ ├── MASViewConstraint.m
│ │ ├── Masonry.h
│ │ ├── NSArray+MASAdditions.h
│ │ ├── NSArray+MASAdditions.m
│ │ ├── NSArray+MASShorthandAdditions.h
│ │ ├── NSLayoutConstraint+MASDebugAdditions.h
│ │ ├── NSLayoutConstraint+MASDebugAdditions.m
│ │ ├── View+MASAdditions.h
│ │ ├── View+MASAdditions.m
│ │ └── View+MASShorthandAdditions.h
│ └── README.md
├── Pods.xcodeproj
│ ├── project.pbxproj
│ └── xcuserdata
│ │ └── freedom.xcuserdatad
│ │ └── xcschemes
│ │ ├── Pods-Classy.xcscheme
│ │ ├── Pods-ClassyLiveLayout.xcscheme
│ │ ├── Pods-Masonry.xcscheme
│ │ ├── Pods.xcscheme
│ │ └── xcschememanagement.plist
└── Target Support Files
│ ├── Pods-Classy
│ ├── Pods-Classy-Private.xcconfig
│ ├── Pods-Classy-dummy.m
│ ├── Pods-Classy-prefix.pch
│ └── Pods-Classy.xcconfig
│ ├── Pods-ClassyLiveLayout
│ ├── Pods-ClassyLiveLayout-Private.xcconfig
│ ├── Pods-ClassyLiveLayout-dummy.m
│ ├── Pods-ClassyLiveLayout-prefix.pch
│ └── Pods-ClassyLiveLayout.xcconfig
│ ├── Pods-Masonry
│ ├── Pods-Masonry-Private.xcconfig
│ ├── Pods-Masonry-dummy.m
│ ├── Pods-Masonry-prefix.pch
│ └── Pods-Masonry.xcconfig
│ └── Pods
│ ├── Pods-acknowledgements.markdown
│ ├── Pods-acknowledgements.plist
│ ├── Pods-dummy.m
│ ├── Pods-environment.h
│ ├── Pods-resources.sh
│ ├── Pods.debug.xcconfig
│ └── Pods.release.xcconfig
└── README.md
/LiveAutoLayout.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/LiveAutoLayout.xcodeproj/project.xcworkspace/xcuserdata/freedom.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/samlaudev/LiveAutoLayout/7c87d2261d4a37cb303f70c4f589918e4ee26d52/LiveAutoLayout.xcodeproj/project.xcworkspace/xcuserdata/freedom.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/LiveAutoLayout.xcodeproj/xcuserdata/freedom.xcuserdatad/xcschemes/LiveAutoLayout.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
29 |
35 |
36 |
37 |
38 |
39 |
44 |
45 |
47 |
53 |
54 |
55 |
56 |
57 |
63 |
64 |
65 |
66 |
75 |
77 |
83 |
84 |
85 |
86 |
87 |
88 |
94 |
96 |
102 |
103 |
104 |
105 |
107 |
108 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/LiveAutoLayout.xcodeproj/xcuserdata/freedom.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | LiveAutoLayout.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | 1AB650361AE8C8D300010524
16 |
17 | primary
18 |
19 |
20 | 1AB6504F1AE8C8D300010524
21 |
22 | primary
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/LiveAutoLayout.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/LiveAutoLayout.xcworkspace/xcshareddata/LiveAutoLayout.xccheckout:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDESourceControlProjectFavoriteDictionaryKey
6 |
7 | IDESourceControlProjectIdentifier
8 | 175BFFB5-8C59-42BD-AEF6-7CFF6BF73E13
9 | IDESourceControlProjectName
10 | LiveAutoLayout
11 | IDESourceControlProjectOriginsDictionary
12 |
13 | 9847F8DDA9216C493681A76BCECCC5B26B720F70
14 | https://github.com/samlaudev/LiveAutoLayout.git
15 |
16 | IDESourceControlProjectPath
17 | LiveAutoLayout.xcworkspace
18 | IDESourceControlProjectRelativeInstallPathDictionary
19 |
20 | 9847F8DDA9216C493681A76BCECCC5B26B720F70
21 | ..
22 |
23 | IDESourceControlProjectURL
24 | https://github.com/samlaudev/LiveAutoLayout.git
25 | IDESourceControlProjectVersion
26 | 111
27 | IDESourceControlProjectWCCIdentifier
28 | 9847F8DDA9216C493681A76BCECCC5B26B720F70
29 | IDESourceControlProjectWCConfigurations
30 |
31 |
32 | IDESourceControlRepositoryExtensionIdentifierKey
33 | public.vcs.git
34 | IDESourceControlWCCIdentifierKey
35 | 9847F8DDA9216C493681A76BCECCC5B26B720F70
36 | IDESourceControlWCCName
37 | LiveAutoLayout
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/LiveAutoLayout.xcworkspace/xcuserdata/freedom.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/samlaudev/LiveAutoLayout/7c87d2261d4a37cb303f70c4f589918e4ee26d52/LiveAutoLayout.xcworkspace/xcuserdata/freedom.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/LiveAutoLayout/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // LiveAutoLayout
4 | //
5 | // Created by Sam Lau on 4/23/15.
6 | // Copyright (c) 2015 Sam Lau. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/LiveAutoLayout/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // LiveAutoLayout
4 | //
5 | // Created by Sam Lau on 4/23/15.
6 | // Copyright (c) 2015 Sam Lau. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 | #import
11 |
12 | @interface AppDelegate ()
13 |
14 | @end
15 |
16 | @implementation AppDelegate
17 |
18 | - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
19 | {
20 |
21 | #if TARGET_IPHONE_SIMULATOR
22 | NSString* absoluteFilePath = CASAbsoluteFilePath(@"stylesheet.cas");
23 | [CASStyler defaultStyler].watchFilePath = absoluteFilePath;
24 | #endif
25 |
26 | return YES;
27 | }
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/LiveAutoLayout/Base.lproj/LaunchScreen.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
20 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/LiveAutoLayout/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/LiveAutoLayout/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "ipad",
35 | "size" : "29x29",
36 | "scale" : "1x"
37 | },
38 | {
39 | "idiom" : "ipad",
40 | "size" : "29x29",
41 | "scale" : "2x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "40x40",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "40x40",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "76x76",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "76x76",
61 | "scale" : "2x"
62 | }
63 | ],
64 | "info" : {
65 | "version" : 1,
66 | "author" : "xcode"
67 | }
68 | }
--------------------------------------------------------------------------------
/LiveAutoLayout/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | appidemic.com.au.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 | LSRequiresIPhoneOS
24 |
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIMainStoryboardFile
28 | Main
29 | UIRequiredDeviceCapabilities
30 |
31 | armv7
32 |
33 | UISupportedInterfaceOrientations
34 |
35 | UIInterfaceOrientationPortrait
36 | UIInterfaceOrientationLandscapeLeft
37 | UIInterfaceOrientationLandscapeRight
38 |
39 | UISupportedInterfaceOrientations~ipad
40 |
41 | UIInterfaceOrientationPortrait
42 | UIInterfaceOrientationPortraitUpsideDown
43 | UIInterfaceOrientationLandscapeLeft
44 | UIInterfaceOrientationLandscapeRight
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/LiveAutoLayout/LiveView.h:
--------------------------------------------------------------------------------
1 | //
2 | // LiveView.h
3 | // LiveAutoLayout
4 | //
5 | // Created by Sam Lau on 4/23/15.
6 | // Copyright (c) 2015 Sam Lau. All rights reserved.
7 | //
8 |
9 | #import "SHPAbstractView.h"
10 |
11 | @interface LiveView : SHPAbstractView
12 |
13 | @property (strong, nonatomic) UIView *redBoxView;
14 | @property (strong, nonatomic) UIView *blueBoxView;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/LiveAutoLayout/LiveView.m:
--------------------------------------------------------------------------------
1 | //
2 | // LiveView.m
3 | // LiveAutoLayout
4 | //
5 | // Created by Sam Lau on 4/23/15.
6 | // Copyright (c) 2015 Sam Lau. All rights reserved.
7 | //
8 |
9 | #import "LiveView.h"
10 | #import
11 | #import
12 | #import
13 |
14 | @implementation LiveView
15 |
16 | #pragma mark - Add subviews and define layout
17 | - (void)addSubviews
18 | {
19 | self.backgroundColor = [UIColor whiteColor];
20 | [self addSubview:self.redBoxView];
21 | [self addSubview:self.blueBoxView];
22 | }
23 |
24 | - (void)defineLayout
25 | {
26 | [self.redBoxView mas_updateConstraints:^(MASConstraintMaker* make){
27 | make.top.equalTo(@(self.redBoxView.cas_marginTop));
28 | make.left.equalTo(@(self.redBoxView.cas_marginLeft));
29 | make.width.equalTo(@(self.redBoxView.cas_sizeWidth));
30 | make.height.equalTo(@(self.redBoxView.cas_sizeHeight));
31 | }];
32 |
33 | [self.blueBoxView mas_updateConstraints:^(MASConstraintMaker *make){
34 | make.top.equalTo(@(self.blueBoxView.cas_marginTop));
35 | make.right.equalTo(@(self.blueBoxView.cas_marginRight));
36 | make.width.equalTo(@(self.blueBoxView.cas_sizeWidth));
37 | make.height.equalTo(@(self.blueBoxView.cas_sizeHeight));
38 | }];
39 | }
40 |
41 | #pragma mark - Lazy initialization
42 | - (UIView*)redBoxView
43 | {
44 | if (!_redBoxView) {
45 | _redBoxView = [UIView new];
46 | _redBoxView.cas_styleClass = @"redBox";
47 | _redBoxView.backgroundColor = [UIColor redColor];
48 | }
49 |
50 | return _redBoxView;
51 | }
52 |
53 | - (UIView*)blueBoxView
54 | {
55 | if (!_blueBoxView) {
56 | _blueBoxView = [UIView new];
57 | _blueBoxView.cas_styleClass = @"blueBox";
58 | _blueBoxView.backgroundColor = [UIColor blueColor];
59 | }
60 |
61 | return _blueBoxView;
62 | }
63 |
64 | @end
65 |
--------------------------------------------------------------------------------
/LiveAutoLayout/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // LiveAutoLayout
4 | //
5 | // Created by Sam Lau on 4/23/15.
6 | // Copyright (c) 2015 Sam Lau. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/LiveAutoLayout/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // LiveAutoLayout
4 | //
5 | // Created by Sam Lau on 4/23/15.
6 | // Copyright (c) 2015 Sam Lau. All rights reserved.
7 | //
8 |
9 | #import "ViewController.h"
10 | #import "LiveView.h"
11 |
12 | @interface ViewController ()
13 |
14 | @end
15 |
16 | @implementation ViewController
17 |
18 | #pragma mark - View controller lifecycle
19 | - (void)viewDidLoad {
20 | [super viewDidLoad];
21 |
22 | LiveView *liveView = [[LiveView alloc] initWithFrame:self.view.bounds];
23 | self.view = liveView;
24 | }
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/LiveAutoLayout/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // LiveAutoLayout
4 | //
5 | // Created by Sam Lau on 4/23/15.
6 | // Copyright (c) 2015 Sam Lau. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/LiveAutoLayout/stylesheet.cas:
--------------------------------------------------------------------------------
1 | @import "variable.cas";
2 |
3 | UIView.blueBox {
4 | cas_marginTop 50
5 | cas_marginRight -20
6 |
7 | cas_size 100 100
8 | }
--------------------------------------------------------------------------------
/LiveAutoLayout/variable.cas:
--------------------------------------------------------------------------------
1 | UIView.redBox {
2 | cas_marginTop 50
3 | cas_marginLeft 20
4 |
5 | cas_size 100 100
6 | }
--------------------------------------------------------------------------------
/LiveAutoLayoutTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | appidemic.com.au.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/LiveAutoLayoutTests/LiveAutoLayoutTests.m:
--------------------------------------------------------------------------------
1 | //
2 | // LiveAutoLayoutTests.m
3 | // LiveAutoLayoutTests
4 | //
5 | // Created by Sam Lau on 4/23/15.
6 | // Copyright (c) 2015 Sam Lau. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface LiveAutoLayoutTests : XCTestCase
13 |
14 | @end
15 |
16 | @implementation LiveAutoLayoutTests
17 |
18 | - (void)setUp {
19 | [super setUp];
20 | // Put setup code here. This method is called before the invocation of each test method in the class.
21 | }
22 |
23 | - (void)tearDown {
24 | // Put teardown code here. This method is called after the invocation of each test method in the class.
25 | [super tearDown];
26 | }
27 |
28 | - (void)testExample {
29 | // This is an example of a functional test case.
30 | XCTAssert(YES, @"Pass");
31 | }
32 |
33 | - (void)testPerformanceExample {
34 | // This is an example of a performance test case.
35 | [self measureBlock:^{
36 | // Put the code you want to measure the time of here.
37 | }];
38 | }
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/Podfile:
--------------------------------------------------------------------------------
1 | pod 'Masonry', '~> 0.6.1'
2 | pod 'Classy', '~> 0.2.4'
3 | pod 'ClassyLiveLayout', '~> 0.6.0'
4 |
--------------------------------------------------------------------------------
/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - Classy (0.2.4)
3 | - ClassyLiveLayout (0.6.0):
4 | - Classy
5 | - Masonry
6 | - Masonry (0.6.1)
7 |
8 | DEPENDENCIES:
9 | - Classy (~> 0.2.4)
10 | - ClassyLiveLayout (~> 0.6.0)
11 | - Masonry (~> 0.6.1)
12 |
13 | SPEC CHECKSUMS:
14 | Classy: 8c8f835d51e20d25e9cce0d864fba5bf1cef6070
15 | ClassyLiveLayout: 264876c3a64dcc732e174796bdeaa40a6b7fff3b
16 | Masonry: 2cb49fd14d203d2db5ca6bb017135b235dde9980
17 |
18 | COCOAPODS: 0.36.0.rc.1
19 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/CASStyleableItem.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASStyleableItem.h
3 | //
4 | //
5 | // Created by Jonas Budelmann on 31/10/13.
6 | //
7 | //
8 |
9 | #import
10 |
11 | @protocol CASStyleableItem
12 |
13 | /**
14 | * NSString which should relate to a styleClass in your stylesheet
15 | */
16 | @property (nonatomic, copy) NSString *cas_styleClass;
17 |
18 | /**
19 | * Direct parent of receiver
20 | * ie in case of UIView will be self.superview
21 | */
22 | @property (nonatomic, weak, readonly) id cas_parent;
23 |
24 | /**
25 | * In some cases it is appropriate to specify an alternative parent relationship
26 | * ie in case of UIView it's UIViewController is an alternative parent to it's superview
27 | */
28 | @property (nonatomic, weak, readonly) id cas_alternativeParent;
29 |
30 | /**
31 | * Peforms styling now if receiver needs styling
32 | */
33 | - (void)cas_updateStylingIfNeeded;
34 |
35 | /**
36 | * Override this to adjust your styling during a style update pass.
37 | * If overriding should call super
38 | */
39 | - (void)cas_updateStyling;
40 |
41 | /**
42 | * Returns whether or not receiver has been marked as needing style update
43 | */
44 | - (BOOL)cas_needsUpdateStyling;
45 |
46 | /**
47 | * Schedules the receiver to for a style update
48 | */
49 | - (void)cas_setNeedsUpdateStyling;
50 |
51 | @end
52 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/NSObject+CASSwizzle.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+CASSwizzle.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 15/10/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (CASSwizzle)
12 |
13 | + (void)cas_swizzleInstanceSelector:(SEL)originalSelector
14 | withNewSelector:(SEL)newSelector;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/NSObject+CASSwizzle.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+CASSwizzle.m
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 15/10/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "NSObject+CASSwizzle.h"
10 | #import
11 |
12 | @implementation NSObject (CASSwizzle)
13 |
14 | + (void)cas_swizzleInstanceSelector:(SEL)originalSelector
15 | withNewSelector:(SEL)newSelector {
16 | Method originalMethod = class_getInstanceMethod(self, originalSelector);
17 | Method newMethod = class_getInstanceMethod(self, newSelector);
18 |
19 | BOOL methodAdded = class_addMethod([self class],
20 | originalSelector,
21 | method_getImplementation(newMethod),
22 | method_getTypeEncoding(newMethod));
23 |
24 | if (methodAdded) {
25 | class_replaceMethod([self class],
26 | newSelector,
27 | method_getImplementation(originalMethod),
28 | method_getTypeEncoding(originalMethod));
29 | } else {
30 | method_exchangeImplementations(originalMethod, newMethod);
31 | }
32 | }
33 |
34 | @end
35 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/NSRegularExpression+CASAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSRegularExpression+CASAdditions.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 17/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | extern NSRegularExpression *CASRegex(NSString *patternFormat, ...) NS_FORMAT_FUNCTION(1,2);
12 |
13 | @interface NSRegularExpression (CASAdditions)
14 |
15 | - (NSUInteger)cas_replaceMatchesInString:(NSMutableString *)string withTemplate:(NSString *)templ;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/NSRegularExpression+CASAdditions.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSRegularExpression+CASAdditions.m
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 17/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "NSRegularExpression+CASAdditions.h"
10 | #import "CASUtilities.h"
11 |
12 | extern NSRegularExpression *CASRegex(NSString *patternFormat, ...) {
13 | va_list args;
14 | va_start(args, patternFormat);
15 | NSString *pattern = [[NSString alloc] initWithFormat:patternFormat arguments:args];
16 | va_end(args);
17 |
18 | NSError *error = nil;
19 | NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:&error];
20 | NSCAssert(error == nil, @"Could not create regex from pattern %@", pattern);
21 | if (error) {
22 | CASLog(@"error %@", error);
23 | }
24 | return regex;
25 | }
26 |
27 | @implementation NSRegularExpression (CASAdditions)
28 |
29 | - (NSUInteger)cas_replaceMatchesInString:(NSMutableString *)string withTemplate:(NSString *)templ {
30 | return [self replaceMatchesInString:string options:0 range:NSMakeRange(0, string.length) withTemplate:templ];
31 | }
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/NSString+CASAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+CASAdditions.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 14/10/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (CASAdditions)
12 |
13 | - (NSString *)cas_stringByCapitalizingFirstLetter;
14 | - (NSString *)cas_stringByTrimmingWhitespace;
15 | - (NSString *)cas_stringByCamelCasing;
16 | - (NSString *)cas_stringByTrimmingLeadingCharactersInSet:(NSCharacterSet *)characterSet;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/NSString+CASAdditions.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+CASAdditions.m
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 14/10/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "NSString+CASAdditions.h"
10 |
11 | @implementation NSString (CASAdditions)
12 |
13 | - (NSString *)cas_stringByCapitalizingFirstLetter {
14 | if (!self.length) return self;
15 | return [self stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:[[self substringToIndex:1] capitalizedString]];
16 | }
17 |
18 | - (NSString *)cas_stringByTrimmingWhitespace {
19 | return [self stringByTrimmingCharactersInSet:NSCharacterSet.whitespaceCharacterSet];
20 | }
21 |
22 | - (NSString *)cas_stringByCamelCasing {
23 | NSArray *components = [self componentsSeparatedByString:@"-"];
24 | if (components.count <= 1) return self;
25 |
26 | NSMutableString *camelCasedString = [NSMutableString string];
27 | for (NSUInteger i = 0; i < components.count; i++) {
28 | if (i == 0) {
29 | [camelCasedString appendString:components[i]];
30 | } else {
31 | [camelCasedString appendString:[components[i] cas_stringByCapitalizingFirstLetter]];
32 | }
33 | }
34 | return camelCasedString;
35 | }
36 |
37 | - (NSString *)cas_stringByTrimmingLeadingCharactersInSet:(NSCharacterSet *)characterSet {
38 | NSInteger i = 0;
39 | while ((i < self.length) && [characterSet characterIsMember:[self characterAtIndex:i]]) {
40 | i++;
41 | }
42 | return [self substringFromIndex:i];
43 | }
44 |
45 | @end
46 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UIBarItem+CASAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIBarItem+CASAdditions.h
3 | //
4 | //
5 | // Created by Jonas Budelmann on 5/11/13.
6 | //
7 | //
8 |
9 | #import
10 | #import "CASStyleableItem.h"
11 |
12 | @interface UIBarItem (CASAdditions)
13 |
14 | @property (nonatomic, weak, readwrite) id cas_parent;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UIBarItem+CASAdditions.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIBarItem+CASAdditions.m
3 | //
4 | //
5 | // Created by Jonas Budelmann on 5/11/13.
6 | //
7 | //
8 |
9 | #import "UIBarItem+CASAdditions.h"
10 | #import
11 | #import "CASStyler.h"
12 |
13 | @implementation UIBarItem (CASAdditions)
14 |
15 | #pragma mark - CASStyleableItem
16 |
17 | - (NSString *)cas_styleClass {
18 | return objc_getAssociatedObject(self, @selector(cas_styleClass));
19 | }
20 |
21 | - (void)setCas_styleClass:(NSString *)styleClass {
22 | if ([self.cas_styleClass isEqual:styleClass]) return;
23 | objc_setAssociatedObject(self, @selector(cas_styleClass), styleClass, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
24 |
25 | [self cas_setNeedsUpdateStyling];
26 | }
27 |
28 | - (id)cas_parent {
29 | return objc_getAssociatedObject(self, @selector(cas_parent));
30 | }
31 |
32 | - (void)setCas_parent:(id)parent {
33 | objc_setAssociatedObject(self, @selector(cas_parent), parent, OBJC_ASSOCIATION_ASSIGN);
34 | }
35 |
36 | - (id)cas_alternativeParent {
37 | return nil;
38 | }
39 |
40 | - (void)cas_updateStylingIfNeeded {
41 | if ([self cas_needsUpdateStyling] && self.cas_parent) {
42 | [self cas_updateStyling];
43 | }
44 | }
45 |
46 | - (void)cas_updateStyling {
47 | [CASStyler.defaultStyler styleItem:self];
48 | }
49 |
50 | - (BOOL)cas_needsUpdateStyling {
51 | return [self.cas_parent cas_needsUpdateStyling];
52 | }
53 |
54 | - (void)cas_setNeedsUpdateStyling {
55 | [self.cas_parent cas_setNeedsUpdateStyling];
56 | }
57 |
58 | @end
59 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UIColor+CASAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIColor+CASAdditions.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 16/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 | // Slightly modified from https://github.com/soffes/sstoolkit/blob/master/SSToolkit/UIColor%2BSSToolkitAdditions.h
9 | // Main change namespaced to avoid collisions with other UIColor categories
10 |
11 | #import
12 |
13 | @interface UIColor (CASAdditions)
14 |
15 | /**
16 | * Creates and returns an UIColor object containing a given value.
17 | *
18 | * @param hex The value for the new color. The `#` sign is not required.
19 | *
20 | * @return An UIColor object containing a value.
21 | * You can specify hex values in the following formats: `rgb`, `rrggbb`, or `rrggbbaa`.
22 | * The default alpha value is `1.0`.
23 | */
24 | + (UIColor *)cas_colorWithHex:(NSString *)hex;
25 |
26 | /**
27 | * Returns the receiver's value as a hex string.
28 | *
29 | * @return The receiver's value as a hex string.
30 | * The value will be `nil` if the color is in a color space other than Grayscale or RGB.
31 | * The `#` sign is omitted. Alpha will be omitted.
32 | */
33 | - (NSString *)cas_hexValue;
34 |
35 | /**
36 | * Returns the receiver's value as a hex string.
37 | *
38 | * @param includeAlpha `YES` if alpha should be included. `NO` if it should not.
39 | *
40 | * @return The receiver's value as a hex string.
41 | * The value will be `nil` if the color is in a color space other than Grayscale or RGB.
42 | * The `#` sign is omitted. Alpha is included if `includeAlpha` is `YES`.
43 | */
44 | - (NSString *)cas_hexValueWithAlpha:(BOOL)includeAlpha;
45 |
46 | @end
47 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UIColor+CASAdditions.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIColor+CASAdditions.m
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 16/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "UIColor+CASAdditions.h"
10 |
11 | @interface NSString (CASPrivateAdditions)
12 | - (NSUInteger)cas_hexValue;
13 | @end
14 |
15 | @implementation NSString (CASPrivateAdditions)
16 | - (NSUInteger)cas_hexValue {
17 | NSUInteger result = 0;
18 | sscanf([self UTF8String], "%x", &result);
19 | return result;
20 | }
21 | @end
22 |
23 | @implementation UIColor (CASAdditions)
24 |
25 | + (UIColor *)cas_colorWithHex:(NSString *)hex {
26 | // Remove `#` and `0x`
27 | if ([hex hasPrefix:@"#"]) {
28 | hex = [hex substringFromIndex:1];
29 | } else if ([hex hasPrefix:@"0x"]) {
30 | hex = [hex substringFromIndex:2];
31 | }
32 |
33 | // Invalid if not 3, 6, or 8 characters
34 | NSUInteger length = [hex length];
35 | if (length != 3 && length != 6 && length != 8) {
36 | return nil;
37 | }
38 |
39 | // Make the string 8 characters long for easier parsing
40 | if (length == 3) {
41 | NSString *r = [hex substringWithRange:NSMakeRange(0, 1)];
42 | NSString *g = [hex substringWithRange:NSMakeRange(1, 1)];
43 | NSString *b = [hex substringWithRange:NSMakeRange(2, 1)];
44 | hex = [NSString stringWithFormat:@"%@%@%@%@%@%@ff",
45 | r, r, g, g, b, b];
46 | } else if (length == 6) {
47 | hex = [hex stringByAppendingString:@"ff"];
48 | }
49 |
50 | CGFloat red = [[hex substringWithRange:NSMakeRange(0, 2)] cas_hexValue] / 255.0f;
51 | CGFloat green = [[hex substringWithRange:NSMakeRange(2, 2)] cas_hexValue] / 255.0f;
52 | CGFloat blue = [[hex substringWithRange:NSMakeRange(4, 2)] cas_hexValue] / 255.0f;
53 | CGFloat alpha = [[hex substringWithRange:NSMakeRange(6, 2)] cas_hexValue] / 255.0f;
54 |
55 | return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
56 | }
57 |
58 | - (NSString *)cas_hexValue {
59 | return [self cas_hexValueWithAlpha:NO];
60 | }
61 |
62 | - (NSString *)cas_hexValueWithAlpha:(BOOL)includeAlpha {
63 | CGColorRef color = self.CGColor;
64 | size_t count = CGColorGetNumberOfComponents(color);
65 | const CGFloat *components = CGColorGetComponents(color);
66 |
67 | static NSString *stringFormat = @"%02x%02x%02x";
68 |
69 | NSString *hex = nil;
70 |
71 | // Grayscale
72 | if (count == 2) {
73 | NSUInteger white = (NSUInteger)(components[0] * 255.0f);
74 | hex = [NSString stringWithFormat:stringFormat, white, white, white];
75 | }
76 |
77 | // RGB
78 | else if (count == 4) {
79 | hex = [NSString stringWithFormat:stringFormat, (NSUInteger)(components[0] * 255.0f),
80 | (NSUInteger)(components[1] * 255.0f), (NSUInteger)(components[2] * 255.0f)];
81 | }
82 |
83 | // Add alpha
84 | if (hex && includeAlpha) {
85 | hex = [hex stringByAppendingFormat:@"%02x", (NSUInteger)(CGColorGetAlpha(self.CGColor) * 255.0f)];
86 | }
87 |
88 | // Unsupported color space
89 | return hex;
90 | }
91 |
92 | @end
93 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UINavigationBar+CASAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationBar+CASAdditions.h
3 | //
4 | //
5 | // Created by Jonas Budelmann on 31/10/13.
6 | //
7 | //
8 |
9 | #import
10 |
11 | @interface UINavigationBar (CASAdditions)
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UINavigationBar+CASAdditions.m:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationBar+CASAdditions.m
3 | //
4 | //
5 | // Created by Jonas Budelmann on 31/10/13.
6 | //
7 | //
8 |
9 | #import "UINavigationBar+CASAdditions.h"
10 | #import "CASStyler.h"
11 | #import "UIView+CASAdditions.h"
12 | #import "UIBarItem+CASAdditions.h"
13 |
14 | @implementation UINavigationBar (CASAdditions)
15 |
16 | - (void)cas_updateStyling {
17 | [super cas_updateStyling];
18 |
19 | for (UINavigationItem *navigationItem in self.items) {
20 | for (UIBarButtonItem *barButtonItem in navigationItem.leftBarButtonItems) {
21 | barButtonItem.cas_parent = self;
22 | [barButtonItem cas_updateStyling];
23 | }
24 | for (UIBarButtonItem *barButtonItem in navigationItem.rightBarButtonItems) {
25 | barButtonItem.cas_parent = self;
26 | [barButtonItem cas_updateStyling];
27 | }
28 | }
29 | }
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UISlider+CASAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // UISlider+CASAdditions.h
3 | //
4 | //
5 | // Created by Cail Borrell on 19/02/14.
6 | //
7 | //
8 |
9 | #import
10 |
11 | @interface UISlider (CASAdditions)
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UISlider+CASAdditions.m:
--------------------------------------------------------------------------------
1 | //
2 | // UISlider+CASAdditions.m
3 | //
4 | //
5 | // Created by Cail Borrell on 19/02/14.
6 | //
7 | //
8 |
9 | #import "UISlider+CASAdditions.h"
10 | #import "NSObject+CASSwizzle.h"
11 | #import "UIView+CASAdditions.h"
12 |
13 | @implementation UISlider (CASAdditions)
14 |
15 | + (void)load {
16 | [self cas_swizzleInstanceSelector:@selector(didMoveToWindow)
17 | withNewSelector:@selector(cas_didMoveToWindow)];
18 | }
19 |
20 | - (void)cas_didMoveToWindow {
21 | [self cas_updateStyling];
22 | [self cas_didMoveToWindow];
23 | }
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UITabBar+CASAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITabBar+CASAdditions.h
3 | //
4 | //
5 | // Created by Jonas Budelmann on 1/11/13.
6 | //
7 | //
8 |
9 | #import
10 |
11 | @interface UITabBar (CASAdditions)
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UITabBar+CASAdditions.m:
--------------------------------------------------------------------------------
1 | //
2 | // UITabBar+CASAdditions.m
3 | //
4 | //
5 | // Created by Jonas Budelmann on 1/11/13.
6 | //
7 | //
8 |
9 | #import "UITabBar+CASAdditions.h"
10 |
11 | #import "CASStyler.h"
12 | #import "UIView+CASAdditions.h"
13 | #import "UIBarItem+CASAdditions.h"
14 |
15 | @implementation UITabBar (CASAdditions)
16 |
17 | - (void)cas_updateStyling {
18 | [super cas_updateStyling];
19 |
20 | for (UITabBarItem *item in self.items) {
21 | item.cas_parent = self;
22 | [item cas_updateStyling];
23 | }
24 | }
25 |
26 | @end
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UITextField+CASAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITextField+CASAdditions.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 14/10/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITextField (CASAdditions)
12 |
13 | @property (nonatomic, assign) UIEdgeInsets cas_textEdgeInsets;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UITextField+CASAdditions.m:
--------------------------------------------------------------------------------
1 | //
2 | // UITextField+CASAdditions.m
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 14/10/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "UITextField+CASAdditions.h"
10 | #import
11 | #import "NSObject+CASSwizzle.h"
12 |
13 | @implementation UITextField (CASAdditions)
14 |
15 | + (void)load {
16 | [self cas_swizzleInstanceSelector:@selector(textRectForBounds:)
17 | withNewSelector:@selector(cas_textRectForBounds:)];
18 |
19 | [self cas_swizzleInstanceSelector:@selector(editingRectForBounds:)
20 | withNewSelector:@selector(cas_editingRectForBounds:)];
21 | }
22 |
23 | #pragma mark - text insets
24 |
25 | - (void)setCas_textEdgeInsets:(UIEdgeInsets)cas_textEdgeInsets {
26 | NSValue *value = [NSValue valueWithUIEdgeInsets:cas_textEdgeInsets];
27 | objc_setAssociatedObject(self, @selector(cas_textEdgeInsets), value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
28 | }
29 |
30 | - (UIEdgeInsets)cas_textEdgeInsets {
31 | return [objc_getAssociatedObject(self, @selector(cas_textEdgeInsets)) UIEdgeInsetsValue];
32 | }
33 |
34 | - (CGRect)cas_textRectForBounds:(CGRect)bounds {
35 | if (UIEdgeInsetsEqualToEdgeInsets(self.cas_textEdgeInsets, UIEdgeInsetsZero)) {
36 | return [self cas_textRectForBounds:bounds];
37 | }
38 | return UIEdgeInsetsInsetRect(bounds, self.cas_textEdgeInsets);
39 | }
40 |
41 | - (CGRect)cas_editingRectForBounds:(CGRect)bounds {
42 | return [self textRectForBounds:bounds];
43 | }
44 |
45 | @end
46 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UIToolbar+CASAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIToolbar+CASAdditions.h
3 | //
4 | //
5 | // Created by Jonas Budelmann on 1/11/13.
6 | //
7 | //
8 |
9 | #import
10 |
11 | @interface UIToolbar (CASAdditions)
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UIToolbar+CASAdditions.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIToolbar+CASAdditions.m
3 | //
4 | //
5 | // Created by Jonas Budelmann on 1/11/13.
6 | //
7 | //
8 |
9 | #import "UIToolbar+CASAdditions.h"
10 |
11 | #import "CASStyler.h"
12 | #import "UIView+CASAdditions.h"
13 | #import "UIBarItem+CASAdditions.h"
14 |
15 | @implementation UIToolbar (CASAdditions)
16 |
17 | - (void)cas_updateStyling {
18 | [super cas_updateStyling];
19 |
20 | for (UIBarButtonItem *item in self.items) {
21 | item.cas_parent = self;
22 | [item cas_updateStyling];
23 | }
24 | }
25 |
26 | @end
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UIView+CASAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+CASAdditions.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 30/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "CASStyleableItem.h"
11 |
12 | @interface UIView (CASAdditions)
13 |
14 | @property (nonatomic, weak, readwrite) id cas_alternativeParent;
15 |
16 | - (void)cas_setNeedsUpdateStylingForSubviews;
17 |
18 | @end
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UIView+CASAdditions.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+CASAdditions.m
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 30/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "UIView+CASAdditions.h"
10 | #import
11 | #import
12 | #import "NSObject+CASSwizzle.h"
13 | #import "CASStyler.h"
14 |
15 | static void *CASStyleHasBeenUpdatedKey = &CASStyleHasBeenUpdatedKey;
16 |
17 | @implementation UIView (CASAdditions)
18 |
19 | + (void)load {
20 | [self cas_swizzleInstanceSelector:@selector(didMoveToWindow)
21 | withNewSelector:@selector(cas_didMoveToWindow)];
22 | }
23 |
24 | - (void)cas_didMoveToWindow {
25 | [self cas_updateStyling];
26 |
27 | [self cas_didMoveToWindow];
28 | }
29 |
30 | - (void)cas_setNeedsUpdateStylingForSubviews {
31 | [self cas_setNeedsUpdateStyling];
32 | for (UIView *view in self.subviews) {
33 | [view cas_setNeedsUpdateStylingForSubviews];
34 | }
35 | }
36 |
37 | #pragma mark - CASStyleableItem
38 |
39 | - (NSString *)cas_styleClass {
40 | return objc_getAssociatedObject(self, @selector(cas_styleClass));
41 | }
42 |
43 | - (void)setCas_styleClass:(NSString *)styleClass {
44 | if ([self.cas_styleClass isEqual:styleClass]) return;
45 | objc_setAssociatedObject(self, @selector(cas_styleClass), styleClass, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
46 |
47 | [self cas_setNeedsUpdateStylingForSubviews];
48 | }
49 |
50 | - (id)cas_parent {
51 | return self.superview;
52 | }
53 |
54 | - (id)cas_alternativeParent {
55 | return objc_getAssociatedObject(self, @selector(cas_alternativeParent));
56 | }
57 |
58 | - (void)setCas_alternativeParent:(id)parent {
59 | objc_setAssociatedObject(self, @selector(cas_alternativeParent), parent, OBJC_ASSOCIATION_ASSIGN);
60 | }
61 |
62 | - (void)cas_updateStylingIfNeeded {
63 | if ([self cas_needsUpdateStyling]) {
64 | [self cas_updateStyling];
65 | }
66 | }
67 |
68 | - (void)cas_updateStyling {
69 | [CASStyler.defaultStyler styleItem:self];
70 | objc_setAssociatedObject(self, CASStyleHasBeenUpdatedKey, @(YES), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
71 | [CASStyler.defaultStyler unscheduleUpdateForItem:self];
72 | }
73 |
74 | - (BOOL)cas_needsUpdateStyling {
75 | return ![objc_getAssociatedObject(self, @selector(cas_needsUpdateStyling)) boolValue];
76 | }
77 |
78 | - (void)cas_setNeedsUpdateStyling {
79 | objc_setAssociatedObject(self, CASStyleHasBeenUpdatedKey, @(NO), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
80 | [CASStyler.defaultStyler scheduleUpdateForItem:self];
81 | }
82 |
83 | @end
84 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UIViewController+CASAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+CASAdditions.h
3 | //
4 | //
5 | // Created by Jonas Budelmann on 17/11/13.
6 | //
7 | //
8 |
9 | #import
10 | #import "CASStyleableItem.h"
11 |
12 | @interface UIViewController (CASAdditions)
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Additions/UIViewController+CASAdditions.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+CASAdditions.m
3 | //
4 | //
5 | // Created by Jonas Budelmann on 17/11/13.
6 | //
7 | //
8 |
9 | #import "UIViewController+CASAdditions.h"
10 | #import "NSObject+CASSwizzle.h"
11 | #import "UIView+CASAdditions.h"
12 | #import
13 | #import "CASStyler.h"
14 |
15 | static void *CASStyleHasBeenUpdatedKey = &CASStyleHasBeenUpdatedKey;
16 |
17 | @implementation UIViewController (CASAdditions)
18 |
19 | + (void)load {
20 | [self cas_swizzleInstanceSelector:@selector(setView:)
21 | withNewSelector:@selector(cas_setView:)];
22 | }
23 |
24 | - (void)cas_setView:(UIView *)view {
25 | view.cas_alternativeParent = self;
26 |
27 | [self cas_setView:view];
28 | }
29 |
30 | #pragma mark - CASStyleableItem
31 |
32 | - (NSString *)cas_styleClass {
33 | return objc_getAssociatedObject(self, @selector(cas_styleClass));
34 | }
35 |
36 | - (void)setCas_styleClass:(NSString *)styleClass {
37 | if ([self.cas_styleClass isEqual:styleClass]) return;
38 | objc_setAssociatedObject(self, @selector(cas_styleClass), styleClass, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
39 |
40 | [self cas_setNeedsUpdateStyling];
41 | [self.view cas_setNeedsUpdateStylingForSubviews];
42 | }
43 |
44 | - (id)cas_parent {
45 | return self.view.superview;
46 | }
47 |
48 | - (id)cas_alternativeParent {
49 | return self.parentViewController;
50 | }
51 |
52 | - (void)cas_updateStylingIfNeeded {
53 | if ([self cas_needsUpdateStyling]) {
54 | [self cas_updateStyling];
55 | }
56 | }
57 |
58 | - (void)cas_updateStyling {
59 | [CASStyler.defaultStyler styleItem:self];
60 | objc_setAssociatedObject(self, CASStyleHasBeenUpdatedKey, @(YES), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
61 | [CASStyler.defaultStyler unscheduleUpdateForItem:self];
62 | }
63 |
64 | - (BOOL)cas_needsUpdateStyling {
65 | return ![objc_getAssociatedObject(self, @selector(cas_needsUpdateStyling)) boolValue];
66 | }
67 |
68 | - (void)cas_setNeedsUpdateStyling {
69 | objc_setAssociatedObject(self, CASStyleHasBeenUpdatedKey, @(NO), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
70 | [CASStyler.defaultStyler scheduleUpdateForItem:self];
71 | }
72 |
73 | @end
74 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Classy.h:
--------------------------------------------------------------------------------
1 | //
2 | // Classy.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 16/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "CASStyler.h"
12 | #import "CASStyleableItem.h"
13 | #import "CASUtilities.h"
14 | #import "CASObjectClassDescriptor.h"
15 | #import "CASArgumentDescriptor.h"
16 | #import "CASPropertyDescriptor.h"
17 |
18 | #import "UIColor+CASAdditions.h"
19 | #import "UITextField+CASAdditions.h"
20 | #import "UIView+CASAdditions.h"
21 | #import "UIBarItem+CASAdditions.h"
22 | #import "UINavigationBar+CASAdditions.h"
23 | #import "UITabBar+CASAdditions.h"
24 | #import "UIToolBar+CASAdditions.h"
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASDeviceOSVersionItem.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASDeviceOSVersionItem.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 25/11/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "CASDeviceSelectorItem.h"
11 |
12 | @interface CASDeviceOSVersionItem : NSObject
13 |
14 | @property (nonatomic, copy) NSString *version;
15 | @property (nonatomic, assign) CASRelation relation;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASDeviceOSVersionItem.m:
--------------------------------------------------------------------------------
1 | //
2 | // CASDeviceOSVersionItem.m
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 25/11/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "CASDeviceOSVersionItem.h"
10 | #import "CASUtilities.h"
11 |
12 | @implementation CASDeviceOSVersionItem
13 |
14 | - (NSString *)relationString {
15 | switch (self.relation) {
16 | case CASRelationLessThan:
17 | return @"<";
18 | case CASRelationLessThanOrEqual:
19 | return @"<=";
20 | case CASRelationEqual:
21 | return @"";
22 | case CASRelationGreaterThanOrEqual:
23 | return @">=";
24 | case CASRelationGreaterThan:
25 | return @">";
26 | }
27 | }
28 |
29 | - (BOOL)isValid {
30 | switch (self.relation) {
31 | case CASRelationLessThan:
32 | return CASDeviceSystemVersionIsLessThan(self.version);
33 | case CASRelationLessThanOrEqual:
34 | return CASDeviceSystemVersionIsLessThanOrEqualTo(self.version);
35 | case CASRelationEqual:
36 | return CASDeviceSystemVersionIsEqualTo(self.version);
37 | case CASRelationGreaterThanOrEqual:
38 | return CASDeviceSystemVersionIsGreaterThanOrEqualTo(self.version);
39 | case CASRelationGreaterThan:
40 | return CASDeviceSystemVersionIsGreaterThan(self.version);
41 | }
42 | }
43 |
44 | - (NSString *)stringValue {
45 | return [NSString stringWithFormat:@"(version:%@%@)", self.relationString, self.version];
46 | }
47 |
48 | @end
49 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASDeviceSelector.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASStyleMediaSelector.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 24/11/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "CASDeviceTypeItem.h"
11 | #import "CASDeviceOSVersionItem.h"
12 |
13 | @interface CASDeviceSelector : NSObject
14 |
15 | @property (nonatomic, strong, readonly) NSArray *items;
16 |
17 | - (void)addItems:(NSArray *)items;
18 | - (void)addDeviceType:(CASDeviceType)deviceType;
19 | - (BOOL)addOSVersion:(NSString *)version;
20 |
21 | - (BOOL)isValid;
22 | - (NSString *)stringValue;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASDeviceSelector.m:
--------------------------------------------------------------------------------
1 | //
2 | // CASStyleMediaSelector.m
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 24/11/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "CASDeviceSelector.h"
10 | #import "NSString+CASAdditions.h"
11 |
12 | @implementation CASDeviceSelector {
13 | NSMutableArray *_items;
14 | }
15 |
16 | - (id)init {
17 | self = [super init];
18 | if (!self) return nil;
19 |
20 | _items = NSMutableArray.new;
21 |
22 | return self;
23 | }
24 |
25 | - (NSArray *)items {
26 | return _items;
27 | }
28 |
29 | - (void)addItems:(NSArray *)items {
30 | [_items addObjectsFromArray:items];
31 | }
32 |
33 | - (void)addDeviceType:(CASDeviceType)deviceType {
34 | CASDeviceTypeItem *item = CASDeviceTypeItem.new;
35 | item.deviceType = deviceType;
36 | [_items addObject:item];
37 | }
38 |
39 | - (BOOL)addOSVersion:(NSString *)version {
40 | CASRelation relation = CASRelationEqual;
41 |
42 | NSCharacterSet *equalityCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@">=<"];
43 | NSString *versionNumberString = [version cas_stringByTrimmingLeadingCharactersInSet:equalityCharacterSet];
44 | NSString *relationString = [version substringToIndex:version.length - versionNumberString.length];
45 |
46 | if ([relationString isEqualToString:@"<"]) {
47 | relation = CASRelationLessThan;
48 | } else if ([relationString isEqualToString:@"<="]) {
49 | relation = CASRelationLessThanOrEqual;
50 | } else if ([relationString isEqualToString:@"=="]) {
51 | relation = CASRelationEqual;
52 | } else if ([relationString isEqualToString:@">="]) {
53 | relation = CASRelationGreaterThanOrEqual;
54 | } else if ([relationString isEqualToString:@">"]) {
55 | relation = CASRelationGreaterThan;
56 | } else if (relation == CASRelationEqual && relationString.length) {
57 | return NO;
58 | }
59 |
60 | CASDeviceOSVersionItem *item = CASDeviceOSVersionItem.new;
61 | item.version = versionNumberString;
62 | item.relation = relation;
63 | [_items addObject:item];
64 |
65 | return YES;
66 | }
67 |
68 | - (BOOL)isValid {
69 | for (id item in self.items) {
70 | if (!item.isValid) {
71 | return NO;
72 | }
73 | }
74 | return YES;
75 | }
76 |
77 | - (NSString *)stringValue {
78 | NSMutableString *string = NSMutableString.new;
79 |
80 | [self.items enumerateObjectsUsingBlock:^(id item, NSUInteger idx, BOOL *stop) {
81 | [string appendString:item.stringValue];
82 | if (idx != self.items.count - 1) {
83 | [string appendString:@" and "];
84 | }
85 | }];
86 |
87 | return string;
88 | }
89 |
90 | @end
91 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASDeviceSelectorItem.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASDeviceSelectorItem.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 25/11/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef NS_ENUM(NSInteger, CASRelation) {
12 | CASRelationLessThan = -2,
13 | CASRelationLessThanOrEqual = -1,
14 | CASRelationEqual = 0,
15 | CASRelationGreaterThanOrEqual = 1,
16 | CASRelationGreaterThan = 2,
17 | };
18 |
19 | @protocol CASDeviceSelectorItem
20 |
21 | - (BOOL)isValid;
22 | - (NSString *)stringValue;
23 |
24 | @end
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASDeviceTypeItem.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASDeviceTypeItem.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 25/11/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "CASDeviceSelectorItem.h"
11 |
12 |
13 | typedef NS_ENUM(NSInteger, CASDeviceType) {
14 | CASDeviceTypePhone = 0,
15 | CASDeviceTypePad = 1,
16 | };
17 |
18 | @interface CASDeviceTypeItem : NSObject
19 |
20 | @property (nonatomic, assign) CASDeviceType deviceType;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASDeviceTypeItem.m:
--------------------------------------------------------------------------------
1 | //
2 | // CASDeviceTypeItem.m
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 25/11/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "CASDeviceTypeItem.h"
10 |
11 | @implementation CASDeviceTypeItem
12 |
13 | - (BOOL)isValid {
14 | if (self.deviceType == CASDeviceTypePhone) {
15 | return UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone;
16 | } else {
17 | return UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad;
18 | }
19 | }
20 |
21 | - (NSString *)stringValue {
22 | if (self.deviceType == CASDeviceTypePhone) {
23 | return @"phone";
24 | }
25 | return @"pad";
26 | }
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASExpressionSolver.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASExpressionSolver.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 18/10/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface CASExpressionSolver : NSObject
12 |
13 | /**
14 | * Takes an array of tokens and reduces any expressions contained within to a numerical value.
15 | * Skips tokens which cannot be evaluated in a expression
16 | *
17 | * @return a NSArray of tokens
18 | */
19 | - (NSArray *)tokensByReducingTokens:(NSArray *)tokens;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASInvocation.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASInvocation.h
3 | //
4 | //
5 | // Created by Jonas Budelmann on 5/11/13.
6 | //
7 | //
8 |
9 | #import
10 |
11 | @interface CASInvocation : NSObject
12 |
13 | /**
14 | * Wraps an NSInvocation with an optional keypath.
15 | * If keypath is non-nil will alter the target when invokeWithTarget: is called
16 | *
17 | * @param invocation NSInvocation to wrap
18 | * @param keyPath to store for later use
19 | *
20 | * @return CASInvocation
21 | */
22 | - (id)initWithInvocation:(NSInvocation *)invocation forKeyPath:(NSString *)keyPath;
23 |
24 | /**
25 | * Invoke the wrapped NSInvocation.
26 | * If keypath is non-nil target will be evaluated keypath
27 | *
28 | * @param target root object
29 | */
30 | - (void)invokeWithTarget:(id)target;
31 |
32 | @end
33 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASInvocation.m:
--------------------------------------------------------------------------------
1 | //
2 | // CASInvocation.m
3 | //
4 | //
5 | // Created by Jonas Budelmann on 5/11/13.
6 | //
7 | //
8 |
9 | #import "CASInvocation.h"
10 |
11 | @interface CASInvocation ()
12 |
13 | @property (nonatomic, copy) NSString *keyPath;
14 | @property (nonatomic, strong) NSInvocation *invocation;
15 |
16 | @end
17 |
18 | @implementation CASInvocation
19 |
20 | - (id)initWithInvocation:(NSInvocation *)invocation forKeyPath:(NSString *)keyPath {
21 | self = [super init];
22 | if (!self) return nil;
23 |
24 | self.invocation = invocation;
25 | self.keyPath = keyPath;
26 |
27 | return self;
28 | }
29 |
30 | - (void)invokeWithTarget:(id)target {
31 | id resolvedTarget = self.keyPath ? [target valueForKeyPath:self.keyPath] : target;
32 | [self.invocation invokeWithTarget:resolvedTarget];
33 | }
34 |
35 | @end
36 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASLexer.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASLexer.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 15/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "CASToken.h"
11 |
12 | extern NSString * const CASParseErrorDomain;
13 | extern NSInteger const CASParseErrorInvalidToken;
14 | extern NSInteger const CASParseErrorInvalidIndentation;
15 | extern NSString * const CASParseFailingLineNumberErrorKey;
16 | extern NSString * const CASParseFailingStringErrorKey;
17 |
18 | @interface CASLexer : NSObject
19 |
20 | /**
21 | * The error, if any, that occurred during tokenisation
22 | */
23 | @property (nonatomic, strong, readonly) NSError *error;
24 |
25 | /**
26 | * The remaining length of string to tokenise
27 | */
28 | @property (nonatomic, assign, readonly) NSInteger length;
29 |
30 | /**
31 | * Create new `CASLexer` with a `NSString` to Tokenize
32 | */
33 | - (id)initWithString:(NSString *)str;
34 |
35 | /**
36 | * Create a error and attach current string and line number to userInfo
37 | */
38 | - (NSError *)errorWithDescription:(NSString *)description reason:(NSString *)reason code:(NSUInteger)code;
39 |
40 | /**
41 | * Token from stash or by advancing.
42 | *
43 | * @return a `CASToken` which will remain or be added to the stash
44 | */
45 | - (CASToken *)peekToken;
46 |
47 | /**
48 | * Token from stash or by advancing.
49 | *
50 | * @return a `CASToken` which if coming from stash will be removed
51 | */
52 | - (CASToken *)nextToken;
53 |
54 | /**
55 | * lookahead advances stash if needed
56 | * then returns the token `count` from top of stash
57 | *
58 | * @param count number of tokens to lookahead, minimum=1
59 | *
60 | * @return The token corresponding to the number of lookaheads
61 | */
62 | - (CASToken *)lookaheadByCount:(NSUInteger)count;
63 |
64 | @end
65 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASParser.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASParser.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 15/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "CASLexer.h"
11 |
12 | extern NSString * const CASParseFailingFilePathErrorKey;
13 | extern NSInteger const CASParseErrorFileContents;
14 |
15 | @interface CASParser : NSObject
16 |
17 | @property (nonatomic, strong, readonly) NSArray *styleNodes;
18 | @property (nonatomic, strong, readonly) NSSet *importedFileNames;
19 |
20 | /**
21 | * Create a parser with the given file path
22 | */
23 | + (CASParser *)parserFromFilePath:(NSString *)filePath variables:(NSDictionary *)variables error:(NSError **)error;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASStyleNode.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASStyleGroup.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 25/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "CASStyleProperty.h"
11 | #import "CASStyleSelector.h"
12 | #import "CASDeviceSelector.h"
13 |
14 | @interface CASStyleNode : NSObject
15 |
16 | /**
17 | * NSInvocations to apply to appropriate view
18 | */
19 | @property (nonatomic, strong) NSArray *invocations;
20 |
21 | /**
22 | * returns all style properties for the receiver
23 | */
24 | @property (nonatomic, strong, readonly) NSArray *styleProperties;
25 |
26 | /**
27 | * style selector related to this node
28 | */
29 | @property (nonatomic, strong) CASStyleSelector *styleSelector;
30 |
31 | /**
32 | * device selector related to this node
33 | */
34 | @property (nonatomic, strong) CASDeviceSelector *deviceSelector;
35 |
36 | /**
37 | * Add a style property to the receiver
38 | */
39 | - (void)addStyleProperty:(CASStyleProperty *)styleProperty;
40 |
41 | @end
42 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASStyleNode.m:
--------------------------------------------------------------------------------
1 | //
2 | // CASStyleGroup.m
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 25/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "CASStyleNode.h"
10 |
11 | @implementation CASStyleNode {
12 | NSMutableArray *_styleProperties;
13 | }
14 |
15 | @synthesize styleProperties = _styleProperties;
16 |
17 | - (id)init {
18 | self = [super init];
19 | if (!self) return nil;
20 |
21 | _styleProperties = NSMutableArray.new;
22 |
23 | return self;
24 | }
25 |
26 | - (void)addStyleProperty:(CASStyleProperty *)styleProperty {
27 | [_styleProperties addObject:styleProperty];
28 | }
29 |
30 | @end
31 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASStyleProperty.h:
--------------------------------------------------------------------------------
1 | //
2 | // MODStyleProperty.h
3 | // Mod
4 | //
5 | // Created by Jonas Budelmann on 25/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "CASToken.h"
12 |
13 | @interface CASStyleProperty : NSObject
14 |
15 | /**
16 | * Name of the receiver
17 | */
18 | @property (nonatomic, strong, readonly) NSString *name;
19 |
20 | /**
21 | * Raw values of the receiver
22 | */
23 | @property (nonatomic, strong, readonly) NSArray *values;
24 |
25 | /**
26 | * Name token of the receiver
27 | */
28 | @property (nonatomic, strong, readonly) CASToken *nameToken;
29 |
30 | /**
31 | * value tokens of the receiver
32 | */
33 | @property (nonatomic, strong, readonly) NSArray *valueTokens;
34 |
35 | /**
36 | * child style properties
37 | */
38 | @property (nonatomic, strong, readonly) NSArray *childStyleProperties;
39 |
40 | /**
41 | * Provides support for properties that have extra arguments such as
42 | * - setTitle:forState:
43 | */
44 | @property (nonatomic, strong) NSDictionary *arguments;
45 |
46 | /**
47 | * Creates property with raw data in the form of CATokens
48 | */
49 | - (id)initWithNameToken:(CASToken *)nameToken valueTokens:(NSArray *)valueTokens;
50 |
51 | /**
52 | * Returns first valueToken of a specific token type
53 | *
54 | * @param tokenType `CASTokenType` sought
55 | *
56 | * @return a `CASToken`
57 | */
58 | - (id)valueOfTokenType:(CASTokenType)tokenType;
59 |
60 | /**
61 | * Returns all consecutive valueTokens of a specific token type
62 | * Will ignore whitespace and commas
63 | *
64 | * @param tokenType `CASTokenType` sought
65 | *
66 | * @return a `CASToken`
67 | */
68 | - (NSArray *)consecutiveValuesOfTokenType:(CASTokenType)tokenType;
69 |
70 | /**
71 | * Attempts to extract a CGSize from the valueTokens
72 | *
73 | * @param size CGSize pointer
74 | *
75 | * @return whether the extraction succeeded
76 | */
77 | - (BOOL)transformValuesToCGSize:(CGSize *)size;
78 |
79 | /**
80 | * Attempts to extract a CGPoint from the valueTokens
81 | *
82 | * @param size CGPoint pointer
83 | *
84 | * @return whether the extraction succeeded
85 | */
86 | - (BOOL)transformValuesToCGPoint:(CGPoint *)point;
87 |
88 | /**
89 | * Attempts to extract a CGRect from the valueTokens
90 | *
91 | * @param size CGRect pointer
92 | *
93 | * @return whether the extraction succeeded
94 | */
95 | - (BOOL)transformValuesToCGRect:(CGRect *)rect;
96 |
97 | /**
98 | * Attempts to extract a UIOffset from the valueTokens
99 | *
100 | * @param offset UIOffset pointer
101 | *
102 | * @return whether the extraction succeeded
103 | */
104 | - (BOOL)transformValuesToUIOffset:(UIOffset *)offset;
105 |
106 | /**
107 | * Attempts to extract a UIEdgeInsets from the valueTokens
108 | *
109 | * @param size UIEdgeInsets pointer
110 | *
111 | * @return whether the extraction succeeded
112 | */
113 | - (BOOL)transformValuesToUIEdgeInsets:(UIEdgeInsets *)insets;
114 |
115 | /**
116 | * Attempts to extract a UIColor from the valueTokens
117 | *
118 | * @param color UIColor pointer
119 | *
120 | * @return whether the extraction succeeded
121 | */
122 | - (BOOL)transformValuesToUIColor:(UIColor **)color;
123 |
124 | /**
125 | * Attempts to extract a UIImage from the valueTokens
126 | *
127 | * @param image UIImage pointer
128 | *
129 | * @return whether the extraction succeeded
130 | */
131 | - (BOOL)transformValuesToUIImage:(UIImage **)image;
132 |
133 | /**
134 | * Attempts to extract a NSString from the valueTokens
135 | *
136 | * @param string NSString pointer
137 | *
138 | * @return whether the extraction succeeded
139 | */
140 | - (BOOL)transformValuesToNSString:(NSString **)string;
141 |
142 | /**
143 | * Attempts to extract a UIFont from the valueTokens
144 | *
145 | * @param font UIFont pointer
146 | *
147 | * @return whether the extraction succeeded
148 | */
149 | - (BOOL)transformValuesToUIFont:(UIFont **)font;
150 |
151 | /**
152 | * Replace any detected expressions/equations with a numerical value
153 | */
154 | - (void)resolveExpressions;
155 |
156 | /**
157 | * adds nested CASStyleProperty to the receiver
158 | */
159 | - (void)addChildStyleProperty:(CASStyleProperty *)styleProperty;
160 |
161 | @end
162 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASStyleSelector.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASStyleSelector.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 29/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "CASStyleableItem.h"
11 |
12 | @interface CASStyleSelector : NSObject
13 |
14 | /**
15 | * Class of View to match
16 | */
17 | @property (nonatomic, strong) Class objectClass;
18 |
19 | /**
20 | * If not nil checks the view's cas_styleClass property
21 | */
22 | @property (nonatomic, copy) NSString *styleClass;
23 |
24 | /**
25 | * Whether or not to do strict matching against objectClass
26 | */
27 | @property (nonatomic, assign) BOOL shouldSelectSubclasses;
28 |
29 | /**
30 | * Whether or not parent selector can be an indirect superview
31 | */
32 | @property (nonatomic, assign) BOOL shouldSelectIndirectSuperview;
33 |
34 | /**
35 | * Whether or not this selector is a parent
36 | */
37 | @property (nonatomic, assign, getter = isParent) BOOL parent;
38 |
39 |
40 | /**
41 | * Whether or not this selector should be concatenated
42 | */
43 | @property (nonatomic, assign) BOOL shouldConcatToParent;
44 |
45 | /**
46 | * Provides support for properties that have extra arguments such as
47 | * - setTitle:forState:
48 | */
49 | @property (nonatomic, strong) NSDictionary *arguments;
50 |
51 | /**
52 | * Parent selector
53 | */
54 | @property (nonatomic, strong) CASStyleSelector *parentSelector;
55 |
56 | /**
57 | * Last selector in heirachy
58 | */
59 | @property (nonatomic, readonly) CASStyleSelector *lastSelector;
60 |
61 | /**
62 | * Returns a integer representation of how specific this selector is.
63 | * Provides a way to order selectors.
64 | *
65 | * The Rules
66 | *
67 | * ObjectClass matches
68 | * +2 ancestor
69 | * +3 superview
70 | * +4 view
71 | *
72 | * if loose match (shouldSelectSubclasses)
73 | * -1
74 | *
75 | * StyleClass matches
76 | * +1000 ancestor
77 | * +2000 superview
78 | * +3000 view
79 | *
80 | * @return Precendence score
81 | */
82 | - (NSInteger)precedence;
83 |
84 | /**
85 | * Whether is selector matches the given item
86 | *
87 | * @param item `CASStyleableItem` or a subclass
88 | *
89 | * @return `YES` if all selectors including parent selectors match the item
90 | */
91 | - (BOOL)shouldSelectItem:(id)item;
92 |
93 | /**
94 | * String representation of receiver
95 | *
96 | * @return a `NSString` value
97 | */
98 | - (NSString *)stringValue;
99 |
100 | @end
101 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASStyleSelector.m:
--------------------------------------------------------------------------------
1 | //
2 | // CASStyleSelector.m
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 29/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "CASStyleSelector.h"
10 | #import "UIView+CASAdditions.h"
11 | #import "NSString+CASAdditions.h"
12 |
13 | @implementation CASStyleSelector
14 |
15 | - (id)init {
16 | self = [super init];
17 | if (!self) return nil;
18 |
19 | self.shouldSelectSubclasses = NO;
20 | self.shouldSelectIndirectSuperview = YES;
21 |
22 | return self;
23 | }
24 |
25 | - (id)copyWithZone:(NSZone *)zone {
26 | CASStyleSelector *newSelector = [[self.class allocWithZone:zone] init];
27 | if (!newSelector) return nil;
28 |
29 | newSelector.objectClass = self.objectClass;
30 | newSelector.styleClass = self.styleClass;
31 | newSelector.shouldSelectSubclasses = self.shouldSelectSubclasses;
32 | newSelector.shouldSelectIndirectSuperview = self.shouldSelectIndirectSuperview;
33 | newSelector.shouldConcatToParent = self.shouldConcatToParent;
34 | newSelector.arguments = [self.arguments copy];
35 | newSelector.parentSelector = [self.parentSelector copy];
36 |
37 | return newSelector;
38 | }
39 |
40 | #pragma mark - properties
41 |
42 | - (CASStyleSelector *)lastSelector {
43 | return self.parentSelector.lastSelector ?: self;
44 | }
45 |
46 | #pragma mark - public
47 |
48 | - (NSInteger)precedence {
49 | NSInteger precedence = 0;
50 | if (self.objectClass) {
51 | if (self.isParent) {
52 | precedence += self.shouldSelectIndirectSuperview ? 2 : 3;
53 | } else {
54 | precedence += 4;
55 | }
56 | if (self.shouldSelectSubclasses) {
57 | precedence -= 1;
58 | }
59 | }
60 |
61 | if (self.styleClass) {
62 | if (self.isParent) {
63 | precedence += self.shouldSelectIndirectSuperview ? 1000 : 2000;
64 | } else {
65 | precedence += 3000;
66 | }
67 | }
68 |
69 | precedence += self.parentSelector.precedence;
70 | return precedence;
71 | }
72 |
73 | - (BOOL)shouldSelectItem:(id)item {
74 | if (![self matchesItem:item]) {
75 | return NO;
76 | }
77 |
78 | if (self.parentSelector) {
79 | return [self.parentSelector matchesAncestorsOfItem:item traverse:self.shouldSelectIndirectSuperview];
80 | }
81 |
82 | return YES;
83 | }
84 |
85 | - (NSString *)stringValue {
86 | NSMutableString *stringValue = NSMutableString.new;
87 | if (self.parentSelector) {
88 | [stringValue appendFormat:self.shouldSelectIndirectSuperview ? @"%@ " : @"%@ > ", [self.parentSelector stringValue]];
89 | }
90 | if (self.shouldSelectSubclasses) {
91 | [stringValue appendString:@"^"];
92 | }
93 | if (self.objectClass) {
94 | [stringValue appendString:NSStringFromClass(self.objectClass)];
95 | }
96 | if (self.arguments) {
97 | [stringValue appendString:@"["];
98 | NSArray *keys = [self.arguments.allKeys sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
99 | [keys enumerateObjectsUsingBlock:^(NSString *key, NSUInteger idx, BOOL *stop) {
100 | [stringValue appendFormat:@"%@:%@", key, self.arguments[key]];
101 | if (idx != keys.count - 1) {
102 | [stringValue appendString:@", "];
103 | }
104 | }];
105 | [stringValue appendString:@"]"];
106 | }
107 | if (self.styleClass) {
108 | [stringValue appendFormat:@".%@", self.styleClass];
109 | }
110 | return stringValue;
111 | }
112 |
113 | #pragma mark - private
114 |
115 | - (BOOL)matchesAncestorsOfItem:(id)item traverse:(BOOL)traverse {
116 | id currentItem = item;
117 |
118 | while (currentItem.cas_parent != nil || currentItem.cas_alternativeParent != nil) {
119 | id ancestor;
120 | if ([self matchesItem:currentItem.cas_parent]) {
121 | ancestor = currentItem.cas_parent;
122 | } else if ([self matchesItem:currentItem.cas_alternativeParent]) {
123 | ancestor = currentItem.cas_alternativeParent;
124 | }
125 |
126 | if (ancestor) {
127 | if (!self.parentSelector) return YES;
128 | BOOL traverse = self.shouldSelectIndirectSuperview;
129 | if ([self.parentSelector matchesAncestorsOfItem:ancestor traverse:traverse]) return YES;
130 | }
131 | if (!traverse) return NO;
132 | currentItem = currentItem.cas_parent;
133 | }
134 |
135 | return NO;
136 | }
137 |
138 | - (BOOL)matchesItem:(id)item {
139 | if (self.objectClass) {
140 | if (self.shouldSelectSubclasses) {
141 | if (![item isKindOfClass:self.objectClass]) return NO;
142 | } else {
143 | if (![item isMemberOfClass:self.objectClass]) return NO;
144 | }
145 | }
146 | if (self.styleClass.length && ![self.styleClass isEqualToString:item.cas_styleClass]) {
147 | return NO;
148 | }
149 | return YES;
150 | }
151 |
152 | @end
153 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASStyler.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASStyler.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 16/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "CASObjectClassDescriptor.h"
11 | #import "CASStyleableItem.h"
12 |
13 | @interface CASStyler : NSObject
14 |
15 | /**
16 | * Singleton instance
17 | */
18 | + (instancetype)defaultStyler;
19 |
20 | @property (nonatomic, copy) NSDictionary *variables;
21 |
22 | /**
23 | * File path which contains style data
24 | */
25 | @property (nonatomic, copy) NSString *filePath;
26 |
27 | /**
28 | * File path to watch for changes.
29 | * Only use for debugging on simulator
30 | */
31 | @property (nonatomic, copy) NSString *watchFilePath;
32 |
33 | /**
34 | * Set file path location of styling data and report any errors
35 | *
36 | * @param filePath The location of the style data
37 | * @param error The error that occurred while parsing the filePath
38 | */
39 | - (void)setFilePath:(NSString *)filePath error:(NSError **)error;
40 |
41 | /**
42 | * Apply any applicable styles to a CASStyleableItem instance, from low to high precendence
43 | *
44 | * @param item `CASStyleableItem` to apply styles to
45 | */
46 | - (void)styleItem:(id)item;
47 |
48 | /**
49 | * Returns a cached CASObjectClassDescriptor if it exists or creates one
50 | */
51 | - (CASObjectClassDescriptor *)objectClassDescriptorForClass:(Class)aClass;
52 |
53 | /**
54 | * Schedule update for styleable item.
55 | * This ensures we only update an item once per run loop
56 | *
57 | * @param item CASStyleableItem to coalesce update calls
58 | */
59 | - (void)scheduleUpdateForItem:(id)item;
60 |
61 | /**
62 | * Unschedule update for styleable item
63 | *
64 | * @param item CASStyleableItem that no longer needs updating
65 | */
66 | - (void)unscheduleUpdateForItem:(id)item;
67 |
68 | @end
69 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASTextAttributes.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASTextAttributes.h
3 | //
4 | //
5 | // Created by Jonas Budelmann on 4/11/13.
6 | //
7 | //
8 |
9 | #import
10 |
11 | /**
12 | * Each property maps directly to a attribute name
13 | * ie font = NSFontAttributeName
14 | */
15 | @interface CASTextAttributes : NSObject
16 |
17 | @property (nonatomic, strong) UIFont *font;
18 | @property (nonatomic, strong) NSMutableParagraphStyle *paragraphStyle;
19 | @property (nonatomic, strong) UIColor *foregroundColor;
20 | @property (nonatomic, strong) UIColor *backgroundColor;
21 | @property (nonatomic, assign) NSInteger ligature;
22 | @property (nonatomic, assign) CGFloat kern;
23 | @property (nonatomic, assign) NSUnderlineStyle strikethroughStyle;
24 | @property (nonatomic, assign) NSUnderlineStyle underlineStyle;
25 | @property (nonatomic, strong) UIColor *strokeColor;
26 | @property (nonatomic, assign) CGFloat strokeWidth;
27 | @property (nonatomic, strong) NSShadow *shadow;
28 | @property (nonatomic, assign) CGFloat baselineOffset;
29 |
30 | /**
31 | * Transformer receiver into appropriate NSDictionary
32 | *
33 | * @return NSDictionary containing text attribute keys and values
34 | */
35 | - (NSDictionary *)dictionary;
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASTextAttributes.m:
--------------------------------------------------------------------------------
1 | //
2 | // CASTextAttributes.m
3 | //
4 | //
5 | // Created by Jonas Budelmann on 4/11/13.
6 | //
7 | //
8 |
9 | #import "CASTextAttributes.h"
10 | #import "CASUtilities.h"
11 |
12 | @implementation CASTextAttributes
13 |
14 | - (NSMutableParagraphStyle *)paragraphStyle {
15 | if (!_paragraphStyle) {
16 | _paragraphStyle = [NSParagraphStyle defaultParagraphStyle].mutableCopy;
17 | }
18 | return _paragraphStyle;
19 | }
20 |
21 | - (NSShadow *)shadow {
22 | if (!_shadow) {
23 | _shadow = NSShadow.new;
24 | }
25 | return _shadow;
26 | }
27 |
28 | - (NSDictionary *)dictionary {
29 | NSMutableDictionary *dictionary = NSMutableDictionary.new;
30 |
31 | if (self.font) {
32 | dictionary[NSFontAttributeName] = self.font;
33 | }
34 |
35 | if (_paragraphStyle) {
36 | dictionary[NSParagraphStyleAttributeName] = _paragraphStyle;
37 | }
38 |
39 | if (self.foregroundColor) {
40 | dictionary[NSForegroundColorAttributeName] = self.foregroundColor;
41 | }
42 |
43 | if (self.backgroundColor) {
44 | dictionary[NSBackgroundColorAttributeName] = self.backgroundColor;
45 | }
46 |
47 | dictionary[NSLigatureAttributeName] = @(self.ligature);
48 | dictionary[NSKernAttributeName] = @(self.kern);
49 | dictionary[NSStrikethroughStyleAttributeName] = @(self.strikethroughStyle);
50 | dictionary[NSUnderlineStyleAttributeName] = @(self.underlineStyle);
51 |
52 | if (CASKeyDeviceSystemMajorVersion() >= 7) {
53 | dictionary[NSBaselineOffsetAttributeName] = @(self.baselineOffset);
54 | }
55 |
56 | if (self.strokeColor) {
57 | dictionary[NSStrokeColorAttributeName] = self.strokeColor;
58 | }
59 |
60 | dictionary[NSStrokeWidthAttributeName] = @(self.strokeWidth);
61 |
62 | if (_shadow) {
63 | dictionary[NSShadowAttributeName] = _shadow;
64 | }
65 |
66 | return dictionary;
67 | }
68 |
69 | @end
70 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASToken.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASToken.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 16/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef NS_ENUM(NSInteger, CASTokenType) {
12 | CASTokenTypeUnknown,
13 | CASTokenTypeIndent,
14 | CASTokenTypeOutdent,
15 | CASTokenTypeEOS,
16 | CASTokenTypeSemiColon,
17 | CASTokenTypeCarat,
18 | CASTokenTypeNewline,
19 | CASTokenTypeLeftSquareBrace,
20 | CASTokenTypeRightSquareBrace,
21 | CASTokenTypeLeftCurlyBrace,
22 | CASTokenTypeRightCurlyBrace,
23 | CASTokenTypeLeftRoundBrace,
24 | CASTokenTypeRightRoundBrace,
25 | CASTokenTypeColor,
26 | CASTokenTypeString,
27 | CASTokenTypeUnit,
28 | CASTokenTypeBoolean,
29 | CASTokenTypeRef,
30 | CASTokenTypeOperator,
31 | CASTokenTypeSpace,
32 | CASTokenTypeSelector,
33 | };
34 |
35 | @interface CASToken : NSObject
36 |
37 | /**
38 | * The type of the token, may not represent the true type which is determined in context of other tokens
39 | */
40 | @property (nonatomic, assign, readonly) CASTokenType type;
41 |
42 | /**
43 | * The value of the token, could be a boxed primitive or a `NSString`, `UIColor`, ...
44 | */
45 | @property (nonatomic, strong) id value;
46 |
47 | /**
48 | * The line number at which the token appeared in the style file, used for debug and error messages
49 | */
50 | @property (nonatomic, assign) NSInteger lineNumber;
51 |
52 | /**
53 | * Factory method for creating tokens with a particular `CASTokenType`
54 | */
55 | + (instancetype)tokenOfType:(CASTokenType)type;
56 |
57 | /**
58 | * Factory method for creating tokens with a particular `CASTokenType` and value
59 | */
60 | + (instancetype)tokenOfType:(CASTokenType)type value:(id)value;
61 |
62 | /**
63 | * Returns a `NSString` representation of a `CASTokenType`
64 | * Mainly used for debug output
65 | *
66 | * @param type The `CASTokenType` to convert to a `NSString`
67 | *
68 | * @return a `NSString` representing the passed `CASTokenType`
69 | */
70 | + (NSString *)stringForType:(CASTokenType)type;
71 |
72 | /**
73 | * Returns value of receiver as a string
74 | */
75 | - (NSString *)stringValue;
76 |
77 | /**
78 | * Returns whether receiver is a whitespace token or not
79 | *
80 | * @return `YES` if receiver is one of the following types indent, outdent, space, new line.
81 | */
82 | - (BOOL)isWhitespace;
83 |
84 | /**
85 | * Returns whether receiver's value is equal to the given value
86 | *
87 | * @param string the value for comparison
88 | *
89 | * @return `YES` if receiver is equal to the given value
90 | */
91 | - (BOOL)valueIsEqualTo:(id)value;
92 |
93 | /**
94 | * Returns whether the receiver could be a valid selector token.
95 | * However context will determine if it is definitely a selector
96 | *
97 | * @return `YES` if it is possible that the receiver is a selector
98 | */
99 | - (BOOL)isPossiblySelector;
100 |
101 | /**
102 | * Returns whether the receiver could be a valid variable token.
103 | * However context will determine if it is definitely a variable
104 | *
105 | * @return `YES` if it is possible that the receiver is a variable
106 | */
107 | - (BOOL)isPossiblyVar;
108 |
109 | /**
110 | * Returns whether the receiver could be a valid expression token.
111 | * However context will determine if it is definitely part of an expression
112 | *
113 | * @return `YES` if it is possible that the receiver is a expression token
114 | */
115 | - (BOOL)isPossiblyExpression;
116 |
117 |
118 | /**
119 | * Returns whether the receiver could be a valid selector delimiting token.
120 | * However context will determine if it is definitely a selector delimiter
121 | *
122 | * @return `YES` if it is possible that the receiver is a selector delimiter
123 | */
124 | - (BOOL)isPossiblySelectorDelimiter;
125 |
126 | @end
127 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASToken.m:
--------------------------------------------------------------------------------
1 | //
2 | // CASToken.m
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 16/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "CASToken.h"
10 |
11 | @interface CASToken ()
12 |
13 | @property (nonatomic, assign, readwrite) CASTokenType type;
14 |
15 | @end
16 |
17 | @implementation CASToken
18 |
19 | #pragma mark - debug
20 |
21 | + (NSString *)stringForType:(CASTokenType)type {
22 | switch (type) {
23 | case CASTokenTypeUnknown:
24 | return @"unknown";
25 | case CASTokenTypeIndent:
26 | return @"indent";
27 | case CASTokenTypeOutdent:
28 | return @"outdent";
29 | case CASTokenTypeEOS:
30 | return @"EOS";
31 | case CASTokenTypeSemiColon:
32 | return @"semicolon";
33 | case CASTokenTypeCarat:
34 | return @"carat";
35 | case CASTokenTypeNewline:
36 | return @"newline";
37 | case CASTokenTypeLeftSquareBrace:
38 | return @"left square brace";
39 | case CASTokenTypeRightSquareBrace:
40 | return @"right square brace";
41 | case CASTokenTypeLeftCurlyBrace:
42 | return @"left curly brace";
43 | case CASTokenTypeRightCurlyBrace:
44 | return @"right curly brace";
45 | case CASTokenTypeLeftRoundBrace:
46 | return @"left round brace";
47 | case CASTokenTypeRightRoundBrace:
48 | return @"right round brace";
49 | case CASTokenTypeColor:
50 | return @"color";
51 | case CASTokenTypeString:
52 | return @"string";
53 | case CASTokenTypeUnit:
54 | return @"unit";
55 | case CASTokenTypeBoolean:
56 | return @"boolean";
57 | case CASTokenTypeRef:
58 | return @"ref";
59 | case CASTokenTypeOperator:
60 | return @"operator";
61 | case CASTokenTypeSpace:
62 | return @"space";
63 | case CASTokenTypeSelector:
64 | return @"selector";
65 | }
66 | }
67 |
68 | - (NSString *)description {
69 | if (self.value) {
70 | return [NSString stringWithFormat:@"%@ %@", [self.class stringForType:self.type], self.value];
71 | }
72 | return [self.class stringForType:self.type];
73 | }
74 |
75 | #pragma mark - Factory
76 |
77 | + (instancetype)tokenOfType:(CASTokenType)type {
78 | CASToken *token = self.class.new;
79 | token.type = type;
80 | return token;
81 | }
82 |
83 | + (instancetype)tokenOfType:(CASTokenType)type value:(id)value {
84 | CASToken *token = self.class.new;
85 | token.type = type;
86 | token.value = value;
87 | return token;
88 | }
89 |
90 | #pragma mark - Helpers
91 |
92 | - (NSString *)stringValue {
93 | if ([self.value isKindOfClass:NSString.class]) {
94 | return self.value;
95 | }
96 | return [self.value stringValue];
97 | }
98 |
99 | - (BOOL)isWhitespace {
100 | return self.type == CASTokenTypeIndent
101 | || self.type == CASTokenTypeOutdent
102 | || self.type == CASTokenTypeNewline
103 | || self.type == CASTokenTypeSpace;
104 | }
105 |
106 | - (BOOL)valueIsEqualTo:(id)value {
107 | return [self.value isEqual:value];
108 | }
109 |
110 | - (BOOL)isPossiblySelector {
111 | return self.type == CASTokenTypeRef
112 | || self.type == CASTokenTypeCarat
113 | || self.type == CASTokenTypeLeftSquareBrace
114 | || self.type == CASTokenTypeRightSquareBrace
115 | || self.type == CASTokenTypeSelector
116 | || self.type == CASTokenTypeNewline
117 | || self.type == CASTokenTypeSpace
118 | || self.type == CASTokenTypeOperator
119 | || [self valueIsEqualTo:@":"]
120 | || [self valueIsEqualTo:@","];
121 | }
122 |
123 | - (BOOL)isPossiblyVar {
124 | return self.type == CASTokenTypeIndent
125 | || self.type == CASTokenTypeSpace
126 | || self.type == CASTokenTypeRef
127 | || [self valueIsEqualTo:@"="];
128 | }
129 |
130 | - (BOOL)isPossiblyExpression {
131 | return self.type == CASTokenTypeUnit
132 | || self.type == CASTokenTypeSpace
133 | || self.type == CASTokenTypeLeftRoundBrace
134 | || self.type == CASTokenTypeRightRoundBrace
135 | || (self.type == CASTokenTypeOperator);
136 | }
137 |
138 | - (BOOL)isPossiblySelectorDelimiter{
139 | return self.type == CASTokenTypeLeftCurlyBrace || self.type == CASTokenTypeIndent;
140 | }
141 |
142 | @end
143 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASUnitToken.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASUnitToken.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 23/11/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "CASToken.h"
10 |
11 | @interface CASUnitToken : CASToken
12 |
13 | @property (nonatomic, copy) NSString *suffix;
14 | @property (nonatomic, copy) NSString *rawValue;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASUnitToken.m:
--------------------------------------------------------------------------------
1 | //
2 | // CASUnitToken.m
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 23/11/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "CASUnitToken.h"
10 |
11 | @implementation CASUnitToken
12 |
13 | #pragma mark - Helpers
14 |
15 | - (NSString *)stringValue {
16 | return self.rawValue;
17 | }
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASUtilities.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASUtilities.h
3 | //
4 | //
5 | // Created by Jonas Budelmann on 22/10/13.
6 | //
7 | //
8 |
9 | #import
10 |
11 | // Logging
12 | #ifdef DEBUG
13 | # define CASLog(fmt, ...) NSLog((@"[Classy] %s " fmt), __PRETTY_FUNCTION__, ##__VA_ARGS__);
14 | #else
15 | # define CASLog(...)
16 | #endif
17 |
18 | // Keypath compile check
19 | #define cas_propertykey(classname, property) \
20 | (((void)(NO && ((void)(( classname *)(nil)).property, NO)), # property))
21 |
22 | // Path resolution
23 | #define CASAbsoluteFilePath(relativePath) \
24 | _CASAbsoluteFilePath(__FILE__, relativePath)
25 | NSString *_CASAbsoluteFilePath(const char *currentFilePath, NSString *relativeFilePath);
26 |
27 | // Device versions
28 | NSUInteger CASKeyDeviceSystemMajorVersion();
29 |
30 | BOOL CASDeviceSystemVersionIsEqualTo(NSString *systemVersion);
31 |
32 | BOOL CASDeviceSystemVersionIsGreaterThan(NSString *systemVersion);
33 |
34 | BOOL CASDeviceSystemVersionIsGreaterThanOrEqualTo(NSString *systemVersion);
35 |
36 | BOOL CASDeviceSystemVersionIsLessThan(NSString *systemVersion);
37 |
38 | BOOL CASDeviceSystemVersionIsLessThanOrEqualTo(NSString *systemVersion);
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Parser/CASUtilities.m:
--------------------------------------------------------------------------------
1 | //
2 | // CASUtilities.m
3 | //
4 | //
5 | // Created by Jonas Budelmann on 22/10/13.
6 | //
7 | //
8 |
9 | #import "CASUtilities.h"
10 |
11 | NSString *_CASAbsoluteFilePath(const char *currentFilePath, NSString *relativeFilePath) {
12 | NSString *currentDirectory = [[NSString stringWithUTF8String:currentFilePath] stringByDeletingLastPathComponent];
13 | return [currentDirectory stringByAppendingPathComponent:relativeFilePath];
14 | }
15 |
16 | NSUInteger CASKeyDeviceSystemMajorVersion() {
17 | static NSUInteger _deviceSystemMajorVersion = -1;
18 | static dispatch_once_t onceToken;
19 | dispatch_once(&onceToken, ^{
20 | _deviceSystemMajorVersion = [[[UIDevice.currentDevice.systemVersion componentsSeparatedByString:@"."] objectAtIndex:0] intValue];
21 | });
22 | return _deviceSystemMajorVersion;
23 | }
24 |
25 | BOOL CASDeviceSystemVersionIsEqualTo(NSString *systemVersion) {
26 | return [UIDevice.currentDevice.systemVersion compare:systemVersion options:NSNumericSearch] == NSOrderedSame;
27 | }
28 |
29 | BOOL CASDeviceSystemVersionIsGreaterThan(NSString *systemVersion) {
30 | return [UIDevice.currentDevice.systemVersion compare:systemVersion options:NSNumericSearch] == NSOrderedDescending;
31 | }
32 |
33 | BOOL CASDeviceSystemVersionIsGreaterThanOrEqualTo(NSString *systemVersion) {
34 | return [UIDevice.currentDevice.systemVersion compare:systemVersion options:NSNumericSearch] != NSOrderedAscending;
35 | }
36 |
37 | BOOL CASDeviceSystemVersionIsLessThan(NSString *systemVersion) {
38 | return [UIDevice.currentDevice.systemVersion compare:systemVersion options:NSNumericSearch] == NSOrderedAscending;
39 | }
40 |
41 | BOOL CASDeviceSystemVersionIsLessThanOrEqualTo(NSString *systemVersion) {
42 | return [UIDevice.currentDevice.systemVersion compare:systemVersion options:NSNumericSearch] != NSOrderedDescending;
43 | }
44 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Reflection/CASArgumentDescriptor.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASArgumentDescriptor.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 12/10/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | /**
12 | * Supported primitive argument types
13 | */
14 | typedef NS_ENUM(NSUInteger, CASPrimitiveType) {
15 | CASPrimitiveTypeNone,
16 | CASPrimitiveTypeUnsupported,
17 | CASPrimitiveTypeBOOL,
18 | CASPrimitiveTypeDouble,
19 | CASPrimitiveTypeInteger,
20 | CASPrimitiveTypeCGPoint,
21 | CASPrimitiveTypeCGSize,
22 | CASPrimitiveTypeCGRect,
23 | CASPrimitiveTypeUIEdgeInsets,
24 | CASPrimitiveTypeUIOffset,
25 | CASPrimitiveTypeCGColorRef,
26 | };
27 |
28 |
29 |
30 | @interface CASArgumentDescriptor : NSObject
31 |
32 | @property (nonatomic, strong, readonly) NSString *name;
33 | @property (nonatomic, strong, readonly) Class argumentClass;
34 | @property (nonatomic, assign, readonly) CASPrimitiveType primitiveType;
35 | @property (nonatomic, strong, readonly) NSDictionary *valuesByName;
36 |
37 | + (instancetype)argWithObjCType:(const char *)type;
38 | + (instancetype)argWithType:(NSString *)type;
39 | + (instancetype)argWithClass:(Class)aClass;
40 | + (instancetype)argWithValuesByName:(NSDictionary *)valuesByName;
41 | + (instancetype)argWithName:(NSString *)name valuesByName:(NSDictionary *)valuesByName;
42 |
43 | @end
44 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Reflection/CASArgumentDescriptor.m:
--------------------------------------------------------------------------------
1 | //
2 | // CASArgumentDescriptor.m
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 12/10/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "CASArgumentDescriptor.h"
10 | #import
11 |
12 | @interface CASArgumentDescriptor ()
13 |
14 | @property (nonatomic, strong, readwrite) NSString *name;
15 | @property (nonatomic, strong, readwrite) Class argumentClass;
16 | @property (nonatomic, strong, readwrite) NSString *type;
17 | @property (nonatomic, strong, readwrite) NSDictionary *valuesByName;
18 |
19 | @end
20 |
21 | @implementation CASArgumentDescriptor
22 |
23 | + (instancetype)argWithObjCType:(const char *)type {
24 | CASArgumentDescriptor *descriptor = CASArgumentDescriptor.new;
25 | descriptor.type = [NSString stringWithUTF8String:type];
26 | return descriptor;
27 | }
28 |
29 | + (instancetype)argWithType:(NSString *)type {
30 | CASArgumentDescriptor *descriptor = CASArgumentDescriptor.new;
31 | descriptor.type = type;
32 | return descriptor;
33 | }
34 |
35 | + (instancetype)argWithClass:(Class)aClass {
36 | CASArgumentDescriptor *descriptor = CASArgumentDescriptor.new;
37 | descriptor.argumentClass = aClass;
38 | return descriptor;
39 | }
40 |
41 | + (instancetype)argWithValuesByName:(NSDictionary *)valuesByName {
42 | CASArgumentDescriptor *descriptor = CASArgumentDescriptor.new;
43 | descriptor.type = [NSString stringWithUTF8String:@encode(NSInteger)];
44 | descriptor.valuesByName = valuesByName;
45 | return descriptor;
46 | }
47 |
48 | + (instancetype)argWithName:(NSString *)name valuesByName:(NSDictionary *)valuesByName {
49 | CASArgumentDescriptor *descriptor = [self argWithValuesByName:valuesByName];
50 | descriptor.name = name;
51 | return descriptor;
52 | }
53 |
54 | - (CASPrimitiveType)primitiveType {
55 | if (!self.type.length) return CASPrimitiveTypeNone;
56 |
57 | // if char type assume it's a BOOL, since chars aren't very useful for styling
58 | BOOL isBOOL = self.type.length == 1 && ([self.type isEqualToString:@"c"] || [self.type isEqualToString:@"B"]);
59 | if (isBOOL) return CASPrimitiveTypeBOOL;
60 |
61 | // check for integer
62 | BOOL isInteger = self.type.length == 1 && (
63 | [self.type isEqualToString:@"i"] // An int
64 | || [self.type isEqualToString:@"s"] // A short
65 | || [self.type isEqualToString:@"l"] // A longl is treated as a 32-bit quantity on 64-bit programs.
66 | || [self.type isEqualToString:@"q"] // A long long
67 | || [self.type isEqualToString:@"C"] // An unsigned char
68 | || [self.type isEqualToString:@"I"] // An unsigned int
69 | || [self.type isEqualToString:@"S"] // An unsigned short
70 | || [self.type isEqualToString:@"L"] // An unsigned long
71 | || [self.type isEqualToString:@"Q"]); // An unsigned long long
72 | if (isInteger) return CASPrimitiveTypeInteger;
73 |
74 | // check for double
75 | BOOL isDouble = self.type.length == 1 && (
76 | [self.type isEqualToString:@"f"] // A float
77 | || [self.type isEqualToString:@"d"]); // A double
78 | if (isDouble) return CASPrimitiveTypeDouble;
79 |
80 | // check for structs
81 | if ([self.type hasPrefix:@"{CGSize"]) {
82 | return CASPrimitiveTypeCGSize;
83 | } else if ([self.type hasPrefix:@"{CGPoint"]) {
84 | return CASPrimitiveTypeCGPoint;
85 | } else if ([self.type hasPrefix:@"{CGRect"]) {
86 | return CASPrimitiveTypeCGRect;
87 | } else if ([self.type hasPrefix:@"{UIEdgeInsets"]) {
88 | return CASPrimitiveTypeUIEdgeInsets;
89 | } else if ([self.type hasPrefix:@"{UIOffset"]) {
90 | return CASPrimitiveTypeUIOffset;
91 | } else if ([self.type hasPrefix:@"^{CGColor"]) {
92 | return CASPrimitiveTypeCGColorRef;
93 | }
94 |
95 | return CASPrimitiveTypeUnsupported;
96 | }
97 |
98 | @end
99 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Reflection/CASObjectClassDescriptor.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASObjectClassDescriptor.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 30/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "CASPropertyDescriptor.h"
11 |
12 | @interface CASObjectClassDescriptor : NSObject
13 |
14 | /**
15 | * object class which receiver relates to
16 | */
17 | @property (nonatomic, strong, readonly) Class objectClass;
18 |
19 | /**
20 | * view superclass descriptor
21 | */
22 | @property (nonatomic, strong) CASObjectClassDescriptor *parent;
23 |
24 | /**
25 | * alternative names for view property keys
26 | */
27 | @property (nonatomic, strong) NSDictionary *propertyKeyAliases;
28 |
29 | - (id)initWithClass:(Class)aClass;
30 |
31 | - (NSInvocation *)invocationForPropertyDescriptor:(CASPropertyDescriptor *)propertyDescriptor;
32 |
33 | - (CASPropertyDescriptor *)propertyDescriptorForKey:(NSString *)key;
34 |
35 | - (void)setArgumentDescriptors:(NSArray *)argumentDescriptors forPropertyKey:(NSString *)key;
36 | - (void)setArgumentDescriptors:(NSArray *)argumentDescriptors setter:(SEL)setter forPropertyKey:(NSString *)key;
37 |
38 | @end
39 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Reflection/CASObjectClassDescriptor.m:
--------------------------------------------------------------------------------
1 | //
2 | // CASObjectClassDescriptor.m
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 30/09/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "CASObjectClassDescriptor.h"
10 | #import "CASRuntimeExtensions.h"
11 | #import "NSString+CASAdditions.h"
12 | #import "CASUtilities.h"
13 |
14 | @interface CASObjectClassDescriptor ()
15 |
16 | @property (nonatomic, strong, readwrite) Class objectClass;
17 | @property (nonatomic, strong) NSMutableDictionary *propertyDescriptorCache;
18 |
19 | @end
20 |
21 | @implementation CASObjectClassDescriptor
22 |
23 | - (id)initWithClass:(Class)aClass {
24 | self = [super init];
25 | if (!self) return nil;
26 |
27 | self.objectClass = aClass;
28 | self.propertyDescriptorCache = NSMutableDictionary.new;
29 |
30 | return self;
31 | }
32 |
33 | #pragma mark - property descriptor support
34 |
35 | - (void)setArgumentDescriptors:(NSArray *)argumentDescriptors forPropertyKey:(NSString *)key {
36 | CASPropertyDescriptor *propertyDescriptor = [[CASPropertyDescriptor alloc] initWithKey:key argumentDescriptors:argumentDescriptors];
37 | self.propertyDescriptorCache[propertyDescriptor.key] = propertyDescriptor;
38 | }
39 |
40 | - (void)setArgumentDescriptors:(NSArray *)argumentDescriptors setter:(SEL)setter forPropertyKey:(NSString *)key {
41 | CASPropertyDescriptor *propertyDescriptor = [[CASPropertyDescriptor alloc] initWithKey:key argumentDescriptors:argumentDescriptors setter:setter];
42 | self.propertyDescriptorCache[propertyDescriptor.key] = propertyDescriptor;
43 | }
44 |
45 | - (NSInvocation *)invocationForPropertyDescriptor:(CASPropertyDescriptor *)propertyDescriptor {
46 | if (!propertyDescriptor) return nil;
47 |
48 | SEL selector = propertyDescriptor.setter;
49 | NSMethodSignature *methodSignature = [self.objectClass instanceMethodSignatureForSelector:selector];
50 | if (!methodSignature) {
51 | CASLog(@"Selector '%@' not found. Class '%@'", NSStringFromSelector(selector), self.objectClass);
52 | return nil;
53 | }
54 | NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSignature];
55 | [invocation setSelector:selector];
56 | return invocation;
57 | }
58 |
59 | - (CASPropertyDescriptor *)propertyDescriptorForKey:(NSString *)key {
60 | // if property descriptor exists on this class descriptor. return it.
61 | NSString *propertyKey = self.propertyKeyAliases[key] ?: key;
62 | CASPropertyDescriptor *propertyDescriptor = self.propertyDescriptorCache[propertyKey];
63 | if (propertyDescriptor) return propertyDescriptor;
64 |
65 | // if property descriptor exists on parent class descriptor. return it.
66 | propertyDescriptor = [self.parent propertyDescriptorForKey:key];
67 | if (propertyDescriptor) return propertyDescriptor;
68 |
69 | // create property descriptor on this descriptor if has propertyKeyAlias
70 | // or if responds to property and superclass doesn't
71 | SEL propertySelector = NSSelectorFromString(propertyKey);
72 |
73 | if (self.propertyKeyAliases[propertyKey]
74 | || ([self.objectClass instancesRespondToSelector:propertySelector] && ![self.objectClass.superclass instancesRespondToSelector:propertySelector])) {
75 |
76 | objc_property_t property = class_getProperty(self.objectClass, [propertyKey UTF8String]);
77 | if (property != NULL) {
78 | cas_propertyAttributes *propertyAttributes = cas_copyPropertyAttributes(class_getProperty(self.objectClass, [propertyKey UTF8String]));
79 |
80 | NSArray *argumentDescriptors;
81 | if (propertyAttributes->objectClass) {
82 | argumentDescriptors = @[
83 | [CASArgumentDescriptor argWithClass:propertyAttributes->objectClass]
84 | ];
85 | } else {
86 | NSString *type = [NSString stringWithCString:propertyAttributes->type encoding:NSASCIIStringEncoding];
87 | argumentDescriptors = @[
88 | [CASArgumentDescriptor argWithType:type]
89 | ];
90 | }
91 |
92 | propertyDescriptor = [[CASPropertyDescriptor alloc] initWithKey:propertyKey argumentDescriptors:argumentDescriptors setter:propertyAttributes->setter];
93 | self.propertyDescriptorCache[propertyKey] = propertyDescriptor;
94 |
95 | free(propertyAttributes);
96 | return propertyDescriptor;
97 | } else {
98 | // TODO error
99 | CASLog(@"Property '%@' not found. Class '%@'", propertyKey, self.objectClass);
100 | }
101 | }
102 |
103 | return nil;
104 | }
105 |
106 | @end
107 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Reflection/CASPropertyDescriptor.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASPropertyDescriptor.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 12/10/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "CASArgumentDescriptor.h"
11 |
12 | @interface CASPropertyDescriptor : NSObject
13 |
14 | @property (nonatomic, strong, readonly) NSString *key;
15 | @property (nonatomic, strong, readonly) NSArray *argumentDescriptors;
16 | @property (nonatomic, assign, readonly) SEL setter;
17 |
18 | - (id)initWithKey:(NSString *)key argumentDescriptors:(NSArray *)argumentDescriptors;
19 | - (id)initWithKey:(NSString *)key argumentDescriptors:(NSArray *)argumentDescriptors setter:(SEL)setter;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Reflection/CASPropertyDescriptor.m:
--------------------------------------------------------------------------------
1 | //
2 | // CASPropertyDescriptor.m
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 12/10/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "CASPropertyDescriptor.h"
10 | #import "NSString+CASAdditions.h"
11 |
12 | @interface CASPropertyDescriptor ()
13 |
14 | @property (nonatomic, strong, readwrite) NSString *key;
15 | @property (nonatomic, strong, readwrite) NSArray *argumentDescriptors;
16 | @property (nonatomic, assign, readwrite) SEL setter;
17 |
18 | @end
19 |
20 | @implementation CASPropertyDescriptor
21 |
22 | - (id)initWithKey:(NSString *)key argumentDescriptors:(NSArray *)argumentDescriptors {
23 | self = [super init];
24 | if (!self) return nil;
25 |
26 | self.key = key;
27 | self.argumentDescriptors = argumentDescriptors;
28 | NSString *setterString = [NSString stringWithFormat:@"set%@:", [key cas_stringByCapitalizingFirstLetter]];
29 | self.setter = NSSelectorFromString(setterString);
30 |
31 | return self;
32 | }
33 |
34 | - (id)initWithKey:(NSString *)key argumentDescriptors:(NSArray *)argumentDescriptors setter:(SEL)setter {
35 | self = [super init];
36 | if (!self) return nil;
37 |
38 | self.key = key;
39 | self.argumentDescriptors = argumentDescriptors;
40 | self.setter = setter;
41 |
42 | return self;
43 | }
44 |
45 | @end
46 |
--------------------------------------------------------------------------------
/Pods/Classy/Classy/Reflection/CASRuntimeExtensions.h:
--------------------------------------------------------------------------------
1 | //
2 | // CASRuntimeExtensions.h
3 | // Classy
4 | //
5 | // Created by Jonas Budelmann on 14/10/13.
6 | // Renamespaced version of EXTRuntimeExtensions
7 | //
8 |
9 | //
10 | // EXTRuntimeExtensions.h
11 | // extobjc
12 | //
13 | // Created by Justin Spahr-Summers on 2011-03-05.
14 | // Copyright (C) 2012 Justin Spahr-Summers.
15 | // Released under the MIT license.
16 | //
17 |
18 | #import
19 |
20 | /**
21 | * Describes the memory management policy of a property.
22 | */
23 | typedef enum {
24 | /**
25 | * The value is assigned.
26 | */
27 | cas_propertyMemoryManagementPolicyAssign = 0,
28 |
29 | /**
30 | * The value is retained.
31 | */
32 | cas_propertyMemoryManagementPolicyRetain,
33 |
34 | /**
35 | * The value is copied.
36 | */
37 | cas_propertyMemoryManagementPolicyCopy
38 | } cas_propertyMemoryManagementPolicy;
39 |
40 | /**
41 | * Describes the attributes and type information of a property.
42 | */
43 | typedef struct {
44 | /**
45 | * Whether this property was declared with the \c readonly attribute.
46 | */
47 | BOOL readonly;
48 |
49 | /**
50 | * Whether this property was declared with the \c nonatomic attribute.
51 | */
52 | BOOL nonatomic;
53 |
54 | /**
55 | * Whether the property is a weak reference.
56 | */
57 | BOOL weak;
58 |
59 | /**
60 | * Whether the property is eligible for garbage collection.
61 | */
62 | BOOL canBeCollected;
63 |
64 | /**
65 | * Whether this property is defined with \c \@dynamic.
66 | */
67 | BOOL dynamic;
68 |
69 | /**
70 | * The memory management policy for this property. This will always be
71 | * #cas_propertyMemoryManagementPolicyAssign if #readonly is \c YES.
72 | */
73 | cas_propertyMemoryManagementPolicy memoryManagementPolicy;
74 |
75 | /**
76 | * The selector for the getter of this property. This will reflect any
77 | * custom \c getter= attribute provided in the property declaration, or the
78 | * inferred getter name otherwise.
79 | */
80 | SEL getter;
81 |
82 | /**
83 | * The selector for the setter of this property. This will reflect any
84 | * custom \c setter= attribute provided in the property declaration, or the
85 | * inferred setter name otherwise.
86 | *
87 | * @note If #readonly is \c YES, this value will represent what the setter
88 | * \e would be, if the property were writable.
89 | */
90 | SEL setter;
91 |
92 | /**
93 | * The backing instance variable for this property, or \c NULL if \c
94 | * \c @synthesize was not used, and therefore no instance variable exists. This
95 | * would also be the case if the property is implemented dynamically.
96 | */
97 | const char *ivar;
98 |
99 | /**
100 | * If this property is defined as being an instance of a specific class,
101 | * this will be the class object representing it.
102 | *
103 | * This will be \c nil if the property was defined as type \c id, if the
104 | * property is not of an object type, or if the class could not be found at
105 | * runtime.
106 | */
107 | Class objectClass;
108 |
109 | /**
110 | * The type encoding for the value of this property. This is the type as it
111 | * would be returned by the \c \@encode() directive.
112 | */
113 | char type[];
114 | } cas_propertyAttributes;
115 |
116 | /**
117 | * Returns a pointer to a structure containing information about \a property.
118 | * You must \c free() the returned pointer. Returns \c NULL if there is an error
119 | * obtaining information from \a property.
120 | */
121 | cas_propertyAttributes *cas_copyPropertyAttributes (objc_property_t property);
122 |
--------------------------------------------------------------------------------
/Pods/Classy/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2013 Jonas Budelmann
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/Pods/Classy/README.md:
--------------------------------------------------------------------------------
1 | #Classy [](https://travis-ci.org/cloudkite/Classy) [](https://coveralls.io/r/cloudkite/Classy)
2 |
3 | Not CSS. Instead of trying to force UIKit to fit CSS syntax, properties, conventions and constructs. Classy is a stylesheet system built from the ground up to work in harmony with UIKit. It borrows the best ideas from CSS and introduces new syntax, conventions and constructs where appropriate.
4 |
5 | Plays nice with Interface Builder and views created in code.
6 |
7 | For detailed usage docs visit [classy.as](http://classy.as/)
8 |
9 | ##Supports UIAppearance
10 | Classy supports all [UIAppearance properties and methods](https://github.com/cloudkite/Classy/blob/master/Tests/UIAppearance-setters.md) and much more. But instead of being limited to `+appearanceWhenContainedIn:` and `+appearance`,
11 | Classy gives you much greater control over which views are styled and with what values.
12 |
13 | ##Example Stylesheets
14 |
15 | Classy features a very flexible, nestable syntax.
16 | Classy makes `{` `}` `:` `;` all optional so you can choose a style that suits you. It also saves you from worrying about small syntax mistakes like accidentally forgetting to end a line with a `;`
17 |
18 | You can use `{` `}` `:` `;` to delimit your stylesheets
19 |
20 | ```Scala
21 | @import "other_stylesheet.cas";
22 |
23 | $mainColor = #e1e1e1;
24 |
25 | // Supports your custom UIView subclasses
26 | MYCustomView {
27 | background-color: $mainColor;
28 | title-insets: 5, 10, 5, 10;
29 | > UIProgressView.tinted {
30 | progress-tint-color: rgb(200, 155, 110, 0.6);
31 | track-tint-color: yellow;
32 | }
33 | }
34 |
35 | /*
36 | * Supports Single or Multi-line comments
37 | */
38 | ^UIButton.warning, UIView.warning ^UIButton {
39 | title-color[state:highlighted]: #e3e3e3;
40 | }
41 | ```
42 |
43 | **OR** you can use whitespace to delimit your sytlesheets
44 |
45 | ```Scala
46 | @import "other_stylesheet.cas"
47 |
48 | $mainColor = #e1e1e1
49 |
50 | // Supports your custom UIView subclasses
51 | MYCustomView
52 | background-color $mainColor
53 | title-insets 5, 10, 5, 10
54 | > UIProgressView.tinted
55 | progress-tint-color rgb(200, 155, 110, 0.6)
56 | track-tint-color yellow
57 |
58 | /*
59 | * Supports Single or Multi-line comments
60 | */
61 | ^UIButton.warning, UIView.warning ^UIButton
62 | title-color[state:highlighted] #e3e3e3
63 | ```
64 |
65 | ## Live Reload
66 | Live reload can dramatically speed up your development time, with live reload enabled you can instantenously see your stylesheet changes. Without having to rebuild and navigate back to the same spot within your app.
67 |
68 | For more details about these features and more visit [classy.as](http://classy.as/)
69 |
70 | ## Inspiration
71 | - Syntax inspired by [stylus](http://learnboost.github.io/stylus/)
72 | - Property reflection [Mantle](https://github.com/github/mantle)
73 |
74 |
--------------------------------------------------------------------------------
/Pods/ClassyLiveLayout/ClassyLiveLayout/ClassyLiveLayout.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Ole Gammelgaard Poulsen on 16/12/13.
3 | // Copyright (c) 2013 SHAPE A/S. All rights reserved.
4 | //
5 |
6 | #import "UIView+ClassyLayoutProperties.h"
7 | #import "SHPAbstractView.h"
8 | #import "SHPAbstractTableViewCell.h"
9 | #import "SHPAbstractCollectionViewCell.h"
--------------------------------------------------------------------------------
/Pods/ClassyLiveLayout/ClassyLiveLayout/SHPAbstractCollectionViewCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Ole Gammelgaard Poulsen on 13/02/14.
3 | // Copyright (c) 2014 SHAPE A/S. All rights reserved.
4 | //
5 |
6 | #import
7 |
8 |
9 | @interface SHPAbstractCollectionViewCell : UICollectionViewCell
10 |
11 | // You must override these methods in subclasses
12 |
13 | // Override this method and add all subviews to the contentView in it
14 | - (void)addSubviews;
15 |
16 | // Override this method and use the mas_updateConstraints... methods to add constraints
17 | // It's important to use the 'update' methods as this may be called multiple times.
18 | - (void)defineLayout;
19 |
20 |
21 | @end
--------------------------------------------------------------------------------
/Pods/ClassyLiveLayout/ClassyLiveLayout/SHPAbstractCollectionViewCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Ole Gammelgaard Poulsen on 13/02/14.
3 | // Copyright (c) 2014 SHAPE A/S. All rights reserved.
4 | //
5 |
6 | #import "SHPAbstractCollectionViewCell.h"
7 | #import "UIView+ClassyLayoutProperties.h"
8 |
9 | @implementation SHPAbstractCollectionViewCell
10 |
11 | - (id)initWithFrame:(CGRect)frame {
12 | if (self = [super initWithFrame:frame]) {
13 | [self addSubviews];
14 | [UIView recursivelyUpdateStylingImmediately:self];
15 | [self defineLayout];
16 | }
17 | return self;
18 | }
19 |
20 | - (void)updateConstraints {
21 | [self defineLayout];
22 | [super updateConstraints];
23 | }
24 |
25 | - (void)addSubviews {
26 | NSAssert(NO, @"Must override");
27 | }
28 |
29 | - (void)defineLayout {
30 | NSAssert(NO, @"Must override");
31 | }
32 |
33 | @end
--------------------------------------------------------------------------------
/Pods/ClassyLiveLayout/ClassyLiveLayout/SHPAbstractScrollView.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Ole Gammelgaard Poulsen on 24/02/14.
3 | // Copyright (c) 2014 SHAPE A/S. All rights reserved.
4 | //
5 |
6 | #import
7 | #import
8 |
9 |
10 | @interface SHPAbstractScrollView : UIScrollView
11 |
12 | // You must override these methods in subclasses
13 |
14 | /// Override this method and add all subviews in it
15 | - (void)addSubviews;
16 |
17 | /// Override this method and use the mas_updateConstraints... methods to add constraints
18 | /// It's important to use the 'update' methods as this may be called multiple times.
19 | - (void)defineLayout;
20 |
21 | @end
--------------------------------------------------------------------------------
/Pods/ClassyLiveLayout/ClassyLiveLayout/SHPAbstractScrollView.m:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Ole Gammelgaard Poulsen on 24/02/14.
3 | // Copyright (c) 2014 SHAPE A/S. All rights reserved.
4 | //
5 |
6 | #import "SHPAbstractScrollView.h"
7 | #import "UIView+ClassyLayoutProperties.h"
8 |
9 | @implementation SHPAbstractScrollView
10 |
11 | - (id)initWithFrame:(CGRect)frame {
12 | self = [super initWithFrame:frame];
13 | if (self) {
14 | [self addSubviews];
15 | [UIView recursivelyUpdateStylingImmediately:self];
16 | [self defineLayout];
17 | }
18 | return self;
19 | }
20 |
21 | - (id)init {
22 | return [self initWithFrame:CGRectZero];
23 | }
24 |
25 | - (void)updateConstraints {
26 | [self defineLayout];
27 | [super updateConstraints];
28 | }
29 |
30 | - (void)addSubviews {
31 | NSAssert(NO, @"Must override");
32 | }
33 |
34 | - (void)defineLayout {
35 | NSAssert(NO, @"Must override");
36 | }
37 |
38 | @end
--------------------------------------------------------------------------------
/Pods/ClassyLiveLayout/ClassyLiveLayout/SHPAbstractTableViewCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Ole Gammelgaard Poulsen on 13/02/14.
3 | // Copyright (c) 2014 SHAPE A/S. All rights reserved.
4 | //
5 |
6 | #import
7 |
8 |
9 | @interface SHPAbstractTableViewCell : UITableViewCell
10 |
11 | // You must override these methods in subclasses
12 |
13 | // Override this method and add all subviews to the contentView in it
14 | - (void)addSubviews;
15 |
16 | // Override this method and use the mas_updateConstraints... methods to add constraints
17 | // It's important to use the 'update' methods as this may be called multiple times.
18 | - (void)defineLayout;
19 |
20 | @end
--------------------------------------------------------------------------------
/Pods/ClassyLiveLayout/ClassyLiveLayout/SHPAbstractTableViewCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Ole Gammelgaard Poulsen on 13/02/14.
3 | // Copyright (c) 2014 SHAPE A/S. All rights reserved.
4 | //
5 |
6 | #import "UIView+ClassyLayoutProperties.h"
7 | #import "Classy.h"
8 | #import "SHPAbstractTableViewCell.h"
9 |
10 | @implementation SHPAbstractTableViewCell
11 |
12 | - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
13 | self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
14 | if (self) {
15 | [self addSubviews];
16 | [UIView recursivelyUpdateStylingImmediately:self];
17 | [self defineLayout];
18 | }
19 | return self;
20 | }
21 |
22 | - (void)updateConstraints {
23 | [self defineLayout];
24 | [super updateConstraints];
25 | }
26 |
27 | - (void)addSubviews {
28 | NSAssert(NO, @"Must override");
29 | }
30 |
31 | - (void)defineLayout {
32 | NSAssert(NO, @"Must override");
33 | }
34 |
35 | @end
--------------------------------------------------------------------------------
/Pods/ClassyLiveLayout/ClassyLiveLayout/SHPAbstractView.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Ole Gammelgaard Poulsen on 13/02/14.
3 | // Copyright (c) 2014 SHAPE A/S. All rights reserved.
4 | //
5 |
6 | #import
7 | #import
8 |
9 | @interface SHPAbstractView : UIView
10 |
11 | // You must override these methods in subclasses
12 |
13 | /// Override this method and add all subviews in it
14 | - (void)addSubviews;
15 |
16 | /// Override this method and use the mas_updateConstraints... methods to add constraints
17 | /// It's important to use the 'update' methods as this may be called multiple times.
18 | - (void)defineLayout;
19 |
20 | @end
--------------------------------------------------------------------------------
/Pods/ClassyLiveLayout/ClassyLiveLayout/SHPAbstractView.m:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Ole Gammelgaard Poulsen on 13/02/14.
3 | // Copyright (c) 2014 SHAPE A/S. All rights reserved.
4 | //
5 |
6 | #import "SHPAbstractView.h"
7 | #import "UIView+ClassyLayoutProperties.h"
8 |
9 | @implementation SHPAbstractView
10 |
11 | - (id)initWithFrame:(CGRect)frame {
12 | self = [super initWithFrame:frame];
13 | if (self) {
14 | [self addSubviews];
15 | [UIView recursivelyUpdateStylingImmediately:self];
16 | [self defineLayout];
17 | }
18 | return self;
19 | }
20 |
21 | - (id)init {
22 | return [self initWithFrame:CGRectZero];
23 | }
24 |
25 | - (void)updateConstraints {
26 | [self defineLayout];
27 | [super updateConstraints];
28 | }
29 |
30 | - (void)addSubviews {
31 | NSAssert(NO, @"Must override");
32 | }
33 |
34 | - (void)defineLayout {
35 | NSAssert(NO, @"Must override");
36 | }
37 |
38 | @end
--------------------------------------------------------------------------------
/Pods/ClassyLiveLayout/ClassyLiveLayout/UIView+ClassyLayoutProperties.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Ole Gammelgaard Poulsen on 15/12/13.
3 | // Copyright (c) 2013 SHAPE A/S. All rights reserved.
4 | //
5 |
6 | #import
7 |
8 | @interface UIView (ClassyLayoutProperties)
9 |
10 | @property(nonatomic, assign) UIEdgeInsets cas_margin;
11 | @property(nonatomic, assign) CGSize cas_size;
12 |
13 | // shorthand properties for setting only a single constant value
14 | @property(nonatomic, assign) CGFloat cas_sizeWidth;
15 | @property(nonatomic, assign) CGFloat cas_sizeHeight;
16 |
17 | @property(nonatomic, assign) CGFloat cas_marginTop;
18 | @property(nonatomic, assign) CGFloat cas_marginLeft;
19 | @property(nonatomic, assign) CGFloat cas_marginBottom;
20 | @property(nonatomic, assign) CGFloat cas_marginRight;
21 |
22 | + (void)recursivelyUpdateStylingImmediately:(UIView *)view;
23 |
24 | + (CGSize)sizeFromStylesheet;
25 |
26 | // Masonry shortcuts to make it easy to bind values to what is defined in classy stylesheet
27 | - (NSArray *)mas_updateConstraintsWithTopMarginRelativeToSuperview;
28 | - (NSArray *)mas_updateConstraintsWithLeftMarginRelativeToSuperview;
29 | - (NSArray *)mas_updateConstraintsWithBottomMarginRelativeToSuperview;
30 | - (NSArray *)mas_updateConstraintsWithRightMarginRelativeToSuperview;
31 |
32 | // Slightly more verbose shortcuts to bind to another view or attribute than the superview
33 | - (NSArray *)mas_updateConstraintsWithTopMarginRelativeTo:(id)attribute;
34 | - (NSArray *)mas_updateConstraintsWithLeftMarginRelativeTo:(id)attribute;
35 | - (NSArray *)mas_updateConstraintsWithBottomMarginRelativeTo:(id)attribute;
36 | - (NSArray *)mas_updateConstraintsWithRightMarginRelativeTo:(id)attribute;
37 | - (NSArray *)mas_updateConstraintsHeightFromStylesheet;
38 | - (NSArray *)mas_updateConstraintsWidthFromStylesheet;
39 |
40 | // Just a few simple shortcuts to be able to center in one line of code
41 | - (NSArray *)mas_updateConstraintsCenterX;
42 | - (NSArray *)mas_updateConstraintsCenterY;
43 |
44 | @end
--------------------------------------------------------------------------------
/Pods/ClassyLiveLayout/LICENSE.md:
--------------------------------------------------------------------------------
1 | **Copyright (c) 2013, SHAPE A/S, http://www.shape.dk.**
2 | **All rights reserved.**
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a copy of
5 | this software and associated documentation files (the "Software"), to deal in
6 | the Software without restriction, including without limitation the rights to
7 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8 | the Software, and to permit persons to whom the Software is furnished to do so,
9 | subject to the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be included in all
12 | copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Pods/ClassyLiveLayout/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | Iterate blazingly fast when defining view layouts by putting your AutoLayout constants in a stylesheet file with live reloading. No need to recompile and restart the simulator when you change a constant.
4 |
5 | Suplementary blogpost: http://codeblog.shape.dk/blog/2013/12/16/live-editing-layout-constants-using-classy/
6 |
7 | This repository (and pod available through Cocoapods) contains the category `UIView+ClassyLayoutProperties` making it easy to define size and margin properties on views that can be set from a [Classy](http://classy.as) stylesheet and trigger `-updateConstraints` that can then easily be implemented using [Masonry](https://github.com/cloudkite/Masonry)'s `mas_updateConstraints:`. This pod also contains a number of convenient methods making it easy and declarative to define layouts with constants taken from the stylesheet.
8 |
9 |
10 | In your view's -updateConstraints method you define a layout like this:
11 | ``` obj-c
12 | // new shorthand notation to create constrains relative to the superview with constants from stylesheet
13 | [_blueBoxView mas_updateConstraintsWidthFromStylesheet];
14 | [_blueBoxView mas_updateConstraintsHeightFromStylesheet];
15 | [_blueBoxView mas_updateConstraintsWithTopMarginRelativeToSuperview];
16 | // or we can specify another view to set margins relative to:
17 | [_blueBoxView mas_updateConstraintsWithLeftMarginRelativeTo:self];
18 | ```
19 |
20 | In the stylesheet we set the constants implicitly referenced in the above layout code.
21 | ```
22 | UIView.blue-box {
23 | background-color: blue;
24 | size: 120 80;
25 | margin-top: 110;
26 | margin-left: 50;
27 | }
28 | ```
29 |
30 | If you have set up live reloading in [Classy](http://classy.as) the view will immediately update when you change the size and margin in the stylesheet. The best way to get started is to check out the demo project included in this repo.
31 |
32 | There is also an example of how to use this with UITableViewCells and an abstract UICollectionView class that can be used to easily get this behavior in collection views.
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASArgumentDescriptor.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Reflection/CASArgumentDescriptor.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASDeviceOSVersionItem.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASDeviceOSVersionItem.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASDeviceSelector.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASDeviceSelector.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASDeviceSelectorItem.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASDeviceSelectorItem.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASDeviceTypeItem.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASDeviceTypeItem.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASExpressionSolver.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASExpressionSolver.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASInvocation.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASInvocation.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASLexer.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASLexer.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASObjectClassDescriptor.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Reflection/CASObjectClassDescriptor.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASParser.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASParser.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASPropertyDescriptor.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Reflection/CASPropertyDescriptor.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASRuntimeExtensions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Reflection/CASRuntimeExtensions.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASStyleNode.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASStyleNode.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASStyleProperty.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASStyleProperty.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASStyleSelector.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASStyleSelector.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASStyleableItem.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/CASStyleableItem.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASStyler.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASStyler.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASTextAttributes.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASTextAttributes.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASToken.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASToken.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASUnitToken.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASUnitToken.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/CASUtilities.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASUtilities.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/Classy.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Classy.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/NSObject+CASSwizzle.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/NSObject+CASSwizzle.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/NSRegularExpression+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/NSRegularExpression+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/NSString+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/NSString+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/UIBarItem+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UIBarItem+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/UIColor+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UIColor+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/UINavigationBar+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UINavigationBar+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/UISlider+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UISlider+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/UITabBar+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UITabBar+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/UITextField+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UITextField+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/UIToolbar+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UIToolbar+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/UIView+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UIView+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Classy/UIViewController+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UIViewController+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/ClassyLiveLayout/ClassyLiveLayout.h:
--------------------------------------------------------------------------------
1 | ../../../ClassyLiveLayout/ClassyLiveLayout/ClassyLiveLayout.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/ClassyLiveLayout/SHPAbstractCollectionViewCell.h:
--------------------------------------------------------------------------------
1 | ../../../ClassyLiveLayout/ClassyLiveLayout/SHPAbstractCollectionViewCell.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/ClassyLiveLayout/SHPAbstractScrollView.h:
--------------------------------------------------------------------------------
1 | ../../../ClassyLiveLayout/ClassyLiveLayout/SHPAbstractScrollView.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/ClassyLiveLayout/SHPAbstractTableViewCell.h:
--------------------------------------------------------------------------------
1 | ../../../ClassyLiveLayout/ClassyLiveLayout/SHPAbstractTableViewCell.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/ClassyLiveLayout/SHPAbstractView.h:
--------------------------------------------------------------------------------
1 | ../../../ClassyLiveLayout/ClassyLiveLayout/SHPAbstractView.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/ClassyLiveLayout/UIView+ClassyLayoutProperties.h:
--------------------------------------------------------------------------------
1 | ../../../ClassyLiveLayout/ClassyLiveLayout/UIView+ClassyLayoutProperties.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Masonry/MASCompositeConstraint.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/MASCompositeConstraint.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Masonry/MASConstraint+Private.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/MASConstraint+Private.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Masonry/MASConstraint.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/MASConstraint.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Masonry/MASConstraintMaker.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/MASConstraintMaker.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Masonry/MASLayoutConstraint.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/MASLayoutConstraint.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Masonry/MASUtilities.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/MASUtilities.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Masonry/MASViewAttribute.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/MASViewAttribute.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Masonry/MASViewConstraint.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/MASViewConstraint.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Masonry/Masonry.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/Masonry.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Masonry/NSArray+MASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/NSArray+MASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Masonry/NSArray+MASShorthandAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/NSArray+MASShorthandAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Masonry/NSLayoutConstraint+MASDebugAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Masonry/View+MASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/View+MASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/Masonry/View+MASShorthandAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/View+MASShorthandAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASArgumentDescriptor.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Reflection/CASArgumentDescriptor.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASDeviceOSVersionItem.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASDeviceOSVersionItem.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASDeviceSelector.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASDeviceSelector.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASDeviceSelectorItem.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASDeviceSelectorItem.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASDeviceTypeItem.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASDeviceTypeItem.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASExpressionSolver.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASExpressionSolver.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASInvocation.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASInvocation.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASLexer.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASLexer.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASObjectClassDescriptor.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Reflection/CASObjectClassDescriptor.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASParser.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASParser.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASPropertyDescriptor.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Reflection/CASPropertyDescriptor.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASRuntimeExtensions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Reflection/CASRuntimeExtensions.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASStyleNode.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASStyleNode.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASStyleProperty.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASStyleProperty.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASStyleSelector.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASStyleSelector.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASStyleableItem.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/CASStyleableItem.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASStyler.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASStyler.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASTextAttributes.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASTextAttributes.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASToken.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASToken.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASUnitToken.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASUnitToken.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/CASUtilities.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Parser/CASUtilities.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/Classy.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Classy.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/NSObject+CASSwizzle.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/NSObject+CASSwizzle.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/NSRegularExpression+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/NSRegularExpression+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/NSString+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/NSString+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/UIBarItem+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UIBarItem+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/UIColor+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UIColor+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/UINavigationBar+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UINavigationBar+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/UISlider+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UISlider+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/UITabBar+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UITabBar+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/UITextField+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UITextField+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/UIToolbar+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UIToolbar+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/UIView+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UIView+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Classy/UIViewController+CASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Classy/Classy/Additions/UIViewController+CASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/ClassyLiveLayout/ClassyLiveLayout.h:
--------------------------------------------------------------------------------
1 | ../../../ClassyLiveLayout/ClassyLiveLayout/ClassyLiveLayout.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/ClassyLiveLayout/SHPAbstractCollectionViewCell.h:
--------------------------------------------------------------------------------
1 | ../../../ClassyLiveLayout/ClassyLiveLayout/SHPAbstractCollectionViewCell.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/ClassyLiveLayout/SHPAbstractScrollView.h:
--------------------------------------------------------------------------------
1 | ../../../ClassyLiveLayout/ClassyLiveLayout/SHPAbstractScrollView.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/ClassyLiveLayout/SHPAbstractTableViewCell.h:
--------------------------------------------------------------------------------
1 | ../../../ClassyLiveLayout/ClassyLiveLayout/SHPAbstractTableViewCell.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/ClassyLiveLayout/SHPAbstractView.h:
--------------------------------------------------------------------------------
1 | ../../../ClassyLiveLayout/ClassyLiveLayout/SHPAbstractView.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/ClassyLiveLayout/UIView+ClassyLayoutProperties.h:
--------------------------------------------------------------------------------
1 | ../../../ClassyLiveLayout/ClassyLiveLayout/UIView+ClassyLayoutProperties.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Masonry/MASCompositeConstraint.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/MASCompositeConstraint.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Masonry/MASConstraint+Private.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/MASConstraint+Private.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Masonry/MASConstraint.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/MASConstraint.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Masonry/MASConstraintMaker.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/MASConstraintMaker.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Masonry/MASLayoutConstraint.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/MASLayoutConstraint.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Masonry/MASUtilities.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/MASUtilities.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Masonry/MASViewAttribute.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/MASViewAttribute.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Masonry/MASViewConstraint.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/MASViewConstraint.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Masonry/Masonry.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/Masonry.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Masonry/NSArray+MASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/NSArray+MASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Masonry/NSArray+MASShorthandAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/NSArray+MASShorthandAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Masonry/NSLayoutConstraint+MASDebugAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Masonry/View+MASAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/View+MASAdditions.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/Masonry/View+MASShorthandAdditions.h:
--------------------------------------------------------------------------------
1 | ../../../Masonry/Masonry/View+MASShorthandAdditions.h
--------------------------------------------------------------------------------
/Pods/Manifest.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - Classy (0.2.4)
3 | - ClassyLiveLayout (0.6.0):
4 | - Classy
5 | - Masonry
6 | - Masonry (0.6.1)
7 |
8 | DEPENDENCIES:
9 | - Classy (~> 0.2.4)
10 | - ClassyLiveLayout (~> 0.6.0)
11 | - Masonry (~> 0.6.1)
12 |
13 | SPEC CHECKSUMS:
14 | Classy: 8c8f835d51e20d25e9cce0d864fba5bf1cef6070
15 | ClassyLiveLayout: 264876c3a64dcc732e174796bdeaa40a6b7fff3b
16 | Masonry: 2cb49fd14d203d2db5ca6bb017135b235dde9980
17 |
18 | COCOAPODS: 0.36.0.rc.1
19 |
--------------------------------------------------------------------------------
/Pods/Masonry/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
--------------------------------------------------------------------------------
/Pods/Masonry/Masonry/MASCompositeConstraint.h:
--------------------------------------------------------------------------------
1 | //
2 | // MASCompositeConstraint.h
3 | // Masonry
4 | //
5 | // Created by Jonas Budelmann on 21/07/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "MASConstraint.h"
10 | #import "MASUtilities.h"
11 |
12 | /**
13 | * A group of MASConstraint objects
14 | */
15 | @interface MASCompositeConstraint : MASConstraint
16 |
17 | /**
18 | * Creates a composite with a predefined array of children
19 | *
20 | * @param children child MASConstraints
21 | *
22 | * @return a composite constraint
23 | */
24 | - (id)initWithChildren:(NSArray *)children;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Pods/Masonry/Masonry/MASConstraint+Private.h:
--------------------------------------------------------------------------------
1 | //
2 | // MASConstraint+Private.h
3 | // Masonry
4 | //
5 | // Created by Nick Tymchenko on 29/04/14.
6 | // Copyright (c) 2014 cloudling. All rights reserved.
7 | //
8 |
9 | #import "MASConstraint.h"
10 |
11 | @protocol MASConstraintDelegate;
12 |
13 |
14 | @interface MASConstraint ()
15 |
16 | /**
17 | * Whether or not to check for an existing constraint instead of adding constraint
18 | */
19 | @property (nonatomic, assign) BOOL updateExisting;
20 |
21 | /**
22 | * Usually MASConstraintMaker but could be a parent MASConstraint
23 | */
24 | @property (nonatomic, weak) id delegate;
25 |
26 | /**
27 | * Based on a provided value type, is equal to calling:
28 | * NSNumber - setOffset:
29 | * NSValue with CGPoint - setPointOffset:
30 | * NSValue with CGSize - setSizeOffset:
31 | * NSValue with MASEdgeInsets - setInsets:
32 | */
33 | - (void)setLayoutConstantWithValue:(NSValue *)value;
34 |
35 | @end
36 |
37 |
38 | @interface MASConstraint (Abstract)
39 |
40 | /**
41 | * Sets the constraint relation to given NSLayoutRelation
42 | * returns a block which accepts one of the following:
43 | * MASViewAttribute, UIView, NSValue, NSArray
44 | * see readme for more details.
45 | */
46 | - (MASConstraint * (^)(id, NSLayoutRelation))equalToWithRelation;
47 |
48 | /**
49 | * Override to set a custom chaining behaviour
50 | */
51 | - (MASConstraint *)addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute;
52 |
53 | @end
54 |
55 |
56 | @protocol MASConstraintDelegate
57 |
58 | /**
59 | * Notifies the delegate when the constraint needs to be replaced with another constraint. For example
60 | * A MASViewConstraint may turn into a MASCompositeConstraint when an array is passed to one of the equality blocks
61 | */
62 | - (void)constraint:(MASConstraint *)constraint shouldBeReplacedWithConstraint:(MASConstraint *)replacementConstraint;
63 |
64 | - (MASConstraint *)constraint:(MASConstraint *)constraint addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute;
65 |
66 | @end
67 |
--------------------------------------------------------------------------------
/Pods/Masonry/Masonry/MASConstraintMaker.h:
--------------------------------------------------------------------------------
1 | //
2 | // MASConstraintBuilder.h
3 | // Masonry
4 | //
5 | // Created by Jonas Budelmann on 20/07/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "MASConstraint.h"
10 | #import "MASUtilities.h"
11 |
12 | typedef NS_OPTIONS(NSInteger, MASAttribute) {
13 | MASAttributeLeft = 1 << NSLayoutAttributeLeft,
14 | MASAttributeRight = 1 << NSLayoutAttributeRight,
15 | MASAttributeTop = 1 << NSLayoutAttributeTop,
16 | MASAttributeBottom = 1 << NSLayoutAttributeBottom,
17 | MASAttributeLeading = 1 << NSLayoutAttributeLeading,
18 | MASAttributeTrailing = 1 << NSLayoutAttributeTrailing,
19 | MASAttributeWidth = 1 << NSLayoutAttributeWidth,
20 | MASAttributeHeight = 1 << NSLayoutAttributeHeight,
21 | MASAttributeCenterX = 1 << NSLayoutAttributeCenterX,
22 | MASAttributeCenterY = 1 << NSLayoutAttributeCenterY,
23 | MASAttributeBaseline = 1 << NSLayoutAttributeBaseline,
24 | };
25 |
26 | /**
27 | * Provides factory methods for creating MASConstraints.
28 | * Constraints are collected until they are ready to be installed
29 | *
30 | */
31 | @interface MASConstraintMaker : NSObject
32 |
33 | /**
34 | * The following properties return a new MASViewConstraint
35 | * with the first item set to the makers associated view and the appropriate MASViewAttribute
36 | */
37 | @property (nonatomic, strong, readonly) MASConstraint *left;
38 | @property (nonatomic, strong, readonly) MASConstraint *top;
39 | @property (nonatomic, strong, readonly) MASConstraint *right;
40 | @property (nonatomic, strong, readonly) MASConstraint *bottom;
41 | @property (nonatomic, strong, readonly) MASConstraint *leading;
42 | @property (nonatomic, strong, readonly) MASConstraint *trailing;
43 | @property (nonatomic, strong, readonly) MASConstraint *width;
44 | @property (nonatomic, strong, readonly) MASConstraint *height;
45 | @property (nonatomic, strong, readonly) MASConstraint *centerX;
46 | @property (nonatomic, strong, readonly) MASConstraint *centerY;
47 | @property (nonatomic, strong, readonly) MASConstraint *baseline;
48 |
49 | /**
50 | * Returns a block which creates a new MASCompositeConstraint with the first item set
51 | * to the makers associated view and children corresponding to the set bits in the
52 | * MASAttribute parameter. Combine multiple attributes via binary-or.
53 | */
54 | @property (nonatomic, strong, readonly) MASConstraint *(^attributes)(MASAttribute attrs);
55 |
56 | /**
57 | * Creates a MASCompositeConstraint with type MASCompositeConstraintTypeEdges
58 | * which generates the appropriate MASViewConstraint children (top, left, bottom, right)
59 | * with the first item set to the makers associated view
60 | */
61 | @property (nonatomic, strong, readonly) MASConstraint *edges;
62 |
63 | /**
64 | * Creates a MASCompositeConstraint with type MASCompositeConstraintTypeSize
65 | * which generates the appropriate MASViewConstraint children (width, height)
66 | * with the first item set to the makers associated view
67 | */
68 | @property (nonatomic, strong, readonly) MASConstraint *size;
69 |
70 | /**
71 | * Creates a MASCompositeConstraint with type MASCompositeConstraintTypeCenter
72 | * which generates the appropriate MASViewConstraint children (centerX, centerY)
73 | * with the first item set to the makers associated view
74 | */
75 | @property (nonatomic, strong, readonly) MASConstraint *center;
76 |
77 | /**
78 | * Whether or not to check for an existing constraint instead of adding constraint
79 | */
80 | @property (nonatomic, assign) BOOL updateExisting;
81 |
82 | /**
83 | * Whether or not to remove existing constraints prior to installing
84 | */
85 | @property (nonatomic, assign) BOOL removeExisting;
86 |
87 | /**
88 | * initialises the maker with a default view
89 | *
90 | * @param view any MASConstrait are created with this view as the first item
91 | *
92 | * @return a new MASConstraintMaker
93 | */
94 | - (id)initWithView:(MAS_VIEW *)view;
95 |
96 | /**
97 | * Calls install method on any MASConstraints which have been created by this maker
98 | *
99 | * @return an array of all the installed MASConstraints
100 | */
101 | - (NSArray *)install;
102 |
103 | - (MASConstraint * (^)(dispatch_block_t))group;
104 |
105 | @end
106 |
--------------------------------------------------------------------------------
/Pods/Masonry/Masonry/MASLayoutConstraint.h:
--------------------------------------------------------------------------------
1 | //
2 | // MASLayoutConstraint.h
3 | // Masonry
4 | //
5 | // Created by Jonas Budelmann on 3/08/13.
6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved.
7 | //
8 |
9 | #import "MASUtilities.h"
10 |
11 | /**
12 | * When you are debugging or printing the constraints attached to a view this subclass
13 | * makes it easier to identify which constraints have been created via Masonry
14 | */
15 | @interface MASLayoutConstraint : NSLayoutConstraint
16 |
17 | /**
18 | * a key to associate with this constraint
19 | */
20 | @property (nonatomic, strong) id mas_key;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/Pods/Masonry/Masonry/MASLayoutConstraint.m:
--------------------------------------------------------------------------------
1 | //
2 | // MASLayoutConstraint.m
3 | // Masonry
4 | //
5 | // Created by Jonas Budelmann on 3/08/13.
6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved.
7 | //
8 |
9 | #import "MASLayoutConstraint.h"
10 |
11 | @implementation MASLayoutConstraint
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Pods/Masonry/Masonry/MASViewAttribute.h:
--------------------------------------------------------------------------------
1 | //
2 | // MASAttribute.h
3 | // Masonry
4 | //
5 | // Created by Jonas Budelmann on 21/07/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "MASUtilities.h"
10 |
11 | /**
12 | * An immutable tuple which stores the view and the related NSLayoutAttribute.
13 | * Describes part of either the left or right hand side of a constraint equation
14 | */
15 | @interface MASViewAttribute : NSObject
16 |
17 | /**
18 | * The view which the reciever relates to
19 | */
20 | @property (nonatomic, weak, readonly) MAS_VIEW *view;
21 |
22 | /**
23 | * The attribute which the reciever relates to
24 | */
25 | @property (nonatomic, assign, readonly) NSLayoutAttribute layoutAttribute;
26 |
27 | /**
28 | * The designated initializer.
29 | */
30 | - (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute;
31 |
32 | /**
33 | * Determine whether the layoutAttribute is a size attribute
34 | *
35 | * @return YES if layoutAttribute is equal to NSLayoutAttributeWidth or NSLayoutAttributeHeight
36 | */
37 | - (BOOL)isSizeAttribute;
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/Pods/Masonry/Masonry/MASViewAttribute.m:
--------------------------------------------------------------------------------
1 | //
2 | // MASAttribute.m
3 | // Masonry
4 | //
5 | // Created by Jonas Budelmann on 21/07/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "MASViewAttribute.h"
10 |
11 | @implementation MASViewAttribute
12 |
13 | - (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute {
14 | self = [super init];
15 | if (!self) return nil;
16 |
17 | _view = view;
18 | _layoutAttribute = layoutAttribute;
19 |
20 | return self;
21 | }
22 |
23 | - (BOOL)isSizeAttribute {
24 | return self.layoutAttribute == NSLayoutAttributeWidth
25 | || self.layoutAttribute == NSLayoutAttributeHeight;
26 | }
27 |
28 | - (BOOL)isEqual:(MASViewAttribute *)viewAttribute {
29 | if ([viewAttribute isKindOfClass:self.class]) {
30 | return self.view == viewAttribute.view
31 | && self.layoutAttribute == viewAttribute.layoutAttribute;
32 | }
33 | return [super isEqual:viewAttribute];
34 | }
35 |
36 | - (NSUInteger)hash {
37 | return MAS_NSUINTROTATE([self.view hash], MAS_NSUINT_BIT / 2) ^ self.layoutAttribute;
38 | }
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/Pods/Masonry/Masonry/MASViewConstraint.h:
--------------------------------------------------------------------------------
1 | //
2 | // MASConstraint.h
3 | // Masonry
4 | //
5 | // Created by Jonas Budelmann on 20/07/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "MASViewAttribute.h"
10 | #import "MASConstraint.h"
11 | #import "MASLayoutConstraint.h"
12 | #import "MASUtilities.h"
13 |
14 | /**
15 | * A single constraint.
16 | * Contains the attributes neccessary for creating a NSLayoutConstraint and adding it to the appropriate view
17 | */
18 | @interface MASViewConstraint : MASConstraint
19 |
20 | /**
21 | * First item/view and first attribute of the NSLayoutConstraint
22 | */
23 | @property (nonatomic, strong, readonly) MASViewAttribute *firstViewAttribute;
24 |
25 | /**
26 | * Second item/view and second attribute of the NSLayoutConstraint
27 | */
28 | @property (nonatomic, strong, readonly) MASViewAttribute *secondViewAttribute;
29 |
30 | /**
31 | * initialises the MASViewConstraint with the first part of the equation
32 | *
33 | * @param firstViewAttribute view.mas_left, view.mas_width etc.
34 | *
35 | * @return a new view constraint
36 | */
37 | - (id)initWithFirstViewAttribute:(MASViewAttribute *)firstViewAttribute;
38 |
39 | /**
40 | * Returns all MASViewConstraints installed with this view as a first item.
41 | *
42 | * @param view A view to retrieve constraints for.
43 | *
44 | * @return An array of MASViewConstraints.
45 | */
46 | + (NSArray *)installedConstraintsForView:(MAS_VIEW *)view;
47 |
48 | @end
49 |
--------------------------------------------------------------------------------
/Pods/Masonry/Masonry/Masonry.h:
--------------------------------------------------------------------------------
1 | //
2 | // Masonry.h
3 | // Masonry
4 | //
5 | // Created by Jonas Budelmann on 20/07/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "MASUtilities.h"
10 | #import "View+MASAdditions.h"
11 | #import "View+MASShorthandAdditions.h"
12 | #import "NSArray+MASAdditions.h"
13 | #import "NSArray+MASShorthandAdditions.h"
14 | #import "MASConstraint.h"
15 | #import "MASCompositeConstraint.h"
16 | #import "MASViewAttribute.h"
17 | #import "MASViewConstraint.h"
18 | #import "MASConstraintMaker.h"
19 | #import "MASLayoutConstraint.h"
20 | #import "NSLayoutConstraint+MASDebugAdditions.h"
21 |
--------------------------------------------------------------------------------
/Pods/Masonry/Masonry/NSArray+MASAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSArray+MASAdditions.h
3 | //
4 | //
5 | // Created by Daniel Hammond on 11/26/13.
6 | //
7 | //
8 |
9 | #import "MASUtilities.h"
10 | #import "MASConstraintMaker.h"
11 | #import "MASViewAttribute.h"
12 |
13 | @interface NSArray (MASAdditions)
14 |
15 | /**
16 | * Creates a MASConstraintMaker with each view in the callee.
17 | * Any constraints defined are added to the view or the appropriate superview once the block has finished executing on each view
18 | *
19 | * @param block scope within which you can build up the constraints which you wish to apply to each view.
20 | *
21 | * @return Array of created MASConstraints
22 | */
23 | - (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *make))block;
24 |
25 | /**
26 | * Creates a MASConstraintMaker with each view in the callee.
27 | * Any constraints defined are added to each view or the appropriate superview once the block has finished executing on each view.
28 | * If an existing constraint exists then it will be updated instead.
29 | *
30 | * @param block scope within which you can build up the constraints which you wish to apply to each view.
31 | *
32 | * @return Array of created/updated MASConstraints
33 | */
34 | - (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block;
35 |
36 | /**
37 | * Creates a MASConstraintMaker with each view in the callee.
38 | * Any constraints defined are added to each view or the appropriate superview once the block has finished executing on each view.
39 | * All constraints previously installed for the views will be removed.
40 | *
41 | * @param block scope within which you can build up the constraints which you wish to apply to each view.
42 | *
43 | * @return Array of created/updated MASConstraints
44 | */
45 | - (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block;
46 |
47 | @end
48 |
--------------------------------------------------------------------------------
/Pods/Masonry/Masonry/NSArray+MASAdditions.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSArray+MASAdditions.m
3 | //
4 | //
5 | // Created by Daniel Hammond on 11/26/13.
6 | //
7 | //
8 |
9 | #import "NSArray+MASAdditions.h"
10 | #import "View+MASAdditions.h"
11 |
12 | @implementation NSArray (MASAdditions)
13 |
14 | - (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *make))block {
15 | NSMutableArray *constraints = [NSMutableArray array];
16 | for (MAS_VIEW *view in self) {
17 | NSAssert([view isKindOfClass:[MAS_VIEW class]], @"All objects in the array must be views");
18 | [constraints addObjectsFromArray:[view mas_makeConstraints:block]];
19 | }
20 | return constraints;
21 | }
22 |
23 | - (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block {
24 | NSMutableArray *constraints = [NSMutableArray array];
25 | for (MAS_VIEW *view in self) {
26 | NSAssert([view isKindOfClass:[MAS_VIEW class]], @"All objects in the array must be views");
27 | [constraints addObjectsFromArray:[view mas_updateConstraints:block]];
28 | }
29 | return constraints;
30 | }
31 |
32 | - (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block {
33 | NSMutableArray *constraints = [NSMutableArray array];
34 | for (MAS_VIEW *view in self) {
35 | NSAssert([view isKindOfClass:[MAS_VIEW class]], @"All objects in the array must be views");
36 | [constraints addObjectsFromArray:[view mas_remakeConstraints:block]];
37 | }
38 | return constraints;
39 | }
40 |
41 | @end
42 |
--------------------------------------------------------------------------------
/Pods/Masonry/Masonry/NSArray+MASShorthandAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSArray+MASShorthandAdditions.h
3 | // Masonry
4 | //
5 | // Created by Jonas Budelmann on 22/07/13.
6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved.
7 | //
8 |
9 | #import "NSArray+MASAdditions.h"
10 |
11 | #ifdef MAS_SHORTHAND
12 |
13 | /**
14 | * Shorthand array additions without the 'mas_' prefixes,
15 | * only enabled if MAS_SHORTHAND is defined
16 | */
17 | @interface NSArray (MASShorthandAdditions)
18 |
19 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *make))block;
20 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *make))block;
21 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *make))block;
22 |
23 | @end
24 |
25 | @implementation NSArray (MASShorthandAdditions)
26 |
27 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *))block {
28 | return [self mas_makeConstraints:block];
29 | }
30 |
31 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *))block {
32 | return [self mas_updateConstraints:block];
33 | }
34 |
35 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *))block {
36 | return [self mas_remakeConstraints:block];
37 | }
38 |
39 | @end
40 |
41 | #endif
42 |
--------------------------------------------------------------------------------
/Pods/Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSLayoutConstraint+MASDebugAdditions.h
3 | // Masonry
4 | //
5 | // Created by Jonas Budelmann on 3/08/13.
6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved.
7 | //
8 |
9 | #import "MASUtilities.h"
10 |
11 | /**
12 | * makes debug and log output of NSLayoutConstraints more readable
13 | */
14 | @interface NSLayoutConstraint (MASDebugAdditions)
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Pods/Masonry/Masonry/View+MASAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+MASAdditions.h
3 | // Masonry
4 | //
5 | // Created by Jonas Budelmann on 20/07/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "MASUtilities.h"
10 | #import "MASConstraintMaker.h"
11 | #import "MASViewAttribute.h"
12 |
13 | /**
14 | * Provides constraint maker block
15 | * and convience methods for creating MASViewAttribute which are view + NSLayoutAttribute pairs
16 | */
17 | @interface MAS_VIEW (MASAdditions)
18 |
19 | /**
20 | * following properties return a new MASViewAttribute with current view and appropriate NSLayoutAttribute
21 | */
22 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_left;
23 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_top;
24 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_right;
25 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottom;
26 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_leading;
27 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_trailing;
28 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_width;
29 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_height;
30 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_centerX;
31 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_centerY;
32 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_baseline;
33 | @property (nonatomic, strong, readonly) MASViewAttribute *(^mas_attribute)(NSLayoutAttribute attr);
34 |
35 | /**
36 | * a key to associate with this view
37 | */
38 | @property (nonatomic, strong) id mas_key;
39 |
40 | /**
41 | * Finds the closest common superview between this view and another view
42 | *
43 | * @param view other view
44 | *
45 | * @return returns nil if common superview could not be found
46 | */
47 | - (instancetype)mas_closestCommonSuperview:(MAS_VIEW *)view;
48 |
49 | /**
50 | * Creates a MASConstraintMaker with the callee view.
51 | * Any constraints defined are added to the view or the appropriate superview once the block has finished executing
52 | *
53 | * @param block scope within which you can build up the constraints which you wish to apply to the view.
54 | *
55 | * @return Array of created MASConstraints
56 | */
57 | - (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *make))block;
58 |
59 | /**
60 | * Creates a MASConstraintMaker with the callee view.
61 | * Any constraints defined are added to the view or the appropriate superview once the block has finished executing.
62 | * If an existing constraint exists then it will be updated instead.
63 | *
64 | * @param block scope within which you can build up the constraints which you wish to apply to the view.
65 | *
66 | * @return Array of created/updated MASConstraints
67 | */
68 | - (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block;
69 |
70 | /**
71 | * Creates a MASConstraintMaker with the callee view.
72 | * Any constraints defined are added to the view or the appropriate superview once the block has finished executing.
73 | * All constraints previously installed for the view will be removed.
74 | *
75 | * @param block scope within which you can build up the constraints which you wish to apply to the view.
76 | *
77 | * @return Array of created/updated MASConstraints
78 | */
79 | - (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block;
80 |
81 | @end
82 |
--------------------------------------------------------------------------------
/Pods/Masonry/Masonry/View+MASAdditions.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+MASAdditions.m
3 | // Masonry
4 | //
5 | // Created by Jonas Budelmann on 20/07/13.
6 | // Copyright (c) 2013 cloudling. All rights reserved.
7 | //
8 |
9 | #import "View+MASAdditions.h"
10 | #import
11 |
12 | @implementation MAS_VIEW (MASAdditions)
13 |
14 | - (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *))block {
15 | self.translatesAutoresizingMaskIntoConstraints = NO;
16 | MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self];
17 | block(constraintMaker);
18 | return [constraintMaker install];
19 | }
20 |
21 | - (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *))block {
22 | self.translatesAutoresizingMaskIntoConstraints = NO;
23 | MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self];
24 | constraintMaker.updateExisting = YES;
25 | block(constraintMaker);
26 | return [constraintMaker install];
27 | }
28 |
29 | - (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block {
30 | self.translatesAutoresizingMaskIntoConstraints = NO;
31 | MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self];
32 | constraintMaker.removeExisting = YES;
33 | block(constraintMaker);
34 | return [constraintMaker install];
35 | }
36 |
37 | #pragma mark - NSLayoutAttribute properties
38 |
39 | - (MASViewAttribute *)mas_left {
40 | return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeLeft];
41 | }
42 |
43 | - (MASViewAttribute *)mas_top {
44 | return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeTop];
45 | }
46 |
47 | - (MASViewAttribute *)mas_right {
48 | return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeRight];
49 | }
50 |
51 | - (MASViewAttribute *)mas_bottom {
52 | return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeBottom];
53 | }
54 |
55 | - (MASViewAttribute *)mas_leading {
56 | return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeLeading];
57 | }
58 |
59 | - (MASViewAttribute *)mas_trailing {
60 | return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeTrailing];
61 | }
62 |
63 | - (MASViewAttribute *)mas_width {
64 | return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeWidth];
65 | }
66 |
67 | - (MASViewAttribute *)mas_height {
68 | return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeHeight];
69 | }
70 |
71 | - (MASViewAttribute *)mas_centerX {
72 | return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeCenterX];
73 | }
74 |
75 | - (MASViewAttribute *)mas_centerY {
76 | return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeCenterY];
77 | }
78 |
79 | - (MASViewAttribute *)mas_baseline {
80 | return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeBaseline];
81 | }
82 |
83 | - (MASViewAttribute *(^)(NSLayoutAttribute))mas_attribute
84 | {
85 | return ^(NSLayoutAttribute attr) {
86 | return [[MASViewAttribute alloc] initWithView:self layoutAttribute:attr];
87 | };
88 | }
89 |
90 | #pragma mark - associated properties
91 |
92 | - (id)mas_key {
93 | return objc_getAssociatedObject(self, @selector(mas_key));
94 | }
95 |
96 | - (void)setMas_key:(id)key {
97 | objc_setAssociatedObject(self, @selector(mas_key), key, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
98 | }
99 |
100 | #pragma mark - heirachy
101 |
102 | - (instancetype)mas_closestCommonSuperview:(MAS_VIEW *)view {
103 | MAS_VIEW *closestCommonSuperview = nil;
104 |
105 | MAS_VIEW *secondViewSuperview = view;
106 | while (!closestCommonSuperview && secondViewSuperview) {
107 | MAS_VIEW *firstViewSuperview = self;
108 | while (!closestCommonSuperview && firstViewSuperview) {
109 | if (secondViewSuperview == firstViewSuperview) {
110 | closestCommonSuperview = secondViewSuperview;
111 | }
112 | firstViewSuperview = firstViewSuperview.superview;
113 | }
114 | secondViewSuperview = secondViewSuperview.superview;
115 | }
116 | return closestCommonSuperview;
117 | }
118 |
119 | @end
120 |
--------------------------------------------------------------------------------
/Pods/Masonry/Masonry/View+MASShorthandAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+MASShorthandAdditions.h
3 | // Masonry
4 | //
5 | // Created by Jonas Budelmann on 22/07/13.
6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved.
7 | //
8 |
9 | #import "View+MASAdditions.h"
10 |
11 | #ifdef MAS_SHORTHAND
12 |
13 | /**
14 | * Shorthand view additions without the 'mas_' prefixes,
15 | * only enabled if MAS_SHORTHAND is defined
16 | */
17 | @interface MAS_VIEW (MASShorthandAdditions)
18 |
19 | @property (nonatomic, strong, readonly) MASViewAttribute *left;
20 | @property (nonatomic, strong, readonly) MASViewAttribute *top;
21 | @property (nonatomic, strong, readonly) MASViewAttribute *right;
22 | @property (nonatomic, strong, readonly) MASViewAttribute *bottom;
23 | @property (nonatomic, strong, readonly) MASViewAttribute *leading;
24 | @property (nonatomic, strong, readonly) MASViewAttribute *trailing;
25 | @property (nonatomic, strong, readonly) MASViewAttribute *width;
26 | @property (nonatomic, strong, readonly) MASViewAttribute *height;
27 | @property (nonatomic, strong, readonly) MASViewAttribute *centerX;
28 | @property (nonatomic, strong, readonly) MASViewAttribute *centerY;
29 | @property (nonatomic, strong, readonly) MASViewAttribute *baseline;
30 | @property (nonatomic, strong, readonly) MASViewAttribute *(^attribute)(NSLayoutAttribute attr);
31 |
32 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *make))block;
33 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *make))block;
34 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *make))block;
35 |
36 | @end
37 |
38 | #define MAS_ATTR_FORWARD(attr) \
39 | - (MASViewAttribute *)attr { \
40 | return [self mas_##attr]; \
41 | }
42 |
43 | @implementation MAS_VIEW (MASShorthandAdditions)
44 |
45 | MAS_ATTR_FORWARD(top);
46 | MAS_ATTR_FORWARD(left);
47 | MAS_ATTR_FORWARD(bottom);
48 | MAS_ATTR_FORWARD(right);
49 | MAS_ATTR_FORWARD(leading);
50 | MAS_ATTR_FORWARD(trailing);
51 | MAS_ATTR_FORWARD(width);
52 | MAS_ATTR_FORWARD(height);
53 | MAS_ATTR_FORWARD(centerX);
54 | MAS_ATTR_FORWARD(centerY);
55 | MAS_ATTR_FORWARD(baseline);
56 |
57 | - (MASViewAttribute *(^)(NSLayoutAttribute))attribute {
58 | return [self mas_attribute];
59 | }
60 |
61 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *))block {
62 | return [self mas_makeConstraints:block];
63 | }
64 |
65 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *))block {
66 | return [self mas_updateConstraints:block];
67 | }
68 |
69 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *))block {
70 | return [self mas_remakeConstraints:block];
71 | }
72 |
73 | @end
74 |
75 | #endif
76 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/freedom.xcuserdatad/xcschemes/Pods-Classy.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
42 |
43 |
44 |
45 |
51 |
52 |
54 |
55 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/freedom.xcuserdatad/xcschemes/Pods-ClassyLiveLayout.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
42 |
43 |
44 |
45 |
51 |
52 |
54 |
55 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/freedom.xcuserdatad/xcschemes/Pods-Masonry.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
42 |
43 |
44 |
45 |
51 |
52 |
54 |
55 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/freedom.xcuserdatad/xcschemes/Pods.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
42 |
43 |
44 |
45 |
51 |
52 |
54 |
55 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/freedom.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Pods-Classy.xcscheme
8 |
9 | isShown
10 |
11 |
12 | Pods-ClassyLiveLayout.xcscheme
13 |
14 | isShown
15 |
16 |
17 | Pods-Masonry.xcscheme
18 |
19 | isShown
20 |
21 |
22 | Pods.xcscheme
23 |
24 | isShown
25 |
26 |
27 |
28 | SuppressBuildableAutocreation
29 |
30 | 63C3677EDAA38335D2003FE8
31 |
32 | primary
33 |
34 |
35 | 86AF5E11D3C362953F4A8195
36 |
37 | primary
38 |
39 |
40 | 9D933AC8BDD1E4D275353630
41 |
42 | primary
43 |
44 |
45 | F325612B256525845C82F70A
46 |
47 | primary
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-Classy/Pods-Classy-Private.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods-Classy.xcconfig"
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Classy" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Classy" "${PODS_ROOT}/Headers/Public/ClassyLiveLayout" "${PODS_ROOT}/Headers/Public/Masonry"
4 | OTHER_LDFLAGS = ${PODS_CLASSY_OTHER_LDFLAGS} -ObjC
5 | PODS_ROOT = ${SRCROOT}
6 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-Classy/Pods-Classy-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_Classy : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_Classy
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-Classy/Pods-Classy-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 | #import "Pods-environment.h"
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-Classy/Pods-Classy.xcconfig:
--------------------------------------------------------------------------------
1 | PODS_CLASSY_OTHER_LDFLAGS = -framework "Foundation" -framework "QuartzCore" -framework "UIKit"
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-ClassyLiveLayout/Pods-ClassyLiveLayout-Private.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods-ClassyLiveLayout.xcconfig"
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/ClassyLiveLayout" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Classy" "${PODS_ROOT}/Headers/Public/ClassyLiveLayout" "${PODS_ROOT}/Headers/Public/Masonry"
4 | OTHER_LDFLAGS = ${PODS_CLASSYLIVELAYOUT_OTHER_LDFLAGS} -ObjC
5 | PODS_ROOT = ${SRCROOT}
6 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-ClassyLiveLayout/Pods-ClassyLiveLayout-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_ClassyLiveLayout : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_ClassyLiveLayout
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-ClassyLiveLayout/Pods-ClassyLiveLayout-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 | #import "Pods-environment.h"
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-ClassyLiveLayout/Pods-ClassyLiveLayout.xcconfig:
--------------------------------------------------------------------------------
1 | PODS_CLASSYLIVELAYOUT_OTHER_LDFLAGS = -framework "Foundation" -framework "QuartzCore" -framework "UIKit"
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-Masonry/Pods-Masonry-Private.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods-Masonry.xcconfig"
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Masonry" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Classy" "${PODS_ROOT}/Headers/Public/ClassyLiveLayout" "${PODS_ROOT}/Headers/Public/Masonry"
4 | OTHER_LDFLAGS = ${PODS_MASONRY_OTHER_LDFLAGS} -ObjC
5 | PODS_ROOT = ${SRCROOT}
6 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-Masonry/Pods-Masonry-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_Masonry : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_Masonry
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-Masonry/Pods-Masonry-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 | #import "Pods-environment.h"
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-Masonry/Pods-Masonry.xcconfig:
--------------------------------------------------------------------------------
1 | PODS_MASONRY_OTHER_LDFLAGS = -framework "Foundation" -framework "UIKit"
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods/Pods-acknowledgements.markdown:
--------------------------------------------------------------------------------
1 | # Acknowledgements
2 | This application makes use of the following third party libraries:
3 |
4 | ## Classy
5 |
6 | The MIT License (MIT)
7 |
8 | Copyright (c) 2013 Jonas Budelmann
9 |
10 | Permission is hereby granted, free of charge, to any person obtaining a copy of
11 | this software and associated documentation files (the "Software"), to deal in
12 | the Software without restriction, including without limitation the rights to
13 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
14 | the Software, and to permit persons to whom the Software is furnished to do so,
15 | subject to the following conditions:
16 |
17 | The above copyright notice and this permission notice shall be included in all
18 | copies or substantial portions of the Software.
19 |
20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
22 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
23 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
24 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
25 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 |
27 |
28 | ## ClassyLiveLayout
29 |
30 | **Copyright (c) 2013, SHAPE A/S, http://www.shape.dk.**
31 | **All rights reserved.**
32 |
33 | Permission is hereby granted, free of charge, to any person obtaining a copy of
34 | this software and associated documentation files (the "Software"), to deal in
35 | the Software without restriction, including without limitation the rights to
36 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
37 | the Software, and to permit persons to whom the Software is furnished to do so,
38 | subject to the following conditions:
39 |
40 | The above copyright notice and this permission notice shall be included in all
41 | copies or substantial portions of the Software.
42 |
43 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
44 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
45 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
46 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
47 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
48 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
49 |
50 | ## Masonry
51 |
52 | Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry
53 |
54 | Permission is hereby granted, free of charge, to any person obtaining a copy
55 | of this software and associated documentation files (the "Software"), to deal
56 | in the Software without restriction, including without limitation the rights
57 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
58 | copies of the Software, and to permit persons to whom the Software is
59 | furnished to do so, subject to the following conditions:
60 |
61 | The above copyright notice and this permission notice shall be included in
62 | all copies or substantial portions of the Software.
63 |
64 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
65 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
66 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
67 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
68 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
69 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
70 | THE SOFTWARE.
71 | Generated by CocoaPods - http://cocoapods.org
72 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods/Pods-acknowledgements.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreferenceSpecifiers
6 |
7 |
8 | FooterText
9 | This application makes use of the following third party libraries:
10 | Title
11 | Acknowledgements
12 | Type
13 | PSGroupSpecifier
14 |
15 |
16 | FooterText
17 | The MIT License (MIT)
18 |
19 | Copyright (c) 2013 Jonas Budelmann
20 |
21 | Permission is hereby granted, free of charge, to any person obtaining a copy of
22 | this software and associated documentation files (the "Software"), to deal in
23 | the Software without restriction, including without limitation the rights to
24 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
25 | the Software, and to permit persons to whom the Software is furnished to do so,
26 | subject to the following conditions:
27 |
28 | The above copyright notice and this permission notice shall be included in all
29 | copies or substantial portions of the Software.
30 |
31 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
32 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
33 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
34 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
35 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
36 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
37 |
38 | Title
39 | Classy
40 | Type
41 | PSGroupSpecifier
42 |
43 |
44 | FooterText
45 | **Copyright (c) 2013, SHAPE A/S, http://www.shape.dk.**
46 | **All rights reserved.**
47 |
48 | Permission is hereby granted, free of charge, to any person obtaining a copy of
49 | this software and associated documentation files (the "Software"), to deal in
50 | the Software without restriction, including without limitation the rights to
51 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
52 | the Software, and to permit persons to whom the Software is furnished to do so,
53 | subject to the following conditions:
54 |
55 | The above copyright notice and this permission notice shall be included in all
56 | copies or substantial portions of the Software.
57 |
58 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
59 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
60 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
61 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
62 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
63 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
64 | Title
65 | ClassyLiveLayout
66 | Type
67 | PSGroupSpecifier
68 |
69 |
70 | FooterText
71 | Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry
72 |
73 | Permission is hereby granted, free of charge, to any person obtaining a copy
74 | of this software and associated documentation files (the "Software"), to deal
75 | in the Software without restriction, including without limitation the rights
76 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
77 | copies of the Software, and to permit persons to whom the Software is
78 | furnished to do so, subject to the following conditions:
79 |
80 | The above copyright notice and this permission notice shall be included in
81 | all copies or substantial portions of the Software.
82 |
83 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
84 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
85 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
86 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
87 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
88 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
89 | THE SOFTWARE.
90 | Title
91 | Masonry
92 | Type
93 | PSGroupSpecifier
94 |
95 |
96 | FooterText
97 | Generated by CocoaPods - http://cocoapods.org
98 | Title
99 |
100 | Type
101 | PSGroupSpecifier
102 |
103 |
104 | StringsTable
105 | Acknowledgements
106 | Title
107 | Acknowledgements
108 |
109 |
110 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods/Pods-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods : NSObject
3 | @end
4 | @implementation PodsDummy_Pods
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods/Pods-environment.h:
--------------------------------------------------------------------------------
1 |
2 | // To check if a library is compiled with CocoaPods you
3 | // can use the `COCOAPODS` macro definition which is
4 | // defined in the xcconfigs so it is available in
5 | // headers also when they are imported in the client
6 | // project.
7 |
8 |
9 | // Classy
10 | #define COCOAPODS_POD_AVAILABLE_Classy
11 | #define COCOAPODS_VERSION_MAJOR_Classy 0
12 | #define COCOAPODS_VERSION_MINOR_Classy 2
13 | #define COCOAPODS_VERSION_PATCH_Classy 4
14 |
15 | // ClassyLiveLayout
16 | #define COCOAPODS_POD_AVAILABLE_ClassyLiveLayout
17 | #define COCOAPODS_VERSION_MAJOR_ClassyLiveLayout 0
18 | #define COCOAPODS_VERSION_MINOR_ClassyLiveLayout 6
19 | #define COCOAPODS_VERSION_PATCH_ClassyLiveLayout 0
20 |
21 | // Masonry
22 | #define COCOAPODS_POD_AVAILABLE_Masonry
23 | #define COCOAPODS_VERSION_MAJOR_Masonry 0
24 | #define COCOAPODS_VERSION_MINOR_Masonry 6
25 | #define COCOAPODS_VERSION_PATCH_Masonry 1
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods/Pods-resources.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | set -e
3 |
4 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
5 |
6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
7 | > "$RESOURCES_TO_COPY"
8 |
9 | install_resource()
10 | {
11 | case $1 in
12 | *.storyboard)
13 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
14 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
15 | ;;
16 | *.xib)
17 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}"
18 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}"
19 | ;;
20 | *.framework)
21 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
22 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
23 | echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
24 | rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
25 | ;;
26 | *.xcdatamodel)
27 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\""
28 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom"
29 | ;;
30 | *.xcdatamodeld)
31 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\""
32 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd"
33 | ;;
34 | *.xcmappingmodel)
35 | echo "xcrun mapc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm\""
36 | xcrun mapc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm"
37 | ;;
38 | *.xcassets)
39 | ;;
40 | /*)
41 | echo "$1"
42 | echo "$1" >> "$RESOURCES_TO_COPY"
43 | ;;
44 | *)
45 | echo "${PODS_ROOT}/$1"
46 | echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY"
47 | ;;
48 | esac
49 | }
50 |
51 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
52 | if [[ "${ACTION}" == "install" ]]; then
53 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
54 | fi
55 | rm -f "$RESOURCES_TO_COPY"
56 |
57 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ `find . -name '*.xcassets' | wc -l` -ne 0 ]
58 | then
59 | case "${TARGETED_DEVICE_FAMILY}" in
60 | 1,2)
61 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
62 | ;;
63 | 1)
64 | TARGET_DEVICE_ARGS="--target-device iphone"
65 | ;;
66 | 2)
67 | TARGET_DEVICE_ARGS="--target-device ipad"
68 | ;;
69 | *)
70 | TARGET_DEVICE_ARGS="--target-device mac"
71 | ;;
72 | esac
73 | find "${PWD}" -name "*.xcassets" -print0 | xargs -0 actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
74 | fi
75 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods/Pods.debug.xcconfig:
--------------------------------------------------------------------------------
1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Classy" "${PODS_ROOT}/Headers/Public/ClassyLiveLayout" "${PODS_ROOT}/Headers/Public/Masonry"
3 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Classy" -isystem "${PODS_ROOT}/Headers/Public/ClassyLiveLayout" -isystem "${PODS_ROOT}/Headers/Public/Masonry"
4 | OTHER_LDFLAGS = $(inherited) -ObjC -l"Pods-Classy" -l"Pods-ClassyLiveLayout" -l"Pods-Masonry" -framework "Foundation" -framework "QuartzCore" -framework "UIKit"
5 | OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS)
6 | PODS_ROOT = ${SRCROOT}/Pods
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods/Pods.release.xcconfig:
--------------------------------------------------------------------------------
1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Classy" "${PODS_ROOT}/Headers/Public/ClassyLiveLayout" "${PODS_ROOT}/Headers/Public/Masonry"
3 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Classy" -isystem "${PODS_ROOT}/Headers/Public/ClassyLiveLayout" -isystem "${PODS_ROOT}/Headers/Public/Masonry"
4 | OTHER_LDFLAGS = $(inherited) -ObjC -l"Pods-Classy" -l"Pods-ClassyLiveLayout" -l"Pods-Masonry" -framework "Foundation" -framework "QuartzCore" -framework "UIKit"
5 | OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS)
6 | PODS_ROOT = ${SRCROOT}/Pods
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # LiveAutoLayout
2 | Live Editing Layout Constants Using Classy, Masonry and ClassyLiveLayout Demo
3 |
--------------------------------------------------------------------------------