Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 656 lines (426 sloc) 26.096 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
6e51540 @groue 4.2.0
authored
6 ## v4.2.0
7
8 **Section delegates**
9
10 When an object that is attached to a Mustache section conforms to the [GRMustacheDelegate protocol](Guides/delegate.md), it can observe and alter the rendering of the inner content of the section, just like the template's delegate.
11
12 This provides you with a better way to encapsulate behaviors that, with previous versions of GRMustache, would bloat the one and only delegate of a template.
13
14 Section delegates are used in the [number formatting sample code](sample_code/number_formatting.md), where the NSNumberFormatter class is given the opportunity to render formatted numbers.
15
b775400 @groue v4.1.1 release notes
authored
16 ## v4.1.1
17
18 **Total inline documentation**
19
20 Headers contain documentation for every exposed API.
21
22 An online reference, automatically generated from inline documentation by appledoc can be read at http://groue.github.com/GRMustache/Reference/.
23
459f57b @groue v4.1.0
authored
24 ## v4.1.0
25
26 ### GRMustacheDelegate protocol
27
28 A template's delegate is now able to know how a value will be interpreted by GRMustache.
29
30 New APIs:
31
32 ```objc
33 typedef enum {
34 GRMustacheInterpretationSection,
35 GRMustacheInterpretationVariable,
36 } GRMustacheInterpretation;
37
38 @protocol GRMustacheTemplateDelegate<NSObject>
39 - (void)template:(GRMustacheTemplate *)template willInterpretReturnValueOfInvocation:(GRMustacheInvocation *)invocation as:(GRMustacheInterpretation)interpretation;
40 - (void)template:(GRMustacheTemplate *)template didInterpretReturnValueOfInvocation:(GRMustacheInvocation *)invocation as:(GRMustacheInterpretation)interpretation;
41 @end
42 ```
43
44 Deprecated APIs:
45
46 ```objc
47 @protocol GRMustacheTemplateDelegate<NSObject>
48 - (void)template:(GRMustacheTemplate *)template willRenderReturnValueOfInvocation:(GRMustacheInvocation *)invocation;
49 - (void)template:(GRMustacheTemplate *)template didRenderReturnValueOfInvocation:(GRMustacheInvocation *)invocation;
50 @end
51 ```
52
fdcf398 @groue RELEASE_NOTES provides links to documentation of classes changed in v…
authored
53 GRMustacheDelegate is documented in [Guides/delegate.md](Guides/delegate.md).
459f57b @groue v4.1.0
authored
54
55 ### GRMustacheTemplateRepositoryDataSource protocol
56
57 The return type of `-[GRMustacheTemplateRepositoryDataSource templateRepository:templateIDForName:relativeToTemplateID:]` as changed from `id` to `id<NSCopying>`.
58
fdcf398 @groue RELEASE_NOTES provides links to documentation of classes changed in v…
authored
59 GRMustacheTemplateRepositoryDataSource is documented in [Guides/template_repositories.md](Guides/template_repositories.md).
60
459f57b @groue v4.1.0
authored
61 ### Errors
62
63 GRMustache used to output badly formatted errors. They are now easier to read.
64
6337526 @groue v4.0.0
authored
65 ## v4.0.0
66
67 **Zero numbers are false**
68
69 GRMustache now considers all `NSNumber` instances whose `boolValue` is `NO` as false, when considering whether a section should render or not.
70
71 Previously, GRMustache used to consider only `[NSNumber numberWithBool:NO]` as false.
72
579209c @groue RELEASE_NOTES.md wording
authored
73 This change lets you extend the mustache language with proxy objects (objects that implement language extensions, and forward other keys to some other object) in GRMustache rendering.
6337526 @groue v4.0.0
authored
74
813e689 @groue Fix RELEASE_NOTES.md link
authored
75 See [Guides/sample_code/indexes.md](Guides/sample_code/indexes.md) for a discussion on proxy objects.
6337526 @groue v4.0.0
authored
76
77 **Total NSUndefinedException swallowing**
78
79 Whenever GRMustache performs some key lookup and `valueForKey:` raises a NSUndefinedException, GRMustache swallows it and keep on looking for the key up the context stack.
80
81 Previously, GRMustache used to swallow only exceptions that explicitely came from the inquired object, and for the inquired key.
82
579209c @groue RELEASE_NOTES.md wording
authored
83 This change lets you extend the mustache language with proxy objects (objects that implement language extensions, and forward other keys to some other object) in GRMustache rendering.
6337526 @groue v4.0.0
authored
84
813e689 @groue Fix RELEASE_NOTES.md link
authored
85 See [Guides/sample_code/indexes.md](Guides/sample_code/indexes.md) for a discussion on proxy objects.
6337526 @groue v4.0.0
authored
86
87 **Support for `.name` keys**
88
65e9823 @groue Document the "context stack" expression
authored
89 Keys prefixed by a dot prevent GRMustache to look up the [context stack](Guides/runtime/context_stack.md).
6337526 @groue v4.0.0
authored
90
91 Beware this feature is not in the mustache specification. If your goal is to design templates that remain compatible with [other Mustache implementations](https://github.com/defunkt/mustache/wiki/Other-Mustache-implementations), don't use this syntax.
92
579209c @groue RELEASE_NOTES.md wording
authored
93 See [issue #19](https://github.com/groue/GRMustache/issues/19) and https://github.com/mustache/spec/issues/10.
6337526 @groue v4.0.0
authored
94
6c31018 @groue v3.0.1
authored
95 ## v3.0.1
96
97 Restored intended architectures: armv6+armv7+i386 for libGRMustache3-iOS, i386+x86_64 for libGRMustache3-MacOS.
98
eb5cff8 @groue v3.0.0
authored
99 ## v3.0.0
100
101 **There is no option**
102
103 Removed APIs:
104
105 ```objc
106 enum {
107 GRMustacheTemplateOptionNone,
108 GRMustacheTemplateOptionStrictBoolean
109 };
110
111 typedef NSUInteger GRMustacheTemplateOptions;
112
113 @interface GRMustacheTemplate: NSObject {
114 + (id)templateFromString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
115 + (id)templateFromContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
116 + (id)templateFromContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
117 + (id)templateFromResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
118 + (id)templateFromResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
119 + (NSString *)renderObject:(id)object fromString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
120 + (NSString *)renderObject:(id)object fromContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
121 + (NSString *)renderObject:(id)object fromContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
122 + (NSString *)renderObject:(id)object fromResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
123 + (NSString *)renderObject:(id)object fromResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
124 @end
125
126 @protocol GRMustacheTemplateRepositoryDataSource <NSObject>
127 + (id)templateRepositoryWithBaseURL:(NSURL *)URL options:(GRMustacheTemplateOptions)options;
128 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
129 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
130 + (id)templateRepositoryWithDirectory:(NSString *)path options:(GRMustacheTemplateOptions)options;
131 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
132 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
133 + (id)templateRepositoryWithBundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options;
134 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
135 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
136 + (id)templateRepositoryWithPartialsDictionary:(NSDictionary *)partialsDictionary options:(GRMustacheTemplateOptions)options;
137 + (id)templateRepositoryWithOptions:(GRMustacheTemplateOptions)options;
138 @end
139 ```
140
ed879f3 @groue v2.0.0
authored
141 ## v2.0.0
142
887bcdb @groue RELEASE_NOTES: remove undue notifications of performance improvements
authored
143 **API simplification**
ed879f3 @groue v2.0.0
authored
144
1f91c52 @groue v2.0.0 RELEASE_NOTES
authored
145 ### New APIs:
146
147 ```objc
148 enum {
3e006cc @groue wording
authored
149 // New option for processing `BOOL` and `char` properties as numbers
1f91c52 @groue v2.0.0 RELEASE_NOTES
authored
150 GRMustacheTemplateOptionStrictBoolean = 1
151 }
152
153 @protocol GRMustacheHelper<NSObject>
154 @required
155 // New required method
156 - (NSString *)renderSection:(GRMustacheSection *)section;
157 @end
158
159 // New GRMustacheHelper class
160 @interface GRMustacheHelper: NSObject<GRMustacheHelper>
161 + (id)helperWithBlock:(NSString *(^)(GRMustacheSection* section))block;
162 @end
163
164 // New GRMustacheSection properties and methods
165 @interface GRMustacheSection: NSObject
166 @property (nonatomic, readonly) NSString *innerTemplateString;
167 @property (nonatomic, readonly) id renderingContext;
168 - (NSString *)render;
169 @end
170 ```
171
172 ### Removed APIs and behaviors
173
174 ```objc
175 enum {
176 // GRMustache is now compliant by default to the Mustache specification:
177 GRMustacheTemplateOptionMustacheSpecCompatibility = 1
178 }
179
180 // NSErrors with GRMustacheErrorDomain now store the line number in localizedDescription.
181 extern NSString* const GRMustacheErrorLine;
182
183 @interface GRMustache: NSObject
184 // This global state has been replaced by the GRMustacheTemplateOptionStrictBoolean option:
185 + (BOOL)strictBooleanMode:
186 + (void)setStrictBooleanMode:(BOOL)strictBooleanMode;
187 @end
188
189 @protocol GRMustacheHelper<NSObject>
190 @required
191 // Replaced by renderSection: method
192 - (NSString *)renderSection:(GRMustacheSection *)section withContext:(id)context;
193 @end
194
195 // Replaced by the GRMustacheHelper class:
196 @interface GRMustacheBlockHelper: NSObject<GRMustacheHelper> {
197 + (id)helperWithBlock:(NSString *(^)(GRMustacheSection* section, id context))block;
198 @end
199
200 @interface GRMustacheSection: NSObject
201 // Replaced by the innerTemplateString property
202 @property (nonatomic, readonly) NSString *templateString;
203 // See the new render method
204 - (NSString *)renderObject:(id)object;
205 - (NSString *)renderObjects:(id)object, ...;
206 @end
207 ```
208
8506da0 @groue Link to http://handlebarsjs.com/
authored
209 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
210
211 GRMustache1 used to parse and interpret `this` identifier is tags such as `{{this.foo}}`. GRMustache2 does no longer parse the `this` identifier.
212
5672e6d @groue wording
authored
213 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
214
215
7298c29 @groue v1.13.1
authored
216 ## v1.13.1
217
218 The deprecated class GRMustacheTemplateLoader was broken by 1.13.0. Deprecated does not mean unavailable: it is restored.
219
5e5ea55 @groue v1.13.0
authored
220 ## v1.13.0
221
222 Deprecated class (use [GRMustacheTemplateRepository templateRepositoryWithPartialsDictionary:], or the new GRMustacheTemplateRepositoryDataSource protocol instead):
223
224 - `GRMustacheTemplateLoader`
225
226 New class:
227
228 - `GRMustacheTemplateRepository`
229
230 ```objc
231 @interface GRMustacheTemplateRepository : NSObject
232 @property (nonatomic, assign) id<GRMustacheTemplateRepositoryDataSource> dataSource;
233
234 + (id)templateRepository;
235 + (id)templateRepositoryWithOptions:(GRMustacheTemplateOptions)options;
236
237 + (id)templateRepositoryWithBaseURL:(NSURL *)URL;
238 + (id)templateRepositoryWithBaseURL:(NSURL *)URL options:(GRMustacheTemplateOptions)options;
239 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext;
240 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
241 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext;
242 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding;
243 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
244
245 + (id)templateRepositoryWithDirectory:(NSString *)path;
246 + (id)templateRepositoryWithDirectory:(NSString *)path options:(GRMustacheTemplateOptions)options;
247 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext;
248 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
249 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding;
250 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
251
252 + (id)templateRepositoryWithBundle:(NSBundle *)bundle;
253 + (id)templateRepositoryWithBundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options;
254 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext;
255 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
256 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding;
257 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
258
259 + (id)templateRepositoryWithPartialsDictionary:(NSDictionary *)partialsDictionary;
260 + (id)templateRepositoryWithPartialsDictionary:(NSDictionary *)partialsDictionary options:(GRMustacheTemplateOptions)options;
261
262 - (GRMustacheTemplate *)templateForName:(NSString *)name error:(NSError **)outError;
263 - (GRMustacheTemplate *)templateFromString:(NSString *)templateString error:(NSError **)outError;
264 ```
265
266 New protocol:
267
268 - `GRMustacheTemplateRepositoryDataSource`
269
270 ```objc
271 @protocol GRMustacheTemplateRepositoryDataSource <NSObject>
272 @required
273 - (id)templateRepository:(GRMustacheTemplateRepository *)templateRepository templateIDForName:(NSString *)name relativeToTemplateID:(id)templateID;
274 - (NSString *)templateRepository:(GRMustacheTemplateRepository *)templateRepository templateStringForTemplateID:(id)templateID error:(NSError **)outError;
275 @end
276 ```
277
6e1642d @groue v1.12.2
authored
278 ## v1.12.2
279
887bcdb @groue RELEASE_NOTES: remove undue notifications of performance improvements
authored
280 Restore parsing performances of v1.12.0
6e1642d @groue v1.12.2
authored
281
71638db @groue v1.12.1
authored
282 ## v1.12.1
283
284 Easier template debugging with `[GRMustacheInvocation description]`
285
299d3b1 @groue v1.12.0
authored
286 ## v1.12
287
288 - **GRMustacheTemplateDelegate protocol**
289
290 Deprecated classes:
291
292 - `GRMustacheNumberFormatterHelper`
293 - `GRMustacheDateFormatterHelper`
294
d3b5626 @groue v1.11.2
authored
295 ## v1.11.2
296
2cfb609 @groue wording
authored
297 BOOL property custom getters can be used to control boolean sections.
d3b5626 @groue v1.11.2
authored
298
5d95cad @groue v1.11.1
authored
299 ## v1.11.1
300
301 Avoid deprecation warning in GRMustache headers.
302
92c07e2 @groue v1.11.0
authored
303 ## v1.11
304
305 **API cleanup**
306
307 New GRMustacheTemplateLoader methods:
308
5e5ea55 @groue v1.13.0
authored
309 ```objc
310 - (GRMustacheTemplate *)templateWithName:(NSString *)name error:(NSError **)outError;
311 - (GRMustacheTemplate *)templateFromString:(NSString *)templateString error:(NSError **)outError;
312 ```
92c07e2 @groue v1.11.0
authored
313
314 New GRMustacheTemplate methods:
315
5e5ea55 @groue v1.13.0
authored
316 ```objc
317 + (id)templateFromString:(NSString *)templateString error:(NSError **)outError;
318 + (id)templateFromString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
319 + (id)templateFromContentsOfFile:(NSString *)path error:(NSError **)outError;
320 + (id)templateFromContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
321 + (id)templateFromResource:(NSString *)name bundle:(NSBundle *)bundle error:(NSError **)outError;
322 + (id)templateFromResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
323 + (id)templateFromResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle error:(NSError **)outError;
324 + (id)templateFromResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
325 + (id)templateFromContentsOfURL:(NSURL *)url error:(NSError **)outError;
326 + (id)templateFromContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
327 ```
92c07e2 @groue v1.11.0
authored
328
329 Deprecated GRMustacheTemplateLoader methods (use `templateWithName:error:` and `templateFromString:error:` instead):
330
5e5ea55 @groue v1.13.0
authored
331 ```objc
332 - (GRMustacheTemplate *)parseTemplateNamed:(NSString *)name error:(NSError **)outError;
333 - (GRMustacheTemplate *)parseString:(NSString *)templateString error:(NSError **)outError;
334 ```
92c07e2 @groue v1.11.0
authored
335
336 Deprecated GRMustacheTemplate methods (replace `parse` with `templateFrom`):
337
5e5ea55 @groue v1.13.0
authored
338 ```objc
339 + (id)parseString:(NSString *)templateString error:(NSError **)outError;
340 + (id)parseString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
341 + (id)parseContentsOfFile:(NSString *)path error:(NSError **)outError;
342 + (id)parseContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
343 + (id)parseResource:(NSString *)name bundle:(NSBundle *)bundle error:(NSError **)outError;
344 + (id)parseResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
345 + (id)parseResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle error:(NSError **)outError;
346 + (id)parseResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
347 + (id)parseContentsOfURL:(NSURL *)url error:(NSError **)outError;
348 + (id)parseContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
349 ```
92c07e2 @groue v1.11.0
authored
350
d5730e5 @groue v1.10.3
authored
351 ## v1.10.3
352
353 Upgrade GRMustache, and get deprecation warnings when you use deprecated APIs. Your code will keep on running fine, though.
354
75eae3b @groue v1.10.2
authored
355 ## v1.10.2
356
887bcdb @groue RELEASE_NOTES: remove undue notifications of performance improvements
authored
357 **Drastic rendering performance improvements**
75eae3b @groue v1.10.2
authored
358
745be05 @groue v1.10.1
authored
359 ## v1.10.1
360
887bcdb @groue RELEASE_NOTES: remove undue notifications of performance improvements
authored
361 **Rendering performance improvements**
745be05 @groue v1.10.1
authored
362
31100d3 @groue v1.10.0
authored
363 ## v1.10
364
887bcdb @groue RELEASE_NOTES: remove undue notifications of performance improvements
authored
365 **Improved Handlebars.js support**
31100d3 @groue v1.10.0
authored
366
745be05 @groue v1.10.1
authored
367 Now `{{foo/bar}}` and `{{foo.bar}}` syntaxes are both supported.
31100d3 @groue v1.10.0
authored
368
8020800 @groue v1.9.0
authored
369 ## v1.9
370
3293103 @groue Introduce GRMustacheNumberFormatterHelper
authored
371 - **Better lambda encapsulation with classes conforming to the GRMustacheHelper protocol.**
372 - **Format all numbers in a section with GRMustacheNumberFormatterHelper**
f52da9d @groue README+RELEASE_NOTES for GRMustacheNumberFormatterHelper and GRMustac…
authored
373 - **Format all dates in a section with GRMustacheDateFormatterHelper**
8020800 @groue v1.9.0
authored
374
375 New protocol:
376
3293103 @groue Introduce GRMustacheNumberFormatterHelper
authored
377 - `GRMustacheHelper`
378
5e5ea55 @groue v1.13.0
authored
379 ```objc
380 @protocol GRMustacheHelper<NSObject>
381 @required
382 - (NSString *)renderSection:(GRMustacheSection *)section withContext:(id)context AVAILABLE_GRMUSTACHE_VERSION_1_9_AND_LATER;
383 @end
384 ```
385
f52da9d @groue README+RELEASE_NOTES for GRMustacheNumberFormatterHelper and GRMustac…
authored
386 New classes:
3293103 @groue Introduce GRMustacheNumberFormatterHelper
authored
387
388 - `GRMustacheNumberFormatterHelper`
f52da9d @groue README+RELEASE_NOTES for GRMustacheNumberFormatterHelper and GRMustac…
authored
389 - `GRMustacheDateFormatterHelper`
8020800 @groue v1.9.0
authored
390
5e5ea55 @groue v1.13.0
authored
391 ```objc
392 @interface GRMustacheNumberFormatterHelper : NSObject<GRMustacheHelper>
393 @property (nonatomic, readonly, retain) NSNumberFormatter *numberFormatter;
394 + (id)helperWithNumberFormatter:(NSNumberFormatter *)numberFormatter;
395 @end
396
397 @interface GRMustacheDateFormatterHelper : NSObject<GRMustacheHelper>
398 @property (nonatomic, readonly, retain) NSDateFormatter *dateFormatter;
399 + (id)helperWithDateFormatter:(NSDateFormatter *)dateFormatter;
400 @end
401 ```
402
8704042 @groue v1.8.6
authored
403 ## v1.8.6
404
405 Fixed bug in [GRMustacheTemplate renderObjects:...]
406
d209bef @groue v1.8.5
authored
407 ## v1.8.5
408
409 Added missing symbols from lib/libGRMustache1-ios3.a
410
edf6200 @groue v1.8.4
authored
411 ## v1.8.4
412
d209bef @groue v1.8.5
authored
413 Added missing symbols from lib/libGRMustache1-ios3.a and lib/libGRMustache1-ios4.a
edf6200 @groue v1.8.4
authored
414
6a23fe6 @groue v1.8.3
authored
415 ## v1.8.3
416
417 Availability fixes.
418
8abbac9 @groue v1.8.2
authored
419 ## v1.8.2
420
421 Better testing of public API thanks to availability macros.
422
b643aa1 @groue v1.8.1
authored
423 ## v1.8.1
424
425 Bug fixes
426
18dc85c @groue v1.8.0
authored
427 ## v1.8
428
8abbac9 @groue v1.8.2
authored
429 **GRMustache now supports the [Mustache specification v1.1.2](https://github.com/mustache/spec).**
430
431 New type and enum:
432
5e5ea55 @groue v1.13.0
authored
433 ```objc
434 enum {
435 GRMustacheTemplateOptionNone = 0,
436 GRMustacheTemplateOptionMustacheSpecCompatibility = 0x01,
437 };
8abbac9 @groue v1.8.2
authored
438
5e5ea55 @groue v1.13.0
authored
439 typedef NSUInteger GRMustacheTemplateOptions;
440 ```
8abbac9 @groue v1.8.2
authored
441
442 New GRMustache methods:
443
5e5ea55 @groue v1.13.0
authored
444 ```objc
445 + (GRMustacheTemplateOptions)defaultTemplateOptions;
446 + (void)setDefaultTemplateOptions:(GRMustacheTemplateOptions)templateOptions;
447 ```
8abbac9 @groue v1.8.2
authored
448
449 New GRMustacheTemplate methods:
450
5e5ea55 @groue v1.13.0
authored
451 ```objc
452 + (id)parseString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
453 + (id)parseContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
454 + (id)parseContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
455 + (id)parseResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
456 + (id)parseResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
457 + (NSString *)renderObject:(id)object fromString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
458 + (NSString *)renderObject:(id)object fromContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
459 + (NSString *)renderObject:(id)object fromContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
460 + (NSString *)renderObject:(id)object fromResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
461 + (NSString *)renderObject:(id)object fromResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
462 ```
8abbac9 @groue v1.8.2
authored
463
464 New GRMustacheTemplateLoader methods:
465
5e5ea55 @groue v1.13.0
authored
466 ```objc
467 + (id)templateLoaderWithBaseURL:(NSURL *)url options:(GRMustacheTemplateOptions)options;
468 + (id)templateLoaderWithBaseURL:(NSURL *)url extension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
469 + (id)templateLoaderWithBaseURL:(NSURL *)url extension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
470 + (id)templateLoaderWithDirectory:(NSString *)path options:(GRMustacheTemplateOptions)options;
471 + (id)templateLoaderWithDirectory:(NSString *)path extension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
472 + (id)templateLoaderWithDirectory:(NSString *)path extension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
473 + (id)templateLoaderWithBundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options;
474 + (id)templateLoaderWithBundle:(NSBundle *)bundle extension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
475 + (id)templateLoaderWithBundle:(NSBundle *)bundle extension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
476 ```
8abbac9 @groue v1.8.2
authored
477
18dc85c @groue v1.8.0
authored
478
d08841f @groue v1.7.4
authored
479 ## v1.7.4
480
481 Bug fix: avoid crashing when one provides uninitialized NSError* to GRMustache.
482
8059b38 @groue v1.7.3
authored
483 ## v1.7.3
484
485 One no longer needs to add `-all_load` to the "Other Linker Flags" target option tu use GRMustache static libraries.
486
6d6e020 @groue v1.7.2
authored
487 ## v1.7.2
488
489 - Fixed [issue #6](https://github.com/groue/GRMustache/issues/6)
490 - `[GRMustache preventNSUndefinedKeyExceptionAttack]` no longer prevents the rendering of `nil`.
491
cd4de9d @groue v1.7.1
authored
492 ## v1.7.1
493
494 Added missing header file
495
e5d100a @groue v1.7.0
authored
496 ## v1.7.0
497
498 **GRMustache now ships as a static library.**
499
500 See the [Embedding](https://github.com/groue/GRMustache/wiki/Embedding) wiki page in order to see how to embed GRMustache in your project.
501
502 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.
503
4373916 @groue v1.6.2
authored
504 ## v1.6.2
505
506 **LLVM3 compatibility**
507
f19ba84 @groue v1.6.1
authored
508 ## v1.6.1
509
510 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).
511
6b1dbf7 @groue v1.6.0
authored
512 ## v1.6.0
513
514 **Reduced memory footprint**
515
8abbac9 @groue v1.8.2
authored
516 New GRMustacheTemplateLoader methods:
6b1dbf7 @groue v1.6.0
authored
517
5e5ea55 @groue v1.13.0
authored
518 ```objc
519 + (id)templateLoaderWithDirectory:(NSString *)path;
520 + (id)templateLoaderWithDirectory:(NSString *)path extension:(NSString *)ext;
521 + (id)templateLoaderWithDirectory:(NSString *)path extension:(NSString *)ext encoding:(NSStringEncoding)encoding;
522 ```
6b1dbf7 @groue v1.6.0
authored
523
8abbac9 @groue v1.8.2
authored
524 Deprecated GRMustacheTemplateLoader methods (replace `BasePath` with `Directory`):
6b1dbf7 @groue v1.6.0
authored
525
5e5ea55 @groue v1.13.0
authored
526 ```objc
527 + (id)templateLoaderWithBasePath:(NSString *)path;
528 + (id)templateLoaderWithBasePath:(NSString *)path extension:(NSString *)ext;
529 + (id)templateLoaderWithBasePath:(NSString *)path extension:(NSString *)ext encoding:(NSStringEncoding)encoding;
530 ```
6b1dbf7 @groue v1.6.0
authored
531
532 Bug fixes around the NSUndefinedKeyException handling when the `DEBUG` macro is set (thanks to [Mike Ash](http://www.mikeash.com/)).
533
499face @groue v1.5.2
authored
534 ## v1.5.2
535
f19ba84 @groue v1.6.1
authored
536 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
537
e0a103f @groue v1.5.1
authored
538 ## v1.5.1
539
4031037 @groue RELEASE_NOTES wording
authored
540 Bug fixes
e0a103f @groue v1.5.1
authored
541
3de3613 @groue v1.5.0
authored
542 ## v1.5.0
0915e91 @groue v1.4.1
authored
543
4031037 @groue RELEASE_NOTES wording
authored
544 **API simplification**
545
c5761e8 @groue RELEASE_NOTES wording
authored
546 New GRMustacheTemplate method:
547
548 - `- (NSString *)renderObjects:(id)object, ...;`
549
550 New GRMustacheSection method:
551
552 - `- (NSString *)renderObjects:(id)object, ...;`
553
554 New class:
555
556 - `GRMustacheBlockHelper`
557
558 Deprecated class (use `id` instead when refering to a context, and use `renderObjects:` methods instead of instanciating one):
559
560 - `GRMustacheContext`
561
562 Deprecated function (use GRMustacheBlockHelper instead):
563
564 - `id GRMustacheLambdaBlockMake(NSString *(^block)(GRMustacheSection*, GRMustacheContext*));`
0915e91 @groue v1.4.1
authored
565
a1f2cf1 @groue v1.4.0
authored
566 ## v1.4.0
567
4031037 @groue RELEASE_NOTES wording
authored
568 **iOS 3.0 support**
c5761e8 @groue RELEASE_NOTES wording
authored
569
570 New `GRMustacheTemplate` methods:
571
572 - `+ (NSString *)renderObject:(id)object fromContentsOfFile:(NSString *)path error:(NSError **)outError;`
573 - `+ (id)parseContentsOfFile:(NSString *)path error:(NSError **)outError;`
574
8abbac9 @groue v1.8.2
authored
575 New `GRMustacheTemplateLoader` methods:
c5761e8 @groue RELEASE_NOTES wording
authored
576
577 - `+ (id)templateLoaderWithBasePath:(NSString *)path;`
578 - `+ (id)templateLoaderWithBasePath:(NSString *)path extension:(NSString *)ext;`
579 - `+ (id)templateLoaderWithBasePath:(NSString *)path extension:(NSString *)ext encoding:(NSStringEncoding)encoding;`
a1f2cf1 @groue v1.4.0
authored
580
de489d5 @groue v1.3.3
authored
581 ## v1.3.3
582
4031037 @groue RELEASE_NOTES wording
authored
583 Bug fixes
de489d5 @groue v1.3.3
authored
584
be39647 @groue v1.3.2
authored
585 ## v1.3.2
586
4031037 @groue RELEASE_NOTES wording
authored
587 Bug fixes
be39647 @groue v1.3.2
authored
588
7f1e927 @groue v1.3.1
authored
589 ## v1.3.1
590
4031037 @groue RELEASE_NOTES wording
authored
591 Bug fixes
7f1e927 @groue v1.3.1
authored
592
b03eb3c @groue v1.3.0
authored
593 ## v1.3.0
594
4031037 @groue RELEASE_NOTES wording
authored
595 **Block-less API for helpers.**
b03eb3c @groue v1.3.0
authored
596
c5761e8 @groue RELEASE_NOTES wording
authored
597 New classes:
598
599 - `GRMustacheContext`
600 - `GRMustacheSection`
b03eb3c @groue v1.3.0
authored
601
c5761e8 @groue RELEASE_NOTES wording
authored
602 New functions:
a368aaf @groue v1.2.1
authored
603
c5761e8 @groue RELEASE_NOTES wording
authored
604 - `id GRMustacheLambdaBlockMake(NSString *(^block)(GRMustacheSection*, GRMustacheContext*));`
605
606 Deprecated functions (use GRMustacheLambdaBlockMake instead):
607
608 - `GRMustacheLambda GRMustacheLambdaMake(NSString *(^block)(NSString *(^)(id object), id, NSString *));`
a368aaf @groue v1.2.1
authored
609
c88c5c6 @groue v1.2.0
authored
610 ## v1.2.0
611
4031037 @groue RELEASE_NOTES wording
authored
612 **iOS 4.0 support**
c5761e8 @groue RELEASE_NOTES wording
authored
613
614 Deprecated class (use `[NSNumber numberWithBool:YES]` instead of `[GRYes yes]`):
615
616 - `GRYes`
617
618 Deprecated class (use `[NSNumber numberWithBool:NO]` instead of `[GRNo no]`):
619
620 - `GRNo`
c88c5c6 @groue v1.2.0
authored
621
16c756d @groue v1.1.6
authored
622 ## v1.1.6
623
c5761e8 @groue RELEASE_NOTES wording
authored
624 GRMustacheTemplateLoader subclasses can now rely on an immutable `extension` property.
16c756d @groue v1.1.6
authored
625
0805e50 @groue v1.1.5
authored
626 ## v1.1.5
627
4031037 @groue RELEASE_NOTES wording
authored
628 Bug fixes
0805e50 @groue v1.1.5
authored
629
8e257be @groue v1.1.4
authored
630 ## v1.1.4
631
4031037 @groue RELEASE_NOTES wording
authored
632 Bug fixes
8e257be @groue v1.1.4
authored
633
3f89a0b @groue v1.1.3
authored
634 ## v1.1.3
635
4031037 @groue RELEASE_NOTES wording
authored
636 **Rendering performance improvement**
3f89a0b @groue v1.1.3
authored
637
8dbe23f @groue v1.1.2
authored
638 ## v1.1.2
639
887bcdb @groue RELEASE_NOTES: remove undue notifications of performance improvements
authored
640 **Parsing performance improvement**
8dbe23f @groue v1.1.2
authored
641
161c96c @groue v1.1.1
authored
642 ## v1.1.1
643
4031037 @groue RELEASE_NOTES wording
authored
644 Bug fixes
161c96c @groue v1.1.1
authored
645
6ede60b @groue v1.1.0
authored
646 ## v1.1.0
0219c22 @groue v1.0.0
authored
647
c5761e8 @groue RELEASE_NOTES wording
authored
648 New methods:
649
650 - `[GRYes yes]` responds to `boolValue`
651 - `[GRNo no]` responds to `boolValue`
6ede60b @groue v1.1.0
authored
652
653 ## v1.0.0
654
4031037 @groue RELEASE_NOTES wording
authored
655 **First versioned release**
Something went wrong with that request. Please try again.