Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 567 lines (375 sloc) 22.078 kb
0219c22 @groue v1.0.0
authored
1 GRMustache Release Notes
2 ========================
3
af03738 @groue Typo
authored
4 You can compare the performances of GRMustache versions at https://github.com/groue/GRMustacheBenchmark.
9b3ce86 @groue Link to benchmarks
authored
5
6c31018 @groue v3.0.1
authored
6 ## v3.0.1
7
8 Restored intended architectures: armv6+armv7+i386 for libGRMustache3-iOS, i386+x86_64 for libGRMustache3-MacOS.
9
eb5cff8 @groue v3.0.0
authored
10 ## v3.0.0
11
12 **There is no option**
13
14 Removed APIs:
15
16 ```objc
17 enum {
18 GRMustacheTemplateOptionNone,
19 GRMustacheTemplateOptionStrictBoolean
20 };
21
22 typedef NSUInteger GRMustacheTemplateOptions;
23
24 @interface GRMustacheTemplate: NSObject {
25 + (id)templateFromString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
26 + (id)templateFromContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
27 + (id)templateFromContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
28 + (id)templateFromResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
29 + (id)templateFromResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
30 + (NSString *)renderObject:(id)object fromString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
31 + (NSString *)renderObject:(id)object fromContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
32 + (NSString *)renderObject:(id)object fromContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
33 + (NSString *)renderObject:(id)object fromResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
34 + (NSString *)renderObject:(id)object fromResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
35 @end
36
37 @protocol GRMustacheTemplateRepositoryDataSource <NSObject>
38 + (id)templateRepositoryWithBaseURL:(NSURL *)URL options:(GRMustacheTemplateOptions)options;
39 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
40 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
41 + (id)templateRepositoryWithDirectory:(NSString *)path options:(GRMustacheTemplateOptions)options;
42 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
43 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
44 + (id)templateRepositoryWithBundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options;
45 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
46 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
47 + (id)templateRepositoryWithPartialsDictionary:(NSDictionary *)partialsDictionary options:(GRMustacheTemplateOptions)options;
48 + (id)templateRepositoryWithOptions:(GRMustacheTemplateOptions)options;
49 @end
50 ```
51
ed879f3 @groue v2.0.0
authored
52 ## v2.0.0
53
54 **Performance improvements and API simplification**
55
1f91c52 @groue v2.0.0 RELEASE_NOTES
authored
56 ### New APIs:
57
58 ```objc
59 enum {
3e006cc @groue wording
authored
60 // New option for processing `BOOL` and `char` properties as numbers
1f91c52 @groue v2.0.0 RELEASE_NOTES
authored
61 GRMustacheTemplateOptionStrictBoolean = 1
62 }
63
64 @protocol GRMustacheHelper<NSObject>
65 @required
66 // New required method
67 - (NSString *)renderSection:(GRMustacheSection *)section;
68 @end
69
70 // New GRMustacheHelper class
71 @interface GRMustacheHelper: NSObject<GRMustacheHelper>
72 + (id)helperWithBlock:(NSString *(^)(GRMustacheSection* section))block;
73 @end
74
75 // New GRMustacheSection properties and methods
76 @interface GRMustacheSection: NSObject
77 @property (nonatomic, readonly) NSString *innerTemplateString;
78 @property (nonatomic, readonly) id renderingContext;
79 - (NSString *)render;
80 @end
81 ```
82
83 ### Removed APIs and behaviors
84
85 ```objc
86 enum {
87 // GRMustache is now compliant by default to the Mustache specification:
88 GRMustacheTemplateOptionMustacheSpecCompatibility = 1
89 }
90
91 // NSErrors with GRMustacheErrorDomain now store the line number in localizedDescription.
92 extern NSString* const GRMustacheErrorLine;
93
94 @interface GRMustache: NSObject
95 // This global state has been replaced by the GRMustacheTemplateOptionStrictBoolean option:
96 + (BOOL)strictBooleanMode:
97 + (void)setStrictBooleanMode:(BOOL)strictBooleanMode;
98 @end
99
100 @protocol GRMustacheHelper<NSObject>
101 @required
102 // Replaced by renderSection: method
103 - (NSString *)renderSection:(GRMustacheSection *)section withContext:(id)context;
104 @end
105
106 // Replaced by the GRMustacheHelper class:
107 @interface GRMustacheBlockHelper: NSObject<GRMustacheHelper> {
108 + (id)helperWithBlock:(NSString *(^)(GRMustacheSection* section, id context))block;
109 @end
110
111 @interface GRMustacheSection: NSObject
112 // Replaced by the innerTemplateString property
113 @property (nonatomic, readonly) NSString *templateString;
114 // See the new render method
115 - (NSString *)renderObject:(id)object;
116 - (NSString *)renderObjects:(id)object, ...;
117 @end
118 ```
119
8506da0 @groue Link to http://handlebarsjs.com/
authored
120 GRMustache1 used to parse and interpret [Handlebars](http://handlebarsjs.com/) tags such as `{{../foo/bar}}`. GRMustache2 does no longer parse those tags.
1f91c52 @groue v2.0.0 RELEASE_NOTES
authored
121
122 GRMustache1 used to parse and interpret `this` identifier is tags such as `{{this.foo}}`. GRMustache2 does no longer parse the `this` identifier.
123
5672e6d @groue wording
authored
124 GRMustache1 used to look for implementations of the `localizeSection:inContext:` selector when rendering a `{{#localize}}...{{/localize}}` section. GRMustache2 relies on the GRMustacheHelper protocol only when rendering Mustache lambda sections.
1f91c52 @groue v2.0.0 RELEASE_NOTES
authored
125
126
7298c29 @groue v1.13.1
authored
127 ## v1.13.1
128
129 The deprecated class GRMustacheTemplateLoader was broken by 1.13.0. Deprecated does not mean unavailable: it is restored.
130
5e5ea55 @groue v1.13.0
authored
131 ## v1.13.0
132
133 Deprecated class (use [GRMustacheTemplateRepository templateRepositoryWithPartialsDictionary:], or the new GRMustacheTemplateRepositoryDataSource protocol instead):
134
135 - `GRMustacheTemplateLoader`
136
137 New class:
138
139 - `GRMustacheTemplateRepository`
140
141 ```objc
142 @interface GRMustacheTemplateRepository : NSObject
143 @property (nonatomic, assign) id<GRMustacheTemplateRepositoryDataSource> dataSource;
144
145 + (id)templateRepository;
146 + (id)templateRepositoryWithOptions:(GRMustacheTemplateOptions)options;
147
148 + (id)templateRepositoryWithBaseURL:(NSURL *)URL;
149 + (id)templateRepositoryWithBaseURL:(NSURL *)URL options:(GRMustacheTemplateOptions)options;
150 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext;
151 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
152 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext;
153 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding;
154 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
155
156 + (id)templateRepositoryWithDirectory:(NSString *)path;
157 + (id)templateRepositoryWithDirectory:(NSString *)path options:(GRMustacheTemplateOptions)options;
158 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext;
159 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
160 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding;
161 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
162
163 + (id)templateRepositoryWithBundle:(NSBundle *)bundle;
164 + (id)templateRepositoryWithBundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options;
165 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext;
166 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
167 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding;
168 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
169
170 + (id)templateRepositoryWithPartialsDictionary:(NSDictionary *)partialsDictionary;
171 + (id)templateRepositoryWithPartialsDictionary:(NSDictionary *)partialsDictionary options:(GRMustacheTemplateOptions)options;
172
173 - (GRMustacheTemplate *)templateForName:(NSString *)name error:(NSError **)outError;
174 - (GRMustacheTemplate *)templateFromString:(NSString *)templateString error:(NSError **)outError;
175 ```
176
177 New protocol:
178
179 - `GRMustacheTemplateRepositoryDataSource`
180
181 ```objc
182 @protocol GRMustacheTemplateRepositoryDataSource <NSObject>
183 @required
184 - (id)templateRepository:(GRMustacheTemplateRepository *)templateRepository templateIDForName:(NSString *)name relativeToTemplateID:(id)templateID;
185 - (NSString *)templateRepository:(GRMustacheTemplateRepository *)templateRepository templateStringForTemplateID:(id)templateID error:(NSError **)outError;
186 @end
187 ```
188
6e1642d @groue v1.12.2
authored
189 ## v1.12.2
190
191 Restore performances of v1.12.0
192
71638db @groue v1.12.1
authored
193 ## v1.12.1
194
195 Easier template debugging with `[GRMustacheInvocation description]`
196
299d3b1 @groue v1.12.0
authored
197 ## v1.12
198
199 - **GRMustacheTemplateDelegate protocol**
200
201 Deprecated classes:
202
203 - `GRMustacheNumberFormatterHelper`
204 - `GRMustacheDateFormatterHelper`
205
d3b5626 @groue v1.11.2
authored
206 ## v1.11.2
207
2cfb609 @groue wording
authored
208 BOOL property custom getters can be used to control boolean sections.
d3b5626 @groue v1.11.2
authored
209
5d95cad @groue v1.11.1
authored
210 ## v1.11.1
211
212 Avoid deprecation warning in GRMustache headers.
213
92c07e2 @groue v1.11.0
authored
214 ## v1.11
215
216 **API cleanup**
217
218 New GRMustacheTemplateLoader methods:
219
5e5ea55 @groue v1.13.0
authored
220 ```objc
221 - (GRMustacheTemplate *)templateWithName:(NSString *)name error:(NSError **)outError;
222 - (GRMustacheTemplate *)templateFromString:(NSString *)templateString error:(NSError **)outError;
223 ```
92c07e2 @groue v1.11.0
authored
224
225 New GRMustacheTemplate methods:
226
5e5ea55 @groue v1.13.0
authored
227 ```objc
228 + (id)templateFromString:(NSString *)templateString error:(NSError **)outError;
229 + (id)templateFromString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
230 + (id)templateFromContentsOfFile:(NSString *)path error:(NSError **)outError;
231 + (id)templateFromContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
232 + (id)templateFromResource:(NSString *)name bundle:(NSBundle *)bundle error:(NSError **)outError;
233 + (id)templateFromResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
234 + (id)templateFromResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle error:(NSError **)outError;
235 + (id)templateFromResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
236 + (id)templateFromContentsOfURL:(NSURL *)url error:(NSError **)outError;
237 + (id)templateFromContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
238 ```
92c07e2 @groue v1.11.0
authored
239
240 Deprecated GRMustacheTemplateLoader methods (use `templateWithName:error:` and `templateFromString:error:` instead):
241
5e5ea55 @groue v1.13.0
authored
242 ```objc
243 - (GRMustacheTemplate *)parseTemplateNamed:(NSString *)name error:(NSError **)outError;
244 - (GRMustacheTemplate *)parseString:(NSString *)templateString error:(NSError **)outError;
245 ```
92c07e2 @groue v1.11.0
authored
246
247 Deprecated GRMustacheTemplate methods (replace `parse` with `templateFrom`):
248
5e5ea55 @groue v1.13.0
authored
249 ```objc
250 + (id)parseString:(NSString *)templateString error:(NSError **)outError;
251 + (id)parseString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
252 + (id)parseContentsOfFile:(NSString *)path error:(NSError **)outError;
253 + (id)parseContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
254 + (id)parseResource:(NSString *)name bundle:(NSBundle *)bundle error:(NSError **)outError;
255 + (id)parseResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
256 + (id)parseResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle error:(NSError **)outError;
257 + (id)parseResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
258 + (id)parseContentsOfURL:(NSURL *)url error:(NSError **)outError;
259 + (id)parseContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
260 ```
92c07e2 @groue v1.11.0
authored
261
d5730e5 @groue v1.10.3
authored
262 ## v1.10.3
263
264 Upgrade GRMustache, and get deprecation warnings when you use deprecated APIs. Your code will keep on running fine, though.
265
75eae3b @groue v1.10.2
authored
266 ## v1.10.2
267
268 Performance improvements
269
745be05 @groue v1.10.1
authored
270 ## v1.10.1
271
272 Performance improvements
273
31100d3 @groue v1.10.0
authored
274 ## v1.10
275
745be05 @groue v1.10.1
authored
276 **Improved Handlebars.js support and performance improvements**
31100d3 @groue v1.10.0
authored
277
745be05 @groue v1.10.1
authored
278 Now `{{foo/bar}}` and `{{foo.bar}}` syntaxes are both supported.
31100d3 @groue v1.10.0
authored
279
8020800 @groue v1.9.0
authored
280 ## v1.9
281
3293103 @groue Introduce GRMustacheNumberFormatterHelper
authored
282 - **Better lambda encapsulation with classes conforming to the GRMustacheHelper protocol.**
283 - **Format all numbers in a section with GRMustacheNumberFormatterHelper**
f52da9d @groue README+RELEASE_NOTES for GRMustacheNumberFormatterHelper and GRMustac…
authored
284 - **Format all dates in a section with GRMustacheDateFormatterHelper**
8020800 @groue v1.9.0
authored
285
286 New protocol:
287
3293103 @groue Introduce GRMustacheNumberFormatterHelper
authored
288 - `GRMustacheHelper`
289
5e5ea55 @groue v1.13.0
authored
290 ```objc
291 @protocol GRMustacheHelper<NSObject>
292 @required
293 - (NSString *)renderSection:(GRMustacheSection *)section withContext:(id)context AVAILABLE_GRMUSTACHE_VERSION_1_9_AND_LATER;
294 @end
295 ```
296
f52da9d @groue README+RELEASE_NOTES for GRMustacheNumberFormatterHelper and GRMustac…
authored
297 New classes:
3293103 @groue Introduce GRMustacheNumberFormatterHelper
authored
298
299 - `GRMustacheNumberFormatterHelper`
f52da9d @groue README+RELEASE_NOTES for GRMustacheNumberFormatterHelper and GRMustac…
authored
300 - `GRMustacheDateFormatterHelper`
8020800 @groue v1.9.0
authored
301
5e5ea55 @groue v1.13.0
authored
302 ```objc
303 @interface GRMustacheNumberFormatterHelper : NSObject<GRMustacheHelper>
304 @property (nonatomic, readonly, retain) NSNumberFormatter *numberFormatter;
305 + (id)helperWithNumberFormatter:(NSNumberFormatter *)numberFormatter;
306 @end
307
308 @interface GRMustacheDateFormatterHelper : NSObject<GRMustacheHelper>
309 @property (nonatomic, readonly, retain) NSDateFormatter *dateFormatter;
310 + (id)helperWithDateFormatter:(NSDateFormatter *)dateFormatter;
311 @end
312 ```
313
8704042 @groue v1.8.6
authored
314 ## v1.8.6
315
316 Fixed bug in [GRMustacheTemplate renderObjects:...]
317
d209bef @groue v1.8.5
authored
318 ## v1.8.5
319
320 Added missing symbols from lib/libGRMustache1-ios3.a
321
edf6200 @groue v1.8.4
authored
322 ## v1.8.4
323
d209bef @groue v1.8.5
authored
324 Added missing symbols from lib/libGRMustache1-ios3.a and lib/libGRMustache1-ios4.a
edf6200 @groue v1.8.4
authored
325
6a23fe6 @groue v1.8.3
authored
326 ## v1.8.3
327
328 Availability fixes.
329
8abbac9 @groue v1.8.2
authored
330 ## v1.8.2
331
332 Better testing of public API thanks to availability macros.
333
b643aa1 @groue v1.8.1
authored
334 ## v1.8.1
335
336 Bug fixes
337
18dc85c @groue v1.8.0
authored
338 ## v1.8
339
8abbac9 @groue v1.8.2
authored
340 **GRMustache now supports the [Mustache specification v1.1.2](https://github.com/mustache/spec).**
341
342 New type and enum:
343
5e5ea55 @groue v1.13.0
authored
344 ```objc
345 enum {
346 GRMustacheTemplateOptionNone = 0,
347 GRMustacheTemplateOptionMustacheSpecCompatibility = 0x01,
348 };
8abbac9 @groue v1.8.2
authored
349
5e5ea55 @groue v1.13.0
authored
350 typedef NSUInteger GRMustacheTemplateOptions;
351 ```
8abbac9 @groue v1.8.2
authored
352
353 New GRMustache methods:
354
5e5ea55 @groue v1.13.0
authored
355 ```objc
356 + (GRMustacheTemplateOptions)defaultTemplateOptions;
357 + (void)setDefaultTemplateOptions:(GRMustacheTemplateOptions)templateOptions;
358 ```
8abbac9 @groue v1.8.2
authored
359
360 New GRMustacheTemplate methods:
361
5e5ea55 @groue v1.13.0
authored
362 ```objc
363 + (id)parseString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
364 + (id)parseContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
365 + (id)parseContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
366 + (id)parseResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
367 + (id)parseResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
368 + (NSString *)renderObject:(id)object fromString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
369 + (NSString *)renderObject:(id)object fromContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
370 + (NSString *)renderObject:(id)object fromContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
371 + (NSString *)renderObject:(id)object fromResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
372 + (NSString *)renderObject:(id)object fromResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
373 ```
8abbac9 @groue v1.8.2
authored
374
375 New GRMustacheTemplateLoader methods:
376
5e5ea55 @groue v1.13.0
authored
377 ```objc
378 + (id)templateLoaderWithBaseURL:(NSURL *)url options:(GRMustacheTemplateOptions)options;
379 + (id)templateLoaderWithBaseURL:(NSURL *)url extension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
380 + (id)templateLoaderWithBaseURL:(NSURL *)url extension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
381 + (id)templateLoaderWithDirectory:(NSString *)path options:(GRMustacheTemplateOptions)options;
382 + (id)templateLoaderWithDirectory:(NSString *)path extension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
383 + (id)templateLoaderWithDirectory:(NSString *)path extension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
384 + (id)templateLoaderWithBundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options;
385 + (id)templateLoaderWithBundle:(NSBundle *)bundle extension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
386 + (id)templateLoaderWithBundle:(NSBundle *)bundle extension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
387 ```
8abbac9 @groue v1.8.2
authored
388
18dc85c @groue v1.8.0
authored
389
d08841f @groue v1.7.4
authored
390 ## v1.7.4
391
392 Bug fix: avoid crashing when one provides uninitialized NSError* to GRMustache.
393
8059b38 @groue v1.7.3
authored
394 ## v1.7.3
395
396 One no longer needs to add `-all_load` to the "Other Linker Flags" target option tu use GRMustache static libraries.
397
6d6e020 @groue v1.7.2
authored
398 ## v1.7.2
399
400 - Fixed [issue #6](https://github.com/groue/GRMustache/issues/6)
401 - `[GRMustache preventNSUndefinedKeyExceptionAttack]` no longer prevents the rendering of `nil`.
402
cd4de9d @groue v1.7.1
authored
403 ## v1.7.1
404
405 Added missing header file
406
e5d100a @groue v1.7.0
authored
407 ## v1.7.0
408
409 **GRMustache now ships as a static library.**
410
411 See the [Embedding](https://github.com/groue/GRMustache/wiki/Embedding) wiki page in order to see how to embed GRMustache in your project.
412
413 Besides, the NSUndefinedKeyException silencing is no longer activated by the DEBUG macro. You now have to explicitely call the `[GRMustache preventNSUndefinedKeyExceptionAttack]` method. For more details, see the [Avoid the NSUndefinedKeyException attack](https://github.com/groue/GRMustache/wiki/Avoid-the-NSUndefinedKeyException-attack) wiki page.
414
4373916 @groue v1.6.2
authored
415 ## v1.6.2
416
417 **LLVM3 compatibility**
418
f19ba84 @groue v1.6.1
authored
419 ## v1.6.1
420
421 The NSUndefinedKeyException silencing activated by the DEBUG macro applies to NSManagedObject instances (see the [Avoid the NSUndefinedKeyException attack](https://github.com/groue/GRMustache/wiki/Avoid-the-NSUndefinedKeyException-attack) wiki page).
422
6b1dbf7 @groue v1.6.0
authored
423 ## v1.6.0
424
425 **Reduced memory footprint**
426
8abbac9 @groue v1.8.2
authored
427 New GRMustacheTemplateLoader methods:
6b1dbf7 @groue v1.6.0
authored
428
5e5ea55 @groue v1.13.0
authored
429 ```objc
430 + (id)templateLoaderWithDirectory:(NSString *)path;
431 + (id)templateLoaderWithDirectory:(NSString *)path extension:(NSString *)ext;
432 + (id)templateLoaderWithDirectory:(NSString *)path extension:(NSString *)ext encoding:(NSStringEncoding)encoding;
433 ```
6b1dbf7 @groue v1.6.0
authored
434
8abbac9 @groue v1.8.2
authored
435 Deprecated GRMustacheTemplateLoader methods (replace `BasePath` with `Directory`):
6b1dbf7 @groue v1.6.0
authored
436
5e5ea55 @groue v1.13.0
authored
437 ```objc
438 + (id)templateLoaderWithBasePath:(NSString *)path;
439 + (id)templateLoaderWithBasePath:(NSString *)path extension:(NSString *)ext;
440 + (id)templateLoaderWithBasePath:(NSString *)path extension:(NSString *)ext encoding:(NSStringEncoding)encoding;
441 ```
6b1dbf7 @groue v1.6.0
authored
442
443 Bug fixes around the NSUndefinedKeyException handling when the `DEBUG` macro is set (thanks to [Mike Ash](http://www.mikeash.com/)).
444
499face @groue v1.5.2
authored
445 ## v1.5.2
446
f19ba84 @groue v1.6.1
authored
447 The `DEBUG` macro makes GRMustache raise much less NSUndefinedKeyException (see the [Avoid the NSUndefinedKeyException attack](https://github.com/groue/GRMustache/wiki/Avoid-the-NSUndefinedKeyException-attack) wiki page).
499face @groue v1.5.2
authored
448
e0a103f @groue v1.5.1
authored
449 ## v1.5.1
450
4031037 @groue RELEASE_NOTES wording
authored
451 Bug fixes
e0a103f @groue v1.5.1
authored
452
3de3613 @groue v1.5.0
authored
453 ## v1.5.0
0915e91 @groue v1.4.1
authored
454
4031037 @groue RELEASE_NOTES wording
authored
455 **API simplification**
456
c5761e8 @groue RELEASE_NOTES wording
authored
457 New GRMustacheTemplate method:
458
459 - `- (NSString *)renderObjects:(id)object, ...;`
460
461 New GRMustacheSection method:
462
463 - `- (NSString *)renderObjects:(id)object, ...;`
464
465 New class:
466
467 - `GRMustacheBlockHelper`
468
469 Deprecated class (use `id` instead when refering to a context, and use `renderObjects:` methods instead of instanciating one):
470
471 - `GRMustacheContext`
472
473 Deprecated function (use GRMustacheBlockHelper instead):
474
475 - `id GRMustacheLambdaBlockMake(NSString *(^block)(GRMustacheSection*, GRMustacheContext*));`
0915e91 @groue v1.4.1
authored
476
a1f2cf1 @groue v1.4.0
authored
477 ## v1.4.0
478
4031037 @groue RELEASE_NOTES wording
authored
479 **iOS 3.0 support**
c5761e8 @groue RELEASE_NOTES wording
authored
480
481 New `GRMustacheTemplate` methods:
482
483 - `+ (NSString *)renderObject:(id)object fromContentsOfFile:(NSString *)path error:(NSError **)outError;`
484 - `+ (id)parseContentsOfFile:(NSString *)path error:(NSError **)outError;`
485
8abbac9 @groue v1.8.2
authored
486 New `GRMustacheTemplateLoader` methods:
c5761e8 @groue RELEASE_NOTES wording
authored
487
488 - `+ (id)templateLoaderWithBasePath:(NSString *)path;`
489 - `+ (id)templateLoaderWithBasePath:(NSString *)path extension:(NSString *)ext;`
490 - `+ (id)templateLoaderWithBasePath:(NSString *)path extension:(NSString *)ext encoding:(NSStringEncoding)encoding;`
a1f2cf1 @groue v1.4.0
authored
491
de489d5 @groue v1.3.3
authored
492 ## v1.3.3
493
4031037 @groue RELEASE_NOTES wording
authored
494 Bug fixes
de489d5 @groue v1.3.3
authored
495
be39647 @groue v1.3.2
authored
496 ## v1.3.2
497
4031037 @groue RELEASE_NOTES wording
authored
498 Bug fixes
be39647 @groue v1.3.2
authored
499
7f1e927 @groue v1.3.1
authored
500 ## v1.3.1
501
4031037 @groue RELEASE_NOTES wording
authored
502 Bug fixes
7f1e927 @groue v1.3.1
authored
503
b03eb3c @groue v1.3.0
authored
504 ## v1.3.0
505
4031037 @groue RELEASE_NOTES wording
authored
506 **Block-less API for helpers.**
b03eb3c @groue v1.3.0
authored
507
c5761e8 @groue RELEASE_NOTES wording
authored
508 New classes:
509
510 - `GRMustacheContext`
511 - `GRMustacheSection`
b03eb3c @groue v1.3.0
authored
512
c5761e8 @groue RELEASE_NOTES wording
authored
513 New functions:
a368aaf @groue v1.2.1
authored
514
c5761e8 @groue RELEASE_NOTES wording
authored
515 - `id GRMustacheLambdaBlockMake(NSString *(^block)(GRMustacheSection*, GRMustacheContext*));`
516
517 Deprecated functions (use GRMustacheLambdaBlockMake instead):
518
519 - `GRMustacheLambda GRMustacheLambdaMake(NSString *(^block)(NSString *(^)(id object), id, NSString *));`
a368aaf @groue v1.2.1
authored
520
c88c5c6 @groue v1.2.0
authored
521 ## v1.2.0
522
4031037 @groue RELEASE_NOTES wording
authored
523 **iOS 4.0 support**
c5761e8 @groue RELEASE_NOTES wording
authored
524
525 Deprecated class (use `[NSNumber numberWithBool:YES]` instead of `[GRYes yes]`):
526
527 - `GRYes`
528
529 Deprecated class (use `[NSNumber numberWithBool:NO]` instead of `[GRNo no]`):
530
531 - `GRNo`
c88c5c6 @groue v1.2.0
authored
532
16c756d @groue v1.1.6
authored
533 ## v1.1.6
534
c5761e8 @groue RELEASE_NOTES wording
authored
535 GRMustacheTemplateLoader subclasses can now rely on an immutable `extension` property.
16c756d @groue v1.1.6
authored
536
0805e50 @groue v1.1.5
authored
537 ## v1.1.5
538
4031037 @groue RELEASE_NOTES wording
authored
539 Bug fixes
0805e50 @groue v1.1.5
authored
540
8e257be @groue v1.1.4
authored
541 ## v1.1.4
542
4031037 @groue RELEASE_NOTES wording
authored
543 Bug fixes
8e257be @groue v1.1.4
authored
544
3f89a0b @groue v1.1.3
authored
545 ## v1.1.3
546
4031037 @groue RELEASE_NOTES wording
authored
547 **Rendering performance improvement**
3f89a0b @groue v1.1.3
authored
548
8dbe23f @groue v1.1.2
authored
549 ## v1.1.2
550
4031037 @groue RELEASE_NOTES wording
authored
551 **Template compiling performance improvement**
8dbe23f @groue v1.1.2
authored
552
161c96c @groue v1.1.1
authored
553 ## v1.1.1
554
4031037 @groue RELEASE_NOTES wording
authored
555 Bug fixes
161c96c @groue v1.1.1
authored
556
6ede60b @groue v1.1.0
authored
557 ## v1.1.0
0219c22 @groue v1.0.0
authored
558
c5761e8 @groue RELEASE_NOTES wording
authored
559 New methods:
560
561 - `[GRYes yes]` responds to `boolValue`
562 - `[GRNo no]` responds to `boolValue`
6ede60b @groue v1.1.0
authored
563
564 ## v1.0.0
565
4031037 @groue RELEASE_NOTES wording
authored
566 **First versioned release**
Something went wrong with that request. Please try again.