Class: BusScheme::Scope
Instance Method Summary collapse
- #[](symbol) ⇒ Object
- #[]=(symbol, value) ⇒ Object
- #has_key?(symbol) ⇒ Boolean
-
#initialize(table, parent) ⇒ Scope
constructor
A new instance of Scope.
- #lookup ⇒ Object
- #old_has_key? ⇒ Object
- #old_set ⇒ Object
Constructor Details
#initialize(table, parent) ⇒ Scope
Returns a new instance of Scope.
3 4 5 6 |
# File 'lib/lambda.rb', line 3 def initialize(table, parent) @parent = parent table.each { |k, v| self[k] = v } end |
Instance Method Details
#[](symbol) ⇒ Object
14 15 16 |
# File 'lib/lambda.rb', line 14 def [](symbol) lookup(symbol) or @parent && @parent[symbol] end |
#[]=(symbol, value) ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/lambda.rb', line 19 def []=(symbol, value) if !old_has_key?(symbol) and @parent and @parent.has_key?(symbol) @parent[symbol] = value else old_set symbol, value end end |
#has_key?(symbol) ⇒ Boolean
9 10 11 |
# File 'lib/lambda.rb', line 9 def has_key?(symbol) old_has_key?(symbol) or @parent && @parent.has_key?(symbol) end |
#lookup ⇒ Object
13 |
# File 'lib/lambda.rb', line 13 alias_method :lookup, :[] |
#old_has_key? ⇒ Object
8 |
# File 'lib/lambda.rb', line 8 alias_method :old_has_key?, :has_key? |
#old_set ⇒ Object
18 |
# File 'lib/lambda.rb', line 18 alias_method :old_set, :[]= |