fabio
fabio

Reputation: 119

Migrating a gem to ruby 1.9

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

Answers (1)

MrYoshiji
MrYoshiji

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

Related Questions