CONTEXT:
I am working on some code for dynamic binding in Ruby.
binding (what_to_bind_and_to_what) {
# all code here (nested calls included) sees bindings above
}
# bindings revert here to previous values
# code here sees bindings that existed prior to the binding(...) above.
However, instead of the usual practice of binding a variable:
binding (:var, value) {
# all code here (nested calls included) sees :var as bound to value
}
I want to bind an attribute of an object
binding (object, accessor, value) {
# all code here (nested calls included) sees object.accessor ==
value
}
Reasoning: Ruby is all objects. References to most (all?) non-local
variables should correspond to attribute access on some object, if you treat
things like hash[key] as sugar for hash.get_attr(key).
QUESTION:
Do global variables in Ruby correspond to attributes on some object? Is
there a way to get hold of that object and find or define accessors for
those variables? Most specifically, if that object is referred to as
_globals_, is there a way to define:
def _globals_.get_attr (global_symbol)
and
def _globals_.set_attr (global_symbol, value)
Thanks!