Class: PHPRB
- Defined in:
- lib/web/phprb.rb,
lib/web/phprb.rb,
lib/web/phprb.rb,
lib/web/phprb.rb,
lib/web/phprb.rb
Overview
PHPRB::DefMethod
Defined Under Namespace
Modules: DefMethod, Util Classes: Compiler
Constant Summary collapse
- Revision =
:nodoc: all
'$Date: 2003/12/10 09:07:52 $'
Instance Attribute Summary collapse
-
#filename ⇒ Object
Returns the value of attribute filename.
-
#src ⇒ Object
readonly
Returns the value of attribute src.
Class Method Summary collapse
Instance Method Summary collapse
- #def_class(superklass = Object, methodname = 'result') ⇒ Object
- #def_method(mod, methodname, fname = '(PHPRB)') ⇒ Object
- #def_module(methodname = 'erb') ⇒ Object
-
#initialize(str, safe_level = nil, xml_mode = nil) ⇒ PHPRB
constructor
A new instance of PHPRB.
- #result(b = TOPLEVEL_BINDING) ⇒ Object
- #run(b = TOPLEVEL_BINDING) ⇒ Object
Constructor Details
#initialize(str, safe_level = nil, xml_mode = nil) ⇒ PHPRB
Returns a new instance of PHPRB.
238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 |
# File 'lib/web/phprb.rb', line 238 def initialize(str, safe_level=nil, xml_mode=nil ) @safe_level = safe_level compiler = PHPRB::Compiler.new(xml_mode) #, eoutvar='_erbout') #set_eoutvar(compiler, eoutvar) #def set_eoutvar(compiler, eoutvar = '_erbout') #compiler.put_cmd = "#{eoutvar}.concat" # #cmd = [] #cmd.push "#{eoutvar} = ''" # #compiler.pre_cmd = cmd # #cmd = [] #cmd.push(eoutvar) # #compiler.post_cmd = cmd #end compiler.put_cmd = "Web::write" #cmd = [] #cmd.push "#{eoutvar} = ''" # #compiler.pre_cmd = cmd # #cmd = [] #cmd.push(eoutvar) # #compiler.post_cmd = cmd @src = compiler.compile(str) @filename = nil end |
Instance Attribute Details
#filename ⇒ Object
Returns the value of attribute filename.
274 275 276 |
# File 'lib/web/phprb.rb', line 274 def filename @filename end |
#src ⇒ Object (readonly)
Returns the value of attribute src.
273 274 275 |
# File 'lib/web/phprb.rb', line 273 def src @src end |
Class Method Details
.load(script) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/web/phprb.rb', line 18 def PHPRB::load( script ) scriptname = script script = if (File.exists? script) File.open(scriptname,'r'){|f|f.read} || "" else scriptname = nil script end script.gsub!( Web::SHEBANG_PATTERN, '' ) # I'm keeping the compiler separate from the template # class, because I plan to replace the compiler # ~ pat script = PHPRB.new(script, nil, Web::[:xml] ).src Web::Template.evaluate( scriptname, script ) end |
Instance Method Details
#def_class(superklass = Object, methodname = 'result') ⇒ Object
302 303 304 305 306 |
# File 'lib/web/phprb.rb', line 302 def def_class(superklass=Object, methodname='result') cls = Class.new(superklass) def_method(cls, methodname) cls end |
#def_method(mod, methodname, fname = '(PHPRB)') ⇒ Object
292 293 294 |
# File 'lib/web/phprb.rb', line 292 def def_method(mod, methodname, fname='(PHPRB)') mod.module_eval("def #{methodname}\n" + self.src + "\nend\n", fname, 0) end |
#def_module(methodname = 'erb') ⇒ Object
296 297 298 299 300 |
# File 'lib/web/phprb.rb', line 296 def def_module(methodname='erb') mod = Module.new def_method(mod, methodname) mod end |
#result(b = TOPLEVEL_BINDING) ⇒ Object
280 281 282 283 284 285 286 287 288 289 290 |
# File 'lib/web/phprb.rb', line 280 def result(b=TOPLEVEL_BINDING) if @safe_level th = Thread.start { $SAFE = @safe_level eval(@src, b) } return th.value else return eval(@src, b, (@filename || '(erb)'), 1) end end |
#run(b = TOPLEVEL_BINDING) ⇒ Object
276 277 278 |
# File 'lib/web/phprb.rb', line 276 def run(b=TOPLEVEL_BINDING) print self.result(b) end |