Class: Hivemind::UniversalAST::Attribute
- Defined in:
- lib/hivemind/universal_ast.rb,
lib/hivemind/vm.rb
Instance Method Summary collapse
Methods inherited from Element
Instance Method Details
#render(depth = 0) ⇒ Object
47 48 49 |
# File 'lib/hivemind/universal_ast.rb', line 47 def render(depth = 0) "#{offset(depth)}Attribute : #{@object.render} #{@label.render}" end |
#run(env) ⇒ Object
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/hivemind/vm.rb', line 92 def run(env) obj = @object.run(env) env.current_self = obj if obj.respond_to?(:data) if obj.data.key? @label.value obj.data[@label.value] else method = obj.klass.dispatch_method(@label.value) if method method else raise HivemindAccessError.new("No #{@label.value} in obj") end end else obj.methods[@label.value] end end |