@@ -67,14 +67,13 @@ def safe_concat(value)
67
67
original_concat ( value )
68
68
end
69
69
70
- def initialize ( str = "" )
71
- @html_safe = true
70
+ def initialize ( _str = "" )
72
71
super
73
72
end
74
73
75
74
def initialize_copy ( other )
76
75
super
77
- @html_safe = other . html_safe?
76
+ @html_unsafe = true unless other . html_safe?
78
77
end
79
78
80
79
def concat ( value )
@@ -116,7 +115,9 @@ def +(other)
116
115
def *( _ )
117
116
new_string = super
118
117
new_safe_buffer = new_string . is_a? ( SafeBuffer ) ? new_string : SafeBuffer . new ( new_string )
119
- new_safe_buffer . instance_variable_set ( :@html_safe , @html_safe )
118
+ if @html_unsafe
119
+ new_safe_buffer . instance_variable_set ( :@html_unsafe , true )
120
+ end
120
121
new_safe_buffer
121
122
end
122
123
@@ -131,9 +132,9 @@ def %(args)
131
132
self . class . new ( super ( escaped_args ) )
132
133
end
133
134
134
- attr_reader : html_safe
135
- alias_method :html_safe? , :html_safe
136
- remove_method :html_safe
135
+ def html_safe?
136
+ @html_unsafe . nil?
137
+ end
137
138
138
139
def to_s
139
140
self
@@ -159,7 +160,7 @@ def #{unsafe_method}(*args, &block) # def capitalize(*args, &block)
159
160
end # end
160
161
161
162
def #{ unsafe_method } !(*args) # def capitalize!(*args)
162
- @html_safe = false # @html_safe = false
163
+ @html_unsafe = true # @html_unsafe = true
163
164
super # super
164
165
end # end
165
166
EOT
@@ -180,7 +181,7 @@ def #{unsafe_method}(*args, &block) # def gsub(*args, &block)
180
181
end # end
181
182
182
183
def #{ unsafe_method } !(*args, &block) # def gsub!(*args, &block)
183
- @html_safe = false # @html_safe = false
184
+ @html_unsafe = true # @html_unsafe = false
184
185
if block # if block
185
186
super(*args) { |*params| # super(*args) { |*params|
186
187
set_block_back_references(block, $~) # set_block_back_references(block, $~)
@@ -214,7 +215,9 @@ def set_block_back_references(block, match_data)
214
215
215
216
def string_into_safe_buffer ( new_string , is_html_safe )
216
217
new_safe_buffer = new_string . is_a? ( SafeBuffer ) ? new_string : SafeBuffer . new ( new_string )
217
- new_safe_buffer . instance_variable_set :@html_safe , is_html_safe
218
+ unless is_html_safe
219
+ new_safe_buffer . instance_variable_set :@html_unsafe , true
220
+ end
218
221
new_safe_buffer
219
222
end
220
223
end
0 commit comments