Class: Subaltern::Context
- Inherits:
-
Object
- Object
- Subaltern::Context
- Defined in:
- lib/subaltern/context.rb
Overview
Variable scope.
Instance Attribute Summary collapse
-
#parent ⇒ Object
readonly
Returns the value of attribute parent.
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
-
#eval(source) ⇒ Object
Eval a piece of Ruby code within this context.
-
#has_key?(key) ⇒ Boolean
Warning : shallow (doesn’t lookup in parent context).
-
#initialize(parent = {}, vars = nil) ⇒ Context
constructor
Create a new context.
Constructor Details
Instance Attribute Details
#parent ⇒ Object (readonly)
Returns the value of attribute parent.
31 32 33 |
# File 'lib/subaltern/context.rb', line 31 def parent @parent end |
Instance Method Details
#[](key) ⇒ Object
47 48 49 50 51 52 53 |
# File 'lib/subaltern/context.rb', line 47 def [](key) return @variables[key] if @variables.has_key?(key) return @parent[key] if @parent raise UndefinedVariableError.new(key) end |
#[]=(key, value) ⇒ Object
55 56 57 58 59 60 |
# File 'lib/subaltern/context.rb', line 55 def []=(key, value) @variables[key] = value unless set(key, value) value end |
#eval(source) ⇒ Object
Eval a piece of Ruby code within this context.
71 72 73 74 75 76 77 78 |
# File 'lib/subaltern/context.rb', line 71 def eval(source) begin Subaltern.eval_tree(self, RubyParser.new.parse(source).to_a) rescue Return => r r.value end end |
#has_key?(key) ⇒ Boolean
Warning : shallow (doesn’t lookup in parent context)
64 65 66 67 |
# File 'lib/subaltern/context.rb', line 64 def has_key?(key) @variables.has_key?(key) end |