inversion 0.10.2 → 0.11.0
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 +27 -1
- data/History.rdoc +6 -0
- data/lib/inversion.rb +2 -2
- data/lib/inversion/mixins.rb +1 -1
- data/lib/inversion/renderstate.rb +11 -3
- data/lib/inversion/template.rb +2 -3
- data/spec/inversion/renderstate_spec.rb +20 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/ChangeLog
CHANGED
@@ -1,10 +1,36 @@
|
|
1
|
+
2012-07-06 Michael Granger <ged@FaerieMUD.org>
|
2
|
+
|
3
|
+
* lib/inversion/renderstate.rb, lib/inversion/template.rb,
|
4
|
+
spec/inversion/renderstate_spec.rb:
|
5
|
+
Transcode output according to the :encoding option if set on a
|
6
|
+
template
|
7
|
+
[2202c6ed520b] [tip]
|
8
|
+
|
9
|
+
* lib/inversion/mixins.rb:
|
10
|
+
Don't try to deep copy Encoding objects, either
|
11
|
+
[424709b51350]
|
12
|
+
|
13
|
+
2012-06-27 Michael Granger <ged@FaerieMUD.org>
|
14
|
+
|
15
|
+
* .hgtags:
|
16
|
+
Added tag v0.10.2 for changeset 043b32a2d9a6
|
17
|
+
[5b926937058b]
|
18
|
+
|
19
|
+
* .hgsigs:
|
20
|
+
Added signature for changeset 7236fd2ac3fb
|
21
|
+
[043b32a2d9a6] [v0.10.2]
|
22
|
+
|
23
|
+
* History.rdoc, lib/inversion.rb:
|
24
|
+
Bump the patch version, update history.
|
25
|
+
[7236fd2ac3fb]
|
26
|
+
|
1
27
|
2012-06-27 Mahlon E. Smith <mahlon@martini.nu>
|
2
28
|
|
3
29
|
* lib/inversion/mixins.rb, lib/inversion/template.rb,
|
4
30
|
spec/inversion/mixins_spec.rb:
|
5
31
|
Add Modules/Classes to the immediate object list when deep copying.
|
6
32
|
Don't needlessly deep_copy the node tree on template duplication.
|
7
|
-
[fb0ab0db2042]
|
33
|
+
[fb0ab0db2042]
|
8
34
|
|
9
35
|
2012-06-22 Michael Granger <ged@FaerieMUD.org>
|
10
36
|
|
data/History.rdoc
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
== v0.11.0 [2012-07-06] Michael Granger <ged@FaerieMUD.org>
|
2
|
+
|
3
|
+
- Automatically transcode output according to the registered encoding
|
4
|
+
if the template is created with one
|
5
|
+
|
6
|
+
|
1
7
|
== v0.10.2 [2012-06-27] Mahlon E. Smith <mahlon@martini.nu>
|
2
8
|
|
3
9
|
- Bugfix: Don't dup Classes and Modules in template attributes.
|
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.
|
28
|
+
VERSION = '0.11.0'
|
29
29
|
|
30
30
|
# Version-control revision constant
|
31
|
-
REVISION = %q$Revision:
|
31
|
+
REVISION = %q$Revision: 92d48ef3085e $
|
32
32
|
|
33
33
|
|
34
34
|
### Get the Inversion version.
|
data/lib/inversion/mixins.rb
CHANGED
@@ -212,7 +212,7 @@ module Inversion
|
|
212
212
|
return obj if obj.class.name == 'RSpec::Mocks::Mock'
|
213
213
|
|
214
214
|
return case obj
|
215
|
-
when NilClass, Numeric, TrueClass, FalseClass, Symbol, Module
|
215
|
+
when NilClass, Numeric, TrueClass, FalseClass, Symbol, Module, Encoding
|
216
216
|
obj
|
217
217
|
|
218
218
|
when Array
|
@@ -264,6 +264,7 @@ class Inversion::RenderState
|
|
264
264
|
if self.rendering_enabled?
|
265
265
|
self.destination << self.make_node_comment( node ) if self.options[:debugging_comments]
|
266
266
|
previous_node = nil
|
267
|
+
enc = self.options[:encoding] || Encoding.default_internal
|
267
268
|
|
268
269
|
begin
|
269
270
|
# Allow render to be delegated to subobjects
|
@@ -273,8 +274,8 @@ class Inversion::RenderState
|
|
273
274
|
node = node.render( self )
|
274
275
|
end
|
275
276
|
|
276
|
-
# self.log.debug " adding a %p to the destination (%p)" %
|
277
|
-
#
|
277
|
+
# self.log.debug " adding a %p (%p; encoding: %s) to the destination (%p)" %
|
278
|
+
# [ node.class, node, node.respond_to?(:encoding) ? node.encoding : 'n/a', self.destination.class ]
|
278
279
|
self.destination << node
|
279
280
|
# self.log.debug " just appended %p to %p" % [ node, self.destination ]
|
280
281
|
rescue ::StandardError => err
|
@@ -290,7 +291,14 @@ class Inversion::RenderState
|
|
290
291
|
|
291
292
|
### Turn the rendered node structure into the final rendered String.
|
292
293
|
def to_s
|
293
|
-
|
294
|
+
strings = @output.flatten.map( &:to_s )
|
295
|
+
|
296
|
+
if enc = self.options[ :encoding ]
|
297
|
+
self.log.debug "Encoding rendered template parts to %s" % [ enc ]
|
298
|
+
strings.map! {|str| str.encode(enc) }
|
299
|
+
end
|
300
|
+
|
301
|
+
return strings.join
|
294
302
|
end
|
295
303
|
|
296
304
|
|
data/lib/inversion/template.rb
CHANGED
@@ -116,9 +116,8 @@ class Inversion::Template
|
|
116
116
|
end
|
117
117
|
|
118
118
|
# We trust files read from disk
|
119
|
-
|
120
|
-
|
121
|
-
tmpl.read( encoding: encoding )
|
119
|
+
source = if opts.key?( :encoding )
|
120
|
+
tmpl.read( encoding: opts[:encoding] )
|
122
121
|
else
|
123
122
|
tmpl.read
|
124
123
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
#!/usr/bin/env rspec -cfd -b
|
2
|
+
# encoding: utf-8
|
2
3
|
# vim: set noet nosta sw=4 ts=4 :
|
3
4
|
|
4
5
|
BEGIN {
|
@@ -383,5 +384,24 @@ describe Inversion::RenderState do
|
|
383
384
|
|
384
385
|
end
|
385
386
|
|
387
|
+
|
388
|
+
describe "encoding support" do
|
389
|
+
|
390
|
+
it "transcodes attribute values if the template's encoding is set" do
|
391
|
+
attributes = {
|
392
|
+
good_doggie: "Стрелка".encode('koi8-u'),
|
393
|
+
little: "arrow".encode('us-ascii')
|
394
|
+
}
|
395
|
+
|
396
|
+
state = Inversion::RenderState.new( attributes, encoding: 'utf-8' )
|
397
|
+
|
398
|
+
state << Inversion::Template::AttrTag.new( 'good_doggie' )
|
399
|
+
state << Inversion::Template::AttrTag.new( 'little' )
|
400
|
+
|
401
|
+
state.to_s.encoding.should be( Encoding::UTF_8 )
|
402
|
+
end
|
403
|
+
|
404
|
+
end
|
405
|
+
|
386
406
|
end
|
387
407
|
|
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.
|
4
|
+
version: 0.11.0
|
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-06
|
40
|
+
date: 2012-07-06 00:00:00.000000000 Z
|
41
41
|
dependencies:
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: loggability
|
metadata.gz.sig
CHANGED
Binary file
|