I have some methods in a class that look like this:
def h_coil(chan)
raise NoDataError if @h_coils[chan].nil?
@h_coils[chan]
end
def i_coil(chan)
raise NoDataError if @i_coils[chan].nil?
@i_coils[chan]
end
and so on and so forth...
I've been refactoring a bit to cut down on the redunancy in the code, and
I'm wondering your thoughts on the best way of doing this, considering
that all methods have the same "signature".
Is define_method the smartest way?
# pseudo code off the top of my head, probably has errors:
def create_coil_method(name)
define_method(name) do |chan|
iv = ("@" + name.to_s + "s").to_sym
val = instance_variable_get(iv)
raise NoDataError if val.nil?
val[chan]
end
end
create_coil_method(:h_coil)
create_coil_method(:i_coil)
...
Thanks,
Caleb