Class: Erubis::Context
- Inherits:
-
Object
- Object
- Erubis::Context
- Includes:
- Enumerable
- Defined in:
- lib/erubis/context.rb
Overview
context object for Engine#evaluate
ex.
template = <<'END'
Hello <%= @user %>!
<% for item in @list %>
- <%= item %>
<% end %>
END
context = Erubis::Context.new(:user=>'World', :list=>['a','b','c'])
# or
# context = Erubis::Context.new
# context[:user] = 'World'
# context[:list] = ['a', 'b', 'c']
eruby = Erubis::Eruby.new(template)
print eruby.evaluate(context)
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
- #each ⇒ Object
-
#initialize(hash = nil) ⇒ Context
constructor
A new instance of Context.
- #keys ⇒ Object
- #to_hash ⇒ Object
- #update(context_or_hash) ⇒ Object
Constructor Details
#initialize(hash = nil) ⇒ Context
Returns a new instance of Context.
33 34 35 36 37 |
# File 'lib/erubis/context.rb', line 33 def initialize(hash=nil) hash.each do |name, value| self[name] = value end if hash end |
Instance Method Details
#[](key) ⇒ Object
39 40 41 |
# File 'lib/erubis/context.rb', line 39 def [](key) return instance_variable_get("@#{key}") end |
#[]=(key, value) ⇒ Object
43 44 45 |
# File 'lib/erubis/context.rb', line 43 def []=(key, value) return instance_variable_set("@#{key}", value) end |
#each ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/erubis/context.rb', line 51 def each instance_variables.each do |name| key = name[1..-1] value = instance_variable_get(name) yield(key, value) end end |
#keys ⇒ Object
47 48 49 |
# File 'lib/erubis/context.rb', line 47 def keys return instance_variables.collect { |name| name[1..-1] } end |
#to_hash ⇒ Object
59 60 61 62 63 |
# File 'lib/erubis/context.rb', line 59 def to_hash hash = {} self.keys.each { |key| hash[key] = self[key] } return hash end |
#update(context_or_hash) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/erubis/context.rb', line 65 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 |