inversion 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
@@ -1 +1 @@
1
- g��2M&��""����� iP��_i4��HRh ^/d���ld mi�����&2��
1
+ Xv?�Ђf�ڛ����\.K<1����ž>-��!�����Cq�*7��+f��#���܀�sw���҂�Q�
data/History.rdoc CHANGED
@@ -1,3 +1,14 @@
1
+ == v0.4.0 [2011-10-05] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ Reworked render toggling so the before/after rendering hooks are
4
+ called immediately before and after the node *would* have been
5
+ rendered. This further cleans up the conditional logic, and causes
6
+ the if/elsif/else tags to behave like you'd expect: the nodes they
7
+ demark aren't even touched if rendering is disabled.
8
+
9
+ Adjusted the other tags to account for the change.
10
+
11
+
1
12
  == v0.3.0 [2011-10-05] Michael Granger <ged@FaerieMUD.org>
2
13
 
3
14
  - Fix require loop in if/elsif tags
data/Rakefile CHANGED
@@ -43,7 +43,7 @@ end
43
43
  ENV['VERSION'] ||= hoespec.spec.version.to_s
44
44
 
45
45
  # Ensure the specs pass before checking in
46
- task 'hg:precheckin' => :spec
46
+ task 'hg:precheckin' => [:check_history, :spec]
47
47
 
48
48
  if Rake::Task.task_defined?( '.gemtest' )
49
49
  Rake::Task['.gemtest'].clear
data/lib/inversion.rb CHANGED
@@ -26,10 +26,10 @@ module Inversion
26
26
  require 'inversion/monkeypatches'
27
27
 
28
28
  # Library version constant
29
- VERSION = '0.3.0'
29
+ VERSION = '0.4.0'
30
30
 
31
31
  # Version-control revision constant
32
- REVISION = %q$Revision: cde501e6764c $
32
+ REVISION = %q$Revision: 5b1e645db600 $
33
33
 
34
34
  #
35
35
  # Logging
@@ -190,29 +190,32 @@ class Inversion::RenderState
190
190
  ### object either doesn't respond to #render or #renders as itself.
191
191
  def <<( node )
192
192
  self.log.debug "Appending a %p to %p" % [ node.class, self ]
193
- self.destination << self.make_node_comment( node ) if self.options[:debugging_comments]
194
193
  original_node = node
195
- previous_node = nil
196
-
197
- begin
198
- # Allow render to be delegated to subobjects
199
- while node.respond_to?( :render ) && node != previous_node
200
- self.log.debug " delegated rendering to: %p" % [ node ]
201
- previous_node = node
202
- node = node.render( self )
203
- end
194
+ original_node.before_rendering( self )
195
+
196
+ if self.rendering_enabled?
197
+ self.destination << self.make_node_comment( node ) if self.options[:debugging_comments]
198
+ previous_node = nil
199
+
200
+ begin
201
+ # Allow render to be delegated to subobjects
202
+ while node.respond_to?( :render ) && node != previous_node
203
+ self.log.debug " delegated rendering to: %p" % [ node ]
204
+ previous_node = node
205
+ node = node.render( self )
206
+ end
204
207
 
205
- if self.rendering_enabled?
206
208
  self.log.debug " adding a %p to the destination (%p)" %
207
209
  [ node.class, self.destination.class ]
208
210
  self.destination << node
209
211
  self.log.debug " just appended %p to %p" % [ node, self.destination ]
212
+ rescue ::StandardError => err
213
+ self.log.debug " handling a %p while rendering: %s" % [ err.class, err.message ]
214
+ self.destination << self.handle_render_error( original_node, err )
210
215
  end
211
- rescue ::StandardError => err
212
- self.log.debug " handling a %p while rendering: %s" % [ err.class, err.message ]
213
- self.destination << self.handle_render_error( original_node, err )
214
216
  end
215
217
 
218
+ original_node.after_rendering( self )
216
219
  return self
217
220
  end
218
221
 
@@ -175,15 +175,8 @@ class Inversion::Template
175
175
  self.log.info "rendering template 0x%08x" % [ self.object_id/2 ]
176
176
  state = Inversion::RenderState.new( parentstate, self.attributes, self.options, &block )
177
177
 
178
- # Pre-render hook
179
- self.walk_tree {|node| node.before_rendering(state) }
180
-
181
178
  # self.log.debug " rendering node tree: %p" % [ @node_tree ]
182
179
  self.walk_tree {|node| state << node }
183
-
184
- # Post-render hook
185
- self.walk_tree {|node| node.after_rendering(state) }
186
-
187
180
  self.log.info " done rendering template 0x%08x: %0.4fs" %
188
181
  [ self.object_id/2, state.time_elapsed ]
189
182
 
@@ -59,9 +59,15 @@ class Inversion::Template::ElseTag < Inversion::Template::Tag
59
59
  end
60
60
 
61
61
 
62
+ ### Always remder as an empty string.
63
+ def render( * )
64
+ nil
65
+ end
66
+
67
+
62
68
  ### Toggle rendering for the iftag's container if rendering hasn't yet been
63
69
  ### toggled.
64
- def render( renderstate )
70
+ def before_rendering( renderstate )
65
71
  if renderstate.tag_data[ :rendering_was_enabled ]
66
72
  self.log.debug " rendering was previously enabled: disabling"
67
73
  renderstate.disable_rendering
@@ -47,9 +47,15 @@ class Inversion::Template::ElsifTag < Inversion::Template::AttrTag
47
47
  end
48
48
 
49
49
 
50
+ ### Always remder as an empty string.
51
+ def render( * )
52
+ nil
53
+ end
54
+
55
+
50
56
  ### Toggle rendering for the iftag's container if rendering hasn't yet been
51
57
  ### toggled.
52
- def render( renderstate )
58
+ def before_rendering( renderstate )
53
59
  if renderstate.tag_data[ :rendering_was_enabled ]
54
60
  self.log.debug "Rendering was previously enabled; disabling"
55
61
  renderstate.disable_rendering
@@ -36,7 +36,7 @@ class Inversion::Template::IfTag < Inversion::Template::AttrTag
36
36
 
37
37
  # Set the tag state to track whether or not rendering has been enabled during the
38
38
  # 'if' for an 'else' or 'elsif' tag.
39
- state.with_tag_data( :rendering_was_enabled => state.rendering_enabled? ) do
39
+ state.with_tag_data( rendering_was_enabled: state.rendering_enabled? ) do
40
40
  super
41
41
  end
42
42
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inversion
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -49,11 +49,11 @@ cert_chain:
49
49
  -----END CERTIFICATE-----
50
50
 
51
51
  '
52
- date: 2011-10-05 00:00:00.000000000Z
52
+ date: 2011-10-06 00:00:00.000000000Z
53
53
  dependencies:
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: hoe-mercurial
56
- requirement: &70147534076140 !ruby/object:Gem::Requirement
56
+ requirement: &70307924560640 !ruby/object:Gem::Requirement
57
57
  none: false
58
58
  requirements:
59
59
  - - ~>
@@ -61,10 +61,10 @@ dependencies:
61
61
  version: 1.3.1
62
62
  type: :development
63
63
  prerelease: false
64
- version_requirements: *70147534076140
64
+ version_requirements: *70307924560640
65
65
  - !ruby/object:Gem::Dependency
66
66
  name: hoe-manualgen
67
- requirement: &70147534075520 !ruby/object:Gem::Requirement
67
+ requirement: &70307924560080 !ruby/object:Gem::Requirement
68
68
  none: false
69
69
  requirements:
70
70
  - - ~>
@@ -72,10 +72,10 @@ dependencies:
72
72
  version: 0.2.0
73
73
  type: :development
74
74
  prerelease: false
75
- version_requirements: *70147534075520
75
+ version_requirements: *70307924560080
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: hoe-highline
78
- requirement: &70147534074980 !ruby/object:Gem::Requirement
78
+ requirement: &70307924559340 !ruby/object:Gem::Requirement
79
79
  none: false
80
80
  requirements:
81
81
  - - ~>
@@ -83,10 +83,10 @@ dependencies:
83
83
  version: 0.0.1
84
84
  type: :development
85
85
  prerelease: false
86
- version_requirements: *70147534074980
86
+ version_requirements: *70307924559340
87
87
  - !ruby/object:Gem::Dependency
88
88
  name: rspec
89
- requirement: &70147534074360 !ruby/object:Gem::Requirement
89
+ requirement: &70307924558580 !ruby/object:Gem::Requirement
90
90
  none: false
91
91
  requirements:
92
92
  - - ~>
@@ -94,10 +94,10 @@ dependencies:
94
94
  version: 2.6.0
95
95
  type: :development
96
96
  prerelease: false
97
- version_requirements: *70147534074360
97
+ version_requirements: *70307924558580
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: tilt
100
- requirement: &70147534073820 !ruby/object:Gem::Requirement
100
+ requirement: &70307924557980 !ruby/object:Gem::Requirement
101
101
  none: false
102
102
  requirements:
103
103
  - - ~>
@@ -105,10 +105,10 @@ dependencies:
105
105
  version: 1.3.2
106
106
  type: :development
107
107
  prerelease: false
108
- version_requirements: *70147534073820
108
+ version_requirements: *70307924557980
109
109
  - !ruby/object:Gem::Dependency
110
110
  name: sinatra
111
- requirement: &70147534073200 !ruby/object:Gem::Requirement
111
+ requirement: &70307924557420 !ruby/object:Gem::Requirement
112
112
  none: false
113
113
  requirements:
114
114
  - - ~>
@@ -116,10 +116,10 @@ dependencies:
116
116
  version: 1.2.6
117
117
  type: :development
118
118
  prerelease: false
119
- version_requirements: *70147534073200
119
+ version_requirements: *70307924557420
120
120
  - !ruby/object:Gem::Dependency
121
121
  name: rack-test
122
- requirement: &70147534072680 !ruby/object:Gem::Requirement
122
+ requirement: &70307924556780 !ruby/object:Gem::Requirement
123
123
  none: false
124
124
  requirements:
125
125
  - - ~>
@@ -127,10 +127,10 @@ dependencies:
127
127
  version: 0.6.0
128
128
  type: :development
129
129
  prerelease: false
130
- version_requirements: *70147534072680
130
+ version_requirements: *70307924556780
131
131
  - !ruby/object:Gem::Dependency
132
132
  name: simplecov
133
- requirement: &70147534072100 !ruby/object:Gem::Requirement
133
+ requirement: &70307924556160 !ruby/object:Gem::Requirement
134
134
  none: false
135
135
  requirements:
136
136
  - - ~>
@@ -138,10 +138,10 @@ dependencies:
138
138
  version: 0.4.2
139
139
  type: :development
140
140
  prerelease: false
141
- version_requirements: *70147534072100
141
+ version_requirements: *70307924556160
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: hoe-manualgen
144
- requirement: &70147534071140 !ruby/object:Gem::Requirement
144
+ requirement: &70307924555720 !ruby/object:Gem::Requirement
145
145
  none: false
146
146
  requirements:
147
147
  - - ~>
@@ -149,10 +149,10 @@ dependencies:
149
149
  version: 0.2.0
150
150
  type: :development
151
151
  prerelease: false
152
- version_requirements: *70147534071140
152
+ version_requirements: *70307924555720
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: trollop
155
- requirement: &70147534069820 !ruby/object:Gem::Requirement
155
+ requirement: &70307924555160 !ruby/object:Gem::Requirement
156
156
  none: false
157
157
  requirements:
158
158
  - - ~>
@@ -160,10 +160,10 @@ dependencies:
160
160
  version: 1.16.2
161
161
  type: :development
162
162
  prerelease: false
163
- version_requirements: *70147534069820
163
+ version_requirements: *70307924555160
164
164
  - !ruby/object:Gem::Dependency
165
165
  name: highline
166
- requirement: &70147534069240 !ruby/object:Gem::Requirement
166
+ requirement: &70307924554240 !ruby/object:Gem::Requirement
167
167
  none: false
168
168
  requirements:
169
169
  - - ~>
@@ -171,10 +171,10 @@ dependencies:
171
171
  version: 1.6.2
172
172
  type: :development
173
173
  prerelease: false
174
- version_requirements: *70147534069240
174
+ version_requirements: *70307924554240
175
175
  - !ruby/object:Gem::Dependency
176
176
  name: sysexits
177
- requirement: &70147534068660 !ruby/object:Gem::Requirement
177
+ requirement: &70307924553020 !ruby/object:Gem::Requirement
178
178
  none: false
179
179
  requirements:
180
180
  - - ~>
@@ -182,10 +182,10 @@ dependencies:
182
182
  version: 1.0.2
183
183
  type: :development
184
184
  prerelease: false
185
- version_requirements: *70147534068660
185
+ version_requirements: *70307924553020
186
186
  - !ruby/object:Gem::Dependency
187
187
  name: hoe
188
- requirement: &70147534068080 !ruby/object:Gem::Requirement
188
+ requirement: &70307924552300 !ruby/object:Gem::Requirement
189
189
  none: false
190
190
  requirements:
191
191
  - - ~>
@@ -193,7 +193,7 @@ dependencies:
193
193
  version: '2.12'
194
194
  type: :development
195
195
  prerelease: false
196
- version_requirements: *70147534068080
196
+ version_requirements: *70307924552300
197
197
  description: ! 'Inversion is a templating system for Ruby. It uses the "Inversion
198
198
  of Control" principle to decouple
199
199
 
metadata.gz.sig CHANGED
Binary file