Bug #12031 ยป 0001-Make-ERB-work-with-enable-frozen-string-literal.patch
| lib/erb.rb | ||
|---|---|---|
|   # ERB#src: | ||
|   # | ||
|   #   compiler = ERB::Compiler.new('<>') | ||
|   #   compiler.pre_cmd    = ["_erbout=''"] | ||
|   #   compiler.pre_cmd    = ["_erbout=String.new"] | ||
|   #   compiler.put_cmd    = "_erbout.concat" | ||
|   #   compiler.insert_cmd = "_erbout.concat" | ||
|   #   compiler.post_cmd   = ["_erbout"] | ||
| ... | ... | |
|   # <i>Generates</i>: | ||
|   # | ||
|   #   #coding:UTF-8 | ||
|   #   _erbout=''; _erbout.concat "Got "; _erbout.concat(( obj ).to_s); _erbout.concat "!\n"; _erbout | ||
|   #   _erbout=String.new; _erbout.concat "Got "; _erbout.concat(( obj ).to_s); _erbout.concat "!\n"; _erbout | ||
|   # | ||
|   # By default the output is sent to the print method.  For example: | ||
|   # | ||
| ... | ... | |
|   def set_eoutvar(compiler, eoutvar = '_erbout') | ||
|     compiler.put_cmd = "#{eoutvar}.concat" | ||
|     compiler.insert_cmd = "#{eoutvar}.concat" | ||
|     compiler.pre_cmd = ["#{eoutvar} = ''"] | ||
|     compiler.pre_cmd = ["#{eoutvar} = String.new"] | ||
|     compiler.post_cmd = ["#{eoutvar}.force_encoding(__ENCODING__)"] | ||
|   end | ||