inversion 0.11.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data.tar.gz.sig +0 -0
- data/ChangeLog +21 -2
- data/History.rdoc +5 -0
- data/lib/inversion.rb +2 -2
- data/lib/inversion/renderstate.rb +15 -2
- data/lib/inversion/template/publishtag.rb +4 -1
- data/spec/inversion/template/publishtag_spec.rb +1 -1
- data/spec/inversion/template/subscribetag_spec.rb +10 -1
- metadata +2 -2
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/ChangeLog
CHANGED
@@ -1,10 +1,29 @@
|
|
1
|
+
2012-09-12 Michael Granger <ged@FaerieMUD.org>
|
2
|
+
|
3
|
+
* README.rdoc, Rakefile, Tags.rdoc, lib/inversion/template.rb,
|
4
|
+
lib/inversion/template/tag.rb, lib/inversion/tilt.rb:
|
5
|
+
Integrated the manual with regular API docs
|
6
|
+
[4c3cde09af11] [apidocs.patch, qbase, qtip, tip]
|
7
|
+
|
1
8
|
2012-07-06 Michael Granger <ged@FaerieMUD.org>
|
2
9
|
|
10
|
+
* .hgtags:
|
11
|
+
Added tag v0.11.0 for changeset 8e7ee4f29874
|
12
|
+
[71c2a12d9df0] [qparent]
|
13
|
+
|
14
|
+
* .hgsigs:
|
15
|
+
Added signature for changeset 92d48ef3085e
|
16
|
+
[8e7ee4f29874] [v0.11.0]
|
17
|
+
|
18
|
+
* History.rdoc, lib/inversion.rb:
|
19
|
+
Bump the minor version, update history.
|
20
|
+
[92d48ef3085e]
|
21
|
+
|
3
22
|
* lib/inversion/renderstate.rb, lib/inversion/template.rb,
|
4
23
|
spec/inversion/renderstate_spec.rb:
|
5
24
|
Transcode output according to the :encoding option if set on a
|
6
25
|
template
|
7
|
-
[2202c6ed520b]
|
26
|
+
[2202c6ed520b]
|
8
27
|
|
9
28
|
* lib/inversion/mixins.rb:
|
10
29
|
Don't try to deep copy Encoding objects, either
|
@@ -64,7 +83,7 @@
|
|
64
83
|
|
65
84
|
* .rvm.gems:
|
66
85
|
Bumping Loggability dependency for inheritance bugfix
|
67
|
-
[b65ce51ca6ee]
|
86
|
+
[b65ce51ca6ee] [github/master]
|
68
87
|
|
69
88
|
2012-05-10 Michael Granger <ged@FaerieMUD.org>
|
70
89
|
|
data/History.rdoc
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
== v0.11.1 [2012-09-17] Michael Granger <ged@FaerieMUD.org>
|
2
|
+
|
3
|
+
- [bugfix] Make subscriptions get nodes that were already published
|
4
|
+
|
5
|
+
|
1
6
|
== v0.11.0 [2012-07-06] Michael Granger <ged@FaerieMUD.org>
|
2
7
|
|
3
8
|
- Automatically transcode output according to the registered encoding
|
data/lib/inversion.rb
CHANGED
@@ -25,10 +25,10 @@ module Inversion
|
|
25
25
|
warn ">>> Inversion requires Ruby 1.9.2 or later. <<<" if RUBY_VERSION < '1.9.2'
|
26
26
|
|
27
27
|
# Library version constant
|
28
|
-
VERSION = '0.11.
|
28
|
+
VERSION = '0.11.1'
|
29
29
|
|
30
30
|
# Version-control revision constant
|
31
|
-
REVISION = %q$Revision:
|
31
|
+
REVISION = %q$Revision: cca3daa4a649 $
|
32
32
|
|
33
33
|
|
34
34
|
### Get the Inversion version.
|
@@ -100,8 +100,10 @@ class Inversion::RenderState
|
|
100
100
|
@destinations = [ @output ]
|
101
101
|
@tag_data = [ {} ]
|
102
102
|
|
103
|
-
# Hash of subscribed Nodes, keyed by the subscription key
|
104
|
-
|
103
|
+
# Hash of subscribed Nodes and published data, keyed by the subscription key
|
104
|
+
# as a Symbol
|
105
|
+
@subscriptions = Hash.new {|hsh, k| hsh[k] = [] } # Auto-vivify to an Array
|
106
|
+
@published_nodes = Hash.new {|hsh, k| hsh[k] = [] }
|
105
107
|
|
106
108
|
end
|
107
109
|
|
@@ -122,6 +124,9 @@ class Inversion::RenderState
|
|
122
124
|
# Subscribe placeholders for publish/subscribe
|
123
125
|
attr_reader :subscriptions
|
124
126
|
|
127
|
+
# Published nodes, keyed by subscription
|
128
|
+
attr_reader :published_nodes
|
129
|
+
|
125
130
|
# The stack of rendered output destinations, most-recent last.
|
126
131
|
attr_reader :destinations
|
127
132
|
|
@@ -313,6 +318,7 @@ class Inversion::RenderState
|
|
313
318
|
# [ nodes.length, subscriber, subscriber.class ]
|
314
319
|
subscriber.publish( *nodes )
|
315
320
|
end
|
321
|
+
self.published_nodes[ key ].concat( nodes )
|
316
322
|
end
|
317
323
|
alias_method :publish_nodes, :publish
|
318
324
|
|
@@ -320,7 +326,14 @@ class Inversion::RenderState
|
|
320
326
|
### Subscribe the given +node+ to nodes published with the specified +key+.
|
321
327
|
def subscribe( key, node )
|
322
328
|
key = key.to_sym
|
329
|
+
self.log.debug "Adding subscription to %p nodes for %p" % [ key, node ]
|
323
330
|
self.subscriptions[ key ] << node
|
331
|
+
# self.log.debug " now have subscriptions for: %p" % [ self.subscriptions.keys ]
|
332
|
+
if self.published_nodes.key?( key )
|
333
|
+
self.log.debug " re-publishing %d %p nodes to late subscriber" %
|
334
|
+
[ self.published_nodes[key].length, key ]
|
335
|
+
node.publish( *self.published_nodes[key] )
|
336
|
+
end
|
324
337
|
end
|
325
338
|
|
326
339
|
|
@@ -54,9 +54,12 @@ class Inversion::Template::PublishTag < Inversion::Template::Tag
|
|
54
54
|
self.log.debug "Publishing %d nodes as %s" % [ self.subnodes.length, self.key ]
|
55
55
|
rendered_nodes = []
|
56
56
|
renderstate.with_destination( rendered_nodes ) do
|
57
|
-
self.render_subnodes( renderstate )
|
57
|
+
sn = self.render_subnodes( renderstate )
|
58
|
+
self.log.debug " subnodes are: %p" % [ sn ]
|
59
|
+
sn
|
58
60
|
end
|
59
61
|
|
62
|
+
self.log.debug " rendered nodes are: %p" % [ rendered_nodes ]
|
60
63
|
renderstate.publish( self.key, *rendered_nodes ) unless rendered_nodes.empty?
|
61
64
|
|
62
65
|
return nil
|
@@ -41,7 +41,7 @@ describe Inversion::Template::PublishTag do
|
|
41
41
|
it "raises a parse error if the body isn't a simple attribute" do
|
42
42
|
expect {
|
43
43
|
Inversion::Template::PublishTag.new( 'a.non-identifier' )
|
44
|
-
}.
|
44
|
+
}.to raise_exception( Inversion::ParseError, /malformed key/i )
|
45
45
|
end
|
46
46
|
|
47
47
|
|
@@ -30,7 +30,7 @@ describe Inversion::Template::SubscribeTag do
|
|
30
30
|
it "raises a parse error if the key isn't a simple attribute" do
|
31
31
|
expect {
|
32
32
|
Inversion::Template::SubscribeTag.new( 'a.non-identifier' )
|
33
|
-
}.
|
33
|
+
}.to raise_exception( Inversion::ParseError, /malformed subscribe/i )
|
34
34
|
end
|
35
35
|
|
36
36
|
it "renders the nodes published by an immediate subtemplate with the same key" do
|
@@ -42,6 +42,15 @@ describe Inversion::Template::SubscribeTag do
|
|
42
42
|
template.render.should == '--a style--(subtemplate)'
|
43
43
|
end
|
44
44
|
|
45
|
+
it "renders nodes published by an immediate subtemplate that's rendered before it" do
|
46
|
+
template = Inversion::Template.new( '--<?attr subtemplate ?>--<?subscribe stylesheets ?>' )
|
47
|
+
subtemplate = Inversion::Template.new( '<?publish stylesheets ?>a style<?end?>(subtemplate)' )
|
48
|
+
|
49
|
+
template.subtemplate = subtemplate
|
50
|
+
|
51
|
+
template.render.should == '--(subtemplate)--a style'
|
52
|
+
end
|
53
|
+
|
45
54
|
it "doesn't render anything if there are no publications with its key" do
|
46
55
|
template = Inversion::Template.new( '--<?subscribe nostylesheets ?>--<?attr subtemplate ?>' )
|
47
56
|
subtemplate = Inversion::Template.new( '<?publish stylesheets ?>a style<?end?>(subtemplate)' )
|
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.11.
|
4
|
+
version: 0.11.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -37,7 +37,7 @@ cert_chain:
|
|
37
37
|
YUhDS0xaZFNLai9SSHVUT3QrZ2JsUmV4OEZBaDhOZUEKY21saFhlNDZwWk5K
|
38
38
|
Z1dLYnhaYWg4NWpJang5NWhSOHZPSStOQU01aUg5a09xSzEzRHJ4YWNUS1Bo
|
39
39
|
cWo1UGp3RgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
|
40
|
-
date: 2012-
|
40
|
+
date: 2012-09-17 00:00:00.000000000 Z
|
41
41
|
dependencies:
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: loggability
|
metadata.gz.sig
CHANGED
Binary file
|