lanekit 0.4.3 → 0.4.5

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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZjQ0M2RiNGY0MjRjMmRiMTQ0NTFjZWIwNTM3NGFhOTU2MGE4Yzg5OQ==
4
+ NmFkMWQ4YjgyOTU4MTMzZmE3M2NiMjJlYWJmMTBkNWZmZWZiM2Q5Nw==
5
5
  data.tar.gz: !binary |-
6
- ODc4MWRmZjgyYjdkNDMyZTE5MzUyZjdjZGY4OTYzZTJiMzUwNzkzZQ==
6
+ YWM2NGM0OGQwODFiNzJiNzhjNzczYzE2YTdhNTE2YWRiMWQ4MjE1Yw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MmRmOTZlMzMzYmI4YTc2NWI1MjQ1NzcyYWY3NDVlZmFmMDE1YzIyZDk1ZTVl
10
- NDJlOGY3ZjVjZjNmYWM0ODM0NGI3ZjU4MWEyODhkNjZjZTNiNmZiMWZhZjQx
11
- MzVjNjZlNDFmNTAwY2JlYzZkMzFiN2RkOWMwOTc2MWMzMTlmYjI=
9
+ MjIxZmExODEwODU3YmQzYmVhZGNhYTY1ODc1YjVmMzg1MmZhMTBiNDc2ODJh
10
+ ZDFkNmNmYTQ1YWQ4NGMzYjI1OTI3YWQ5NDNkMTY4ZTFiMzJjMDgxZDBlMGE1
11
+ MzY3NGVlNjgxMDkxMWYzNTZkYzczMjhhOGRmMDlmNjkzNjBjMzg=
12
12
  data.tar.gz: !binary |-
13
- ZjY2N2MyNzc3ZWE5NDg1NWE5MGMwMzViYzU5ZTQ4OWYyOWNhMmE4MWRlOTMw
14
- MmM0OGZjODA2OTk1OTVkZTUyNTQ3OGRiMjRjMzU4YjVjMTBjOWVhYWFkODRk
15
- NmY5NWI4N2IyODI1YTAwODQyMjI3NmUwYmU0YjRiYjI4Njc0Yjg=
13
+ ZDFkODNlODIzYzhkZGUyOTNhNGU1OWExODEyNWM0NTI2NWE1ODIwM2I2Zjg4
14
+ YTU1MGE0NTRjYTcxYTBkMjI2YTRmZTFlOTYxZWI0ZWViZDcxNDJiMzI0MGQ1
15
+ NjgzNzgwMzE0MmIxYjczYTczODUzNjdmZTI5ZTJiODUwN2QzNWQ=
data/README.md CHANGED
@@ -23,32 +23,35 @@ including fixtures and tests. LaneKit is a command line app written in Ruby and
23
23
 
24
24
  ## How To Get Started
25
25
 
26
- 1. Install the LaneKit Ruby Gem from RubyGems.org
26
+ 1. Install the LaneKit Ruby Gem from RubyGems.org on the command line:
27
27
 
28
28
  $ gem install lanekit
29
- Successfully installed lanekit-x.x.x
29
+ Successfully installed lanekit-0.4.4
30
+ $ lanekit -v
31
+ LaneKit 0.4.4
30
32
 
31
- 2. LaneKit is ready to use
33
+ 2. LaneKit is ready to use.
32
34
 
33
35
  ## Example Usage
34
36
 
35
- ### Add a new model called Video to an existing Xcode project.
36
-
37
- $ lanekit generate model Video duration:string headline:string id:integer image:string location:string
38
-
39
- create Classes/Models
40
- create Classes/Tests/Fixtures
41
- create Classes/Tests/Models
42
- create Classes/Models/Video.h
43
- create Classes/Models/Video.m
44
- create Classes/Tests/Fixtures/VideoFixtures.h
45
- create Classes/Tests/Fixtures/VideoFixtures.m
46
- create Classes/Tests/Fixtures/VideoFixtures.one.json
47
- create Classes/Tests/Fixtures/VideoFixtures.two.json
48
- create Classes/Tests/Models/VideoTest.h
49
- create Classes/Tests/Models/VideoTest.m
50
- create Classes/Models/LKModel.h
51
- create Classes/Models/LKModel.m
37
+ ### Add a new model called Video to an existing Xcode project:
38
+
39
+ $ lanekit generate model Video headline:string duration:string id:integer image:string itemDate:date location:string
40
+
41
+ create SportsFrames/SportsFrames/Models
42
+ create SportsFrames/SportsFramesTests/Fixtures
43
+ create SportsFrames/SportsFramesTests/Models
44
+ create SportsFrames/SportsFramesTests/Resources
45
+ create SportsFrames/SportsFrames/Models/Video.h
46
+ create SportsFrames/SportsFrames/Models/Video.m
47
+ create SportsFrames/SportsFramesTests/Fixtures/VideoFixtures.h
48
+ create SportsFrames/SportsFramesTests/Fixtures/VideoFixtures.m
49
+ create SportsFrames/SportsFramesTests/Resources/VideoFixtures.one.json
50
+ create SportsFrames/SportsFramesTests/Resources/VideoFixtures.two.json
51
+ create SportsFrames/SportsFramesTests/Models/VideoTest.h
52
+ create SportsFrames/SportsFramesTests/Models/VideoTest.m
53
+ create SportsFrames/SportsFrames/Models/LKModel.h
54
+ create SportsFrames/SportsFrames/Models/LKModel.m
52
55
 
53
56
  and here is the Objective-C header file that was generated by LaneKit:
54
57
 
@@ -56,20 +59,23 @@ and here is the Objective-C header file that was generated by LaneKit:
56
59
  //
57
60
  // Video.h
58
61
  //
59
- // This model was created on 2013-10-20 by LaneKit v0.3.0.
62
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
63
+ //
64
+ // This model was created on 2014-01-11 by LaneKit v0.4.4.
60
65
  //
61
66
  // The following LaneKit command was used to generate this file:
62
- // lanekit generate model Video duration:string headline:string id:integer image:string location:string
67
+ // lanekit generate model Video headline:string duration:string id:integer image:string itemDate:date location:string
63
68
  //
64
69
 
65
70
  #import "LKModel.h"
66
71
 
67
72
  @interface Video : LKModel
68
73
 
69
- @property (nonatomic,strong) NSString *duration;
70
74
  @property (nonatomic,strong) NSString *headline;
75
+ @property (nonatomic,strong) NSString *duration;
71
76
  @property (nonatomic,strong) NSNumber *id;
72
77
  @property (nonatomic,strong) NSString *image;
78
+ @property (nonatomic,strong) NSDate *itemDate;
73
79
  @property (nonatomic,strong) NSString *location;
74
80
 
75
81
  @end
@@ -81,38 +87,44 @@ and here is the Objective-C .m file that was generated by LaneKit:
81
87
  //
82
88
  // Video.m
83
89
  //
84
- // This model was created on 2013-10-20 by LaneKit v0.3.0.
90
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
91
+ //
92
+ // This model was created on 2014-01-11 by LaneKit v0.4.4.
85
93
  //
86
94
  // The following LaneKit command was used to generate this file:
87
- // lanekit generate model Video duration:string headline:string id:integer image:string location:string
95
+ // lanekit generate model Video headline:string duration:string id:integer image:string itemDate:date location:string
88
96
  //
89
97
 
90
98
  #import "Video.h"
91
99
 
92
100
  @implementation Video
93
101
 
94
- // Dictionary to convert self to JSON
102
+ #pragma mark LKModel overrides
103
+
104
+ // Dictionary to convert self to JSON/XML. For XML mappings, add .text to the end of the destination attribute name like this: "title.text".
95
105
  + (NSDictionary *)dictionaryForRequestMappings
96
106
  {
97
107
  return @{
98
108
  // source key path : destination attribute name
99
- @"duration": @"duration",
100
109
  @"headline": @"headline",
110
+ @"duration": @"duration",
101
111
  @"id": @"id",
102
112
  @"image": @"image",
113
+ @"itemDate": @"itemDate",
103
114
  @"location": @"location"
104
115
  };
105
116
  }
106
117
 
107
- // Dictionary to convert JSON to self
118
+ // Dictionary to convert JSON/XML to self. For XML mappings, add .text to the end of the key path like this: "title.text".
108
119
  + (NSDictionary *)dictionaryForResponseMappings
109
120
  {
110
121
  return @{
111
122
  // source key path : destination attribute name
112
- @"duration": @"duration",
113
123
  @"headline": @"headline",
124
+ @"duration": @"duration",
114
125
  @"id": @"id",
115
126
  @"image": @"image",
127
+ @"itemDate": @"itemDate",
116
128
  @"location": @"location"
117
129
  };
118
130
  }
@@ -122,6 +134,11 @@ and here is the Objective-C .m file that was generated by LaneKit:
122
134
  return @"video";
123
135
  }
124
136
 
137
+ - (NSString *)descriptionForDisplay
138
+ {
139
+ return [NSString stringWithFormat:@"%@", self.headline];
140
+ }
141
+
125
142
  @end
126
143
  ```
127
144
 
@@ -131,7 +148,12 @@ and here is the unit test fixtures file that was generated by LaneKit:
131
148
  //
132
149
  // VideoFixtures.m
133
150
  //
134
- // This model fixture was created on 2013-08-11 by LaneKit v0.2.0.
151
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
152
+ //
153
+ // This model fixture was created on 2014-01-11 by LaneKit v0.4.4.
154
+ //
155
+ // The following LaneKit command was used to generate this file:
156
+ // lanekit generate model Video headline:string duration:string id:integer image:string itemDate:date location:string
135
157
  //
136
158
 
137
159
  #import "VideoFixtures.h"
@@ -142,8 +164,8 @@ and here is the unit test fixtures file that was generated by LaneKit:
142
164
  {
143
165
  Video *video = Video.new;
144
166
 
145
- video.duration = @"MyString";
146
167
  video.headline = @"MyString";
168
+ video.duration = @"MyString";
147
169
  video.id = [NSNumber numberWithInteger:1];
148
170
  video.image = @"MyString";
149
171
  video.itemDate = NSDate.new;
@@ -156,8 +178,8 @@ and here is the unit test fixtures file that was generated by LaneKit:
156
178
  {
157
179
  Video *video = Video.new;
158
180
 
159
- video.duration = @"MyString";
160
181
  video.headline = @"MyString";
182
+ video.duration = @"MyString";
161
183
  video.id = [NSNumber numberWithInteger:1];
162
184
  video.image = @"MyString";
163
185
  video.itemDate = NSDate.new;
@@ -169,13 +191,13 @@ and here is the unit test fixtures file that was generated by LaneKit:
169
191
  @end
170
192
  ```
171
193
 
172
- and here is the RestKit compatible JSON fixture file that was generated by LaneKit:
194
+ and here is a RestKit compatible JSON fixture file that was generated by LaneKit:
173
195
 
174
196
  ```json
175
197
  {
176
198
  "video": {
177
- "duration": "MyString",
178
199
  "headline": "MyString",
200
+ "duration": "MyString",
179
201
  "id": "1",
180
202
  "image": "MyString",
181
203
  "itemDate": "03/01/2012",
@@ -184,7 +206,7 @@ and here is the RestKit compatible JSON fixture file that was generated by LaneK
184
206
  }
185
207
  ```
186
208
 
187
- and here is a unit test that was generated in Models/VideoTest.m by LaneKit:
209
+ and here is part of a unit test that was generated in Models/VideoTest.m by LaneKit:
188
210
 
189
211
  ```objective-c
190
212
  - (void)testVideoNewOne
@@ -192,11 +214,34 @@ and here is a unit test that was generated in Models/VideoTest.m by LaneKit:
192
214
  Video *video = VideoFixtures.one;
193
215
  STAssertNotNil(video, @"video is nil");
194
216
 
217
+ STAssertTrue([video.headline isEqualToString:@"MyString"], @"headline not correct value");
195
218
  STAssertTrue([video.duration isEqualToString:@"MyString"], @"duration not correct value");
219
+ STAssertTrue(video.id.integerValue == [NSNumber numberWithInteger:1].integerValue, @"id not [NSNumber numberWithInteger:1]");
220
+ STAssertTrue([video.image isEqualToString:@"MyString"], @"image not correct value");
221
+ STAssertNotNil(video.itemDate, @"itemDate is nil");
222
+ STAssertTrue([video.location isEqualToString:@"MyString"], @"location not correct value");
223
+ }
224
+
225
+ - (void)testVideoNewTwo
226
+ {
227
+ Video *video = VideoFixtures.two;
228
+ STAssertNotNil(video, @"video is nil");
229
+
196
230
  STAssertTrue([video.headline isEqualToString:@"MyString"], @"headline not correct value");
231
+ STAssertTrue([video.duration isEqualToString:@"MyString"], @"duration not correct value");
197
232
  STAssertTrue(video.id.integerValue == [NSNumber numberWithInteger:1].integerValue, @"id not [NSNumber numberWithInteger:1]");
198
233
  STAssertTrue([video.image isEqualToString:@"MyString"], @"image not correct value");
199
234
  STAssertNotNil(video.itemDate, @"itemDate is nil");
235
+ STAssertTrue([video.location isEqualToString:@"MyString"], @"location not correct value");
236
+ }
237
+
238
+ - (void)testMapping
239
+ {
240
+ RKObjectMapping *requestMapping = [Video requestMapping];
241
+ STAssertNotNil(requestMapping, @"[Video requestMapping] returned nil.");
242
+
243
+ RKObjectMapping *responseMapping = [Video responseMapping];
244
+ STAssertNotNil(responseMapping, @"[Video responseMapping] returned nil.");
200
245
  }
201
246
  ```
202
247
 
@@ -293,18 +338,14 @@ This will display the Contents model that is a list of videos.
293
338
  Installing UrbanAirship-iOS-SDK (3.0.1)
294
339
 
295
340
  ### Sample App
296
- The SportsFrames app is a fully functional sample app using RestKit created to demonstrate the use of LaneKit in a real world app. It
341
+ The [SportsFrames](https://github.com/larryaasen/SportsFrames) app is a fully functional iOS sample app using RestKit created to demonstrate the use of LaneKit in a real world app. It
297
342
  has models and resource providers that are generated from LaneKit.
298
343
  Download the code from [GitHub](https://github.com/larryaasen/SportsFrames).
299
344
 
300
345
  ## Credits
301
346
 
302
- LaneKit was created by [Larry Aasen](https://github.com/larryaasen).
303
-
304
- ## Contact
305
-
306
- Follow Larry Aasen on Twitter [@LarryAasen](https://twitter.com/LarryAasen).
347
+ LaneKit was created by [Larry Aasen](https://github.com/larryaasen). Follow Larry Aasen on Twitter [@LarryAasen](https://twitter.com/LarryAasen).
307
348
 
308
349
  ## License
309
350
 
310
- LaneKit is available under the MIT license. See the LICENSE file for more info.
351
+ LaneKit is available under the MIT license. See the [LICENSE](https://github.com/larryaasen/LaneKit/blob/master/LICENSE) file for more info.
@@ -1,3 +1,3 @@
1
1
  module LaneKit
2
- VERSION = "0.4.3"
2
+ VERSION = "0.4.5"
3
3
  end
@@ -1,6 +1,8 @@
1
1
  //
2
2
  // <%=@register_class%>.h
3
3
  //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
4
6
  // This model was created on <%=config[:generate_date]%> by LaneKit v<%=config[:lanekit_version]%>.
5
7
  //
6
8
  // The following LaneKit command was used to generate this file:
@@ -1,6 +1,8 @@
1
1
  //
2
2
  // <%=@register_class%>.m
3
3
  //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
4
6
  // This model was created on <%=config[:generate_date]%> by LaneKit v<%=config[:lanekit_version]%>.
5
7
  //
6
8
  // The following LaneKit command was used to generate this file:
@@ -0,0 +1,15 @@
1
+ //
2
+ // NSObject+LKConventions.h
3
+ //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
6
+
7
+ #import <Foundation/Foundation.h>
8
+
9
+ @interface NSObject (LKConventions)
10
+ + (NSSet *)allPropertyNames;
11
+ + (NSString *)topPropertyNameByConvention;
12
+
13
+ - (id)topPropertyValueByConvention;
14
+ - (NSString *)descriptionOfTopProperty;
15
+ @end
@@ -0,0 +1,79 @@
1
+ //
2
+ // NSObject+LKConventions.m
3
+ //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
6
+ // Example:
7
+ // cell.textLabel.text = [model descriptionOfTopProperty];
8
+
9
+ //
10
+
11
+ #import "NSObject+LKConventions.h"
12
+ #import<objc/runtime.h>
13
+
14
+ @implementation NSObject (LKConventions)
15
+
16
+ // Returns an array of all of property names in this class.
17
+ + (NSSet *)allPropertyNames
18
+ {
19
+ unsigned count;
20
+ objc_property_t *propertyList = class_copyPropertyList([self class], &count);
21
+
22
+ NSMutableSet *properties = NSMutableSet.set;
23
+
24
+ for (unsigned zz=0; zz<count; zz++)
25
+ {
26
+ objc_property_t property = propertyList[zz];
27
+ NSString *name = [NSString stringWithUTF8String:property_getName(property)];
28
+ [properties addObject:name];
29
+ }
30
+
31
+ free(propertyList);
32
+
33
+ return [properties copy];
34
+ }
35
+
36
+ // Returns the name of one of these properties searched in this order: name, title, headline, displayName, id.
37
+ + (NSString *)topPropertyNameByConvention
38
+ {
39
+ NSArray *conventionalNames = @[@"name", @"title", @"headline", @"displayname", @"id"];
40
+
41
+ NSSet *propertyNames = [self allPropertyNames];
42
+ NSString *topName = nil;
43
+ for (NSString *name in conventionalNames)
44
+ {
45
+ if ([propertyNames containsObject:name])
46
+ {
47
+ topName = name;
48
+ break;
49
+ }
50
+ }
51
+
52
+ return topName;
53
+ }
54
+
55
+ // Returns the value of the +[self topPropertyNameByConvention] property, or -[self description].
56
+ - (id)topPropertyValueByConvention
57
+ {
58
+ id propertyValue = nil;
59
+ NSString *propertyName = [[self class] topPropertyNameByConvention];
60
+ if (propertyName)
61
+ {
62
+ propertyValue = [self valueForKey:propertyName];
63
+ }
64
+ else
65
+ {
66
+ propertyValue = [self description];
67
+ }
68
+ return propertyValue;
69
+ }
70
+
71
+ // Returns the value of one of these properties name, title, headline, displayName, id, or description.
72
+ - (NSString *)descriptionOfTopProperty
73
+ {
74
+ id value = [self topPropertyValueByConvention];
75
+ NSString *description = [NSString stringWithFormat:@"%@", value];
76
+ return description;
77
+ }
78
+
79
+ @end
@@ -22,6 +22,7 @@
22
22
  46C411921824966400B19AB2 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 461263C6180B401300771CF8 /* UIKit.framework */; };
23
23
  46C411A21824977D00B19AB2 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 461263E4180B401300771CF8 /* InfoPlist.strings */; };
24
24
  46C411A51824995C00B19AB2 /* lanekit-ios-projectTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 46C411A41824995C00B19AB2 /* lanekit-ios-projectTests.m */; };
25
+ 46F02272183F752700287EE2 /* NSObject+LKConventions.m in Sources */ = {isa = PBXBuildFile; fileRef = 46F02271183F752700287EE2 /* NSObject+LKConventions.m */; };
25
26
  /* End PBXBuildFile section */
26
27
 
27
28
  /* Begin PBXContainerItemProxy section */
@@ -55,6 +56,8 @@
55
56
  46C4118F1824966400B19AB2 /* lanekit-ios-projectTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "lanekit-ios-projectTests.octest"; sourceTree = BUILT_PRODUCTS_DIR; };
56
57
  46C411A41824995C00B19AB2 /* lanekit-ios-projectTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "lanekit-ios-projectTests.m"; sourceTree = "<group>"; };
57
58
  46C411A618249A9600B19AB2 /* lanekit-ios-projectTests-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "lanekit-ios-projectTests-Prefix.pch"; sourceTree = "<group>"; };
59
+ 46F02270183F752700287EE2 /* NSObject+LKConventions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSObject+LKConventions.h"; path = "Helpers/NSObject+LKConventions.h"; sourceTree = "<group>"; };
60
+ 46F02271183F752700287EE2 /* NSObject+LKConventions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSObject+LKConventions.m"; path = "Helpers/NSObject+LKConventions.m"; sourceTree = "<group>"; };
58
61
  /* End PBXFileReference section */
59
62
 
60
63
  /* Begin PBXFrameworksBuildPhase section */
@@ -115,6 +118,7 @@
115
118
  isa = PBXGroup;
116
119
  children = (
117
120
  466CCB7A18192CDC0028AD47 /* Controllers */,
121
+ 46F0226F183F750A00287EE2 /* Helpers */,
118
122
  466CCB7918192CD50028AD47 /* Models */,
119
123
  466CCB7C18192CF30028AD47 /* Resources */,
120
124
  461263C9180B401300771CF8 /* Supporting Files */,
@@ -211,6 +215,15 @@
211
215
  name = Resources;
212
216
  sourceTree = "<group>";
213
217
  };
218
+ 46F0226F183F750A00287EE2 /* Helpers */ = {
219
+ isa = PBXGroup;
220
+ children = (
221
+ 46F02270183F752700287EE2 /* NSObject+LKConventions.h */,
222
+ 46F02271183F752700287EE2 /* NSObject+LKConventions.m */,
223
+ );
224
+ name = Helpers;
225
+ sourceTree = "<group>";
226
+ };
214
227
  /* End PBXGroup section */
215
228
 
216
229
  /* Begin PBXNativeTarget section */
@@ -312,6 +325,7 @@
312
325
  buildActionMask = 2147483647;
313
326
  files = (
314
327
  461263CF180B401300771CF8 /* main.m in Sources */,
328
+ 46F02272183F752700287EE2 /* NSObject+LKConventions.m in Sources */,
315
329
  461263D3180B401300771CF8 /* LKAppDelegate.m in Sources */,
316
330
  );
317
331
  runOnlyForDeploymentPostprocessing = 0;
@@ -1,6 +1,8 @@
1
1
  //
2
2
  // <%=@model_file_name%>.h
3
3
  //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
4
6
  // This model was created on <%=config[:generate_date]%> by LaneKit v<%=config[:lanekit_version]%>.
5
7
  //
6
8
  // The following LaneKit command was used to generate this file:
@@ -1,6 +1,8 @@
1
1
  //
2
2
  // <%=@model_file_name%>.m
3
3
  //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
4
6
  // This model was created on <%=config[:generate_date]%> by LaneKit v<%=config[:lanekit_version]%>.
5
7
  //
6
8
  // The following LaneKit command was used to generate this file:
@@ -15,7 +17,9 @@
15
17
  // All properties in this NSManagedObject need to be defined with @dynamic<% @attributes.each do |attribute| %>
16
18
  @dynamic <%=attribute[:name]%>;<% end %><% end %>
17
19
 
18
- // Dictionary to convert self to JSON
20
+ #pragma mark LKModel overrides
21
+
22
+ // Dictionary to convert self to JSON/XML. For XML mappings, add .text to the end of the destination attribute name like this: "title.text".
19
23
  + (NSDictionary *)dictionaryForRequestMappings
20
24
  {
21
25
  return @{
@@ -24,7 +28,7 @@
24
28
  <% end %><% end %> };
25
29
  }
26
30
 
27
- // Dictionary to convert JSON to self
31
+ // Dictionary to convert JSON/XML to self. For XML mappings, add .text to the end of the key path like this: "title.text".
28
32
  + (NSDictionary *)dictionaryForResponseMappings
29
33
  {
30
34
  return @{
@@ -47,8 +51,6 @@
47
51
  <% end %><% end %> return mapping;
48
52
  }<% end %>
49
53
 
50
- #pragma mark LKModel overrides
51
-
52
54
  - (NSString *)descriptionForDisplay
53
55
  {<% if @first_string_attribute %>
54
56
  return [NSString stringWithFormat:@"%@", self.<%=@first_string_attribute%>];<% else %>
@@ -1,6 +1,8 @@
1
1
  //
2
2
  // <%=@model_base_file_name%>.h
3
3
  //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
4
6
  // This base model was created on <%=config[:generate_date]%> by LaneKit v<%=config[:lanekit_version]%>.
5
7
  //
6
8
  // The following LaneKit command was used to generate this file:
@@ -1,6 +1,8 @@
1
1
  //
2
2
  // <%=@model_base_file_name%>.m
3
3
  //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
4
6
  // This base model was created on <%=config[:generate_date]%> by LaneKit v<%=config[:lanekit_version]%>.
5
7
  //
6
8
  // The following LaneKit command was used to generate this file:
@@ -1,6 +1,8 @@
1
1
  //
2
2
  // <%=@model_fixtures_file_name%>.h
3
3
  //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
4
6
  // This model fixture was created on <%=config[:generate_date]%> by LaneKit v<%=config[:lanekit_version]%>.
5
7
  //
6
8
  // The following LaneKit command was used to generate this file:
@@ -1,6 +1,8 @@
1
1
  //
2
2
  // <%=@model_fixtures_file_name%>.m
3
3
  //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
4
6
  // This model fixture was created on <%=config[:generate_date]%> by LaneKit v<%=config[:lanekit_version]%>.
5
7
  //
6
8
  // The following LaneKit command was used to generate this file:
@@ -1,6 +1,8 @@
1
1
  //
2
2
  // <%=@model_tests_file_name%>.h
3
3
  //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
4
6
  // This model test was created on <%=config[:generate_date]%> by LaneKit v<%=config[:lanekit_version]%>.
5
7
  //
6
8
  // The following LaneKit command was used to generate this file:
@@ -1,6 +1,8 @@
1
1
  //
2
2
  // <%=@model_tests_file_name%>.m
3
3
  //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
4
6
  // This model test was created on <%=config[:generate_date]%> by LaneKit v<%=config[:lanekit_version]%>.
5
7
  //
6
8
  // The following LaneKit command was used to generate this file:
@@ -1,6 +1,8 @@
1
1
  //
2
2
  // <%=@provider_file_name%>.h
3
3
  //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
4
6
  // This provider was created on <%=config[:generate_date]%> by LaneKit v<%=config[:lanekit_version]%>.
5
7
  //
6
8
  // The following LaneKit command was used to generate this file:
@@ -1,6 +1,8 @@
1
1
  //
2
2
  // <%=@provider_file_name%>.m
3
3
  //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
4
6
  // This provider was created on <%=config[:generate_date]%> by LaneKit v<%=config[:lanekit_version]%>.
5
7
  //
6
8
  // The following LaneKit command was used to generate this file:
@@ -1,6 +1,8 @@
1
1
  //
2
2
  // <%=@provider_base_file_name%>.h
3
3
  //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
4
6
  // This base provider was created on <%=config[:generate_date]%> by LaneKit v<%=config[:lanekit_version]%>.
5
7
  //
6
8
  // The following LaneKit command was used to generate this file:
@@ -1,6 +1,8 @@
1
1
  //
2
2
  // <%=@provider_base_file_name%>.m
3
3
  //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
4
6
  // This base provider was created on <%=config[:generate_date]%> by LaneKit v<%=config[:lanekit_version]%>.
5
7
  //
6
8
  // The following LaneKit command was used to generate this file:
@@ -1,6 +1,8 @@
1
1
  //
2
2
  // <%=@controller_file_name%>.h
3
3
  //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
4
6
  // This model was created on <%=config[:generate_date]%> by LaneKit v<%=config[:lanekit_version]%>.
5
7
  //
6
8
  // The following LaneKit command was used to generate this file:
@@ -1,6 +1,8 @@
1
1
  //
2
2
  // <%=@controller_file_name%>.m
3
3
  //
4
+ // LaneKit is available under the MIT license. See the LICENSE file for more info.
5
+ //
4
6
  // This model was created on <%=config[:generate_date]%> by LaneKit v<%=config[:lanekit_version]%>.
5
7
  //
6
8
  // The following LaneKit command was used to generate this file:
@@ -9,6 +11,7 @@
9
11
 
10
12
  #import "<%=@controller_file_name%>.h"
11
13
  #import "<%=@provider_file_name%>.h"
14
+ #import "NSObject+LKConventions.h"
12
15
  <%if @register_class != "UITableViewCell" %>#import "<%=@register_class%>.h"
13
16
  <%end%>
14
17
  @interface <%=@controller_class_name%> ()
@@ -90,7 +93,7 @@
90
93
 
91
94
  // Configure the cell...
92
95
  LKModel *model = [self.<%=@model_name%> objectAtIndex:indexPath.row];
93
- cell.textLabel.text = [model descriptionForDisplay];
96
+ cell.textLabel.text = [model descriptionOfTopProperty];
94
97
 
95
98
  if ([model respondsToSelector:@selector(image)] && [cell respondsToSelector:@selector(imageView)])
96
99
  {
@@ -104,6 +107,12 @@
104
107
  return cell;
105
108
  }
106
109
 
110
+ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
111
+ {
112
+ LKModel *model = [self.<%=@model_name%> objectAtIndex:indexPath.row];
113
+ NSLog(@"[%@ %@] model selected: %@", [self description], NSStringFromSelector(_cmd), model);
114
+ }
115
+
107
116
  /*
108
117
  // Override to support conditional editing of the table view.
109
118
  - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lanekit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Larry Aasen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-13 00:00:00.000000000 Z
11
+ date: 2014-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocoapods
@@ -96,6 +96,8 @@ files:
96
96
  - lib/template/lanekit-ios-project/Lanefile
97
97
  - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project/Controllers/LKAppDelegate.h
98
98
  - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project/Controllers/LKAppDelegate.m
99
+ - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project/Helpers/NSObject+LKConventions.h
100
+ - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project/Helpers/NSObject+LKConventions.m
99
101
  - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project/Resources/Base.lproj/Main_iPad.storyboard
100
102
  - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project/Resources/Base.lproj/Main_iPhone.storyboard
101
103
  - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project/Resources/en.lproj/InfoPlist.strings