Sha256: 1a0aa04cc5fe83e444663df21d741dcb74d1775324b23fd513c37456e6723f24

Contents?: true

Size: 716 Bytes

Versions: 1

Compression:

Stored size: 716 Bytes

Contents

require "vrb/version"
require "erb"

class VRB
	def initialize
		@view_erb_count = 0
	end
	
	def view( path )
		text = ""
		
		Dir.chdir( File.dirname( path ) ){
			begin
				text = File.read( path )
			rescue
				return "File Read Error: #{path}"
			end
			
			ext = File.extname( path )
			func_name = "view#{ext.gsub( /\./, '_' )}"
			
			begin
				text = self.send( func_name, text ) if self.respond_to?( func_name )
			rescue => err
				return <<EOS
View Error: #{path}
#{err.message}
#{err.backtrace.first}
EOS
			end
		}
		
		text
	end
	
	def view_erb( text )
		@view_erb_count += 1
		result = ERB.new( text, nil, "-", "_erbout_#{@view_erb_count}" ).result( binding )
		@view_erb_count -= 1
		result
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vrb-0.1.2 lib/vrb.rb