builder 3.1.1 → 3.1.3
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/lib/blankslate.rb +6 -2
- data/lib/builder/version.rb +1 -1
- data/lib/builder/xmlbase.rb +4 -4
- data/test/test_method_caching.rb +6 -0
- metadata +2 -2
data/lib/blankslate.rb
CHANGED
@@ -44,12 +44,16 @@ class BlankSlate
|
|
44
44
|
# Hide the method named +name+ in the BlankSlate class. Don't
|
45
45
|
# hide +instance_eval+ or any method beginning with "__".
|
46
46
|
def hide(name)
|
47
|
-
|
48
|
-
|
47
|
+
warn_level = $VERBOSE
|
48
|
+
$VERBOSE = nil
|
49
|
+
if instance_methods.include?(name._blankslate_as_name) &&
|
50
|
+
name !~ /^(__|instance_eval$)/
|
49
51
|
@hidden_methods ||= {}
|
50
52
|
@hidden_methods[name.to_sym] = instance_method(name)
|
51
53
|
undef_method name
|
52
54
|
end
|
55
|
+
ensure
|
56
|
+
$VERBOSE = warn_level
|
53
57
|
end
|
54
58
|
|
55
59
|
def find_hidden_method(name)
|
data/lib/builder/version.rb
CHANGED
data/lib/builder/xmlbase.rb
CHANGED
@@ -177,11 +177,11 @@ module Builder
|
|
177
177
|
# method_missing is very slow, this speeds up document generation
|
178
178
|
# significantly.
|
179
179
|
def cache_method_call(sym)
|
180
|
-
|
181
|
-
|
182
|
-
tag!(
|
180
|
+
class << self; self; end.class_eval do
|
181
|
+
define_method(sym) do |*args, &block|
|
182
|
+
tag!(sym, *args, &block)
|
183
183
|
end
|
184
|
-
|
184
|
+
end
|
185
185
|
end
|
186
186
|
end
|
187
187
|
|
data/test/test_method_caching.rb
CHANGED
@@ -28,6 +28,12 @@ class TestMethodCaching < Test::Unit::TestCase
|
|
28
28
|
Builder::XmlBase.cache_method_calls = true
|
29
29
|
end
|
30
30
|
|
31
|
+
def test_caching_does_not_break_weird_symbols
|
32
|
+
xml = Builder::XmlMarkup.new
|
33
|
+
xml.__send__("work-order", 1)
|
34
|
+
assert_equal "<work-order>1</work-order>", xml.target!
|
35
|
+
end
|
36
|
+
|
31
37
|
def test_method_call_caching
|
32
38
|
xml = Builder::XmlMarkup.new
|
33
39
|
xml.cache_me
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.
|
4
|
+
version: 3.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-09-
|
12
|
+
date: 2012-09-09 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: ! 'Builder provides a number of builder objects that make creating structured
|
15
15
|
data
|