class Erubis::Context
#
# print eruby.evaluate(context)
# eruby = Erubis::Eruby.new(template)
#
# # context = [‘a’, ‘b’, ‘c’]
# # context = ‘World’
# # context = Erubis::Context.new
# # or
# context = Erubis::Context.new(:user=>‘World’, :list=>)
#
# END
# <% end %>
# - <%= item %>
# <% for item in @list %>
# Hello <%= @user %>!
# template = <<‘END’
# ex.
#
# context object for Engine#evaluate
#
def [](key)
def [](key) return instance_variable_get("@#{key}") end
def []=(key, value)
def []=(key, value) return instance_variable_set("@#{key}", value) end
def each
def each instance_variables.each do |name| key = name[1..-1] value = instance_variable_get(name) yield(key, value) end end
def initialize(hash=nil)
def initialize(hash=nil) hash.each do |name, value| self[name] = value end if hash end
def keys
def keys return instance_variables.collect { |name| name[1..-1] } end
def to_hash
def to_hash hash = {} self.keys.each { |key| hash[key] = self[key] } return hash end
def update(context_or_hash)
def update(context_or_hash) arg = context_or_hash if arg.is_a?(Hash) arg.each do |key, val| self[key] = val end else arg.instance_variables.each do |varname| key = varname[1..-1] val = arg.instance_variable_get(varname) self[key] = val end end end