klipp 0.0.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/.travis.yml +5 -0
  4. data/README.md +13 -26
  5. data/bin/klipp +1 -1
  6. data/klipp.gemspec +11 -6
  7. data/lib/klipp/configuration.rb +0 -4
  8. data/lib/klipp/creator.rb +78 -0
  9. data/lib/klipp/parameter_list.rb +3 -3
  10. data/lib/klipp/version.rb +1 -1
  11. data/lib/klipp.rb +148 -92
  12. data/lib/template/spec.rb +231 -0
  13. data/lib/template/token.rb +81 -0
  14. data/lib/template.rb +59 -0
  15. data/spec/fixtures/ambiguous-repo/Ambiguous/Ambiguous.klippspec +5 -0
  16. data/spec/fixtures/projects/Klippfile +26 -0
  17. data/spec/fixtures/projects/Klippfile-after-prepare +27 -0
  18. data/spec/fixtures/projects/Klippfile-ambiguous +1 -0
  19. data/spec/fixtures/projects/Klippfile-bad-ruby +3 -0
  20. data/spec/fixtures/projects/Klippfile-minimal +1 -0
  21. data/spec/fixtures/projects/Klippfile-unambiguous +1 -0
  22. data/spec/fixtures/template-repository/Ambiguous/Ambiguous.klippspec +5 -0
  23. data/spec/fixtures/template-repository/Another-Template/Another-Template.klippspec +20 -0
  24. data/spec/fixtures/template-repository/BadExample/BadExample.klippspec +35 -0
  25. data/spec/fixtures/template-repository/Empty/Empty.klippspec +20 -0
  26. data/spec/fixtures/template-repository/Example/.gitignore +10 -0
  27. data/spec/fixtures/template-repository/Example/Example.klippspec +40 -0
  28. data/spec/fixtures/template-repository/Example/Podfile +10 -0
  29. data/spec/fixtures/template-repository/Example/XXBLANKXX.hidden +10 -0
  30. data/spec/fixtures/template-repository/Example/XXPROJECT_IDXX/Config/Base.xcconfig +8 -0
  31. data/spec/fixtures/template-repository/Example/XXPROJECT_IDXX/Images/Default-568h@2x.png +0 -0
  32. data/spec/fixtures/template-repository/Example/XXPROJECT_IDXX/Images/Default.png +0 -0
  33. data/spec/fixtures/template-repository/Example/XXPROJECT_IDXX/Images/Default@2x.png +0 -0
  34. data/spec/fixtures/template-repository/Example/XXPROJECT_IDXX/Source/XXCLASS_PREFIXXXAppDelegate.h +13 -0
  35. data/spec/fixtures/template-repository/Example/XXPROJECT_IDXX/Source/XXCLASS_PREFIXXXAppDelegate.m +30 -0
  36. data/spec/fixtures/template-repository/Example/XXPROJECT_IDXX/Source/XXCLASS_PREFIXXXRootViewController.h +11 -0
  37. data/spec/fixtures/template-repository/Example/XXPROJECT_IDXX/Source/XXCLASS_PREFIXXXRootViewController.m +30 -0
  38. data/spec/fixtures/template-repository/Example/XXPROJECT_IDXX/XXPROJECT_TITLEXX-Info.plist +38 -0
  39. data/spec/fixtures/template-repository/Example/XXPROJECT_IDXX/XXPROJECT_TITLEXX-Prefix.pch +14 -0
  40. data/spec/fixtures/template-repository/Example/XXPROJECT_IDXX/en.lproj/Localizable.strings +1 -0
  41. data/spec/fixtures/template-repository/Example/XXPROJECT_IDXX/main.m +17 -0
  42. data/spec/fixtures/template-repository/Example/XXPROJECT_IDXX/nl.lproj/Localizable.strings +1 -0
  43. data/spec/fixtures/template-repository/Example/XXPROJECT_IDXX.xcodeproj/project.pbxproj +466 -0
  44. data/spec/fixtures/template-repository/Example/XXPROJECT_IDXX.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  45. data/spec/fixtures/template-repository/Example/XXPROJECT_IDXXTests/XXPROJECT_TITLEXXTests.m +22 -0
  46. data/spec/fixtures/template-repository/Interactive/Interactive.klippspec +15 -0
  47. data/spec/fixtures/template-repository/Interactive/XXSUBJECT_UNDER_TESTXXTests.m +15 -0
  48. data/spec/klipp/configuration_spec.rb +8 -0
  49. data/spec/klipp/creator_spec.rb +120 -0
  50. data/spec/klipp_spec.rb +80 -85
  51. data/spec/spec_helper.rb +8 -2
  52. data/spec/template/spec_spec.rb +225 -0
  53. data/spec/template/token_spec.rb +100 -0
  54. data/spec/template_spec.rb +82 -0
  55. metadata +118 -43
  56. data/lib/klipp/buffered_output.rb +0 -17
  57. data/lib/klipp/project.rb +0 -46
  58. data/lib/klipp/template.rb +0 -50
  59. data/lib/klipp/token.rb +0 -35
  60. data/spec/fixtures/klipps/Example.klippfile +0 -4
  61. data/spec/fixtures/klipps/ExcessiveExample.klippfile +0 -5
  62. data/spec/fixtures/klipps/Generated.klippfile +0 -11
  63. data/spec/fixtures/klipps/LackingExample.klippfile +0 -3
  64. data/spec/fixtures/klipps/MalformedExample.klippfile +0 -4
  65. data/spec/fixtures/klipps/single-token.yml +0 -5
  66. data/spec/fixtures/templates/Example/RegularFileWithContents.txt +0 -3
  67. data/spec/fixtures/templates/Example/XXCLASS_PREFIXXXPrefixedFile.txt +0 -3
  68. data/spec/fixtures/templates/Example/XXPROJECT_IDXX/BinaryFile.png +0 -0
  69. data/spec/fixtures/templates/Example/XXPROJECT_IDXX/XXCLASS_PREFIXXXPrefixedFileInDirectory.txt +0 -3
  70. data/spec/fixtures/templates/Example.yml +0 -29
  71. data/spec/klipp/project_spec.rb +0 -46
  72. data/spec/klipp/template_spec.rb +0 -80
  73. data/spec/klipp/token_spec.rb +0 -86
@@ -0,0 +1,30 @@
1
+ //
2
+ // XXPROJECT_TITLEXX
3
+ //
4
+ // Copyright (c) XXYEARXX XXORGANIZATION_NAMEXX. All rights reserved.
5
+ //
6
+
7
+ #import "XXCLASS_PREFIXXXRootViewController.h"
8
+
9
+ @interface XXCLASS_PREFIXXXRootViewController ()
10
+
11
+ @property (nonatomic, strong) UILabel *label;
12
+
13
+ @end
14
+
15
+ @implementation XXCLASS_PREFIXXXRootViewController
16
+
17
+ - (void)loadView
18
+ {
19
+ self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
20
+
21
+ self.label = [[UILabel alloc] initWithFrame:CGRectInset(self.view.bounds, 30, 30)];
22
+ self.label.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
23
+ self.label.text = NSLocalizedString(@"CONGRATULATIONS", nil);
24
+ self.label.textAlignment = NSTextAlignmentCenter;
25
+ self.label.lineBreakMode = NSLineBreakByWordWrapping;
26
+ self.label.numberOfLines = 0;
27
+ [self.view addSubview:self.label];
28
+ }
29
+
30
+ @end
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>CFBundleDevelopmentRegion</key>
6
+ <string>en</string>
7
+ <key>CFBundleDisplayName</key>
8
+ <string>${PRODUCT_NAME}</string>
9
+ <key>CFBundleExecutable</key>
10
+ <string>${EXECUTABLE_NAME}</string>
11
+ <key>CFBundleIdentifier</key>
12
+ <string>${BUNDLE_ID}${BUNDLE_SUFFIX}</string>
13
+ <key>CFBundleInfoDictionaryVersion</key>
14
+ <string>6.0</string>
15
+ <key>CFBundleName</key>
16
+ <string>${PRODUCT_NAME}</string>
17
+ <key>CFBundlePackageType</key>
18
+ <string>APPL</string>
19
+ <key>CFBundleShortVersionString</key>
20
+ <string>1.0</string>
21
+ <key>CFBundleSignature</key>
22
+ <string>????</string>
23
+ <key>CFBundleVersion</key>
24
+ <string>1</string>
25
+ <key>LSRequiresIPhoneOS</key>
26
+ <true/>
27
+ <key>UIRequiredDeviceCapabilities</key>
28
+ <array>
29
+ <string>armv7</string>
30
+ </array>
31
+ <key>UISupportedInterfaceOrientations</key>
32
+ <array>
33
+ <string>UIInterfaceOrientationPortrait</string>
34
+ <string>UIInterfaceOrientationLandscapeLeft</string>
35
+ <string>UIInterfaceOrientationLandscapeRight</string>
36
+ </array>
37
+ </dict>
38
+ </plist>
@@ -0,0 +1,14 @@
1
+ //
2
+ // Prefix header for all source files of the 'XXPROJECT_TITLEXX' target in the 'XXPROJECT_TITLEXX' project
3
+ //
4
+
5
+ #import <Availability.h>
6
+
7
+ #ifndef __IPHONE_3_0
8
+ #warning "This project uses features only available in iOS SDK 3.0 and later."
9
+ #endif
10
+
11
+ #ifdef __OBJC__
12
+ #import <UIKit/UIKit.h>
13
+ #import <Foundation/Foundation.h>
14
+ #endif
@@ -0,0 +1 @@
1
+ "CONGRATULATIONS"="Congratulations, XXORGANIZATION_NAMEXX, on running your first Klipp project, XXPROJECT_TITLEXX!";
@@ -0,0 +1,17 @@
1
+ //
2
+ // main.m
3
+ // XXPROJECT_TITLEXX
4
+ //
5
+ // Copyright (c) XXYEARXX XXORGANIZATION_NAMEXX. All rights reserved.
6
+ //
7
+
8
+ #import <UIKit/UIKit.h>
9
+
10
+ #import "XXCLASS_PREFIXXXAppDelegate.h"
11
+
12
+ int main(int argc, char *argv[])
13
+ {
14
+ @autoreleasepool {
15
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([XXCLASS_PREFIXXXAppDelegate class]));
16
+ }
17
+ }
@@ -0,0 +1 @@
1
+ "CONGRATULATIONS"="Gefeliciteerd, XXORGANIZATION_NAMEXX, met je eerste Klipp project, XXPROJECT_TITLEXX!";
@@ -0,0 +1,466 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 46;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ 95AFC9A917DBD374000DA14F /* XXCLASS_PREFIXXXRootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 95AFC9A817DBD374000DA14F /* XXCLASS_PREFIXXXRootViewController.m */; };
11
+ 95AFC9B417DBD4E2000DA14F /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 95AFC9B217DBD4E2000DA14F /* Localizable.strings */; };
12
+ 95DEE3E417DBCFEA00FA04CC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95DEE3E317DBCFEA00FA04CC /* UIKit.framework */; };
13
+ 95DEE3E617DBCFEA00FA04CC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95DEE3E517DBCFEA00FA04CC /* Foundation.framework */; };
14
+ 95DEE3E817DBCFEA00FA04CC /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95DEE3E717DBCFEA00FA04CC /* CoreGraphics.framework */; };
15
+ 95DEE3F017DBCFEA00FA04CC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 95DEE3EF17DBCFEA00FA04CC /* main.m */; };
16
+ 95DEE40217DBCFEB00FA04CC /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95DEE40117DBCFEB00FA04CC /* SenTestingKit.framework */; };
17
+ 95DEE40317DBCFEB00FA04CC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95DEE3E317DBCFEA00FA04CC /* UIKit.framework */; };
18
+ 95DEE40417DBCFEB00FA04CC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95DEE3E517DBCFEA00FA04CC /* Foundation.framework */; };
19
+ 95DEE40F17DBCFEB00FA04CC /* XXPROJECT_TITLEXXTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 95DEE40E17DBCFEB00FA04CC /* XXPROJECT_TITLEXXTests.m */; };
20
+ 95DEE42017DBD03700FA04CC /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 95DEE41A17DBD03700FA04CC /* Default-568h@2x.png */; };
21
+ 95DEE42117DBD03700FA04CC /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 95DEE41B17DBD03700FA04CC /* Default.png */; };
22
+ 95DEE42217DBD03700FA04CC /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 95DEE41C17DBD03700FA04CC /* Default@2x.png */; };
23
+ 95DEE42317DBD03700FA04CC /* XXCLASS_PREFIXXXAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 95DEE41F17DBD03700FA04CC /* XXCLASS_PREFIXXXAppDelegate.m */; };
24
+ /* End PBXBuildFile section */
25
+
26
+ /* Begin PBXContainerItemProxy section */
27
+ 95DEE40517DBCFEB00FA04CC /* PBXContainerItemProxy */ = {
28
+ isa = PBXContainerItemProxy;
29
+ containerPortal = 95DEE3D817DBCFEA00FA04CC /* Project object */;
30
+ proxyType = 1;
31
+ remoteGlobalIDString = 95DEE3DF17DBCFEA00FA04CC;
32
+ remoteInfo = XXPROJECT_TITLEXX;
33
+ };
34
+ /* End PBXContainerItemProxy section */
35
+
36
+ /* Begin PBXFileReference section */
37
+ 95AFC9A717DBD374000DA14F /* XXCLASS_PREFIXXXRootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XXCLASS_PREFIXXXRootViewController.h; sourceTree = "<group>"; };
38
+ 95AFC9A817DBD374000DA14F /* XXCLASS_PREFIXXXRootViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XXCLASS_PREFIXXXRootViewController.m; sourceTree = "<group>"; };
39
+ 95AFC9B317DBD4E2000DA14F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
40
+ 95AFC9B517DBD4E8000DA14F /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = "<group>"; };
41
+ 95AFC9B617DBD76F000DA14F /* Base.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Base.xcconfig; sourceTree = "<group>"; };
42
+ 95DEE3E017DBCFEA00FA04CC /* XXPROJECT_TITLEXX.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = XXPROJECT_TITLEXX.app; sourceTree = BUILT_PRODUCTS_DIR; };
43
+ 95DEE3E317DBCFEA00FA04CC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
44
+ 95DEE3E517DBCFEA00FA04CC /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
45
+ 95DEE3E717DBCFEA00FA04CC /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
46
+ 95DEE3EB17DBCFEA00FA04CC /* XXPROJECT_TITLEXX-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "XXPROJECT_TITLEXX-Info.plist"; sourceTree = "<group>"; };
47
+ 95DEE3EF17DBCFEA00FA04CC /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
48
+ 95DEE3F117DBCFEA00FA04CC /* XXPROJECT_TITLEXX-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "XXPROJECT_TITLEXX-Prefix.pch"; sourceTree = "<group>"; };
49
+ 95DEE40017DBCFEB00FA04CC /* XXPROJECT_TITLEXXTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = XXPROJECT_TITLEXXTests.octest; sourceTree = BUILT_PRODUCTS_DIR; };
50
+ 95DEE40117DBCFEB00FA04CC /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
51
+ 95DEE40E17DBCFEB00FA04CC /* XXPROJECT_TITLEXXTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XXPROJECT_TITLEXXTests.m; sourceTree = "<group>"; };
52
+ 95DEE41A17DBD03700FA04CC /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
53
+ 95DEE41B17DBD03700FA04CC /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
54
+ 95DEE41C17DBD03700FA04CC /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = "<group>"; };
55
+ 95DEE41E17DBD03700FA04CC /* XXCLASS_PREFIXXXAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XXCLASS_PREFIXXXAppDelegate.h; sourceTree = "<group>"; };
56
+ 95DEE41F17DBD03700FA04CC /* XXCLASS_PREFIXXXAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XXCLASS_PREFIXXXAppDelegate.m; sourceTree = "<group>"; };
57
+ /* End PBXFileReference section */
58
+
59
+ /* Begin PBXFrameworksBuildPhase section */
60
+ 95DEE3DD17DBCFEA00FA04CC /* Frameworks */ = {
61
+ isa = PBXFrameworksBuildPhase;
62
+ buildActionMask = 2147483647;
63
+ files = (
64
+ 95DEE3E417DBCFEA00FA04CC /* UIKit.framework in Frameworks */,
65
+ 95DEE3E617DBCFEA00FA04CC /* Foundation.framework in Frameworks */,
66
+ 95DEE3E817DBCFEA00FA04CC /* CoreGraphics.framework in Frameworks */,
67
+ );
68
+ runOnlyForDeploymentPostprocessing = 0;
69
+ };
70
+ 95DEE3FC17DBCFEB00FA04CC /* Frameworks */ = {
71
+ isa = PBXFrameworksBuildPhase;
72
+ buildActionMask = 2147483647;
73
+ files = (
74
+ 95DEE40217DBCFEB00FA04CC /* SenTestingKit.framework in Frameworks */,
75
+ 95DEE40317DBCFEB00FA04CC /* UIKit.framework in Frameworks */,
76
+ 95DEE40417DBCFEB00FA04CC /* Foundation.framework in Frameworks */,
77
+ );
78
+ runOnlyForDeploymentPostprocessing = 0;
79
+ };
80
+ /* End PBXFrameworksBuildPhase section */
81
+
82
+ /* Begin PBXGroup section */
83
+ 95DEE3D717DBCFEA00FA04CC = {
84
+ isa = PBXGroup;
85
+ children = (
86
+ 95DEE3E917DBCFEA00FA04CC /* XXPROJECT_TITLEXX */,
87
+ 95DEE40717DBCFEB00FA04CC /* XXPROJECT_TITLEXXTests */,
88
+ 95DEE3E217DBCFEA00FA04CC /* Frameworks */,
89
+ 95DEE3E117DBCFEA00FA04CC /* Products */,
90
+ );
91
+ sourceTree = "<group>";
92
+ };
93
+ 95DEE3E117DBCFEA00FA04CC /* Products */ = {
94
+ isa = PBXGroup;
95
+ children = (
96
+ 95DEE3E017DBCFEA00FA04CC /* XXPROJECT_TITLEXX.app */,
97
+ 95DEE40017DBCFEB00FA04CC /* XXPROJECT_TITLEXXTests.octest */,
98
+ );
99
+ name = Products;
100
+ sourceTree = "<group>";
101
+ };
102
+ 95DEE3E217DBCFEA00FA04CC /* Frameworks */ = {
103
+ isa = PBXGroup;
104
+ children = (
105
+ 95DEE3E317DBCFEA00FA04CC /* UIKit.framework */,
106
+ 95DEE3E517DBCFEA00FA04CC /* Foundation.framework */,
107
+ 95DEE3E717DBCFEA00FA04CC /* CoreGraphics.framework */,
108
+ 95DEE40117DBCFEB00FA04CC /* SenTestingKit.framework */,
109
+ );
110
+ name = Frameworks;
111
+ sourceTree = "<group>";
112
+ };
113
+ 95DEE3E917DBCFEA00FA04CC /* XXPROJECT_TITLEXX */ = {
114
+ isa = PBXGroup;
115
+ children = (
116
+ 95DEE41817DBD03700FA04CC /* Config */,
117
+ 95DEE41917DBD03700FA04CC /* Images */,
118
+ 95DEE41D17DBD03700FA04CC /* Source */,
119
+ 95DEE3EA17DBCFEA00FA04CC /* Supporting Files */,
120
+ );
121
+ path = XXPROJECT_TITLEXX;
122
+ sourceTree = "<group>";
123
+ };
124
+ 95DEE3EA17DBCFEA00FA04CC /* Supporting Files */ = {
125
+ isa = PBXGroup;
126
+ children = (
127
+ 95AFC9B217DBD4E2000DA14F /* Localizable.strings */,
128
+ 95DEE3EB17DBCFEA00FA04CC /* XXPROJECT_TITLEXX-Info.plist */,
129
+ 95DEE3EF17DBCFEA00FA04CC /* main.m */,
130
+ 95DEE3F117DBCFEA00FA04CC /* XXPROJECT_TITLEXX-Prefix.pch */,
131
+ );
132
+ name = "Supporting Files";
133
+ sourceTree = "<group>";
134
+ };
135
+ 95DEE40717DBCFEB00FA04CC /* XXPROJECT_TITLEXXTests */ = {
136
+ isa = PBXGroup;
137
+ children = (
138
+ 95DEE40E17DBCFEB00FA04CC /* XXPROJECT_TITLEXXTests.m */,
139
+ );
140
+ path = XXPROJECT_TITLEXXTests;
141
+ sourceTree = "<group>";
142
+ };
143
+ 95DEE41817DBD03700FA04CC /* Config */ = {
144
+ isa = PBXGroup;
145
+ children = (
146
+ 95AFC9B617DBD76F000DA14F /* Base.xcconfig */,
147
+ );
148
+ path = Config;
149
+ sourceTree = "<group>";
150
+ };
151
+ 95DEE41917DBD03700FA04CC /* Images */ = {
152
+ isa = PBXGroup;
153
+ children = (
154
+ 95DEE41A17DBD03700FA04CC /* Default-568h@2x.png */,
155
+ 95DEE41B17DBD03700FA04CC /* Default.png */,
156
+ 95DEE41C17DBD03700FA04CC /* Default@2x.png */,
157
+ );
158
+ path = Images;
159
+ sourceTree = "<group>";
160
+ };
161
+ 95DEE41D17DBD03700FA04CC /* Source */ = {
162
+ isa = PBXGroup;
163
+ children = (
164
+ 95DEE41E17DBD03700FA04CC /* XXCLASS_PREFIXXXAppDelegate.h */,
165
+ 95DEE41F17DBD03700FA04CC /* XXCLASS_PREFIXXXAppDelegate.m */,
166
+ 95AFC9A717DBD374000DA14F /* XXCLASS_PREFIXXXRootViewController.h */,
167
+ 95AFC9A817DBD374000DA14F /* XXCLASS_PREFIXXXRootViewController.m */,
168
+ );
169
+ path = Source;
170
+ sourceTree = "<group>";
171
+ };
172
+ /* End PBXGroup section */
173
+
174
+ /* Begin PBXNativeTarget section */
175
+ 95DEE3DF17DBCFEA00FA04CC /* XXPROJECT_TITLEXX */ = {
176
+ isa = PBXNativeTarget;
177
+ buildConfigurationList = 95DEE41217DBCFEB00FA04CC /* Build configuration list for PBXNativeTarget "XXPROJECT_TITLEXX" */;
178
+ buildPhases = (
179
+ 95DEE3DC17DBCFEA00FA04CC /* Sources */,
180
+ 95DEE3DD17DBCFEA00FA04CC /* Frameworks */,
181
+ 95DEE3DE17DBCFEA00FA04CC /* Resources */,
182
+ );
183
+ buildRules = (
184
+ );
185
+ dependencies = (
186
+ );
187
+ name = XXPROJECT_TITLEXX;
188
+ productName = XXPROJECT_TITLEXX;
189
+ productReference = 95DEE3E017DBCFEA00FA04CC /* XXPROJECT_TITLEXX.app */;
190
+ productType = "com.apple.product-type.application";
191
+ };
192
+ 95DEE3FF17DBCFEB00FA04CC /* XXPROJECT_TITLEXXTests */ = {
193
+ isa = PBXNativeTarget;
194
+ buildConfigurationList = 95DEE41517DBCFEB00FA04CC /* Build configuration list for PBXNativeTarget "XXPROJECT_TITLEXXTests" */;
195
+ buildPhases = (
196
+ 95DEE3FB17DBCFEB00FA04CC /* Sources */,
197
+ 95DEE3FC17DBCFEB00FA04CC /* Frameworks */,
198
+ 95DEE3FD17DBCFEB00FA04CC /* Resources */,
199
+ 95DEE3FE17DBCFEB00FA04CC /* ShellScript */,
200
+ );
201
+ buildRules = (
202
+ );
203
+ dependencies = (
204
+ 95DEE40617DBCFEB00FA04CC /* PBXTargetDependency */,
205
+ );
206
+ name = XXPROJECT_TITLEXXTests;
207
+ productName = XXPROJECT_TITLEXXTests;
208
+ productReference = 95DEE40017DBCFEB00FA04CC /* XXPROJECT_TITLEXXTests.octest */;
209
+ productType = "com.apple.product-type.bundle";
210
+ };
211
+ /* End PBXNativeTarget section */
212
+
213
+ /* Begin PBXProject section */
214
+ 95DEE3D817DBCFEA00FA04CC /* Project object */ = {
215
+ isa = PBXProject;
216
+ attributes = {
217
+ CLASSPREFIX = XXCLASS_PREFIXXX;
218
+ LastUpgradeCheck = 0460;
219
+ ORGANIZATIONNAME = XXORGANIZATION_NAMEXX;
220
+ };
221
+ buildConfigurationList = 95DEE3DB17DBCFEA00FA04CC /* Build configuration list for PBXProject "XXPROJECT_TITLEXX" */;
222
+ compatibilityVersion = "Xcode 3.2";
223
+ developmentRegion = English;
224
+ hasScannedForEncodings = 0;
225
+ knownRegions = (
226
+ en,
227
+ nl,
228
+ );
229
+ mainGroup = 95DEE3D717DBCFEA00FA04CC;
230
+ productRefGroup = 95DEE3E117DBCFEA00FA04CC /* Products */;
231
+ projectDirPath = "";
232
+ projectRoot = "";
233
+ targets = (
234
+ 95DEE3DF17DBCFEA00FA04CC /* XXPROJECT_TITLEXX */,
235
+ 95DEE3FF17DBCFEB00FA04CC /* XXPROJECT_TITLEXXTests */,
236
+ );
237
+ };
238
+ /* End PBXProject section */
239
+
240
+ /* Begin PBXResourcesBuildPhase section */
241
+ 95DEE3DE17DBCFEA00FA04CC /* Resources */ = {
242
+ isa = PBXResourcesBuildPhase;
243
+ buildActionMask = 2147483647;
244
+ files = (
245
+ 95DEE42017DBD03700FA04CC /* Default-568h@2x.png in Resources */,
246
+ 95AFC9B417DBD4E2000DA14F /* Localizable.strings in Resources */,
247
+ 95DEE42117DBD03700FA04CC /* Default.png in Resources */,
248
+ 95DEE42217DBD03700FA04CC /* Default@2x.png in Resources */,
249
+ );
250
+ runOnlyForDeploymentPostprocessing = 0;
251
+ };
252
+ 95DEE3FD17DBCFEB00FA04CC /* Resources */ = {
253
+ isa = PBXResourcesBuildPhase;
254
+ buildActionMask = 2147483647;
255
+ files = (
256
+ );
257
+ runOnlyForDeploymentPostprocessing = 0;
258
+ };
259
+ /* End PBXResourcesBuildPhase section */
260
+
261
+ /* Begin PBXShellScriptBuildPhase section */
262
+ 95DEE3FE17DBCFEB00FA04CC /* ShellScript */ = {
263
+ isa = PBXShellScriptBuildPhase;
264
+ buildActionMask = 2147483647;
265
+ files = (
266
+ );
267
+ inputPaths = (
268
+ );
269
+ outputPaths = (
270
+ );
271
+ runOnlyForDeploymentPostprocessing = 0;
272
+ shellPath = /bin/sh;
273
+ shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
274
+ };
275
+ /* End PBXShellScriptBuildPhase section */
276
+
277
+ /* Begin PBXSourcesBuildPhase section */
278
+ 95DEE3DC17DBCFEA00FA04CC /* Sources */ = {
279
+ isa = PBXSourcesBuildPhase;
280
+ buildActionMask = 2147483647;
281
+ files = (
282
+ 95DEE3F017DBCFEA00FA04CC /* main.m in Sources */,
283
+ 95AFC9A917DBD374000DA14F /* XXCLASS_PREFIXXXRootViewController.m in Sources */,
284
+ 95DEE42317DBD03700FA04CC /* XXCLASS_PREFIXXXAppDelegate.m in Sources */,
285
+ );
286
+ runOnlyForDeploymentPostprocessing = 0;
287
+ };
288
+ 95DEE3FB17DBCFEB00FA04CC /* Sources */ = {
289
+ isa = PBXSourcesBuildPhase;
290
+ buildActionMask = 2147483647;
291
+ files = (
292
+ 95DEE40F17DBCFEB00FA04CC /* XXPROJECT_TITLEXXTests.m in Sources */,
293
+ );
294
+ runOnlyForDeploymentPostprocessing = 0;
295
+ };
296
+ /* End PBXSourcesBuildPhase section */
297
+
298
+ /* Begin PBXTargetDependency section */
299
+ 95DEE40617DBCFEB00FA04CC /* PBXTargetDependency */ = {
300
+ isa = PBXTargetDependency;
301
+ target = 95DEE3DF17DBCFEA00FA04CC /* XXPROJECT_TITLEXX */;
302
+ targetProxy = 95DEE40517DBCFEB00FA04CC /* PBXContainerItemProxy */;
303
+ };
304
+ /* End PBXTargetDependency section */
305
+
306
+ /* Begin PBXVariantGroup section */
307
+ 95AFC9B217DBD4E2000DA14F /* Localizable.strings */ = {
308
+ isa = PBXVariantGroup;
309
+ children = (
310
+ 95AFC9B317DBD4E2000DA14F /* en */,
311
+ 95AFC9B517DBD4E8000DA14F /* nl */,
312
+ );
313
+ name = Localizable.strings;
314
+ sourceTree = "<group>";
315
+ };
316
+ /* End PBXVariantGroup section */
317
+
318
+ /* Begin XCBuildConfiguration section */
319
+ 95DEE41017DBCFEB00FA04CC /* Debug */ = {
320
+ isa = XCBuildConfiguration;
321
+ baseConfigurationReference = 95AFC9B617DBD76F000DA14F /* Base.xcconfig */;
322
+ buildSettings = {
323
+ ALWAYS_SEARCH_USER_PATHS = NO;
324
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
325
+ CLANG_CXX_LIBRARY = "libc++";
326
+ CLANG_ENABLE_OBJC_ARC = YES;
327
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
328
+ CLANG_WARN_EMPTY_BODY = YES;
329
+ CLANG_WARN_ENUM_CONVERSION = YES;
330
+ CLANG_WARN_INT_CONVERSION = YES;
331
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
332
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
333
+ COPY_PHASE_STRIP = NO;
334
+ GCC_C_LANGUAGE_STANDARD = gnu99;
335
+ GCC_DYNAMIC_NO_PIC = NO;
336
+ GCC_OPTIMIZATION_LEVEL = 0;
337
+ GCC_PREPROCESSOR_DEFINITIONS = (
338
+ "DEBUG=1",
339
+ "$(inherited)",
340
+ );
341
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
342
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
343
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
344
+ GCC_WARN_UNUSED_VARIABLE = YES;
345
+ IPHONEOS_DEPLOYMENT_TARGET = 6.1;
346
+ ONLY_ACTIVE_ARCH = YES;
347
+ SDKROOT = iphoneos;
348
+ };
349
+ name = Debug;
350
+ };
351
+ 95DEE41117DBCFEB00FA04CC /* Release */ = {
352
+ isa = XCBuildConfiguration;
353
+ baseConfigurationReference = 95AFC9B617DBD76F000DA14F /* Base.xcconfig */;
354
+ buildSettings = {
355
+ ALWAYS_SEARCH_USER_PATHS = NO;
356
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
357
+ CLANG_CXX_LIBRARY = "libc++";
358
+ CLANG_ENABLE_OBJC_ARC = YES;
359
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
360
+ CLANG_WARN_EMPTY_BODY = YES;
361
+ CLANG_WARN_ENUM_CONVERSION = YES;
362
+ CLANG_WARN_INT_CONVERSION = YES;
363
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
364
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
365
+ COPY_PHASE_STRIP = YES;
366
+ GCC_C_LANGUAGE_STANDARD = gnu99;
367
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
368
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
369
+ GCC_WARN_UNUSED_VARIABLE = YES;
370
+ IPHONEOS_DEPLOYMENT_TARGET = 6.1;
371
+ OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
372
+ SDKROOT = iphoneos;
373
+ VALIDATE_PRODUCT = YES;
374
+ };
375
+ name = Release;
376
+ };
377
+ 95DEE41317DBCFEB00FA04CC /* Debug */ = {
378
+ isa = XCBuildConfiguration;
379
+ buildSettings = {
380
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
381
+ GCC_PREFIX_HEADER = "XXPROJECT_TITLEXX/XXPROJECT_TITLEXX-Prefix.pch";
382
+ INFOPLIST_FILE = "XXPROJECT_TITLEXX/XXPROJECT_TITLEXX-Info.plist";
383
+ PRODUCT_NAME = "$(TARGET_NAME)";
384
+ WRAPPER_EXTENSION = app;
385
+ };
386
+ name = Debug;
387
+ };
388
+ 95DEE41417DBCFEB00FA04CC /* Release */ = {
389
+ isa = XCBuildConfiguration;
390
+ buildSettings = {
391
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
392
+ GCC_PREFIX_HEADER = "XXPROJECT_TITLEXX/XXPROJECT_TITLEXX-Prefix.pch";
393
+ INFOPLIST_FILE = "XXPROJECT_TITLEXX/XXPROJECT_TITLEXX-Info.plist";
394
+ PRODUCT_NAME = "$(TARGET_NAME)";
395
+ WRAPPER_EXTENSION = app;
396
+ };
397
+ name = Release;
398
+ };
399
+ 95DEE41617DBCFEB00FA04CC /* Debug */ = {
400
+ isa = XCBuildConfiguration;
401
+ buildSettings = {
402
+ BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/XXPROJECT_TITLEXX.app/XXPROJECT_TITLEXX";
403
+ FRAMEWORK_SEARCH_PATHS = (
404
+ "\"$(SDKROOT)/Developer/Library/Frameworks\"",
405
+ "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"",
406
+ );
407
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
408
+ GCC_PREFIX_HEADER = "XXPROJECT_TITLEXX/XXPROJECT_TITLEXX-Prefix.pch";
409
+ INFOPLIST_FILE = "XXPROJECT_TITLEXX/XXPROJECT_TITLEXX-Info.plist";
410
+ PRODUCT_NAME = "$(TARGET_NAME)";
411
+ TEST_HOST = "$(BUNDLE_LOADER)";
412
+ WRAPPER_EXTENSION = octest;
413
+ };
414
+ name = Debug;
415
+ };
416
+ 95DEE41717DBCFEB00FA04CC /* Release */ = {
417
+ isa = XCBuildConfiguration;
418
+ buildSettings = {
419
+ BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/XXPROJECT_TITLEXX.app/XXPROJECT_TITLEXX";
420
+ FRAMEWORK_SEARCH_PATHS = (
421
+ "\"$(SDKROOT)/Developer/Library/Frameworks\"",
422
+ "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"",
423
+ );
424
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
425
+ GCC_PREFIX_HEADER = "XXPROJECT_TITLEXX/XXPROJECT_TITLEXX-Prefix.pch";
426
+ INFOPLIST_FILE = "XXPROJECT_TITLEXX/XXPROJECT_TITLEXX-Info.plist";
427
+ PRODUCT_NAME = "$(TARGET_NAME)";
428
+ TEST_HOST = "$(BUNDLE_LOADER)";
429
+ WRAPPER_EXTENSION = octest;
430
+ };
431
+ name = Release;
432
+ };
433
+ /* End XCBuildConfiguration section */
434
+
435
+ /* Begin XCConfigurationList section */
436
+ 95DEE3DB17DBCFEA00FA04CC /* Build configuration list for PBXProject "XXPROJECT_TITLEXX" */ = {
437
+ isa = XCConfigurationList;
438
+ buildConfigurations = (
439
+ 95DEE41017DBCFEB00FA04CC /* Debug */,
440
+ 95DEE41117DBCFEB00FA04CC /* Release */,
441
+ );
442
+ defaultConfigurationIsVisible = 0;
443
+ defaultConfigurationName = Release;
444
+ };
445
+ 95DEE41217DBCFEB00FA04CC /* Build configuration list for PBXNativeTarget "XXPROJECT_TITLEXX" */ = {
446
+ isa = XCConfigurationList;
447
+ buildConfigurations = (
448
+ 95DEE41317DBCFEB00FA04CC /* Debug */,
449
+ 95DEE41417DBCFEB00FA04CC /* Release */,
450
+ );
451
+ defaultConfigurationIsVisible = 0;
452
+ defaultConfigurationName = Release;
453
+ };
454
+ 95DEE41517DBCFEB00FA04CC /* Build configuration list for PBXNativeTarget "XXPROJECT_TITLEXXTests" */ = {
455
+ isa = XCConfigurationList;
456
+ buildConfigurations = (
457
+ 95DEE41617DBCFEB00FA04CC /* Debug */,
458
+ 95DEE41717DBCFEB00FA04CC /* Release */,
459
+ );
460
+ defaultConfigurationIsVisible = 0;
461
+ defaultConfigurationName = Release;
462
+ };
463
+ /* End XCConfigurationList section */
464
+ };
465
+ rootObject = 95DEE3D817DBCFEA00FA04CC /* Project object */;
466
+ }
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Workspace
3
+ version = "1.0">
4
+ <FileRef
5
+ location = "self:XXPROJECT_TITLEXX.xcodeproj">
6
+ </FileRef>
7
+ </Workspace>
@@ -0,0 +1,22 @@
1
+ //
2
+ // XXPROJECT_TITLEXX
3
+ //
4
+ // Copyright (c) XXYEARXX XXORGANIZATION_NAMEXX. All rights reserved.
5
+ //
6
+
7
+ #import <SenTestingKit/SenTestingKit.h>
8
+ #import "XXCLASS_PREFIXXXRootViewController.h"
9
+
10
+ @interface XXPROJECT_TITLEXXTests : SenTestCase
11
+ @end
12
+
13
+ @implementation XXPROJECT_TITLEXXTests
14
+
15
+ - (void)testExample
16
+ {
17
+ NSString *runtimeIdentifier = [[NSBundle bundleForClass:[XXCLASS_PREFIXXXRootViewController class]] bundleIdentifier];
18
+ NSString *klippInsertedIdentifier = @"XXBUNDLE_IDXX.develop";
19
+ STAssertTrue([runtimeIdentifier isEqualToString:klippInsertedIdentifier], @"Even test code is processed by Klipp");
20
+ }
21
+
22
+ @end
@@ -0,0 +1,15 @@
1
+ spec 'Interactive' do |s|
2
+
3
+ s.token :SUBJECT_UNDER_TEST do |t|
4
+ t.comment = "Subject under test (usually a class name)"
5
+ t.validation = /^[A-Z][A-Za-z0-9]{4,}$/
6
+ t.validation_hint = 'Prefixed, no spaces, at least 4 characters long'
7
+ end
8
+
9
+ s.token :TOGGLE do |t|
10
+ t.comment = "Toggle value (to insert in any filename or string containing 'XXTOGGLEXX')"
11
+ t.type = :bool
12
+ # t.bool_strings = ['NO','YES']
13
+ end
14
+
15
+ end
@@ -0,0 +1,15 @@
1
+ #import <SenTestingKit/SenTestingKit.h>
2
+
3
+ #define HC_SHORTHAND
4
+
5
+ @interface XXSUBJECT_UNDER_TESTXXTests : SenTestCase
6
+ @end
7
+
8
+ @implementation XXSUBJECT_UNDER_TESTXXTests
9
+
10
+ - (void)test_...
11
+ {
12
+ assertThat(@YES, is(@NO));
13
+ }
14
+
15
+ @end
@@ -21,4 +21,12 @@ describe Klipp::Configuration do
21
21
 
22
22
  end
23
23
 
24
+ context 'with root dir pointing to fixtures' do
25
+
26
+ before do
27
+ Klipp::Configuration.stubs(:root_dir).returns(File.join(File.dirname(__dir__), 'fixtures'))
28
+ end
29
+
30
+ end
31
+
24
32
  end