Skip to content
Newer
Older
100644 973 lines (625 sloc) 38.5 KB
0219c22 @groue v1.0.0
authored Nov 12, 2010
1 GRMustache Release Notes
2 ========================
3
af03738 @groue Typo
authored Mar 14, 2012
4 You can compare the performances of GRMustache versions at https://github.com/groue/GRMustacheBenchmark.
9b3ce86 @groue Link to benchmarks
authored Feb 19, 2012
5
a3a88b4 @groue v4.3.0
authored Aug 4, 2012
6
3844b9d @groue v5.5.2
authored Oct 22, 2012
7 ## v5.5.2
8
9 **Bug fixes**
10
11 [Variadic filters](Guides/filters.md) can now return filters, just as filters with a single argument.
12
6144f74 @groue v5.5.1
authored Oct 21, 2012
13 ## v5.5.1
14
3844b9d @groue v5.5.2
authored Oct 22, 2012
15 **Niceties and bug fixes**
6144f74 @groue v5.5.1
authored Oct 21, 2012
16
bf62789 @groue RELEASE_NOTES.md directly links to the documentation for the handling…
authored Oct 21, 2012
17 The `count` method of NSArray, NSSet and NSOrderedSet can now be queried in templates: `{{collection.count}}` renders as expected, and `{{#collection.count}}...{{/}}` can conditionally render a section if and only if the collection is not empty. See [Guides/runtime/context_stack.md](Guides/runtime/context_stack.md#nsarray-nsset-nsorderedset) for a detailed explanation.
6144f74 @groue v5.5.1
authored Oct 21, 2012
18
19 [Variadic filters](Guides/filters.md) that return nil used to not play well with boolean sections.
20
21 [GRMustacheProxy](Guides/proxies.md) cooperates with `NSUndefinedKeyException` prevention, and keeps its delegate quiet after you have invoked `[GRMustache preventNSUndefinedKeyExceptionAttack]`.
22
23 [GRMustacheProxy](Guides/proxies.md) refuses `nil` delegate, since it can not pose as `nil`. You must use [NSNull null] instead.
24
c834a75 @groue v5.5
authored Oct 20, 2012
25 ## v5.5
26
27 ### Variadic filters
28
29 Filters can now take several arguments: `{{ f(a,b) }}`. Check [Guides/filters.md](Guides/filters.md).
30
31 ### GRMustacheProxy
32
33 Proxies are a tool for the developer who wants to write reusable and robust filters, helpers, and template delegates that extend the abilities of the rendered data. Check [Guides/proxies.md](Guides/proxies.md).
34
35 The [array indexes.md](Guides/sample_code/indexes.md) sample code now uses proxies. The visible benefit is that the sample code is shorter. It is also more robust. Before proxies were introduced, we used not to be able to properly render indexes for "special" array items such as NSNull, false booleans, or helpers. Proxies are really all about robustness.
36
37
1a7b646 @groue v5.4.4
authored Oct 11, 2012
38 ## v5.4.4
39
40 - Fix a memory leak in [overridable partials](Guides/partials.md).
41 - Until this version, GRMustache would not trigger delegate methods for objects conforming to both GRMustacheVariableHelper and GRMustacheTemplateDelegate protocols.
42
e27f2c5 @groue v5.4.3
authored Oct 2, 2012
43 ## v5.4.3
44
26f510c @groue Make clear in guide that variable tag helpers can also be delegates.
authored Oct 12, 2012
45 Until this version, GRMustache would not trigger section tag helpers, variable tag helpers and tag delegates in a few corner cases.
e27f2c5 @groue v5.4.3
authored Oct 2, 2012
46
cc63d53 @groue v5.4.2
authored Sep 29, 2012
47 ## v5.4.2
48
49 Until this version, filters could not return filters. This useless inconsistency is considered a bug, and has been fixed. Check [Guides/filters.md](Guides/filters.md).
50
41da038 @groue v5.4.1
authored Sep 29, 2012
51 ## v5.4.1
52
53 Fix some corner cases in the handling of [overridable partials](Guides/partials.md), should your templates include conflicting overriding sections. Basically, the last one wins:
54
55 `{{<layout}} {{$content}}Not rendered{{/content}} {{$content}}Rendered{{/content}} {{/layout}}`.
56
57
7ac295f @groue v5.4.0
authored Sep 28, 2012
58 ## v5.4.0
59
60 ### Support for templates and partials stored in a hierarchy of directories
61
62 When your templates are stored in a hierarchy of directories, you need to refer to [partial templates](Guides/partials.md) in both relative and absolute ways, depending on the context.
63
64 Your [variable tag helpers](Guides/variable_tag_helpers.md) and your [section tag helpers](Guides/section_tag_helpers.md) will typically use absolute paths, in order to always include the same partial template, regardless of the hierarchical position of the templates that use them.
65
66 Relative partial paths look like regular Mustache partial tags: `{{> header }}`, `{{> partials/header }}`.
67
bdf877a @groue Wording
authored Sep 29, 2012
68 GRMustache v5.4.0 brings absolute paths, that start with a slash: `{{> /partials/header }}`.
7ac295f @groue v5.4.0
authored Sep 28, 2012
69
576a121 @groue RELEASE_NOTES.md links to partials.md in order to introduce relative …
authored Sep 28, 2012
70 The full story starts at [Guides/partials.md](Guides/partials.md#partials-in-the-file-system).
7ac295f @groue v5.4.0
authored Sep 28, 2012
71
ed26c85 @groue v5.3.0
authored Sep 26, 2012
72 ## v5.3.0
73
7ac295f @groue v5.4.0
authored Sep 28, 2012
74 ### API cleanup
ed26c85 @groue v5.3.0
authored Sep 26, 2012
75
76 The introduction of variable tag helpers in v5.1.0 introduced many confusing APIs. Those are still there, but deprecated.
77
78 No new feature has been added, but semantics have been much improved. Many thanks to [@pierlo](https://github.com/pierlo) for his help.
79
7ac295f @groue v5.4.0
authored Sep 28, 2012
80 **Helpers API changes**
ed26c85 @groue v5.3.0
authored Sep 26, 2012
81
82 `GRMustacheVariableTagHelper` replaces `GRMustacheVariableHelper`. See [Guides/variable_tag_helpers.md](Guides/variable_tag_helpers.md).
83
84 ```objc
85 @protocol GRMustacheVariableTagHelper<NSObject>
86 @required
87 - (NSString *)renderForVariableTagInContext:(GRMustacheVariableTagRenderingContext *)context;
88 @end
89
90 @interface GRMustacheVariableTagRenderingContext : NSObject
018381f @groue Remove availability macro from RELEASE_NOTES.md
authored Sep 26, 2012
91 - (NSString *)renderTemplateString:(NSString *)string error:(NSError **)outError;
92 - (NSString *)renderTemplateNamed:(NSString *)name error:(NSError **)outError;
ed26c85 @groue v5.3.0
authored Sep 26, 2012
93 @end
94 ```
95
96 `GRMustacheSectionTagHelper` replaces `GRMustacheSectionHelper`. See [Guides/section_tag_helpers.md](Guides/section_tag_helpers.md).
97
98 ```objc
99 @protocol GRMustacheSectionTagHelper<NSObject>
100 @required
018381f @groue Remove availability macro from RELEASE_NOTES.md
authored Sep 26, 2012
101 - (NSString *)renderForSectionTagInContext:(GRMustacheSectionTagRenderingContext *)context;
ed26c85 @groue v5.3.0
authored Sep 26, 2012
102 @end
103
104 @interface GRMustacheSectionTagRenderingContext: NSObject
018381f @groue Remove availability macro from RELEASE_NOTES.md
authored Sep 26, 2012
105 @property (nonatomic, readonly) NSString *innerTemplateString;
106 - (NSString *)render;
107 - (NSString *)renderTemplateString:(NSString *)string error:(NSError **)outError;
ed26c85 @groue v5.3.0
authored Sep 26, 2012
108 @end
109 ```
110
7ac295f @groue v5.4.0
authored Sep 28, 2012
111 **GRMustacheTemplateDelegate API changes**
ed26c85 @groue v5.3.0
authored Sep 26, 2012
112
113 In the `GRMustacheInterpretation` enumeration, `GRMustacheSectionTagInterpretation` replaces `GRMustacheInterpretationSection`, and `GRMustacheVariableTagInterpretation` replaces `GRMustacheInterpretationVariable`.
114
7ac295f @groue v5.4.0
authored Sep 28, 2012
115 **GRMustacheTemplate API changes**
ed26c85 @groue v5.3.0
authored Sep 26, 2012
116
117 `[GRMustacheTemplate renderObjectsFromArray:]` and `[GRMustacheTemplate renderObjectsFromArray:withFilters:]` replace `[GRMustacheTemplate renderObjectsInArray:]` and `[GRMustacheTemplate renderObjectsInArray:withFilters:]`.
118
70b6029 @groue Prepare v5.2.0
authored Sep 23, 2012
119 ## v5.2.0
120
121 **Overridable partials**
122
123 Inspired by [hogan.js](http://twitter.github.com/hogan.js/) and [spullara/mustache.java](https://github.com/spullara/mustache.java), GRMustache now supports "template inheritance". Precisely, your templates can embed as many partials as before, but now you can override portions of those partials.
124
ed26c85 @groue v5.3.0
authored Sep 26, 2012
125 Overridable partials are documented as [Guides/partials.md](Guides/partials.md).
70b6029 @groue Prepare v5.2.0
authored Sep 23, 2012
126
f6a5a44 @groue v5.2.0
authored Sep 23, 2012
127 The [layout](../../tree/master/Guides/sample_code/layout) sample code has been updated to take profit of overridable partials. There is not much left of it :-).
70b6029 @groue Prepare v5.2.0
authored Sep 23, 2012
128
129
84779a5 @groue v5.1.0 documentation
authored Sep 22, 2012
130 ## v5.1.0
131
85cbb69 @groue more v5.1.0 release notes
authored Sep 22, 2012
132 ### Dropped support for armv6
133
134 libGRMustache5-iOS.a is now compiled with Xcode 4.5, and does not longer embed the armv6 slice.
135
136 For armv6 support, use [GRMustache 5.0.1](https://github.com/groue/GRMustache/tree/v5.0.1).
137
84779a5 @groue v5.1.0 documentation
authored Sep 22, 2012
138 ### Array rendering
139
85cbb69 @groue more v5.1.0 release notes
authored Sep 22, 2012
140 The Mustache specification does not specify how a collection of objects should be rendered. For instance, the rendering of `{{items}}` is unspecified if items is an array.
84779a5 @groue v5.1.0 documentation
authored Sep 22, 2012
141
142 GRMustache 5.1 renders an array as the concatenation of the rendering of its individual items.
143
85cbb69 @groue more v5.1.0 release notes
authored Sep 22, 2012
144 This makes GRMustache able to render `{{items}}` just as Ruby on Rails renders `<%= render @items %>`. Keep on reading.
84779a5 @groue v5.1.0 documentation
authored Sep 22, 2012
145
146 ### Variable helpers and dynamic partials
147
148 The library was missing support for "Mustache variable lambdas", that let you execute code when rendering a plain `{{variable}}` tag.
149
150 Support for variable lambdas is there now, through the `GRMustacheVariableHelper` protocol.
151
152 Variable helpers are the base for "dynamic partials", that is to say the ability to defer the choice of a template partial until the actual rendering. Now your context objects can choose which partial should be rendered.
153
85cbb69 @groue more v5.1.0 release notes
authored Sep 22, 2012
154 Variable helpers can also help objects being able to "render themselves", and have `{{item}}` and `{{items}}` rendering controlled by these items themselves.
84779a5 @groue v5.1.0 documentation
authored Sep 22, 2012
155
9221f32 @groue Split section and variable helpers documentations
authored Sep 25, 2012
156 All of those new features are documented at [Guides/variable_helpers.md](Guides/variable_helpers.md).
84779a5 @groue v5.1.0 documentation
authored Sep 22, 2012
157
158 New APIs:
159
160 ```objc
161 // The name of exceptions raised whenever the rendering could not be completed.
162 extern NSString * const GRMustacheRenderingException;
163
164 // Base protocol for "variable lambdas".
165 @protocol GRMustacheVariableHelper<NSObject>
166 @required
018381f @groue Remove availability macro from RELEASE_NOTES.md
authored Sep 26, 2012
167 - (NSString *)renderVariable:(GRMustacheVariable *)variable;
84779a5 @groue v5.1.0 documentation
authored Sep 22, 2012
168 @end
169
170 // Convenience class in order to avoid implementing a full class that conforms
171 // to the GRMustacheVariableHelper protocol
172 @interface GRMustacheVariableHelper: NSObject<GRMustacheVariableHelper>
173 + (id)helperWithBlock:(NSString *(^)(GRMustacheVariable* variable))block;
174 @end
175
176 // Convenience class for building variable helpers that render the content of a
177 // template partial.
178 @interface GRMustacheDynamicPartial: NSObject<GRMustacheVariableHelper>
179 + (id)dynamicPartialWithName:(NSString *)name;
180 @end
181
182 // Allows you to implement variable helpers through the GRMustacheVariableHelper
183 // protocol.
184 @interface GRMustacheVariable : NSObject
185 - (NSString *)renderTemplateString:(NSString *)string error:(NSError **)outError;
186 - (NSString *)renderTemplateNamed:(NSString *)name error:(NSError **)outError;
187 @end
188
189 // This protocol is identical to the deprecated GRMustacheHelper protocol.
190 @protocol GRMustacheSectionHelper<NSObject>
191 @required
192 - (NSString *)renderSection:(GRMustacheSection *)section;
193 @end
194
195 // This class is identical to the deprecated GRMustacheHelper class.
196 @interface GRMustacheSectionHelper: NSObject<GRMustacheSectionHelper>
197 + (id)helperWithBlock:(NSString *(^)(GRMustacheSection* section))block;
198 @end
199 ```
200
201 Deprecated APIs:
202
203 ```objc
204 // Use GRMustacheRenderingException instead
205 extern NSString * GRMustacheFilterException;
206
207 // Use GRMustacheSectionHelper protocol instead
208 @protocol GRMustacheHelper
209 @end
210
211 // Use GRMustacheSectionHelper class instead
212 @interface GRMustacheHelper
213 @end
214 ```
215
216
b4dfe0d @groue v5.0.1
authored Sep 15, 2012
217 ## v5.0.1
218
219 Bug fixes:
220
221 - [Section delegates](Guides/delegate.md) used not to be given the rendered template as expected.
222 - [Helpers](Guides/helpers.md) used not to be able to render partial templates when rendering alternate template strings.
223
224
7924382 @groue v5.0.0
authored Sep 12, 2012
225 ## v5.0.0
226
227 **[Performance improvements](https://github.com/groue/GRMustacheBenchmark), and fix for flaws in the GRMustacheDelegate API.**
228
229 Besides the removal of already deprecated methods, the changes introduced in this version are very unlikely to introduce incompatibilities in your code:
230
231 - Dropped support for iOS3.
232 - Before v5.0.0, [template delegates](Guides/delegate.md) could know that the value `Arthur` was provided by the key `name` when the tag `{{name}}` is rendered. Delegates are now only provided with the value.
233 - Before v5.0.0, a tag containing a filter expression like `{{uppercase(name)}}` would have a template delegate invoked with the raw `Arthur` value, not the filter result: `ARTHUR`. In v5.0.0, delegate callbacks are given always given the value GRMustache is about to render.
234
235 Removed APIs:
236
237 ```objc
238 @interface GRMustacheInvocation : NSObject
239 // Removed without deprecation warning
240 @property (nonatomic, readonly) NSString *key;
241 @end
242
243 @interface GRMustacheSection: NSObject
244 // Deprecated in v4.3.0
245 @property (nonatomic, retain, readonly) id renderingContext;
246 @end
247
248 @interface GRMustacheTemplate: NSObject
249 // Deprecated in v4.3.0
250 - (NSString *)renderObjects:(id)object, ...;
251 @end
252
253 // Removed without deprecation warning
254 GRMustacheInterpretationFilterArgument // was part of the GRMustacheInterpretation enum.
255
256 @protocol GRMustacheTemplateDelegate<NSObject>
257 // Deprecated in v4.1.0
258 - (void)template:(GRMustacheTemplate *)template willRenderReturnValueOfInvocation:(GRMustacheInvocation *)invocation;
259 - (void)template:(GRMustacheTemplate *)template didRenderReturnValueOfInvocation:(GRMustacheInvocation *)invocation;
260 @end
261 ```
262
263
2dd7d26 @groue v4.3.4
authored Sep 6, 2012
264 ## v4.3.4
265
266 Restored compatibility with iOS3 and OSX6 (thanks [@Bertrand](https://github.com/Bertrand)).
267
268
1978e57 @groue v4.3.3
authored Aug 30, 2012
269 ## v4.3.3
270
271 Fix a memory leak.
272
273
c3a28fb @groue v4.3.2
authored Aug 6, 2012
274 ## v4.3.2
275
276 Bugfix: Avoid the default `valueForKey:` implementation of Fundation collection classes like NSArray, NSSet and NSOrderedSet, which would return another collection. Fixes [issue #21](https://github.com/groue/GRMustache/issues/21).
277
278
c4e98e6 @groue v4.3.1
authored Aug 5, 2012
279 ## v4.3.1
280
281 Bugfix: this release restores the delegate callbacks while rendering alternate template strings in [helpers](Guides/helpers.md).
282
283
284 ## v4.3.0
a3a88b4 @groue v4.3.0
authored Aug 4, 2012
285
c4e98e6 @groue v4.3.1
authored Aug 5, 2012
286 ### Filters
a3a88b4 @groue v4.3.0
authored Aug 4, 2012
287
c4e98e6 @groue v4.3.1
authored Aug 5, 2012
288 [Filters](Guides/filters.md) allow you to process values before they are rendered, and supersede "section delegates" as the preferred way to filter values. The [number formatting](Guides/sample_code/number_formatting.md) and [array indexes.md](Guides/sample_code/indexes.md) sample codes have been updated accordingly.
a3a88b4 @groue v4.3.0
authored Aug 4, 2012
289
290 **New APIs**:
291
3c86134 @groue Typo
authored Aug 4, 2012
292 ```objc
a3a88b4 @groue v4.3.0
authored Aug 4, 2012
293 @interface GRMustacheSection: NSObject
294 - (NSString *)renderTemplateString:(NSString *)string error:(NSError **)outError;
295 @end
296
297 @interface GRMustacheTemplate: NSObject
298 + (NSString *)renderObject:(id)object withFilters:(id)filters fromString:(NSString *)templateString error:(NSError **)outError;
299 + (NSString *)renderObject:(id)object withFilters:(id)filters fromContentsOfFile:(NSString *)path error:(NSError **)outError;
300 + (NSString *)renderObject:(id)object withFilters:(id)filters fromContentsOfURL:(NSURL *)url error:(NSError **)outError;
301 + (NSString *)renderObject:(id)object withFilters:(id)filters fromResource:(NSString *)name bundle:(NSBundle *)bundle error:(NSError **)outError;
302 + (NSString *)renderObject:(id)object withFilters:(id)filters fromResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle error:(NSError **)outError;
303 - (NSString *)renderObject:(id)object withFilters:(id)filters;
304 - (NSString *)renderObjectsInArray:(NSArray *)objects;
305 - (NSString *)renderObjectsInArray:(NSArray *)objects withFilters:(id)filters;
306 @end
307 ```
308
309 **Deprecated APIs**:
310
3c86134 @groue Typo
authored Aug 4, 2012
311 ```objc
a3a88b4 @groue v4.3.0
authored Aug 4, 2012
312 @interface GRMustacheSection: NSObject
313 // Use renderTemplateString:error: instead.
314 @property (nonatomic, retain, readonly) id renderingContext;
315 @end
316
317 @interface GRMustacheTemplate: NSObject
318 // Use renderObjectsInArray: instead.
319 - (NSString *)renderObjects:(id)object, ...;
320 @end
321 ```
322
6e51540 @groue 4.2.0
authored Jul 27, 2012
323 ## v4.2.0
324
c4e98e6 @groue v4.3.1
authored Aug 5, 2012
325 ### Section delegates
6e51540 @groue 4.2.0
authored Jul 27, 2012
326
327 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.
328
329 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.
330
cd7ec36 @groue Fix internal documentation link
authored Jul 28, 2012
331 Section delegates are used in the [number formatting sample code](Guides/sample_code/number_formatting.md), where the NSNumberFormatter class is given the opportunity to render formatted numbers.
6e51540 @groue 4.2.0
authored Jul 27, 2012
332
b775400 @groue v4.1.1 release notes
authored Jul 1, 2012
333 ## v4.1.1
334
c4e98e6 @groue v4.3.1
authored Aug 5, 2012
335 ### Total inline documentation
b775400 @groue v4.1.1 release notes
authored Jul 1, 2012
336
337 Headers contain documentation for every exposed API.
338
339 An online reference, automatically generated from inline documentation by appledoc can be read at http://groue.github.com/GRMustache/Reference/.
340
459f57b @groue v4.1.0
authored Jun 30, 2012
341 ## v4.1.0
342
343 ### GRMustacheDelegate protocol
344
345 A template's delegate is now able to know how a value will be interpreted by GRMustache.
346
347 New APIs:
348
349 ```objc
350 typedef enum {
351 GRMustacheInterpretationSection,
352 GRMustacheInterpretationVariable,
353 } GRMustacheInterpretation;
354
355 @protocol GRMustacheTemplateDelegate<NSObject>
356 - (void)template:(GRMustacheTemplate *)template willInterpretReturnValueOfInvocation:(GRMustacheInvocation *)invocation as:(GRMustacheInterpretation)interpretation;
357 - (void)template:(GRMustacheTemplate *)template didInterpretReturnValueOfInvocation:(GRMustacheInvocation *)invocation as:(GRMustacheInterpretation)interpretation;
358 @end
359 ```
360
361 Deprecated APIs:
362
363 ```objc
364 @protocol GRMustacheTemplateDelegate<NSObject>
365 - (void)template:(GRMustacheTemplate *)template willRenderReturnValueOfInvocation:(GRMustacheInvocation *)invocation;
366 - (void)template:(GRMustacheTemplate *)template didRenderReturnValueOfInvocation:(GRMustacheInvocation *)invocation;
367 @end
368 ```
369
fdcf398 @groue RELEASE_NOTES provides links to documentation of classes changed in v…
authored Jun 30, 2012
370 GRMustacheDelegate is documented in [Guides/delegate.md](Guides/delegate.md).
459f57b @groue v4.1.0
authored Jun 30, 2012
371
372 ### GRMustacheTemplateRepositoryDataSource protocol
373
374 The return type of `-[GRMustacheTemplateRepositoryDataSource templateRepository:templateIDForName:relativeToTemplateID:]` as changed from `id` to `id<NSCopying>`.
375
fdcf398 @groue RELEASE_NOTES provides links to documentation of classes changed in v…
authored Jun 30, 2012
376 GRMustacheTemplateRepositoryDataSource is documented in [Guides/template_repositories.md](Guides/template_repositories.md).
377
459f57b @groue v4.1.0
authored Jun 30, 2012
378 ### Errors
379
380 GRMustache used to output badly formatted errors. They are now easier to read.
381
6337526 @groue v4.0.0
authored May 26, 2012
382 ## v4.0.0
383
c4e98e6 @groue v4.3.1
authored Aug 5, 2012
384 ### Zero numbers are false
6337526 @groue v4.0.0
authored May 26, 2012
385
386 GRMustache now considers all `NSNumber` instances whose `boolValue` is `NO` as false, when considering whether a section should render or not.
387
388 Previously, GRMustache used to consider only `[NSNumber numberWithBool:NO]` as false.
389
579209c @groue RELEASE_NOTES.md wording
authored May 26, 2012
390 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 May 26, 2012
391
813e689 @groue Fix RELEASE_NOTES.md link
authored May 26, 2012
392 See [Guides/sample_code/indexes.md](Guides/sample_code/indexes.md) for a discussion on proxy objects.
6337526 @groue v4.0.0
authored May 26, 2012
393
c4e98e6 @groue v4.3.1
authored Aug 5, 2012
394 ### Total NSUndefinedException swallowing
6337526 @groue v4.0.0
authored May 26, 2012
395
396 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.
397
398 Previously, GRMustache used to swallow only exceptions that explicitely came from the inquired object, and for the inquired key.
399
579209c @groue RELEASE_NOTES.md wording
authored May 26, 2012
400 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 May 26, 2012
401
813e689 @groue Fix RELEASE_NOTES.md link
authored May 26, 2012
402 See [Guides/sample_code/indexes.md](Guides/sample_code/indexes.md) for a discussion on proxy objects.
6337526 @groue v4.0.0
authored May 26, 2012
403
c4e98e6 @groue v4.3.1
authored Aug 5, 2012
404 ### Support for `.name` keys
6337526 @groue v4.0.0
authored May 26, 2012
405
65e9823 @groue Document the "context stack" expression
authored Jun 16, 2012
406 Keys prefixed by a dot prevent GRMustache to look up the [context stack](Guides/runtime/context_stack.md).
6337526 @groue v4.0.0
authored May 26, 2012
407
408 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.
409
579209c @groue RELEASE_NOTES.md wording
authored May 26, 2012
410 See [issue #19](https://github.com/groue/GRMustache/issues/19) and https://github.com/mustache/spec/issues/10.
6337526 @groue v4.0.0
authored May 26, 2012
411
6c31018 @groue v3.0.1
authored Apr 27, 2012
412 ## v3.0.1
413
414 Restored intended architectures: armv6+armv7+i386 for libGRMustache3-iOS, i386+x86_64 for libGRMustache3-MacOS.
415
eb5cff8 @groue v3.0.0
authored Apr 3, 2012
416 ## v3.0.0
417
c4e98e6 @groue v4.3.1
authored Aug 5, 2012
418 ### There is no option
eb5cff8 @groue v3.0.0
authored Apr 3, 2012
419
420 Removed APIs:
421
422 ```objc
423 enum {
424 GRMustacheTemplateOptionNone,
425 GRMustacheTemplateOptionStrictBoolean
426 };
427
428 typedef NSUInteger GRMustacheTemplateOptions;
429
430 @interface GRMustacheTemplate: NSObject {
431 + (id)templateFromString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
432 + (id)templateFromContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
433 + (id)templateFromContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
434 + (id)templateFromResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
435 + (id)templateFromResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
436 + (NSString *)renderObject:(id)object fromString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
437 + (NSString *)renderObject:(id)object fromContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
438 + (NSString *)renderObject:(id)object fromContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
439 + (NSString *)renderObject:(id)object fromResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
440 + (NSString *)renderObject:(id)object fromResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
441 @end
442
443 @protocol GRMustacheTemplateRepositoryDataSource <NSObject>
444 + (id)templateRepositoryWithBaseURL:(NSURL *)URL options:(GRMustacheTemplateOptions)options;
445 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
446 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
447 + (id)templateRepositoryWithDirectory:(NSString *)path options:(GRMustacheTemplateOptions)options;
448 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
449 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
450 + (id)templateRepositoryWithBundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options;
451 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
452 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
453 + (id)templateRepositoryWithPartialsDictionary:(NSDictionary *)partialsDictionary options:(GRMustacheTemplateOptions)options;
454 + (id)templateRepositoryWithOptions:(GRMustacheTemplateOptions)options;
455 @end
456 ```
457
ed879f3 @groue v2.0.0
authored Apr 1, 2012
458 ## v2.0.0
459
c4e98e6 @groue v4.3.1
authored Aug 5, 2012
460 ### API simplification
ed879f3 @groue v2.0.0
authored Apr 1, 2012
461
c4e98e6 @groue v4.3.1
authored Aug 5, 2012
462 **New APIs**
1f91c52 @groue v2.0.0 RELEASE_NOTES
authored Apr 2, 2012
463
464 ```objc
465 enum {
3e006cc @groue wording
authored Apr 2, 2012
466 // New option for processing `BOOL` and `char` properties as numbers
1f91c52 @groue v2.0.0 RELEASE_NOTES
authored Apr 2, 2012
467 GRMustacheTemplateOptionStrictBoolean = 1
468 }
469
470 @protocol GRMustacheHelper<NSObject>
471 @required
472 // New required method
473 - (NSString *)renderSection:(GRMustacheSection *)section;
474 @end
475
476 // New GRMustacheHelper class
477 @interface GRMustacheHelper: NSObject<GRMustacheHelper>
478 + (id)helperWithBlock:(NSString *(^)(GRMustacheSection* section))block;
479 @end
480
481 // New GRMustacheSection properties and methods
482 @interface GRMustacheSection: NSObject
483 @property (nonatomic, readonly) NSString *innerTemplateString;
484 @property (nonatomic, readonly) id renderingContext;
485 - (NSString *)render;
486 @end
487 ```
488
c4e98e6 @groue v4.3.1
authored Aug 5, 2012
489 **Removed APIs and behaviors**
1f91c52 @groue v2.0.0 RELEASE_NOTES
authored Apr 2, 2012
490
491 ```objc
492 enum {
493 // GRMustache is now compliant by default to the Mustache specification:
494 GRMustacheTemplateOptionMustacheSpecCompatibility = 1
495 }
496
497 // NSErrors with GRMustacheErrorDomain now store the line number in localizedDescription.
498 extern NSString* const GRMustacheErrorLine;
499
500 @interface GRMustache: NSObject
501 // This global state has been replaced by the GRMustacheTemplateOptionStrictBoolean option:
502 + (BOOL)strictBooleanMode:
503 + (void)setStrictBooleanMode:(BOOL)strictBooleanMode;
504 @end
505
506 @protocol GRMustacheHelper<NSObject>
507 @required
508 // Replaced by renderSection: method
509 - (NSString *)renderSection:(GRMustacheSection *)section withContext:(id)context;
510 @end
511
512 // Replaced by the GRMustacheHelper class:
513 @interface GRMustacheBlockHelper: NSObject<GRMustacheHelper> {
514 + (id)helperWithBlock:(NSString *(^)(GRMustacheSection* section, id context))block;
515 @end
516
517 @interface GRMustacheSection: NSObject
518 // Replaced by the innerTemplateString property
519 @property (nonatomic, readonly) NSString *templateString;
520 // See the new render method
521 - (NSString *)renderObject:(id)object;
522 - (NSString *)renderObjects:(id)object, ...;
523 @end
524 ```
525
8506da0 @groue Link to http://handlebarsjs.com/
authored Apr 2, 2012
526 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 Apr 2, 2012
527
528 GRMustache1 used to parse and interpret `this` identifier is tags such as `{{this.foo}}`. GRMustache2 does no longer parse the `this` identifier.
529
5672e6d @groue wording
authored Apr 2, 2012
530 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 Apr 2, 2012
531
532
7298c29 @groue v1.13.1
authored Mar 25, 2012
533 ## v1.13.1
534
535 The deprecated class GRMustacheTemplateLoader was broken by 1.13.0. Deprecated does not mean unavailable: it is restored.
536
5e5ea55 @groue v1.13.0
authored Mar 24, 2012
537 ## v1.13.0
538
539 Deprecated class (use [GRMustacheTemplateRepository templateRepositoryWithPartialsDictionary:], or the new GRMustacheTemplateRepositoryDataSource protocol instead):
540
541 - `GRMustacheTemplateLoader`
542
543 New class:
544
545 - `GRMustacheTemplateRepository`
546
547 ```objc
548 @interface GRMustacheTemplateRepository : NSObject
549 @property (nonatomic, assign) id<GRMustacheTemplateRepositoryDataSource> dataSource;
550
551 + (id)templateRepository;
552 + (id)templateRepositoryWithOptions:(GRMustacheTemplateOptions)options;
553
554 + (id)templateRepositoryWithBaseURL:(NSURL *)URL;
555 + (id)templateRepositoryWithBaseURL:(NSURL *)URL options:(GRMustacheTemplateOptions)options;
556 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext;
557 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
558 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext;
559 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding;
560 + (id)templateRepositoryWithBaseURL:(NSURL *)URL templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
561
562 + (id)templateRepositoryWithDirectory:(NSString *)path;
563 + (id)templateRepositoryWithDirectory:(NSString *)path options:(GRMustacheTemplateOptions)options;
564 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext;
565 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
566 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding;
567 + (id)templateRepositoryWithDirectory:(NSString *)path templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
568
569 + (id)templateRepositoryWithBundle:(NSBundle *)bundle;
570 + (id)templateRepositoryWithBundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options;
571 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext;
572 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
573 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding;
574 + (id)templateRepositoryWithBundle:(NSBundle *)bundle templateExtension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
575
576 + (id)templateRepositoryWithPartialsDictionary:(NSDictionary *)partialsDictionary;
577 + (id)templateRepositoryWithPartialsDictionary:(NSDictionary *)partialsDictionary options:(GRMustacheTemplateOptions)options;
578
579 - (GRMustacheTemplate *)templateForName:(NSString *)name error:(NSError **)outError;
580 - (GRMustacheTemplate *)templateFromString:(NSString *)templateString error:(NSError **)outError;
581 ```
582
583 New protocol:
584
585 - `GRMustacheTemplateRepositoryDataSource`
586
587 ```objc
588 @protocol GRMustacheTemplateRepositoryDataSource <NSObject>
589 @required
590 - (id)templateRepository:(GRMustacheTemplateRepository *)templateRepository templateIDForName:(NSString *)name relativeToTemplateID:(id)templateID;
591 - (NSString *)templateRepository:(GRMustacheTemplateRepository *)templateRepository templateStringForTemplateID:(id)templateID error:(NSError **)outError;
592 @end
593 ```
594
6e1642d @groue v1.12.2
authored Mar 8, 2012
595 ## v1.12.2
596
887bcdb @groue RELEASE_NOTES: remove undue notifications of performance improvements
authored Jul 23, 2012
597 Restore parsing performances of v1.12.0
6e1642d @groue v1.12.2
authored Mar 8, 2012
598
71638db @groue v1.12.1
authored Mar 8, 2012
599 ## v1.12.1
600
601 Easier template debugging with `[GRMustacheInvocation description]`
602
299d3b1 @groue v1.12.0
authored Mar 4, 2012
603 ## v1.12
604
605 - **GRMustacheTemplateDelegate protocol**
606
607 Deprecated classes:
608
609 - `GRMustacheNumberFormatterHelper`
610 - `GRMustacheDateFormatterHelper`
611
d3b5626 @groue v1.11.2
authored Feb 25, 2012
612 ## v1.11.2
613
2cfb609 @groue wording
authored Feb 25, 2012
614 BOOL property custom getters can be used to control boolean sections.
d3b5626 @groue v1.11.2
authored Feb 25, 2012
615
5d95cad @groue v1.11.1
authored Feb 23, 2012
616 ## v1.11.1
617
618 Avoid deprecation warning in GRMustache headers.
619
92c07e2 @groue v1.11.0
authored Feb 23, 2012
620 ## v1.11
621
622 **API cleanup**
623
624 New GRMustacheTemplateLoader methods:
625
5e5ea55 @groue v1.13.0
authored Mar 24, 2012
626 ```objc
627 - (GRMustacheTemplate *)templateWithName:(NSString *)name error:(NSError **)outError;
628 - (GRMustacheTemplate *)templateFromString:(NSString *)templateString error:(NSError **)outError;
629 ```
92c07e2 @groue v1.11.0
authored Feb 23, 2012
630
631 New GRMustacheTemplate methods:
632
5e5ea55 @groue v1.13.0
authored Mar 24, 2012
633 ```objc
634 + (id)templateFromString:(NSString *)templateString error:(NSError **)outError;
635 + (id)templateFromString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
636 + (id)templateFromContentsOfFile:(NSString *)path error:(NSError **)outError;
637 + (id)templateFromContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
638 + (id)templateFromResource:(NSString *)name bundle:(NSBundle *)bundle error:(NSError **)outError;
639 + (id)templateFromResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
640 + (id)templateFromResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle error:(NSError **)outError;
641 + (id)templateFromResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
642 + (id)templateFromContentsOfURL:(NSURL *)url error:(NSError **)outError;
643 + (id)templateFromContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
644 ```
92c07e2 @groue v1.11.0
authored Feb 23, 2012
645
646 Deprecated GRMustacheTemplateLoader methods (use `templateWithName:error:` and `templateFromString:error:` instead):
647
5e5ea55 @groue v1.13.0
authored Mar 24, 2012
648 ```objc
649 - (GRMustacheTemplate *)parseTemplateNamed:(NSString *)name error:(NSError **)outError;
650 - (GRMustacheTemplate *)parseString:(NSString *)templateString error:(NSError **)outError;
651 ```
92c07e2 @groue v1.11.0
authored Feb 23, 2012
652
653 Deprecated GRMustacheTemplate methods (replace `parse` with `templateFrom`):
654
5e5ea55 @groue v1.13.0
authored Mar 24, 2012
655 ```objc
656 + (id)parseString:(NSString *)templateString error:(NSError **)outError;
657 + (id)parseString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
658 + (id)parseContentsOfFile:(NSString *)path error:(NSError **)outError;
659 + (id)parseContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
660 + (id)parseResource:(NSString *)name bundle:(NSBundle *)bundle error:(NSError **)outError;
661 + (id)parseResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
662 + (id)parseResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle error:(NSError **)outError;
663 + (id)parseResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
664 + (id)parseContentsOfURL:(NSURL *)url error:(NSError **)outError;
665 + (id)parseContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
666 ```
92c07e2 @groue v1.11.0
authored Feb 23, 2012
667
d5730e5 @groue v1.10.3
authored Feb 22, 2012
668 ## v1.10.3
669
670 Upgrade GRMustache, and get deprecation warnings when you use deprecated APIs. Your code will keep on running fine, though.
671
75eae3b @groue v1.10.2
authored Feb 17, 2012
672 ## v1.10.2
673
7924382 @groue v5.0.0
authored Sep 12, 2012
674 **[Performance improvements](https://github.com/groue/GRMustacheBenchmark)**
75eae3b @groue v1.10.2
authored Feb 17, 2012
675
745be05 @groue v1.10.1
authored Feb 17, 2012
676 ## v1.10.1
677
7924382 @groue v5.0.0
authored Sep 12, 2012
678 **[Performance improvements](https://github.com/groue/GRMustacheBenchmark)**
745be05 @groue v1.10.1
authored Feb 17, 2012
679
31100d3 @groue v1.10.0
authored Feb 15, 2012
680 ## v1.10
681
887bcdb @groue RELEASE_NOTES: remove undue notifications of performance improvements
authored Jul 23, 2012
682 **Improved Handlebars.js support**
31100d3 @groue v1.10.0
authored Feb 15, 2012
683
745be05 @groue v1.10.1
authored Feb 17, 2012
684 Now `{{foo/bar}}` and `{{foo.bar}}` syntaxes are both supported.
31100d3 @groue v1.10.0
authored Feb 15, 2012
685
8020800 @groue v1.9.0
authored Jan 23, 2012
686 ## v1.9
687
3293103 @groue Introduce GRMustacheNumberFormatterHelper
authored Jan 24, 2012
688 - **Better lambda encapsulation with classes conforming to the GRMustacheHelper protocol.**
689 - **Format all numbers in a section with GRMustacheNumberFormatterHelper**
f52da9d @groue README+RELEASE_NOTES for GRMustacheNumberFormatterHelper and GRMustac…
authored Jan 24, 2012
690 - **Format all dates in a section with GRMustacheDateFormatterHelper**
8020800 @groue v1.9.0
authored Jan 23, 2012
691
692 New protocol:
693
3293103 @groue Introduce GRMustacheNumberFormatterHelper
authored Jan 24, 2012
694 - `GRMustacheHelper`
695
5e5ea55 @groue v1.13.0
authored Mar 24, 2012
696 ```objc
697 @protocol GRMustacheHelper<NSObject>
698 @required
018381f @groue Remove availability macro from RELEASE_NOTES.md
authored Sep 26, 2012
699 - (NSString *)renderSection:(GRMustacheSection *)section withContext:(id)context;
5e5ea55 @groue v1.13.0
authored Mar 24, 2012
700 @end
701 ```
702
f52da9d @groue README+RELEASE_NOTES for GRMustacheNumberFormatterHelper and GRMustac…
authored Jan 24, 2012
703 New classes:
3293103 @groue Introduce GRMustacheNumberFormatterHelper
authored Jan 24, 2012
704
705 - `GRMustacheNumberFormatterHelper`
f52da9d @groue README+RELEASE_NOTES for GRMustacheNumberFormatterHelper and GRMustac…
authored Jan 24, 2012
706 - `GRMustacheDateFormatterHelper`
8020800 @groue v1.9.0
authored Jan 23, 2012
707
5e5ea55 @groue v1.13.0
authored Mar 24, 2012
708 ```objc
709 @interface GRMustacheNumberFormatterHelper : NSObject<GRMustacheHelper>
710 @property (nonatomic, readonly, retain) NSNumberFormatter *numberFormatter;
711 + (id)helperWithNumberFormatter:(NSNumberFormatter *)numberFormatter;
712 @end
713
714 @interface GRMustacheDateFormatterHelper : NSObject<GRMustacheHelper>
715 @property (nonatomic, readonly, retain) NSDateFormatter *dateFormatter;
716 + (id)helperWithDateFormatter:(NSDateFormatter *)dateFormatter;
717 @end
718 ```
719
8704042 @groue v1.8.6
authored Oct 16, 2011
720 ## v1.8.6
721
722 Fixed bug in [GRMustacheTemplate renderObjects:...]
723
d209bef @groue v1.8.5
authored Oct 14, 2011
724 ## v1.8.5
725
726 Added missing symbols from lib/libGRMustache1-ios3.a
727
edf6200 @groue v1.8.4
authored Oct 14, 2011
728 ## v1.8.4
729
d209bef @groue v1.8.5
authored Oct 14, 2011
730 Added missing symbols from lib/libGRMustache1-ios3.a and lib/libGRMustache1-ios4.a
edf6200 @groue v1.8.4
authored Oct 14, 2011
731
6a23fe6 @groue v1.8.3
authored Oct 9, 2011
732 ## v1.8.3
733
734 Availability fixes.
735
8abbac9 @groue v1.8.2
authored Oct 9, 2011
736 ## v1.8.2
737
738 Better testing of public API thanks to availability macros.
739
b643aa1 @groue v1.8.1
authored Oct 8, 2011
740 ## v1.8.1
741
742 Bug fixes
743
18dc85c @groue v1.8.0
authored Oct 8, 2011
744 ## v1.8
745
8abbac9 @groue v1.8.2
authored Oct 9, 2011
746 **GRMustache now supports the [Mustache specification v1.1.2](https://github.com/mustache/spec).**
747
748 New type and enum:
749
5e5ea55 @groue v1.13.0
authored Mar 24, 2012
750 ```objc
751 enum {
752 GRMustacheTemplateOptionNone = 0,
753 GRMustacheTemplateOptionMustacheSpecCompatibility = 0x01,
754 };
8abbac9 @groue v1.8.2
authored Oct 9, 2011
755
5e5ea55 @groue v1.13.0
authored Mar 24, 2012
756 typedef NSUInteger GRMustacheTemplateOptions;
757 ```
8abbac9 @groue v1.8.2
authored Oct 9, 2011
758
759 New GRMustache methods:
760
5e5ea55 @groue v1.13.0
authored Mar 24, 2012
761 ```objc
762 + (GRMustacheTemplateOptions)defaultTemplateOptions;
763 + (void)setDefaultTemplateOptions:(GRMustacheTemplateOptions)templateOptions;
764 ```
8abbac9 @groue v1.8.2
authored Oct 9, 2011
765
766 New GRMustacheTemplate methods:
767
5e5ea55 @groue v1.13.0
authored Mar 24, 2012
768 ```objc
769 + (id)parseString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
770 + (id)parseContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
771 + (id)parseContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
772 + (id)parseResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
773 + (id)parseResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
774 + (NSString *)renderObject:(id)object fromString:(NSString *)templateString options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
775 + (NSString *)renderObject:(id)object fromContentsOfURL:(NSURL *)url options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
776 + (NSString *)renderObject:(id)object fromContentsOfFile:(NSString *)path options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
777 + (NSString *)renderObject:(id)object fromResource:(NSString *)name bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
778 + (NSString *)renderObject:(id)object fromResource:(NSString *)name withExtension:(NSString *)ext bundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options error:(NSError **)outError;
779 ```
8abbac9 @groue v1.8.2
authored Oct 9, 2011
780
781 New GRMustacheTemplateLoader methods:
782
5e5ea55 @groue v1.13.0
authored Mar 24, 2012
783 ```objc
784 + (id)templateLoaderWithBaseURL:(NSURL *)url options:(GRMustacheTemplateOptions)options;
785 + (id)templateLoaderWithBaseURL:(NSURL *)url extension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
786 + (id)templateLoaderWithBaseURL:(NSURL *)url extension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
787 + (id)templateLoaderWithDirectory:(NSString *)path options:(GRMustacheTemplateOptions)options;
788 + (id)templateLoaderWithDirectory:(NSString *)path extension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
789 + (id)templateLoaderWithDirectory:(NSString *)path extension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
790 + (id)templateLoaderWithBundle:(NSBundle *)bundle options:(GRMustacheTemplateOptions)options;
791 + (id)templateLoaderWithBundle:(NSBundle *)bundle extension:(NSString *)ext options:(GRMustacheTemplateOptions)options;
792 + (id)templateLoaderWithBundle:(NSBundle *)bundle extension:(NSString *)ext encoding:(NSStringEncoding)encoding options:(GRMustacheTemplateOptions)options;
793 ```
8abbac9 @groue v1.8.2
authored Oct 9, 2011
794
18dc85c @groue v1.8.0
authored Oct 8, 2011
795
d08841f @groue v1.7.4
authored Sep 22, 2011
796 ## v1.7.4
797
798 Bug fix: avoid crashing when one provides uninitialized NSError* to GRMustache.
799
8059b38 @groue v1.7.3
authored Sep 17, 2011
800 ## v1.7.3
801
802 One no longer needs to add `-all_load` to the "Other Linker Flags" target option tu use GRMustache static libraries.
803
6d6e020 @groue v1.7.2
authored Jul 27, 2011
804 ## v1.7.2
805
806 - Fixed [issue #6](https://github.com/groue/GRMustache/issues/6)
807 - `[GRMustache preventNSUndefinedKeyExceptionAttack]` no longer prevents the rendering of `nil`.
808
cd4de9d @groue v1.7.1
authored Jun 25, 2011
809 ## v1.7.1
810
811 Added missing header file
812
e5d100a @groue v1.7.0
authored Jun 9, 2011
813 ## v1.7.0
814
815 **GRMustache now ships as a static library.**
816
817 See the [Embedding](https://github.com/groue/GRMustache/wiki/Embedding) wiki page in order to see how to embed GRMustache in your project.
818
819 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.
820
4373916 @groue v1.6.2
authored Jun 8, 2011
821 ## v1.6.2
822
823 **LLVM3 compatibility**
824
f19ba84 @groue v1.6.1
authored Apr 9, 2011
825 ## v1.6.1
826
827 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).
828
6b1dbf7 @groue v1.6.0
authored Mar 17, 2011
829 ## v1.6.0
830
831 **Reduced memory footprint**
832
8abbac9 @groue v1.8.2
authored Oct 9, 2011
833 New GRMustacheTemplateLoader methods:
6b1dbf7 @groue v1.6.0
authored Mar 17, 2011
834
5e5ea55 @groue v1.13.0
authored Mar 24, 2012
835 ```objc
836 + (id)templateLoaderWithDirectory:(NSString *)path;
837 + (id)templateLoaderWithDirectory:(NSString *)path extension:(NSString *)ext;
838 + (id)templateLoaderWithDirectory:(NSString *)path extension:(NSString *)ext encoding:(NSStringEncoding)encoding;
839 ```
6b1dbf7 @groue v1.6.0
authored Mar 17, 2011
840
8abbac9 @groue v1.8.2
authored Oct 9, 2011
841 Deprecated GRMustacheTemplateLoader methods (replace `BasePath` with `Directory`):
6b1dbf7 @groue v1.6.0
authored Mar 17, 2011
842
5e5ea55 @groue v1.13.0
authored Mar 24, 2012
843 ```objc
844 + (id)templateLoaderWithBasePath:(NSString *)path;
845 + (id)templateLoaderWithBasePath:(NSString *)path extension:(NSString *)ext;
846 + (id)templateLoaderWithBasePath:(NSString *)path extension:(NSString *)ext encoding:(NSStringEncoding)encoding;
847 ```
6b1dbf7 @groue v1.6.0
authored Mar 17, 2011
848
849 Bug fixes around the NSUndefinedKeyException handling when the `DEBUG` macro is set (thanks to [Mike Ash](http://www.mikeash.com/)).
850
499face @groue v1.5.2
authored Mar 8, 2011
851 ## v1.5.2
852
f19ba84 @groue v1.6.1
authored Apr 9, 2011
853 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 Mar 8, 2011
854
e0a103f @groue v1.5.1
authored Mar 3, 2011
855 ## v1.5.1
856
4031037 @groue RELEASE_NOTES wording
authored Mar 10, 2011
857 Bug fixes
e0a103f @groue v1.5.1
authored Mar 3, 2011
858
3de3613 @groue v1.5.0
authored Feb 27, 2011
859 ## v1.5.0
0915e91 @groue v1.4.1
authored Feb 26, 2011
860
4031037 @groue RELEASE_NOTES wording
authored Mar 10, 2011
861 **API simplification**
862
c5761e8 @groue RELEASE_NOTES wording
authored Mar 10, 2011
863 New GRMustacheTemplate method:
864
865 - `- (NSString *)renderObjects:(id)object, ...;`
866
867 New GRMustacheSection method:
868
869 - `- (NSString *)renderObjects:(id)object, ...;`
870
871 New class:
872
873 - `GRMustacheBlockHelper`
874
875 Deprecated class (use `id` instead when refering to a context, and use `renderObjects:` methods instead of instanciating one):
876
877 - `GRMustacheContext`
878
879 Deprecated function (use GRMustacheBlockHelper instead):
880
881 - `id GRMustacheLambdaBlockMake(NSString *(^block)(GRMustacheSection*, GRMustacheContext*));`
0915e91 @groue v1.4.1
authored Feb 26, 2011
882
a1f2cf1 @groue v1.4.0
authored Feb 26, 2011
883 ## v1.4.0
884
4031037 @groue RELEASE_NOTES wording
authored Mar 10, 2011
885 **iOS 3.0 support**
c5761e8 @groue RELEASE_NOTES wording
authored Mar 10, 2011
886
887 New `GRMustacheTemplate` methods:
888
889 - `+ (NSString *)renderObject:(id)object fromContentsOfFile:(NSString *)path error:(NSError **)outError;`
890 - `+ (id)parseContentsOfFile:(NSString *)path error:(NSError **)outError;`
891
8abbac9 @groue v1.8.2
authored Oct 9, 2011
892 New `GRMustacheTemplateLoader` methods:
c5761e8 @groue RELEASE_NOTES wording
authored Mar 10, 2011
893
894 - `+ (id)templateLoaderWithBasePath:(NSString *)path;`
895 - `+ (id)templateLoaderWithBasePath:(NSString *)path extension:(NSString *)ext;`
896 - `+ (id)templateLoaderWithBasePath:(NSString *)path extension:(NSString *)ext encoding:(NSStringEncoding)encoding;`
a1f2cf1 @groue v1.4.0
authored Feb 26, 2011
897
de489d5 @groue v1.3.3
authored Feb 5, 2011
898 ## v1.3.3
899
4031037 @groue RELEASE_NOTES wording
authored Mar 10, 2011
900 Bug fixes
de489d5 @groue v1.3.3
authored Feb 5, 2011
901
be39647 @groue v1.3.2
authored Dec 14, 2010
902 ## v1.3.2
903
4031037 @groue RELEASE_NOTES wording
authored Mar 10, 2011
904 Bug fixes
be39647 @groue v1.3.2
authored Dec 14, 2010
905
7f1e927 @groue v1.3.1
authored Dec 9, 2010
906 ## v1.3.1
907
4031037 @groue RELEASE_NOTES wording
authored Mar 10, 2011
908 Bug fixes
7f1e927 @groue v1.3.1
authored Dec 9, 2010
909
b03eb3c @groue v1.3.0
authored Dec 7, 2010
910 ## v1.3.0
911
4031037 @groue RELEASE_NOTES wording
authored Mar 10, 2011
912 **Block-less API for helpers.**
b03eb3c @groue v1.3.0
authored Dec 7, 2010
913
c5761e8 @groue RELEASE_NOTES wording
authored Mar 10, 2011
914 New classes:
915
916 - `GRMustacheContext`
917 - `GRMustacheSection`
b03eb3c @groue v1.3.0
authored Dec 7, 2010
918
c5761e8 @groue RELEASE_NOTES wording
authored Mar 10, 2011
919 New functions:
a368aaf @groue v1.2.1
authored Dec 5, 2010
920
c5761e8 @groue RELEASE_NOTES wording
authored Mar 10, 2011
921 - `id GRMustacheLambdaBlockMake(NSString *(^block)(GRMustacheSection*, GRMustacheContext*));`
922
923 Deprecated functions (use GRMustacheLambdaBlockMake instead):
924
925 - `GRMustacheLambda GRMustacheLambdaMake(NSString *(^block)(NSString *(^)(id object), id, NSString *));`
a368aaf @groue v1.2.1
authored Dec 5, 2010
926
c88c5c6 @groue v1.2.0
authored Dec 4, 2010
927 ## v1.2.0
928
4031037 @groue RELEASE_NOTES wording
authored Mar 10, 2011
929 **iOS 4.0 support**
c5761e8 @groue RELEASE_NOTES wording
authored Mar 10, 2011
930
931 Deprecated class (use `[NSNumber numberWithBool:YES]` instead of `[GRYes yes]`):
932
933 - `GRYes`
934
935 Deprecated class (use `[NSNumber numberWithBool:NO]` instead of `[GRNo no]`):
936
937 - `GRNo`
c88c5c6 @groue v1.2.0
authored Dec 4, 2010
938
16c756d @groue v1.1.6
authored Dec 1, 2010
939 ## v1.1.6
940
c5761e8 @groue RELEASE_NOTES wording
authored Mar 10, 2011
941 GRMustacheTemplateLoader subclasses can now rely on an immutable `extension` property.
16c756d @groue v1.1.6
authored Dec 1, 2010
942
0805e50 @groue v1.1.5
authored Nov 27, 2010
943 ## v1.1.5
944
4031037 @groue RELEASE_NOTES wording
authored Mar 10, 2011
945 Bug fixes
0805e50 @groue v1.1.5
authored Nov 27, 2010
946
8e257be @groue v1.1.4
authored Nov 22, 2010
947 ## v1.1.4
948
4031037 @groue RELEASE_NOTES wording
authored Mar 10, 2011
949 Bug fixes
8e257be @groue v1.1.4
authored Nov 22, 2010
950
3f89a0b @groue v1.1.3
authored Nov 21, 2010
951 ## v1.1.3
952
4031037 @groue RELEASE_NOTES wording
authored Mar 10, 2011
953 **Rendering performance improvement**
3f89a0b @groue v1.1.3
authored Nov 21, 2010
954
8dbe23f @groue v1.1.2
authored Nov 21, 2010
955 ## v1.1.2
956
887bcdb @groue RELEASE_NOTES: remove undue notifications of performance improvements
authored Jul 23, 2012
957 **Parsing performance improvement**
8dbe23f @groue v1.1.2
authored Nov 21, 2010
958
161c96c @groue v1.1.1
authored Nov 20, 2010
959 ## v1.1.1
960
4031037 @groue RELEASE_NOTES wording
authored Mar 10, 2011
961 Bug fixes
161c96c @groue v1.1.1
authored Nov 20, 2010
962
6ede60b @groue v1.1.0
authored Nov 12, 2010
963 ## v1.1.0
0219c22 @groue v1.0.0
authored Nov 12, 2010
964
c5761e8 @groue RELEASE_NOTES wording
authored Mar 10, 2011
965 New methods:
966
967 - `[GRYes yes]` responds to `boolValue`
968 - `[GRNo no]` responds to `boolValue`
6ede60b @groue v1.1.0
authored Nov 12, 2010
969
970 ## v1.0.0
971
4031037 @groue RELEASE_NOTES wording
authored Mar 10, 2011
972 **First versioned release**
Something went wrong with that request. Please try again.