inversion 1.3.1 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/Examples.md +134 -0
  4. data/GettingStarted.md +50 -0
  5. data/Guide.md +14 -0
  6. data/{History.rdoc → History.md} +59 -43
  7. data/{README.rdoc → README.md} +43 -34
  8. data/Tags.md +555 -0
  9. data/bin/inversion +4 -8
  10. data/lib/inversion/cli/api.rb +75 -0
  11. data/lib/inversion/cli/tagtokens.rb +34 -0
  12. data/lib/inversion/cli/tree.rb +70 -0
  13. data/lib/inversion/cli.rb +406 -0
  14. data/lib/inversion/exceptions.rb +0 -1
  15. data/lib/inversion/mixins.rb +10 -11
  16. data/lib/inversion/parser.rb +5 -6
  17. data/lib/inversion/refinements.rb +18 -0
  18. data/lib/inversion/renderstate.rb +24 -25
  19. data/lib/inversion/sinatra.rb +0 -1
  20. data/lib/inversion/template/attrtag.rb +7 -5
  21. data/lib/inversion/template/begintag.rb +0 -1
  22. data/lib/inversion/template/calltag.rb +0 -1
  23. data/lib/inversion/template/codetag.rb +37 -28
  24. data/lib/inversion/template/commenttag.rb +0 -1
  25. data/lib/inversion/template/configtag.rb +3 -4
  26. data/lib/inversion/template/containertag.rb +1 -2
  27. data/lib/inversion/template/defaulttag.rb +1 -2
  28. data/lib/inversion/template/elsetag.rb +0 -1
  29. data/lib/inversion/template/elsiftag.rb +0 -1
  30. data/lib/inversion/template/endtag.rb +2 -3
  31. data/lib/inversion/template/escapetag.rb +1 -2
  32. data/lib/inversion/template/fortag.rb +2 -3
  33. data/lib/inversion/template/fragmenttag.rb +1 -2
  34. data/lib/inversion/template/iftag.rb +3 -1
  35. data/lib/inversion/template/importtag.rb +2 -3
  36. data/lib/inversion/template/includetag.rb +1 -2
  37. data/lib/inversion/template/node.rb +4 -5
  38. data/lib/inversion/template/pptag.rb +1 -2
  39. data/lib/inversion/template/publishtag.rb +2 -3
  40. data/lib/inversion/template/rescuetag.rb +1 -2
  41. data/lib/inversion/template/subscribetag.rb +3 -4
  42. data/lib/inversion/template/tag.rb +3 -4
  43. data/lib/inversion/template/textnode.rb +1 -2
  44. data/lib/inversion/template/timedeltatag.rb +1 -2
  45. data/lib/inversion/template/unlesstag.rb +0 -1
  46. data/lib/inversion/template/uriencodetag.rb +1 -2
  47. data/lib/inversion/template/yieldtag.rb +0 -1
  48. data/lib/inversion/template.rb +18 -22
  49. data/lib/inversion/tilt.rb +1 -2
  50. data/lib/inversion.rb +2 -3
  51. data/lib/roda/plugins/inversion.rb +225 -0
  52. data/spec/helpers.rb +19 -13
  53. data/spec/inversion/mixins_spec.rb +1 -1
  54. data/spec/inversion/parser_spec.rb +1 -1
  55. data/spec/inversion/refinements_spec.rb +22 -0
  56. data/spec/inversion/renderstate_spec.rb +1 -1
  57. data/spec/inversion/sinatra_spec.rb +1 -1
  58. data/spec/inversion/template/attrtag_spec.rb +1 -1
  59. data/spec/inversion/template/begintag_spec.rb +1 -1
  60. data/spec/inversion/template/calltag_spec.rb +1 -1
  61. data/spec/inversion/template/codetag_spec.rb +24 -1
  62. data/spec/inversion/template/commenttag_spec.rb +1 -1
  63. data/spec/inversion/template/configtag_spec.rb +1 -1
  64. data/spec/inversion/template/containertag_spec.rb +1 -1
  65. data/spec/inversion/template/defaulttag_spec.rb +1 -1
  66. data/spec/inversion/template/elsetag_spec.rb +1 -1
  67. data/spec/inversion/template/elsiftag_spec.rb +1 -1
  68. data/spec/inversion/template/endtag_spec.rb +1 -1
  69. data/spec/inversion/template/escapetag_spec.rb +1 -1
  70. data/spec/inversion/template/fortag_spec.rb +1 -1
  71. data/spec/inversion/template/fragmenttag_spec.rb +1 -1
  72. data/spec/inversion/template/iftag_spec.rb +1 -1
  73. data/spec/inversion/template/importtag_spec.rb +1 -1
  74. data/spec/inversion/template/includetag_spec.rb +1 -1
  75. data/spec/inversion/template/node_spec.rb +1 -1
  76. data/spec/inversion/template/pptag_spec.rb +1 -1
  77. data/spec/inversion/template/publishtag_spec.rb +1 -1
  78. data/spec/inversion/template/rescuetag_spec.rb +1 -1
  79. data/spec/inversion/template/subscribetag_spec.rb +1 -1
  80. data/spec/inversion/template/tag_spec.rb +1 -1
  81. data/spec/inversion/template/textnode_spec.rb +1 -1
  82. data/spec/inversion/template/timedeltatag_spec.rb +1 -1
  83. data/spec/inversion/template/unlesstag_spec.rb +1 -1
  84. data/spec/inversion/template/uriencodetag_spec.rb +1 -1
  85. data/spec/inversion/template/yieldtag_spec.rb +1 -1
  86. data/spec/inversion/template_spec.rb +1 -1
  87. data/spec/inversion/tilt_spec.rb +1 -1
  88. data/spec/inversion_spec.rb +1 -1
  89. data/spec/roda/plugins/inversion_spec.rb +91 -0
  90. data.tar.gz.sig +0 -0
  91. metadata +90 -58
  92. metadata.gz.sig +0 -0
  93. data/Examples.rdoc +0 -134
  94. data/GettingStarted.rdoc +0 -44
  95. data/Guide.rdoc +0 -47
  96. data/Manifest.txt +0 -86
  97. data/Rakefile +0 -7
  98. data/Tags.rdoc +0 -560
  99. data/lib/inversion/command.rb +0 -278
  100. data/lib/inversion/monkeypatches.rb +0 -21
  101. data/spec/inversion/monkeypatches_spec.rb +0 -25
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: de95b723b4e1d977b915f72d99659c4b73f6ca222afe91b4536c5e3e2c12bd73
4
- data.tar.gz: 62b09f236668d37f6e33757d7cc7db174374ae5663ad42c6bd20aa9b55c40835
3
+ metadata.gz: 772c7fe7c3b9c566e4962e424da512a6bb2f52d9aa401d20317af3a744310793
4
+ data.tar.gz: 4a7d20b35a0e5b15730fa59998ebca00f448eccc5f5f7af23718c1bf356038f6
5
5
  SHA512:
6
- metadata.gz: 1ad4969a736b028863e67d56e5b85b0ad887dcbba2313d9fe90f65f4a982216285c0dc988ba7852f23b157281395ad3dc43c78864fab233f82510d77a49bf284
7
- data.tar.gz: 5c50d1f6636a0de6c65616a4996806d20bf50ba26d4da7295edf6d7d7e4eb6fdeb1bbff6b8148bd408137ceaf4a8ed465d87ba6e2fc4ba80f2df37d7d2224ef5
6
+ metadata.gz: 2d1d273ca7ca57b36cdc411d5bba92d1b1189c26e087090cff257ff4d0f78cb25e32902f6007ea148eb49e9e9570a45802ad4187ea87688f8007621886b44090
7
+ data.tar.gz: 7d6f6e8a5868fe4f8a0f7f4835dcbfcdd66a8e06b3c2cffae7255e3b07bc70fd614c9213e0dcaaa0db40c6d7f252f89d6c8c80a8ac6ab6984e571f9458728f34
checksums.yaml.gz.sig CHANGED
Binary file
data/Examples.md ADDED
@@ -0,0 +1,134 @@
1
+ # Annotated Examples
2
+
3
+ This is a list of template examples with annotations explaining what each group of lines is doing.
4
+
5
+ ## Simple Examples
6
+
7
+ ...
8
+
9
+
10
+ ## Advanced Examples
11
+
12
+ Here's a somewhat more complex example. At our company Spime-Thorpe from above, say we're creating a system that will handle mass layoffs without the need for management to handle all those messy personal interactions. We'll need a mass-mailer for the employees that will be afforded the chance to explore their career opportunities, right? So we create a template called `overboard-mail.tmpl`:
13
+
14
+ <?config debugging_comments: true ?>
15
+ <?default grace_period to "7 days" ?>
16
+
17
+ <?begin?>
18
+ <p>Dear <?call employee.fullname ?>,</p>
19
+ <?rescue DatabaseError ?>
20
+ <p>Dear Valued Ex-Employee,</p>
21
+ <?end begin?>
22
+
23
+ <p>Congratulations! You have been selected by <?call failed_company.name ?>'s
24
+ elite management team as one of the many lucky individuals that will
25
+ enjoy the exciting challenge of pursuing other rewarding employment
26
+ opportunities!</p>
27
+
28
+ <p><em>Kudos!</em></p>
29
+
30
+ <p>You will find your accounts have been disabled, your desk has been helpfully
31
+ cleared out for you, and all of your personal effects packaged up and
32
+ delivered to your address of record approximately
33
+ <?timedelta tracking_info.delivery_date ?>:</p>
34
+
35
+ <?for line in employee.address ?>
36
+ <?attr line ?><br />
37
+ <?end for ?>
38
+
39
+ <p>Please visit your <a href="[?call config.overboard_url ?]/[?uriencode
40
+ failed_company.id ?]/[?uriencode employee.id ?]">customized Man OverBoard
41
+ transition site</a> immediately:</p>
42
+
43
+ <p>This will acknowledge that you have received this message, and automatically
44
+ disable your email account. Be sure and save this message!</p>
45
+
46
+ <?if employee.severance_amount.nonzero? ?>
47
+ <p>Failure to acknowledge this message within <?attr grace_period ?> could result
48
+ in delay of your final severance pay, in the amount of
49
+ <?call "$%0.2f" % employee.severance_amount ?>.</p>
50
+ <?else?>
51
+ <p>Failure to acknowledge this message within <?attr grace_period ?> will
52
+ result in automatic forfeiture of your numerous Man Overboard package benefits.</p>
53
+ <?end if?>
54
+
55
+ <?comment Disabled at client request ?>
56
+ If you have any questions or concerns, please don't hesitate to contact your
57
+ friendly Spime-Thorpe <a href="mailto:salesteam2@spime-thorpe.com">representative</a>.
58
+ <?end comment ?>
59
+
60
+ <p>Good Luck,<br />
61
+ Your friends at Spime-Thorpe, Inc!<br />
62
+ <a href="http://www.spime-thorpe.com/">http://www.spime-thorpe.com/</a></p>
63
+
64
+ When wrapped with a layout template, here's what this renders as:
65
+
66
+ <?example { language: xml, caption: "The rendered output for one lucky individual" } ?>
67
+ <!DOCTYPE html>
68
+ <!--
69
+
70
+ Spime-Thorpe!
71
+ $Id$
72
+
73
+ -->
74
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
75
+ <head>
76
+ <title>Spime-Thorpe: Untitled</title>
77
+
78
+ <link rel="stylesheet" src="/css/base.css" type="text/css" />
79
+
80
+ <script type="text/javascript" src="/js/jquery-latest.min.js"></script>
81
+
82
+ </head>
83
+ <body>
84
+
85
+ <header>
86
+ <hgroup>
87
+ <h1>Spime-Thorpe</h1>
88
+ <h2></h2>
89
+ </hgroup>
90
+ </header>
91
+
92
+ <section id="content">
93
+ <p>Dear James Random,</p>
94
+
95
+ <p>Congratulations! You have been selected by Widgets R Us's
96
+ elite management team as one of the many lucky individuals that will
97
+ enjoy the exciting challenge of pursuing other rewarding employment
98
+ opportunities!</p>
99
+
100
+ <p><em>Kudos!</em></p>
101
+
102
+ <p>You will find your accounts have been disabled, your desk has been helpfully
103
+ cleared out for you, and all of your personal effects packaged up and
104
+ delivered to your address of record approximately
105
+ 3 days ago:</p>
106
+
107
+ 1213 NE. Winding Road<br />
108
+ Syracuse, NY 100213<br />
109
+
110
+ <p>Please visit your <a href="http://failedcompany.spime-thorpe.com/overboard/a18661/1881">
111
+ customized Man OverBoard transition site</a> immediately:</p>
112
+
113
+ <p>This will acknowledge that you have received this message, and automatically
114
+ disable your email account. Be sure and save this message!</p>
115
+
116
+ <p>Failure to acknowledge this message within 11 days could result
117
+ in delay of your final severance pay, in the amount of
118
+ $12.81.</p>
119
+
120
+
121
+ <p>Good Luck,<br />
122
+ Your friends at Spime-Thorpe, Inc!<br />
123
+ <a href="http://www.spime-thorpe.com/">http://www.spime-thorpe.com/</a></p>
124
+ </section>
125
+
126
+ <footer>
127
+ <section id="copyright">Copyright 2011, Spime-Thorpe</section>
128
+ </footer>
129
+
130
+ </body>
131
+ </html>
132
+
133
+ This example can be found in the Inversion repository, in the `experiments` directory.
134
+
data/GettingStarted.md ADDED
@@ -0,0 +1,50 @@
1
+ # Getting Started
2
+
3
+ ## Requirements
4
+
5
+ - Ruby 2.7.5 or later
6
+
7
+
8
+ ## Installation
9
+
10
+ $ gem install inversion
11
+
12
+
13
+ ## Basic Usage
14
+
15
+ Inversion, like most other templating systems, works by giving you a way of
16
+ defining the static parts of your output, and then letting you combine that at
17
+ a later point with the dynamic parts:
18
+
19
+ Create the template and use it to render an exciting message:
20
+
21
+ tmpl = Inversion::Template.new( "Hello, <?attr name ?>!" )
22
+ tmpl.name = "World"
23
+ puts tmpl.render
24
+
25
+ The `<?attr name ?>` tag defines the _name_ accessor on the
26
+ [template](rdoc-ref:Templates) object, the value of which is substituted for
27
+ any occurrences of `name` in the template:
28
+
29
+ Hello, World!
30
+
31
+ This by itself isn't fantastically useful, but it does illustrate one of the
32
+ ways in which Inversion is different: the program and the template share data
33
+ through an API, instead of through a complex data structure, which establishes
34
+ a clear delineation between what responsibility is the program's and which is
35
+ the template's. The program doesn't have to know how the view uses the data
36
+ it's given, and tests of the controller can substitute a Mock Object for the
37
+ template to test the interaction between the two instead of having to match
38
+ patterns in the eventual output like an integration test.
39
+
40
+ You can also interact with the values set in the template:
41
+
42
+ Name: <?attr employee.full_name ?>
43
+
44
+ This will call the #full_name method on whatever is set as the `employee`
45
+ attribute when rendered, and the result will take the place of the tag.
46
+
47
+ Inversion also comes with a collection of [other tags](rdoc-ref:Tags) that
48
+ provide flow control, exception-handling, etc.
49
+
50
+
data/Guide.md ADDED
@@ -0,0 +1,14 @@
1
+ # Inversion User's Guide
2
+
3
+ Inversion is a templating system for Ruby. It uses the Inversion of Control principle to decouple
4
+ the contents and structure of the template from the code that uses it, making it easier to use,
5
+ test-friendly, and clean.
6
+
7
+ [Getting Started](rdoc-ref:GettingStarted) goes over the requirements, installation, and basic usage of the library.
8
+
9
+ The rdoc-ref:Templates topic has more details about how to load templates and control their behavior with options.
10
+
11
+ When you're ready to start making your own templates, there's a quick-reference for the list of built-in rdoc-ref:Tags, too.
12
+
13
+ Finally, there are a number of [Annotated Examples](rdoc-ref:Examples) that illustrate how to solve common problems while templating.
14
+
@@ -1,8 +1,24 @@
1
- = Release History for inversion
1
+ # Release History for inversion
2
2
 
3
3
  ---
4
4
 
5
- == v1.3.1 [2020-09-29] Michael Granger <ged@faeriemud.org>
5
+ ## v1.5.0 [2023-04-20] Mahlon E. Smith <mahlon@martini.nu>
6
+
7
+ Improvements:
8
+
9
+ - Add Roda framework (https://roda.jeremyevans.net/) plugin support.
10
+
11
+
12
+ ## v1.4.0 [2022-12-21] Michael Granger <ged@faeriemud.org>
13
+
14
+ Improvements:
15
+
16
+ - Update for Ruby 3, modernize RSpec setup
17
+ - Convert CLI to GLI+TTY
18
+ - Fix up error class in codetag.
19
+
20
+
21
+ ## v1.3.1 [2020-09-29] Michael Granger <ged@faeriemud.org>
6
22
 
7
23
  Improvements:
8
24
 
@@ -10,14 +26,14 @@ Improvements:
10
26
  - Handle HTML encoding for uriencoding tag ourselves
11
27
 
12
28
 
13
- == v1.3.0 [2020-04-08] Mahlon E. Smith <mahlon@martini.nu>
29
+ ## v1.3.0 [2020-04-08] Mahlon E. Smith <mahlon@martini.nu>
14
30
 
15
31
  - Use safe_yaml when deserializing config tag contents.
16
32
  - Un-hoeify.
17
33
  - Updates for Ruby 2.7.
18
34
 
19
35
 
20
- == v1.2.0 [2019-05-14] Michael Granger <ged@FaerieMUD.org>
36
+ ## v1.2.0 [2019-05-14] Michael Granger <ged@FaerieMUD.org>
21
37
 
22
38
  Enhancements:
23
39
 
@@ -26,14 +42,14 @@ Enhancements:
26
42
  'decorators' optional.
27
43
 
28
44
 
29
- == v1.1.1 [2017-11-13] Michael Granger <ged@FaerieMUD.org>
45
+ ## v1.1.1 [2017-11-13] Michael Granger <ged@FaerieMUD.org>
30
46
 
31
47
  Bugfixes:
32
48
 
33
49
  - Yield subarrays in `each` tags when there's only one block argument (#3).
34
50
 
35
51
 
36
- == v1.1.0 [2017-08-17] Mahlon E. Smith <mahlon@martini.nu>
52
+ ## v1.1.0 [2017-08-17] Mahlon E. Smith <mahlon@martini.nu>
37
53
 
38
54
  Enhancements:
39
55
 
@@ -44,17 +60,17 @@ Enhancements:
44
60
  parents matcher patterns.
45
61
 
46
62
 
47
- == v1.0.0 [2017-01-16] Michael Granger <ged@FaerieMUD.org>
63
+ ## v1.0.0 [2017-01-16] Michael Granger <ged@FaerieMUD.org>
48
64
 
49
65
  Mark as stable, update dependencies.
50
66
 
51
67
 
52
- == v0.18.0 [2015-10-01] Michael Granger <ged@FaerieMUD.org>
68
+ ## v0.18.0 [2015-10-01] Michael Granger <ged@FaerieMUD.org>
53
69
 
54
70
  Add a `strict_attributes` option for templates.
55
71
 
56
72
 
57
- == v0.17.4 [2015-07-08] Michael Granger <ged@FaerieMUD.org>
73
+ ## v0.17.4 [2015-07-08] Michael Granger <ged@FaerieMUD.org>
58
74
 
59
75
  Fixes:
60
76
 
@@ -62,14 +78,14 @@ Fixes:
62
78
  Galanakis <rob.galanakis@gmail.com>.
63
79
 
64
80
 
65
- == v0.17.3 [2015-02-16] Michael Granger <ged@FaerieMUD.org>
81
+ ## v0.17.3 [2015-02-16] Michael Granger <ged@FaerieMUD.org>
66
82
 
67
83
  - Performance fix: Re-comment the #inspect logging message
68
84
  in the RenderState
69
85
  - Updated tag docs
70
86
 
71
87
 
72
- == v0.17.2 [2015-01-22] Michael Granger <ged@FaerieMUD.org>
88
+ ## v0.17.2 [2015-01-22] Michael Granger <ged@FaerieMUD.org>
73
89
 
74
90
  - Fix a bug with the fragment tag.
75
91
 
@@ -77,35 +93,35 @@ Fragments will now propagate to the container template when they're
77
93
  added by inner templates.
78
94
 
79
95
 
80
- == v0.17.1 [2015-01-15] Michael Granger <ged@FaerieMUD.org>
96
+ ## v0.17.1 [2015-01-15] Michael Granger <ged@FaerieMUD.org>
81
97
 
82
98
  Re-push to fix a misbuilt gem.
83
99
 
84
100
 
85
- == v0.17.0 [2015-01-15] Michael Granger <ged@FaerieMUD.org>
101
+ ## v0.17.0 [2015-01-15] Michael Granger <ged@FaerieMUD.org>
86
102
 
87
103
  Support snakecase tag names/tag filenames
88
104
 
89
105
 
90
- == v0.16.0 [2015-01-14] Michael Granger <ged@FaerieMUD.org>
106
+ ## v0.16.0 [2015-01-14] Michael Granger <ged@FaerieMUD.org>
91
107
 
92
108
  Add support for loading templates from an alternate path
93
109
  via :template_paths option to Inversion::Template.load.
94
110
 
95
111
 
96
- == v0.15.0 [2014-11-24] Michael Granger <ged@FaerieMUD.org>
112
+ ## v0.15.0 [2014-11-24] Michael Granger <ged@FaerieMUD.org>
97
113
 
98
114
  Add a mechanism to allow tags to extend the template.
99
115
 
100
116
 
101
- == v0.14.0 [2014-11-05] Michael Granger <ged@FaerieMUD.org>
117
+ ## v0.14.0 [2014-11-05] Michael Granger <ged@FaerieMUD.org>
102
118
 
103
119
  - Add the fragment tag and docs
104
120
  - Remove old manual doc artifacts. Add documentation for the
105
121
  'begin/rescue' and 'default' tags.
106
122
 
107
123
 
108
- == v0.13.0 [2014-04-23] Michael Granger <ged@FaerieMUD.org>
124
+ ## v0.13.0 [2014-04-23] Michael Granger <ged@FaerieMUD.org>
109
125
 
110
126
  - Carry global configuration into instantiated template options.
111
127
  - Documentation update.
@@ -113,90 +129,90 @@ Add a mechanism to allow tags to extend the template.
113
129
  (Never released.)
114
130
 
115
131
 
116
- == v0.12.3 [2013-09-20] Michael Granger <ged@FaerieMUD.org>
132
+ ## v0.12.3 [2013-09-20] Michael Granger <ged@FaerieMUD.org>
117
133
 
118
134
  - Don't deep_copy IOs or Tempfiles (bugfix).
119
135
 
120
136
 
121
- == v0.12.2 [2013-06-19] Michael Granger <ged@FaerieMUD.org>
137
+ ## v0.12.2 [2013-06-19] Michael Granger <ged@FaerieMUD.org>
122
138
 
123
139
  - Fix propagation of config tags into subtemplates (fixes #1)
124
140
  - Use replacement in transcoding instead of raising encoding errors
125
141
 
126
142
 
127
- == v0.12.1 [2013-03-05] Michael Granger <ged@FaerieMUD.org>
143
+ ## v0.12.1 [2013-03-05] Michael Granger <ged@FaerieMUD.org>
128
144
 
129
145
  A bunch of optimization and inspect-encoding fixes.
130
146
 
131
147
 
132
- == v0.12.0 [2013-03-01] Michael Granger <ged@FaerieMUD.org>
148
+ ## v0.12.0 [2013-03-01] Michael Granger <ged@FaerieMUD.org>
133
149
 
134
150
  - Make exceptions rendered as comments include the backtrace if
135
151
  debugging comments are enabled.
136
152
 
137
153
 
138
- == v0.11.2 [2012-09-17] Michael Granger <ged@FaerieMUD.org>
154
+ ## v0.11.2 [2012-09-17] Michael Granger <ged@FaerieMUD.org>
139
155
 
140
156
  - [bugfix] Don't cast enumerated values in for tags to Arrays.
141
157
 
142
158
 
143
- == v0.11.1 [2012-09-17] Michael Granger <ged@FaerieMUD.org>
159
+ ## v0.11.1 [2012-09-17] Michael Granger <ged@FaerieMUD.org>
144
160
 
145
161
  - [bugfix] Make subscriptions get nodes that were already published
146
162
 
147
163
 
148
- == v0.11.0 [2012-07-06] Michael Granger <ged@FaerieMUD.org>
164
+ ## v0.11.0 [2012-07-06] Michael Granger <ged@FaerieMUD.org>
149
165
 
150
166
  - Automatically transcode output according to the registered encoding
151
167
  if the template is created with one
152
168
 
153
169
 
154
- == v0.10.2 [2012-06-27] Mahlon E. Smith <mahlon@martini.nu>
170
+ ## v0.10.2 [2012-06-27] Mahlon E. Smith <mahlon@martini.nu>
155
171
 
156
172
  - Bugfix: Don't dup Classes and Modules in template attributes.
157
173
  - Optimization: Don't needlessly duplicate the node tree on template
158
174
  duplication.
159
175
 
160
176
 
161
- == v0.10.1 [2012-06-22] Michael Granger <ged@FaerieMUD.org>
177
+ ## v0.10.1 [2012-06-22] Michael Granger <ged@FaerieMUD.org>
162
178
 
163
179
  - Bugfix: duplicated templates get distinct copies of their attributes.
164
180
 
165
181
 
166
- == v0.10.0 [2012-05-07] Michael Granger <ged@FaerieMUD.org>
182
+ ## v0.10.0 [2012-05-07] Michael Granger <ged@FaerieMUD.org>
167
183
 
168
184
  - Added signature for changeset 9d9c49d532be
169
185
 
170
- == v0.10.0 [2012-05-07] Michael Granger <ged@FaerieMUD.org>
186
+ ## v0.10.0 [2012-05-07] Michael Granger <ged@FaerieMUD.org>
171
187
 
172
188
  - Convert to Loggability for logging.
173
189
 
174
190
 
175
- == v0.9.0 [2012-04-24] Michael Granger <ged@FaerieMUD.org>
191
+ ## v0.9.0 [2012-04-24] Michael Granger <ged@FaerieMUD.org>
176
192
 
177
193
  - Split the template path out from the config into a class instance variable.
178
194
  - Documentation update.
179
195
 
180
196
 
181
- == v0.8.0 [2012-04-01] Michael Granger <ged@FaerieMUD.org>
197
+ ## v0.8.0 [2012-04-01] Michael Granger <ged@FaerieMUD.org>
182
198
 
183
199
  - Optimization fixes
184
200
  - Fixed rendering flow control to not use a begin/rescue.
185
201
 
186
202
 
187
- == v0.7.0 [2012-03-29] Michael Granger <ged@FaerieMUD.org>
203
+ ## v0.7.0 [2012-03-29] Michael Granger <ged@FaerieMUD.org>
188
204
 
189
205
  - Switch to a much more flexible way to render tag bodies. This should
190
206
  resolve most of the problems we've encountered with complex templates.
191
207
 
192
208
 
193
- == v0.6.1 [2012-03-16] Michael Granger <ged@FaerieMUD.org>
209
+ ## v0.6.1 [2012-03-16] Michael Granger <ged@FaerieMUD.org>
194
210
 
195
211
  - Commented out some of the more expensive debug logging for an order
196
212
  of magnitude increase in render speed.
197
213
 
198
214
 
199
- == v0.6.0 [2012-03-13] Michael Granger <ged@FaerieMUD.org>
215
+ ## v0.6.0 [2012-03-13] Michael Granger <ged@FaerieMUD.org>
200
216
 
201
217
  - Fix a bug with "for" tag iteration over complex data structures
202
218
  - Add a configurable delay for checking for changes on file-based
@@ -206,13 +222,13 @@ A bunch of optimization and inspect-encoding fixes.
206
222
  - Handle Configurability's configure-with-defaults call.
207
223
 
208
224
 
209
- == v0.5.0 [2012-01-05] Michael Granger <ged@FaerieMUD.org>
225
+ ## v0.5.0 [2012-01-05] Michael Granger <ged@FaerieMUD.org>
210
226
 
211
227
  Added an encoding option to Inversion::Template.load for
212
228
  specifying the encoding of the template source.
213
229
 
214
230
 
215
- == v0.4.0 [2011-10-05] Michael Granger <ged@FaerieMUD.org>
231
+ ## v0.4.0 [2011-10-05] Michael Granger <ged@FaerieMUD.org>
216
232
 
217
233
  Reworked render toggling so the before/after rendering hooks are
218
234
  called immediately before and after the node *would* have been
@@ -223,14 +239,14 @@ demark aren't even touched if rendering is disabled.
223
239
  Adjusted the other tags to account for the change.
224
240
 
225
241
 
226
- == v0.3.0 [2011-10-05] Michael Granger <ged@FaerieMUD.org>
242
+ ## v0.3.0 [2011-10-05] Michael Granger <ged@FaerieMUD.org>
227
243
 
228
244
  - Fix require loop in if/elsif tags
229
245
  - Fixing a problem with HTML escaping of objects other than Strings
230
246
  - Added render timing (Inversion::RenderState#time_elapsed)
231
247
 
232
248
 
233
- == v0.2.0 [2011-09-27] Michael Granger <ged@FaerieMUD.org>
249
+ ## v0.2.0 [2011-09-27] Michael Granger <ged@FaerieMUD.org>
234
250
 
235
251
  - Bugfixes (#1, #2)
236
252
  - Renamed Inversion::Template::Parser to Inversion::Parser
@@ -238,18 +254,18 @@ Adjusted the other tags to account for the change.
238
254
  per-render basis.
239
255
 
240
256
 
241
- == v0.1.1 [2011-09-23] Michael Granger <ged@FaerieMUD.org>
257
+ ## v0.1.1 [2011-09-23] Michael Granger <ged@FaerieMUD.org>
242
258
 
243
259
  - Bugfix for the Subscribe tag.
244
260
 
245
261
 
246
- == v0.1.0 [2011-09-23] Michael Granger <ged@FaerieMUD.org>
262
+ ## v0.1.0 [2011-09-23] Michael Granger <ged@FaerieMUD.org>
247
263
 
248
264
  - Added template reloading via Inversion::Template#changed?
249
265
  and #reload.
250
266
 
251
267
 
252
- == v0.0.4 [2011-09-21] Michael Granger <ged@FaerieMUD.org>
268
+ ## v0.0.4 [2011-09-21] Michael Granger <ged@FaerieMUD.org>
253
269
 
254
270
  - Avoid Pathname#expand_path in Inversion::Template.load
255
271
  [optimization]
@@ -258,17 +274,17 @@ Adjusted the other tags to account for the change.
258
274
  - Added a manual
259
275
 
260
276
 
261
- == v0.0.3 [2011-08-15] Michael Granger <ged@FaerieMUD.org>
277
+ ## v0.0.3 [2011-08-15] Michael Granger <ged@FaerieMUD.org>
262
278
 
263
279
  - Dependency fix
264
280
 
265
281
 
266
- == v0.0.2 [2011-08-15] Michael Granger <ged@FaerieMUD.org>
282
+ ## v0.0.2 [2011-08-15] Michael Granger <ged@FaerieMUD.org>
267
283
 
268
284
  - Packaging fix
269
285
 
270
286
 
271
- == v0.0.1 [2011-02-02] Michael Granger <ged@FaerieMUD.org>
287
+ ## v0.0.1 [2011-02-02] Michael Granger <ged@FaerieMUD.org>
272
288
 
273
289
  Initial release.
274
290