Reputation: 119
Hello I am trying to use/port a gem written for mri 1.8 in ruby 1.9
This is a sample of the code which I can't port.
module ClassMethods
...
private
...
def prepend_interceptors_to_chain(condition, interceptors)
interceptors = interceptors + read_inheritable_attribute("#{condition}_invocation_interceptors")
write_inheritable_attribute("#{condition}_invocation_interceptors", interceptors)
end
...
end
the match in ruby 1.9 will be something like
def prepend_interceptors_to_chain(condition, interceptors)
interceptors = interceptors + self.:"#{condition}_invocation_interceptors"
self.:"#{condition}_invocation_interceptors" = interceptors
end
is it possible to use a string as a name to access a class variable value?
Upvotes: 1
Views: 38
Reputation: 54882
You can always use .send(:method)
:
def prepend_interceptors_to_chain(condition, interceptors)
interceptors = interceptors + self.send("#{condition}_invocation_interceptors")
self.send("#{condition}_invocation_interceptors=", interceptors)
end
Upvotes: 1